From 66960696c5dbe5b6464521917ea425acbc9865da Mon Sep 17 00:00:00 2001 From: LuckyFBB <976060700@qq.com> Date: Wed, 12 Feb 2025 16:27:50 +0800 Subject: [PATCH 1/8] feat(flink): check spelling errors for flink g4 --- src/grammar/flink/FlinkSqlLexer.g4 | 6 +- src/grammar/flink/FlinkSqlParser.g4 | 84 +- src/lib/flink/FlinkSqlLexer.interp | 12 +- src/lib/flink/FlinkSqlLexer.tokens | 1416 ++++++++++++----------- src/lib/flink/FlinkSqlLexer.ts | 14 +- src/lib/flink/FlinkSqlParser.interp | 34 +- src/lib/flink/FlinkSqlParser.tokens | 6 +- src/lib/flink/FlinkSqlParser.ts | 514 ++++---- src/lib/flink/FlinkSqlParserListener.ts | 140 +-- src/lib/flink/FlinkSqlParserVisitor.ts | 84 +- 10 files changed, 1156 insertions(+), 1154 deletions(-) diff --git a/src/grammar/flink/FlinkSqlLexer.g4 b/src/grammar/flink/FlinkSqlLexer.g4 index aaf3b2798..325d8428c 100644 --- a/src/grammar/flink/FlinkSqlLexer.g4 +++ b/src/grammar/flink/FlinkSqlLexer.g4 @@ -571,11 +571,11 @@ REVERSE_QUOTE_SYMB : '`'; COLON_SYMB : ':'; ASTERISK_SIGN : '*'; UNDERLINE_SIGN : '_'; -HYPNEN_SIGN : '-'; +HYPHEN_SIGN : '-'; ADD_SIGN : '+'; -PENCENT_SIGN : '%'; +PERCENT_SIGN : '%'; DOUBLE_VERTICAL_SIGN : '||'; -DOUBLE_HYPNEN_SIGN : '--'; +DOUBLE_HYPHEN_SIGN : '--'; SLASH_SIGN : '/'; QUESTION_MARK_SIGN : '?'; DOUBLE_RIGHT_ARROW : '=>'; diff --git a/src/grammar/flink/FlinkSqlParser.g4 b/src/grammar/flink/FlinkSqlParser.g4 index 53e458062..ae8c94d9e 100644 --- a/src/grammar/flink/FlinkSqlParser.g4 +++ b/src/grammar/flink/FlinkSqlParser.g4 @@ -29,12 +29,12 @@ sqlStatement | describeStatement | explainStatement | useStatement - | showStatememt + | showStatement | loadStatement - | unloadStatememt - | setStatememt - | resetStatememt - | jarStatememt + | unloadStatement + | setStatement + | resetStatement + | jarStatement | dtAddStatement ; @@ -64,7 +64,7 @@ dmlStatement | insertStatement ; -// some statemen +// some statement describeStatement : (KW_DESCRIBE | KW_DESC) tablePath ; @@ -97,7 +97,7 @@ useModuleStatement : KW_USE KW_MODULES uid (COMMA uid)* ; -showStatememt +showStatement : KW_SHOW (KW_CATALOGS | KW_DATABASES | KW_VIEWS | KW_JARS) | KW_SHOW KW_CURRENT (KW_CATALOG | KW_DATABASE) | KW_SHOW KW_TABLES (( KW_FROM | KW_IN) databasePath)? likePredicate? @@ -111,19 +111,19 @@ loadStatement : KW_LOAD KW_MODULE uid (KW_WITH tablePropertyList)? ; -unloadStatememt +unloadStatement : KW_UNLOAD KW_MODULE uid ; -setStatememt +setStatement : KW_SET (tableProperty)? ; -resetStatememt +resetStatement : KW_RESET tablePropertyKey? ; -jarStatememt +jarStatement : (KW_ADD | KW_REMOVE) KW_JAR jarFileName ; @@ -338,7 +338,7 @@ jarFileName ; // Alter statements -// Just for simple alter table statements, +// Just for simple alter table statements, // it only includes rename, set key, add constraint, drop constraint, add unique alterTable @@ -449,15 +449,15 @@ insertMulStatement // Select statements queryStatement - : valuesCaluse + : valuesClause | withClause queryStatement | LR_BRACKET queryStatement RR_BRACKET - | left=queryStatement operator=(KW_INTERSECT | KW_UNION | KW_EXCEPT) KW_ALL? right=queryStatement orderByCaluse? limitClause? - | selectClause orderByCaluse? limitClause? - | selectStatement orderByCaluse? limitClause? + | left=queryStatement operator=(KW_INTERSECT | KW_UNION | KW_EXCEPT) KW_ALL? right=queryStatement orderByClause? limitClause? + | selectClause orderByClause? limitClause? + | selectStatement orderByClause? limitClause? ; -valuesCaluse +valuesClause : KW_VALUES expression (COMMA expression)* ; @@ -505,7 +505,7 @@ tableExpression | tableExpression KW_NATURAL? (KW_LEFT | KW_RIGHT | KW_FULL | KW_INNER)? KW_OUTER? KW_JOIN tableExpression joinCondition? | tableExpression KW_CROSS KW_JOIN tableExpression | inlineDataValueClause - | windoTVFClause + | windowTVFClause ; tableReference @@ -532,15 +532,15 @@ inlineDataValueClause : LR_BRACKET valuesDefinition RR_BRACKET tableAlias ; -windoTVFClause - : KW_TABLE LR_BRACKET windowTVFExression RR_BRACKET +windowTVFClause + : KW_TABLE LR_BRACKET windowTVFExpression RR_BRACKET ; -windowTVFExression - : windoTVFName LR_BRACKET windowTVFParam (COMMA windowTVFParam)* RR_BRACKET +windowTVFExpression + : windowTVFName LR_BRACKET windowTVFParam (COMMA windowTVFParam)* RR_BRACKET ; -windoTVFName +windowTVFName : KW_TUMBLE | KW_HOP | KW_CUMULATE @@ -586,7 +586,7 @@ groupItemDefinition | groupWindowFunction | LR_BRACKET RR_BRACKET | LR_BRACKET expression (COMMA expression)* RR_BRACKET - | groupingSetsNotaionName LR_BRACKET expression (COMMA expression)* RR_BRACKET + | groupingSetsNotationName LR_BRACKET expression (COMMA expression)* RR_BRACKET | groupingSets LR_BRACKET groupItemDefinition (COMMA groupItemDefinition)* RR_BRACKET | expression ; @@ -595,7 +595,7 @@ groupingSets : KW_GROUPING KW_SETS ; -groupingSetsNotaionName +groupingSetsNotationName : KW_CUBE | KW_ROLLUP ; @@ -627,19 +627,19 @@ namedWindow ; windowSpec - : name=errorCapturingIdentifier? LR_BRACKET partitionByClause? orderByCaluse? windowFrame? RR_BRACKET + : name=errorCapturingIdentifier? LR_BRACKET partitionByClause? orderByClause? windowFrame? RR_BRACKET ; matchRecognizeClause - : KW_MATCH_RECOGNIZE LR_BRACKET partitionByClause? orderByCaluse? measuresClause? outputMode? afterMatchStrategy? patternDefination? - patternVariablesDefination RR_BRACKET (KW_AS? identifier)? + : KW_MATCH_RECOGNIZE LR_BRACKET partitionByClause? orderByClause? measuresClause? outputMode? afterMatchStrategy? patternDefinition? + patternVariablesDefinition RR_BRACKET (KW_AS? identifier)? ; -orderByCaluse - : KW_ORDER KW_BY orderItemDefition (COMMA orderItemDefition)* +orderByClause + : KW_ORDER KW_BY orderItemDefinition (COMMA orderItemDefinition)* ; -orderItemDefition +orderItemDefinition : columnName ordering=(KW_ASC | KW_DESC)? (KW_NULLS nullOrder=(KW_LAST | KW_FIRST))? ; @@ -664,7 +664,7 @@ measuresClause : KW_MEASURES projectItemDefinition (COMMA projectItemDefinition)* ; -patternDefination +patternDefinition : KW_PATTERN LR_BRACKET patternVariable+ RR_BRACKET withinClause? ; @@ -684,7 +684,7 @@ afterMatchStrategy | KW_AFTER KW_MATCH KW_SKIP KW_TO KW_FIRST unquotedIdentifier ; -patternVariablesDefination +patternVariablesDefinition : KW_DEFINE projectItemDefinition (COMMA projectItemDefinition)* ; @@ -739,9 +739,9 @@ likePredicate valueExpression : primaryExpression # valueExpressionDefault - | operator=(HYPNEN_SIGN | ADD_SIGN | BIT_NOT_OP) valueExpression # arithmeticUnary - | left=valueExpression operator=(ASTERISK_SIGN | SLASH_SIGN | PENCENT_SIGN | KW_DIV) right=valueExpression # arithmeticBinary - | left=valueExpression operator=(ADD_SIGN | HYPNEN_SIGN | DOUBLE_VERTICAL_SIGN) right=valueExpression # arithmeticBinary + | operator=(HYPHEN_SIGN | ADD_SIGN | BIT_NOT_OP) valueExpression # arithmeticUnary + | left=valueExpression operator=(ASTERISK_SIGN | SLASH_SIGN | PERCENT_SIGN | KW_DIV) right=valueExpression # arithmeticBinary + | left=valueExpression operator=(ADD_SIGN | HYPHEN_SIGN | DOUBLE_VERTICAL_SIGN) right=valueExpression # arithmeticBinary | left=valueExpression operator=BIT_AND_OP right=valueExpression # arithmeticBinary | left=valueExpression operator=BIT_XOR_OP right=valueExpression # arithmeticBinary | left=valueExpression operator=BIT_OR_OP right=valueExpression # arithmeticBinary @@ -854,7 +854,7 @@ unitToUnitInterval ; intervalValue - : (ADD_SIGN | HYPNEN_SIGN)? (DIG_LITERAL | REAL_LITERAL) + : (ADD_SIGN | HYPHEN_SIGN)? (DIG_LITERAL | REAL_LITERAL) | STRING_LITERAL ; @@ -1000,18 +1000,18 @@ bitOperator mathOperator : ASTERISK_SIGN | SLASH_SIGN - | PENCENT_SIGN + | PERCENT_SIGN | KW_DIV | ADD_SIGN - | HYPNEN_SIGN - | DOUBLE_HYPNEN_SIGN + | HYPHEN_SIGN + | DOUBLE_HYPHEN_SIGN ; unaryOperator : EXCLAMATION_SYMBOL | BIT_NOT_OP | ADD_SIGN - | HYPNEN_SIGN + | HYPHEN_SIGN | KW_NOT ; @@ -1019,7 +1019,7 @@ constant : timeIntervalExpression | timePointLiteral | stringLiteral // 引号包含的字符串 - | HYPNEN_SIGN? decimalLiteral // 正/负整数 + | HYPHEN_SIGN? decimalLiteral // 正/负整数 | booleanLiteral // 布尔值 | REAL_LITERAL // 小数 | BIT_STRING diff --git a/src/lib/flink/FlinkSqlLexer.interp b/src/lib/flink/FlinkSqlLexer.interp index 5dd9f76f6..8995b5adb 100644 --- a/src/lib/flink/FlinkSqlLexer.interp +++ b/src/lib/flink/FlinkSqlLexer.interp @@ -1074,11 +1074,11 @@ REVERSE_QUOTE_SYMB COLON_SYMB ASTERISK_SIGN UNDERLINE_SIGN -HYPNEN_SIGN +HYPHEN_SIGN ADD_SIGN -PENCENT_SIGN +PERCENT_SIGN DOUBLE_VERTICAL_SIGN -DOUBLE_HYPNEN_SIGN +DOUBLE_HYPHEN_SIGN SLASH_SIGN QUESTION_MARK_SIGN DOUBLE_RIGHT_ARROW @@ -1618,11 +1618,11 @@ REVERSE_QUOTE_SYMB COLON_SYMB ASTERISK_SIGN UNDERLINE_SIGN -HYPNEN_SIGN +HYPHEN_SIGN ADD_SIGN -PENCENT_SIGN +PERCENT_SIGN DOUBLE_VERTICAL_SIGN -DOUBLE_HYPNEN_SIGN +DOUBLE_HYPHEN_SIGN SLASH_SIGN QUESTION_MARK_SIGN DOUBLE_RIGHT_ARROW diff --git a/src/lib/flink/FlinkSqlLexer.tokens b/src/lib/flink/FlinkSqlLexer.tokens index 7c2220679..346ab4ca5 100644 --- a/src/lib/flink/FlinkSqlLexer.tokens +++ b/src/lib/flink/FlinkSqlLexer.tokens @@ -183,362 +183,363 @@ KW_INTERVAL=182 KW_INTO=183 KW_IS=184 KW_JOIN=185 -KW_JSON_ARRAY=186 -KW_JSON_ARRAYAGG=187 -KW_JSON_EXECUTION_PLAN=188 -KW_JSON_EXISTS=189 -KW_JSON_OBJECT=190 -KW_JSON_OBJECTAGG=191 -KW_JSON_QUERY=192 -KW_JSON_VALUE=193 -KW_LAG=194 -KW_LANGUAGE=195 -KW_LARGE=196 -KW_LAST_VALUE=197 -KW_LATERAL=198 -KW_LEAD=199 -KW_LEADING=200 -KW_LEFT=201 -KW_LIKE=202 -KW_LIKE_REGEX=203 -KW_LIMIT=204 -KW_LN=205 -KW_LOCAL=206 -KW_LOCALTIME=207 -KW_LOCALTIMESTAMP=208 -KW_LOWER=209 -KW_MATCH=210 -KW_MATCHES=211 -KW_MATCH_NUMBER=212 -KW_MATCH_RECOGNIZE=213 -KW_MAX=214 -KW_MEASURES=215 -KW_MEMBER=216 -KW_MERGE=217 -KW_METADATA=218 -KW_METHOD=219 -KW_MIN=220 -KW_MINUS=221 -KW_MINUTE=222 -KW_MOD=223 -KW_MODIFIES=224 -KW_MODIFY=225 -KW_MODULE=226 -KW_MODULES=227 -KW_MONDAY=228 -KW_MONTH=229 -KW_MORE=230 -KW_MULTISET=231 -KW_NATIONAL=232 -KW_NATURAL=233 -KW_NCHAR=234 -KW_NCLOB=235 -KW_NEW=236 -KW_NEXT=237 -KW_NO=238 -KW_NONE=239 -KW_NORMALIZE=240 -KW_NOT=241 -KW_NTH_VALUE=242 -KW_NTILE=243 -KW_NULL=244 -KW_NULLIF=245 -KW_NUMERIC=246 -KW_OCCURRENCES_REGEX=247 -KW_OCTET_LENGTH=248 -KW_OF=249 -KW_OFFSET=250 -KW_OLD=251 -KW_OMIT=252 -KW_ON=253 -KW_ONE=254 -KW_ONLY=255 -KW_OPEN=256 -KW_OR=257 -KW_ORDER=258 -KW_ORDINAL=259 -KW_OUT=260 -KW_OUTER=261 -KW_OVER=262 -KW_OVERLAPS=263 -KW_OVERLAY=264 -KW_OVERWRITE=265 -KW_OVERWRITING=266 -KW_PARAMETER=267 -KW_PARTITION=268 -KW_PARTITIONED=269 -KW_PARTITIONS=270 -KW_PATTERN=271 -KW_PER=272 -KW_PERCENT=273 -KW_PERCENTILE_CONT=274 -KW_PERCENTILE_DISC=275 -KW_PERCENT_RANK=276 -KW_PERIOD=277 -KW_PERMUTE=278 -KW_PIVOT=279 -KW_PORTION=280 -KW_POSITION=281 -KW_POSITION_REGEX=282 -KW_POWER=283 -KW_PRECEDES=284 -KW_PRECISION=285 -KW_PREPARE=286 -KW_PREV=287 -KW_PRIMARY=288 -KW_PROCEDURE=289 -KW_QUALIFY=290 -KW_QUARTERS=291 -KW_RANGE=292 -KW_RANK=293 -KW_RAW=294 -KW_READS=295 -KW_REAL=296 -KW_RECURSIVE=297 -KW_REF=298 -KW_REFERENCES=299 -KW_REFERENCING=300 -KW_REGR_AVGX=301 -KW_REGR_AVGY=302 -KW_REGR_COUNT=303 -KW_REGR_INTERCEPT=304 -KW_REGR_R2=305 -KW_REGR_SLOPE=306 -KW_REGR_SXX=307 -KW_REGR_SXY=308 -KW_REGR_SYY=309 -KW_RELEASE=310 -KW_RENAME=311 -KW_RESET=312 -KW_RESULT=313 -KW_RETURN=314 -KW_RETURNS=315 -KW_REVOKE=316 -KW_RIGHT=317 -KW_RLIKE=318 -KW_ROLLBACK=319 -KW_ROLLUP=320 -KW_ROW=321 -KW_ROWS=322 -KW_ROW_NUMBER=323 -KW_RUNNING=324 -KW_SAFE_CAST=325 -KW_SAFE_OFFSET=326 -KW_SAFE_ORDINAL=327 -KW_SATURDAY=328 -KW_SAVEPOINT=329 -KW_SCALA=330 -KW_SCOPE=331 -KW_SCROLL=332 -KW_SEARCH=333 -KW_SECOND=334 -KW_SEEK=335 -KW_SELECT=336 -KW_SENSITIVE=337 -KW_SEPARATOR=338 -KW_SESSION_USER=339 -KW_SET=340 -KW_SHOW=341 -KW_SIMILAR=342 -KW_SKIP=343 -KW_SMALLINT=344 -KW_SOME=345 -KW_SPECIFIC=346 -KW_SPECIFICTYPE=347 -KW_SQL=348 -KW_SQLEXCEPTION=349 -KW_SQLSTATE=350 -KW_SQLWARNING=351 -KW_SQRT=352 -KW_START=353 -KW_STATEMENT=354 -KW_STATIC=355 -KW_STATISTICS=356 -KW_STDDEV_POP=357 -KW_STDDEV_SAMP=358 -KW_STREAM=359 -KW_STRING=360 -KW_STRING_AGG=361 -KW_SUBMULTISET=362 -KW_SUBSET=363 -KW_SUBSTRING=364 -KW_SUBSTRING_REGEX=365 -KW_SUCCEEDS=366 -KW_SUM=367 -KW_SUNDAY=368 -KW_SYMMETRIC=369 -KW_SYSTEM=370 -KW_SYSTEM_TIME=371 -KW_SYSTEM_USER=372 -KW_TABLE=373 -KW_TABLES=374 -KW_TABLESAMPLE=375 -KW_THEN=376 -KW_THURSDAY=377 -KW_TIME=378 -KW_TIMESTAMP=379 -KW_TIMESTAMP_DIFF=380 -KW_TIMESTAMP_LTZ=381 -KW_TIMESTAMP_TRUNC=382 -KW_TIMEZONE_HOUR=383 -KW_TIMEZONE_MINUTE=384 -KW_TIME_DIFF=385 -KW_TIME_TRUNC=386 -KW_TINYINT=387 -KW_TO=388 -KW_TRAILING=389 -KW_TRANSLATE=390 -KW_TRANSLATE_REGEX=391 -KW_TRANSLATION=392 -KW_TREAT=393 -KW_TRIGGER=394 -KW_TRIM=395 -KW_TRIM_ARRAY=396 -KW_TRUE=397 -KW_TRUNCATE=398 -KW_TRY_CAST=399 -KW_TUESDAY=400 -KW_UESCAPE=401 -KW_UNION=402 -KW_UNIQUE=403 -KW_UNKNOWN=404 -KW_UNNEST=405 -KW_UNPIVOT=406 -KW_UPDATE=407 -KW_UPPER=408 -KW_UPSERT=409 -KW_USE=410 -KW_USER=411 -KW_USING=412 -KW_VALUE=413 -KW_VALUES=414 -KW_VALUE_OF=415 -KW_VARBINARY=416 -KW_VARCHAR=417 -KW_VARYING=418 -KW_VAR_POP=419 -KW_VAR_SAMP=420 -KW_VERSIONING=421 -KW_VIEWS=422 -KW_VIRTUAL=423 -KW_WATERMARK=424 -KW_WATERMARKS=425 -KW_WEDNESDAY=426 -KW_WEEKS=427 -KW_WHEN=428 -KW_WHENEVER=429 -KW_WHERE=430 -KW_WIDTH_BUCKET=431 -KW_WINDOW=432 -KW_WITH=433 -KW_WITHIN=434 -KW_WITHOUT=435 -KW_YEAR=436 -KW_ADD=437 -KW_AFTER=438 -KW_ASC=439 -KW_CASCADE=440 -KW_CATALOG=441 -KW_CENTURY=442 -KW_CONFIG=443 -KW_CONSTRAINTS=444 -KW_CUMULATE=445 -KW_DATA=446 -KW_DATABASE=447 -KW_DAYS=448 -KW_DECADE=449 -KW_DESC=450 -KW_DESCRIPTOR=451 -KW_DIV=452 -KW_ENGINE=453 -KW_EPOCH=454 -KW_EXCLUDING=455 -KW_FILE=456 -KW_FIRST=457 -KW_GENERATED=458 -KW_HOP=459 -KW_HOURS=460 -KW_IGNORE=461 -KW_INCLUDING=462 -KW_JAR=463 -KW_JARS=464 -KW_JAVA=465 -KW_KEY=466 -KW_LAST=467 -KW_LOAD=468 -KW_MAP=469 -KW_MICROSECOND=470 -KW_MILLENNIUM=471 -KW_MILLISECOND=472 -KW_MINUTES=473 -KW_MONTHS=474 -KW_NANOSECOND=475 -KW_NULLS=476 -KW_OPTIONS=477 -KW_PAST=478 -KW_PLAN=479 -KW_PRECEDING=480 -KW_PYTHON=481 -KW_PYTHON_ARCHIVES=482 -KW_PYTHON_DEPENDENCIES=483 -KW_PYTHON_FILES=484 -KW_PYTHON_JAR=485 -KW_PYTHON_PARAMETER=486 -KW_PYTHON_REQUIREMENTS=487 -KW_QUARTER=488 -KW_REMOVE=489 -KW_RESTRICT=490 -KW_SECONDS=491 -KW_SESSION=492 -KW_SETS=493 -KW_SIZE=494 -KW_SLIDE=495 -KW_STEP=496 -KW_TEMPORARY=497 -KW_TIMECOL=498 -KW_TUMBLE=499 -KW_UNLOAD=500 -KW_VIEW=501 -KW_WEEK=502 -KW_YEARS=503 -KW_ZONE=504 -EQUAL_SYMBOL=505 -GREATER_SYMBOL=506 -LESS_SYMBOL=507 -EXCLAMATION_SYMBOL=508 -BIT_NOT_OP=509 -BIT_OR_OP=510 -BIT_AND_OP=511 -BIT_XOR_OP=512 -DOT=513 -LS_BRACKET=514 -RS_BRACKET=515 -LR_BRACKET=516 -RR_BRACKET=517 -LB_BRACKET=518 -RB_BRACKET=519 -COMMA=520 -SEMICOLON=521 -AT_SIGN=522 -SINGLE_QUOTE_SYMB=523 -DOUBLE_QUOTE_SYMB=524 -REVERSE_QUOTE_SYMB=525 -COLON_SYMB=526 -ASTERISK_SIGN=527 -UNDERLINE_SIGN=528 -HYPNEN_SIGN=529 -ADD_SIGN=530 -PENCENT_SIGN=531 -DOUBLE_VERTICAL_SIGN=532 -DOUBLE_HYPNEN_SIGN=533 -SLASH_SIGN=534 -QUESTION_MARK_SIGN=535 -DOUBLE_RIGHT_ARROW=536 -STRING_LITERAL=537 -DIG_LITERAL=538 -REAL_LITERAL=539 -BIT_STRING=540 -ID_LITERAL=541 +KW_JSON=186 +KW_JSON_ARRAY=187 +KW_JSON_ARRAYAGG=188 +KW_JSON_EXECUTION_PLAN=189 +KW_JSON_EXISTS=190 +KW_JSON_OBJECT=191 +KW_JSON_OBJECTAGG=192 +KW_JSON_QUERY=193 +KW_JSON_VALUE=194 +KW_LAG=195 +KW_LANGUAGE=196 +KW_LARGE=197 +KW_LAST_VALUE=198 +KW_LATERAL=199 +KW_LEAD=200 +KW_LEADING=201 +KW_LEFT=202 +KW_LIKE=203 +KW_LIKE_REGEX=204 +KW_LIMIT=205 +KW_LN=206 +KW_LOCAL=207 +KW_LOCALTIME=208 +KW_LOCALTIMESTAMP=209 +KW_LOWER=210 +KW_MATCH=211 +KW_MATCHES=212 +KW_MATCH_NUMBER=213 +KW_MATCH_RECOGNIZE=214 +KW_MAX=215 +KW_MEASURES=216 +KW_MEMBER=217 +KW_MERGE=218 +KW_METADATA=219 +KW_METHOD=220 +KW_MIN=221 +KW_MINUS=222 +KW_MINUTE=223 +KW_MOD=224 +KW_MODIFIES=225 +KW_MODIFY=226 +KW_MODULE=227 +KW_MODULES=228 +KW_MONDAY=229 +KW_MONTH=230 +KW_MORE=231 +KW_MULTISET=232 +KW_NATIONAL=233 +KW_NATURAL=234 +KW_NCHAR=235 +KW_NCLOB=236 +KW_NEW=237 +KW_NEXT=238 +KW_NO=239 +KW_NONE=240 +KW_NORMALIZE=241 +KW_NOT=242 +KW_NTH_VALUE=243 +KW_NTILE=244 +KW_NULL=245 +KW_NULLIF=246 +KW_NUMERIC=247 +KW_OCCURRENCES_REGEX=248 +KW_OCTET_LENGTH=249 +KW_OF=250 +KW_OFFSET=251 +KW_OLD=252 +KW_OMIT=253 +KW_ON=254 +KW_ONE=255 +KW_ONLY=256 +KW_OPEN=257 +KW_OR=258 +KW_ORDER=259 +KW_ORDINAL=260 +KW_OUT=261 +KW_OUTER=262 +KW_OVER=263 +KW_OVERLAPS=264 +KW_OVERLAY=265 +KW_OVERWRITE=266 +KW_OVERWRITING=267 +KW_PARAMETER=268 +KW_PARTITION=269 +KW_PARTITIONED=270 +KW_PARTITIONS=271 +KW_PATTERN=272 +KW_PER=273 +KW_PERCENT=274 +KW_PERCENTILE_CONT=275 +KW_PERCENTILE_DISC=276 +KW_PERCENT_RANK=277 +KW_PERIOD=278 +KW_PERMUTE=279 +KW_PIVOT=280 +KW_PORTION=281 +KW_POSITION=282 +KW_POSITION_REGEX=283 +KW_POWER=284 +KW_PRECEDES=285 +KW_PRECISION=286 +KW_PREPARE=287 +KW_PREV=288 +KW_PRIMARY=289 +KW_PROCEDURE=290 +KW_QUALIFY=291 +KW_QUARTERS=292 +KW_RANGE=293 +KW_RANK=294 +KW_RAW=295 +KW_READS=296 +KW_REAL=297 +KW_RECURSIVE=298 +KW_REF=299 +KW_REFERENCES=300 +KW_REFERENCING=301 +KW_REGR_AVGX=302 +KW_REGR_AVGY=303 +KW_REGR_COUNT=304 +KW_REGR_INTERCEPT=305 +KW_REGR_R2=306 +KW_REGR_SLOPE=307 +KW_REGR_SXX=308 +KW_REGR_SXY=309 +KW_REGR_SYY=310 +KW_RELEASE=311 +KW_RENAME=312 +KW_RESET=313 +KW_RESULT=314 +KW_RETURN=315 +KW_RETURNS=316 +KW_REVOKE=317 +KW_RIGHT=318 +KW_RLIKE=319 +KW_ROLLBACK=320 +KW_ROLLUP=321 +KW_ROW=322 +KW_ROWS=323 +KW_ROW_NUMBER=324 +KW_RUNNING=325 +KW_SAFE_CAST=326 +KW_SAFE_OFFSET=327 +KW_SAFE_ORDINAL=328 +KW_SATURDAY=329 +KW_SAVEPOINT=330 +KW_SCALA=331 +KW_SCOPE=332 +KW_SCROLL=333 +KW_SEARCH=334 +KW_SECOND=335 +KW_SEEK=336 +KW_SELECT=337 +KW_SENSITIVE=338 +KW_SEPARATOR=339 +KW_SESSION_USER=340 +KW_SET=341 +KW_SHOW=342 +KW_SIMILAR=343 +KW_SKIP=344 +KW_SMALLINT=345 +KW_SOME=346 +KW_SPECIFIC=347 +KW_SPECIFICTYPE=348 +KW_SQL=349 +KW_SQLEXCEPTION=350 +KW_SQLSTATE=351 +KW_SQLWARNING=352 +KW_SQRT=353 +KW_START=354 +KW_STATEMENT=355 +KW_STATIC=356 +KW_STATISTICS=357 +KW_STDDEV_POP=358 +KW_STDDEV_SAMP=359 +KW_STREAM=360 +KW_STRING=361 +KW_STRING_AGG=362 +KW_SUBMULTISET=363 +KW_SUBSET=364 +KW_SUBSTRING=365 +KW_SUBSTRING_REGEX=366 +KW_SUCCEEDS=367 +KW_SUM=368 +KW_SUNDAY=369 +KW_SYMMETRIC=370 +KW_SYSTEM=371 +KW_SYSTEM_TIME=372 +KW_SYSTEM_USER=373 +KW_TABLE=374 +KW_TABLES=375 +KW_TABLESAMPLE=376 +KW_THEN=377 +KW_THURSDAY=378 +KW_TIME=379 +KW_TIMESTAMP=380 +KW_TIMESTAMP_DIFF=381 +KW_TIMESTAMP_LTZ=382 +KW_TIMESTAMP_TRUNC=383 +KW_TIMEZONE_HOUR=384 +KW_TIMEZONE_MINUTE=385 +KW_TIME_DIFF=386 +KW_TIME_TRUNC=387 +KW_TINYINT=388 +KW_TO=389 +KW_TRAILING=390 +KW_TRANSLATE=391 +KW_TRANSLATE_REGEX=392 +KW_TRANSLATION=393 +KW_TREAT=394 +KW_TRIGGER=395 +KW_TRIM=396 +KW_TRIM_ARRAY=397 +KW_TRUE=398 +KW_TRUNCATE=399 +KW_TRY_CAST=400 +KW_TUESDAY=401 +KW_UESCAPE=402 +KW_UNION=403 +KW_UNIQUE=404 +KW_UNKNOWN=405 +KW_UNNEST=406 +KW_UNPIVOT=407 +KW_UPDATE=408 +KW_UPPER=409 +KW_UPSERT=410 +KW_USE=411 +KW_USER=412 +KW_USING=413 +KW_VALUE=414 +KW_VALUES=415 +KW_VALUE_OF=416 +KW_VARBINARY=417 +KW_VARCHAR=418 +KW_VARYING=419 +KW_VAR_POP=420 +KW_VAR_SAMP=421 +KW_VERSIONING=422 +KW_VIEWS=423 +KW_VIRTUAL=424 +KW_WATERMARK=425 +KW_WATERMARKS=426 +KW_WEDNESDAY=427 +KW_WEEKS=428 +KW_WHEN=429 +KW_WHENEVER=430 +KW_WHERE=431 +KW_WIDTH_BUCKET=432 +KW_WINDOW=433 +KW_WITH=434 +KW_WITHIN=435 +KW_WITHOUT=436 +KW_YEAR=437 +KW_ADD=438 +KW_AFTER=439 +KW_ASC=440 +KW_CASCADE=441 +KW_CATALOG=442 +KW_CENTURY=443 +KW_CONFIG=444 +KW_CONSTRAINTS=445 +KW_CUMULATE=446 +KW_DATA=447 +KW_DATABASE=448 +KW_DAYS=449 +KW_DECADE=450 +KW_DESC=451 +KW_DESCRIPTOR=452 +KW_DIV=453 +KW_ENGINE=454 +KW_EPOCH=455 +KW_EXCLUDING=456 +KW_FILE=457 +KW_FIRST=458 +KW_GENERATED=459 +KW_HOP=460 +KW_HOURS=461 +KW_IGNORE=462 +KW_INCLUDING=463 +KW_JAR=464 +KW_JARS=465 +KW_JAVA=466 +KW_KEY=467 +KW_LAST=468 +KW_LOAD=469 +KW_MAP=470 +KW_MICROSECOND=471 +KW_MILLENNIUM=472 +KW_MILLISECOND=473 +KW_MINUTES=474 +KW_MONTHS=475 +KW_NANOSECOND=476 +KW_NULLS=477 +KW_OPTIONS=478 +KW_PAST=479 +KW_PLAN=480 +KW_PRECEDING=481 +KW_PYTHON=482 +KW_PYTHON_ARCHIVES=483 +KW_PYTHON_DEPENDENCIES=484 +KW_PYTHON_FILES=485 +KW_PYTHON_JAR=486 +KW_PYTHON_PARAMETER=487 +KW_PYTHON_REQUIREMENTS=488 +KW_QUARTER=489 +KW_REMOVE=490 +KW_RESTRICT=491 +KW_SECONDS=492 +KW_SESSION=493 +KW_SETS=494 +KW_SIZE=495 +KW_SLIDE=496 +KW_STEP=497 +KW_TEMPORARY=498 +KW_TIMECOL=499 +KW_TUMBLE=500 +KW_UNLOAD=501 +KW_VIEW=502 +KW_WEEK=503 +KW_YEARS=504 +KW_ZONE=505 +EQUAL_SYMBOL=506 +GREATER_SYMBOL=507 +LESS_SYMBOL=508 +EXCLAMATION_SYMBOL=509 +BIT_NOT_OP=510 +BIT_OR_OP=511 +BIT_AND_OP=512 +BIT_XOR_OP=513 +DOT=514 +LS_BRACKET=515 +RS_BRACKET=516 +LR_BRACKET=517 +RR_BRACKET=518 +LB_BRACKET=519 +RB_BRACKET=520 +COMMA=521 +SEMICOLON=522 +AT_SIGN=523 +SINGLE_QUOTE_SYMB=524 +DOUBLE_QUOTE_SYMB=525 +REVERSE_QUOTE_SYMB=526 +COLON_SYMB=527 +ASTERISK_SIGN=528 +UNDERLINE_SIGN=529 +HYPHEN_SIGN=530 +ADD_SIGN=531 +PERCENT_SIGN=532 +DOUBLE_VERTICAL_SIGN=533 +DOUBLE_HYPHEN_SIGN=534 +SLASH_SIGN=535 +QUESTION_MARK_SIGN=536 +DOUBLE_RIGHT_ARROW=537 +STRING_LITERAL=538 +DIG_LITERAL=539 +REAL_LITERAL=540 +BIT_STRING=541 +ID_LITERAL=542 'ABS'=4 'ALL'=5 'ALLOCATE'=6 @@ -721,354 +722,355 @@ ID_LITERAL=541 'INTO'=183 'IS'=184 'JOIN'=185 -'JSON_ARRAY'=186 -'JSON_ARRAYAGG'=187 -'JSON_EXECUTION_PLAN'=188 -'JSON_EXISTS'=189 -'JSON_OBJECT'=190 -'JSON_OBJECTAGG'=191 -'JSON_QUERY'=192 -'JSON_VALUE'=193 -'LAG'=194 -'LANGUAGE'=195 -'LARGE'=196 -'LAST_VALUE'=197 -'LATERAL'=198 -'LEAD'=199 -'LEADING'=200 -'LEFT'=201 -'LIKE'=202 -'LIKE_REGEX'=203 -'LIMIT'=204 -'LN'=205 -'LOCAL'=206 -'LOCALTIME'=207 -'LOCALTIMESTAMP'=208 -'LOWER'=209 -'MATCH'=210 -'MATCHES'=211 -'MATCH_NUMBER'=212 -'MATCH_RECOGNIZE'=213 -'MAX'=214 -'MEASURES'=215 -'MEMBER'=216 -'MERGE'=217 -'METADATA'=218 -'METHOD'=219 -'MIN'=220 -'MINUS'=221 -'MINUTE'=222 -'MOD'=223 -'MODIFIES'=224 -'MODIFY'=225 -'MODULE'=226 -'MODULES'=227 -'MONDAY'=228 -'MONTH'=229 -'MORE'=230 -'MULTISET'=231 -'NATIONAL'=232 -'NATURAL'=233 -'NCHAR'=234 -'NCLOB'=235 -'NEW'=236 -'NEXT'=237 -'NO'=238 -'NONE'=239 -'NORMALIZE'=240 -'NOT'=241 -'NTH_VALUE'=242 -'NTILE'=243 -'NULL'=244 -'NULLIF'=245 -'NUMERIC'=246 -'OCCURRENCES_REGEX'=247 -'OCTET_LENGTH'=248 -'OF'=249 -'OFFSET'=250 -'OLD'=251 -'OMIT'=252 -'ON'=253 -'ONE'=254 -'ONLY'=255 -'OPEN'=256 -'OR'=257 -'ORDER'=258 -'ORDINAL'=259 -'OUT'=260 -'OUTER'=261 -'OVER'=262 -'OVERLAPS'=263 -'OVERLAY'=264 -'OVERWRITE'=265 -'OVERWRITING'=266 -'PARAMETER'=267 -'PARTITION'=268 -'PARTITIONED'=269 -'PARTITIONS'=270 -'PATTERN'=271 -'PER'=272 -'PERCENT'=273 -'PERCENTILE_CONT'=274 -'PERCENTILE_DISC'=275 -'PERCENT_RANK'=276 -'PERIOD'=277 -'PERMUTE'=278 -'PIVOT'=279 -'PORTION'=280 -'POSITION'=281 -'POSITION_REGEX'=282 -'POWER'=283 -'PRECEDES'=284 -'PRECISION'=285 -'PREPARE'=286 -'PREV'=287 -'PRIMARY'=288 -'PROCEDURE'=289 -'QUALIFY'=290 -'QUARTERS'=291 -'RANGE'=292 -'RANK'=293 -'RAW'=294 -'READS'=295 -'REAL'=296 -'RECURSIVE'=297 -'REF'=298 -'REFERENCES'=299 -'REFERENCING'=300 -'REGR_AVGX'=301 -'REGR_AVGY'=302 -'REGR_COUNT'=303 -'REGR_INTERCEPT'=304 -'REGR_R2'=305 -'REGR_SLOPE'=306 -'REGR_SXX'=307 -'REGR_SXY'=308 -'REGR_SYY'=309 -'RELEASE'=310 -'RENAME'=311 -'RESET'=312 -'RESULT'=313 -'RETURN'=314 -'RETURNS'=315 -'REVOKE'=316 -'RIGHT'=317 -'RLIKE'=318 -'ROLLBACK'=319 -'ROLLUP'=320 -'ROW'=321 -'ROWS'=322 -'ROW_NUMBER'=323 -'RUNNING'=324 -'SAFE_CAST'=325 -'SAFE_OFFSET'=326 -'SAFE_ORDINAL'=327 -'SATURDAY'=328 -'SAVEPOINT'=329 -'SCALA'=330 -'SCOPE'=331 -'SCROLL'=332 -'SEARCH'=333 -'SECOND'=334 -'SEEK'=335 -'SELECT'=336 -'SENSITIVE'=337 -'SEPARATOR'=338 -'SESSION_USER'=339 -'SET'=340 -'SHOW'=341 -'SIMILAR'=342 -'SKIP'=343 -'SMALLINT'=344 -'SOME'=345 -'SPECIFIC'=346 -'SPECIFICTYPE'=347 -'SQL'=348 -'SQLEXCEPTION'=349 -'SQLSTATE'=350 -'SQLWARNING'=351 -'SQRT'=352 -'START'=353 -'STATEMENT'=354 -'STATIC'=355 -'STATISTICS'=356 -'STDDEV_POP'=357 -'STDDEV_SAMP'=358 -'STREAM'=359 -'STRING'=360 -'STRING_AGG'=361 -'SUBMULTISET'=362 -'SUBSET'=363 -'SUBSTRING'=364 -'SUBSTRING_REGEX'=365 -'SUCCEEDS'=366 -'SUM'=367 -'SUNDAY'=368 -'SYMMETRIC'=369 -'SYSTEM'=370 -'SYSTEM_TIME'=371 -'SYSTEM_USER'=372 -'TABLE'=373 -'TABLES'=374 -'TABLESAMPLE'=375 -'THEN'=376 -'THURSDAY'=377 -'TIME'=378 -'TIMESTAMP'=379 -'TIMESTAMP_DIFF'=380 -'TIMESTAMP_LTZ'=381 -'TIMESTAMP_TRUNC'=382 -'TIMEZONE_HOUR'=383 -'TIMEZONE_MINUTE'=384 -'TIME_DIFF'=385 -'TIME_TRUNC'=386 -'TINYINT'=387 -'TO'=388 -'TRAILING'=389 -'TRANSLATE'=390 -'TRANSLATE_REGEX'=391 -'TRANSLATION'=392 -'TREAT'=393 -'TRIGGER'=394 -'TRIM'=395 -'TRIM_ARRAY'=396 -'TRUE'=397 -'TRUNCATE'=398 -'TRY_CAST'=399 -'TUESDAY'=400 -'UESCAPE'=401 -'UNION'=402 -'UNIQUE'=403 -'UNKNOWN'=404 -'UNNEST'=405 -'UNPIVOT'=406 -'UPDATE'=407 -'UPPER'=408 -'UPSERT'=409 -'USE'=410 -'USER'=411 -'USING'=412 -'VALUE'=413 -'VALUES'=414 -'VALUE_OF'=415 -'VARBINARY'=416 -'VARCHAR'=417 -'VARYING'=418 -'VAR_POP'=419 -'VAR_SAMP'=420 -'VERSIONING'=421 -'VIEWS'=422 -'VIRTUAL'=423 -'WATERMARK'=424 -'WATERMARKS'=425 -'WEDNESDAY'=426 -'WEEKS'=427 -'WHEN'=428 -'WHENEVER'=429 -'WHERE'=430 -'WIDTH_BUCKET'=431 -'WINDOW'=432 -'WITH'=433 -'WITHIN'=434 -'WITHOUT'=435 -'YEAR'=436 -'ADD'=437 -'AFTER'=438 -'ASC'=439 -'CASCADE'=440 -'CATALOG'=441 -'CENTURY'=442 -'CONFIG'=443 -'CONSTRAINTS'=444 -'CUMULATE'=445 -'DATA'=446 -'DATABASE'=447 -'DAYS'=448 -'DECADE'=449 -'DESC'=450 -'DESCRIPTOR'=451 -'DIV'=452 -'ENGINE'=453 -'EPOCH'=454 -'EXCLUDING'=455 -'FILE'=456 -'FIRST'=457 -'GENERATED'=458 -'HOP'=459 -'HOURS'=460 -'IGNORE'=461 -'INCLUDING'=462 -'JAR'=463 -'JARS'=464 -'JAVA'=465 -'KEY'=466 -'LAST'=467 -'LOAD'=468 -'MAP'=469 -'MICROSECOND'=470 -'MILLENNIUM'=471 -'MILLISECOND'=472 -'MINUTES'=473 -'MONTHS'=474 -'NANOSECOND'=475 -'NULLS'=476 -'OPTIONS'=477 -'PAST'=478 -'PLAN'=479 -'PRECEDING'=480 -'PYTHON'=481 -'PYTHON_ARCHIVES'=482 -'PYTHON_DEPENDENCIES'=483 -'PYTHON_FILES'=484 -'PYTHON_JAR'=485 -'PYTHON_PARAMETER'=486 -'PYTHON_REQUIREMENTS'=487 -'QUARTER'=488 -'REMOVE'=489 -'RESTRICT'=490 -'SECONDS'=491 -'SESSION'=492 -'SETS'=493 -'SIZE'=494 -'SLIDE'=495 -'STEP'=496 -'TEMPORARY'=497 -'TIMECOL'=498 -'TUMBLE'=499 -'UNLOAD'=500 -'VIEW'=501 -'WEEK'=502 -'YEARS'=503 -'ZONE'=504 -'='=505 -'>'=506 -'<'=507 -'!'=508 -'~'=509 -'|'=510 -'&'=511 -'^'=512 -'.'=513 -'['=514 -']'=515 -'('=516 -')'=517 -'{'=518 -'}'=519 -','=520 -';'=521 -'@'=522 -'\''=523 -'"'=524 -'`'=525 -':'=526 -'*'=527 -'_'=528 -'-'=529 -'+'=530 -'%'=531 -'||'=532 -'--'=533 -'/'=534 -'?'=535 -'=>'=536 +'JSON'=186 +'JSON_ARRAY'=187 +'JSON_ARRAYAGG'=188 +'JSON_EXECUTION_PLAN'=189 +'JSON_EXISTS'=190 +'JSON_OBJECT'=191 +'JSON_OBJECTAGG'=192 +'JSON_QUERY'=193 +'JSON_VALUE'=194 +'LAG'=195 +'LANGUAGE'=196 +'LARGE'=197 +'LAST_VALUE'=198 +'LATERAL'=199 +'LEAD'=200 +'LEADING'=201 +'LEFT'=202 +'LIKE'=203 +'LIKE_REGEX'=204 +'LIMIT'=205 +'LN'=206 +'LOCAL'=207 +'LOCALTIME'=208 +'LOCALTIMESTAMP'=209 +'LOWER'=210 +'MATCH'=211 +'MATCHES'=212 +'MATCH_NUMBER'=213 +'MATCH_RECOGNIZE'=214 +'MAX'=215 +'MEASURES'=216 +'MEMBER'=217 +'MERGE'=218 +'METADATA'=219 +'METHOD'=220 +'MIN'=221 +'MINUS'=222 +'MINUTE'=223 +'MOD'=224 +'MODIFIES'=225 +'MODIFY'=226 +'MODULE'=227 +'MODULES'=228 +'MONDAY'=229 +'MONTH'=230 +'MORE'=231 +'MULTISET'=232 +'NATIONAL'=233 +'NATURAL'=234 +'NCHAR'=235 +'NCLOB'=236 +'NEW'=237 +'NEXT'=238 +'NO'=239 +'NONE'=240 +'NORMALIZE'=241 +'NOT'=242 +'NTH_VALUE'=243 +'NTILE'=244 +'NULL'=245 +'NULLIF'=246 +'NUMERIC'=247 +'OCCURRENCES_REGEX'=248 +'OCTET_LENGTH'=249 +'OF'=250 +'OFFSET'=251 +'OLD'=252 +'OMIT'=253 +'ON'=254 +'ONE'=255 +'ONLY'=256 +'OPEN'=257 +'OR'=258 +'ORDER'=259 +'ORDINAL'=260 +'OUT'=261 +'OUTER'=262 +'OVER'=263 +'OVERLAPS'=264 +'OVERLAY'=265 +'OVERWRITE'=266 +'OVERWRITING'=267 +'PARAMETER'=268 +'PARTITION'=269 +'PARTITIONED'=270 +'PARTITIONS'=271 +'PATTERN'=272 +'PER'=273 +'PERCENT'=274 +'PERCENTILE_CONT'=275 +'PERCENTILE_DISC'=276 +'PERCENT_RANK'=277 +'PERIOD'=278 +'PERMUTE'=279 +'PIVOT'=280 +'PORTION'=281 +'POSITION'=282 +'POSITION_REGEX'=283 +'POWER'=284 +'PRECEDES'=285 +'PRECISION'=286 +'PREPARE'=287 +'PREV'=288 +'PRIMARY'=289 +'PROCEDURE'=290 +'QUALIFY'=291 +'QUARTERS'=292 +'RANGE'=293 +'RANK'=294 +'RAW'=295 +'READS'=296 +'REAL'=297 +'RECURSIVE'=298 +'REF'=299 +'REFERENCES'=300 +'REFERENCING'=301 +'REGR_AVGX'=302 +'REGR_AVGY'=303 +'REGR_COUNT'=304 +'REGR_INTERCEPT'=305 +'REGR_R2'=306 +'REGR_SLOPE'=307 +'REGR_SXX'=308 +'REGR_SXY'=309 +'REGR_SYY'=310 +'RELEASE'=311 +'RENAME'=312 +'RESET'=313 +'RESULT'=314 +'RETURN'=315 +'RETURNS'=316 +'REVOKE'=317 +'RIGHT'=318 +'RLIKE'=319 +'ROLLBACK'=320 +'ROLLUP'=321 +'ROW'=322 +'ROWS'=323 +'ROW_NUMBER'=324 +'RUNNING'=325 +'SAFE_CAST'=326 +'SAFE_OFFSET'=327 +'SAFE_ORDINAL'=328 +'SATURDAY'=329 +'SAVEPOINT'=330 +'SCALA'=331 +'SCOPE'=332 +'SCROLL'=333 +'SEARCH'=334 +'SECOND'=335 +'SEEK'=336 +'SELECT'=337 +'SENSITIVE'=338 +'SEPARATOR'=339 +'SESSION_USER'=340 +'SET'=341 +'SHOW'=342 +'SIMILAR'=343 +'SKIP'=344 +'SMALLINT'=345 +'SOME'=346 +'SPECIFIC'=347 +'SPECIFICTYPE'=348 +'SQL'=349 +'SQLEXCEPTION'=350 +'SQLSTATE'=351 +'SQLWARNING'=352 +'SQRT'=353 +'START'=354 +'STATEMENT'=355 +'STATIC'=356 +'STATISTICS'=357 +'STDDEV_POP'=358 +'STDDEV_SAMP'=359 +'STREAM'=360 +'STRING'=361 +'STRING_AGG'=362 +'SUBMULTISET'=363 +'SUBSET'=364 +'SUBSTRING'=365 +'SUBSTRING_REGEX'=366 +'SUCCEEDS'=367 +'SUM'=368 +'SUNDAY'=369 +'SYMMETRIC'=370 +'SYSTEM'=371 +'SYSTEM_TIME'=372 +'SYSTEM_USER'=373 +'TABLE'=374 +'TABLES'=375 +'TABLESAMPLE'=376 +'THEN'=377 +'THURSDAY'=378 +'TIME'=379 +'TIMESTAMP'=380 +'TIMESTAMP_DIFF'=381 +'TIMESTAMP_LTZ'=382 +'TIMESTAMP_TRUNC'=383 +'TIMEZONE_HOUR'=384 +'TIMEZONE_MINUTE'=385 +'TIME_DIFF'=386 +'TIME_TRUNC'=387 +'TINYINT'=388 +'TO'=389 +'TRAILING'=390 +'TRANSLATE'=391 +'TRANSLATE_REGEX'=392 +'TRANSLATION'=393 +'TREAT'=394 +'TRIGGER'=395 +'TRIM'=396 +'TRIM_ARRAY'=397 +'TRUE'=398 +'TRUNCATE'=399 +'TRY_CAST'=400 +'TUESDAY'=401 +'UESCAPE'=402 +'UNION'=403 +'UNIQUE'=404 +'UNKNOWN'=405 +'UNNEST'=406 +'UNPIVOT'=407 +'UPDATE'=408 +'UPPER'=409 +'UPSERT'=410 +'USE'=411 +'USER'=412 +'USING'=413 +'VALUE'=414 +'VALUES'=415 +'VALUE_OF'=416 +'VARBINARY'=417 +'VARCHAR'=418 +'VARYING'=419 +'VAR_POP'=420 +'VAR_SAMP'=421 +'VERSIONING'=422 +'VIEWS'=423 +'VIRTUAL'=424 +'WATERMARK'=425 +'WATERMARKS'=426 +'WEDNESDAY'=427 +'WEEKS'=428 +'WHEN'=429 +'WHENEVER'=430 +'WHERE'=431 +'WIDTH_BUCKET'=432 +'WINDOW'=433 +'WITH'=434 +'WITHIN'=435 +'WITHOUT'=436 +'YEAR'=437 +'ADD'=438 +'AFTER'=439 +'ASC'=440 +'CASCADE'=441 +'CATALOG'=442 +'CENTURY'=443 +'CONFIG'=444 +'CONSTRAINTS'=445 +'CUMULATE'=446 +'DATA'=447 +'DATABASE'=448 +'DAYS'=449 +'DECADE'=450 +'DESC'=451 +'DESCRIPTOR'=452 +'DIV'=453 +'ENGINE'=454 +'EPOCH'=455 +'EXCLUDING'=456 +'FILE'=457 +'FIRST'=458 +'GENERATED'=459 +'HOP'=460 +'HOURS'=461 +'IGNORE'=462 +'INCLUDING'=463 +'JAR'=464 +'JARS'=465 +'JAVA'=466 +'KEY'=467 +'LAST'=468 +'LOAD'=469 +'MAP'=470 +'MICROSECOND'=471 +'MILLENNIUM'=472 +'MILLISECOND'=473 +'MINUTES'=474 +'MONTHS'=475 +'NANOSECOND'=476 +'NULLS'=477 +'OPTIONS'=478 +'PAST'=479 +'PLAN'=480 +'PRECEDING'=481 +'PYTHON'=482 +'PYTHON_ARCHIVES'=483 +'PYTHON_DEPENDENCIES'=484 +'PYTHON_FILES'=485 +'PYTHON_JAR'=486 +'PYTHON_PARAMETER'=487 +'PYTHON_REQUIREMENTS'=488 +'QUARTER'=489 +'REMOVE'=490 +'RESTRICT'=491 +'SECONDS'=492 +'SESSION'=493 +'SETS'=494 +'SIZE'=495 +'SLIDE'=496 +'STEP'=497 +'TEMPORARY'=498 +'TIMECOL'=499 +'TUMBLE'=500 +'UNLOAD'=501 +'VIEW'=502 +'WEEK'=503 +'YEARS'=504 +'ZONE'=505 +'='=506 +'>'=507 +'<'=508 +'!'=509 +'~'=510 +'|'=511 +'&'=512 +'^'=513 +'.'=514 +'['=515 +']'=516 +'('=517 +')'=518 +'{'=519 +'}'=520 +','=521 +';'=522 +'@'=523 +'\''=524 +'"'=525 +'`'=526 +':'=527 +'*'=528 +'_'=529 +'-'=530 +'+'=531 +'%'=532 +'||'=533 +'--'=534 +'/'=535 +'?'=536 +'=>'=537 diff --git a/src/lib/flink/FlinkSqlLexer.ts b/src/lib/flink/FlinkSqlLexer.ts index 907c68b2d..a2b191fdf 100644 --- a/src/lib/flink/FlinkSqlLexer.ts +++ b/src/lib/flink/FlinkSqlLexer.ts @@ -536,11 +536,11 @@ export class FlinkSqlLexer extends antlr.Lexer { public static readonly COLON_SYMB = 527; public static readonly ASTERISK_SIGN = 528; public static readonly UNDERLINE_SIGN = 529; - public static readonly HYPNEN_SIGN = 530; + public static readonly HYPHEN_SIGN = 530; public static readonly ADD_SIGN = 531; - public static readonly PENCENT_SIGN = 532; + public static readonly PERCENT_SIGN = 532; public static readonly DOUBLE_VERTICAL_SIGN = 533; - public static readonly DOUBLE_HYPNEN_SIGN = 534; + public static readonly DOUBLE_HYPHEN_SIGN = 534; public static readonly SLASH_SIGN = 535; public static readonly QUESTION_MARK_SIGN = 536; public static readonly DOUBLE_RIGHT_ARROW = 537; @@ -760,8 +760,8 @@ export class FlinkSqlLexer extends antlr.Lexer { "BIT_AND_OP", "BIT_XOR_OP", "DOT", "LS_BRACKET", "RS_BRACKET", "LR_BRACKET", "RR_BRACKET", "LB_BRACKET", "RB_BRACKET", "COMMA", "SEMICOLON", "AT_SIGN", "SINGLE_QUOTE_SYMB", "DOUBLE_QUOTE_SYMB", "REVERSE_QUOTE_SYMB", - "COLON_SYMB", "ASTERISK_SIGN", "UNDERLINE_SIGN", "HYPNEN_SIGN", - "ADD_SIGN", "PENCENT_SIGN", "DOUBLE_VERTICAL_SIGN", "DOUBLE_HYPNEN_SIGN", + "COLON_SYMB", "ASTERISK_SIGN", "UNDERLINE_SIGN", "HYPHEN_SIGN", + "ADD_SIGN", "PERCENT_SIGN", "DOUBLE_VERTICAL_SIGN", "DOUBLE_HYPHEN_SIGN", "SLASH_SIGN", "QUESTION_MARK_SIGN", "DOUBLE_RIGHT_ARROW", "STRING_LITERAL", "DIG_LITERAL", "REAL_LITERAL", "BIT_STRING", "ID_LITERAL" ]; @@ -875,8 +875,8 @@ export class FlinkSqlLexer extends antlr.Lexer { "BIT_AND_OP", "BIT_XOR_OP", "DOT", "LS_BRACKET", "RS_BRACKET", "LR_BRACKET", "RR_BRACKET", "LB_BRACKET", "RB_BRACKET", "COMMA", "SEMICOLON", "AT_SIGN", "SINGLE_QUOTE_SYMB", "DOUBLE_QUOTE_SYMB", "REVERSE_QUOTE_SYMB", - "COLON_SYMB", "ASTERISK_SIGN", "UNDERLINE_SIGN", "HYPNEN_SIGN", - "ADD_SIGN", "PENCENT_SIGN", "DOUBLE_VERTICAL_SIGN", "DOUBLE_HYPNEN_SIGN", + "COLON_SYMB", "ASTERISK_SIGN", "UNDERLINE_SIGN", "HYPHEN_SIGN", + "ADD_SIGN", "PERCENT_SIGN", "DOUBLE_VERTICAL_SIGN", "DOUBLE_HYPHEN_SIGN", "SLASH_SIGN", "QUESTION_MARK_SIGN", "DOUBLE_RIGHT_ARROW", "STRING_LITERAL", "DIG_LITERAL", "REAL_LITERAL", "BIT_STRING", "ID_LITERAL", "JAR_FILE_PARTTARN", "EXPONENT_NUM_PART", "ID_LITERAL_FRAG", "DEC_DIGIT", "DEC_LETTER", diff --git a/src/lib/flink/FlinkSqlParser.interp b/src/lib/flink/FlinkSqlParser.interp index 0374ddf51..ac7a3b4da 100644 --- a/src/lib/flink/FlinkSqlParser.interp +++ b/src/lib/flink/FlinkSqlParser.interp @@ -1074,11 +1074,11 @@ REVERSE_QUOTE_SYMB COLON_SYMB ASTERISK_SIGN UNDERLINE_SIGN -HYPNEN_SIGN +HYPHEN_SIGN ADD_SIGN -PENCENT_SIGN +PERCENT_SIGN DOUBLE_VERTICAL_SIGN -DOUBLE_HYPNEN_SIGN +DOUBLE_HYPHEN_SIGN SLASH_SIGN QUESTION_MARK_SIGN DOUBLE_RIGHT_ARROW @@ -1101,12 +1101,12 @@ explainDetails explainDetail useStatement useModuleStatement -showStatememt +showStatement loadStatement -unloadStatememt -setStatememt -resetStatememt -jarStatememt +unloadStatement +setStatement +resetStatement +jarStatement dtAddStatement dtFilePath createTable @@ -1168,7 +1168,7 @@ valuesRowDefinition insertMulStatementCompatibility insertMulStatement queryStatement -valuesCaluse +valuesClause withClause withItem withItemName @@ -1183,9 +1183,9 @@ tablePrimary systemTimePeriod dateTimeExpression inlineDataValueClause -windoTVFClause -windowTVFExression -windoTVFName +windowTVFClause +windowTVFExpression +windowTVFName windowTVFParam timeIntervalParamName columnDescriptor @@ -1194,7 +1194,7 @@ whereClause groupByClause groupItemDefinition groupingSets -groupingSetsNotaionName +groupingSetsNotationName groupWindowFunction groupWindowFunctionName timeAttrColumn @@ -1203,17 +1203,17 @@ windowClause namedWindow windowSpec matchRecognizeClause -orderByCaluse -orderItemDefition +orderByClause +orderItemDefinition limitClause partitionByClause quantifiers measuresClause -patternDefination +patternDefinition patternVariable outputMode afterMatchStrategy -patternVariablesDefination +patternVariablesDefinition windowFrame frameBound withinClause diff --git a/src/lib/flink/FlinkSqlParser.tokens b/src/lib/flink/FlinkSqlParser.tokens index 5a84d4098..346ab4ca5 100644 --- a/src/lib/flink/FlinkSqlParser.tokens +++ b/src/lib/flink/FlinkSqlParser.tokens @@ -527,11 +527,11 @@ REVERSE_QUOTE_SYMB=526 COLON_SYMB=527 ASTERISK_SIGN=528 UNDERLINE_SIGN=529 -HYPNEN_SIGN=530 +HYPHEN_SIGN=530 ADD_SIGN=531 -PENCENT_SIGN=532 +PERCENT_SIGN=532 DOUBLE_VERTICAL_SIGN=533 -DOUBLE_HYPNEN_SIGN=534 +DOUBLE_HYPHEN_SIGN=534 SLASH_SIGN=535 QUESTION_MARK_SIGN=536 DOUBLE_RIGHT_ARROW=537 diff --git a/src/lib/flink/FlinkSqlParser.ts b/src/lib/flink/FlinkSqlParser.ts index b6d625e89..2fad4df25 100644 --- a/src/lib/flink/FlinkSqlParser.ts +++ b/src/lib/flink/FlinkSqlParser.ts @@ -546,11 +546,11 @@ export class FlinkSqlParser extends SQLParserBase { public static readonly COLON_SYMB = 527; public static readonly ASTERISK_SIGN = 528; public static readonly UNDERLINE_SIGN = 529; - public static readonly HYPNEN_SIGN = 530; + public static readonly HYPHEN_SIGN = 530; public static readonly ADD_SIGN = 531; - public static readonly PENCENT_SIGN = 532; + public static readonly PERCENT_SIGN = 532; public static readonly DOUBLE_VERTICAL_SIGN = 533; - public static readonly DOUBLE_HYPNEN_SIGN = 534; + public static readonly DOUBLE_HYPHEN_SIGN = 534; public static readonly SLASH_SIGN = 535; public static readonly QUESTION_MARK_SIGN = 536; public static readonly DOUBLE_RIGHT_ARROW = 537; @@ -571,12 +571,12 @@ export class FlinkSqlParser extends SQLParserBase { public static readonly RULE_explainDetail = 9; public static readonly RULE_useStatement = 10; public static readonly RULE_useModuleStatement = 11; - public static readonly RULE_showStatememt = 12; + public static readonly RULE_showStatement = 12; public static readonly RULE_loadStatement = 13; - public static readonly RULE_unloadStatememt = 14; - public static readonly RULE_setStatememt = 15; - public static readonly RULE_resetStatememt = 16; - public static readonly RULE_jarStatememt = 17; + public static readonly RULE_unloadStatement = 14; + public static readonly RULE_setStatement = 15; + public static readonly RULE_resetStatement = 16; + public static readonly RULE_jarStatement = 17; public static readonly RULE_dtAddStatement = 18; public static readonly RULE_dtFilePath = 19; public static readonly RULE_createTable = 20; @@ -638,7 +638,7 @@ export class FlinkSqlParser extends SQLParserBase { public static readonly RULE_insertMulStatementCompatibility = 76; public static readonly RULE_insertMulStatement = 77; public static readonly RULE_queryStatement = 78; - public static readonly RULE_valuesCaluse = 79; + public static readonly RULE_valuesClause = 79; public static readonly RULE_withClause = 80; public static readonly RULE_withItem = 81; public static readonly RULE_withItemName = 82; @@ -653,9 +653,9 @@ export class FlinkSqlParser extends SQLParserBase { public static readonly RULE_systemTimePeriod = 91; public static readonly RULE_dateTimeExpression = 92; public static readonly RULE_inlineDataValueClause = 93; - public static readonly RULE_windoTVFClause = 94; - public static readonly RULE_windowTVFExression = 95; - public static readonly RULE_windoTVFName = 96; + public static readonly RULE_windowTVFClause = 94; + public static readonly RULE_windowTVFExpression = 95; + public static readonly RULE_windowTVFName = 96; public static readonly RULE_windowTVFParam = 97; public static readonly RULE_timeIntervalParamName = 98; public static readonly RULE_columnDescriptor = 99; @@ -664,7 +664,7 @@ export class FlinkSqlParser extends SQLParserBase { public static readonly RULE_groupByClause = 102; public static readonly RULE_groupItemDefinition = 103; public static readonly RULE_groupingSets = 104; - public static readonly RULE_groupingSetsNotaionName = 105; + public static readonly RULE_groupingSetsNotationName = 105; public static readonly RULE_groupWindowFunction = 106; public static readonly RULE_groupWindowFunctionName = 107; public static readonly RULE_timeAttrColumn = 108; @@ -673,17 +673,17 @@ export class FlinkSqlParser extends SQLParserBase { public static readonly RULE_namedWindow = 111; public static readonly RULE_windowSpec = 112; public static readonly RULE_matchRecognizeClause = 113; - public static readonly RULE_orderByCaluse = 114; - public static readonly RULE_orderItemDefition = 115; + public static readonly RULE_orderByClause = 114; + public static readonly RULE_orderItemDefinition = 115; public static readonly RULE_limitClause = 116; public static readonly RULE_partitionByClause = 117; public static readonly RULE_quantifiers = 118; public static readonly RULE_measuresClause = 119; - public static readonly RULE_patternDefination = 120; + public static readonly RULE_patternDefinition = 120; public static readonly RULE_patternVariable = 121; public static readonly RULE_outputMode = 122; public static readonly RULE_afterMatchStrategy = 123; - public static readonly RULE_patternVariablesDefination = 124; + public static readonly RULE_patternVariablesDefinition = 124; public static readonly RULE_windowFrame = 125; public static readonly RULE_frameBound = 126; public static readonly RULE_withinClause = 127; @@ -958,8 +958,8 @@ export class FlinkSqlParser extends SQLParserBase { "BIT_AND_OP", "BIT_XOR_OP", "DOT", "LS_BRACKET", "RS_BRACKET", "LR_BRACKET", "RR_BRACKET", "LB_BRACKET", "RB_BRACKET", "COMMA", "SEMICOLON", "AT_SIGN", "SINGLE_QUOTE_SYMB", "DOUBLE_QUOTE_SYMB", "REVERSE_QUOTE_SYMB", - "COLON_SYMB", "ASTERISK_SIGN", "UNDERLINE_SIGN", "HYPNEN_SIGN", - "ADD_SIGN", "PENCENT_SIGN", "DOUBLE_VERTICAL_SIGN", "DOUBLE_HYPNEN_SIGN", + "COLON_SYMB", "ASTERISK_SIGN", "UNDERLINE_SIGN", "HYPHEN_SIGN", + "ADD_SIGN", "PERCENT_SIGN", "DOUBLE_VERTICAL_SIGN", "DOUBLE_HYPHEN_SIGN", "SLASH_SIGN", "QUESTION_MARK_SIGN", "DOUBLE_RIGHT_ARROW", "STRING_LITERAL", "DIG_LITERAL", "REAL_LITERAL", "BIT_STRING", "ID_LITERAL" ]; @@ -967,8 +967,8 @@ export class FlinkSqlParser extends SQLParserBase { "program", "singleStatement", "sqlStatement", "emptyStatement", "ddlStatement", "dmlStatement", "describeStatement", "explainStatement", "explainDetails", "explainDetail", "useStatement", "useModuleStatement", - "showStatememt", "loadStatement", "unloadStatememt", "setStatememt", - "resetStatememt", "jarStatememt", "dtAddStatement", "dtFilePath", + "showStatement", "loadStatement", "unloadStatement", "setStatement", + "resetStatement", "jarStatement", "dtAddStatement", "dtFilePath", "createTable", "simpleCreateTable", "createTableAsSelect", "columnOptionDefinition", "physicalColumnDefinition", "columnNameCreate", "columnName", "columnNameList", "columnType", "lengthOneDimension", "lengthTwoOptionalDimension", @@ -984,18 +984,18 @@ export class FlinkSqlParser extends SQLParserBase { "dropCatalog", "dropTable", "dropDatabase", "dropView", "dropFunction", "insertStatement", "insertSimpleStatement", "insertPartitionDefinition", "valuesDefinition", "valuesRowDefinition", "insertMulStatementCompatibility", - "insertMulStatement", "queryStatement", "valuesCaluse", "withClause", + "insertMulStatement", "queryStatement", "valuesClause", "withClause", "withItem", "withItemName", "selectStatement", "selectClause", "projectItemDefinition", "overWindowItem", "fromClause", "tableExpression", "tableReference", "tablePrimary", "systemTimePeriod", "dateTimeExpression", "inlineDataValueClause", - "windoTVFClause", "windowTVFExression", "windoTVFName", "windowTVFParam", + "windowTVFClause", "windowTVFExpression", "windowTVFName", "windowTVFParam", "timeIntervalParamName", "columnDescriptor", "joinCondition", "whereClause", - "groupByClause", "groupItemDefinition", "groupingSets", "groupingSetsNotaionName", + "groupByClause", "groupItemDefinition", "groupingSets", "groupingSetsNotationName", "groupWindowFunction", "groupWindowFunctionName", "timeAttrColumn", "havingClause", "windowClause", "namedWindow", "windowSpec", "matchRecognizeClause", - "orderByCaluse", "orderItemDefition", "limitClause", "partitionByClause", - "quantifiers", "measuresClause", "patternDefination", "patternVariable", - "outputMode", "afterMatchStrategy", "patternVariablesDefination", + "orderByClause", "orderItemDefinition", "limitClause", "partitionByClause", + "quantifiers", "measuresClause", "patternDefinition", "patternVariable", + "outputMode", "afterMatchStrategy", "patternVariablesDefinition", "windowFrame", "frameBound", "withinClause", "expression", "booleanExpression", "predicate", "likePredicate", "valueExpression", "functionCallExpression", "primaryExpression", "functionNameCreate", "functionName", "functionNameAndParams", @@ -1184,7 +1184,7 @@ export class FlinkSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 6); { this.state = 404; - this.showStatememt(); + this.showStatement(); } break; case 7: @@ -1198,28 +1198,28 @@ export class FlinkSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 8); { this.state = 406; - this.unloadStatememt(); + this.unloadStatement(); } break; case 9: this.enterOuterAlt(localContext, 9); { this.state = 407; - this.setStatememt(); + this.setStatement(); } break; case 10: this.enterOuterAlt(localContext, 10); { this.state = 408; - this.resetStatememt(); + this.resetStatement(); } break; case 11: this.enterOuterAlt(localContext, 11); { this.state = 409; - this.jarStatememt(); + this.jarStatement(); } break; case 12: @@ -1713,9 +1713,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public showStatememt(): ShowStatememtContext { - let localContext = new ShowStatememtContext(this.context, this.state); - this.enterRule(localContext, 24, FlinkSqlParser.RULE_showStatememt); + public showStatement(): ShowStatementContext { + let localContext = new ShowStatementContext(this.context, this.state); + this.enterRule(localContext, 24, FlinkSqlParser.RULE_showStatement); let _la: number; try { this.state = 519; @@ -1962,9 +1962,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public unloadStatememt(): UnloadStatememtContext { - let localContext = new UnloadStatememtContext(this.context, this.state); - this.enterRule(localContext, 28, FlinkSqlParser.RULE_unloadStatememt); + public unloadStatement(): UnloadStatementContext { + let localContext = new UnloadStatementContext(this.context, this.state); + this.enterRule(localContext, 28, FlinkSqlParser.RULE_unloadStatement); try { this.enterOuterAlt(localContext, 1); { @@ -1990,9 +1990,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public setStatememt(): SetStatememtContext { - let localContext = new SetStatememtContext(this.context, this.state); - this.enterRule(localContext, 30, FlinkSqlParser.RULE_setStatememt); + public setStatement(): SetStatementContext { + let localContext = new SetStatementContext(this.context, this.state); + this.enterRule(localContext, 30, FlinkSqlParser.RULE_setStatement); try { this.enterOuterAlt(localContext, 1); { @@ -2024,9 +2024,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public resetStatememt(): ResetStatememtContext { - let localContext = new ResetStatememtContext(this.context, this.state); - this.enterRule(localContext, 32, FlinkSqlParser.RULE_resetStatememt); + public resetStatement(): ResetStatementContext { + let localContext = new ResetStatementContext(this.context, this.state); + this.enterRule(localContext, 32, FlinkSqlParser.RULE_resetStatement); try { this.enterOuterAlt(localContext, 1); { @@ -2058,9 +2058,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public jarStatememt(): JarStatememtContext { - let localContext = new JarStatememtContext(this.context, this.state); - this.enterRule(localContext, 34, FlinkSqlParser.RULE_jarStatememt); + public jarStatement(): JarStatementContext { + let localContext = new JarStatementContext(this.context, this.state); + this.enterRule(localContext, 34, FlinkSqlParser.RULE_jarStatement); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -5263,7 +5263,7 @@ export class FlinkSqlParser extends SQLParserBase { case 1: { this.state = 1165; - this.valuesCaluse(); + this.valuesClause(); } break; case 2: @@ -5294,7 +5294,7 @@ export class FlinkSqlParser extends SQLParserBase { case 1: { this.state = 1174; - this.orderByCaluse(); + this.orderByClause(); } break; } @@ -5320,7 +5320,7 @@ export class FlinkSqlParser extends SQLParserBase { case 1: { this.state = 1181; - this.orderByCaluse(); + this.orderByClause(); } break; } @@ -5384,7 +5384,7 @@ export class FlinkSqlParser extends SQLParserBase { case 1: { this.state = 1195; - this.orderByCaluse(); + this.orderByClause(); } break; } @@ -5421,9 +5421,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public valuesCaluse(): ValuesCaluseContext { - let localContext = new ValuesCaluseContext(this.context, this.state); - this.enterRule(localContext, 158, FlinkSqlParser.RULE_valuesCaluse); + public valuesClause(): ValuesClauseContext { + let localContext = new ValuesClauseContext(this.context, this.state); + this.enterRule(localContext, 158, FlinkSqlParser.RULE_valuesClause); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -5975,7 +5975,7 @@ export class FlinkSqlParser extends SQLParserBase { case 3: { this.state = 1326; - this.windoTVFClause(); + this.windowTVFClause(); } break; } @@ -6330,9 +6330,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public windoTVFClause(): WindoTVFClauseContext { - let localContext = new WindoTVFClauseContext(this.context, this.state); - this.enterRule(localContext, 188, FlinkSqlParser.RULE_windoTVFClause); + public windowTVFClause(): WindowTVFClauseContext { + let localContext = new WindowTVFClauseContext(this.context, this.state); + this.enterRule(localContext, 188, FlinkSqlParser.RULE_windowTVFClause); try { this.enterOuterAlt(localContext, 1); { @@ -6341,7 +6341,7 @@ export class FlinkSqlParser extends SQLParserBase { this.state = 1402; this.match(FlinkSqlParser.LR_BRACKET); this.state = 1403; - this.windowTVFExression(); + this.windowTVFExpression(); this.state = 1404; this.match(FlinkSqlParser.RR_BRACKET); } @@ -6360,15 +6360,15 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public windowTVFExression(): WindowTVFExressionContext { - let localContext = new WindowTVFExressionContext(this.context, this.state); - this.enterRule(localContext, 190, FlinkSqlParser.RULE_windowTVFExression); + public windowTVFExpression(): WindowTVFExpressionContext { + let localContext = new WindowTVFExpressionContext(this.context, this.state); + this.enterRule(localContext, 190, FlinkSqlParser.RULE_windowTVFExpression); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 1406; - this.windoTVFName(); + this.windowTVFName(); this.state = 1407; this.match(FlinkSqlParser.LR_BRACKET); this.state = 1408; @@ -6407,9 +6407,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public windoTVFName(): WindoTVFNameContext { - let localContext = new WindoTVFNameContext(this.context, this.state); - this.enterRule(localContext, 192, FlinkSqlParser.RULE_windoTVFName); + public windowTVFName(): WindowTVFNameContext { + let localContext = new WindowTVFNameContext(this.context, this.state); + this.enterRule(localContext, 192, FlinkSqlParser.RULE_windowTVFName); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -6760,7 +6760,7 @@ export class FlinkSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 5); { this.state = 1478; - this.groupingSetsNotaionName(); + this.groupingSetsNotationName(); this.state = 1479; this.match(FlinkSqlParser.LR_BRACKET); this.state = 1480; @@ -6863,9 +6863,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public groupingSetsNotaionName(): GroupingSetsNotaionNameContext { - let localContext = new GroupingSetsNotaionNameContext(this.context, this.state); - this.enterRule(localContext, 210, FlinkSqlParser.RULE_groupingSetsNotaionName); + public groupingSetsNotationName(): GroupingSetsNotationNameContext { + let localContext = new GroupingSetsNotationNameContext(this.context, this.state); + this.enterRule(localContext, 210, FlinkSqlParser.RULE_groupingSetsNotationName); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -7119,7 +7119,7 @@ export class FlinkSqlParser extends SQLParserBase { if (_la === 259) { { this.state = 1544; - this.orderByCaluse(); + this.orderByClause(); } } @@ -7178,7 +7178,7 @@ export class FlinkSqlParser extends SQLParserBase { if (_la === 259) { { this.state = 1557; - this.orderByCaluse(); + this.orderByClause(); } } @@ -7218,12 +7218,12 @@ export class FlinkSqlParser extends SQLParserBase { if (_la === 272) { { this.state = 1569; - this.patternDefination(); + this.patternDefinition(); } } this.state = 1572; - this.patternVariablesDefination(); + this.patternVariablesDefinition(); this.state = 1573; this.match(FlinkSqlParser.RR_BRACKET); this.state = 1578; @@ -7262,9 +7262,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public orderByCaluse(): OrderByCaluseContext { - let localContext = new OrderByCaluseContext(this.context, this.state); - this.enterRule(localContext, 228, FlinkSqlParser.RULE_orderByCaluse); + public orderByClause(): OrderByClauseContext { + let localContext = new OrderByClauseContext(this.context, this.state); + this.enterRule(localContext, 228, FlinkSqlParser.RULE_orderByClause); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -7274,7 +7274,7 @@ export class FlinkSqlParser extends SQLParserBase { this.state = 1581; this.match(FlinkSqlParser.KW_BY); this.state = 1582; - this.orderItemDefition(); + this.orderItemDefinition(); this.state = 1587; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 176, this.context); @@ -7285,7 +7285,7 @@ export class FlinkSqlParser extends SQLParserBase { this.state = 1583; this.match(FlinkSqlParser.COMMA); this.state = 1584; - this.orderItemDefition(); + this.orderItemDefinition(); } } } @@ -7309,9 +7309,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public orderItemDefition(): OrderItemDefitionContext { - let localContext = new OrderItemDefitionContext(this.context, this.state); - this.enterRule(localContext, 230, FlinkSqlParser.RULE_orderItemDefition); + public orderItemDefinition(): OrderItemDefinitionContext { + let localContext = new OrderItemDefinitionContext(this.context, this.state); + this.enterRule(localContext, 230, FlinkSqlParser.RULE_orderItemDefinition); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -7540,7 +7540,7 @@ export class FlinkSqlParser extends SQLParserBase { case FlinkSqlParser.BIT_NOT_OP: case FlinkSqlParser.LR_BRACKET: case FlinkSqlParser.ASTERISK_SIGN: - case FlinkSqlParser.HYPNEN_SIGN: + case FlinkSqlParser.HYPHEN_SIGN: case FlinkSqlParser.ADD_SIGN: case FlinkSqlParser.STRING_LITERAL: case FlinkSqlParser.DIG_LITERAL: @@ -7784,9 +7784,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public patternDefination(): PatternDefinationContext { - let localContext = new PatternDefinationContext(this.context, this.state); - this.enterRule(localContext, 240, FlinkSqlParser.RULE_patternDefination); + public patternDefinition(): PatternDefinitionContext { + let localContext = new PatternDefinitionContext(this.context, this.state); + this.enterRule(localContext, 240, FlinkSqlParser.RULE_patternDefinition); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -8014,9 +8014,9 @@ export class FlinkSqlParser extends SQLParserBase { } return localContext; } - public patternVariablesDefination(): PatternVariablesDefinationContext { - let localContext = new PatternVariablesDefinationContext(this.context, this.state); - this.enterRule(localContext, 248, FlinkSqlParser.RULE_patternVariablesDefination); + public patternVariablesDefinition(): PatternVariablesDefinitionContext { + let localContext = new PatternVariablesDefinitionContext(this.context, this.state); + this.enterRule(localContext, 248, FlinkSqlParser.RULE_patternVariablesDefinition); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -9990,7 +9990,7 @@ export class FlinkSqlParser extends SQLParserBase { this.state = 2066; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { - case FlinkSqlParser.HYPNEN_SIGN: + case FlinkSqlParser.HYPHEN_SIGN: case FlinkSqlParser.ADD_SIGN: case FlinkSqlParser.DIG_LITERAL: case FlinkSqlParser.REAL_LITERAL: @@ -11457,7 +11457,7 @@ export class FlinkSqlParser extends SQLParserBase { this.stringLiteral(); } break; - case FlinkSqlParser.HYPNEN_SIGN: + case FlinkSqlParser.HYPHEN_SIGN: case FlinkSqlParser.DIG_LITERAL: this.enterOuterAlt(localContext, 4); { @@ -11467,7 +11467,7 @@ export class FlinkSqlParser extends SQLParserBase { if (_la === 530) { { this.state = 2270; - this.match(FlinkSqlParser.HYPNEN_SIGN); + this.match(FlinkSqlParser.HYPHEN_SIGN); } } @@ -13068,23 +13068,23 @@ export class SqlStatementContext extends antlr.ParserRuleContext { public useStatement(): UseStatementContext | null { return this.getRuleContext(0, UseStatementContext); } - public showStatememt(): ShowStatememtContext | null { - return this.getRuleContext(0, ShowStatememtContext); + public showStatement(): ShowStatementContext | null { + return this.getRuleContext(0, ShowStatementContext); } public loadStatement(): LoadStatementContext | null { return this.getRuleContext(0, LoadStatementContext); } - public unloadStatememt(): UnloadStatememtContext | null { - return this.getRuleContext(0, UnloadStatememtContext); + public unloadStatement(): UnloadStatementContext | null { + return this.getRuleContext(0, UnloadStatementContext); } - public setStatememt(): SetStatememtContext | null { - return this.getRuleContext(0, SetStatememtContext); + public setStatement(): SetStatementContext | null { + return this.getRuleContext(0, SetStatementContext); } - public resetStatememt(): ResetStatememtContext | null { - return this.getRuleContext(0, ResetStatememtContext); + public resetStatement(): ResetStatementContext | null { + return this.getRuleContext(0, ResetStatementContext); } - public jarStatememt(): JarStatememtContext | null { - return this.getRuleContext(0, JarStatememtContext); + public jarStatement(): JarStatementContext | null { + return this.getRuleContext(0, JarStatementContext); } public dtAddStatement(): DtAddStatementContext | null { return this.getRuleContext(0, DtAddStatementContext); @@ -13502,7 +13502,7 @@ export class UseModuleStatementContext extends antlr.ParserRuleContext { } -export class ShowStatememtContext extends antlr.ParserRuleContext { +export class ShowStatementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -13576,21 +13576,21 @@ export class ShowStatememtContext extends antlr.ParserRuleContext { return this.getToken(FlinkSqlParser.KW_FULL, 0); } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_showStatememt; + return FlinkSqlParser.RULE_showStatement; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterShowStatememt) { - listener.enterShowStatememt(this); + if(listener.enterShowStatement) { + listener.enterShowStatement(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitShowStatememt) { - listener.exitShowStatememt(this); + if(listener.exitShowStatement) { + listener.exitShowStatement(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitShowStatememt) { - return visitor.visitShowStatememt(this); + if (visitor.visitShowStatement) { + return visitor.visitShowStatement(this); } else { return visitor.visitChildren(this); } @@ -13640,7 +13640,7 @@ export class LoadStatementContext extends antlr.ParserRuleContext { } -export class UnloadStatememtContext extends antlr.ParserRuleContext { +export class UnloadStatementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -13654,21 +13654,21 @@ export class UnloadStatememtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, UidContext)!; } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_unloadStatememt; + return FlinkSqlParser.RULE_unloadStatement; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterUnloadStatememt) { - listener.enterUnloadStatememt(this); + if(listener.enterUnloadStatement) { + listener.enterUnloadStatement(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitUnloadStatememt) { - listener.exitUnloadStatememt(this); + if(listener.exitUnloadStatement) { + listener.exitUnloadStatement(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitUnloadStatememt) { - return visitor.visitUnloadStatememt(this); + if (visitor.visitUnloadStatement) { + return visitor.visitUnloadStatement(this); } else { return visitor.visitChildren(this); } @@ -13676,7 +13676,7 @@ export class UnloadStatememtContext extends antlr.ParserRuleContext { } -export class SetStatememtContext extends antlr.ParserRuleContext { +export class SetStatementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -13687,21 +13687,21 @@ export class SetStatememtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, TablePropertyContext); } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_setStatememt; + return FlinkSqlParser.RULE_setStatement; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterSetStatememt) { - listener.enterSetStatememt(this); + if(listener.enterSetStatement) { + listener.enterSetStatement(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitSetStatememt) { - listener.exitSetStatememt(this); + if(listener.exitSetStatement) { + listener.exitSetStatement(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitSetStatememt) { - return visitor.visitSetStatememt(this); + if (visitor.visitSetStatement) { + return visitor.visitSetStatement(this); } else { return visitor.visitChildren(this); } @@ -13709,7 +13709,7 @@ export class SetStatememtContext extends antlr.ParserRuleContext { } -export class ResetStatememtContext extends antlr.ParserRuleContext { +export class ResetStatementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -13720,21 +13720,21 @@ export class ResetStatememtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, TablePropertyKeyContext); } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_resetStatememt; + return FlinkSqlParser.RULE_resetStatement; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterResetStatememt) { - listener.enterResetStatememt(this); + if(listener.enterResetStatement) { + listener.enterResetStatement(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitResetStatememt) { - listener.exitResetStatememt(this); + if(listener.exitResetStatement) { + listener.exitResetStatement(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitResetStatememt) { - return visitor.visitResetStatememt(this); + if (visitor.visitResetStatement) { + return visitor.visitResetStatement(this); } else { return visitor.visitChildren(this); } @@ -13742,7 +13742,7 @@ export class ResetStatememtContext extends antlr.ParserRuleContext { } -export class JarStatememtContext extends antlr.ParserRuleContext { +export class JarStatementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -13759,21 +13759,21 @@ export class JarStatememtContext extends antlr.ParserRuleContext { return this.getToken(FlinkSqlParser.KW_REMOVE, 0); } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_jarStatememt; + return FlinkSqlParser.RULE_jarStatement; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterJarStatememt) { - listener.enterJarStatememt(this); + if(listener.enterJarStatement) { + listener.enterJarStatement(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitJarStatememt) { - listener.exitJarStatememt(this); + if(listener.exitJarStatement) { + listener.exitJarStatement(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitJarStatememt) { - return visitor.visitJarStatememt(this); + if (visitor.visitJarStatement) { + return visitor.visitJarStatement(this); } else { return visitor.visitChildren(this); } @@ -16638,8 +16638,8 @@ export class QueryStatementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public valuesCaluse(): ValuesCaluseContext | null { - return this.getRuleContext(0, ValuesCaluseContext); + public valuesClause(): ValuesClauseContext | null { + return this.getRuleContext(0, ValuesClauseContext); } public withClause(): WithClauseContext | null { return this.getRuleContext(0, WithClauseContext); @@ -16662,8 +16662,8 @@ export class QueryStatementContext extends antlr.ParserRuleContext { public selectClause(): SelectClauseContext | null { return this.getRuleContext(0, SelectClauseContext); } - public orderByCaluse(): OrderByCaluseContext | null { - return this.getRuleContext(0, OrderByCaluseContext); + public orderByClause(): OrderByClauseContext | null { + return this.getRuleContext(0, OrderByClauseContext); } public limitClause(): LimitClauseContext | null { return this.getRuleContext(0, LimitClauseContext); @@ -16706,7 +16706,7 @@ export class QueryStatementContext extends antlr.ParserRuleContext { } -export class ValuesCaluseContext extends antlr.ParserRuleContext { +export class ValuesClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -16732,21 +16732,21 @@ export class ValuesCaluseContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_valuesCaluse; + return FlinkSqlParser.RULE_valuesClause; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterValuesCaluse) { - listener.enterValuesCaluse(this); + if(listener.enterValuesClause) { + listener.enterValuesClause(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitValuesCaluse) { - listener.exitValuesCaluse(this); + if(listener.exitValuesClause) { + listener.exitValuesClause(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitValuesCaluse) { - return visitor.visitValuesCaluse(this); + if (visitor.visitValuesClause) { + return visitor.visitValuesClause(this); } else { return visitor.visitChildren(this); } @@ -17148,8 +17148,8 @@ export class TableExpressionContext extends antlr.ParserRuleContext { public inlineDataValueClause(): InlineDataValueClauseContext | null { return this.getRuleContext(0, InlineDataValueClauseContext); } - public windoTVFClause(): WindoTVFClauseContext | null { - return this.getRuleContext(0, WindoTVFClauseContext); + public windowTVFClause(): WindowTVFClauseContext | null { + return this.getRuleContext(0, WindowTVFClauseContext); } public tableExpression(): TableExpressionContext[]; public tableExpression(i: number): TableExpressionContext | null; @@ -17414,7 +17414,7 @@ export class InlineDataValueClauseContext extends antlr.ParserRuleContext { } -export class WindoTVFClauseContext extends antlr.ParserRuleContext { +export class WindowTVFClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -17424,28 +17424,28 @@ export class WindoTVFClauseContext extends antlr.ParserRuleContext { public LR_BRACKET(): antlr.TerminalNode { return this.getToken(FlinkSqlParser.LR_BRACKET, 0)!; } - public windowTVFExression(): WindowTVFExressionContext { - return this.getRuleContext(0, WindowTVFExressionContext)!; + public windowTVFExpression(): WindowTVFExpressionContext { + return this.getRuleContext(0, WindowTVFExpressionContext)!; } public RR_BRACKET(): antlr.TerminalNode { return this.getToken(FlinkSqlParser.RR_BRACKET, 0)!; } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_windoTVFClause; + return FlinkSqlParser.RULE_windowTVFClause; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterWindoTVFClause) { - listener.enterWindoTVFClause(this); + if(listener.enterWindowTVFClause) { + listener.enterWindowTVFClause(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitWindoTVFClause) { - listener.exitWindoTVFClause(this); + if(listener.exitWindowTVFClause) { + listener.exitWindowTVFClause(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitWindoTVFClause) { - return visitor.visitWindoTVFClause(this); + if (visitor.visitWindowTVFClause) { + return visitor.visitWindowTVFClause(this); } else { return visitor.visitChildren(this); } @@ -17453,12 +17453,12 @@ export class WindoTVFClauseContext extends antlr.ParserRuleContext { } -export class WindowTVFExressionContext extends antlr.ParserRuleContext { +export class WindowTVFExpressionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public windoTVFName(): WindoTVFNameContext { - return this.getRuleContext(0, WindoTVFNameContext)!; + public windowTVFName(): WindowTVFNameContext { + return this.getRuleContext(0, WindowTVFNameContext)!; } public LR_BRACKET(): antlr.TerminalNode { return this.getToken(FlinkSqlParser.LR_BRACKET, 0)!; @@ -17485,21 +17485,21 @@ export class WindowTVFExressionContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_windowTVFExression; + return FlinkSqlParser.RULE_windowTVFExpression; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterWindowTVFExression) { - listener.enterWindowTVFExression(this); + if(listener.enterWindowTVFExpression) { + listener.enterWindowTVFExpression(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitWindowTVFExression) { - listener.exitWindowTVFExression(this); + if(listener.exitWindowTVFExpression) { + listener.exitWindowTVFExpression(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitWindowTVFExression) { - return visitor.visitWindowTVFExression(this); + if (visitor.visitWindowTVFExpression) { + return visitor.visitWindowTVFExpression(this); } else { return visitor.visitChildren(this); } @@ -17507,7 +17507,7 @@ export class WindowTVFExressionContext extends antlr.ParserRuleContext { } -export class WindoTVFNameContext extends antlr.ParserRuleContext { +export class WindowTVFNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -17521,21 +17521,21 @@ export class WindoTVFNameContext extends antlr.ParserRuleContext { return this.getToken(FlinkSqlParser.KW_CUMULATE, 0); } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_windoTVFName; + return FlinkSqlParser.RULE_windowTVFName; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterWindoTVFName) { - listener.enterWindoTVFName(this); + if(listener.enterWindowTVFName) { + listener.enterWindowTVFName(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitWindoTVFName) { - listener.exitWindoTVFName(this); + if(listener.exitWindowTVFName) { + listener.exitWindowTVFName(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitWindoTVFName) { - return visitor.visitWindoTVFName(this); + if (visitor.visitWindowTVFName) { + return visitor.visitWindowTVFName(this); } else { return visitor.visitChildren(this); } @@ -17835,8 +17835,8 @@ export class GroupItemDefinitionContext extends antlr.ParserRuleContext { return this.getToken(FlinkSqlParser.COMMA, i); } } - public groupingSetsNotaionName(): GroupingSetsNotaionNameContext | null { - return this.getRuleContext(0, GroupingSetsNotaionNameContext); + public groupingSetsNotationName(): GroupingSetsNotationNameContext | null { + return this.getRuleContext(0, GroupingSetsNotationNameContext); } public groupingSets(): GroupingSetsContext | null { return this.getRuleContext(0, GroupingSetsContext); @@ -17906,7 +17906,7 @@ export class GroupingSetsContext extends antlr.ParserRuleContext { } -export class GroupingSetsNotaionNameContext extends antlr.ParserRuleContext { +export class GroupingSetsNotationNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -17917,21 +17917,21 @@ export class GroupingSetsNotaionNameContext extends antlr.ParserRuleContext { return this.getToken(FlinkSqlParser.KW_ROLLUP, 0); } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_groupingSetsNotaionName; + return FlinkSqlParser.RULE_groupingSetsNotationName; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterGroupingSetsNotaionName) { - listener.enterGroupingSetsNotaionName(this); + if(listener.enterGroupingSetsNotationName) { + listener.enterGroupingSetsNotationName(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitGroupingSetsNotaionName) { - listener.exitGroupingSetsNotaionName(this); + if(listener.exitGroupingSetsNotationName) { + listener.exitGroupingSetsNotationName(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitGroupingSetsNotaionName) { - return visitor.visitGroupingSetsNotaionName(this); + if (visitor.visitGroupingSetsNotationName) { + return visitor.visitGroupingSetsNotationName(this); } else { return visitor.visitChildren(this); } @@ -18182,8 +18182,8 @@ export class WindowSpecContext extends antlr.ParserRuleContext { public partitionByClause(): PartitionByClauseContext | null { return this.getRuleContext(0, PartitionByClauseContext); } - public orderByCaluse(): OrderByCaluseContext | null { - return this.getRuleContext(0, OrderByCaluseContext); + public orderByClause(): OrderByClauseContext | null { + return this.getRuleContext(0, OrderByClauseContext); } public windowFrame(): WindowFrameContext | null { return this.getRuleContext(0, WindowFrameContext); @@ -18224,8 +18224,8 @@ export class MatchRecognizeClauseContext extends antlr.ParserRuleContext { public LR_BRACKET(): antlr.TerminalNode { return this.getToken(FlinkSqlParser.LR_BRACKET, 0)!; } - public patternVariablesDefination(): PatternVariablesDefinationContext { - return this.getRuleContext(0, PatternVariablesDefinationContext)!; + public patternVariablesDefinition(): PatternVariablesDefinitionContext { + return this.getRuleContext(0, PatternVariablesDefinitionContext)!; } public RR_BRACKET(): antlr.TerminalNode { return this.getToken(FlinkSqlParser.RR_BRACKET, 0)!; @@ -18233,8 +18233,8 @@ export class MatchRecognizeClauseContext extends antlr.ParserRuleContext { public partitionByClause(): PartitionByClauseContext | null { return this.getRuleContext(0, PartitionByClauseContext); } - public orderByCaluse(): OrderByCaluseContext | null { - return this.getRuleContext(0, OrderByCaluseContext); + public orderByClause(): OrderByClauseContext | null { + return this.getRuleContext(0, OrderByClauseContext); } public measuresClause(): MeasuresClauseContext | null { return this.getRuleContext(0, MeasuresClauseContext); @@ -18245,8 +18245,8 @@ export class MatchRecognizeClauseContext extends antlr.ParserRuleContext { public afterMatchStrategy(): AfterMatchStrategyContext | null { return this.getRuleContext(0, AfterMatchStrategyContext); } - public patternDefination(): PatternDefinationContext | null { - return this.getRuleContext(0, PatternDefinationContext); + public patternDefinition(): PatternDefinitionContext | null { + return this.getRuleContext(0, PatternDefinitionContext); } public identifier(): IdentifierContext | null { return this.getRuleContext(0, IdentifierContext); @@ -18277,7 +18277,7 @@ export class MatchRecognizeClauseContext extends antlr.ParserRuleContext { } -export class OrderByCaluseContext extends antlr.ParserRuleContext { +export class OrderByClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -18287,14 +18287,14 @@ export class OrderByCaluseContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode { return this.getToken(FlinkSqlParser.KW_BY, 0)!; } - public orderItemDefition(): OrderItemDefitionContext[]; - public orderItemDefition(i: number): OrderItemDefitionContext | null; - public orderItemDefition(i?: number): OrderItemDefitionContext[] | OrderItemDefitionContext | null { + public orderItemDefinition(): OrderItemDefinitionContext[]; + public orderItemDefinition(i: number): OrderItemDefinitionContext | null; + public orderItemDefinition(i?: number): OrderItemDefinitionContext[] | OrderItemDefinitionContext | null { if (i === undefined) { - return this.getRuleContexts(OrderItemDefitionContext); + return this.getRuleContexts(OrderItemDefinitionContext); } - return this.getRuleContext(i, OrderItemDefitionContext); + return this.getRuleContext(i, OrderItemDefinitionContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -18306,21 +18306,21 @@ export class OrderByCaluseContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_orderByCaluse; + return FlinkSqlParser.RULE_orderByClause; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterOrderByCaluse) { - listener.enterOrderByCaluse(this); + if(listener.enterOrderByClause) { + listener.enterOrderByClause(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitOrderByCaluse) { - listener.exitOrderByCaluse(this); + if(listener.exitOrderByClause) { + listener.exitOrderByClause(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitOrderByCaluse) { - return visitor.visitOrderByCaluse(this); + if (visitor.visitOrderByClause) { + return visitor.visitOrderByClause(this); } else { return visitor.visitChildren(this); } @@ -18328,7 +18328,7 @@ export class OrderByCaluseContext extends antlr.ParserRuleContext { } -export class OrderItemDefitionContext extends antlr.ParserRuleContext { +export class OrderItemDefinitionContext extends antlr.ParserRuleContext { public _ordering?: Token | null; public _nullOrder?: Token | null; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { @@ -18353,21 +18353,21 @@ export class OrderItemDefitionContext extends antlr.ParserRuleContext { return this.getToken(FlinkSqlParser.KW_FIRST, 0); } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_orderItemDefition; + return FlinkSqlParser.RULE_orderItemDefinition; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterOrderItemDefition) { - listener.enterOrderItemDefition(this); + if(listener.enterOrderItemDefinition) { + listener.enterOrderItemDefinition(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitOrderItemDefition) { - listener.exitOrderItemDefition(this); + if(listener.exitOrderItemDefinition) { + listener.exitOrderItemDefinition(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitOrderItemDefition) { - return visitor.visitOrderItemDefition(this); + if (visitor.visitOrderItemDefinition) { + return visitor.visitOrderItemDefinition(this); } else { return visitor.visitChildren(this); } @@ -18574,7 +18574,7 @@ export class MeasuresClauseContext extends antlr.ParserRuleContext { } -export class PatternDefinationContext extends antlr.ParserRuleContext { +export class PatternDefinitionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -18600,21 +18600,21 @@ export class PatternDefinationContext extends antlr.ParserRuleContext { return this.getRuleContext(0, WithinClauseContext); } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_patternDefination; + return FlinkSqlParser.RULE_patternDefinition; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterPatternDefination) { - listener.enterPatternDefination(this); + if(listener.enterPatternDefinition) { + listener.enterPatternDefinition(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitPatternDefination) { - listener.exitPatternDefination(this); + if(listener.exitPatternDefinition) { + listener.exitPatternDefinition(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitPatternDefination) { - return visitor.visitPatternDefination(this); + if (visitor.visitPatternDefinition) { + return visitor.visitPatternDefinition(this); } else { return visitor.visitChildren(this); } @@ -18757,7 +18757,7 @@ export class AfterMatchStrategyContext extends antlr.ParserRuleContext { } -export class PatternVariablesDefinationContext extends antlr.ParserRuleContext { +export class PatternVariablesDefinitionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -18783,21 +18783,21 @@ export class PatternVariablesDefinationContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return FlinkSqlParser.RULE_patternVariablesDefination; + return FlinkSqlParser.RULE_patternVariablesDefinition; } public override enterRule(listener: FlinkSqlParserListener): void { - if(listener.enterPatternVariablesDefination) { - listener.enterPatternVariablesDefination(this); + if(listener.enterPatternVariablesDefinition) { + listener.enterPatternVariablesDefinition(this); } } public override exitRule(listener: FlinkSqlParserListener): void { - if(listener.exitPatternVariablesDefination) { - listener.exitPatternVariablesDefination(this); + if(listener.exitPatternVariablesDefinition) { + listener.exitPatternVariablesDefinition(this); } } public override accept(visitor: FlinkSqlParserVisitor): Result | null { - if (visitor.visitPatternVariablesDefination) { - return visitor.visitPatternVariablesDefination(this); + if (visitor.visitPatternVariablesDefinition) { + return visitor.visitPatternVariablesDefinition(this); } else { return visitor.visitChildren(this); } @@ -19456,8 +19456,8 @@ export class ArithmeticBinaryContext extends ValueExpressionContext { public SLASH_SIGN(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.SLASH_SIGN, 0); } - public PENCENT_SIGN(): antlr.TerminalNode | null { - return this.getToken(FlinkSqlParser.PENCENT_SIGN, 0); + public PERCENT_SIGN(): antlr.TerminalNode | null { + return this.getToken(FlinkSqlParser.PERCENT_SIGN, 0); } public KW_DIV(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.KW_DIV, 0); @@ -19465,8 +19465,8 @@ export class ArithmeticBinaryContext extends ValueExpressionContext { public ADD_SIGN(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.ADD_SIGN, 0); } - public HYPNEN_SIGN(): antlr.TerminalNode | null { - return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); + public HYPHEN_SIGN(): antlr.TerminalNode | null { + return this.getToken(FlinkSqlParser.HYPHEN_SIGN, 0); } public DOUBLE_VERTICAL_SIGN(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.DOUBLE_VERTICAL_SIGN, 0); @@ -19507,8 +19507,8 @@ export class ArithmeticUnaryContext extends ValueExpressionContext { public valueExpression(): ValueExpressionContext { return this.getRuleContext(0, ValueExpressionContext)!; } - public HYPNEN_SIGN(): antlr.TerminalNode | null { - return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); + public HYPHEN_SIGN(): antlr.TerminalNode | null { + return this.getToken(FlinkSqlParser.HYPHEN_SIGN, 0); } public ADD_SIGN(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.ADD_SIGN, 0); @@ -20599,8 +20599,8 @@ export class IntervalValueContext extends antlr.ParserRuleContext { public ADD_SIGN(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.ADD_SIGN, 0); } - public HYPNEN_SIGN(): antlr.TerminalNode | null { - return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); + public HYPHEN_SIGN(): antlr.TerminalNode | null { + return this.getToken(FlinkSqlParser.HYPHEN_SIGN, 0); } public STRING_LITERAL(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.STRING_LITERAL, 0); @@ -21837,8 +21837,8 @@ export class MathOperatorContext extends antlr.ParserRuleContext { public SLASH_SIGN(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.SLASH_SIGN, 0); } - public PENCENT_SIGN(): antlr.TerminalNode | null { - return this.getToken(FlinkSqlParser.PENCENT_SIGN, 0); + public PERCENT_SIGN(): antlr.TerminalNode | null { + return this.getToken(FlinkSqlParser.PERCENT_SIGN, 0); } public KW_DIV(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.KW_DIV, 0); @@ -21846,11 +21846,11 @@ export class MathOperatorContext extends antlr.ParserRuleContext { public ADD_SIGN(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.ADD_SIGN, 0); } - public HYPNEN_SIGN(): antlr.TerminalNode | null { - return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); + public HYPHEN_SIGN(): antlr.TerminalNode | null { + return this.getToken(FlinkSqlParser.HYPHEN_SIGN, 0); } - public DOUBLE_HYPNEN_SIGN(): antlr.TerminalNode | null { - return this.getToken(FlinkSqlParser.DOUBLE_HYPNEN_SIGN, 0); + public DOUBLE_HYPHEN_SIGN(): antlr.TerminalNode | null { + return this.getToken(FlinkSqlParser.DOUBLE_HYPHEN_SIGN, 0); } public override get ruleIndex(): number { return FlinkSqlParser.RULE_mathOperator; @@ -21888,8 +21888,8 @@ export class UnaryOperatorContext extends antlr.ParserRuleContext { public ADD_SIGN(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.ADD_SIGN, 0); } - public HYPNEN_SIGN(): antlr.TerminalNode | null { - return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); + public HYPHEN_SIGN(): antlr.TerminalNode | null { + return this.getToken(FlinkSqlParser.HYPHEN_SIGN, 0); } public KW_NOT(): antlr.TerminalNode | null { return this.getToken(FlinkSqlParser.KW_NOT, 0); @@ -21933,8 +21933,8 @@ export class ConstantContext extends antlr.ParserRuleContext { public decimalLiteral(): DecimalLiteralContext | null { return this.getRuleContext(0, DecimalLiteralContext); } - public HYPNEN_SIGN(): antlr.TerminalNode | null { - return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); + public HYPHEN_SIGN(): antlr.TerminalNode | null { + return this.getToken(FlinkSqlParser.HYPHEN_SIGN, 0); } public booleanLiteral(): BooleanLiteralContext | null { return this.getRuleContext(0, BooleanLiteralContext); diff --git a/src/lib/flink/FlinkSqlParserListener.ts b/src/lib/flink/FlinkSqlParserListener.ts index 6a1b2ab97..b95ce7648 100644 --- a/src/lib/flink/FlinkSqlParserListener.ts +++ b/src/lib/flink/FlinkSqlParserListener.ts @@ -20,12 +20,12 @@ import { ExplainDetailsContext } from "./FlinkSqlParser.js"; import { ExplainDetailContext } from "./FlinkSqlParser.js"; import { UseStatementContext } from "./FlinkSqlParser.js"; import { UseModuleStatementContext } from "./FlinkSqlParser.js"; -import { ShowStatememtContext } from "./FlinkSqlParser.js"; +import { ShowStatementContext } from "./FlinkSqlParser.js"; import { LoadStatementContext } from "./FlinkSqlParser.js"; -import { UnloadStatememtContext } from "./FlinkSqlParser.js"; -import { SetStatememtContext } from "./FlinkSqlParser.js"; -import { ResetStatememtContext } from "./FlinkSqlParser.js"; -import { JarStatememtContext } from "./FlinkSqlParser.js"; +import { UnloadStatementContext } from "./FlinkSqlParser.js"; +import { SetStatementContext } from "./FlinkSqlParser.js"; +import { ResetStatementContext } from "./FlinkSqlParser.js"; +import { JarStatementContext } from "./FlinkSqlParser.js"; import { DtAddStatementContext } from "./FlinkSqlParser.js"; import { DtFilePathContext } from "./FlinkSqlParser.js"; import { CreateTableContext } from "./FlinkSqlParser.js"; @@ -88,7 +88,7 @@ import { ValuesRowDefinitionContext } from "./FlinkSqlParser.js"; import { InsertMulStatementCompatibilityContext } from "./FlinkSqlParser.js"; import { InsertMulStatementContext } from "./FlinkSqlParser.js"; import { QueryStatementContext } from "./FlinkSqlParser.js"; -import { ValuesCaluseContext } from "./FlinkSqlParser.js"; +import { ValuesClauseContext } from "./FlinkSqlParser.js"; import { WithClauseContext } from "./FlinkSqlParser.js"; import { WithItemContext } from "./FlinkSqlParser.js"; import { WithItemNameContext } from "./FlinkSqlParser.js"; @@ -103,9 +103,9 @@ import { TablePrimaryContext } from "./FlinkSqlParser.js"; import { SystemTimePeriodContext } from "./FlinkSqlParser.js"; import { DateTimeExpressionContext } from "./FlinkSqlParser.js"; import { InlineDataValueClauseContext } from "./FlinkSqlParser.js"; -import { WindoTVFClauseContext } from "./FlinkSqlParser.js"; -import { WindowTVFExressionContext } from "./FlinkSqlParser.js"; -import { WindoTVFNameContext } from "./FlinkSqlParser.js"; +import { WindowTVFClauseContext } from "./FlinkSqlParser.js"; +import { WindowTVFExpressionContext } from "./FlinkSqlParser.js"; +import { WindowTVFNameContext } from "./FlinkSqlParser.js"; import { WindowTVFParamContext } from "./FlinkSqlParser.js"; import { TimeIntervalParamNameContext } from "./FlinkSqlParser.js"; import { ColumnDescriptorContext } from "./FlinkSqlParser.js"; @@ -114,7 +114,7 @@ import { WhereClauseContext } from "./FlinkSqlParser.js"; import { GroupByClauseContext } from "./FlinkSqlParser.js"; import { GroupItemDefinitionContext } from "./FlinkSqlParser.js"; import { GroupingSetsContext } from "./FlinkSqlParser.js"; -import { GroupingSetsNotaionNameContext } from "./FlinkSqlParser.js"; +import { GroupingSetsNotationNameContext } from "./FlinkSqlParser.js"; import { GroupWindowFunctionContext } from "./FlinkSqlParser.js"; import { GroupWindowFunctionNameContext } from "./FlinkSqlParser.js"; import { TimeAttrColumnContext } from "./FlinkSqlParser.js"; @@ -123,17 +123,17 @@ import { WindowClauseContext } from "./FlinkSqlParser.js"; import { NamedWindowContext } from "./FlinkSqlParser.js"; import { WindowSpecContext } from "./FlinkSqlParser.js"; import { MatchRecognizeClauseContext } from "./FlinkSqlParser.js"; -import { OrderByCaluseContext } from "./FlinkSqlParser.js"; -import { OrderItemDefitionContext } from "./FlinkSqlParser.js"; +import { OrderByClauseContext } from "./FlinkSqlParser.js"; +import { OrderItemDefinitionContext } from "./FlinkSqlParser.js"; import { LimitClauseContext } from "./FlinkSqlParser.js"; import { PartitionByClauseContext } from "./FlinkSqlParser.js"; import { QuantifiersContext } from "./FlinkSqlParser.js"; import { MeasuresClauseContext } from "./FlinkSqlParser.js"; -import { PatternDefinationContext } from "./FlinkSqlParser.js"; +import { PatternDefinitionContext } from "./FlinkSqlParser.js"; import { PatternVariableContext } from "./FlinkSqlParser.js"; import { OutputModeContext } from "./FlinkSqlParser.js"; import { AfterMatchStrategyContext } from "./FlinkSqlParser.js"; -import { PatternVariablesDefinationContext } from "./FlinkSqlParser.js"; +import { PatternVariablesDefinitionContext } from "./FlinkSqlParser.js"; import { WindowFrameContext } from "./FlinkSqlParser.js"; import { FrameBoundContext } from "./FlinkSqlParser.js"; import { WithinClauseContext } from "./FlinkSqlParser.js"; @@ -352,15 +352,15 @@ export class FlinkSqlParserListener implements ParseTreeListener { */ exitUseModuleStatement?: (ctx: UseModuleStatementContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.showStatememt`. + * Enter a parse tree produced by `FlinkSqlParser.showStatement`. * @param ctx the parse tree */ - enterShowStatememt?: (ctx: ShowStatememtContext) => void; + enterShowStatement?: (ctx: ShowStatementContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.showStatememt`. + * Exit a parse tree produced by `FlinkSqlParser.showStatement`. * @param ctx the parse tree */ - exitShowStatememt?: (ctx: ShowStatememtContext) => void; + exitShowStatement?: (ctx: ShowStatementContext) => void; /** * Enter a parse tree produced by `FlinkSqlParser.loadStatement`. * @param ctx the parse tree @@ -372,45 +372,45 @@ export class FlinkSqlParserListener implements ParseTreeListener { */ exitLoadStatement?: (ctx: LoadStatementContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.unloadStatememt`. + * Enter a parse tree produced by `FlinkSqlParser.unloadStatement`. * @param ctx the parse tree */ - enterUnloadStatememt?: (ctx: UnloadStatememtContext) => void; + enterUnloadStatement?: (ctx: UnloadStatementContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.unloadStatememt`. + * Exit a parse tree produced by `FlinkSqlParser.unloadStatement`. * @param ctx the parse tree */ - exitUnloadStatememt?: (ctx: UnloadStatememtContext) => void; + exitUnloadStatement?: (ctx: UnloadStatementContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.setStatememt`. + * Enter a parse tree produced by `FlinkSqlParser.setStatement`. * @param ctx the parse tree */ - enterSetStatememt?: (ctx: SetStatememtContext) => void; + enterSetStatement?: (ctx: SetStatementContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.setStatememt`. + * Exit a parse tree produced by `FlinkSqlParser.setStatement`. * @param ctx the parse tree */ - exitSetStatememt?: (ctx: SetStatememtContext) => void; + exitSetStatement?: (ctx: SetStatementContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.resetStatememt`. + * Enter a parse tree produced by `FlinkSqlParser.resetStatement`. * @param ctx the parse tree */ - enterResetStatememt?: (ctx: ResetStatememtContext) => void; + enterResetStatement?: (ctx: ResetStatementContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.resetStatememt`. + * Exit a parse tree produced by `FlinkSqlParser.resetStatement`. * @param ctx the parse tree */ - exitResetStatememt?: (ctx: ResetStatememtContext) => void; + exitResetStatement?: (ctx: ResetStatementContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.jarStatememt`. + * Enter a parse tree produced by `FlinkSqlParser.jarStatement`. * @param ctx the parse tree */ - enterJarStatememt?: (ctx: JarStatememtContext) => void; + enterJarStatement?: (ctx: JarStatementContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.jarStatememt`. + * Exit a parse tree produced by `FlinkSqlParser.jarStatement`. * @param ctx the parse tree */ - exitJarStatememt?: (ctx: JarStatememtContext) => void; + exitJarStatement?: (ctx: JarStatementContext) => void; /** * Enter a parse tree produced by `FlinkSqlParser.dtAddStatement`. * @param ctx the parse tree @@ -1036,15 +1036,15 @@ export class FlinkSqlParserListener implements ParseTreeListener { */ exitQueryStatement?: (ctx: QueryStatementContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.valuesCaluse`. + * Enter a parse tree produced by `FlinkSqlParser.valuesClause`. * @param ctx the parse tree */ - enterValuesCaluse?: (ctx: ValuesCaluseContext) => void; + enterValuesClause?: (ctx: ValuesClauseContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.valuesCaluse`. + * Exit a parse tree produced by `FlinkSqlParser.valuesClause`. * @param ctx the parse tree */ - exitValuesCaluse?: (ctx: ValuesCaluseContext) => void; + exitValuesClause?: (ctx: ValuesClauseContext) => void; /** * Enter a parse tree produced by `FlinkSqlParser.withClause`. * @param ctx the parse tree @@ -1186,35 +1186,35 @@ export class FlinkSqlParserListener implements ParseTreeListener { */ exitInlineDataValueClause?: (ctx: InlineDataValueClauseContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.windoTVFClause`. + * Enter a parse tree produced by `FlinkSqlParser.windowTVFClause`. * @param ctx the parse tree */ - enterWindoTVFClause?: (ctx: WindoTVFClauseContext) => void; + enterWindowTVFClause?: (ctx: WindowTVFClauseContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.windoTVFClause`. + * Exit a parse tree produced by `FlinkSqlParser.windowTVFClause`. * @param ctx the parse tree */ - exitWindoTVFClause?: (ctx: WindoTVFClauseContext) => void; + exitWindowTVFClause?: (ctx: WindowTVFClauseContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.windowTVFExression`. + * Enter a parse tree produced by `FlinkSqlParser.windowTVFExpression`. * @param ctx the parse tree */ - enterWindowTVFExression?: (ctx: WindowTVFExressionContext) => void; + enterWindowTVFExpression?: (ctx: WindowTVFExpressionContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.windowTVFExression`. + * Exit a parse tree produced by `FlinkSqlParser.windowTVFExpression`. * @param ctx the parse tree */ - exitWindowTVFExression?: (ctx: WindowTVFExressionContext) => void; + exitWindowTVFExpression?: (ctx: WindowTVFExpressionContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.windoTVFName`. + * Enter a parse tree produced by `FlinkSqlParser.windowTVFName`. * @param ctx the parse tree */ - enterWindoTVFName?: (ctx: WindoTVFNameContext) => void; + enterWindowTVFName?: (ctx: WindowTVFNameContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.windoTVFName`. + * Exit a parse tree produced by `FlinkSqlParser.windowTVFName`. * @param ctx the parse tree */ - exitWindoTVFName?: (ctx: WindoTVFNameContext) => void; + exitWindowTVFName?: (ctx: WindowTVFNameContext) => void; /** * Enter a parse tree produced by `FlinkSqlParser.windowTVFParam`. * @param ctx the parse tree @@ -1296,15 +1296,15 @@ export class FlinkSqlParserListener implements ParseTreeListener { */ exitGroupingSets?: (ctx: GroupingSetsContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.groupingSetsNotaionName`. + * Enter a parse tree produced by `FlinkSqlParser.groupingSetsNotationName`. * @param ctx the parse tree */ - enterGroupingSetsNotaionName?: (ctx: GroupingSetsNotaionNameContext) => void; + enterGroupingSetsNotationName?: (ctx: GroupingSetsNotationNameContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.groupingSetsNotaionName`. + * Exit a parse tree produced by `FlinkSqlParser.groupingSetsNotationName`. * @param ctx the parse tree */ - exitGroupingSetsNotaionName?: (ctx: GroupingSetsNotaionNameContext) => void; + exitGroupingSetsNotationName?: (ctx: GroupingSetsNotationNameContext) => void; /** * Enter a parse tree produced by `FlinkSqlParser.groupWindowFunction`. * @param ctx the parse tree @@ -1386,25 +1386,25 @@ export class FlinkSqlParserListener implements ParseTreeListener { */ exitMatchRecognizeClause?: (ctx: MatchRecognizeClauseContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.orderByCaluse`. + * Enter a parse tree produced by `FlinkSqlParser.orderByClause`. * @param ctx the parse tree */ - enterOrderByCaluse?: (ctx: OrderByCaluseContext) => void; + enterOrderByClause?: (ctx: OrderByClauseContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.orderByCaluse`. + * Exit a parse tree produced by `FlinkSqlParser.orderByClause`. * @param ctx the parse tree */ - exitOrderByCaluse?: (ctx: OrderByCaluseContext) => void; + exitOrderByClause?: (ctx: OrderByClauseContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.orderItemDefition`. + * Enter a parse tree produced by `FlinkSqlParser.orderItemDefinition`. * @param ctx the parse tree */ - enterOrderItemDefition?: (ctx: OrderItemDefitionContext) => void; + enterOrderItemDefinition?: (ctx: OrderItemDefinitionContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.orderItemDefition`. + * Exit a parse tree produced by `FlinkSqlParser.orderItemDefinition`. * @param ctx the parse tree */ - exitOrderItemDefition?: (ctx: OrderItemDefitionContext) => void; + exitOrderItemDefinition?: (ctx: OrderItemDefinitionContext) => void; /** * Enter a parse tree produced by `FlinkSqlParser.limitClause`. * @param ctx the parse tree @@ -1446,15 +1446,15 @@ export class FlinkSqlParserListener implements ParseTreeListener { */ exitMeasuresClause?: (ctx: MeasuresClauseContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.patternDefination`. + * Enter a parse tree produced by `FlinkSqlParser.patternDefinition`. * @param ctx the parse tree */ - enterPatternDefination?: (ctx: PatternDefinationContext) => void; + enterPatternDefinition?: (ctx: PatternDefinitionContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.patternDefination`. + * Exit a parse tree produced by `FlinkSqlParser.patternDefinition`. * @param ctx the parse tree */ - exitPatternDefination?: (ctx: PatternDefinationContext) => void; + exitPatternDefinition?: (ctx: PatternDefinitionContext) => void; /** * Enter a parse tree produced by `FlinkSqlParser.patternVariable`. * @param ctx the parse tree @@ -1486,15 +1486,15 @@ export class FlinkSqlParserListener implements ParseTreeListener { */ exitAfterMatchStrategy?: (ctx: AfterMatchStrategyContext) => void; /** - * Enter a parse tree produced by `FlinkSqlParser.patternVariablesDefination`. + * Enter a parse tree produced by `FlinkSqlParser.patternVariablesDefinition`. * @param ctx the parse tree */ - enterPatternVariablesDefination?: (ctx: PatternVariablesDefinationContext) => void; + enterPatternVariablesDefinition?: (ctx: PatternVariablesDefinitionContext) => void; /** - * Exit a parse tree produced by `FlinkSqlParser.patternVariablesDefination`. + * Exit a parse tree produced by `FlinkSqlParser.patternVariablesDefinition`. * @param ctx the parse tree */ - exitPatternVariablesDefination?: (ctx: PatternVariablesDefinationContext) => void; + exitPatternVariablesDefinition?: (ctx: PatternVariablesDefinitionContext) => void; /** * Enter a parse tree produced by `FlinkSqlParser.windowFrame`. * @param ctx the parse tree diff --git a/src/lib/flink/FlinkSqlParserVisitor.ts b/src/lib/flink/FlinkSqlParserVisitor.ts index 1a02bd2fa..3dff39dcd 100644 --- a/src/lib/flink/FlinkSqlParserVisitor.ts +++ b/src/lib/flink/FlinkSqlParserVisitor.ts @@ -20,12 +20,12 @@ import { ExplainDetailsContext } from "./FlinkSqlParser.js"; import { ExplainDetailContext } from "./FlinkSqlParser.js"; import { UseStatementContext } from "./FlinkSqlParser.js"; import { UseModuleStatementContext } from "./FlinkSqlParser.js"; -import { ShowStatememtContext } from "./FlinkSqlParser.js"; +import { ShowStatementContext } from "./FlinkSqlParser.js"; import { LoadStatementContext } from "./FlinkSqlParser.js"; -import { UnloadStatememtContext } from "./FlinkSqlParser.js"; -import { SetStatememtContext } from "./FlinkSqlParser.js"; -import { ResetStatememtContext } from "./FlinkSqlParser.js"; -import { JarStatememtContext } from "./FlinkSqlParser.js"; +import { UnloadStatementContext } from "./FlinkSqlParser.js"; +import { SetStatementContext } from "./FlinkSqlParser.js"; +import { ResetStatementContext } from "./FlinkSqlParser.js"; +import { JarStatementContext } from "./FlinkSqlParser.js"; import { DtAddStatementContext } from "./FlinkSqlParser.js"; import { DtFilePathContext } from "./FlinkSqlParser.js"; import { CreateTableContext } from "./FlinkSqlParser.js"; @@ -88,7 +88,7 @@ import { ValuesRowDefinitionContext } from "./FlinkSqlParser.js"; import { InsertMulStatementCompatibilityContext } from "./FlinkSqlParser.js"; import { InsertMulStatementContext } from "./FlinkSqlParser.js"; import { QueryStatementContext } from "./FlinkSqlParser.js"; -import { ValuesCaluseContext } from "./FlinkSqlParser.js"; +import { ValuesClauseContext } from "./FlinkSqlParser.js"; import { WithClauseContext } from "./FlinkSqlParser.js"; import { WithItemContext } from "./FlinkSqlParser.js"; import { WithItemNameContext } from "./FlinkSqlParser.js"; @@ -103,9 +103,9 @@ import { TablePrimaryContext } from "./FlinkSqlParser.js"; import { SystemTimePeriodContext } from "./FlinkSqlParser.js"; import { DateTimeExpressionContext } from "./FlinkSqlParser.js"; import { InlineDataValueClauseContext } from "./FlinkSqlParser.js"; -import { WindoTVFClauseContext } from "./FlinkSqlParser.js"; -import { WindowTVFExressionContext } from "./FlinkSqlParser.js"; -import { WindoTVFNameContext } from "./FlinkSqlParser.js"; +import { WindowTVFClauseContext } from "./FlinkSqlParser.js"; +import { WindowTVFExpressionContext } from "./FlinkSqlParser.js"; +import { WindowTVFNameContext } from "./FlinkSqlParser.js"; import { WindowTVFParamContext } from "./FlinkSqlParser.js"; import { TimeIntervalParamNameContext } from "./FlinkSqlParser.js"; import { ColumnDescriptorContext } from "./FlinkSqlParser.js"; @@ -114,7 +114,7 @@ import { WhereClauseContext } from "./FlinkSqlParser.js"; import { GroupByClauseContext } from "./FlinkSqlParser.js"; import { GroupItemDefinitionContext } from "./FlinkSqlParser.js"; import { GroupingSetsContext } from "./FlinkSqlParser.js"; -import { GroupingSetsNotaionNameContext } from "./FlinkSqlParser.js"; +import { GroupingSetsNotationNameContext } from "./FlinkSqlParser.js"; import { GroupWindowFunctionContext } from "./FlinkSqlParser.js"; import { GroupWindowFunctionNameContext } from "./FlinkSqlParser.js"; import { TimeAttrColumnContext } from "./FlinkSqlParser.js"; @@ -123,17 +123,17 @@ import { WindowClauseContext } from "./FlinkSqlParser.js"; import { NamedWindowContext } from "./FlinkSqlParser.js"; import { WindowSpecContext } from "./FlinkSqlParser.js"; import { MatchRecognizeClauseContext } from "./FlinkSqlParser.js"; -import { OrderByCaluseContext } from "./FlinkSqlParser.js"; -import { OrderItemDefitionContext } from "./FlinkSqlParser.js"; +import { OrderByClauseContext } from "./FlinkSqlParser.js"; +import { OrderItemDefinitionContext } from "./FlinkSqlParser.js"; import { LimitClauseContext } from "./FlinkSqlParser.js"; import { PartitionByClauseContext } from "./FlinkSqlParser.js"; import { QuantifiersContext } from "./FlinkSqlParser.js"; import { MeasuresClauseContext } from "./FlinkSqlParser.js"; -import { PatternDefinationContext } from "./FlinkSqlParser.js"; +import { PatternDefinitionContext } from "./FlinkSqlParser.js"; import { PatternVariableContext } from "./FlinkSqlParser.js"; import { OutputModeContext } from "./FlinkSqlParser.js"; import { AfterMatchStrategyContext } from "./FlinkSqlParser.js"; -import { PatternVariablesDefinationContext } from "./FlinkSqlParser.js"; +import { PatternVariablesDefinitionContext } from "./FlinkSqlParser.js"; import { WindowFrameContext } from "./FlinkSqlParser.js"; import { FrameBoundContext } from "./FlinkSqlParser.js"; import { WithinClauseContext } from "./FlinkSqlParser.js"; @@ -307,11 +307,11 @@ export class FlinkSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `FlinkSqlParser.showStatememt`. + * Visit a parse tree produced by `FlinkSqlParser.showStatement`. * @param ctx the parse tree * @return the visitor result */ - visitShowStatememt?: (ctx: ShowStatememtContext) => Result; + visitShowStatement?: (ctx: ShowStatementContext) => Result; /** * Visit a parse tree produced by `FlinkSqlParser.loadStatement`. * @param ctx the parse tree @@ -319,29 +319,29 @@ export class FlinkSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `FlinkSqlParser.unloadStatememt`. + * Visit a parse tree produced by `FlinkSqlParser.unloadStatement`. * @param ctx the parse tree * @return the visitor result */ - visitUnloadStatememt?: (ctx: UnloadStatememtContext) => Result; + visitUnloadStatement?: (ctx: UnloadStatementContext) => Result; /** - * Visit a parse tree produced by `FlinkSqlParser.setStatememt`. + * Visit a parse tree produced by `FlinkSqlParser.setStatement`. * @param ctx the parse tree * @return the visitor result */ - visitSetStatememt?: (ctx: SetStatememtContext) => Result; + visitSetStatement?: (ctx: SetStatementContext) => Result; /** - * Visit a parse tree produced by `FlinkSqlParser.resetStatememt`. + * Visit a parse tree produced by `FlinkSqlParser.resetStatement`. * @param ctx the parse tree * @return the visitor result */ - visitResetStatememt?: (ctx: ResetStatememtContext) => Result; + visitResetStatement?: (ctx: ResetStatementContext) => Result; /** - * Visit a parse tree produced by `FlinkSqlParser.jarStatememt`. + * Visit a parse tree produced by `FlinkSqlParser.jarStatement`. * @param ctx the parse tree * @return the visitor result */ - visitJarStatememt?: (ctx: JarStatememtContext) => Result; + visitJarStatement?: (ctx: JarStatementContext) => Result; /** * Visit a parse tree produced by `FlinkSqlParser.dtAddStatement`. * @param ctx the parse tree @@ -717,11 +717,11 @@ export class FlinkSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `FlinkSqlParser.valuesCaluse`. + * Visit a parse tree produced by `FlinkSqlParser.valuesClause`. * @param ctx the parse tree * @return the visitor result */ - visitValuesCaluse?: (ctx: ValuesCaluseContext) => Result; + visitValuesClause?: (ctx: ValuesClauseContext) => Result; /** * Visit a parse tree produced by `FlinkSqlParser.withClause`. * @param ctx the parse tree @@ -807,23 +807,23 @@ export class FlinkSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `FlinkSqlParser.windoTVFClause`. + * Visit a parse tree produced by `FlinkSqlParser.windowTVFClause`. * @param ctx the parse tree * @return the visitor result */ - visitWindoTVFClause?: (ctx: WindoTVFClauseContext) => Result; + visitWindowTVFClause?: (ctx: WindowTVFClauseContext) => Result; /** - * Visit a parse tree produced by `FlinkSqlParser.windowTVFExression`. + * Visit a parse tree produced by `FlinkSqlParser.windowTVFExpression`. * @param ctx the parse tree * @return the visitor result */ - visitWindowTVFExression?: (ctx: WindowTVFExressionContext) => Result; + visitWindowTVFExpression?: (ctx: WindowTVFExpressionContext) => Result; /** - * Visit a parse tree produced by `FlinkSqlParser.windoTVFName`. + * Visit a parse tree produced by `FlinkSqlParser.windowTVFName`. * @param ctx the parse tree * @return the visitor result */ - visitWindoTVFName?: (ctx: WindoTVFNameContext) => Result; + visitWindowTVFName?: (ctx: WindowTVFNameContext) => Result; /** * Visit a parse tree produced by `FlinkSqlParser.windowTVFParam`. * @param ctx the parse tree @@ -873,11 +873,11 @@ export class FlinkSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `FlinkSqlParser.groupingSetsNotaionName`. + * Visit a parse tree produced by `FlinkSqlParser.groupingSetsNotationName`. * @param ctx the parse tree * @return the visitor result */ - visitGroupingSetsNotaionName?: (ctx: GroupingSetsNotaionNameContext) => Result; + visitGroupingSetsNotationName?: (ctx: GroupingSetsNotationNameContext) => Result; /** * Visit a parse tree produced by `FlinkSqlParser.groupWindowFunction`. * @param ctx the parse tree @@ -927,17 +927,17 @@ export class FlinkSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `FlinkSqlParser.orderByCaluse`. + * Visit a parse tree produced by `FlinkSqlParser.orderByClause`. * @param ctx the parse tree * @return the visitor result */ - visitOrderByCaluse?: (ctx: OrderByCaluseContext) => Result; + visitOrderByClause?: (ctx: OrderByClauseContext) => Result; /** - * Visit a parse tree produced by `FlinkSqlParser.orderItemDefition`. + * Visit a parse tree produced by `FlinkSqlParser.orderItemDefinition`. * @param ctx the parse tree * @return the visitor result */ - visitOrderItemDefition?: (ctx: OrderItemDefitionContext) => Result; + visitOrderItemDefinition?: (ctx: OrderItemDefinitionContext) => Result; /** * Visit a parse tree produced by `FlinkSqlParser.limitClause`. * @param ctx the parse tree @@ -963,11 +963,11 @@ export class FlinkSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `FlinkSqlParser.patternDefination`. + * Visit a parse tree produced by `FlinkSqlParser.patternDefinition`. * @param ctx the parse tree * @return the visitor result */ - visitPatternDefination?: (ctx: PatternDefinationContext) => Result; + visitPatternDefinition?: (ctx: PatternDefinitionContext) => Result; /** * Visit a parse tree produced by `FlinkSqlParser.patternVariable`. * @param ctx the parse tree @@ -987,11 +987,11 @@ export class FlinkSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `FlinkSqlParser.patternVariablesDefination`. + * Visit a parse tree produced by `FlinkSqlParser.patternVariablesDefinition`. * @param ctx the parse tree * @return the visitor result */ - visitPatternVariablesDefination?: (ctx: PatternVariablesDefinationContext) => Result; + visitPatternVariablesDefinition?: (ctx: PatternVariablesDefinitionContext) => Result; /** * Visit a parse tree produced by `FlinkSqlParser.windowFrame`. * @param ctx the parse tree From e649b2aa5d61e6317fcfcda7af1fc34e0bbd34d8 Mon Sep 17 00:00:00 2001 From: LuckyFBB <976060700@qq.com> Date: Wed, 12 Feb 2025 16:56:21 +0800 Subject: [PATCH 2/8] feat(hive): check spelling errors for hive g4 --- src/grammar/hive/HiveSqlParser.g4 | 10 ++-- src/lib/hive/HiveSqlParser.interp | 4 +- src/lib/hive/HiveSqlParser.ts | 76 +++++++++++++-------------- src/lib/hive/HiveSqlParserListener.ts | 20 +++---- src/lib/hive/HiveSqlParserVisitor.ts | 12 ++--- 5 files changed, 61 insertions(+), 61 deletions(-) diff --git a/src/grammar/hive/HiveSqlParser.g4 b/src/grammar/hive/HiveSqlParser.g4 index 42eca35c0..1d1aa7212 100644 --- a/src/grammar/hive/HiveSqlParser.g4 +++ b/src/grammar/hive/HiveSqlParser.g4 @@ -59,12 +59,12 @@ explainOption | KW_REOPTIMIZATION | KW_LOCKS | KW_AST - | KW_VECTORIZATION KW_ONLY? vectorizatonDetail? + | KW_VECTORIZATION KW_ONLY? vectorizationDetail? | KW_DEBUG | KW_DDL ; -vectorizatonDetail +vectorizationDetail : KW_SUMMARY | KW_OPERATOR | KW_EXPRESSION @@ -415,10 +415,10 @@ privObjectCols ; privilegeList - : privlegeDef (COMMA privlegeDef)* + : privilegeDef (COMMA privilegeDef)* ; -privlegeDef +privilegeDef : privilegeType (LPAREN cols=columnNameList RPAREN)? ; @@ -663,7 +663,7 @@ recordWriter rowFormatSerde : KW_ROW KW_FORMAT KW_SERDE name=StringLiteral ( - KW_WITH KW_SERDEPROPERTIES serdeprops=tableProperties + KW_WITH KW_SERDEPROPERTIES serderops=tableProperties )? ; diff --git a/src/lib/hive/HiveSqlParser.interp b/src/lib/hive/HiveSqlParser.interp index 40d64452b..1d595e86d 100644 --- a/src/lib/hive/HiveSqlParser.interp +++ b/src/lib/hive/HiveSqlParser.interp @@ -885,7 +885,7 @@ program statement explainStatement explainOption -vectorizatonDetail +vectorizationDetail execStatement loadStatement replicationClause @@ -941,7 +941,7 @@ privilegeObject privObject privObjectCols privilegeList -privlegeDef +privilegeDef privilegeType principalSpecification principalName diff --git a/src/lib/hive/HiveSqlParser.ts b/src/lib/hive/HiveSqlParser.ts index f5180526b..5157c5fef 100644 --- a/src/lib/hive/HiveSqlParser.ts +++ b/src/lib/hive/HiveSqlParser.ts @@ -459,7 +459,7 @@ export class HiveSqlParser extends SQLParserBase { public static readonly RULE_statement = 1; public static readonly RULE_explainStatement = 2; public static readonly RULE_explainOption = 3; - public static readonly RULE_vectorizatonDetail = 4; + public static readonly RULE_vectorizationDetail = 4; public static readonly RULE_execStatement = 5; public static readonly RULE_loadStatement = 6; public static readonly RULE_replicationClause = 7; @@ -515,7 +515,7 @@ export class HiveSqlParser extends SQLParserBase { public static readonly RULE_privObject = 57; public static readonly RULE_privObjectCols = 58; public static readonly RULE_privilegeList = 59; - public static readonly RULE_privlegeDef = 60; + public static readonly RULE_privilegeDef = 60; public static readonly RULE_privilegeType = 61; public static readonly RULE_principalSpecification = 62; public static readonly RULE_principalName = 63; @@ -967,7 +967,7 @@ export class HiveSqlParser extends SQLParserBase { "SHOW_HINT", "HIDDEN_HINT" ]; public static readonly ruleNames = [ - "program", "statement", "explainStatement", "explainOption", "vectorizatonDetail", + "program", "statement", "explainStatement", "explainOption", "vectorizationDetail", "execStatement", "loadStatement", "replicationClause", "exportStatement", "importStatement", "replDumpStatement", "replDbPolicy", "replLoadStatement", "replTableLevelPolicy", "ddlStatement", "ifExists", "ifNotExists", @@ -982,7 +982,7 @@ export class HiveSqlParser extends SQLParserBase { "grantRole", "revokeRole", "showRoleGrants", "showRoles", "showCurrentRole", "setRole", "showGrants", "showRolePrincipals", "privilegeIncludeColObject", "privilegeObject", "privObject", "privObjectCols", "privilegeList", - "privlegeDef", "privilegeType", "principalSpecification", "principalName", + "privilegeDef", "privilegeType", "principalSpecification", "principalName", "principalAlterName", "withGrantOption", "grantOptionFor", "adminOptionFor", "withAdminOption", "metastoreCheck", "resourceList", "resource", "resourceType", "createFunctionStatement", "dropFunctionStatement", @@ -1443,7 +1443,7 @@ export class HiveSqlParser extends SQLParserBase { if (_la === 91 || _la === 121 || _la === 226 || _la === 325) { { this.state = 736; - this.vectorizatonDetail(); + this.vectorizationDetail(); } } @@ -1481,9 +1481,9 @@ export class HiveSqlParser extends SQLParserBase { } return localContext; } - public vectorizatonDetail(): VectorizatonDetailContext { - let localContext = new VectorizatonDetailContext(this.context, this.state); - this.enterRule(localContext, 8, HiveSqlParser.RULE_vectorizatonDetail); + public vectorizationDetail(): VectorizationDetailContext { + let localContext = new VectorizationDetailContext(this.context, this.state); + this.enterRule(localContext, 8, HiveSqlParser.RULE_vectorizationDetail); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -6217,7 +6217,7 @@ export class HiveSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 1497; - this.privlegeDef(); + this.privilegeDef(); this.state = 1502; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -6227,7 +6227,7 @@ export class HiveSqlParser extends SQLParserBase { this.state = 1498; this.match(HiveSqlParser.COMMA); this.state = 1499; - this.privlegeDef(); + this.privilegeDef(); } } this.state = 1504; @@ -6250,9 +6250,9 @@ export class HiveSqlParser extends SQLParserBase { } return localContext; } - public privlegeDef(): PrivlegeDefContext { - let localContext = new PrivlegeDefContext(this.context, this.state); - this.enterRule(localContext, 120, HiveSqlParser.RULE_privlegeDef); + public privilegeDef(): PrivilegeDefContext { + let localContext = new PrivilegeDefContext(this.context, this.state); + this.enterRule(localContext, 120, HiveSqlParser.RULE_privilegeDef); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -8804,7 +8804,7 @@ export class HiveSqlParser extends SQLParserBase { this.state = 1950; this.match(HiveSqlParser.KW_SERDEPROPERTIES); this.state = 1951; - localContext._serdeprops = this.tableProperties(); + localContext._serderops = this.tableProperties(); } break; } @@ -27613,8 +27613,8 @@ export class ExplainOptionContext extends antlr.ParserRuleContext { public KW_ONLY(): antlr.TerminalNode | null { return this.getToken(HiveSqlParser.KW_ONLY, 0); } - public vectorizatonDetail(): VectorizatonDetailContext | null { - return this.getRuleContext(0, VectorizatonDetailContext); + public vectorizationDetail(): VectorizationDetailContext | null { + return this.getRuleContext(0, VectorizationDetailContext); } public KW_DEBUG(): antlr.TerminalNode | null { return this.getToken(HiveSqlParser.KW_DEBUG, 0); @@ -27645,7 +27645,7 @@ export class ExplainOptionContext extends antlr.ParserRuleContext { } -export class VectorizatonDetailContext extends antlr.ParserRuleContext { +export class VectorizationDetailContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -27662,21 +27662,21 @@ export class VectorizatonDetailContext extends antlr.ParserRuleContext { return this.getToken(HiveSqlParser.KW_DETAIL, 0); } public override get ruleIndex(): number { - return HiveSqlParser.RULE_vectorizatonDetail; + return HiveSqlParser.RULE_vectorizationDetail; } public override enterRule(listener: HiveSqlParserListener): void { - if(listener.enterVectorizatonDetail) { - listener.enterVectorizatonDetail(this); + if(listener.enterVectorizationDetail) { + listener.enterVectorizationDetail(this); } } public override exitRule(listener: HiveSqlParserListener): void { - if(listener.exitVectorizatonDetail) { - listener.exitVectorizatonDetail(this); + if(listener.exitVectorizationDetail) { + listener.exitVectorizationDetail(this); } } public override accept(visitor: HiveSqlParserVisitor): Result | null { - if (visitor.visitVectorizatonDetail) { - return visitor.visitVectorizatonDetail(this); + if (visitor.visitVectorizationDetail) { + return visitor.visitVectorizationDetail(this); } else { return visitor.visitChildren(this); } @@ -30428,14 +30428,14 @@ export class PrivilegeListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public privlegeDef(): PrivlegeDefContext[]; - public privlegeDef(i: number): PrivlegeDefContext | null; - public privlegeDef(i?: number): PrivlegeDefContext[] | PrivlegeDefContext | null { + public privilegeDef(): PrivilegeDefContext[]; + public privilegeDef(i: number): PrivilegeDefContext | null; + public privilegeDef(i?: number): PrivilegeDefContext[] | PrivilegeDefContext | null { if (i === undefined) { - return this.getRuleContexts(PrivlegeDefContext); + return this.getRuleContexts(PrivilegeDefContext); } - return this.getRuleContext(i, PrivlegeDefContext); + return this.getRuleContext(i, PrivilegeDefContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -30469,7 +30469,7 @@ export class PrivilegeListContext extends antlr.ParserRuleContext { } -export class PrivlegeDefContext extends antlr.ParserRuleContext { +export class PrivilegeDefContext extends antlr.ParserRuleContext { public _cols?: ColumnNameListContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); @@ -30487,21 +30487,21 @@ export class PrivlegeDefContext extends antlr.ParserRuleContext { return this.getRuleContext(0, ColumnNameListContext); } public override get ruleIndex(): number { - return HiveSqlParser.RULE_privlegeDef; + return HiveSqlParser.RULE_privilegeDef; } public override enterRule(listener: HiveSqlParserListener): void { - if(listener.enterPrivlegeDef) { - listener.enterPrivlegeDef(this); + if(listener.enterPrivilegeDef) { + listener.enterPrivilegeDef(this); } } public override exitRule(listener: HiveSqlParserListener): void { - if(listener.exitPrivlegeDef) { - listener.exitPrivlegeDef(this); + if(listener.exitPrivilegeDef) { + listener.exitPrivilegeDef(this); } } public override accept(visitor: HiveSqlParserVisitor): Result | null { - if (visitor.visitPrivlegeDef) { - return visitor.visitPrivlegeDef(this); + if (visitor.visitPrivilegeDef) { + return visitor.visitPrivilegeDef(this); } else { return visitor.visitChildren(this); } @@ -32716,7 +32716,7 @@ export class RecordWriterContext extends antlr.ParserRuleContext { export class RowFormatSerdeContext extends antlr.ParserRuleContext { public _name?: Token | null; - public _serdeprops?: TablePropertiesContext; + public _serderops?: TablePropertiesContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } diff --git a/src/lib/hive/HiveSqlParserListener.ts b/src/lib/hive/HiveSqlParserListener.ts index 1f2bbff05..ca30f6091 100644 --- a/src/lib/hive/HiveSqlParserListener.ts +++ b/src/lib/hive/HiveSqlParserListener.ts @@ -12,7 +12,7 @@ import { ProgramContext } from "./HiveSqlParser.js"; import { StatementContext } from "./HiveSqlParser.js"; import { ExplainStatementContext } from "./HiveSqlParser.js"; import { ExplainOptionContext } from "./HiveSqlParser.js"; -import { VectorizatonDetailContext } from "./HiveSqlParser.js"; +import { VectorizationDetailContext } from "./HiveSqlParser.js"; import { ExecStatementContext } from "./HiveSqlParser.js"; import { LoadStatementContext } from "./HiveSqlParser.js"; import { ReplicationClauseContext } from "./HiveSqlParser.js"; @@ -68,7 +68,7 @@ import { PrivilegeObjectContext } from "./HiveSqlParser.js"; import { PrivObjectContext } from "./HiveSqlParser.js"; import { PrivObjectColsContext } from "./HiveSqlParser.js"; import { PrivilegeListContext } from "./HiveSqlParser.js"; -import { PrivlegeDefContext } from "./HiveSqlParser.js"; +import { PrivilegeDefContext } from "./HiveSqlParser.js"; import { PrivilegeTypeContext } from "./HiveSqlParser.js"; import { PrincipalSpecificationContext } from "./HiveSqlParser.js"; import { PrincipalNameContext } from "./HiveSqlParser.js"; @@ -404,15 +404,15 @@ export class HiveSqlParserListener implements ParseTreeListener { */ exitExplainOption?: (ctx: ExplainOptionContext) => void; /** - * Enter a parse tree produced by `HiveSqlParser.vectorizatonDetail`. + * Enter a parse tree produced by `HiveSqlParser.vectorizationDetail`. * @param ctx the parse tree */ - enterVectorizatonDetail?: (ctx: VectorizatonDetailContext) => void; + enterVectorizationDetail?: (ctx: VectorizationDetailContext) => void; /** - * Exit a parse tree produced by `HiveSqlParser.vectorizatonDetail`. + * Exit a parse tree produced by `HiveSqlParser.vectorizationDetail`. * @param ctx the parse tree */ - exitVectorizatonDetail?: (ctx: VectorizatonDetailContext) => void; + exitVectorizationDetail?: (ctx: VectorizationDetailContext) => void; /** * Enter a parse tree produced by `HiveSqlParser.execStatement`. * @param ctx the parse tree @@ -964,15 +964,15 @@ export class HiveSqlParserListener implements ParseTreeListener { */ exitPrivilegeList?: (ctx: PrivilegeListContext) => void; /** - * Enter a parse tree produced by `HiveSqlParser.privlegeDef`. + * Enter a parse tree produced by `HiveSqlParser.privilegeDef`. * @param ctx the parse tree */ - enterPrivlegeDef?: (ctx: PrivlegeDefContext) => void; + enterPrivilegeDef?: (ctx: PrivilegeDefContext) => void; /** - * Exit a parse tree produced by `HiveSqlParser.privlegeDef`. + * Exit a parse tree produced by `HiveSqlParser.privilegeDef`. * @param ctx the parse tree */ - exitPrivlegeDef?: (ctx: PrivlegeDefContext) => void; + exitPrivilegeDef?: (ctx: PrivilegeDefContext) => void; /** * Enter a parse tree produced by `HiveSqlParser.privilegeType`. * @param ctx the parse tree diff --git a/src/lib/hive/HiveSqlParserVisitor.ts b/src/lib/hive/HiveSqlParserVisitor.ts index d00818833..146c94f86 100644 --- a/src/lib/hive/HiveSqlParserVisitor.ts +++ b/src/lib/hive/HiveSqlParserVisitor.ts @@ -12,7 +12,7 @@ import { ProgramContext } from "./HiveSqlParser.js"; import { StatementContext } from "./HiveSqlParser.js"; import { ExplainStatementContext } from "./HiveSqlParser.js"; import { ExplainOptionContext } from "./HiveSqlParser.js"; -import { VectorizatonDetailContext } from "./HiveSqlParser.js"; +import { VectorizationDetailContext } from "./HiveSqlParser.js"; import { ExecStatementContext } from "./HiveSqlParser.js"; import { LoadStatementContext } from "./HiveSqlParser.js"; import { ReplicationClauseContext } from "./HiveSqlParser.js"; @@ -68,7 +68,7 @@ import { PrivilegeObjectContext } from "./HiveSqlParser.js"; import { PrivObjectContext } from "./HiveSqlParser.js"; import { PrivObjectColsContext } from "./HiveSqlParser.js"; import { PrivilegeListContext } from "./HiveSqlParser.js"; -import { PrivlegeDefContext } from "./HiveSqlParser.js"; +import { PrivilegeDefContext } from "./HiveSqlParser.js"; import { PrivilegeTypeContext } from "./HiveSqlParser.js"; import { PrincipalSpecificationContext } from "./HiveSqlParser.js"; import { PrincipalNameContext } from "./HiveSqlParser.js"; @@ -391,11 +391,11 @@ export class HiveSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `HiveSqlParser.vectorizatonDetail`. + * Visit a parse tree produced by `HiveSqlParser.vectorizationDetail`. * @param ctx the parse tree * @return the visitor result */ - visitVectorizatonDetail?: (ctx: VectorizatonDetailContext) => Result; + visitVectorizationDetail?: (ctx: VectorizationDetailContext) => Result; /** * Visit a parse tree produced by `HiveSqlParser.execStatement`. * @param ctx the parse tree @@ -727,11 +727,11 @@ export class HiveSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `HiveSqlParser.privlegeDef`. + * Visit a parse tree produced by `HiveSqlParser.privilegeDef`. * @param ctx the parse tree * @return the visitor result */ - visitPrivlegeDef?: (ctx: PrivlegeDefContext) => Result; + visitPrivilegeDef?: (ctx: PrivilegeDefContext) => Result; /** * Visit a parse tree produced by `HiveSqlParser.privilegeType`. * @param ctx the parse tree From 5faa80634ce4d07c9d5d06015ef01b96151a36d4 Mon Sep 17 00:00:00 2001 From: LuckyFBB <976060700@qq.com> Date: Wed, 12 Feb 2025 16:56:48 +0800 Subject: [PATCH 3/8] feat(mysql): check spelling errors for mysql g4 --- src/grammar/mysql/MySqlParser.g4 | 126 ++-- src/lib/mysql/MySqlParser.interp | 34 +- src/lib/mysql/MySqlParser.ts | 996 +++++++++++++-------------- src/lib/mysql/MySqlParserListener.ts | 210 +++--- src/lib/mysql/MySqlParserVisitor.ts | 126 ++-- 5 files changed, 746 insertions(+), 746 deletions(-) diff --git a/src/grammar/mysql/MySqlParser.g4 b/src/grammar/mysql/MySqlParser.g4 index bc299c294..36a7f5d1b 100644 --- a/src/grammar/mysql/MySqlParser.g4 +++ b/src/grammar/mysql/MySqlParser.g4 @@ -72,14 +72,14 @@ ddlStatement : createDatabase | createEvent | createIndex - | createLogfileGroup + | createLogFileGroup | createProcedure | createFunction | createFunctionLoadable | createServer | createTable - | createTablespaceInnodb - | createTablespaceNdb + | createTableSpaceInnoDB + | createTableSpaceNDB | createTrigger | createView | createRole @@ -87,22 +87,22 @@ ddlStatement | alterEvent | alterFunction | alterInstance - | alterLogfileGroup + | alterLogFileGroup | alterProcedure | alterServer | alterTable - | alterTablespace + | alterTableSpace | alterView | dropDatabase | dropEvent | dropIndex - | dropLogfileGroup + | dropLogFileGroup | dropProcedure | dropFunction | dropServer | dropSpatial | dropTable - | dropTablespace + | dropTableSpace | dropTrigger | dropView | dropRole @@ -136,7 +136,7 @@ transactionStatement | beginWork | commitWork | rollbackWork - | savepointStatement + | savePointStatement | rollbackStatement | releaseStatement | lockTables @@ -205,7 +205,7 @@ administrationStatement | cloneStatement | setStatement | showStatement - | binlogStatement + | binLogStatement | cacheIndexStatement | flushStatement | killStatement @@ -253,12 +253,12 @@ createIndex )* ; -createLogfileGroup - : KW_CREATE KW_LOGFILE KW_GROUP logfileGroupName=uid KW_ADD KW_UNDOFILE undoFile=STRING_LITERAL ( +createLogFileGroup + : KW_CREATE KW_LOGFILE KW_GROUP logFileGroupName=uid KW_ADD KW_UNDOFILE undoFile=STRING_LITERAL ( KW_INITIAL_SIZE '='? initSize=fileSizeLiteral )? (KW_UNDO_BUFFER_SIZE '='? undoSize=fileSizeLiteral)? ( KW_REDO_BUFFER_SIZE '='? redoSize=fileSizeLiteral - )? (KW_NODEGROUP '='? nodegroup=uid)? KW_WAIT? (KW_COMMENT '='? comment=STRING_LITERAL)? KW_ENGINE '='? engineName + )? (KW_NODEGROUP '='? nodeGroup=uid)? KW_WAIT? (KW_COMMENT '='? comment=STRING_LITERAL)? KW_ENGINE '='? engineName ; createProcedure @@ -307,21 +307,21 @@ createTable )? partitionDefinitions? # columnCreateTable ; -createTablespaceInnodb - : KW_CREATE KW_UNDO? KW_TABLESPACE tablespaceNameCreate ( +createTableSpaceInnoDB + : KW_CREATE KW_UNDO? KW_TABLESPACE tableSpaceNameCreate ( KW_ADD KW_DATAFILE datafile=STRING_LITERAL - )? (KW_AUTOEXTEND_SIZE '='? autoextendSize=fileSizeLiteral)? ( + )? (KW_AUTOEXTEND_SIZE '='? autoExtendSize=fileSizeLiteral)? ( KW_FILE_BLOCK_SIZE '=' fileBlockSize=fileSizeLiteral )? (KW_ENGINE '='? engineName)? (KW_ENGINE_ATTRIBUTE '='? STRING_LITERAL)? ; -createTablespaceNdb - : KW_CREATE KW_UNDO? KW_TABLESPACE tablespaceNameCreate KW_ADD KW_DATAFILE datafile=STRING_LITERAL KW_USE KW_LOGFILE KW_GROUP logfileGroupName=uid +createTableSpaceNDB + : KW_CREATE KW_UNDO? KW_TABLESPACE tableSpaceNameCreate KW_ADD KW_DATAFILE datafile=STRING_LITERAL KW_USE KW_LOGFILE KW_GROUP logFileGroupName=uid ( KW_EXTENT_SIZE '='? extentSize=fileSizeLiteral )? (KW_INITIAL_SIZE '='? initialSize=fileSizeLiteral)? ( - KW_AUTOEXTEND_SIZE '='? autoextendSize=fileSizeLiteral - )? (KW_MAX_SIZE '='? maxSize=fileSizeLiteral)? (KW_NODEGROUP '='? nodegroup=uid)? KW_WAIT? ( + KW_AUTOEXTEND_SIZE '='? autoExtendSize=fileSizeLiteral + )? (KW_MAX_SIZE '='? maxSize=fileSizeLiteral)? (KW_NODEGROUP '='? nodeGroup=uid)? KW_WAIT? ( KW_COMMENT '='? comment=STRING_LITERAL )? KW_ENGINE '='? engineName ; @@ -487,7 +487,7 @@ columnDefinition ; columnConstraint - : nullNotnull # nullColumnConstraint + : nullNotNull # nullColumnConstraint | KW_DEFAULT defaultValue # defaultColumnConstraint | KW_VISIBLE # visibilityColumnConstraint | KW_INVISIBLE # invisibilityColumnConstraint @@ -530,7 +530,7 @@ referenceControlType tableOption : KW_ENGINE '='? engineName? # tableOptionEngine | KW_ENGINE_ATTRIBUTE '='? STRING_LITERAL # tableOptionEngineAttribute - | KW_AUTOEXTEND_SIZE '='? decimalLiteral # tableOptionAutoextendSize + | KW_AUTOEXTEND_SIZE '='? decimalLiteral # tableOptionAutoExtendSize | KW_AUTO_INCREMENT '='? decimalLiteral # tableOptionAutoIncrement | KW_AVG_ROW_LENGTH '='? decimalLiteral # tableOptionAverage | KW_DEFAULT? charSet '='? (charsetName | KW_DEFAULT) # tableOptionCharset @@ -566,9 +566,9 @@ tableOption | KW_STATS_AUTO_RECALC '='? extBoolValue=(KW_DEFAULT | '0' | '1') # tableOptionRecalculation | KW_STATS_PERSISTENT '='? extBoolValue=(KW_DEFAULT | '0' | '1') # tableOptionPersistent | KW_STATS_SAMPLE_PAGES '='? (KW_DEFAULT | decimalLiteral) # tableOptionSamplePage - | KW_TABLESPACE tablespaceName tablespaceStorage? # tableOptionTablespace + | KW_TABLESPACE tableSpaceName tableSpaceStorage? # tableOptionTableSpace | KW_TABLE_TYPE '=' tableType # tableOptionTableType - | tablespaceStorage # tableOptionTablespace + | tableSpaceStorage # tableOptionTableSpace | KW_TRANSACTIONAL '='? ('0' | '1') # tableOptionTransactional | KW_UNION '='? '(' tableNames ')' # tableOptionUnion ; @@ -578,7 +578,7 @@ tableType | KW_ODBC ; -tablespaceStorage +tableSpaceStorage : KW_STORAGE (KW_DISK | KW_MEMORY | KW_DEFAULT) ; @@ -605,18 +605,18 @@ subpartitionFunctionDefinition partitionDefinition : KW_PARTITION partitionName KW_VALUES KW_LESS KW_THAN '(' partitionDefinerAtom ( ',' partitionDefinerAtom - )* ')' partitionOption* ('(' subpartitionDefinition (',' subpartitionDefinition)* ')')? # partitionComparison + )* ')' partitionOption* ('(' subPartitionDefinition (',' subPartitionDefinition)* ')')? # partitionComparison | KW_PARTITION partitionName KW_VALUES KW_LESS KW_THAN partitionDefinerAtom partitionOption* ( - '(' subpartitionDefinition (',' subpartitionDefinition)* ')' + '(' subPartitionDefinition (',' subPartitionDefinition)* ')' )? # partitionComparison | KW_PARTITION partitionName KW_VALUES KW_IN '(' partitionDefinerAtom ( ',' partitionDefinerAtom - )* ')' partitionOption* ('(' subpartitionDefinition (',' subpartitionDefinition)* ')')? # partitionListAtom + )* ')' partitionOption* ('(' subPartitionDefinition (',' subPartitionDefinition)* ')')? # partitionListAtom | KW_PARTITION partitionName KW_VALUES KW_IN '(' partitionDefinerVector ( ',' partitionDefinerVector - )* ')' partitionOption* ('(' subpartitionDefinition (',' subpartitionDefinition)* ')')? # partitionListVector + )* ')' partitionOption* ('(' subPartitionDefinition (',' subPartitionDefinition)* ')')? # partitionListVector | KW_PARTITION partitionName partitionOption* ( - '(' subpartitionDefinition (',' subpartitionDefinition)* ')' + '(' subPartitionDefinition (',' subPartitionDefinition)* ')' )? # partitionSimple ; @@ -630,7 +630,7 @@ partitionDefinerVector : '(' partitionDefinerAtom (',' partitionDefinerAtom)+ ')' ; -subpartitionDefinition +subPartitionDefinition : KW_SUBPARTITION logicalName=uid partitionOption* ; @@ -641,8 +641,8 @@ partitionOption | KW_INDEX KW_DIRECTORY '='? indexDirectory=STRING_LITERAL # partitionOptionIndexDirectory | KW_MAX_ROWS '='? maxRows=decimalLiteral # partitionOptionMaxRows | KW_MIN_ROWS '='? minRows=decimalLiteral # partitionOptionMinRows - | KW_TABLESPACE '='? tablespaceName # partitionOptionTablespace - | KW_NODEGROUP '='? nodegroup=uid # partitionOptionNodeGroup + | KW_TABLESPACE '='? tableSpaceName # partitionOptionTableSpace + | KW_NODEGROUP '='? nodeGroup=uid # partitionOptionNodeGroup ; // Alter statements @@ -668,8 +668,8 @@ alterInstance : KW_ALTER KW_INSTANCE KW_ROTATE KW_INNODB KW_MASTER KW_KEY ; -alterLogfileGroup - : KW_ALTER KW_LOGFILE KW_GROUP logfileGroupName=uid KW_ADD KW_UNDOFILE STRING_LITERAL ( +alterLogFileGroup + : KW_ALTER KW_LOGFILE KW_GROUP logFileGroupName=uid KW_ADD KW_UNDOFILE STRING_LITERAL ( KW_INITIAL_SIZE '='? fileSizeLiteral )? KW_WAIT? KW_ENGINE '='? engineName ; @@ -688,10 +688,10 @@ alterTable )? ; -alterTablespace - : KW_ALTER KW_UNDO? KW_TABLESPACE tablespaceName (KW_ADD | KW_DROP) KW_DATAFILE STRING_LITERAL ( +alterTableSpace + : KW_ALTER KW_UNDO? KW_TABLESPACE tableSpaceName (KW_ADD | KW_DROP) KW_DATAFILE STRING_LITERAL ( KW_INITIAL_SIZE '='? fileSizeLiteral - )? KW_WAIT? (KW_RENAME KW_TO tablespaceNameCreate)? (KW_AUTOEXTEND_SIZE '='? fileSizeLiteral)? ( + )? KW_WAIT? (KW_RENAME KW_TO tableSpaceNameCreate)? (KW_AUTOEXTEND_SIZE '='? fileSizeLiteral)? ( KW_SET (KW_ACTIVE | KW_INACTIVE) )? (KW_ENCRYPTION '='? STRING_LITERAL)? // STRING_LITERAL is 'Y' or 'N' (KW_ENGINE '='? engineName)? (KW_ENGINE_ATTRIBUTE '='? STRING_LITERAL)? @@ -731,7 +731,7 @@ alterOption | KW_DEFAULT? KW_CHARACTER KW_SET '=' charsetName (KW_COLLATE '='? collationName)? # alterByDefaultCharset | KW_CONVERT KW_TO (KW_CHARSET | KW_CHARACTER KW_SET) charsetName (KW_COLLATE collationName)? # alterByConvertCharset | (KW_DISABLE | KW_ENABLE) KW_KEYS # alterKeys - | (KW_DISCARD | KW_IMPORT) KW_TABLESPACE # alterTablespaceOption + | (KW_DISCARD | KW_IMPORT) KW_TABLESPACE # alterTableSpaceOption | KW_DROP KW_COLUMN? columnName # alterByDropColumn | KW_DROP (KW_INDEX | KW_KEY) indexName # alterByDropIndex | KW_DROP KW_PRIMARY KW_KEY # alterByDropPrimaryKey @@ -740,7 +740,7 @@ alterOption | KW_LOCK '='? lockType=(KW_DEFAULT | KW_NONE | KW_SHARED | KW_EXCLUSIVE) # alterByLock | KW_MODIFY KW_COLUMN? columnName columnDefinition (KW_FIRST | KW_AFTER columnName)? # alterByModifyColumn | KW_ORDER KW_BY columnNames # alterByOrder - | KW_RENAME KW_COLUMN olcdColumn=columnName KW_TO newColumn=columnNameCreate # alterByRenameColumn + | KW_RENAME KW_COLUMN oldColumn=columnName KW_TO newColumn=columnNameCreate # alterByRenameColumn | KW_RENAME indexFormat=(KW_INDEX | KW_KEY) indexName KW_TO indexNameCreate # alterByRenameIndex | KW_RENAME renameFormat=(KW_TO | KW_AS)? tableNameCreate # alterByRename | (KW_WITHOUT | KW_WITH) KW_VALIDATION # alterByValidate @@ -778,14 +778,14 @@ dropEvent ; dropIndex - : KW_DROP KW_INDEX intimeAction=(KW_ONLINE | KW_OFFLINE)? indexName KW_ON tableName ( + : KW_DROP KW_INDEX inTimeAction=(KW_ONLINE | KW_OFFLINE)? indexName KW_ON tableName ( KW_ALGORITHM '='? algType=(KW_DEFAULT | KW_INPLACE | KW_COPY) | KW_LOCK '='? lockType=(KW_DEFAULT | KW_NONE | KW_SHARED | KW_EXCLUSIVE) )* ; -dropLogfileGroup - : KW_DROP KW_LOGFILE KW_GROUP logfileGroupName=uid KW_ENGINE '='? engineName +dropLogFileGroup + : KW_DROP KW_LOGFILE KW_GROUP logFileGroupName=uid KW_ENGINE '='? engineName ; dropProcedure @@ -808,8 +808,8 @@ dropTable : KW_DROP KW_TEMPORARY? KW_TABLE ifExists? tableNames dropType=(KW_RESTRICT | KW_CASCADE)? ; -dropTablespace - : KW_DROP KW_UNDO? KW_TABLESPACE tablespaceName (KW_ENGINE '='? engineName)? +dropTableSpace + : KW_DROP KW_UNDO? KW_TABLESPACE tableSpaceName (KW_ENGINE '='? engineName)? ; dropTrigger @@ -1218,7 +1218,7 @@ intoClause selectFieldsInto : KW_TERMINATED KW_BY terminationField=STRING_LITERAL - | KW_OPTIONALLY? KW_ENCLOSED KW_BY enclosion=STRING_LITERAL + | KW_OPTIONALLY? KW_ENCLOSED KW_BY enClosion=STRING_LITERAL | KW_ESCAPED KW_BY escaping=STRING_LITERAL ; @@ -1271,14 +1271,14 @@ beginWork ; commitWork - : KW_COMMIT KW_WORK? (KW_AND nochain=KW_NO? KW_CHAIN)? (norelease=KW_NO? KW_RELEASE)? + : KW_COMMIT KW_WORK? (KW_AND noChain=KW_NO? KW_CHAIN)? (noRelease=KW_NO? KW_RELEASE)? ; rollbackWork - : KW_ROLLBACK KW_WORK? (KW_AND nochain=KW_NO? KW_CHAIN)? (norelease=KW_NO? KW_RELEASE)? + : KW_ROLLBACK KW_WORK? (KW_AND noChain=KW_NO? KW_CHAIN)? (noRelease=KW_NO? KW_RELEASE)? ; -savepointStatement +savePointStatement : KW_SAVEPOINT identifier=uid ; @@ -1591,7 +1591,7 @@ caseStatement ; ifStatement - : KW_IF expression KW_THEN thenStatements+=procedureSqlStatement+ elifAlternative* ( + : KW_IF expression KW_THEN thenStatements+=procedureSqlStatement+ elseIfAlternative* ( KW_ELSE elseStatements+=procedureSqlStatement+ )? KW_END KW_IF ; @@ -1664,7 +1664,7 @@ caseAlternative : KW_WHEN (constant | expression) KW_THEN procedureSqlStatement+ ; -elifAlternative +elseIfAlternative : KW_ELSEIF expression KW_THEN procedureSqlStatement+ ; @@ -1699,7 +1699,7 @@ dropUser ; grantStatement - : KW_GRANT privelegeClause (',' privelegeClause)* KW_ON privilegeObjectType? privilegeLevel KW_TO ( + : KW_GRANT privilegeClause (',' privilegeClause)* KW_ON privilegeObjectType? privilegeLevel KW_TO ( (userAuthOption (',' userAuthOption)*) | userOrRoleNames ) (KW_REQUIRE (tlsNone=KW_NONE | tlsOption (KW_AND? tlsOption)*))? ( @@ -1724,14 +1724,14 @@ grantProxy ; alterResourceGroup - : KW_ALTER KW_RESOURCE KW_GROUP groupName (KW_VCPU '='? resourceGroupVcpuSpec)? ( + : KW_ALTER KW_RESOURCE KW_GROUP groupName (KW_VCPU '='? resourceGroupVCpuSpec)? ( KW_THREAD_PRIORITY '='? decimalLiteral )? ((KW_ENABLE | KW_DISABLE) KW_FORCE?)? ; createResourceGroup : KW_CREATE KW_RESOURCE KW_GROUP groupNameCreate KW_TYPE '=' (KW_SYSTEM | KW_USER) ( - KW_VCPU '='? resourceGroupVcpuSpec + KW_VCPU '='? resourceGroupVCpuSpec )? (KW_THREAD_PRIORITY '='? decimalLiteral)? (KW_ENABLE | KW_DISABLE)? ; @@ -1743,8 +1743,8 @@ setResourceGroup : KW_SET KW_RESOURCE KW_GROUP groupName (KW_FOR decimalLiteral (',' decimalLiteral)*)? ; -resourceGroupVcpuSpec - : (decimalLiteral | decimalLiteral MINUS decimalLiteral) (',' resourceGroupVcpuSpec)* +resourceGroupVCpuSpec + : (decimalLiteral | decimalLiteral MINUS decimalLiteral) (',' resourceGroupVCpuSpec)* ; renameUser @@ -1752,7 +1752,7 @@ renameUser ; revokeStatement - : KW_REVOKE ifExists? privelegeClause (',' privelegeClause)* KW_ON privilegeObjectType? privilegeLevel KW_FROM userOrRoleNames ignoreUnknownUser? # + : KW_REVOKE ifExists? privilegeClause (',' privilegeClause)* KW_ON privilegeObjectType? privilegeLevel KW_FROM userOrRoleNames ignoreUnknownUser? # detailRevoke | KW_REVOKE ifExists? KW_ALL KW_PRIVILEGES? ',' KW_GRANT KW_OPTION KW_FROM userOrRoleNames ignoreUnknownUser? # shortRevoke | KW_REVOKE ifExists? (KW_PROXY KW_ON)? userOrRoleNames KW_FROM userOrRoleNames ignoreUnknownUser? # proxyAndRoleRevoke @@ -1875,7 +1875,7 @@ factor : (TWO_DECIMAL | THREE_DECIMAL) KW_FACTOR ; -privelegeClause +privilegeClause : privilege ('(' columnNames ')')? ; @@ -2143,7 +2143,7 @@ showProfileType // Other administrative statements -binlogStatement +binLogStatement : KW_BINLOG STRING_LITERAL ; @@ -2404,11 +2404,11 @@ columnName | {this.shouldMatchEmpty()}? ; -tablespaceNameCreate +tableSpaceNameCreate : uid ; -tablespaceName +tableSpaceName : uid ; @@ -2569,7 +2569,7 @@ hexadecimalLiteral : STRING_CHARSET_NAME? HEXADECIMAL_LITERAL ; -nullNotnull +nullNotNull : KW_NOT? (KW_NULL_LITERAL | NULL_SPEC_LITERAL) ; @@ -2947,7 +2947,7 @@ expression predicate : predicate KW_NOT? KW_IN '(' (selectStatement | expressions) ')' # inPredicate - | predicate KW_IS nullNotnull # isNullPredicate + | predicate KW_IS nullNotNull # isNullPredicate | predicate comparisonOperator ( quantifier=(KW_ALL | KW_ANY | KW_SOME) '(' subQuery=selectStatement ')' | right=predicate @@ -2960,7 +2960,7 @@ predicate | expressionAtom # expressionAtomPredicate ; -// Add in ASTVisitor nullNotnull in constant +// Add in ASTVisitor nullNotNull in constant expressionAtom : constant # constantExpressionAtom | functionCall # functionCallExpressionAtom diff --git a/src/lib/mysql/MySqlParser.interp b/src/lib/mysql/MySqlParser.interp index 3c8fce42f..c5d4aa63c 100644 --- a/src/lib/mysql/MySqlParser.interp +++ b/src/lib/mysql/MySqlParser.interp @@ -1810,15 +1810,15 @@ utilityStatement createDatabase createEvent createIndex -createLogfileGroup +createLogFileGroup createProcedure createFunction createFunctionLoadable createRole createServer createTable -createTablespaceInnodb -createTablespaceNdb +createTableSpaceInnoDB +createTableSpaceNDB createTrigger withClause commonTableExpressions @@ -1849,37 +1849,37 @@ referenceAction referenceControlType tableOption tableType -tablespaceStorage +tableSpaceStorage partitionDefinitions partitionFunctionDefinition subpartitionFunctionDefinition partitionDefinition partitionDefinerAtom partitionDefinerVector -subpartitionDefinition +subPartitionDefinition partitionOption alterDatabase alterEvent alterFunction alterInstance -alterLogfileGroup +alterLogFileGroup alterProcedure alterServer alterTable -alterTablespace +alterTableSpace alterView alterOption alterPartitionSpecification dropDatabase dropEvent dropIndex -dropLogfileGroup +dropLogFileGroup dropProcedure dropFunction dropServer dropSpatial dropTable -dropTablespace +dropTableSpace dropTrigger dropView dropRole @@ -1960,7 +1960,7 @@ startTransaction beginWork commitWork rollbackWork -savepointStatement +savePointStatement rollbackStatement releaseStatement lockTables @@ -2024,7 +2024,7 @@ declareHandler handlerConditionValue procedureSqlStatement caseAlternative -elifAlternative +elseIfAlternative alterUser createUser dropUser @@ -2035,7 +2035,7 @@ alterResourceGroup createResourceGroup dropResourceGroup setResourceGroup -resourceGroupVcpuSpec +resourceGroupVCpuSpec renameUser revokeStatement ignoreUnknownUser @@ -2055,7 +2055,7 @@ userLockOption factorAuthOption registrationOption factor -privelegeClause +privilegeClause privilege privilegeLevel renameUserClause @@ -2080,7 +2080,7 @@ showFilter showGlobalInfoClause showSchemaEntity showProfileType -binlogStatement +binLogStatement cacheIndexStatement flushStatement killStatement @@ -2127,8 +2127,8 @@ userOrRoleName columnNameCreate columnNames columnName -tablespaceNameCreate -tablespaceName +tableSpaceNameCreate +tableSpaceName partitionNameCreate partitionNames partitionName @@ -2156,7 +2156,7 @@ fileSizeLiteral stringLiteral booleanLiteral hexadecimalLiteral -nullNotnull +nullNotNull constant dataType collectionOptions diff --git a/src/lib/mysql/MySqlParser.ts b/src/lib/mysql/MySqlParser.ts index e298265c3..468006c2a 100644 --- a/src/lib/mysql/MySqlParser.ts +++ b/src/lib/mysql/MySqlParser.ts @@ -927,15 +927,15 @@ export class MySqlParser extends SQLParserBase { public static readonly RULE_createDatabase = 12; public static readonly RULE_createEvent = 13; public static readonly RULE_createIndex = 14; - public static readonly RULE_createLogfileGroup = 15; + public static readonly RULE_createLogFileGroup = 15; public static readonly RULE_createProcedure = 16; public static readonly RULE_createFunction = 17; public static readonly RULE_createFunctionLoadable = 18; public static readonly RULE_createRole = 19; public static readonly RULE_createServer = 20; public static readonly RULE_createTable = 21; - public static readonly RULE_createTablespaceInnodb = 22; - public static readonly RULE_createTablespaceNdb = 23; + public static readonly RULE_createTableSpaceInnoDB = 22; + public static readonly RULE_createTableSpaceNDB = 23; public static readonly RULE_createTrigger = 24; public static readonly RULE_withClause = 25; public static readonly RULE_commonTableExpressions = 26; @@ -966,37 +966,37 @@ export class MySqlParser extends SQLParserBase { public static readonly RULE_referenceControlType = 51; public static readonly RULE_tableOption = 52; public static readonly RULE_tableType = 53; - public static readonly RULE_tablespaceStorage = 54; + public static readonly RULE_tableSpaceStorage = 54; public static readonly RULE_partitionDefinitions = 55; public static readonly RULE_partitionFunctionDefinition = 56; public static readonly RULE_subpartitionFunctionDefinition = 57; public static readonly RULE_partitionDefinition = 58; public static readonly RULE_partitionDefinerAtom = 59; public static readonly RULE_partitionDefinerVector = 60; - public static readonly RULE_subpartitionDefinition = 61; + public static readonly RULE_subPartitionDefinition = 61; public static readonly RULE_partitionOption = 62; public static readonly RULE_alterDatabase = 63; public static readonly RULE_alterEvent = 64; public static readonly RULE_alterFunction = 65; public static readonly RULE_alterInstance = 66; - public static readonly RULE_alterLogfileGroup = 67; + public static readonly RULE_alterLogFileGroup = 67; public static readonly RULE_alterProcedure = 68; public static readonly RULE_alterServer = 69; public static readonly RULE_alterTable = 70; - public static readonly RULE_alterTablespace = 71; + public static readonly RULE_alterTableSpace = 71; public static readonly RULE_alterView = 72; public static readonly RULE_alterOption = 73; public static readonly RULE_alterPartitionSpecification = 74; public static readonly RULE_dropDatabase = 75; public static readonly RULE_dropEvent = 76; public static readonly RULE_dropIndex = 77; - public static readonly RULE_dropLogfileGroup = 78; + public static readonly RULE_dropLogFileGroup = 78; public static readonly RULE_dropProcedure = 79; public static readonly RULE_dropFunction = 80; public static readonly RULE_dropServer = 81; public static readonly RULE_dropSpatial = 82; public static readonly RULE_dropTable = 83; - public static readonly RULE_dropTablespace = 84; + public static readonly RULE_dropTableSpace = 84; public static readonly RULE_dropTrigger = 85; public static readonly RULE_dropView = 86; public static readonly RULE_dropRole = 87; @@ -1077,7 +1077,7 @@ export class MySqlParser extends SQLParserBase { public static readonly RULE_beginWork = 162; public static readonly RULE_commitWork = 163; public static readonly RULE_rollbackWork = 164; - public static readonly RULE_savepointStatement = 165; + public static readonly RULE_savePointStatement = 165; public static readonly RULE_rollbackStatement = 166; public static readonly RULE_releaseStatement = 167; public static readonly RULE_lockTables = 168; @@ -1141,7 +1141,7 @@ export class MySqlParser extends SQLParserBase { public static readonly RULE_handlerConditionValue = 226; public static readonly RULE_procedureSqlStatement = 227; public static readonly RULE_caseAlternative = 228; - public static readonly RULE_elifAlternative = 229; + public static readonly RULE_elseIfAlternative = 229; public static readonly RULE_alterUser = 230; public static readonly RULE_createUser = 231; public static readonly RULE_dropUser = 232; @@ -1152,7 +1152,7 @@ export class MySqlParser extends SQLParserBase { public static readonly RULE_createResourceGroup = 237; public static readonly RULE_dropResourceGroup = 238; public static readonly RULE_setResourceGroup = 239; - public static readonly RULE_resourceGroupVcpuSpec = 240; + public static readonly RULE_resourceGroupVCpuSpec = 240; public static readonly RULE_renameUser = 241; public static readonly RULE_revokeStatement = 242; public static readonly RULE_ignoreUnknownUser = 243; @@ -1172,7 +1172,7 @@ export class MySqlParser extends SQLParserBase { public static readonly RULE_factorAuthOption = 257; public static readonly RULE_registrationOption = 258; public static readonly RULE_factor = 259; - public static readonly RULE_privelegeClause = 260; + public static readonly RULE_privilegeClause = 260; public static readonly RULE_privilege = 261; public static readonly RULE_privilegeLevel = 262; public static readonly RULE_renameUserClause = 263; @@ -1197,7 +1197,7 @@ export class MySqlParser extends SQLParserBase { public static readonly RULE_showGlobalInfoClause = 282; public static readonly RULE_showSchemaEntity = 283; public static readonly RULE_showProfileType = 284; - public static readonly RULE_binlogStatement = 285; + public static readonly RULE_binLogStatement = 285; public static readonly RULE_cacheIndexStatement = 286; public static readonly RULE_flushStatement = 287; public static readonly RULE_killStatement = 288; @@ -1244,8 +1244,8 @@ export class MySqlParser extends SQLParserBase { public static readonly RULE_columnNameCreate = 329; public static readonly RULE_columnNames = 330; public static readonly RULE_columnName = 331; - public static readonly RULE_tablespaceNameCreate = 332; - public static readonly RULE_tablespaceName = 333; + public static readonly RULE_tableSpaceNameCreate = 332; + public static readonly RULE_tableSpaceName = 333; public static readonly RULE_partitionNameCreate = 334; public static readonly RULE_partitionNames = 335; public static readonly RULE_partitionName = 336; @@ -1273,7 +1273,7 @@ export class MySqlParser extends SQLParserBase { public static readonly RULE_stringLiteral = 358; public static readonly RULE_booleanLiteral = 359; public static readonly RULE_hexadecimalLiteral = 360; - public static readonly RULE_nullNotnull = 361; + public static readonly RULE_nullNotNull = 361; public static readonly RULE_constant = 362; public static readonly RULE_dataType = 363; public static readonly RULE_collectionOptions = 364; @@ -1715,24 +1715,24 @@ export class MySqlParser extends SQLParserBase { "ddlStatement", "dmlStatement", "transactionStatement", "replicationStatement", "preparedStatement", "compoundStatement", "administrationStatement", "utilityStatement", "createDatabase", "createEvent", "createIndex", - "createLogfileGroup", "createProcedure", "createFunction", "createFunctionLoadable", - "createRole", "createServer", "createTable", "createTablespaceInnodb", - "createTablespaceNdb", "createTrigger", "withClause", "commonTableExpressions", + "createLogFileGroup", "createProcedure", "createFunction", "createFunctionLoadable", + "createRole", "createServer", "createTable", "createTableSpaceInnoDB", + "createTableSpaceNDB", "createTrigger", "withClause", "commonTableExpressions", "createView", "createDatabaseOption", "charSet", "currentUserExpression", "ownerStatement", "scheduleExpression", "timestampValue", "intervalExpr", "intervalType", "enableType", "indexType", "indexOption", "procedureParameter", "functionParameter", "routineOption", "serverOption", "createDefinitions", "createDefinition", "checkConstraintDefinition", "constraintSymbol", "columnDefinition", "columnConstraint", "referenceDefinition", "referenceAction", - "referenceControlType", "tableOption", "tableType", "tablespaceStorage", + "referenceControlType", "tableOption", "tableType", "tableSpaceStorage", "partitionDefinitions", "partitionFunctionDefinition", "subpartitionFunctionDefinition", "partitionDefinition", "partitionDefinerAtom", "partitionDefinerVector", - "subpartitionDefinition", "partitionOption", "alterDatabase", "alterEvent", - "alterFunction", "alterInstance", "alterLogfileGroup", "alterProcedure", - "alterServer", "alterTable", "alterTablespace", "alterView", "alterOption", + "subPartitionDefinition", "partitionOption", "alterDatabase", "alterEvent", + "alterFunction", "alterInstance", "alterLogFileGroup", "alterProcedure", + "alterServer", "alterTable", "alterTableSpace", "alterView", "alterOption", "alterPartitionSpecification", "dropDatabase", "dropEvent", "dropIndex", - "dropLogfileGroup", "dropProcedure", "dropFunction", "dropServer", - "dropSpatial", "dropTable", "dropTablespace", "dropTrigger", "dropView", + "dropLogFileGroup", "dropProcedure", "dropFunction", "dropServer", + "dropSpatial", "dropTable", "dropTableSpace", "dropTrigger", "dropView", "dropRole", "setRole", "renameTable", "renameTableClause", "truncateTable", "callStatement", "deleteStatement", "doStatement", "handlerStatement", "insertStatement", "asRowAlias", "selectOrTableOrValues", "interSectStatement", @@ -1752,7 +1752,7 @@ export class MySqlParser extends SQLParserBase { "selectElements", "selectElement", "intoClause", "selectFieldsInto", "selectLinesInto", "fromClause", "groupByClause", "havingClause", "windowClause", "groupByItem", "limitClause", "limitClauseAtom", - "startTransaction", "beginWork", "commitWork", "rollbackWork", "savepointStatement", + "startTransaction", "beginWork", "commitWork", "rollbackWork", "savePointStatement", "rollbackStatement", "releaseStatement", "lockTables", "unlockTables", "setAutocommitStatement", "setTransactionStatement", "transactionMode", "lockTableElement", "lockAction", "transactionOption", "transactionLevel", @@ -1770,22 +1770,22 @@ export class MySqlParser extends SQLParserBase { "iterateStatement", "leaveStatement", "loopStatement", "repeatStatement", "returnStatement", "whileStatement", "cursorStatement", "declareVariable", "declareCondition", "declareCursor", "declareHandler", "handlerConditionValue", - "procedureSqlStatement", "caseAlternative", "elifAlternative", "alterUser", - "createUser", "dropUser", "grantStatement", "roleOption", "grantProxy", - "alterResourceGroup", "createResourceGroup", "dropResourceGroup", - "setResourceGroup", "resourceGroupVcpuSpec", "renameUser", "revokeStatement", + "procedureSqlStatement", "caseAlternative", "elseIfAlternative", + "alterUser", "createUser", "dropUser", "grantStatement", "roleOption", + "grantProxy", "alterResourceGroup", "createResourceGroup", "dropResourceGroup", + "setResourceGroup", "resourceGroupVCpuSpec", "renameUser", "revokeStatement", "ignoreUnknownUser", "privilegeObjectType", "setPasswordStatement", "userSpecification", "alterUserAuthOption", "createUserAuthOption", "createUserInitialAuthOption", "userAuthOption", "authOptionClause", "authenticationRule", "tlsOption", "userResourceOption", "userPasswordOption", "userLockOption", "factorAuthOption", "registrationOption", "factor", - "privelegeClause", "privilege", "privilegeLevel", "renameUserClause", + "privilegeClause", "privilege", "privilegeLevel", "renameUserClause", "analyzeTable", "checkTable", "checksumTable", "optimizeTable", "repairTable", "tableActionOption", "checkTableOption", "installComponent", "variableExpr", "uninstallComponent", "installPlugin", "uninstallPlugin", "cloneStatement", "setStatement", "showStatement", "variableClause", "showCommonEntity", "showFilter", "showGlobalInfoClause", "showSchemaEntity", - "showProfileType", "binlogStatement", "cacheIndexStatement", "flushStatement", + "showProfileType", "binLogStatement", "cacheIndexStatement", "flushStatement", "killStatement", "loadIndexIntoCache", "resetStatement", "resetOption", "resetPersist", "resetAllChannel", "reStartStatement", "shutdownStatement", "tableIndex", "flushOption", "flushTableOption", "loadedTableIndexes", @@ -1797,13 +1797,13 @@ export class MySqlParser extends SQLParserBase { "viewNameCreate", "viewName", "indexNameCreate", "indexNames", "indexName", "groupNameCreate", "groupName", "tableNameCreate", "tableNames", "tableName", "userOrRoleNames", "userOrRoleName", "columnNameCreate", - "columnNames", "columnName", "tablespaceNameCreate", "tablespaceName", + "columnNames", "columnName", "tableSpaceNameCreate", "tableSpaceName", "partitionNameCreate", "partitionNames", "partitionName", "indexColumnName", "userHostPort", "userAtHost", "simpleUserName", "hostName", "userName", "mysqlVariable", "charsetName", "collationName", "engineName", "engineNameBase", "uuidSet", "xid", "xuidStringId", "fullId", "uidList", "uid", "simpleId", "dottedId", "decimalLiteral", "fileSizeLiteral", "stringLiteral", - "booleanLiteral", "hexadecimalLiteral", "nullNotnull", "constant", + "booleanLiteral", "hexadecimalLiteral", "nullNotNull", "constant", "dataType", "collectionOptions", "convertedDataType", "lengthOneDimension", "lengthTwoDimension", "lengthTwoOptionalDimension", "indexColumnNames", "expressions", "valuesOrValueList", "expressionsWithDefaults", "expressionOrDefault", @@ -2110,7 +2110,7 @@ export class MySqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 4); { this.state = 867; - this.createLogfileGroup(); + this.createLogFileGroup(); } break; case 5: @@ -2152,14 +2152,14 @@ export class MySqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 10); { this.state = 873; - this.createTablespaceInnodb(); + this.createTableSpaceInnoDB(); } break; case 11: this.enterOuterAlt(localContext, 11); { this.state = 874; - this.createTablespaceNdb(); + this.createTableSpaceNDB(); } break; case 12: @@ -2215,7 +2215,7 @@ export class MySqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 19); { this.state = 882; - this.alterLogfileGroup(); + this.alterLogFileGroup(); } break; case 20: @@ -2243,7 +2243,7 @@ export class MySqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 23); { this.state = 886; - this.alterTablespace(); + this.alterTableSpace(); } break; case 24: @@ -2278,7 +2278,7 @@ export class MySqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 28); { this.state = 891; - this.dropLogfileGroup(); + this.dropLogFileGroup(); } break; case 29: @@ -2320,7 +2320,7 @@ export class MySqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 34); { this.state = 897; - this.dropTablespace(); + this.dropTableSpace(); } break; case 35: @@ -2562,7 +2562,7 @@ export class MySqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 5); { this.state = 929; - this.savepointStatement(); + this.savePointStatement(); } break; case 6: @@ -3042,7 +3042,7 @@ export class MySqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 24); { this.state = 992; - this.binlogStatement(); + this.binLogStatement(); } break; case 25: @@ -3537,9 +3537,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public createLogfileGroup(): CreateLogfileGroupContext { - let localContext = new CreateLogfileGroupContext(this.context, this.state); - this.enterRule(localContext, 30, MySqlParser.RULE_createLogfileGroup); + public createLogFileGroup(): CreateLogFileGroupContext { + let localContext = new CreateLogFileGroupContext(this.context, this.state); + this.enterRule(localContext, 30, MySqlParser.RULE_createLogFileGroup); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -3551,7 +3551,7 @@ export class MySqlParser extends SQLParserBase { this.state = 1094; this.match(MySqlParser.KW_GROUP); this.state = 1095; - localContext._logfileGroupName = this.uid(); + localContext._logFileGroupName = this.uid(); this.state = 1096; this.match(MySqlParser.KW_ADD); this.state = 1097; @@ -3642,7 +3642,7 @@ export class MySqlParser extends SQLParserBase { } this.state = 1124; - localContext._nodegroup = this.uid(); + localContext._nodeGroup = this.uid(); } } @@ -4967,9 +4967,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public createTablespaceInnodb(): CreateTablespaceInnodbContext { - let localContext = new CreateTablespaceInnodbContext(this.context, this.state); - this.enterRule(localContext, 44, MySqlParser.RULE_createTablespaceInnodb); + public createTableSpaceInnoDB(): CreateTableSpaceInnoDBContext { + let localContext = new CreateTableSpaceInnoDBContext(this.context, this.state); + this.enterRule(localContext, 44, MySqlParser.RULE_createTableSpaceInnoDB); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -4989,7 +4989,7 @@ export class MySqlParser extends SQLParserBase { this.state = 1332; this.match(MySqlParser.KW_TABLESPACE); this.state = 1333; - this.tablespaceNameCreate(); + this.tableSpaceNameCreate(); this.state = 1337; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -5022,7 +5022,7 @@ export class MySqlParser extends SQLParserBase { } this.state = 1343; - localContext._autoextendSize = this.fileSizeLiteral(); + localContext._autoExtendSize = this.fileSizeLiteral(); } } @@ -5100,9 +5100,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public createTablespaceNdb(): CreateTablespaceNdbContext { - let localContext = new CreateTablespaceNdbContext(this.context, this.state); - this.enterRule(localContext, 46, MySqlParser.RULE_createTablespaceNdb); + public createTableSpaceNDB(): CreateTableSpaceNDBContext { + let localContext = new CreateTableSpaceNDBContext(this.context, this.state); + this.enterRule(localContext, 46, MySqlParser.RULE_createTableSpaceNDB); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -5122,7 +5122,7 @@ export class MySqlParser extends SQLParserBase { this.state = 1369; this.match(MySqlParser.KW_TABLESPACE); this.state = 1370; - this.tablespaceNameCreate(); + this.tableSpaceNameCreate(); this.state = 1371; this.match(MySqlParser.KW_ADD); this.state = 1372; @@ -5136,7 +5136,7 @@ export class MySqlParser extends SQLParserBase { this.state = 1376; this.match(MySqlParser.KW_GROUP); this.state = 1377; - localContext._logfileGroupName = this.uid(); + localContext._logFileGroupName = this.uid(); this.state = 1383; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -5199,7 +5199,7 @@ export class MySqlParser extends SQLParserBase { } this.state = 1396; - localContext._autoextendSize = this.fileSizeLiteral(); + localContext._autoExtendSize = this.fileSizeLiteral(); } } @@ -5243,7 +5243,7 @@ export class MySqlParser extends SQLParserBase { } this.state = 1410; - localContext._nodegroup = this.uid(); + localContext._nodeGroup = this.uid(); } } @@ -7416,7 +7416,7 @@ export class MySqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 1858; - this.nullNotnull(); + this.nullNotNull(); } break; case MySqlParser.KW_DEFAULT: @@ -7919,7 +7919,7 @@ export class MySqlParser extends SQLParserBase { } break; case 3: - localContext = new TableOptionAutoextendSizeContext(localContext); + localContext = new TableOptionAutoExtendSizeContext(localContext); this.enterOuterAlt(localContext, 3); { this.state = 1955; @@ -8671,20 +8671,20 @@ export class MySqlParser extends SQLParserBase { } break; case 31: - localContext = new TableOptionTablespaceContext(localContext); + localContext = new TableOptionTableSpaceContext(localContext); this.enterOuterAlt(localContext, 31); { this.state = 2106; this.match(MySqlParser.KW_TABLESPACE); this.state = 2107; - this.tablespaceName(); + this.tableSpaceName(); this.state = 2109; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 220, this.context) ) { case 1: { this.state = 2108; - this.tablespaceStorage(); + this.tableSpaceStorage(); } break; } @@ -8703,11 +8703,11 @@ export class MySqlParser extends SQLParserBase { } break; case 33: - localContext = new TableOptionTablespaceContext(localContext); + localContext = new TableOptionTableSpaceContext(localContext); this.enterOuterAlt(localContext, 33); { this.state = 2114; - this.tablespaceStorage(); + this.tableSpaceStorage(); } break; case 34: @@ -8809,9 +8809,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public tablespaceStorage(): TablespaceStorageContext { - let localContext = new TablespaceStorageContext(this.context, this.state); - this.enterRule(localContext, 108, MySqlParser.RULE_tablespaceStorage); + public tableSpaceStorage(): TableSpaceStorageContext { + let localContext = new TableSpaceStorageContext(this.context, this.state); + this.enterRule(localContext, 108, MySqlParser.RULE_tableSpaceStorage); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -9274,7 +9274,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2256; this.match(MySqlParser.LR_BRACKET); this.state = 2257; - this.subpartitionDefinition(); + this.subPartitionDefinition(); this.state = 2262; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -9284,7 +9284,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2258; this.match(MySqlParser.COMMA); this.state = 2259; - this.subpartitionDefinition(); + this.subPartitionDefinition(); } } this.state = 2264; @@ -9336,7 +9336,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2281; this.match(MySqlParser.LR_BRACKET); this.state = 2282; - this.subpartitionDefinition(); + this.subPartitionDefinition(); this.state = 2287; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -9346,7 +9346,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2283; this.match(MySqlParser.COMMA); this.state = 2284; - this.subpartitionDefinition(); + this.subPartitionDefinition(); } } this.state = 2289; @@ -9416,7 +9416,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2314; this.match(MySqlParser.LR_BRACKET); this.state = 2315; - this.subpartitionDefinition(); + this.subPartitionDefinition(); this.state = 2320; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -9426,7 +9426,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2316; this.match(MySqlParser.COMMA); this.state = 2317; - this.subpartitionDefinition(); + this.subPartitionDefinition(); } } this.state = 2322; @@ -9496,7 +9496,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2347; this.match(MySqlParser.LR_BRACKET); this.state = 2348; - this.subpartitionDefinition(); + this.subPartitionDefinition(); this.state = 2353; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -9506,7 +9506,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2349; this.match(MySqlParser.COMMA); this.state = 2350; - this.subpartitionDefinition(); + this.subPartitionDefinition(); } } this.state = 2355; @@ -9550,7 +9550,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2368; this.match(MySqlParser.LR_BRACKET); this.state = 2369; - this.subpartitionDefinition(); + this.subPartitionDefinition(); this.state = 2374; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -9560,7 +9560,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2370; this.match(MySqlParser.COMMA); this.state = 2371; - this.subpartitionDefinition(); + this.subPartitionDefinition(); } } this.state = 2376; @@ -9679,9 +9679,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public subpartitionDefinition(): SubpartitionDefinitionContext { - let localContext = new SubpartitionDefinitionContext(this.context, this.state); - this.enterRule(localContext, 122, MySqlParser.RULE_subpartitionDefinition); + public subPartitionDefinition(): SubPartitionDefinitionContext { + let localContext = new SubPartitionDefinitionContext(this.context, this.state); + this.enterRule(localContext, 122, MySqlParser.RULE_subPartitionDefinition); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -9875,7 +9875,7 @@ export class MySqlParser extends SQLParserBase { } break; case MySqlParser.KW_TABLESPACE: - localContext = new PartitionOptionTablespaceContext(localContext); + localContext = new PartitionOptionTableSpaceContext(localContext); this.enterOuterAlt(localContext, 7); { this.state = 2444; @@ -9891,7 +9891,7 @@ export class MySqlParser extends SQLParserBase { } this.state = 2448; - this.tablespaceName(); + this.tableSpaceName(); } break; case MySqlParser.KW_NODEGROUP: @@ -9911,7 +9911,7 @@ export class MySqlParser extends SQLParserBase { } this.state = 2453; - (localContext as PartitionOptionNodeGroupContext)._nodegroup = this.uid(); + (localContext as PartitionOptionNodeGroupContext)._nodeGroup = this.uid(); } break; default: @@ -10228,9 +10228,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public alterLogfileGroup(): AlterLogfileGroupContext { - let localContext = new AlterLogfileGroupContext(this.context, this.state); - this.enterRule(localContext, 134, MySqlParser.RULE_alterLogfileGroup); + public alterLogFileGroup(): AlterLogFileGroupContext { + let localContext = new AlterLogFileGroupContext(this.context, this.state); + this.enterRule(localContext, 134, MySqlParser.RULE_alterLogFileGroup); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -10242,7 +10242,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2529; this.match(MySqlParser.KW_GROUP); this.state = 2530; - localContext._logfileGroupName = this.uid(); + localContext._logFileGroupName = this.uid(); this.state = 2531; this.match(MySqlParser.KW_ADD); this.state = 2532; @@ -10489,9 +10489,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public alterTablespace(): AlterTablespaceContext { - let localContext = new AlterTablespaceContext(this.context, this.state); - this.enterRule(localContext, 142, MySqlParser.RULE_alterTablespace); + public alterTableSpace(): AlterTableSpaceContext { + let localContext = new AlterTableSpaceContext(this.context, this.state); + this.enterRule(localContext, 142, MySqlParser.RULE_alterTableSpace); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -10511,7 +10511,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2600; this.match(MySqlParser.KW_TABLESPACE); this.state = 2601; - this.tablespaceName(); + this.tableSpaceName(); this.state = 2602; _la = this.tokenStream.LA(1); if(!(_la === 6 || _la === 51)) { @@ -10567,7 +10567,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2616; this.match(MySqlParser.KW_TO); this.state = 2617; - this.tablespaceNameCreate(); + this.tableSpaceNameCreate(); } break; } @@ -11743,7 +11743,7 @@ export class MySqlParser extends SQLParserBase { } break; case 19: - localContext = new AlterTablespaceOptionContext(localContext); + localContext = new AlterTableSpaceOptionContext(localContext); this.enterOuterAlt(localContext, 19); { this.state = 2891; @@ -11996,7 +11996,7 @@ export class MySqlParser extends SQLParserBase { this.state = 2929; this.match(MySqlParser.KW_COLUMN); this.state = 2930; - (localContext as AlterByRenameColumnContext)._olcdColumn = this.columnName(); + (localContext as AlterByRenameColumnContext)._oldColumn = this.columnName(); this.state = 2931; this.match(MySqlParser.KW_TO); this.state = 2932; @@ -16987,10 +16987,10 @@ export class MySqlParser extends SQLParserBase { case 1: { this.state = 3066; - localContext._intimeAction = this.tokenStream.LT(1); + localContext._inTimeAction = this.tokenStream.LT(1); _la = this.tokenStream.LA(1); if(!(_la === 508 || _la === 514)) { - localContext._intimeAction = this.errorHandler.recoverInline(this); + localContext._inTimeAction = this.errorHandler.recoverInline(this); } else { this.errorHandler.reportMatch(this); @@ -17091,9 +17091,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public dropLogfileGroup(): DropLogfileGroupContext { - let localContext = new DropLogfileGroupContext(this.context, this.state); - this.enterRule(localContext, 156, MySqlParser.RULE_dropLogfileGroup); + public dropLogFileGroup(): DropLogFileGroupContext { + let localContext = new DropLogFileGroupContext(this.context, this.state); + this.enterRule(localContext, 156, MySqlParser.RULE_dropLogFileGroup); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -17105,7 +17105,7 @@ export class MySqlParser extends SQLParserBase { this.state = 3089; this.match(MySqlParser.KW_GROUP); this.state = 3090; - localContext._logfileGroupName = this.uid(); + localContext._logFileGroupName = this.uid(); this.state = 3091; this.match(MySqlParser.KW_ENGINE); this.state = 3093; @@ -17360,9 +17360,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public dropTablespace(): DropTablespaceContext { - let localContext = new DropTablespaceContext(this.context, this.state); - this.enterRule(localContext, 168, MySqlParser.RULE_dropTablespace); + public dropTableSpace(): DropTableSpaceContext { + let localContext = new DropTableSpaceContext(this.context, this.state); + this.enterRule(localContext, 168, MySqlParser.RULE_dropTableSpace); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -17382,7 +17382,7 @@ export class MySqlParser extends SQLParserBase { this.state = 3143; this.match(MySqlParser.KW_TABLESPACE); this.state = 3144; - this.tablespaceName(); + this.tableSpaceName(); this.state = 3150; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -23944,7 +23944,7 @@ export class MySqlParser extends SQLParserBase { this.state = 4333; this.match(MySqlParser.KW_BY); this.state = 4334; - localContext._enclosion = this.match(MySqlParser.STRING_LITERAL); + localContext._enClosion = this.match(MySqlParser.STRING_LITERAL); } break; case MySqlParser.KW_ESCAPED: @@ -25032,7 +25032,7 @@ export class MySqlParser extends SQLParserBase { if (_la === 502) { { this.state = 4434; - localContext._nochain = this.match(MySqlParser.KW_NO); + localContext._noChain = this.match(MySqlParser.KW_NO); } } @@ -25052,7 +25052,7 @@ export class MySqlParser extends SQLParserBase { if (_la === 502) { { this.state = 4440; - localContext._norelease = this.match(MySqlParser.KW_NO); + localContext._noRelease = this.match(MySqlParser.KW_NO); } } @@ -25109,7 +25109,7 @@ export class MySqlParser extends SQLParserBase { if (_la === 502) { { this.state = 4451; - localContext._nochain = this.match(MySqlParser.KW_NO); + localContext._noChain = this.match(MySqlParser.KW_NO); } } @@ -25129,7 +25129,7 @@ export class MySqlParser extends SQLParserBase { if (_la === 502) { { this.state = 4457; - localContext._norelease = this.match(MySqlParser.KW_NO); + localContext._noRelease = this.match(MySqlParser.KW_NO); } } @@ -25154,9 +25154,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public savepointStatement(): SavepointStatementContext { - let localContext = new SavepointStatementContext(this.context, this.state); - this.enterRule(localContext, 330, MySqlParser.RULE_savepointStatement); + public savePointStatement(): SavePointStatementContext { + let localContext = new SavePointStatementContext(this.context, this.state); + this.enterRule(localContext, 330, MySqlParser.RULE_savePointStatement); try { this.enterOuterAlt(localContext, 1); { @@ -28095,7 +28095,7 @@ export class MySqlParser extends SQLParserBase { { { this.state = 5035; - this.elifAlternative(); + this.elseIfAlternative(); } } this.state = 5040; @@ -29477,9 +29477,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public elifAlternative(): ElifAlternativeContext { - let localContext = new ElifAlternativeContext(this.context, this.state); - this.enterRule(localContext, 458, MySqlParser.RULE_elifAlternative); + public elseIfAlternative(): ElseIfAlternativeContext { + let localContext = new ElseIfAlternativeContext(this.context, this.state); + this.enterRule(localContext, 458, MySqlParser.RULE_elseIfAlternative); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -30048,7 +30048,7 @@ export class MySqlParser extends SQLParserBase { this.state = 5342; this.match(MySqlParser.KW_GRANT); this.state = 5343; - this.privelegeClause(); + this.privilegeClause(); this.state = 5348; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -30058,7 +30058,7 @@ export class MySqlParser extends SQLParserBase { this.state = 5344; this.match(MySqlParser.COMMA); this.state = 5345; - this.privelegeClause(); + this.privilegeClause(); } } this.state = 5350; @@ -30502,7 +30502,7 @@ export class MySqlParser extends SQLParserBase { } this.state = 5469; - this.resourceGroupVcpuSpec(); + this.resourceGroupVCpuSpec(); } } @@ -30617,7 +30617,7 @@ export class MySqlParser extends SQLParserBase { } this.state = 5496; - this.resourceGroupVcpuSpec(); + this.resourceGroupVCpuSpec(); } } @@ -30776,9 +30776,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public resourceGroupVcpuSpec(): ResourceGroupVcpuSpecContext { - let localContext = new ResourceGroupVcpuSpecContext(this.context, this.state); - this.enterRule(localContext, 480, MySqlParser.RULE_resourceGroupVcpuSpec); + public resourceGroupVCpuSpec(): ResourceGroupVCpuSpecContext { + let localContext = new ResourceGroupVCpuSpecContext(this.context, this.state); + this.enterRule(localContext, 480, MySqlParser.RULE_resourceGroupVCpuSpec); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -30813,7 +30813,7 @@ export class MySqlParser extends SQLParserBase { this.state = 5538; this.match(MySqlParser.COMMA); this.state = 5539; - this.resourceGroupVcpuSpec(); + this.resourceGroupVCpuSpec(); } } } @@ -30907,7 +30907,7 @@ export class MySqlParser extends SQLParserBase { } this.state = 5559; - this.privelegeClause(); + this.privilegeClause(); this.state = 5564; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -30917,7 +30917,7 @@ export class MySqlParser extends SQLParserBase { this.state = 5560; this.match(MySqlParser.COMMA); this.state = 5561; - this.privelegeClause(); + this.privilegeClause(); } } this.state = 5566; @@ -32563,9 +32563,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public privelegeClause(): PrivelegeClauseContext { - let localContext = new PrivelegeClauseContext(this.context, this.state); - this.enterRule(localContext, 520, MySqlParser.RULE_privelegeClause); + public privilegeClause(): PrivilegeClauseContext { + let localContext = new PrivilegeClauseContext(this.context, this.state); + this.enterRule(localContext, 520, MySqlParser.RULE_privilegeClause); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -36263,9 +36263,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public binlogStatement(): BinlogStatementContext { - let localContext = new BinlogStatementContext(this.context, this.state); - this.enterRule(localContext, 570, MySqlParser.RULE_binlogStatement); + public binLogStatement(): BinLogStatementContext { + let localContext = new BinLogStatementContext(this.context, this.state); + this.enterRule(localContext, 570, MySqlParser.RULE_binLogStatement); try { this.enterOuterAlt(localContext, 1); { @@ -40912,9 +40912,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public tablespaceNameCreate(): TablespaceNameCreateContext { - let localContext = new TablespaceNameCreateContext(this.context, this.state); - this.enterRule(localContext, 664, MySqlParser.RULE_tablespaceNameCreate); + public tableSpaceNameCreate(): TableSpaceNameCreateContext { + let localContext = new TableSpaceNameCreateContext(this.context, this.state); + this.enterRule(localContext, 664, MySqlParser.RULE_tableSpaceNameCreate); try { this.enterOuterAlt(localContext, 1); { @@ -40936,9 +40936,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public tablespaceName(): TablespaceNameContext { - let localContext = new TablespaceNameContext(this.context, this.state); - this.enterRule(localContext, 666, MySqlParser.RULE_tablespaceName); + public tableSpaceName(): TableSpaceNameContext { + let localContext = new TableSpaceNameContext(this.context, this.state); + this.enterRule(localContext, 666, MySqlParser.RULE_tableSpaceName); try { this.enterOuterAlt(localContext, 1); { @@ -42735,9 +42735,9 @@ export class MySqlParser extends SQLParserBase { } return localContext; } - public nullNotnull(): NullNotnullContext { - let localContext = new NullNotnullContext(this.context, this.state); - this.enterRule(localContext, 722, MySqlParser.RULE_nullNotnull); + public nullNotNull(): NullNotNullContext { + let localContext = new NullNotNullContext(this.context, this.state); + this.enterRule(localContext, 722, MySqlParser.RULE_nullNotNull); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -47234,7 +47234,7 @@ export class MySqlParser extends SQLParserBase { this.state = 7905; this.match(MySqlParser.KW_IS); this.state = 7906; - this.nullNotnull(); + this.nullNotNull(); } break; case 6: @@ -52224,8 +52224,8 @@ export class DdlStatementContext extends antlr.ParserRuleContext { public createIndex(): CreateIndexContext | null { return this.getRuleContext(0, CreateIndexContext); } - public createLogfileGroup(): CreateLogfileGroupContext | null { - return this.getRuleContext(0, CreateLogfileGroupContext); + public createLogFileGroup(): CreateLogFileGroupContext | null { + return this.getRuleContext(0, CreateLogFileGroupContext); } public createProcedure(): CreateProcedureContext | null { return this.getRuleContext(0, CreateProcedureContext); @@ -52242,11 +52242,11 @@ export class DdlStatementContext extends antlr.ParserRuleContext { public createTable(): CreateTableContext | null { return this.getRuleContext(0, CreateTableContext); } - public createTablespaceInnodb(): CreateTablespaceInnodbContext | null { - return this.getRuleContext(0, CreateTablespaceInnodbContext); + public createTableSpaceInnoDB(): CreateTableSpaceInnoDBContext | null { + return this.getRuleContext(0, CreateTableSpaceInnoDBContext); } - public createTablespaceNdb(): CreateTablespaceNdbContext | null { - return this.getRuleContext(0, CreateTablespaceNdbContext); + public createTableSpaceNDB(): CreateTableSpaceNDBContext | null { + return this.getRuleContext(0, CreateTableSpaceNDBContext); } public createTrigger(): CreateTriggerContext | null { return this.getRuleContext(0, CreateTriggerContext); @@ -52269,8 +52269,8 @@ export class DdlStatementContext extends antlr.ParserRuleContext { public alterInstance(): AlterInstanceContext | null { return this.getRuleContext(0, AlterInstanceContext); } - public alterLogfileGroup(): AlterLogfileGroupContext | null { - return this.getRuleContext(0, AlterLogfileGroupContext); + public alterLogFileGroup(): AlterLogFileGroupContext | null { + return this.getRuleContext(0, AlterLogFileGroupContext); } public alterProcedure(): AlterProcedureContext | null { return this.getRuleContext(0, AlterProcedureContext); @@ -52281,8 +52281,8 @@ export class DdlStatementContext extends antlr.ParserRuleContext { public alterTable(): AlterTableContext | null { return this.getRuleContext(0, AlterTableContext); } - public alterTablespace(): AlterTablespaceContext | null { - return this.getRuleContext(0, AlterTablespaceContext); + public alterTableSpace(): AlterTableSpaceContext | null { + return this.getRuleContext(0, AlterTableSpaceContext); } public alterView(): AlterViewContext | null { return this.getRuleContext(0, AlterViewContext); @@ -52296,8 +52296,8 @@ export class DdlStatementContext extends antlr.ParserRuleContext { public dropIndex(): DropIndexContext | null { return this.getRuleContext(0, DropIndexContext); } - public dropLogfileGroup(): DropLogfileGroupContext | null { - return this.getRuleContext(0, DropLogfileGroupContext); + public dropLogFileGroup(): DropLogFileGroupContext | null { + return this.getRuleContext(0, DropLogFileGroupContext); } public dropProcedure(): DropProcedureContext | null { return this.getRuleContext(0, DropProcedureContext); @@ -52314,8 +52314,8 @@ export class DdlStatementContext extends antlr.ParserRuleContext { public dropTable(): DropTableContext | null { return this.getRuleContext(0, DropTableContext); } - public dropTablespace(): DropTablespaceContext | null { - return this.getRuleContext(0, DropTablespaceContext); + public dropTableSpace(): DropTableSpaceContext | null { + return this.getRuleContext(0, DropTableSpaceContext); } public dropTrigger(): DropTriggerContext | null { return this.getRuleContext(0, DropTriggerContext); @@ -52452,8 +52452,8 @@ export class TransactionStatementContext extends antlr.ParserRuleContext { public rollbackWork(): RollbackWorkContext | null { return this.getRuleContext(0, RollbackWorkContext); } - public savepointStatement(): SavepointStatementContext | null { - return this.getRuleContext(0, SavepointStatementContext); + public savePointStatement(): SavePointStatementContext | null { + return this.getRuleContext(0, SavePointStatementContext); } public rollbackStatement(): RollbackStatementContext | null { return this.getRuleContext(0, RollbackStatementContext); @@ -52725,8 +52725,8 @@ export class AdministrationStatementContext extends antlr.ParserRuleContext { public showStatement(): ShowStatementContext | null { return this.getRuleContext(0, ShowStatementContext); } - public binlogStatement(): BinlogStatementContext | null { - return this.getRuleContext(0, BinlogStatementContext); + public binLogStatement(): BinLogStatementContext | null { + return this.getRuleContext(0, BinLogStatementContext); } public cacheIndexStatement(): CacheIndexStatementContext | null { return this.getRuleContext(0, CacheIndexStatementContext); @@ -53120,13 +53120,13 @@ export class CreateIndexContext extends antlr.ParserRuleContext { } -export class CreateLogfileGroupContext extends antlr.ParserRuleContext { - public _logfileGroupName?: UidContext; +export class CreateLogFileGroupContext extends antlr.ParserRuleContext { + public _logFileGroupName?: UidContext; public _undoFile?: Token | null; public _initSize?: FileSizeLiteralContext; public _undoSize?: FileSizeLiteralContext; public _redoSize?: FileSizeLiteralContext; - public _nodegroup?: UidContext; + public _nodeGroup?: UidContext; public _comment?: Token | null; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); @@ -53207,21 +53207,21 @@ export class CreateLogfileGroupContext extends antlr.ParserRuleContext { return this.getRuleContext(i, FileSizeLiteralContext); } public override get ruleIndex(): number { - return MySqlParser.RULE_createLogfileGroup; + return MySqlParser.RULE_createLogFileGroup; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterCreateLogfileGroup) { - listener.enterCreateLogfileGroup(this); + if(listener.enterCreateLogFileGroup) { + listener.enterCreateLogFileGroup(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitCreateLogfileGroup) { - listener.exitCreateLogfileGroup(this); + if(listener.exitCreateLogFileGroup) { + listener.exitCreateLogFileGroup(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitCreateLogfileGroup) { - return visitor.visitCreateLogfileGroup(this); + if (visitor.visitCreateLogFileGroup) { + return visitor.visitCreateLogFileGroup(this); } else { return visitor.visitChildren(this); } @@ -53782,9 +53782,9 @@ export class QueryCreateTableContext extends CreateTableContext { } -export class CreateTablespaceInnodbContext extends antlr.ParserRuleContext { +export class CreateTableSpaceInnoDBContext extends antlr.ParserRuleContext { public _datafile?: Token | null; - public _autoextendSize?: FileSizeLiteralContext; + public _autoExtendSize?: FileSizeLiteralContext; public _fileBlockSize?: FileSizeLiteralContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); @@ -53795,8 +53795,8 @@ export class CreateTablespaceInnodbContext extends antlr.ParserRuleContext { public KW_TABLESPACE(): antlr.TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0)!; } - public tablespaceNameCreate(): TablespaceNameCreateContext { - return this.getRuleContext(0, TablespaceNameCreateContext)!; + public tableSpaceNameCreate(): TableSpaceNameCreateContext { + return this.getRuleContext(0, TableSpaceNameCreateContext)!; } public KW_UNDO(): antlr.TerminalNode | null { return this.getToken(MySqlParser.KW_UNDO, 0); @@ -53850,21 +53850,21 @@ export class CreateTablespaceInnodbContext extends antlr.ParserRuleContext { return this.getRuleContext(i, FileSizeLiteralContext); } public override get ruleIndex(): number { - return MySqlParser.RULE_createTablespaceInnodb; + return MySqlParser.RULE_createTableSpaceInnoDB; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterCreateTablespaceInnodb) { - listener.enterCreateTablespaceInnodb(this); + if(listener.enterCreateTableSpaceInnoDB) { + listener.enterCreateTableSpaceInnoDB(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitCreateTablespaceInnodb) { - listener.exitCreateTablespaceInnodb(this); + if(listener.exitCreateTableSpaceInnoDB) { + listener.exitCreateTableSpaceInnoDB(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitCreateTablespaceInnodb) { - return visitor.visitCreateTablespaceInnodb(this); + if (visitor.visitCreateTableSpaceInnoDB) { + return visitor.visitCreateTableSpaceInnoDB(this); } else { return visitor.visitChildren(this); } @@ -53872,14 +53872,14 @@ export class CreateTablespaceInnodbContext extends antlr.ParserRuleContext { } -export class CreateTablespaceNdbContext extends antlr.ParserRuleContext { +export class CreateTableSpaceNDBContext extends antlr.ParserRuleContext { public _datafile?: Token | null; - public _logfileGroupName?: UidContext; + public _logFileGroupName?: UidContext; public _extentSize?: FileSizeLiteralContext; public _initialSize?: FileSizeLiteralContext; - public _autoextendSize?: FileSizeLiteralContext; + public _autoExtendSize?: FileSizeLiteralContext; public _maxSize?: FileSizeLiteralContext; - public _nodegroup?: UidContext; + public _nodeGroup?: UidContext; public _comment?: Token | null; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); @@ -53890,8 +53890,8 @@ export class CreateTablespaceNdbContext extends antlr.ParserRuleContext { public KW_TABLESPACE(): antlr.TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0)!; } - public tablespaceNameCreate(): TablespaceNameCreateContext { - return this.getRuleContext(0, TablespaceNameCreateContext)!; + public tableSpaceNameCreate(): TableSpaceNameCreateContext { + return this.getRuleContext(0, TableSpaceNameCreateContext)!; } public KW_ADD(): antlr.TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0)!; @@ -53975,21 +53975,21 @@ export class CreateTablespaceNdbContext extends antlr.ParserRuleContext { return this.getRuleContext(i, FileSizeLiteralContext); } public override get ruleIndex(): number { - return MySqlParser.RULE_createTablespaceNdb; + return MySqlParser.RULE_createTableSpaceNDB; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterCreateTablespaceNdb) { - listener.enterCreateTablespaceNdb(this); + if(listener.enterCreateTableSpaceNDB) { + listener.enterCreateTableSpaceNDB(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitCreateTablespaceNdb) { - listener.exitCreateTablespaceNdb(this); + if(listener.exitCreateTableSpaceNDB) { + listener.exitCreateTableSpaceNDB(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitCreateTablespaceNdb) { - return visitor.visitCreateTablespaceNdb(this); + if (visitor.visitCreateTableSpaceNDB) { + return visitor.visitCreateTableSpaceNDB(this); } else { return visitor.visitChildren(this); } @@ -55874,8 +55874,8 @@ export class NullColumnConstraintContext extends ColumnConstraintContext { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } - public nullNotnull(): NullNotnullContext { - return this.getRuleContext(0, NullNotnullContext)!; + public nullNotNull(): NullNotNullContext { + return this.getRuleContext(0, NullNotNullContext)!; } public override enterRule(listener: MySqlParserListener): void { if(listener.enterNullColumnConstraint) { @@ -56280,70 +56280,6 @@ export class TableOptionPersistentContext extends TableOptionContext { } } } -export class TableOptionTablespaceContext extends TableOptionContext { - public constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public KW_TABLESPACE(): antlr.TerminalNode | null { - return this.getToken(MySqlParser.KW_TABLESPACE, 0); - } - public tablespaceName(): TablespaceNameContext | null { - return this.getRuleContext(0, TablespaceNameContext); - } - public tablespaceStorage(): TablespaceStorageContext | null { - return this.getRuleContext(0, TablespaceStorageContext); - } - public override enterRule(listener: MySqlParserListener): void { - if(listener.enterTableOptionTablespace) { - listener.enterTableOptionTablespace(this); - } - } - public override exitRule(listener: MySqlParserListener): void { - if(listener.exitTableOptionTablespace) { - listener.exitTableOptionTablespace(this); - } - } - public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitTableOptionTablespace) { - return visitor.visitTableOptionTablespace(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionAutoextendSizeContext extends TableOptionContext { - public constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public KW_AUTOEXTEND_SIZE(): antlr.TerminalNode { - return this.getToken(MySqlParser.KW_AUTOEXTEND_SIZE, 0)!; - } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext)!; - } - public EQUAL_SYMBOL(): antlr.TerminalNode | null { - return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); - } - public override enterRule(listener: MySqlParserListener): void { - if(listener.enterTableOptionAutoextendSize) { - listener.enterTableOptionAutoextendSize(this); - } - } - public override exitRule(listener: MySqlParserListener): void { - if(listener.exitTableOptionAutoextendSize) { - listener.exitTableOptionAutoextendSize(this); - } - } - public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitTableOptionAutoextendSize) { - return visitor.visitTableOptionAutoextendSize(this); - } else { - return visitor.visitChildren(this); - } - } -} export class TableOptionPageCompressedContext extends TableOptionContext { public constructor(ctx: TableOptionContext) { super(ctx.parent, ctx.invokingState); @@ -57045,6 +56981,38 @@ export class TableOptionPageCompressionLevelContext extends TableOptionContext { } } } +export class TableOptionTableSpaceContext extends TableOptionContext { + public constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + super.copyFrom(ctx); + } + public KW_TABLESPACE(): antlr.TerminalNode | null { + return this.getToken(MySqlParser.KW_TABLESPACE, 0); + } + public tableSpaceName(): TableSpaceNameContext | null { + return this.getRuleContext(0, TableSpaceNameContext); + } + public tableSpaceStorage(): TableSpaceStorageContext | null { + return this.getRuleContext(0, TableSpaceStorageContext); + } + public override enterRule(listener: MySqlParserListener): void { + if(listener.enterTableOptionTableSpace) { + listener.enterTableOptionTableSpace(this); + } + } + public override exitRule(listener: MySqlParserListener): void { + if(listener.exitTableOptionTableSpace) { + listener.exitTableOptionTableSpace(this); + } + } + public override accept(visitor: MySqlParserVisitor): Result | null { + if (visitor.visitTableOptionTableSpace) { + return visitor.visitTableOptionTableSpace(this); + } else { + return visitor.visitChildren(this); + } + } +} export class TableOptionSecondaryEngineAttributeContext extends TableOptionContext { public constructor(ctx: TableOptionContext) { super(ctx.parent, ctx.invokingState); @@ -57193,6 +57161,38 @@ export class TableOptionRowFormatContext extends TableOptionContext { } } } +export class TableOptionAutoExtendSizeContext extends TableOptionContext { + public constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + super.copyFrom(ctx); + } + public KW_AUTOEXTEND_SIZE(): antlr.TerminalNode { + return this.getToken(MySqlParser.KW_AUTOEXTEND_SIZE, 0)!; + } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext)!; + } + public EQUAL_SYMBOL(): antlr.TerminalNode | null { + return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); + } + public override enterRule(listener: MySqlParserListener): void { + if(listener.enterTableOptionAutoExtendSize) { + listener.enterTableOptionAutoExtendSize(this); + } + } + public override exitRule(listener: MySqlParserListener): void { + if(listener.exitTableOptionAutoExtendSize) { + listener.exitTableOptionAutoExtendSize(this); + } + } + public override accept(visitor: MySqlParserVisitor): Result | null { + if (visitor.visitTableOptionAutoExtendSize) { + return visitor.visitTableOptionAutoExtendSize(this); + } else { + return visitor.visitChildren(this); + } + } +} export class TableOptionCompressionContext extends TableOptionContext { public constructor(ctx: TableOptionContext) { super(ctx.parent, ctx.invokingState); @@ -57366,7 +57366,7 @@ export class TableTypeContext extends antlr.ParserRuleContext { } -export class TablespaceStorageContext extends antlr.ParserRuleContext { +export class TableSpaceStorageContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -57383,21 +57383,21 @@ export class TablespaceStorageContext extends antlr.ParserRuleContext { return this.getToken(MySqlParser.KW_DEFAULT, 0); } public override get ruleIndex(): number { - return MySqlParser.RULE_tablespaceStorage; + return MySqlParser.RULE_tableSpaceStorage; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterTablespaceStorage) { - listener.enterTablespaceStorage(this); + if(listener.enterTableSpaceStorage) { + listener.enterTableSpaceStorage(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitTablespaceStorage) { - listener.exitTablespaceStorage(this); + if(listener.exitTableSpaceStorage) { + listener.exitTableSpaceStorage(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitTablespaceStorage) { - return visitor.visitTablespaceStorage(this); + if (visitor.visitTableSpaceStorage) { + return visitor.visitTableSpaceStorage(this); } else { return visitor.visitChildren(this); } @@ -57856,14 +57856,14 @@ export class PartitionComparisonContext extends PartitionDefinitionContext { return this.getRuleContext(i, PartitionOptionContext); } - public subpartitionDefinition(): SubpartitionDefinitionContext[]; - public subpartitionDefinition(i: number): SubpartitionDefinitionContext | null; - public subpartitionDefinition(i?: number): SubpartitionDefinitionContext[] | SubpartitionDefinitionContext | null { + public subPartitionDefinition(): SubPartitionDefinitionContext[]; + public subPartitionDefinition(i: number): SubPartitionDefinitionContext | null; + public subPartitionDefinition(i?: number): SubPartitionDefinitionContext[] | SubPartitionDefinitionContext | null { if (i === undefined) { - return this.getRuleContexts(SubpartitionDefinitionContext); + return this.getRuleContexts(SubPartitionDefinitionContext); } - return this.getRuleContext(i, SubpartitionDefinitionContext); + return this.getRuleContext(i, SubPartitionDefinitionContext); } public override enterRule(listener: MySqlParserListener): void { if(listener.enterPartitionComparison) { @@ -57945,14 +57945,14 @@ export class PartitionListAtomContext extends PartitionDefinitionContext { return this.getRuleContext(i, PartitionOptionContext); } - public subpartitionDefinition(): SubpartitionDefinitionContext[]; - public subpartitionDefinition(i: number): SubpartitionDefinitionContext | null; - public subpartitionDefinition(i?: number): SubpartitionDefinitionContext[] | SubpartitionDefinitionContext | null { + public subPartitionDefinition(): SubPartitionDefinitionContext[]; + public subPartitionDefinition(i: number): SubPartitionDefinitionContext | null; + public subPartitionDefinition(i?: number): SubPartitionDefinitionContext[] | SubPartitionDefinitionContext | null { if (i === undefined) { - return this.getRuleContexts(SubpartitionDefinitionContext); + return this.getRuleContexts(SubPartitionDefinitionContext); } - return this.getRuleContext(i, SubpartitionDefinitionContext); + return this.getRuleContext(i, SubPartitionDefinitionContext); } public override enterRule(listener: MySqlParserListener): void { if(listener.enterPartitionListAtom) { @@ -58034,14 +58034,14 @@ export class PartitionListVectorContext extends PartitionDefinitionContext { return this.getRuleContext(i, PartitionOptionContext); } - public subpartitionDefinition(): SubpartitionDefinitionContext[]; - public subpartitionDefinition(i: number): SubpartitionDefinitionContext | null; - public subpartitionDefinition(i?: number): SubpartitionDefinitionContext[] | SubpartitionDefinitionContext | null { + public subPartitionDefinition(): SubPartitionDefinitionContext[]; + public subPartitionDefinition(i: number): SubPartitionDefinitionContext | null; + public subPartitionDefinition(i?: number): SubPartitionDefinitionContext[] | SubPartitionDefinitionContext | null { if (i === undefined) { - return this.getRuleContexts(SubpartitionDefinitionContext); + return this.getRuleContexts(SubPartitionDefinitionContext); } - return this.getRuleContext(i, SubpartitionDefinitionContext); + return this.getRuleContext(i, SubPartitionDefinitionContext); } public override enterRule(listener: MySqlParserListener): void { if(listener.enterPartitionListVector) { @@ -58084,14 +58084,14 @@ export class PartitionSimpleContext extends PartitionDefinitionContext { public LR_BRACKET(): antlr.TerminalNode | null { return this.getToken(MySqlParser.LR_BRACKET, 0); } - public subpartitionDefinition(): SubpartitionDefinitionContext[]; - public subpartitionDefinition(i: number): SubpartitionDefinitionContext | null; - public subpartitionDefinition(i?: number): SubpartitionDefinitionContext[] | SubpartitionDefinitionContext | null { + public subPartitionDefinition(): SubPartitionDefinitionContext[]; + public subPartitionDefinition(i: number): SubPartitionDefinitionContext | null; + public subPartitionDefinition(i?: number): SubPartitionDefinitionContext[] | SubPartitionDefinitionContext | null { if (i === undefined) { - return this.getRuleContexts(SubpartitionDefinitionContext); + return this.getRuleContexts(SubPartitionDefinitionContext); } - return this.getRuleContext(i, SubpartitionDefinitionContext); + return this.getRuleContext(i, SubPartitionDefinitionContext); } public RR_BRACKET(): antlr.TerminalNode | null { return this.getToken(MySqlParser.RR_BRACKET, 0); @@ -58212,7 +58212,7 @@ export class PartitionDefinerVectorContext extends antlr.ParserRuleContext { } -export class SubpartitionDefinitionContext extends antlr.ParserRuleContext { +export class SubPartitionDefinitionContext extends antlr.ParserRuleContext { public _logicalName?: UidContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); @@ -58233,21 +58233,21 @@ export class SubpartitionDefinitionContext extends antlr.ParserRuleContext { return this.getRuleContext(i, PartitionOptionContext); } public override get ruleIndex(): number { - return MySqlParser.RULE_subpartitionDefinition; + return MySqlParser.RULE_subPartitionDefinition; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterSubpartitionDefinition) { - listener.enterSubpartitionDefinition(this); + if(listener.enterSubPartitionDefinition) { + listener.enterSubPartitionDefinition(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitSubpartitionDefinition) { - listener.exitSubpartitionDefinition(this); + if(listener.exitSubPartitionDefinition) { + listener.exitSubPartitionDefinition(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitSubpartitionDefinition) { - return visitor.visitSubpartitionDefinition(this); + if (visitor.visitSubPartitionDefinition) { + return visitor.visitSubPartitionDefinition(this); } else { return visitor.visitChildren(this); } @@ -58300,7 +58300,7 @@ export class PartitionOptionCommentContext extends PartitionOptionContext { } } export class PartitionOptionNodeGroupContext extends PartitionOptionContext { - public _nodegroup?: UidContext; + public _nodeGroup?: UidContext; public constructor(ctx: PartitionOptionContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); @@ -58401,71 +58401,71 @@ export class PartitionOptionMaxRowsContext extends PartitionOptionContext { } } } -export class PartitionOptionTablespaceContext extends PartitionOptionContext { +export class PartitionOptionEngineContext extends PartitionOptionContext { public constructor(ctx: PartitionOptionContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } - public KW_TABLESPACE(): antlr.TerminalNode { - return this.getToken(MySqlParser.KW_TABLESPACE, 0)!; + public KW_ENGINE(): antlr.TerminalNode { + return this.getToken(MySqlParser.KW_ENGINE, 0)!; + } + public engineName(): EngineNameContext { + return this.getRuleContext(0, EngineNameContext)!; } - public tablespaceName(): TablespaceNameContext { - return this.getRuleContext(0, TablespaceNameContext)!; + public KW_DEFAULT(): antlr.TerminalNode | null { + return this.getToken(MySqlParser.KW_DEFAULT, 0); + } + public KW_STORAGE(): antlr.TerminalNode | null { + return this.getToken(MySqlParser.KW_STORAGE, 0); } public EQUAL_SYMBOL(): antlr.TerminalNode | null { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterPartitionOptionTablespace) { - listener.enterPartitionOptionTablespace(this); + if(listener.enterPartitionOptionEngine) { + listener.enterPartitionOptionEngine(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitPartitionOptionTablespace) { - listener.exitPartitionOptionTablespace(this); + if(listener.exitPartitionOptionEngine) { + listener.exitPartitionOptionEngine(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitPartitionOptionTablespace) { - return visitor.visitPartitionOptionTablespace(this); + if (visitor.visitPartitionOptionEngine) { + return visitor.visitPartitionOptionEngine(this); } else { return visitor.visitChildren(this); } } } -export class PartitionOptionEngineContext extends PartitionOptionContext { +export class PartitionOptionTableSpaceContext extends PartitionOptionContext { public constructor(ctx: PartitionOptionContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } - public KW_ENGINE(): antlr.TerminalNode { - return this.getToken(MySqlParser.KW_ENGINE, 0)!; - } - public engineName(): EngineNameContext { - return this.getRuleContext(0, EngineNameContext)!; - } - public KW_DEFAULT(): antlr.TerminalNode | null { - return this.getToken(MySqlParser.KW_DEFAULT, 0); + public KW_TABLESPACE(): antlr.TerminalNode { + return this.getToken(MySqlParser.KW_TABLESPACE, 0)!; } - public KW_STORAGE(): antlr.TerminalNode | null { - return this.getToken(MySqlParser.KW_STORAGE, 0); + public tableSpaceName(): TableSpaceNameContext { + return this.getRuleContext(0, TableSpaceNameContext)!; } public EQUAL_SYMBOL(): antlr.TerminalNode | null { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterPartitionOptionEngine) { - listener.enterPartitionOptionEngine(this); + if(listener.enterPartitionOptionTableSpace) { + listener.enterPartitionOptionTableSpace(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitPartitionOptionEngine) { - listener.exitPartitionOptionEngine(this); + if(listener.exitPartitionOptionTableSpace) { + listener.exitPartitionOptionTableSpace(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitPartitionOptionEngine) { - return visitor.visitPartitionOptionEngine(this); + if (visitor.visitPartitionOptionTableSpace) { + return visitor.visitPartitionOptionTableSpace(this); } else { return visitor.visitChildren(this); } @@ -58830,8 +58830,8 @@ export class AlterInstanceContext extends antlr.ParserRuleContext { } -export class AlterLogfileGroupContext extends antlr.ParserRuleContext { - public _logfileGroupName?: UidContext; +export class AlterLogFileGroupContext extends antlr.ParserRuleContext { + public _logFileGroupName?: UidContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -58881,21 +58881,21 @@ export class AlterLogfileGroupContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return MySqlParser.RULE_alterLogfileGroup; + return MySqlParser.RULE_alterLogFileGroup; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterAlterLogfileGroup) { - listener.enterAlterLogfileGroup(this); + if(listener.enterAlterLogFileGroup) { + listener.enterAlterLogFileGroup(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitAlterLogfileGroup) { - listener.exitAlterLogfileGroup(this); + if(listener.exitAlterLogFileGroup) { + listener.exitAlterLogFileGroup(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitAlterLogfileGroup) { - return visitor.visitAlterLogfileGroup(this); + if (visitor.visitAlterLogFileGroup) { + return visitor.visitAlterLogFileGroup(this); } else { return visitor.visitChildren(this); } @@ -59076,7 +59076,7 @@ export class AlterTableContext extends antlr.ParserRuleContext { } -export class AlterTablespaceContext extends antlr.ParserRuleContext { +export class AlterTableSpaceContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59086,8 +59086,8 @@ export class AlterTablespaceContext extends antlr.ParserRuleContext { public KW_TABLESPACE(): antlr.TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0)!; } - public tablespaceName(): TablespaceNameContext { - return this.getRuleContext(0, TablespaceNameContext)!; + public tableSpaceName(): TableSpaceNameContext { + return this.getRuleContext(0, TableSpaceNameContext)!; } public KW_DATAFILE(): antlr.TerminalNode { return this.getToken(MySqlParser.KW_DATAFILE, 0)!; @@ -59131,8 +59131,8 @@ export class AlterTablespaceContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode | null { return this.getToken(MySqlParser.KW_TO, 0); } - public tablespaceNameCreate(): TablespaceNameCreateContext | null { - return this.getRuleContext(0, TablespaceNameCreateContext); + public tableSpaceNameCreate(): TableSpaceNameCreateContext | null { + return this.getRuleContext(0, TableSpaceNameCreateContext); } public KW_AUTOEXTEND_SIZE(): antlr.TerminalNode | null { return this.getToken(MySqlParser.KW_AUTOEXTEND_SIZE, 0); @@ -59168,21 +59168,21 @@ export class AlterTablespaceContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return MySqlParser.RULE_alterTablespace; + return MySqlParser.RULE_alterTableSpace; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterAlterTablespace) { - listener.enterAlterTablespace(this); + if(listener.enterAlterTableSpace) { + listener.enterAlterTableSpace(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitAlterTablespace) { - listener.exitAlterTablespace(this); + if(listener.exitAlterTableSpace) { + listener.exitAlterTableSpace(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitAlterTablespace) { - return visitor.visitAlterTablespace(this); + if (visitor.visitAlterTableSpace) { + return visitor.visitAlterTableSpace(this); } else { return visitor.visitChildren(this); } @@ -59448,7 +59448,7 @@ export class AlterByConvertCharsetContext extends AlterOptionContext { } } export class AlterByRenameColumnContext extends AlterOptionContext { - public _olcdColumn?: ColumnNameContext; + public _oldColumn?: ColumnNameContext; public _newColumn?: ColumnNameCreateContext; public constructor(ctx: AlterOptionContext) { super(ctx.parent, ctx.invokingState); @@ -59577,38 +59577,6 @@ export class AlterByRenameIndexContext extends AlterOptionContext { } } } -export class AlterTablespaceOptionContext extends AlterOptionContext { - public constructor(ctx: AlterOptionContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public KW_TABLESPACE(): antlr.TerminalNode { - return this.getToken(MySqlParser.KW_TABLESPACE, 0)!; - } - public KW_DISCARD(): antlr.TerminalNode | null { - return this.getToken(MySqlParser.KW_DISCARD, 0); - } - public KW_IMPORT(): antlr.TerminalNode | null { - return this.getToken(MySqlParser.KW_IMPORT, 0); - } - public override enterRule(listener: MySqlParserListener): void { - if(listener.enterAlterTablespaceOption) { - listener.enterAlterTablespaceOption(this); - } - } - public override exitRule(listener: MySqlParserListener): void { - if(listener.exitAlterTablespaceOption) { - listener.exitAlterTablespaceOption(this); - } - } - public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitAlterTablespaceOption) { - return visitor.visitAlterTablespaceOption(this); - } else { - return visitor.visitChildren(this); - } - } -} export class AlterByRenameContext extends AlterOptionContext { public _renameFormat?: Token | null; public constructor(ctx: AlterOptionContext) { @@ -59859,6 +59827,38 @@ export class AlterByDropForeignKeyContext extends AlterOptionContext { } } } +export class AlterTableSpaceOptionContext extends AlterOptionContext { + public constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + super.copyFrom(ctx); + } + public KW_TABLESPACE(): antlr.TerminalNode { + return this.getToken(MySqlParser.KW_TABLESPACE, 0)!; + } + public KW_DISCARD(): antlr.TerminalNode | null { + return this.getToken(MySqlParser.KW_DISCARD, 0); + } + public KW_IMPORT(): antlr.TerminalNode | null { + return this.getToken(MySqlParser.KW_IMPORT, 0); + } + public override enterRule(listener: MySqlParserListener): void { + if(listener.enterAlterTableSpaceOption) { + listener.enterAlterTableSpaceOption(this); + } + } + public override exitRule(listener: MySqlParserListener): void { + if(listener.exitAlterTableSpaceOption) { + listener.exitAlterTableSpaceOption(this); + } + } + public override accept(visitor: MySqlParserVisitor): Result | null { + if (visitor.visitAlterTableSpaceOption) { + return visitor.visitAlterTableSpaceOption(this); + } else { + return visitor.visitChildren(this); + } + } +} export class AlterByAddCheckTableConstraintContext extends AlterOptionContext { public constructor(ctx: AlterOptionContext) { super(ctx.parent, ctx.invokingState); @@ -61295,7 +61295,7 @@ export class DropEventContext extends antlr.ParserRuleContext { export class DropIndexContext extends antlr.ParserRuleContext { - public _intimeAction?: Token | null; + public _inTimeAction?: Token | null; public _algType?: Token | null; public _lockType?: Token | null; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { @@ -61426,8 +61426,8 @@ export class DropIndexContext extends antlr.ParserRuleContext { } -export class DropLogfileGroupContext extends antlr.ParserRuleContext { - public _logfileGroupName?: UidContext; +export class DropLogFileGroupContext extends antlr.ParserRuleContext { + public _logFileGroupName?: UidContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -61453,21 +61453,21 @@ export class DropLogfileGroupContext extends antlr.ParserRuleContext { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } public override get ruleIndex(): number { - return MySqlParser.RULE_dropLogfileGroup; + return MySqlParser.RULE_dropLogFileGroup; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterDropLogfileGroup) { - listener.enterDropLogfileGroup(this); + if(listener.enterDropLogFileGroup) { + listener.enterDropLogFileGroup(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitDropLogfileGroup) { - listener.exitDropLogfileGroup(this); + if(listener.exitDropLogFileGroup) { + listener.exitDropLogFileGroup(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitDropLogfileGroup) { - return visitor.visitDropLogfileGroup(this); + if (visitor.visitDropLogFileGroup) { + return visitor.visitDropLogFileGroup(this); } else { return visitor.visitChildren(this); } @@ -61688,7 +61688,7 @@ export class DropTableContext extends antlr.ParserRuleContext { } -export class DropTablespaceContext extends antlr.ParserRuleContext { +export class DropTableSpaceContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -61698,8 +61698,8 @@ export class DropTablespaceContext extends antlr.ParserRuleContext { public KW_TABLESPACE(): antlr.TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0)!; } - public tablespaceName(): TablespaceNameContext { - return this.getRuleContext(0, TablespaceNameContext)!; + public tableSpaceName(): TableSpaceNameContext { + return this.getRuleContext(0, TableSpaceNameContext)!; } public KW_UNDO(): antlr.TerminalNode | null { return this.getToken(MySqlParser.KW_UNDO, 0); @@ -61714,21 +61714,21 @@ export class DropTablespaceContext extends antlr.ParserRuleContext { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } public override get ruleIndex(): number { - return MySqlParser.RULE_dropTablespace; + return MySqlParser.RULE_dropTableSpace; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterDropTablespace) { - listener.enterDropTablespace(this); + if(listener.enterDropTableSpace) { + listener.enterDropTableSpace(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitDropTablespace) { - listener.exitDropTablespace(this); + if(listener.exitDropTableSpace) { + listener.exitDropTableSpace(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitDropTablespace) { - return visitor.visitDropTablespace(this); + if (visitor.visitDropTableSpace) { + return visitor.visitDropTableSpace(this); } else { return visitor.visitChildren(this); } @@ -66053,7 +66053,7 @@ export class SelectIntoDumpFileContext extends IntoClauseContext { export class SelectFieldsIntoContext extends antlr.ParserRuleContext { public _terminationField?: Token | null; - public _enclosion?: Token | null; + public _enClosion?: Token | null; public _escaping?: Token | null; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); @@ -66560,8 +66560,8 @@ export class BeginWorkContext extends antlr.ParserRuleContext { export class CommitWorkContext extends antlr.ParserRuleContext { - public _nochain?: Token | null; - public _norelease?: Token | null; + public _noChain?: Token | null; + public _noRelease?: Token | null; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66613,8 +66613,8 @@ export class CommitWorkContext extends antlr.ParserRuleContext { export class RollbackWorkContext extends antlr.ParserRuleContext { - public _nochain?: Token | null; - public _norelease?: Token | null; + public _noChain?: Token | null; + public _noRelease?: Token | null; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66665,7 +66665,7 @@ export class RollbackWorkContext extends antlr.ParserRuleContext { } -export class SavepointStatementContext extends antlr.ParserRuleContext { +export class SavePointStatementContext extends antlr.ParserRuleContext { public _identifier?: UidContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); @@ -66677,21 +66677,21 @@ export class SavepointStatementContext extends antlr.ParserRuleContext { return this.getRuleContext(0, UidContext)!; } public override get ruleIndex(): number { - return MySqlParser.RULE_savepointStatement; + return MySqlParser.RULE_savePointStatement; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterSavepointStatement) { - listener.enterSavepointStatement(this); + if(listener.enterSavePointStatement) { + listener.enterSavePointStatement(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitSavepointStatement) { - listener.exitSavepointStatement(this); + if(listener.exitSavePointStatement) { + listener.exitSavePointStatement(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitSavepointStatement) { - return visitor.visitSavepointStatement(this); + if (visitor.visitSavePointStatement) { + return visitor.visitSavePointStatement(this); } else { return visitor.visitChildren(this); } @@ -69949,14 +69949,14 @@ export class IfStatementContext extends antlr.ParserRuleContext { public KW_END(): antlr.TerminalNode { return this.getToken(MySqlParser.KW_END, 0)!; } - public elifAlternative(): ElifAlternativeContext[]; - public elifAlternative(i: number): ElifAlternativeContext | null; - public elifAlternative(i?: number): ElifAlternativeContext[] | ElifAlternativeContext | null { + public elseIfAlternative(): ElseIfAlternativeContext[]; + public elseIfAlternative(i: number): ElseIfAlternativeContext | null; + public elseIfAlternative(i?: number): ElseIfAlternativeContext[] | ElseIfAlternativeContext | null { if (i === undefined) { - return this.getRuleContexts(ElifAlternativeContext); + return this.getRuleContexts(ElseIfAlternativeContext); } - return this.getRuleContext(i, ElifAlternativeContext); + return this.getRuleContext(i, ElseIfAlternativeContext); } public KW_ELSE(): antlr.TerminalNode | null { return this.getToken(MySqlParser.KW_ELSE, 0); @@ -70876,7 +70876,7 @@ export class CaseAlternativeContext extends antlr.ParserRuleContext { } -export class ElifAlternativeContext extends antlr.ParserRuleContext { +export class ElseIfAlternativeContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70899,21 +70899,21 @@ export class ElifAlternativeContext extends antlr.ParserRuleContext { return this.getRuleContext(i, ProcedureSqlStatementContext); } public override get ruleIndex(): number { - return MySqlParser.RULE_elifAlternative; + return MySqlParser.RULE_elseIfAlternative; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterElifAlternative) { - listener.enterElifAlternative(this); + if(listener.enterElseIfAlternative) { + listener.enterElseIfAlternative(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitElifAlternative) { - listener.exitElifAlternative(this); + if(listener.exitElseIfAlternative) { + listener.exitElseIfAlternative(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitElifAlternative) { - return visitor.visitElifAlternative(this); + if (visitor.visitElseIfAlternative) { + return visitor.visitElseIfAlternative(this); } else { return visitor.visitChildren(this); } @@ -71262,14 +71262,14 @@ export class GrantStatementContext extends antlr.ParserRuleContext { return this.getToken(MySqlParser.KW_GRANT, i); } } - public privelegeClause(): PrivelegeClauseContext[]; - public privelegeClause(i: number): PrivelegeClauseContext | null; - public privelegeClause(i?: number): PrivelegeClauseContext[] | PrivelegeClauseContext | null { + public privilegeClause(): PrivilegeClauseContext[]; + public privilegeClause(i: number): PrivilegeClauseContext | null; + public privilegeClause(i?: number): PrivilegeClauseContext[] | PrivilegeClauseContext | null { if (i === undefined) { - return this.getRuleContexts(PrivelegeClauseContext); + return this.getRuleContexts(PrivilegeClauseContext); } - return this.getRuleContext(i, PrivelegeClauseContext); + return this.getRuleContext(i, PrivilegeClauseContext); } public KW_ON(): antlr.TerminalNode | null { return this.getToken(MySqlParser.KW_ON, 0); @@ -71539,8 +71539,8 @@ export class AlterResourceGroupContext extends antlr.ParserRuleContext { public KW_VCPU(): antlr.TerminalNode | null { return this.getToken(MySqlParser.KW_VCPU, 0); } - public resourceGroupVcpuSpec(): ResourceGroupVcpuSpecContext | null { - return this.getRuleContext(0, ResourceGroupVcpuSpecContext); + public resourceGroupVCpuSpec(): ResourceGroupVCpuSpecContext | null { + return this.getRuleContext(0, ResourceGroupVCpuSpecContext); } public KW_THREAD_PRIORITY(): antlr.TerminalNode | null { return this.getToken(MySqlParser.KW_THREAD_PRIORITY, 0); @@ -71626,8 +71626,8 @@ export class CreateResourceGroupContext extends antlr.ParserRuleContext { public KW_VCPU(): antlr.TerminalNode | null { return this.getToken(MySqlParser.KW_VCPU, 0); } - public resourceGroupVcpuSpec(): ResourceGroupVcpuSpecContext | null { - return this.getRuleContext(0, ResourceGroupVcpuSpecContext); + public resourceGroupVCpuSpec(): ResourceGroupVCpuSpecContext | null { + return this.getRuleContext(0, ResourceGroupVCpuSpecContext); } public KW_THREAD_PRIORITY(): antlr.TerminalNode | null { return this.getToken(MySqlParser.KW_THREAD_PRIORITY, 0); @@ -71766,7 +71766,7 @@ export class SetResourceGroupContext extends antlr.ParserRuleContext { } -export class ResourceGroupVcpuSpecContext extends antlr.ParserRuleContext { +export class ResourceGroupVCpuSpecContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -71791,31 +71791,31 @@ export class ResourceGroupVcpuSpecContext extends antlr.ParserRuleContext { return this.getToken(MySqlParser.COMMA, i); } } - public resourceGroupVcpuSpec(): ResourceGroupVcpuSpecContext[]; - public resourceGroupVcpuSpec(i: number): ResourceGroupVcpuSpecContext | null; - public resourceGroupVcpuSpec(i?: number): ResourceGroupVcpuSpecContext[] | ResourceGroupVcpuSpecContext | null { + public resourceGroupVCpuSpec(): ResourceGroupVCpuSpecContext[]; + public resourceGroupVCpuSpec(i: number): ResourceGroupVCpuSpecContext | null; + public resourceGroupVCpuSpec(i?: number): ResourceGroupVCpuSpecContext[] | ResourceGroupVCpuSpecContext | null { if (i === undefined) { - return this.getRuleContexts(ResourceGroupVcpuSpecContext); + return this.getRuleContexts(ResourceGroupVCpuSpecContext); } - return this.getRuleContext(i, ResourceGroupVcpuSpecContext); + return this.getRuleContext(i, ResourceGroupVCpuSpecContext); } public override get ruleIndex(): number { - return MySqlParser.RULE_resourceGroupVcpuSpec; + return MySqlParser.RULE_resourceGroupVCpuSpec; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterResourceGroupVcpuSpec) { - listener.enterResourceGroupVcpuSpec(this); + if(listener.enterResourceGroupVCpuSpec) { + listener.enterResourceGroupVCpuSpec(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitResourceGroupVcpuSpec) { - listener.exitResourceGroupVcpuSpec(this); + if(listener.exitResourceGroupVCpuSpec) { + listener.exitResourceGroupVCpuSpec(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitResourceGroupVcpuSpec) { - return visitor.visitResourceGroupVcpuSpec(this); + if (visitor.visitResourceGroupVCpuSpec) { + return visitor.visitResourceGroupVCpuSpec(this); } else { return visitor.visitChildren(this); } @@ -71893,14 +71893,14 @@ export class DetailRevokeContext extends RevokeStatementContext { public KW_REVOKE(): antlr.TerminalNode { return this.getToken(MySqlParser.KW_REVOKE, 0)!; } - public privelegeClause(): PrivelegeClauseContext[]; - public privelegeClause(i: number): PrivelegeClauseContext | null; - public privelegeClause(i?: number): PrivelegeClauseContext[] | PrivelegeClauseContext | null { + public privilegeClause(): PrivilegeClauseContext[]; + public privilegeClause(i: number): PrivilegeClauseContext | null; + public privilegeClause(i?: number): PrivilegeClauseContext[] | PrivilegeClauseContext | null { if (i === undefined) { - return this.getRuleContexts(PrivelegeClauseContext); + return this.getRuleContexts(PrivilegeClauseContext); } - return this.getRuleContext(i, PrivelegeClauseContext); + return this.getRuleContext(i, PrivilegeClauseContext); } public KW_ON(): antlr.TerminalNode { return this.getToken(MySqlParser.KW_ON, 0)!; @@ -73179,7 +73179,7 @@ export class FactorContext extends antlr.ParserRuleContext { } -export class PrivelegeClauseContext extends antlr.ParserRuleContext { +export class PrivilegeClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73196,21 +73196,21 @@ export class PrivelegeClauseContext extends antlr.ParserRuleContext { return this.getToken(MySqlParser.RR_BRACKET, 0); } public override get ruleIndex(): number { - return MySqlParser.RULE_privelegeClause; + return MySqlParser.RULE_privilegeClause; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterPrivelegeClause) { - listener.enterPrivelegeClause(this); + if(listener.enterPrivilegeClause) { + listener.enterPrivilegeClause(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitPrivelegeClause) { - listener.exitPrivelegeClause(this); + if(listener.exitPrivilegeClause) { + listener.exitPrivilegeClause(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitPrivelegeClause) { - return visitor.visitPrivelegeClause(this); + if (visitor.visitPrivilegeClause) { + return visitor.visitPrivilegeClause(this); } else { return visitor.visitChildren(this); } @@ -76049,7 +76049,7 @@ export class ShowProfileTypeContext extends antlr.ParserRuleContext { } -export class BinlogStatementContext extends antlr.ParserRuleContext { +export class BinLogStatementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -76060,21 +76060,21 @@ export class BinlogStatementContext extends antlr.ParserRuleContext { return this.getToken(MySqlParser.STRING_LITERAL, 0)!; } public override get ruleIndex(): number { - return MySqlParser.RULE_binlogStatement; + return MySqlParser.RULE_binLogStatement; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterBinlogStatement) { - listener.enterBinlogStatement(this); + if(listener.enterBinLogStatement) { + listener.enterBinLogStatement(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitBinlogStatement) { - listener.exitBinlogStatement(this); + if(listener.exitBinLogStatement) { + listener.exitBinLogStatement(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitBinlogStatement) { - return visitor.visitBinlogStatement(this); + if (visitor.visitBinLogStatement) { + return visitor.visitBinLogStatement(this); } else { return visitor.visitChildren(this); } @@ -78285,7 +78285,7 @@ export class ColumnNameContext extends antlr.ParserRuleContext { } -export class TablespaceNameCreateContext extends antlr.ParserRuleContext { +export class TableSpaceNameCreateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -78293,21 +78293,21 @@ export class TablespaceNameCreateContext extends antlr.ParserRuleContext { return this.getRuleContext(0, UidContext)!; } public override get ruleIndex(): number { - return MySqlParser.RULE_tablespaceNameCreate; + return MySqlParser.RULE_tableSpaceNameCreate; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterTablespaceNameCreate) { - listener.enterTablespaceNameCreate(this); + if(listener.enterTableSpaceNameCreate) { + listener.enterTableSpaceNameCreate(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitTablespaceNameCreate) { - listener.exitTablespaceNameCreate(this); + if(listener.exitTableSpaceNameCreate) { + listener.exitTableSpaceNameCreate(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitTablespaceNameCreate) { - return visitor.visitTablespaceNameCreate(this); + if (visitor.visitTableSpaceNameCreate) { + return visitor.visitTableSpaceNameCreate(this); } else { return visitor.visitChildren(this); } @@ -78315,7 +78315,7 @@ export class TablespaceNameCreateContext extends antlr.ParserRuleContext { } -export class TablespaceNameContext extends antlr.ParserRuleContext { +export class TableSpaceNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -78323,21 +78323,21 @@ export class TablespaceNameContext extends antlr.ParserRuleContext { return this.getRuleContext(0, UidContext)!; } public override get ruleIndex(): number { - return MySqlParser.RULE_tablespaceName; + return MySqlParser.RULE_tableSpaceName; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterTablespaceName) { - listener.enterTablespaceName(this); + if(listener.enterTableSpaceName) { + listener.enterTableSpaceName(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitTablespaceName) { - listener.exitTablespaceName(this); + if(listener.exitTableSpaceName) { + listener.exitTableSpaceName(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitTablespaceName) { - return visitor.visitTablespaceName(this); + if (visitor.visitTableSpaceName) { + return visitor.visitTableSpaceName(this); } else { return visitor.visitChildren(this); } @@ -79426,7 +79426,7 @@ export class HexadecimalLiteralContext extends antlr.ParserRuleContext { } -export class NullNotnullContext extends antlr.ParserRuleContext { +export class NullNotNullContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -79440,21 +79440,21 @@ export class NullNotnullContext extends antlr.ParserRuleContext { return this.getToken(MySqlParser.KW_NOT, 0); } public override get ruleIndex(): number { - return MySqlParser.RULE_nullNotnull; + return MySqlParser.RULE_nullNotNull; } public override enterRule(listener: MySqlParserListener): void { - if(listener.enterNullNotnull) { - listener.enterNullNotnull(this); + if(listener.enterNullNotNull) { + listener.enterNullNotNull(this); } } public override exitRule(listener: MySqlParserListener): void { - if(listener.exitNullNotnull) { - listener.exitNullNotnull(this); + if(listener.exitNullNotNull) { + listener.exitNullNotNull(this); } } public override accept(visitor: MySqlParserVisitor): Result | null { - if (visitor.visitNullNotnull) { - return visitor.visitNullNotnull(this); + if (visitor.visitNullNotNull) { + return visitor.visitNullNotNull(this); } else { return visitor.visitChildren(this); } @@ -83216,8 +83216,8 @@ export class IsNullPredicateContext extends PredicateContext { public KW_IS(): antlr.TerminalNode { return this.getToken(MySqlParser.KW_IS, 0)!; } - public nullNotnull(): NullNotnullContext { - return this.getRuleContext(0, NullNotnullContext)!; + public nullNotNull(): NullNotNullContext { + return this.getRuleContext(0, NullNotNullContext)!; } public override enterRule(listener: MySqlParserListener): void { if(listener.enterIsNullPredicate) { diff --git a/src/lib/mysql/MySqlParserListener.ts b/src/lib/mysql/MySqlParserListener.ts index 3eb533704..35c09a8f7 100644 --- a/src/lib/mysql/MySqlParserListener.ts +++ b/src/lib/mysql/MySqlParserListener.ts @@ -23,7 +23,7 @@ import { UtilityStatementContext } from "./MySqlParser.js"; import { CreateDatabaseContext } from "./MySqlParser.js"; import { CreateEventContext } from "./MySqlParser.js"; import { CreateIndexContext } from "./MySqlParser.js"; -import { CreateLogfileGroupContext } from "./MySqlParser.js"; +import { CreateLogFileGroupContext } from "./MySqlParser.js"; import { CreateProcedureContext } from "./MySqlParser.js"; import { CreateFunctionContext } from "./MySqlParser.js"; import { CreateFunctionLoadableContext } from "./MySqlParser.js"; @@ -32,8 +32,8 @@ import { CreateServerContext } from "./MySqlParser.js"; import { QueryCreateTableContext } from "./MySqlParser.js"; import { CopyCreateTableContext } from "./MySqlParser.js"; import { ColumnCreateTableContext } from "./MySqlParser.js"; -import { CreateTablespaceInnodbContext } from "./MySqlParser.js"; -import { CreateTablespaceNdbContext } from "./MySqlParser.js"; +import { CreateTableSpaceInnoDBContext } from "./MySqlParser.js"; +import { CreateTableSpaceNDBContext } from "./MySqlParser.js"; import { CreateTriggerContext } from "./MySqlParser.js"; import { WithClauseContext } from "./MySqlParser.js"; import { CommonTableExpressionsContext } from "./MySqlParser.js"; @@ -83,7 +83,7 @@ import { ReferenceActionContext } from "./MySqlParser.js"; import { ReferenceControlTypeContext } from "./MySqlParser.js"; import { TableOptionEngineContext } from "./MySqlParser.js"; import { TableOptionEngineAttributeContext } from "./MySqlParser.js"; -import { TableOptionAutoextendSizeContext } from "./MySqlParser.js"; +import { TableOptionAutoExtendSizeContext } from "./MySqlParser.js"; import { TableOptionAutoIncrementContext } from "./MySqlParser.js"; import { TableOptionAverageContext } from "./MySqlParser.js"; import { TableOptionCharsetContext } from "./MySqlParser.js"; @@ -111,12 +111,12 @@ import { TableOptionSecondaryEngineAttributeContext } from "./MySqlParser.js"; import { TableOptionRecalculationContext } from "./MySqlParser.js"; import { TableOptionPersistentContext } from "./MySqlParser.js"; import { TableOptionSamplePageContext } from "./MySqlParser.js"; -import { TableOptionTablespaceContext } from "./MySqlParser.js"; +import { TableOptionTableSpaceContext } from "./MySqlParser.js"; import { TableOptionTableTypeContext } from "./MySqlParser.js"; import { TableOptionTransactionalContext } from "./MySqlParser.js"; import { TableOptionUnionContext } from "./MySqlParser.js"; import { TableTypeContext } from "./MySqlParser.js"; -import { TablespaceStorageContext } from "./MySqlParser.js"; +import { TableSpaceStorageContext } from "./MySqlParser.js"; import { PartitionDefinitionsContext } from "./MySqlParser.js"; import { PartitionFunctionHashContext } from "./MySqlParser.js"; import { PartitionFunctionKeyContext } from "./MySqlParser.js"; @@ -130,25 +130,25 @@ import { PartitionListVectorContext } from "./MySqlParser.js"; import { PartitionSimpleContext } from "./MySqlParser.js"; import { PartitionDefinerAtomContext } from "./MySqlParser.js"; import { PartitionDefinerVectorContext } from "./MySqlParser.js"; -import { SubpartitionDefinitionContext } from "./MySqlParser.js"; +import { SubPartitionDefinitionContext } from "./MySqlParser.js"; import { PartitionOptionEngineContext } from "./MySqlParser.js"; import { PartitionOptionCommentContext } from "./MySqlParser.js"; import { PartitionOptionDataDirectoryContext } from "./MySqlParser.js"; import { PartitionOptionIndexDirectoryContext } from "./MySqlParser.js"; import { PartitionOptionMaxRowsContext } from "./MySqlParser.js"; import { PartitionOptionMinRowsContext } from "./MySqlParser.js"; -import { PartitionOptionTablespaceContext } from "./MySqlParser.js"; +import { PartitionOptionTableSpaceContext } from "./MySqlParser.js"; import { PartitionOptionNodeGroupContext } from "./MySqlParser.js"; import { AlterSimpleDatabaseContext } from "./MySqlParser.js"; import { AlterUpgradeNameContext } from "./MySqlParser.js"; import { AlterEventContext } from "./MySqlParser.js"; import { AlterFunctionContext } from "./MySqlParser.js"; import { AlterInstanceContext } from "./MySqlParser.js"; -import { AlterLogfileGroupContext } from "./MySqlParser.js"; +import { AlterLogFileGroupContext } from "./MySqlParser.js"; import { AlterProcedureContext } from "./MySqlParser.js"; import { AlterServerContext } from "./MySqlParser.js"; import { AlterTableContext } from "./MySqlParser.js"; -import { AlterTablespaceContext } from "./MySqlParser.js"; +import { AlterTableSpaceContext } from "./MySqlParser.js"; import { AlterViewContext } from "./MySqlParser.js"; import { AlterByTableOptionContext } from "./MySqlParser.js"; import { AlterByAddColumnContext } from "./MySqlParser.js"; @@ -168,7 +168,7 @@ import { AlterByChangeColumnContext } from "./MySqlParser.js"; import { AlterByDefaultCharsetContext } from "./MySqlParser.js"; import { AlterByConvertCharsetContext } from "./MySqlParser.js"; import { AlterKeysContext } from "./MySqlParser.js"; -import { AlterTablespaceOptionContext } from "./MySqlParser.js"; +import { AlterTableSpaceOptionContext } from "./MySqlParser.js"; import { AlterByDropColumnContext } from "./MySqlParser.js"; import { AlterByDropIndexContext } from "./MySqlParser.js"; import { AlterByDropPrimaryKeyContext } from "./MySqlParser.js"; @@ -200,13 +200,13 @@ import { AlterByUpgradePartitioningContext } from "./MySqlParser.js"; import { DropDatabaseContext } from "./MySqlParser.js"; import { DropEventContext } from "./MySqlParser.js"; import { DropIndexContext } from "./MySqlParser.js"; -import { DropLogfileGroupContext } from "./MySqlParser.js"; +import { DropLogFileGroupContext } from "./MySqlParser.js"; import { DropProcedureContext } from "./MySqlParser.js"; import { DropFunctionContext } from "./MySqlParser.js"; import { DropServerContext } from "./MySqlParser.js"; import { DropSpatialContext } from "./MySqlParser.js"; import { DropTableContext } from "./MySqlParser.js"; -import { DropTablespaceContext } from "./MySqlParser.js"; +import { DropTableSpaceContext } from "./MySqlParser.js"; import { DropTriggerContext } from "./MySqlParser.js"; import { DropViewContext } from "./MySqlParser.js"; import { DropRoleContext } from "./MySqlParser.js"; @@ -300,7 +300,7 @@ import { StartTransactionContext } from "./MySqlParser.js"; import { BeginWorkContext } from "./MySqlParser.js"; import { CommitWorkContext } from "./MySqlParser.js"; import { RollbackWorkContext } from "./MySqlParser.js"; -import { SavepointStatementContext } from "./MySqlParser.js"; +import { SavePointStatementContext } from "./MySqlParser.js"; import { RollbackStatementContext } from "./MySqlParser.js"; import { ReleaseStatementContext } from "./MySqlParser.js"; import { LockTablesContext } from "./MySqlParser.js"; @@ -392,7 +392,7 @@ import { HandlerConditionNotfoundContext } from "./MySqlParser.js"; import { HandlerConditionExceptionContext } from "./MySqlParser.js"; import { ProcedureSqlStatementContext } from "./MySqlParser.js"; import { CaseAlternativeContext } from "./MySqlParser.js"; -import { ElifAlternativeContext } from "./MySqlParser.js"; +import { ElseIfAlternativeContext } from "./MySqlParser.js"; import { AlterUserContext } from "./MySqlParser.js"; import { CreateUserContext } from "./MySqlParser.js"; import { DropUserContext } from "./MySqlParser.js"; @@ -403,7 +403,7 @@ import { AlterResourceGroupContext } from "./MySqlParser.js"; import { CreateResourceGroupContext } from "./MySqlParser.js"; import { DropResourceGroupContext } from "./MySqlParser.js"; import { SetResourceGroupContext } from "./MySqlParser.js"; -import { ResourceGroupVcpuSpecContext } from "./MySqlParser.js"; +import { ResourceGroupVCpuSpecContext } from "./MySqlParser.js"; import { RenameUserContext } from "./MySqlParser.js"; import { DetailRevokeContext } from "./MySqlParser.js"; import { ShortRevokeContext } from "./MySqlParser.js"; @@ -431,7 +431,7 @@ import { UserLockOptionContext } from "./MySqlParser.js"; import { FactorAuthOptionContext } from "./MySqlParser.js"; import { RegistrationOptionContext } from "./MySqlParser.js"; import { FactorContext } from "./MySqlParser.js"; -import { PrivelegeClauseContext } from "./MySqlParser.js"; +import { PrivilegeClauseContext } from "./MySqlParser.js"; import { PrivilegeContext } from "./MySqlParser.js"; import { CurrentSchemaPriviLevelContext } from "./MySqlParser.js"; import { GlobalPrivLevelContext } from "./MySqlParser.js"; @@ -489,7 +489,7 @@ import { ShowFilterContext } from "./MySqlParser.js"; import { ShowGlobalInfoClauseContext } from "./MySqlParser.js"; import { ShowSchemaEntityContext } from "./MySqlParser.js"; import { ShowProfileTypeContext } from "./MySqlParser.js"; -import { BinlogStatementContext } from "./MySqlParser.js"; +import { BinLogStatementContext } from "./MySqlParser.js"; import { CacheIndexStatementContext } from "./MySqlParser.js"; import { FlushStatementContext } from "./MySqlParser.js"; import { KillStatementContext } from "./MySqlParser.js"; @@ -539,8 +539,8 @@ import { UserOrRoleNameContext } from "./MySqlParser.js"; import { ColumnNameCreateContext } from "./MySqlParser.js"; import { ColumnNamesContext } from "./MySqlParser.js"; import { ColumnNameContext } from "./MySqlParser.js"; -import { TablespaceNameCreateContext } from "./MySqlParser.js"; -import { TablespaceNameContext } from "./MySqlParser.js"; +import { TableSpaceNameCreateContext } from "./MySqlParser.js"; +import { TableSpaceNameContext } from "./MySqlParser.js"; import { PartitionNameCreateContext } from "./MySqlParser.js"; import { PartitionNamesContext } from "./MySqlParser.js"; import { PartitionNameContext } from "./MySqlParser.js"; @@ -568,7 +568,7 @@ import { FileSizeLiteralContext } from "./MySqlParser.js"; import { StringLiteralContext } from "./MySqlParser.js"; import { BooleanLiteralContext } from "./MySqlParser.js"; import { HexadecimalLiteralContext } from "./MySqlParser.js"; -import { NullNotnullContext } from "./MySqlParser.js"; +import { NullNotNullContext } from "./MySqlParser.js"; import { ConstantContext } from "./MySqlParser.js"; import { StringDataTypeContext } from "./MySqlParser.js"; import { NationalVaryingStringDataTypeContext } from "./MySqlParser.js"; @@ -837,15 +837,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitCreateIndex?: (ctx: CreateIndexContext) => void; /** - * Enter a parse tree produced by `MySqlParser.createLogfileGroup`. + * Enter a parse tree produced by `MySqlParser.createLogFileGroup`. * @param ctx the parse tree */ - enterCreateLogfileGroup?: (ctx: CreateLogfileGroupContext) => void; + enterCreateLogFileGroup?: (ctx: CreateLogFileGroupContext) => void; /** - * Exit a parse tree produced by `MySqlParser.createLogfileGroup`. + * Exit a parse tree produced by `MySqlParser.createLogFileGroup`. * @param ctx the parse tree */ - exitCreateLogfileGroup?: (ctx: CreateLogfileGroupContext) => void; + exitCreateLogFileGroup?: (ctx: CreateLogFileGroupContext) => void; /** * Enter a parse tree produced by `MySqlParser.createProcedure`. * @param ctx the parse tree @@ -933,25 +933,25 @@ export class MySqlParserListener implements ParseTreeListener { */ exitColumnCreateTable?: (ctx: ColumnCreateTableContext) => void; /** - * Enter a parse tree produced by `MySqlParser.createTablespaceInnodb`. + * Enter a parse tree produced by `MySqlParser.createTableSpaceInnoDB`. * @param ctx the parse tree */ - enterCreateTablespaceInnodb?: (ctx: CreateTablespaceInnodbContext) => void; + enterCreateTableSpaceInnoDB?: (ctx: CreateTableSpaceInnoDBContext) => void; /** - * Exit a parse tree produced by `MySqlParser.createTablespaceInnodb`. + * Exit a parse tree produced by `MySqlParser.createTableSpaceInnoDB`. * @param ctx the parse tree */ - exitCreateTablespaceInnodb?: (ctx: CreateTablespaceInnodbContext) => void; + exitCreateTableSpaceInnoDB?: (ctx: CreateTableSpaceInnoDBContext) => void; /** - * Enter a parse tree produced by `MySqlParser.createTablespaceNdb`. + * Enter a parse tree produced by `MySqlParser.createTableSpaceNDB`. * @param ctx the parse tree */ - enterCreateTablespaceNdb?: (ctx: CreateTablespaceNdbContext) => void; + enterCreateTableSpaceNDB?: (ctx: CreateTableSpaceNDBContext) => void; /** - * Exit a parse tree produced by `MySqlParser.createTablespaceNdb`. + * Exit a parse tree produced by `MySqlParser.createTableSpaceNDB`. * @param ctx the parse tree */ - exitCreateTablespaceNdb?: (ctx: CreateTablespaceNdbContext) => void; + exitCreateTableSpaceNDB?: (ctx: CreateTableSpaceNDBContext) => void; /** * Enter a parse tree produced by `MySqlParser.createTrigger`. * @param ctx the parse tree @@ -1491,17 +1491,17 @@ export class MySqlParserListener implements ParseTreeListener { */ exitTableOptionEngineAttribute?: (ctx: TableOptionEngineAttributeContext) => void; /** - * Enter a parse tree produced by the `tableOptionAutoextendSize` + * Enter a parse tree produced by the `tableOptionAutoExtendSize` * labeled alternative in `MySqlParser.tableOption`. * @param ctx the parse tree */ - enterTableOptionAutoextendSize?: (ctx: TableOptionAutoextendSizeContext) => void; + enterTableOptionAutoExtendSize?: (ctx: TableOptionAutoExtendSizeContext) => void; /** - * Exit a parse tree produced by the `tableOptionAutoextendSize` + * Exit a parse tree produced by the `tableOptionAutoExtendSize` * labeled alternative in `MySqlParser.tableOption`. * @param ctx the parse tree */ - exitTableOptionAutoextendSize?: (ctx: TableOptionAutoextendSizeContext) => void; + exitTableOptionAutoExtendSize?: (ctx: TableOptionAutoExtendSizeContext) => void; /** * Enter a parse tree produced by the `tableOptionAutoIncrement` * labeled alternative in `MySqlParser.tableOption`. @@ -1827,17 +1827,17 @@ export class MySqlParserListener implements ParseTreeListener { */ exitTableOptionSamplePage?: (ctx: TableOptionSamplePageContext) => void; /** - * Enter a parse tree produced by the `tableOptionTablespace` + * Enter a parse tree produced by the `tableOptionTableSpace` * labeled alternative in `MySqlParser.tableOption`. * @param ctx the parse tree */ - enterTableOptionTablespace?: (ctx: TableOptionTablespaceContext) => void; + enterTableOptionTableSpace?: (ctx: TableOptionTableSpaceContext) => void; /** - * Exit a parse tree produced by the `tableOptionTablespace` + * Exit a parse tree produced by the `tableOptionTableSpace` * labeled alternative in `MySqlParser.tableOption`. * @param ctx the parse tree */ - exitTableOptionTablespace?: (ctx: TableOptionTablespaceContext) => void; + exitTableOptionTableSpace?: (ctx: TableOptionTableSpaceContext) => void; /** * Enter a parse tree produced by the `tableOptionTableType` * labeled alternative in `MySqlParser.tableOption`. @@ -1885,15 +1885,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitTableType?: (ctx: TableTypeContext) => void; /** - * Enter a parse tree produced by `MySqlParser.tablespaceStorage`. + * Enter a parse tree produced by `MySqlParser.tableSpaceStorage`. * @param ctx the parse tree */ - enterTablespaceStorage?: (ctx: TablespaceStorageContext) => void; + enterTableSpaceStorage?: (ctx: TableSpaceStorageContext) => void; /** - * Exit a parse tree produced by `MySqlParser.tablespaceStorage`. + * Exit a parse tree produced by `MySqlParser.tableSpaceStorage`. * @param ctx the parse tree */ - exitTablespaceStorage?: (ctx: TablespaceStorageContext) => void; + exitTableSpaceStorage?: (ctx: TableSpaceStorageContext) => void; /** * Enter a parse tree produced by `MySqlParser.partitionDefinitions`. * @param ctx the parse tree @@ -2045,15 +2045,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitPartitionDefinerVector?: (ctx: PartitionDefinerVectorContext) => void; /** - * Enter a parse tree produced by `MySqlParser.subpartitionDefinition`. + * Enter a parse tree produced by `MySqlParser.subPartitionDefinition`. * @param ctx the parse tree */ - enterSubpartitionDefinition?: (ctx: SubpartitionDefinitionContext) => void; + enterSubPartitionDefinition?: (ctx: SubPartitionDefinitionContext) => void; /** - * Exit a parse tree produced by `MySqlParser.subpartitionDefinition`. + * Exit a parse tree produced by `MySqlParser.subPartitionDefinition`. * @param ctx the parse tree */ - exitSubpartitionDefinition?: (ctx: SubpartitionDefinitionContext) => void; + exitSubPartitionDefinition?: (ctx: SubPartitionDefinitionContext) => void; /** * Enter a parse tree produced by the `partitionOptionEngine` * labeled alternative in `MySqlParser.partitionOption`. @@ -2127,17 +2127,17 @@ export class MySqlParserListener implements ParseTreeListener { */ exitPartitionOptionMinRows?: (ctx: PartitionOptionMinRowsContext) => void; /** - * Enter a parse tree produced by the `partitionOptionTablespace` + * Enter a parse tree produced by the `partitionOptionTableSpace` * labeled alternative in `MySqlParser.partitionOption`. * @param ctx the parse tree */ - enterPartitionOptionTablespace?: (ctx: PartitionOptionTablespaceContext) => void; + enterPartitionOptionTableSpace?: (ctx: PartitionOptionTableSpaceContext) => void; /** - * Exit a parse tree produced by the `partitionOptionTablespace` + * Exit a parse tree produced by the `partitionOptionTableSpace` * labeled alternative in `MySqlParser.partitionOption`. * @param ctx the parse tree */ - exitPartitionOptionTablespace?: (ctx: PartitionOptionTablespaceContext) => void; + exitPartitionOptionTableSpace?: (ctx: PartitionOptionTableSpaceContext) => void; /** * Enter a parse tree produced by the `partitionOptionNodeGroup` * labeled alternative in `MySqlParser.partitionOption`. @@ -2205,15 +2205,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitAlterInstance?: (ctx: AlterInstanceContext) => void; /** - * Enter a parse tree produced by `MySqlParser.alterLogfileGroup`. + * Enter a parse tree produced by `MySqlParser.alterLogFileGroup`. * @param ctx the parse tree */ - enterAlterLogfileGroup?: (ctx: AlterLogfileGroupContext) => void; + enterAlterLogFileGroup?: (ctx: AlterLogFileGroupContext) => void; /** - * Exit a parse tree produced by `MySqlParser.alterLogfileGroup`. + * Exit a parse tree produced by `MySqlParser.alterLogFileGroup`. * @param ctx the parse tree */ - exitAlterLogfileGroup?: (ctx: AlterLogfileGroupContext) => void; + exitAlterLogFileGroup?: (ctx: AlterLogFileGroupContext) => void; /** * Enter a parse tree produced by `MySqlParser.alterProcedure`. * @param ctx the parse tree @@ -2245,15 +2245,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitAlterTable?: (ctx: AlterTableContext) => void; /** - * Enter a parse tree produced by `MySqlParser.alterTablespace`. + * Enter a parse tree produced by `MySqlParser.alterTableSpace`. * @param ctx the parse tree */ - enterAlterTablespace?: (ctx: AlterTablespaceContext) => void; + enterAlterTableSpace?: (ctx: AlterTableSpaceContext) => void; /** - * Exit a parse tree produced by `MySqlParser.alterTablespace`. + * Exit a parse tree produced by `MySqlParser.alterTableSpace`. * @param ctx the parse tree */ - exitAlterTablespace?: (ctx: AlterTablespaceContext) => void; + exitAlterTableSpace?: (ctx: AlterTableSpaceContext) => void; /** * Enter a parse tree produced by `MySqlParser.alterView`. * @param ctx the parse tree @@ -2481,17 +2481,17 @@ export class MySqlParserListener implements ParseTreeListener { */ exitAlterKeys?: (ctx: AlterKeysContext) => void; /** - * Enter a parse tree produced by the `alterTablespaceOption` + * Enter a parse tree produced by the `alterTableSpaceOption` * labeled alternative in `MySqlParser.alterOption`. * @param ctx the parse tree */ - enterAlterTablespaceOption?: (ctx: AlterTablespaceOptionContext) => void; + enterAlterTableSpaceOption?: (ctx: AlterTableSpaceOptionContext) => void; /** - * Exit a parse tree produced by the `alterTablespaceOption` + * Exit a parse tree produced by the `alterTableSpaceOption` * labeled alternative in `MySqlParser.alterOption`. * @param ctx the parse tree */ - exitAlterTablespaceOption?: (ctx: AlterTablespaceOptionContext) => void; + exitAlterTableSpaceOption?: (ctx: AlterTableSpaceOptionContext) => void; /** * Enter a parse tree produced by the `alterByDropColumn` * labeled alternative in `MySqlParser.alterOption`. @@ -2859,15 +2859,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitDropIndex?: (ctx: DropIndexContext) => void; /** - * Enter a parse tree produced by `MySqlParser.dropLogfileGroup`. + * Enter a parse tree produced by `MySqlParser.dropLogFileGroup`. * @param ctx the parse tree */ - enterDropLogfileGroup?: (ctx: DropLogfileGroupContext) => void; + enterDropLogFileGroup?: (ctx: DropLogFileGroupContext) => void; /** - * Exit a parse tree produced by `MySqlParser.dropLogfileGroup`. + * Exit a parse tree produced by `MySqlParser.dropLogFileGroup`. * @param ctx the parse tree */ - exitDropLogfileGroup?: (ctx: DropLogfileGroupContext) => void; + exitDropLogFileGroup?: (ctx: DropLogFileGroupContext) => void; /** * Enter a parse tree produced by `MySqlParser.dropProcedure`. * @param ctx the parse tree @@ -2919,15 +2919,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitDropTable?: (ctx: DropTableContext) => void; /** - * Enter a parse tree produced by `MySqlParser.dropTablespace`. + * Enter a parse tree produced by `MySqlParser.dropTableSpace`. * @param ctx the parse tree */ - enterDropTablespace?: (ctx: DropTablespaceContext) => void; + enterDropTableSpace?: (ctx: DropTableSpaceContext) => void; /** - * Exit a parse tree produced by `MySqlParser.dropTablespace`. + * Exit a parse tree produced by `MySqlParser.dropTableSpace`. * @param ctx the parse tree */ - exitDropTablespace?: (ctx: DropTablespaceContext) => void; + exitDropTableSpace?: (ctx: DropTableSpaceContext) => void; /** * Enter a parse tree produced by `MySqlParser.dropTrigger`. * @param ctx the parse tree @@ -3897,15 +3897,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitRollbackWork?: (ctx: RollbackWorkContext) => void; /** - * Enter a parse tree produced by `MySqlParser.savepointStatement`. + * Enter a parse tree produced by `MySqlParser.savePointStatement`. * @param ctx the parse tree */ - enterSavepointStatement?: (ctx: SavepointStatementContext) => void; + enterSavePointStatement?: (ctx: SavePointStatementContext) => void; /** - * Exit a parse tree produced by `MySqlParser.savepointStatement`. + * Exit a parse tree produced by `MySqlParser.savePointStatement`. * @param ctx the parse tree */ - exitSavepointStatement?: (ctx: SavepointStatementContext) => void; + exitSavePointStatement?: (ctx: SavePointStatementContext) => void; /** * Enter a parse tree produced by `MySqlParser.rollbackStatement`. * @param ctx the parse tree @@ -4887,15 +4887,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitCaseAlternative?: (ctx: CaseAlternativeContext) => void; /** - * Enter a parse tree produced by `MySqlParser.elifAlternative`. + * Enter a parse tree produced by `MySqlParser.elseIfAlternative`. * @param ctx the parse tree */ - enterElifAlternative?: (ctx: ElifAlternativeContext) => void; + enterElseIfAlternative?: (ctx: ElseIfAlternativeContext) => void; /** - * Exit a parse tree produced by `MySqlParser.elifAlternative`. + * Exit a parse tree produced by `MySqlParser.elseIfAlternative`. * @param ctx the parse tree */ - exitElifAlternative?: (ctx: ElifAlternativeContext) => void; + exitElseIfAlternative?: (ctx: ElseIfAlternativeContext) => void; /** * Enter a parse tree produced by `MySqlParser.alterUser`. * @param ctx the parse tree @@ -4997,15 +4997,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitSetResourceGroup?: (ctx: SetResourceGroupContext) => void; /** - * Enter a parse tree produced by `MySqlParser.resourceGroupVcpuSpec`. + * Enter a parse tree produced by `MySqlParser.resourceGroupVCpuSpec`. * @param ctx the parse tree */ - enterResourceGroupVcpuSpec?: (ctx: ResourceGroupVcpuSpecContext) => void; + enterResourceGroupVCpuSpec?: (ctx: ResourceGroupVCpuSpecContext) => void; /** - * Exit a parse tree produced by `MySqlParser.resourceGroupVcpuSpec`. + * Exit a parse tree produced by `MySqlParser.resourceGroupVCpuSpec`. * @param ctx the parse tree */ - exitResourceGroupVcpuSpec?: (ctx: ResourceGroupVcpuSpecContext) => void; + exitResourceGroupVCpuSpec?: (ctx: ResourceGroupVCpuSpecContext) => void; /** * Enter a parse tree produced by `MySqlParser.renameUser`. * @param ctx the parse tree @@ -5301,15 +5301,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitFactor?: (ctx: FactorContext) => void; /** - * Enter a parse tree produced by `MySqlParser.privelegeClause`. + * Enter a parse tree produced by `MySqlParser.privilegeClause`. * @param ctx the parse tree */ - enterPrivelegeClause?: (ctx: PrivelegeClauseContext) => void; + enterPrivilegeClause?: (ctx: PrivilegeClauseContext) => void; /** - * Exit a parse tree produced by `MySqlParser.privelegeClause`. + * Exit a parse tree produced by `MySqlParser.privilegeClause`. * @param ctx the parse tree */ - exitPrivelegeClause?: (ctx: PrivelegeClauseContext) => void; + exitPrivilegeClause?: (ctx: PrivilegeClauseContext) => void; /** * Enter a parse tree produced by `MySqlParser.privilege`. * @param ctx the parse tree @@ -5953,15 +5953,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitShowProfileType?: (ctx: ShowProfileTypeContext) => void; /** - * Enter a parse tree produced by `MySqlParser.binlogStatement`. + * Enter a parse tree produced by `MySqlParser.binLogStatement`. * @param ctx the parse tree */ - enterBinlogStatement?: (ctx: BinlogStatementContext) => void; + enterBinLogStatement?: (ctx: BinLogStatementContext) => void; /** - * Exit a parse tree produced by `MySqlParser.binlogStatement`. + * Exit a parse tree produced by `MySqlParser.binLogStatement`. * @param ctx the parse tree */ - exitBinlogStatement?: (ctx: BinlogStatementContext) => void; + exitBinLogStatement?: (ctx: BinLogStatementContext) => void; /** * Enter a parse tree produced by `MySqlParser.cacheIndexStatement`. * @param ctx the parse tree @@ -6463,25 +6463,25 @@ export class MySqlParserListener implements ParseTreeListener { */ exitColumnName?: (ctx: ColumnNameContext) => void; /** - * Enter a parse tree produced by `MySqlParser.tablespaceNameCreate`. + * Enter a parse tree produced by `MySqlParser.tableSpaceNameCreate`. * @param ctx the parse tree */ - enterTablespaceNameCreate?: (ctx: TablespaceNameCreateContext) => void; + enterTableSpaceNameCreate?: (ctx: TableSpaceNameCreateContext) => void; /** - * Exit a parse tree produced by `MySqlParser.tablespaceNameCreate`. + * Exit a parse tree produced by `MySqlParser.tableSpaceNameCreate`. * @param ctx the parse tree */ - exitTablespaceNameCreate?: (ctx: TablespaceNameCreateContext) => void; + exitTableSpaceNameCreate?: (ctx: TableSpaceNameCreateContext) => void; /** - * Enter a parse tree produced by `MySqlParser.tablespaceName`. + * Enter a parse tree produced by `MySqlParser.tableSpaceName`. * @param ctx the parse tree */ - enterTablespaceName?: (ctx: TablespaceNameContext) => void; + enterTableSpaceName?: (ctx: TableSpaceNameContext) => void; /** - * Exit a parse tree produced by `MySqlParser.tablespaceName`. + * Exit a parse tree produced by `MySqlParser.tableSpaceName`. * @param ctx the parse tree */ - exitTablespaceName?: (ctx: TablespaceNameContext) => void; + exitTableSpaceName?: (ctx: TableSpaceNameContext) => void; /** * Enter a parse tree produced by `MySqlParser.partitionNameCreate`. * @param ctx the parse tree @@ -6753,15 +6753,15 @@ export class MySqlParserListener implements ParseTreeListener { */ exitHexadecimalLiteral?: (ctx: HexadecimalLiteralContext) => void; /** - * Enter a parse tree produced by `MySqlParser.nullNotnull`. + * Enter a parse tree produced by `MySqlParser.nullNotNull`. * @param ctx the parse tree */ - enterNullNotnull?: (ctx: NullNotnullContext) => void; + enterNullNotNull?: (ctx: NullNotNullContext) => void; /** - * Exit a parse tree produced by `MySqlParser.nullNotnull`. + * Exit a parse tree produced by `MySqlParser.nullNotNull`. * @param ctx the parse tree */ - exitNullNotnull?: (ctx: NullNotnullContext) => void; + exitNullNotNull?: (ctx: NullNotNullContext) => void; /** * Enter a parse tree produced by `MySqlParser.constant`. * @param ctx the parse tree diff --git a/src/lib/mysql/MySqlParserVisitor.ts b/src/lib/mysql/MySqlParserVisitor.ts index 6ddd8c452..7d8cf42fd 100644 --- a/src/lib/mysql/MySqlParserVisitor.ts +++ b/src/lib/mysql/MySqlParserVisitor.ts @@ -23,7 +23,7 @@ import { UtilityStatementContext } from "./MySqlParser.js"; import { CreateDatabaseContext } from "./MySqlParser.js"; import { CreateEventContext } from "./MySqlParser.js"; import { CreateIndexContext } from "./MySqlParser.js"; -import { CreateLogfileGroupContext } from "./MySqlParser.js"; +import { CreateLogFileGroupContext } from "./MySqlParser.js"; import { CreateProcedureContext } from "./MySqlParser.js"; import { CreateFunctionContext } from "./MySqlParser.js"; import { CreateFunctionLoadableContext } from "./MySqlParser.js"; @@ -32,8 +32,8 @@ import { CreateServerContext } from "./MySqlParser.js"; import { QueryCreateTableContext } from "./MySqlParser.js"; import { CopyCreateTableContext } from "./MySqlParser.js"; import { ColumnCreateTableContext } from "./MySqlParser.js"; -import { CreateTablespaceInnodbContext } from "./MySqlParser.js"; -import { CreateTablespaceNdbContext } from "./MySqlParser.js"; +import { CreateTableSpaceInnoDBContext } from "./MySqlParser.js"; +import { CreateTableSpaceNDBContext } from "./MySqlParser.js"; import { CreateTriggerContext } from "./MySqlParser.js"; import { WithClauseContext } from "./MySqlParser.js"; import { CommonTableExpressionsContext } from "./MySqlParser.js"; @@ -83,7 +83,7 @@ import { ReferenceActionContext } from "./MySqlParser.js"; import { ReferenceControlTypeContext } from "./MySqlParser.js"; import { TableOptionEngineContext } from "./MySqlParser.js"; import { TableOptionEngineAttributeContext } from "./MySqlParser.js"; -import { TableOptionAutoextendSizeContext } from "./MySqlParser.js"; +import { TableOptionAutoExtendSizeContext } from "./MySqlParser.js"; import { TableOptionAutoIncrementContext } from "./MySqlParser.js"; import { TableOptionAverageContext } from "./MySqlParser.js"; import { TableOptionCharsetContext } from "./MySqlParser.js"; @@ -111,12 +111,12 @@ import { TableOptionSecondaryEngineAttributeContext } from "./MySqlParser.js"; import { TableOptionRecalculationContext } from "./MySqlParser.js"; import { TableOptionPersistentContext } from "./MySqlParser.js"; import { TableOptionSamplePageContext } from "./MySqlParser.js"; -import { TableOptionTablespaceContext } from "./MySqlParser.js"; +import { TableOptionTableSpaceContext } from "./MySqlParser.js"; import { TableOptionTableTypeContext } from "./MySqlParser.js"; import { TableOptionTransactionalContext } from "./MySqlParser.js"; import { TableOptionUnionContext } from "./MySqlParser.js"; import { TableTypeContext } from "./MySqlParser.js"; -import { TablespaceStorageContext } from "./MySqlParser.js"; +import { TableSpaceStorageContext } from "./MySqlParser.js"; import { PartitionDefinitionsContext } from "./MySqlParser.js"; import { PartitionFunctionHashContext } from "./MySqlParser.js"; import { PartitionFunctionKeyContext } from "./MySqlParser.js"; @@ -130,25 +130,25 @@ import { PartitionListVectorContext } from "./MySqlParser.js"; import { PartitionSimpleContext } from "./MySqlParser.js"; import { PartitionDefinerAtomContext } from "./MySqlParser.js"; import { PartitionDefinerVectorContext } from "./MySqlParser.js"; -import { SubpartitionDefinitionContext } from "./MySqlParser.js"; +import { SubPartitionDefinitionContext } from "./MySqlParser.js"; import { PartitionOptionEngineContext } from "./MySqlParser.js"; import { PartitionOptionCommentContext } from "./MySqlParser.js"; import { PartitionOptionDataDirectoryContext } from "./MySqlParser.js"; import { PartitionOptionIndexDirectoryContext } from "./MySqlParser.js"; import { PartitionOptionMaxRowsContext } from "./MySqlParser.js"; import { PartitionOptionMinRowsContext } from "./MySqlParser.js"; -import { PartitionOptionTablespaceContext } from "./MySqlParser.js"; +import { PartitionOptionTableSpaceContext } from "./MySqlParser.js"; import { PartitionOptionNodeGroupContext } from "./MySqlParser.js"; import { AlterSimpleDatabaseContext } from "./MySqlParser.js"; import { AlterUpgradeNameContext } from "./MySqlParser.js"; import { AlterEventContext } from "./MySqlParser.js"; import { AlterFunctionContext } from "./MySqlParser.js"; import { AlterInstanceContext } from "./MySqlParser.js"; -import { AlterLogfileGroupContext } from "./MySqlParser.js"; +import { AlterLogFileGroupContext } from "./MySqlParser.js"; import { AlterProcedureContext } from "./MySqlParser.js"; import { AlterServerContext } from "./MySqlParser.js"; import { AlterTableContext } from "./MySqlParser.js"; -import { AlterTablespaceContext } from "./MySqlParser.js"; +import { AlterTableSpaceContext } from "./MySqlParser.js"; import { AlterViewContext } from "./MySqlParser.js"; import { AlterByTableOptionContext } from "./MySqlParser.js"; import { AlterByAddColumnContext } from "./MySqlParser.js"; @@ -168,7 +168,7 @@ import { AlterByChangeColumnContext } from "./MySqlParser.js"; import { AlterByDefaultCharsetContext } from "./MySqlParser.js"; import { AlterByConvertCharsetContext } from "./MySqlParser.js"; import { AlterKeysContext } from "./MySqlParser.js"; -import { AlterTablespaceOptionContext } from "./MySqlParser.js"; +import { AlterTableSpaceOptionContext } from "./MySqlParser.js"; import { AlterByDropColumnContext } from "./MySqlParser.js"; import { AlterByDropIndexContext } from "./MySqlParser.js"; import { AlterByDropPrimaryKeyContext } from "./MySqlParser.js"; @@ -200,13 +200,13 @@ import { AlterByUpgradePartitioningContext } from "./MySqlParser.js"; import { DropDatabaseContext } from "./MySqlParser.js"; import { DropEventContext } from "./MySqlParser.js"; import { DropIndexContext } from "./MySqlParser.js"; -import { DropLogfileGroupContext } from "./MySqlParser.js"; +import { DropLogFileGroupContext } from "./MySqlParser.js"; import { DropProcedureContext } from "./MySqlParser.js"; import { DropFunctionContext } from "./MySqlParser.js"; import { DropServerContext } from "./MySqlParser.js"; import { DropSpatialContext } from "./MySqlParser.js"; import { DropTableContext } from "./MySqlParser.js"; -import { DropTablespaceContext } from "./MySqlParser.js"; +import { DropTableSpaceContext } from "./MySqlParser.js"; import { DropTriggerContext } from "./MySqlParser.js"; import { DropViewContext } from "./MySqlParser.js"; import { DropRoleContext } from "./MySqlParser.js"; @@ -300,7 +300,7 @@ import { StartTransactionContext } from "./MySqlParser.js"; import { BeginWorkContext } from "./MySqlParser.js"; import { CommitWorkContext } from "./MySqlParser.js"; import { RollbackWorkContext } from "./MySqlParser.js"; -import { SavepointStatementContext } from "./MySqlParser.js"; +import { SavePointStatementContext } from "./MySqlParser.js"; import { RollbackStatementContext } from "./MySqlParser.js"; import { ReleaseStatementContext } from "./MySqlParser.js"; import { LockTablesContext } from "./MySqlParser.js"; @@ -392,7 +392,7 @@ import { HandlerConditionNotfoundContext } from "./MySqlParser.js"; import { HandlerConditionExceptionContext } from "./MySqlParser.js"; import { ProcedureSqlStatementContext } from "./MySqlParser.js"; import { CaseAlternativeContext } from "./MySqlParser.js"; -import { ElifAlternativeContext } from "./MySqlParser.js"; +import { ElseIfAlternativeContext } from "./MySqlParser.js"; import { AlterUserContext } from "./MySqlParser.js"; import { CreateUserContext } from "./MySqlParser.js"; import { DropUserContext } from "./MySqlParser.js"; @@ -403,7 +403,7 @@ import { AlterResourceGroupContext } from "./MySqlParser.js"; import { CreateResourceGroupContext } from "./MySqlParser.js"; import { DropResourceGroupContext } from "./MySqlParser.js"; import { SetResourceGroupContext } from "./MySqlParser.js"; -import { ResourceGroupVcpuSpecContext } from "./MySqlParser.js"; +import { ResourceGroupVCpuSpecContext } from "./MySqlParser.js"; import { RenameUserContext } from "./MySqlParser.js"; import { DetailRevokeContext } from "./MySqlParser.js"; import { ShortRevokeContext } from "./MySqlParser.js"; @@ -431,7 +431,7 @@ import { UserLockOptionContext } from "./MySqlParser.js"; import { FactorAuthOptionContext } from "./MySqlParser.js"; import { RegistrationOptionContext } from "./MySqlParser.js"; import { FactorContext } from "./MySqlParser.js"; -import { PrivelegeClauseContext } from "./MySqlParser.js"; +import { PrivilegeClauseContext } from "./MySqlParser.js"; import { PrivilegeContext } from "./MySqlParser.js"; import { CurrentSchemaPriviLevelContext } from "./MySqlParser.js"; import { GlobalPrivLevelContext } from "./MySqlParser.js"; @@ -489,7 +489,7 @@ import { ShowFilterContext } from "./MySqlParser.js"; import { ShowGlobalInfoClauseContext } from "./MySqlParser.js"; import { ShowSchemaEntityContext } from "./MySqlParser.js"; import { ShowProfileTypeContext } from "./MySqlParser.js"; -import { BinlogStatementContext } from "./MySqlParser.js"; +import { BinLogStatementContext } from "./MySqlParser.js"; import { CacheIndexStatementContext } from "./MySqlParser.js"; import { FlushStatementContext } from "./MySqlParser.js"; import { KillStatementContext } from "./MySqlParser.js"; @@ -539,8 +539,8 @@ import { UserOrRoleNameContext } from "./MySqlParser.js"; import { ColumnNameCreateContext } from "./MySqlParser.js"; import { ColumnNamesContext } from "./MySqlParser.js"; import { ColumnNameContext } from "./MySqlParser.js"; -import { TablespaceNameCreateContext } from "./MySqlParser.js"; -import { TablespaceNameContext } from "./MySqlParser.js"; +import { TableSpaceNameCreateContext } from "./MySqlParser.js"; +import { TableSpaceNameContext } from "./MySqlParser.js"; import { PartitionNameCreateContext } from "./MySqlParser.js"; import { PartitionNamesContext } from "./MySqlParser.js"; import { PartitionNameContext } from "./MySqlParser.js"; @@ -568,7 +568,7 @@ import { FileSizeLiteralContext } from "./MySqlParser.js"; import { StringLiteralContext } from "./MySqlParser.js"; import { BooleanLiteralContext } from "./MySqlParser.js"; import { HexadecimalLiteralContext } from "./MySqlParser.js"; -import { NullNotnullContext } from "./MySqlParser.js"; +import { NullNotNullContext } from "./MySqlParser.js"; import { ConstantContext } from "./MySqlParser.js"; import { StringDataTypeContext } from "./MySqlParser.js"; import { NationalVaryingStringDataTypeContext } from "./MySqlParser.js"; @@ -780,11 +780,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitCreateIndex?: (ctx: CreateIndexContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.createLogfileGroup`. + * Visit a parse tree produced by `MySqlParser.createLogFileGroup`. * @param ctx the parse tree * @return the visitor result */ - visitCreateLogfileGroup?: (ctx: CreateLogfileGroupContext) => Result; + visitCreateLogFileGroup?: (ctx: CreateLogFileGroupContext) => Result; /** * Visit a parse tree produced by `MySqlParser.createProcedure`. * @param ctx the parse tree @@ -837,17 +837,17 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitColumnCreateTable?: (ctx: ColumnCreateTableContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.createTablespaceInnodb`. + * Visit a parse tree produced by `MySqlParser.createTableSpaceInnoDB`. * @param ctx the parse tree * @return the visitor result */ - visitCreateTablespaceInnodb?: (ctx: CreateTablespaceInnodbContext) => Result; + visitCreateTableSpaceInnoDB?: (ctx: CreateTableSpaceInnoDBContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.createTablespaceNdb`. + * Visit a parse tree produced by `MySqlParser.createTableSpaceNDB`. * @param ctx the parse tree * @return the visitor result */ - visitCreateTablespaceNdb?: (ctx: CreateTablespaceNdbContext) => Result; + visitCreateTableSpaceNDB?: (ctx: CreateTableSpaceNDBContext) => Result; /** * Visit a parse tree produced by `MySqlParser.createTrigger`. * @param ctx the parse tree @@ -1167,12 +1167,12 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitTableOptionEngineAttribute?: (ctx: TableOptionEngineAttributeContext) => Result; /** - * Visit a parse tree produced by the `tableOptionAutoextendSize` + * Visit a parse tree produced by the `tableOptionAutoExtendSize` * labeled alternative in `MySqlParser.tableOption`. * @param ctx the parse tree * @return the visitor result */ - visitTableOptionAutoextendSize?: (ctx: TableOptionAutoextendSizeContext) => Result; + visitTableOptionAutoExtendSize?: (ctx: TableOptionAutoExtendSizeContext) => Result; /** * Visit a parse tree produced by the `tableOptionAutoIncrement` * labeled alternative in `MySqlParser.tableOption`. @@ -1363,12 +1363,12 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitTableOptionSamplePage?: (ctx: TableOptionSamplePageContext) => Result; /** - * Visit a parse tree produced by the `tableOptionTablespace` + * Visit a parse tree produced by the `tableOptionTableSpace` * labeled alternative in `MySqlParser.tableOption`. * @param ctx the parse tree * @return the visitor result */ - visitTableOptionTablespace?: (ctx: TableOptionTablespaceContext) => Result; + visitTableOptionTableSpace?: (ctx: TableOptionTableSpaceContext) => Result; /** * Visit a parse tree produced by the `tableOptionTableType` * labeled alternative in `MySqlParser.tableOption`. @@ -1397,11 +1397,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitTableType?: (ctx: TableTypeContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.tablespaceStorage`. + * Visit a parse tree produced by `MySqlParser.tableSpaceStorage`. * @param ctx the parse tree * @return the visitor result */ - visitTablespaceStorage?: (ctx: TablespaceStorageContext) => Result; + visitTableSpaceStorage?: (ctx: TableSpaceStorageContext) => Result; /** * Visit a parse tree produced by `MySqlParser.partitionDefinitions`. * @param ctx the parse tree @@ -1491,11 +1491,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitPartitionDefinerVector?: (ctx: PartitionDefinerVectorContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.subpartitionDefinition`. + * Visit a parse tree produced by `MySqlParser.subPartitionDefinition`. * @param ctx the parse tree * @return the visitor result */ - visitSubpartitionDefinition?: (ctx: SubpartitionDefinitionContext) => Result; + visitSubPartitionDefinition?: (ctx: SubPartitionDefinitionContext) => Result; /** * Visit a parse tree produced by the `partitionOptionEngine` * labeled alternative in `MySqlParser.partitionOption`. @@ -1539,12 +1539,12 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitPartitionOptionMinRows?: (ctx: PartitionOptionMinRowsContext) => Result; /** - * Visit a parse tree produced by the `partitionOptionTablespace` + * Visit a parse tree produced by the `partitionOptionTableSpace` * labeled alternative in `MySqlParser.partitionOption`. * @param ctx the parse tree * @return the visitor result */ - visitPartitionOptionTablespace?: (ctx: PartitionOptionTablespaceContext) => Result; + visitPartitionOptionTableSpace?: (ctx: PartitionOptionTableSpaceContext) => Result; /** * Visit a parse tree produced by the `partitionOptionNodeGroup` * labeled alternative in `MySqlParser.partitionOption`. @@ -1585,11 +1585,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitAlterInstance?: (ctx: AlterInstanceContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.alterLogfileGroup`. + * Visit a parse tree produced by `MySqlParser.alterLogFileGroup`. * @param ctx the parse tree * @return the visitor result */ - visitAlterLogfileGroup?: (ctx: AlterLogfileGroupContext) => Result; + visitAlterLogFileGroup?: (ctx: AlterLogFileGroupContext) => Result; /** * Visit a parse tree produced by `MySqlParser.alterProcedure`. * @param ctx the parse tree @@ -1609,11 +1609,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitAlterTable?: (ctx: AlterTableContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.alterTablespace`. + * Visit a parse tree produced by `MySqlParser.alterTableSpace`. * @param ctx the parse tree * @return the visitor result */ - visitAlterTablespace?: (ctx: AlterTablespaceContext) => Result; + visitAlterTableSpace?: (ctx: AlterTableSpaceContext) => Result; /** * Visit a parse tree produced by `MySqlParser.alterView`. * @param ctx the parse tree @@ -1747,12 +1747,12 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitAlterKeys?: (ctx: AlterKeysContext) => Result; /** - * Visit a parse tree produced by the `alterTablespaceOption` + * Visit a parse tree produced by the `alterTableSpaceOption` * labeled alternative in `MySqlParser.alterOption`. * @param ctx the parse tree * @return the visitor result */ - visitAlterTablespaceOption?: (ctx: AlterTablespaceOptionContext) => Result; + visitAlterTableSpaceOption?: (ctx: AlterTableSpaceOptionContext) => Result; /** * Visit a parse tree produced by the `alterByDropColumn` * labeled alternative in `MySqlParser.alterOption`. @@ -1968,11 +1968,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitDropIndex?: (ctx: DropIndexContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.dropLogfileGroup`. + * Visit a parse tree produced by `MySqlParser.dropLogFileGroup`. * @param ctx the parse tree * @return the visitor result */ - visitDropLogfileGroup?: (ctx: DropLogfileGroupContext) => Result; + visitDropLogFileGroup?: (ctx: DropLogFileGroupContext) => Result; /** * Visit a parse tree produced by `MySqlParser.dropProcedure`. * @param ctx the parse tree @@ -2004,11 +2004,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitDropTable?: (ctx: DropTableContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.dropTablespace`. + * Visit a parse tree produced by `MySqlParser.dropTableSpace`. * @param ctx the parse tree * @return the visitor result */ - visitDropTablespace?: (ctx: DropTablespaceContext) => Result; + visitDropTableSpace?: (ctx: DropTableSpaceContext) => Result; /** * Visit a parse tree produced by `MySqlParser.dropTrigger`. * @param ctx the parse tree @@ -2587,11 +2587,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitRollbackWork?: (ctx: RollbackWorkContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.savepointStatement`. + * Visit a parse tree produced by `MySqlParser.savePointStatement`. * @param ctx the parse tree * @return the visitor result */ - visitSavepointStatement?: (ctx: SavepointStatementContext) => Result; + visitSavePointStatement?: (ctx: SavePointStatementContext) => Result; /** * Visit a parse tree produced by `MySqlParser.rollbackStatement`. * @param ctx the parse tree @@ -3174,11 +3174,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitCaseAlternative?: (ctx: CaseAlternativeContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.elifAlternative`. + * Visit a parse tree produced by `MySqlParser.elseIfAlternative`. * @param ctx the parse tree * @return the visitor result */ - visitElifAlternative?: (ctx: ElifAlternativeContext) => Result; + visitElseIfAlternative?: (ctx: ElseIfAlternativeContext) => Result; /** * Visit a parse tree produced by `MySqlParser.alterUser`. * @param ctx the parse tree @@ -3240,11 +3240,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitSetResourceGroup?: (ctx: SetResourceGroupContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.resourceGroupVcpuSpec`. + * Visit a parse tree produced by `MySqlParser.resourceGroupVCpuSpec`. * @param ctx the parse tree * @return the visitor result */ - visitResourceGroupVcpuSpec?: (ctx: ResourceGroupVcpuSpecContext) => Result; + visitResourceGroupVCpuSpec?: (ctx: ResourceGroupVCpuSpecContext) => Result; /** * Visit a parse tree produced by `MySqlParser.renameUser`. * @param ctx the parse tree @@ -3420,11 +3420,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitFactor?: (ctx: FactorContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.privelegeClause`. + * Visit a parse tree produced by `MySqlParser.privilegeClause`. * @param ctx the parse tree * @return the visitor result */ - visitPrivelegeClause?: (ctx: PrivelegeClauseContext) => Result; + visitPrivilegeClause?: (ctx: PrivilegeClauseContext) => Result; /** * Visit a parse tree produced by `MySqlParser.privilege`. * @param ctx the parse tree @@ -3804,11 +3804,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitShowProfileType?: (ctx: ShowProfileTypeContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.binlogStatement`. + * Visit a parse tree produced by `MySqlParser.binLogStatement`. * @param ctx the parse tree * @return the visitor result */ - visitBinlogStatement?: (ctx: BinlogStatementContext) => Result; + visitBinLogStatement?: (ctx: BinLogStatementContext) => Result; /** * Visit a parse tree produced by `MySqlParser.cacheIndexStatement`. * @param ctx the parse tree @@ -4109,17 +4109,17 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitColumnName?: (ctx: ColumnNameContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.tablespaceNameCreate`. + * Visit a parse tree produced by `MySqlParser.tableSpaceNameCreate`. * @param ctx the parse tree * @return the visitor result */ - visitTablespaceNameCreate?: (ctx: TablespaceNameCreateContext) => Result; + visitTableSpaceNameCreate?: (ctx: TableSpaceNameCreateContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.tablespaceName`. + * Visit a parse tree produced by `MySqlParser.tableSpaceName`. * @param ctx the parse tree * @return the visitor result */ - visitTablespaceName?: (ctx: TablespaceNameContext) => Result; + visitTableSpaceName?: (ctx: TableSpaceNameContext) => Result; /** * Visit a parse tree produced by `MySqlParser.partitionNameCreate`. * @param ctx the parse tree @@ -4283,11 +4283,11 @@ export class MySqlParserVisitor extends AbstractParseTreeVisitor */ visitHexadecimalLiteral?: (ctx: HexadecimalLiteralContext) => Result; /** - * Visit a parse tree produced by `MySqlParser.nullNotnull`. + * Visit a parse tree produced by `MySqlParser.nullNotNull`. * @param ctx the parse tree * @return the visitor result */ - visitNullNotnull?: (ctx: NullNotnullContext) => Result; + visitNullNotNull?: (ctx: NullNotNullContext) => Result; /** * Visit a parse tree produced by `MySqlParser.constant`. * @param ctx the parse tree From ea376426b1fba55706b0fec5371b4e85009afe8b Mon Sep 17 00:00:00 2001 From: LuckyFBB <976060700@qq.com> Date: Wed, 12 Feb 2025 17:05:16 +0800 Subject: [PATCH 4/8] feat(impala): check spelling errors for impala g4 --- src/grammar/impala/ImpalaSqlParser.g4 | 4 +-- src/lib/impala/ImpalaSqlParser.interp | 2 +- src/lib/impala/ImpalaSqlParser.ts | 32 +++++++++++------------ src/lib/impala/ImpalaSqlParserListener.ts | 10 +++---- src/lib/impala/ImpalaSqlParserVisitor.ts | 6 ++--- 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/grammar/impala/ImpalaSqlParser.g4 b/src/grammar/impala/ImpalaSqlParser.g4 index 75cb5889d..4348e8f44 100644 --- a/src/grammar/impala/ImpalaSqlParser.g4 +++ b/src/grammar/impala/ImpalaSqlParser.g4 @@ -132,7 +132,7 @@ createFunction alterStatement : alterDatabase - | alterUnSetOrSetViewTblproperties + | alterUnSetOrSetViewTblProperties | renameTable | alterViewOwner | alterView @@ -241,7 +241,7 @@ renameTable : KW_ALTER KW_TABLE tableNamePath KW_RENAME KW_TO tableNamePath ; -alterUnSetOrSetViewTblproperties +alterUnSetOrSetViewTblProperties : KW_ALTER KW_VIEW viewNamePath (KW_UNSET | KW_SET) KW_TBLPROPERTIES tblProp=properties ; diff --git a/src/lib/impala/ImpalaSqlParser.interp b/src/lib/impala/ImpalaSqlParser.interp index 6c98fc59e..a0c60a52b 100644 --- a/src/lib/impala/ImpalaSqlParser.interp +++ b/src/lib/impala/ImpalaSqlParser.interp @@ -614,7 +614,7 @@ alterView renameView alterViewOwner renameTable -alterUnSetOrSetViewTblproperties +alterUnSetOrSetViewTblProperties truncateTableStatement describeStatement computeStatement diff --git a/src/lib/impala/ImpalaSqlParser.ts b/src/lib/impala/ImpalaSqlParser.ts index 06c61db8f..99114cf03 100644 --- a/src/lib/impala/ImpalaSqlParser.ts +++ b/src/lib/impala/ImpalaSqlParser.ts @@ -337,7 +337,7 @@ export class ImpalaSqlParser extends SQLParserBase { public static readonly RULE_renameView = 28; public static readonly RULE_alterViewOwner = 29; public static readonly RULE_renameTable = 30; - public static readonly RULE_alterUnSetOrSetViewTblproperties = 31; + public static readonly RULE_alterUnSetOrSetViewTblProperties = 31; public static readonly RULE_truncateTableStatement = 32; public static readonly RULE_describeStatement = 33; public static readonly RULE_computeStatement = 34; @@ -610,7 +610,7 @@ export class ImpalaSqlParser extends SQLParserBase { "alterTableOwner", "replaceOrAddColumns", "addSingleColumn", "alterTableNonKuduOrKuduOnly", "addPartitionByRangeOrValue", "alterFormat", "recoverPartitions", "dropPartitionByRangeOrValue", "alterView", "renameView", "alterViewOwner", - "renameTable", "alterUnSetOrSetViewTblproperties", "truncateTableStatement", + "renameTable", "alterUnSetOrSetViewTblProperties", "truncateTableStatement", "describeStatement", "computeStatement", "computeStats", "computeIncrementalStats", "dropStatement", "dropSchema", "dropView", "dropTable", "dropIncrementalStats", "dropFunction", "dropRole", "grantStatement", "grantRole", "grant", @@ -1930,7 +1930,7 @@ export class ImpalaSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { this.state = 663; - this.alterUnSetOrSetViewTblproperties(); + this.alterUnSetOrSetViewTblProperties(); } break; case 3: @@ -3035,9 +3035,9 @@ export class ImpalaSqlParser extends SQLParserBase { } return localContext; } - public alterUnSetOrSetViewTblproperties(): AlterUnSetOrSetViewTblpropertiesContext { - let localContext = new AlterUnSetOrSetViewTblpropertiesContext(this.context, this.state); - this.enterRule(localContext, 62, ImpalaSqlParser.RULE_alterUnSetOrSetViewTblproperties); + public alterUnSetOrSetViewTblProperties(): AlterUnSetOrSetViewTblPropertiesContext { + let localContext = new AlterUnSetOrSetViewTblPropertiesContext(this.context, this.state); + this.enterRule(localContext, 62, ImpalaSqlParser.RULE_alterUnSetOrSetViewTblProperties); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -15118,8 +15118,8 @@ export class AlterStatementContext extends antlr.ParserRuleContext { public alterDatabase(): AlterDatabaseContext | null { return this.getRuleContext(0, AlterDatabaseContext); } - public alterUnSetOrSetViewTblproperties(): AlterUnSetOrSetViewTblpropertiesContext | null { - return this.getRuleContext(0, AlterUnSetOrSetViewTblpropertiesContext); + public alterUnSetOrSetViewTblProperties(): AlterUnSetOrSetViewTblPropertiesContext | null { + return this.getRuleContext(0, AlterUnSetOrSetViewTblPropertiesContext); } public renameTable(): RenameTableContext | null { return this.getRuleContext(0, RenameTableContext); @@ -16153,7 +16153,7 @@ export class RenameTableContext extends antlr.ParserRuleContext { } -export class AlterUnSetOrSetViewTblpropertiesContext extends antlr.ParserRuleContext { +export class AlterUnSetOrSetViewTblPropertiesContext extends antlr.ParserRuleContext { public _tblProp?: PropertiesContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); @@ -16180,21 +16180,21 @@ export class AlterUnSetOrSetViewTblpropertiesContext extends antlr.ParserRuleCon return this.getRuleContext(0, PropertiesContext)!; } public override get ruleIndex(): number { - return ImpalaSqlParser.RULE_alterUnSetOrSetViewTblproperties; + return ImpalaSqlParser.RULE_alterUnSetOrSetViewTblProperties; } public override enterRule(listener: ImpalaSqlParserListener): void { - if(listener.enterAlterUnSetOrSetViewTblproperties) { - listener.enterAlterUnSetOrSetViewTblproperties(this); + if(listener.enterAlterUnSetOrSetViewTblProperties) { + listener.enterAlterUnSetOrSetViewTblProperties(this); } } public override exitRule(listener: ImpalaSqlParserListener): void { - if(listener.exitAlterUnSetOrSetViewTblproperties) { - listener.exitAlterUnSetOrSetViewTblproperties(this); + if(listener.exitAlterUnSetOrSetViewTblProperties) { + listener.exitAlterUnSetOrSetViewTblProperties(this); } } public override accept(visitor: ImpalaSqlParserVisitor): Result | null { - if (visitor.visitAlterUnSetOrSetViewTblproperties) { - return visitor.visitAlterUnSetOrSetViewTblproperties(this); + if (visitor.visitAlterUnSetOrSetViewTblProperties) { + return visitor.visitAlterUnSetOrSetViewTblProperties(this); } else { return visitor.visitChildren(this); } diff --git a/src/lib/impala/ImpalaSqlParserListener.ts b/src/lib/impala/ImpalaSqlParserListener.ts index bb825fcfc..11488c838 100644 --- a/src/lib/impala/ImpalaSqlParserListener.ts +++ b/src/lib/impala/ImpalaSqlParserListener.ts @@ -39,7 +39,7 @@ import { AlterViewContext } from "./ImpalaSqlParser.js"; import { RenameViewContext } from "./ImpalaSqlParser.js"; import { AlterViewOwnerContext } from "./ImpalaSqlParser.js"; import { RenameTableContext } from "./ImpalaSqlParser.js"; -import { AlterUnSetOrSetViewTblpropertiesContext } from "./ImpalaSqlParser.js"; +import { AlterUnSetOrSetViewTblPropertiesContext } from "./ImpalaSqlParser.js"; import { TruncateTableStatementContext } from "./ImpalaSqlParser.js"; import { DescribeStatementContext } from "./ImpalaSqlParser.js"; import { ComputeStatementContext } from "./ImpalaSqlParser.js"; @@ -569,15 +569,15 @@ export class ImpalaSqlParserListener implements ParseTreeListener { */ exitRenameTable?: (ctx: RenameTableContext) => void; /** - * Enter a parse tree produced by `ImpalaSqlParser.alterUnSetOrSetViewTblproperties`. + * Enter a parse tree produced by `ImpalaSqlParser.alterUnSetOrSetViewTblProperties`. * @param ctx the parse tree */ - enterAlterUnSetOrSetViewTblproperties?: (ctx: AlterUnSetOrSetViewTblpropertiesContext) => void; + enterAlterUnSetOrSetViewTblProperties?: (ctx: AlterUnSetOrSetViewTblPropertiesContext) => void; /** - * Exit a parse tree produced by `ImpalaSqlParser.alterUnSetOrSetViewTblproperties`. + * Exit a parse tree produced by `ImpalaSqlParser.alterUnSetOrSetViewTblProperties`. * @param ctx the parse tree */ - exitAlterUnSetOrSetViewTblproperties?: (ctx: AlterUnSetOrSetViewTblpropertiesContext) => void; + exitAlterUnSetOrSetViewTblProperties?: (ctx: AlterUnSetOrSetViewTblPropertiesContext) => void; /** * Enter a parse tree produced by `ImpalaSqlParser.truncateTableStatement`. * @param ctx the parse tree diff --git a/src/lib/impala/ImpalaSqlParserVisitor.ts b/src/lib/impala/ImpalaSqlParserVisitor.ts index b97a37641..de72c8dac 100644 --- a/src/lib/impala/ImpalaSqlParserVisitor.ts +++ b/src/lib/impala/ImpalaSqlParserVisitor.ts @@ -39,7 +39,7 @@ import { AlterViewContext } from "./ImpalaSqlParser.js"; import { RenameViewContext } from "./ImpalaSqlParser.js"; import { AlterViewOwnerContext } from "./ImpalaSqlParser.js"; import { RenameTableContext } from "./ImpalaSqlParser.js"; -import { AlterUnSetOrSetViewTblpropertiesContext } from "./ImpalaSqlParser.js"; +import { AlterUnSetOrSetViewTblPropertiesContext } from "./ImpalaSqlParser.js"; import { TruncateTableStatementContext } from "./ImpalaSqlParser.js"; import { DescribeStatementContext } from "./ImpalaSqlParser.js"; import { ComputeStatementContext } from "./ImpalaSqlParser.js"; @@ -448,11 +448,11 @@ export class ImpalaSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `ImpalaSqlParser.alterUnSetOrSetViewTblproperties`. + * Visit a parse tree produced by `ImpalaSqlParser.alterUnSetOrSetViewTblProperties`. * @param ctx the parse tree * @return the visitor result */ - visitAlterUnSetOrSetViewTblproperties?: (ctx: AlterUnSetOrSetViewTblpropertiesContext) => Result; + visitAlterUnSetOrSetViewTblProperties?: (ctx: AlterUnSetOrSetViewTblPropertiesContext) => Result; /** * Visit a parse tree produced by `ImpalaSqlParser.truncateTableStatement`. * @param ctx the parse tree From 40f12fb3fde445a598b9922d7a18a4971f6dbeee Mon Sep 17 00:00:00 2001 From: LuckyFBB <976060700@qq.com> Date: Wed, 12 Feb 2025 17:05:36 +0800 Subject: [PATCH 5/8] feat(spark): check spelling errors for spark g4 --- src/grammar/spark/SparkSqlParser.g4 | 50 +-- src/lib/spark/SparkSqlParser.interp | 24 +- src/lib/spark/SparkSqlParser.ts | 468 ++++++++++++------------ src/lib/spark/SparkSqlParserListener.ts | 120 +++--- src/lib/spark/SparkSqlParserVisitor.ts | 72 ++-- 5 files changed, 367 insertions(+), 367 deletions(-) diff --git a/src/grammar/spark/SparkSqlParser.g4 b/src/grammar/spark/SparkSqlParser.g4 index b57f65b61..068b365e8 100644 --- a/src/grammar/spark/SparkSqlParser.g4 +++ b/src/grammar/spark/SparkSqlParser.g4 @@ -182,7 +182,7 @@ statement KW_USING indexType=identifier )? LEFT_PAREN multipartIdentifierPropertyList RIGHT_PAREN (KW_OPTIONS options=propertyList)? # createIndex | KW_DROP KW_INDEX (ifExists)? identifier KW_ON KW_TABLE? tableName # dropIndex - | KW_OPTIMIZE tableName whereClause? zorderClause # optimizeTable + | KW_OPTIMIZE tableName whereClause? zOrderClause # optimizeTable | unsupportedHiveNativeCommands .*? # unsupportHiveCommands ; @@ -595,7 +595,7 @@ hintStatement ; fromClause - : KW_FROM relation (COMMA relation)* lateralView* pivotClause? unpivotClause? + : KW_FROM relation (COMMA relation)* lateralView* pivotClause? unPivotClause? ; functionKind @@ -657,55 +657,55 @@ pivotValue : expression (KW_AS? identifier)? ; -unpivotClause - : KW_UNPIVOT nullOperator=unpivotNullClause? LEFT_PAREN operator=unpivotOperator RIGHT_PAREN ( +unPivotClause + : KW_UNPIVOT nullOperator=unPivotNullClause? LEFT_PAREN operator=unPivotOperator RIGHT_PAREN ( KW_AS? identifier )? ; -unpivotNullClause +unPivotNullClause : (KW_INCLUDE | KW_EXCLUDE) KW_NULLS ; -unpivotOperator - : (unpivotSingleValueColumnClause | unpivotMultiValueColumnClause) +unPivotOperator + : (unPivotSingleValueColumnClause | unPivotMultiValueColumnClause) ; -unpivotSingleValueColumnClause - : unpivotValueColumn KW_FOR unpivotNameColumn KW_IN LEFT_PAREN unpivotColumns+=unpivotColumnAndAlias ( - COMMA unpivotColumns+=unpivotColumnAndAlias +unPivotSingleValueColumnClause + : unPivotValueColumn KW_FOR unPivotNameColumn KW_IN LEFT_PAREN unPivotColumns+=unPivotColumnAndAlias ( + COMMA unPivotColumns+=unPivotColumnAndAlias )* RIGHT_PAREN ; -unpivotMultiValueColumnClause - : LEFT_PAREN unpivotValueColumns+=unpivotValueColumn ( - COMMA unpivotValueColumns+=unpivotValueColumn - )* RIGHT_PAREN KW_FOR unpivotNameColumn KW_IN LEFT_PAREN unpivotColumnSets+=unpivotColumnSet ( - COMMA unpivotColumnSets+=unpivotColumnSet +unPivotMultiValueColumnClause + : LEFT_PAREN unPivotValueColumns+=unPivotValueColumn ( + COMMA unPivotValueColumns+=unPivotValueColumn + )* RIGHT_PAREN KW_FOR unPivotNameColumn KW_IN LEFT_PAREN unPivotColumnSets+=unPivotColumnSet ( + COMMA unPivotColumnSets+=unPivotColumnSet )* RIGHT_PAREN ; -unpivotColumnSet - : LEFT_PAREN unpivotColumns+=unpivotColumn (COMMA unpivotColumns+=unpivotColumn)* RIGHT_PAREN unpivotAlias? +unPivotColumnSet + : LEFT_PAREN unPivotColumns+=unPivotColumn (COMMA unPivotColumns+=unPivotColumn)* RIGHT_PAREN unPivotAlias? ; -unpivotValueColumn +unPivotValueColumn : identifier ; -unpivotNameColumn +unPivotNameColumn : identifier ; -unpivotColumnAndAlias - : unpivotColumn unpivotAlias? +unPivotColumnAndAlias + : unPivotColumn unPivotAlias? ; -unpivotColumn +unPivotColumn : multipartIdentifier ; -unpivotAlias +unPivotAlias : KW_AS? identifier ; @@ -736,7 +736,7 @@ relation relationExtension : joinRelation | pivotClause - | unpivotClause + | unPivotClause ; joinRelation @@ -1269,7 +1269,7 @@ windowClause : KW_WINDOW namedWindow (COMMA namedWindow)* ; -zorderClause +zOrderClause : KW_ZORDER KW_BY columnNameSeq ; diff --git a/src/lib/spark/SparkSqlParser.interp b/src/lib/spark/SparkSqlParser.interp index 03dd67a5e..34e9b24b0 100644 --- a/src/lib/spark/SparkSqlParser.interp +++ b/src/lib/spark/SparkSqlParser.interp @@ -875,17 +875,17 @@ groupingSet pivotClause pivotColumn pivotValue -unpivotClause -unpivotNullClause -unpivotOperator -unpivotSingleValueColumnClause -unpivotMultiValueColumnClause -unpivotColumnSet -unpivotValueColumn -unpivotNameColumn -unpivotColumnAndAlias -unpivotColumn -unpivotAlias +unPivotClause +unPivotNullClause +unPivotOperator +unPivotSingleValueColumnClause +unPivotMultiValueColumnClause +unPivotColumnSet +unPivotValueColumn +unPivotNameColumn +unPivotColumnAndAlias +unPivotColumn +unPivotAlias ifNotExists ifExists lateralView @@ -968,7 +968,7 @@ complexColTypeList complexColType whenClause windowClause -zorderClause +zOrderClause namedWindow windowSpec windowFrame diff --git a/src/lib/spark/SparkSqlParser.ts b/src/lib/spark/SparkSqlParser.ts index c9bb86bdb..ace070df3 100644 --- a/src/lib/spark/SparkSqlParser.ts +++ b/src/lib/spark/SparkSqlParser.ts @@ -494,17 +494,17 @@ export class SparkSqlParser extends SQLParserBase { public static readonly RULE_pivotClause = 81; public static readonly RULE_pivotColumn = 82; public static readonly RULE_pivotValue = 83; - public static readonly RULE_unpivotClause = 84; - public static readonly RULE_unpivotNullClause = 85; - public static readonly RULE_unpivotOperator = 86; - public static readonly RULE_unpivotSingleValueColumnClause = 87; - public static readonly RULE_unpivotMultiValueColumnClause = 88; - public static readonly RULE_unpivotColumnSet = 89; - public static readonly RULE_unpivotValueColumn = 90; - public static readonly RULE_unpivotNameColumn = 91; - public static readonly RULE_unpivotColumnAndAlias = 92; - public static readonly RULE_unpivotColumn = 93; - public static readonly RULE_unpivotAlias = 94; + public static readonly RULE_unPivotClause = 84; + public static readonly RULE_unPivotNullClause = 85; + public static readonly RULE_unPivotOperator = 86; + public static readonly RULE_unPivotSingleValueColumnClause = 87; + public static readonly RULE_unPivotMultiValueColumnClause = 88; + public static readonly RULE_unPivotColumnSet = 89; + public static readonly RULE_unPivotValueColumn = 90; + public static readonly RULE_unPivotNameColumn = 91; + public static readonly RULE_unPivotColumnAndAlias = 92; + public static readonly RULE_unPivotColumn = 93; + public static readonly RULE_unPivotAlias = 94; public static readonly RULE_ifNotExists = 95; public static readonly RULE_ifExists = 96; public static readonly RULE_lateralView = 97; @@ -587,7 +587,7 @@ export class SparkSqlParser extends SQLParserBase { public static readonly RULE_complexColType = 174; public static readonly RULE_whenClause = 175; public static readonly RULE_windowClause = 176; - public static readonly RULE_zorderClause = 177; + public static readonly RULE_zOrderClause = 177; public static readonly RULE_namedWindow = 178; public static readonly RULE_windowSpec = 179; public static readonly RULE_windowFrame = 180; @@ -778,10 +778,10 @@ export class SparkSqlParser extends SQLParserBase { "assignmentList", "assignment", "whereClause", "havingClause", "hint", "hintStatement", "fromClause", "functionKind", "temporalClause", "aggregationClause", "groupByClause", "groupingAnalytics", "groupingElement", - "groupingSet", "pivotClause", "pivotColumn", "pivotValue", "unpivotClause", - "unpivotNullClause", "unpivotOperator", "unpivotSingleValueColumnClause", - "unpivotMultiValueColumnClause", "unpivotColumnSet", "unpivotValueColumn", - "unpivotNameColumn", "unpivotColumnAndAlias", "unpivotColumn", "unpivotAlias", + "groupingSet", "pivotClause", "pivotColumn", "pivotValue", "unPivotClause", + "unPivotNullClause", "unPivotOperator", "unPivotSingleValueColumnClause", + "unPivotMultiValueColumnClause", "unPivotColumnSet", "unPivotValueColumn", + "unPivotNameColumn", "unPivotColumnAndAlias", "unPivotColumn", "unPivotAlias", "ifNotExists", "ifExists", "lateralView", "setQuantifier", "relation", "relationExtension", "joinRelation", "joinType", "joinCriteria", "sample", "sampleMethod", "identifierList", "identifierSeq", "orderedIdentifierList", @@ -805,7 +805,7 @@ export class SparkSqlParser extends SQLParserBase { "defaultExpression", "variableDefaultExpression", "colTypeList", "columnType", "createOrReplaceTableColTypeList", "createOrReplaceTableColType", "colDefinitionOption", "generationExpression", "complexColTypeList", - "complexColType", "whenClause", "windowClause", "zorderClause", + "complexColType", "whenClause", "windowClause", "zOrderClause", "namedWindow", "windowSpec", "windowFrame", "frameBound", "qualifiedNameList", "functionName", "functionNameCreate", "qualifiedName", "errorCapturingIdentifier", "errorCapturingIdentifierExtra", "identifier", "strictIdentifier", @@ -4105,7 +4105,7 @@ export class SparkSqlParser extends SQLParserBase { } this.state = 1328; - this.zorderClause(); + this.zOrderClause(); } break; case 91: @@ -9047,7 +9047,7 @@ export class SparkSqlParser extends SQLParserBase { case 1: { this.state = 2330; - this.unpivotClause(); + this.unPivotClause(); } break; } @@ -10107,9 +10107,9 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public unpivotClause(): UnpivotClauseContext { - let localContext = new UnpivotClauseContext(this.context, this.state); - this.enterRule(localContext, 168, SparkSqlParser.RULE_unpivotClause); + public unPivotClause(): UnPivotClauseContext { + let localContext = new UnPivotClauseContext(this.context, this.state); + this.enterRule(localContext, 168, SparkSqlParser.RULE_unPivotClause); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -10122,14 +10122,14 @@ export class SparkSqlParser extends SQLParserBase { if (_la === 104 || _la === 141) { { this.state = 2490; - localContext._nullOperator = this.unpivotNullClause(); + localContext._nullOperator = this.unPivotNullClause(); } } this.state = 2493; this.match(SparkSqlParser.LEFT_PAREN); this.state = 2494; - localContext._operator = this.unpivotOperator(); + localContext._operator = this.unPivotOperator(); this.state = 2495; this.match(SparkSqlParser.RIGHT_PAREN); this.state = 2500; @@ -10168,9 +10168,9 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public unpivotNullClause(): UnpivotNullClauseContext { - let localContext = new UnpivotNullClauseContext(this.context, this.state); - this.enterRule(localContext, 170, SparkSqlParser.RULE_unpivotNullClause); + public unPivotNullClause(): UnPivotNullClauseContext { + let localContext = new UnPivotNullClauseContext(this.context, this.state); + this.enterRule(localContext, 170, SparkSqlParser.RULE_unPivotNullClause); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -10202,9 +10202,9 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public unpivotOperator(): UnpivotOperatorContext { - let localContext = new UnpivotOperatorContext(this.context, this.state); - this.enterRule(localContext, 172, SparkSqlParser.RULE_unpivotOperator); + public unPivotOperator(): UnPivotOperatorContext { + let localContext = new UnPivotOperatorContext(this.context, this.state); + this.enterRule(localContext, 172, SparkSqlParser.RULE_unPivotOperator); try { this.enterOuterAlt(localContext, 1); { @@ -10556,13 +10556,13 @@ export class SparkSqlParser extends SQLParserBase { case SparkSqlParser.BACKQUOTED_IDENTIFIER: { this.state = 2505; - this.unpivotSingleValueColumnClause(); + this.unPivotSingleValueColumnClause(); } break; case SparkSqlParser.LEFT_PAREN: { this.state = 2506; - this.unpivotMultiValueColumnClause(); + this.unPivotMultiValueColumnClause(); } break; default: @@ -10584,26 +10584,26 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public unpivotSingleValueColumnClause(): UnpivotSingleValueColumnClauseContext { - let localContext = new UnpivotSingleValueColumnClauseContext(this.context, this.state); - this.enterRule(localContext, 174, SparkSqlParser.RULE_unpivotSingleValueColumnClause); + public unPivotSingleValueColumnClause(): UnPivotSingleValueColumnClauseContext { + let localContext = new UnPivotSingleValueColumnClauseContext(this.context, this.state); + this.enterRule(localContext, 174, SparkSqlParser.RULE_unPivotSingleValueColumnClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 2509; - this.unpivotValueColumn(); + this.unPivotValueColumn(); this.state = 2510; this.match(SparkSqlParser.KW_FOR); this.state = 2511; - this.unpivotNameColumn(); + this.unPivotNameColumn(); this.state = 2512; this.match(SparkSqlParser.KW_IN); this.state = 2513; this.match(SparkSqlParser.LEFT_PAREN); this.state = 2514; - localContext._unpivotColumnAndAlias = this.unpivotColumnAndAlias(); - localContext._unpivotColumns.push(localContext._unpivotColumnAndAlias); + localContext._unPivotColumnAndAlias = this.unPivotColumnAndAlias(); + localContext._unPivotColumns.push(localContext._unPivotColumnAndAlias); this.state = 2519; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -10613,8 +10613,8 @@ export class SparkSqlParser extends SQLParserBase { this.state = 2515; this.match(SparkSqlParser.COMMA); this.state = 2516; - localContext._unpivotColumnAndAlias = this.unpivotColumnAndAlias(); - localContext._unpivotColumns.push(localContext._unpivotColumnAndAlias); + localContext._unPivotColumnAndAlias = this.unPivotColumnAndAlias(); + localContext._unPivotColumns.push(localContext._unPivotColumnAndAlias); } } this.state = 2521; @@ -10639,9 +10639,9 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public unpivotMultiValueColumnClause(): UnpivotMultiValueColumnClauseContext { - let localContext = new UnpivotMultiValueColumnClauseContext(this.context, this.state); - this.enterRule(localContext, 176, SparkSqlParser.RULE_unpivotMultiValueColumnClause); + public unPivotMultiValueColumnClause(): UnPivotMultiValueColumnClauseContext { + let localContext = new UnPivotMultiValueColumnClauseContext(this.context, this.state); + this.enterRule(localContext, 176, SparkSqlParser.RULE_unPivotMultiValueColumnClause); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -10649,8 +10649,8 @@ export class SparkSqlParser extends SQLParserBase { this.state = 2524; this.match(SparkSqlParser.LEFT_PAREN); this.state = 2525; - localContext._unpivotValueColumn = this.unpivotValueColumn(); - localContext._unpivotValueColumns.push(localContext._unpivotValueColumn); + localContext._unPivotValueColumn = this.unPivotValueColumn(); + localContext._unPivotValueColumns.push(localContext._unPivotValueColumn); this.state = 2530; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -10660,8 +10660,8 @@ export class SparkSqlParser extends SQLParserBase { this.state = 2526; this.match(SparkSqlParser.COMMA); this.state = 2527; - localContext._unpivotValueColumn = this.unpivotValueColumn(); - localContext._unpivotValueColumns.push(localContext._unpivotValueColumn); + localContext._unPivotValueColumn = this.unPivotValueColumn(); + localContext._unPivotValueColumns.push(localContext._unPivotValueColumn); } } this.state = 2532; @@ -10673,14 +10673,14 @@ export class SparkSqlParser extends SQLParserBase { this.state = 2534; this.match(SparkSqlParser.KW_FOR); this.state = 2535; - this.unpivotNameColumn(); + this.unPivotNameColumn(); this.state = 2536; this.match(SparkSqlParser.KW_IN); this.state = 2537; this.match(SparkSqlParser.LEFT_PAREN); this.state = 2538; - localContext._unpivotColumnSet = this.unpivotColumnSet(); - localContext._unpivotColumnSets.push(localContext._unpivotColumnSet); + localContext._unPivotColumnSet = this.unPivotColumnSet(); + localContext._unPivotColumnSets.push(localContext._unPivotColumnSet); this.state = 2543; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -10690,8 +10690,8 @@ export class SparkSqlParser extends SQLParserBase { this.state = 2539; this.match(SparkSqlParser.COMMA); this.state = 2540; - localContext._unpivotColumnSet = this.unpivotColumnSet(); - localContext._unpivotColumnSets.push(localContext._unpivotColumnSet); + localContext._unPivotColumnSet = this.unPivotColumnSet(); + localContext._unPivotColumnSets.push(localContext._unPivotColumnSet); } } this.state = 2545; @@ -10716,9 +10716,9 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public unpivotColumnSet(): UnpivotColumnSetContext { - let localContext = new UnpivotColumnSetContext(this.context, this.state); - this.enterRule(localContext, 178, SparkSqlParser.RULE_unpivotColumnSet); + public unPivotColumnSet(): UnPivotColumnSetContext { + let localContext = new UnPivotColumnSetContext(this.context, this.state); + this.enterRule(localContext, 178, SparkSqlParser.RULE_unPivotColumnSet); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -10726,8 +10726,8 @@ export class SparkSqlParser extends SQLParserBase { this.state = 2548; this.match(SparkSqlParser.LEFT_PAREN); this.state = 2549; - localContext._unpivotColumn = this.unpivotColumn(); - localContext._unpivotColumns.push(localContext._unpivotColumn); + localContext._unPivotColumn = this.unPivotColumn(); + localContext._unPivotColumns.push(localContext._unPivotColumn); this.state = 2554; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -10737,8 +10737,8 @@ export class SparkSqlParser extends SQLParserBase { this.state = 2550; this.match(SparkSqlParser.COMMA); this.state = 2551; - localContext._unpivotColumn = this.unpivotColumn(); - localContext._unpivotColumns.push(localContext._unpivotColumn); + localContext._unPivotColumn = this.unPivotColumn(); + localContext._unPivotColumns.push(localContext._unPivotColumn); } } this.state = 2556; @@ -10753,7 +10753,7 @@ export class SparkSqlParser extends SQLParserBase { if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967040) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4294967295) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 4294967295) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4160749567) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 4294967295) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4294967295) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967279) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4294967295) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967167) !== 0) || ((((_la - 288)) & ~0x1F) === 0 && ((1 << (_la - 288)) & 4294967263) !== 0) || ((((_la - 320)) & ~0x1F) === 0 && ((1 << (_la - 320)) & 4294967295) !== 0) || ((((_la - 378)) & ~0x1F) === 0 && ((1 << (_la - 378)) & 3073) !== 0)) { { this.state = 2558; - this.unpivotAlias(); + this.unPivotAlias(); } } @@ -10773,9 +10773,9 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public unpivotValueColumn(): UnpivotValueColumnContext { - let localContext = new UnpivotValueColumnContext(this.context, this.state); - this.enterRule(localContext, 180, SparkSqlParser.RULE_unpivotValueColumn); + public unPivotValueColumn(): UnPivotValueColumnContext { + let localContext = new UnPivotValueColumnContext(this.context, this.state); + this.enterRule(localContext, 180, SparkSqlParser.RULE_unPivotValueColumn); try { this.enterOuterAlt(localContext, 1); { @@ -10797,9 +10797,9 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public unpivotNameColumn(): UnpivotNameColumnContext { - let localContext = new UnpivotNameColumnContext(this.context, this.state); - this.enterRule(localContext, 182, SparkSqlParser.RULE_unpivotNameColumn); + public unPivotNameColumn(): UnPivotNameColumnContext { + let localContext = new UnPivotNameColumnContext(this.context, this.state); + this.enterRule(localContext, 182, SparkSqlParser.RULE_unPivotNameColumn); try { this.enterOuterAlt(localContext, 1); { @@ -10821,22 +10821,22 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public unpivotColumnAndAlias(): UnpivotColumnAndAliasContext { - let localContext = new UnpivotColumnAndAliasContext(this.context, this.state); - this.enterRule(localContext, 184, SparkSqlParser.RULE_unpivotColumnAndAlias); + public unPivotColumnAndAlias(): UnPivotColumnAndAliasContext { + let localContext = new UnPivotColumnAndAliasContext(this.context, this.state); + this.enterRule(localContext, 184, SparkSqlParser.RULE_unPivotColumnAndAlias); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 2565; - this.unpivotColumn(); + this.unPivotColumn(); this.state = 2567; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967040) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4294967295) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 4294967295) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4160749567) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 4294967295) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4294967295) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967279) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4294967295) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967167) !== 0) || ((((_la - 288)) & ~0x1F) === 0 && ((1 << (_la - 288)) & 4294967263) !== 0) || ((((_la - 320)) & ~0x1F) === 0 && ((1 << (_la - 320)) & 4294967295) !== 0) || ((((_la - 378)) & ~0x1F) === 0 && ((1 << (_la - 378)) & 3073) !== 0)) { { this.state = 2566; - this.unpivotAlias(); + this.unPivotAlias(); } } @@ -10856,9 +10856,9 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public unpivotColumn(): UnpivotColumnContext { - let localContext = new UnpivotColumnContext(this.context, this.state); - this.enterRule(localContext, 186, SparkSqlParser.RULE_unpivotColumn); + public unPivotColumn(): UnPivotColumnContext { + let localContext = new UnPivotColumnContext(this.context, this.state); + this.enterRule(localContext, 186, SparkSqlParser.RULE_unPivotColumn); try { this.enterOuterAlt(localContext, 1); { @@ -10880,9 +10880,9 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public unpivotAlias(): UnpivotAliasContext { - let localContext = new UnpivotAliasContext(this.context, this.state); - this.enterRule(localContext, 188, SparkSqlParser.RULE_unpivotAlias); + public unPivotAlias(): UnPivotAliasContext { + let localContext = new UnPivotAliasContext(this.context, this.state); + this.enterRule(localContext, 188, SparkSqlParser.RULE_unPivotAlias); try { this.enterOuterAlt(localContext, 1); { @@ -11209,7 +11209,7 @@ export class SparkSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 3); { this.state = 2632; - this.unpivotClause(); + this.unPivotClause(); } break; default: @@ -17383,9 +17383,9 @@ export class SparkSqlParser extends SQLParserBase { } return localContext; } - public zorderClause(): ZorderClauseContext { - let localContext = new ZorderClauseContext(this.context, this.state); - this.enterRule(localContext, 354, SparkSqlParser.RULE_zorderClause); + public zOrderClause(): ZOrderClauseContext { + let localContext = new ZOrderClauseContext(this.context, this.state); + this.enterRule(localContext, 354, SparkSqlParser.RULE_zOrderClause); try { this.enterOuterAlt(localContext, 1); { @@ -23071,8 +23071,8 @@ export class OptimizeTableContext extends StatementContext { public tableName(): TableNameContext { return this.getRuleContext(0, TableNameContext)!; } - public zorderClause(): ZorderClauseContext { - return this.getRuleContext(0, ZorderClauseContext)!; + public zOrderClause(): ZOrderClauseContext { + return this.getRuleContext(0, ZOrderClauseContext)!; } public whereClause(): WhereClauseContext | null { return this.getRuleContext(0, WhereClauseContext); @@ -28309,8 +28309,8 @@ export class FromClauseContext extends antlr.ParserRuleContext { public pivotClause(): PivotClauseContext | null { return this.getRuleContext(0, PivotClauseContext); } - public unpivotClause(): UnpivotClauseContext | null { - return this.getRuleContext(0, UnpivotClauseContext); + public unPivotClause(): UnPivotClauseContext | null { + return this.getRuleContext(0, UnPivotClauseContext); } public override get ruleIndex(): number { return SparkSqlParser.RULE_fromClause; @@ -28892,9 +28892,9 @@ export class PivotValueContext extends antlr.ParserRuleContext { } -export class UnpivotClauseContext extends antlr.ParserRuleContext { - public _nullOperator?: UnpivotNullClauseContext; - public _operator?: UnpivotOperatorContext; +export class UnPivotClauseContext extends antlr.ParserRuleContext { + public _nullOperator?: UnPivotNullClauseContext; + public _operator?: UnPivotOperatorContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -28907,34 +28907,34 @@ export class UnpivotClauseContext extends antlr.ParserRuleContext { public RIGHT_PAREN(): antlr.TerminalNode { return this.getToken(SparkSqlParser.RIGHT_PAREN, 0)!; } - public unpivotOperator(): UnpivotOperatorContext { - return this.getRuleContext(0, UnpivotOperatorContext)!; + public unPivotOperator(): UnPivotOperatorContext { + return this.getRuleContext(0, UnPivotOperatorContext)!; } public identifier(): IdentifierContext | null { return this.getRuleContext(0, IdentifierContext); } - public unpivotNullClause(): UnpivotNullClauseContext | null { - return this.getRuleContext(0, UnpivotNullClauseContext); + public unPivotNullClause(): UnPivotNullClauseContext | null { + return this.getRuleContext(0, UnPivotNullClauseContext); } public KW_AS(): antlr.TerminalNode | null { return this.getToken(SparkSqlParser.KW_AS, 0); } public override get ruleIndex(): number { - return SparkSqlParser.RULE_unpivotClause; + return SparkSqlParser.RULE_unPivotClause; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterUnpivotClause) { - listener.enterUnpivotClause(this); + if(listener.enterUnPivotClause) { + listener.enterUnPivotClause(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitUnpivotClause) { - listener.exitUnpivotClause(this); + if(listener.exitUnPivotClause) { + listener.exitUnPivotClause(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitUnpivotClause) { - return visitor.visitUnpivotClause(this); + if (visitor.visitUnPivotClause) { + return visitor.visitUnPivotClause(this); } else { return visitor.visitChildren(this); } @@ -28942,7 +28942,7 @@ export class UnpivotClauseContext extends antlr.ParserRuleContext { } -export class UnpivotNullClauseContext extends antlr.ParserRuleContext { +export class UnPivotNullClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -28956,21 +28956,21 @@ export class UnpivotNullClauseContext extends antlr.ParserRuleContext { return this.getToken(SparkSqlParser.KW_EXCLUDE, 0); } public override get ruleIndex(): number { - return SparkSqlParser.RULE_unpivotNullClause; + return SparkSqlParser.RULE_unPivotNullClause; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterUnpivotNullClause) { - listener.enterUnpivotNullClause(this); + if(listener.enterUnPivotNullClause) { + listener.enterUnPivotNullClause(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitUnpivotNullClause) { - listener.exitUnpivotNullClause(this); + if(listener.exitUnPivotNullClause) { + listener.exitUnPivotNullClause(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitUnpivotNullClause) { - return visitor.visitUnpivotNullClause(this); + if (visitor.visitUnPivotNullClause) { + return visitor.visitUnPivotNullClause(this); } else { return visitor.visitChildren(this); } @@ -28978,32 +28978,32 @@ export class UnpivotNullClauseContext extends antlr.ParserRuleContext { } -export class UnpivotOperatorContext extends antlr.ParserRuleContext { +export class UnPivotOperatorContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public unpivotSingleValueColumnClause(): UnpivotSingleValueColumnClauseContext | null { - return this.getRuleContext(0, UnpivotSingleValueColumnClauseContext); + public unPivotSingleValueColumnClause(): UnPivotSingleValueColumnClauseContext | null { + return this.getRuleContext(0, UnPivotSingleValueColumnClauseContext); } - public unpivotMultiValueColumnClause(): UnpivotMultiValueColumnClauseContext | null { - return this.getRuleContext(0, UnpivotMultiValueColumnClauseContext); + public unPivotMultiValueColumnClause(): UnPivotMultiValueColumnClauseContext | null { + return this.getRuleContext(0, UnPivotMultiValueColumnClauseContext); } public override get ruleIndex(): number { - return SparkSqlParser.RULE_unpivotOperator; + return SparkSqlParser.RULE_unPivotOperator; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterUnpivotOperator) { - listener.enterUnpivotOperator(this); + if(listener.enterUnPivotOperator) { + listener.enterUnPivotOperator(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitUnpivotOperator) { - listener.exitUnpivotOperator(this); + if(listener.exitUnPivotOperator) { + listener.exitUnPivotOperator(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitUnpivotOperator) { - return visitor.visitUnpivotOperator(this); + if (visitor.visitUnPivotOperator) { + return visitor.visitUnPivotOperator(this); } else { return visitor.visitChildren(this); } @@ -29011,20 +29011,20 @@ export class UnpivotOperatorContext extends antlr.ParserRuleContext { } -export class UnpivotSingleValueColumnClauseContext extends antlr.ParserRuleContext { - public _unpivotColumnAndAlias?: UnpivotColumnAndAliasContext; - public _unpivotColumns: UnpivotColumnAndAliasContext[] = []; +export class UnPivotSingleValueColumnClauseContext extends antlr.ParserRuleContext { + public _unPivotColumnAndAlias?: UnPivotColumnAndAliasContext; + public _unPivotColumns: UnPivotColumnAndAliasContext[] = []; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public unpivotValueColumn(): UnpivotValueColumnContext { - return this.getRuleContext(0, UnpivotValueColumnContext)!; + public unPivotValueColumn(): UnPivotValueColumnContext { + return this.getRuleContext(0, UnPivotValueColumnContext)!; } public KW_FOR(): antlr.TerminalNode { return this.getToken(SparkSqlParser.KW_FOR, 0)!; } - public unpivotNameColumn(): UnpivotNameColumnContext { - return this.getRuleContext(0, UnpivotNameColumnContext)!; + public unPivotNameColumn(): UnPivotNameColumnContext { + return this.getRuleContext(0, UnPivotNameColumnContext)!; } public KW_IN(): antlr.TerminalNode { return this.getToken(SparkSqlParser.KW_IN, 0)!; @@ -29035,14 +29035,14 @@ export class UnpivotSingleValueColumnClauseContext extends antlr.ParserRuleConte public RIGHT_PAREN(): antlr.TerminalNode { return this.getToken(SparkSqlParser.RIGHT_PAREN, 0)!; } - public unpivotColumnAndAlias(): UnpivotColumnAndAliasContext[]; - public unpivotColumnAndAlias(i: number): UnpivotColumnAndAliasContext | null; - public unpivotColumnAndAlias(i?: number): UnpivotColumnAndAliasContext[] | UnpivotColumnAndAliasContext | null { + public unPivotColumnAndAlias(): UnPivotColumnAndAliasContext[]; + public unPivotColumnAndAlias(i: number): UnPivotColumnAndAliasContext | null; + public unPivotColumnAndAlias(i?: number): UnPivotColumnAndAliasContext[] | UnPivotColumnAndAliasContext | null { if (i === undefined) { - return this.getRuleContexts(UnpivotColumnAndAliasContext); + return this.getRuleContexts(UnPivotColumnAndAliasContext); } - return this.getRuleContext(i, UnpivotColumnAndAliasContext); + return this.getRuleContext(i, UnPivotColumnAndAliasContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -29054,21 +29054,21 @@ export class UnpivotSingleValueColumnClauseContext extends antlr.ParserRuleConte } } public override get ruleIndex(): number { - return SparkSqlParser.RULE_unpivotSingleValueColumnClause; + return SparkSqlParser.RULE_unPivotSingleValueColumnClause; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterUnpivotSingleValueColumnClause) { - listener.enterUnpivotSingleValueColumnClause(this); + if(listener.enterUnPivotSingleValueColumnClause) { + listener.enterUnPivotSingleValueColumnClause(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitUnpivotSingleValueColumnClause) { - listener.exitUnpivotSingleValueColumnClause(this); + if(listener.exitUnPivotSingleValueColumnClause) { + listener.exitUnPivotSingleValueColumnClause(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitUnpivotSingleValueColumnClause) { - return visitor.visitUnpivotSingleValueColumnClause(this); + if (visitor.visitUnPivotSingleValueColumnClause) { + return visitor.visitUnPivotSingleValueColumnClause(this); } else { return visitor.visitChildren(this); } @@ -29076,11 +29076,11 @@ export class UnpivotSingleValueColumnClauseContext extends antlr.ParserRuleConte } -export class UnpivotMultiValueColumnClauseContext extends antlr.ParserRuleContext { - public _unpivotValueColumn?: UnpivotValueColumnContext; - public _unpivotValueColumns: UnpivotValueColumnContext[] = []; - public _unpivotColumnSet?: UnpivotColumnSetContext; - public _unpivotColumnSets: UnpivotColumnSetContext[] = []; +export class UnPivotMultiValueColumnClauseContext extends antlr.ParserRuleContext { + public _unPivotValueColumn?: UnPivotValueColumnContext; + public _unPivotValueColumns: UnPivotValueColumnContext[] = []; + public _unPivotColumnSet?: UnPivotColumnSetContext; + public _unPivotColumnSets: UnPivotColumnSetContext[] = []; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -29105,29 +29105,29 @@ export class UnpivotMultiValueColumnClauseContext extends antlr.ParserRuleContex public KW_FOR(): antlr.TerminalNode { return this.getToken(SparkSqlParser.KW_FOR, 0)!; } - public unpivotNameColumn(): UnpivotNameColumnContext { - return this.getRuleContext(0, UnpivotNameColumnContext)!; + public unPivotNameColumn(): UnPivotNameColumnContext { + return this.getRuleContext(0, UnPivotNameColumnContext)!; } public KW_IN(): antlr.TerminalNode { return this.getToken(SparkSqlParser.KW_IN, 0)!; } - public unpivotValueColumn(): UnpivotValueColumnContext[]; - public unpivotValueColumn(i: number): UnpivotValueColumnContext | null; - public unpivotValueColumn(i?: number): UnpivotValueColumnContext[] | UnpivotValueColumnContext | null { + public unPivotValueColumn(): UnPivotValueColumnContext[]; + public unPivotValueColumn(i: number): UnPivotValueColumnContext | null; + public unPivotValueColumn(i?: number): UnPivotValueColumnContext[] | UnPivotValueColumnContext | null { if (i === undefined) { - return this.getRuleContexts(UnpivotValueColumnContext); + return this.getRuleContexts(UnPivotValueColumnContext); } - return this.getRuleContext(i, UnpivotValueColumnContext); + return this.getRuleContext(i, UnPivotValueColumnContext); } - public unpivotColumnSet(): UnpivotColumnSetContext[]; - public unpivotColumnSet(i: number): UnpivotColumnSetContext | null; - public unpivotColumnSet(i?: number): UnpivotColumnSetContext[] | UnpivotColumnSetContext | null { + public unPivotColumnSet(): UnPivotColumnSetContext[]; + public unPivotColumnSet(i: number): UnPivotColumnSetContext | null; + public unPivotColumnSet(i?: number): UnPivotColumnSetContext[] | UnPivotColumnSetContext | null { if (i === undefined) { - return this.getRuleContexts(UnpivotColumnSetContext); + return this.getRuleContexts(UnPivotColumnSetContext); } - return this.getRuleContext(i, UnpivotColumnSetContext); + return this.getRuleContext(i, UnPivotColumnSetContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -29139,21 +29139,21 @@ export class UnpivotMultiValueColumnClauseContext extends antlr.ParserRuleContex } } public override get ruleIndex(): number { - return SparkSqlParser.RULE_unpivotMultiValueColumnClause; + return SparkSqlParser.RULE_unPivotMultiValueColumnClause; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterUnpivotMultiValueColumnClause) { - listener.enterUnpivotMultiValueColumnClause(this); + if(listener.enterUnPivotMultiValueColumnClause) { + listener.enterUnPivotMultiValueColumnClause(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitUnpivotMultiValueColumnClause) { - listener.exitUnpivotMultiValueColumnClause(this); + if(listener.exitUnPivotMultiValueColumnClause) { + listener.exitUnPivotMultiValueColumnClause(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitUnpivotMultiValueColumnClause) { - return visitor.visitUnpivotMultiValueColumnClause(this); + if (visitor.visitUnPivotMultiValueColumnClause) { + return visitor.visitUnPivotMultiValueColumnClause(this); } else { return visitor.visitChildren(this); } @@ -29161,9 +29161,9 @@ export class UnpivotMultiValueColumnClauseContext extends antlr.ParserRuleContex } -export class UnpivotColumnSetContext extends antlr.ParserRuleContext { - public _unpivotColumn?: UnpivotColumnContext; - public _unpivotColumns: UnpivotColumnContext[] = []; +export class UnPivotColumnSetContext extends antlr.ParserRuleContext { + public _unPivotColumn?: UnPivotColumnContext; + public _unPivotColumns: UnPivotColumnContext[] = []; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -29173,14 +29173,14 @@ export class UnpivotColumnSetContext extends antlr.ParserRuleContext { public RIGHT_PAREN(): antlr.TerminalNode { return this.getToken(SparkSqlParser.RIGHT_PAREN, 0)!; } - public unpivotColumn(): UnpivotColumnContext[]; - public unpivotColumn(i: number): UnpivotColumnContext | null; - public unpivotColumn(i?: number): UnpivotColumnContext[] | UnpivotColumnContext | null { + public unPivotColumn(): UnPivotColumnContext[]; + public unPivotColumn(i: number): UnPivotColumnContext | null; + public unPivotColumn(i?: number): UnPivotColumnContext[] | UnPivotColumnContext | null { if (i === undefined) { - return this.getRuleContexts(UnpivotColumnContext); + return this.getRuleContexts(UnPivotColumnContext); } - return this.getRuleContext(i, UnpivotColumnContext); + return this.getRuleContext(i, UnPivotColumnContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -29191,25 +29191,25 @@ export class UnpivotColumnSetContext extends antlr.ParserRuleContext { return this.getToken(SparkSqlParser.COMMA, i); } } - public unpivotAlias(): UnpivotAliasContext | null { - return this.getRuleContext(0, UnpivotAliasContext); + public unPivotAlias(): UnPivotAliasContext | null { + return this.getRuleContext(0, UnPivotAliasContext); } public override get ruleIndex(): number { - return SparkSqlParser.RULE_unpivotColumnSet; + return SparkSqlParser.RULE_unPivotColumnSet; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterUnpivotColumnSet) { - listener.enterUnpivotColumnSet(this); + if(listener.enterUnPivotColumnSet) { + listener.enterUnPivotColumnSet(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitUnpivotColumnSet) { - listener.exitUnpivotColumnSet(this); + if(listener.exitUnPivotColumnSet) { + listener.exitUnPivotColumnSet(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitUnpivotColumnSet) { - return visitor.visitUnpivotColumnSet(this); + if (visitor.visitUnPivotColumnSet) { + return visitor.visitUnPivotColumnSet(this); } else { return visitor.visitChildren(this); } @@ -29217,7 +29217,7 @@ export class UnpivotColumnSetContext extends antlr.ParserRuleContext { } -export class UnpivotValueColumnContext extends antlr.ParserRuleContext { +export class UnPivotValueColumnContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -29225,21 +29225,21 @@ export class UnpivotValueColumnContext extends antlr.ParserRuleContext { return this.getRuleContext(0, IdentifierContext)!; } public override get ruleIndex(): number { - return SparkSqlParser.RULE_unpivotValueColumn; + return SparkSqlParser.RULE_unPivotValueColumn; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterUnpivotValueColumn) { - listener.enterUnpivotValueColumn(this); + if(listener.enterUnPivotValueColumn) { + listener.enterUnPivotValueColumn(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitUnpivotValueColumn) { - listener.exitUnpivotValueColumn(this); + if(listener.exitUnPivotValueColumn) { + listener.exitUnPivotValueColumn(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitUnpivotValueColumn) { - return visitor.visitUnpivotValueColumn(this); + if (visitor.visitUnPivotValueColumn) { + return visitor.visitUnPivotValueColumn(this); } else { return visitor.visitChildren(this); } @@ -29247,7 +29247,7 @@ export class UnpivotValueColumnContext extends antlr.ParserRuleContext { } -export class UnpivotNameColumnContext extends antlr.ParserRuleContext { +export class UnPivotNameColumnContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -29255,21 +29255,21 @@ export class UnpivotNameColumnContext extends antlr.ParserRuleContext { return this.getRuleContext(0, IdentifierContext)!; } public override get ruleIndex(): number { - return SparkSqlParser.RULE_unpivotNameColumn; + return SparkSqlParser.RULE_unPivotNameColumn; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterUnpivotNameColumn) { - listener.enterUnpivotNameColumn(this); + if(listener.enterUnPivotNameColumn) { + listener.enterUnPivotNameColumn(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitUnpivotNameColumn) { - listener.exitUnpivotNameColumn(this); + if(listener.exitUnPivotNameColumn) { + listener.exitUnPivotNameColumn(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitUnpivotNameColumn) { - return visitor.visitUnpivotNameColumn(this); + if (visitor.visitUnPivotNameColumn) { + return visitor.visitUnPivotNameColumn(this); } else { return visitor.visitChildren(this); } @@ -29277,32 +29277,32 @@ export class UnpivotNameColumnContext extends antlr.ParserRuleContext { } -export class UnpivotColumnAndAliasContext extends antlr.ParserRuleContext { +export class UnPivotColumnAndAliasContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public unpivotColumn(): UnpivotColumnContext { - return this.getRuleContext(0, UnpivotColumnContext)!; + public unPivotColumn(): UnPivotColumnContext { + return this.getRuleContext(0, UnPivotColumnContext)!; } - public unpivotAlias(): UnpivotAliasContext | null { - return this.getRuleContext(0, UnpivotAliasContext); + public unPivotAlias(): UnPivotAliasContext | null { + return this.getRuleContext(0, UnPivotAliasContext); } public override get ruleIndex(): number { - return SparkSqlParser.RULE_unpivotColumnAndAlias; + return SparkSqlParser.RULE_unPivotColumnAndAlias; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterUnpivotColumnAndAlias) { - listener.enterUnpivotColumnAndAlias(this); + if(listener.enterUnPivotColumnAndAlias) { + listener.enterUnPivotColumnAndAlias(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitUnpivotColumnAndAlias) { - listener.exitUnpivotColumnAndAlias(this); + if(listener.exitUnPivotColumnAndAlias) { + listener.exitUnPivotColumnAndAlias(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitUnpivotColumnAndAlias) { - return visitor.visitUnpivotColumnAndAlias(this); + if (visitor.visitUnPivotColumnAndAlias) { + return visitor.visitUnPivotColumnAndAlias(this); } else { return visitor.visitChildren(this); } @@ -29310,7 +29310,7 @@ export class UnpivotColumnAndAliasContext extends antlr.ParserRuleContext { } -export class UnpivotColumnContext extends antlr.ParserRuleContext { +export class UnPivotColumnContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -29318,21 +29318,21 @@ export class UnpivotColumnContext extends antlr.ParserRuleContext { return this.getRuleContext(0, MultipartIdentifierContext)!; } public override get ruleIndex(): number { - return SparkSqlParser.RULE_unpivotColumn; + return SparkSqlParser.RULE_unPivotColumn; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterUnpivotColumn) { - listener.enterUnpivotColumn(this); + if(listener.enterUnPivotColumn) { + listener.enterUnPivotColumn(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitUnpivotColumn) { - listener.exitUnpivotColumn(this); + if(listener.exitUnPivotColumn) { + listener.exitUnPivotColumn(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitUnpivotColumn) { - return visitor.visitUnpivotColumn(this); + if (visitor.visitUnPivotColumn) { + return visitor.visitUnPivotColumn(this); } else { return visitor.visitChildren(this); } @@ -29340,7 +29340,7 @@ export class UnpivotColumnContext extends antlr.ParserRuleContext { } -export class UnpivotAliasContext extends antlr.ParserRuleContext { +export class UnPivotAliasContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -29351,21 +29351,21 @@ export class UnpivotAliasContext extends antlr.ParserRuleContext { return this.getToken(SparkSqlParser.KW_AS, 0); } public override get ruleIndex(): number { - return SparkSqlParser.RULE_unpivotAlias; + return SparkSqlParser.RULE_unPivotAlias; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterUnpivotAlias) { - listener.enterUnpivotAlias(this); + if(listener.enterUnPivotAlias) { + listener.enterUnPivotAlias(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitUnpivotAlias) { - listener.exitUnpivotAlias(this); + if(listener.exitUnPivotAlias) { + listener.exitUnPivotAlias(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitUnpivotAlias) { - return visitor.visitUnpivotAlias(this); + if (visitor.visitUnPivotAlias) { + return visitor.visitUnPivotAlias(this); } else { return visitor.visitChildren(this); } @@ -29610,8 +29610,8 @@ export class RelationExtensionContext extends antlr.ParserRuleContext { public pivotClause(): PivotClauseContext | null { return this.getRuleContext(0, PivotClauseContext); } - public unpivotClause(): UnpivotClauseContext | null { - return this.getRuleContext(0, UnpivotClauseContext); + public unPivotClause(): UnPivotClauseContext | null { + return this.getRuleContext(0, UnPivotClauseContext); } public override get ruleIndex(): number { return SparkSqlParser.RULE_relationExtension; @@ -33763,7 +33763,7 @@ export class WindowClauseContext extends antlr.ParserRuleContext { } -export class ZorderClauseContext extends antlr.ParserRuleContext { +export class ZOrderClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -33777,21 +33777,21 @@ export class ZorderClauseContext extends antlr.ParserRuleContext { return this.getRuleContext(0, ColumnNameSeqContext)!; } public override get ruleIndex(): number { - return SparkSqlParser.RULE_zorderClause; + return SparkSqlParser.RULE_zOrderClause; } public override enterRule(listener: SparkSqlParserListener): void { - if(listener.enterZorderClause) { - listener.enterZorderClause(this); + if(listener.enterZOrderClause) { + listener.enterZOrderClause(this); } } public override exitRule(listener: SparkSqlParserListener): void { - if(listener.exitZorderClause) { - listener.exitZorderClause(this); + if(listener.exitZOrderClause) { + listener.exitZOrderClause(this); } } public override accept(visitor: SparkSqlParserVisitor): Result | null { - if (visitor.visitZorderClause) { - return visitor.visitZorderClause(this); + if (visitor.visitZOrderClause) { + return visitor.visitZOrderClause(this); } else { return visitor.visitChildren(this); } diff --git a/src/lib/spark/SparkSqlParserListener.ts b/src/lib/spark/SparkSqlParserListener.ts index b701ea6ae..a6ee9a3bf 100644 --- a/src/lib/spark/SparkSqlParserListener.ts +++ b/src/lib/spark/SparkSqlParserListener.ts @@ -186,17 +186,17 @@ import { GroupingSetContext } from "./SparkSqlParser.js"; import { PivotClauseContext } from "./SparkSqlParser.js"; import { PivotColumnContext } from "./SparkSqlParser.js"; import { PivotValueContext } from "./SparkSqlParser.js"; -import { UnpivotClauseContext } from "./SparkSqlParser.js"; -import { UnpivotNullClauseContext } from "./SparkSqlParser.js"; -import { UnpivotOperatorContext } from "./SparkSqlParser.js"; -import { UnpivotSingleValueColumnClauseContext } from "./SparkSqlParser.js"; -import { UnpivotMultiValueColumnClauseContext } from "./SparkSqlParser.js"; -import { UnpivotColumnSetContext } from "./SparkSqlParser.js"; -import { UnpivotValueColumnContext } from "./SparkSqlParser.js"; -import { UnpivotNameColumnContext } from "./SparkSqlParser.js"; -import { UnpivotColumnAndAliasContext } from "./SparkSqlParser.js"; -import { UnpivotColumnContext } from "./SparkSqlParser.js"; -import { UnpivotAliasContext } from "./SparkSqlParser.js"; +import { UnPivotClauseContext } from "./SparkSqlParser.js"; +import { UnPivotNullClauseContext } from "./SparkSqlParser.js"; +import { UnPivotOperatorContext } from "./SparkSqlParser.js"; +import { UnPivotSingleValueColumnClauseContext } from "./SparkSqlParser.js"; +import { UnPivotMultiValueColumnClauseContext } from "./SparkSqlParser.js"; +import { UnPivotColumnSetContext } from "./SparkSqlParser.js"; +import { UnPivotValueColumnContext } from "./SparkSqlParser.js"; +import { UnPivotNameColumnContext } from "./SparkSqlParser.js"; +import { UnPivotColumnAndAliasContext } from "./SparkSqlParser.js"; +import { UnPivotColumnContext } from "./SparkSqlParser.js"; +import { UnPivotAliasContext } from "./SparkSqlParser.js"; import { IfNotExistsContext } from "./SparkSqlParser.js"; import { IfExistsContext } from "./SparkSqlParser.js"; import { LateralViewContext } from "./SparkSqlParser.js"; @@ -279,7 +279,7 @@ import { ComplexColTypeListContext } from "./SparkSqlParser.js"; import { ComplexColTypeContext } from "./SparkSqlParser.js"; import { WhenClauseContext } from "./SparkSqlParser.js"; import { WindowClauseContext } from "./SparkSqlParser.js"; -import { ZorderClauseContext } from "./SparkSqlParser.js"; +import { ZOrderClauseContext } from "./SparkSqlParser.js"; import { NamedWindowContext } from "./SparkSqlParser.js"; import { WindowSpecContext } from "./SparkSqlParser.js"; import { WindowFrameContext } from "./SparkSqlParser.js"; @@ -2284,115 +2284,115 @@ export class SparkSqlParserListener implements ParseTreeListener { */ exitPivotValue?: (ctx: PivotValueContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.unpivotClause`. + * Enter a parse tree produced by `SparkSqlParser.unPivotClause`. * @param ctx the parse tree */ - enterUnpivotClause?: (ctx: UnpivotClauseContext) => void; + enterUnPivotClause?: (ctx: UnPivotClauseContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.unpivotClause`. + * Exit a parse tree produced by `SparkSqlParser.unPivotClause`. * @param ctx the parse tree */ - exitUnpivotClause?: (ctx: UnpivotClauseContext) => void; + exitUnPivotClause?: (ctx: UnPivotClauseContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.unpivotNullClause`. + * Enter a parse tree produced by `SparkSqlParser.unPivotNullClause`. * @param ctx the parse tree */ - enterUnpivotNullClause?: (ctx: UnpivotNullClauseContext) => void; + enterUnPivotNullClause?: (ctx: UnPivotNullClauseContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.unpivotNullClause`. + * Exit a parse tree produced by `SparkSqlParser.unPivotNullClause`. * @param ctx the parse tree */ - exitUnpivotNullClause?: (ctx: UnpivotNullClauseContext) => void; + exitUnPivotNullClause?: (ctx: UnPivotNullClauseContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.unpivotOperator`. + * Enter a parse tree produced by `SparkSqlParser.unPivotOperator`. * @param ctx the parse tree */ - enterUnpivotOperator?: (ctx: UnpivotOperatorContext) => void; + enterUnPivotOperator?: (ctx: UnPivotOperatorContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.unpivotOperator`. + * Exit a parse tree produced by `SparkSqlParser.unPivotOperator`. * @param ctx the parse tree */ - exitUnpivotOperator?: (ctx: UnpivotOperatorContext) => void; + exitUnPivotOperator?: (ctx: UnPivotOperatorContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.unpivotSingleValueColumnClause`. + * Enter a parse tree produced by `SparkSqlParser.unPivotSingleValueColumnClause`. * @param ctx the parse tree */ - enterUnpivotSingleValueColumnClause?: (ctx: UnpivotSingleValueColumnClauseContext) => void; + enterUnPivotSingleValueColumnClause?: (ctx: UnPivotSingleValueColumnClauseContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.unpivotSingleValueColumnClause`. + * Exit a parse tree produced by `SparkSqlParser.unPivotSingleValueColumnClause`. * @param ctx the parse tree */ - exitUnpivotSingleValueColumnClause?: (ctx: UnpivotSingleValueColumnClauseContext) => void; + exitUnPivotSingleValueColumnClause?: (ctx: UnPivotSingleValueColumnClauseContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.unpivotMultiValueColumnClause`. + * Enter a parse tree produced by `SparkSqlParser.unPivotMultiValueColumnClause`. * @param ctx the parse tree */ - enterUnpivotMultiValueColumnClause?: (ctx: UnpivotMultiValueColumnClauseContext) => void; + enterUnPivotMultiValueColumnClause?: (ctx: UnPivotMultiValueColumnClauseContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.unpivotMultiValueColumnClause`. + * Exit a parse tree produced by `SparkSqlParser.unPivotMultiValueColumnClause`. * @param ctx the parse tree */ - exitUnpivotMultiValueColumnClause?: (ctx: UnpivotMultiValueColumnClauseContext) => void; + exitUnPivotMultiValueColumnClause?: (ctx: UnPivotMultiValueColumnClauseContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.unpivotColumnSet`. + * Enter a parse tree produced by `SparkSqlParser.unPivotColumnSet`. * @param ctx the parse tree */ - enterUnpivotColumnSet?: (ctx: UnpivotColumnSetContext) => void; + enterUnPivotColumnSet?: (ctx: UnPivotColumnSetContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.unpivotColumnSet`. + * Exit a parse tree produced by `SparkSqlParser.unPivotColumnSet`. * @param ctx the parse tree */ - exitUnpivotColumnSet?: (ctx: UnpivotColumnSetContext) => void; + exitUnPivotColumnSet?: (ctx: UnPivotColumnSetContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.unpivotValueColumn`. + * Enter a parse tree produced by `SparkSqlParser.unPivotValueColumn`. * @param ctx the parse tree */ - enterUnpivotValueColumn?: (ctx: UnpivotValueColumnContext) => void; + enterUnPivotValueColumn?: (ctx: UnPivotValueColumnContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.unpivotValueColumn`. + * Exit a parse tree produced by `SparkSqlParser.unPivotValueColumn`. * @param ctx the parse tree */ - exitUnpivotValueColumn?: (ctx: UnpivotValueColumnContext) => void; + exitUnPivotValueColumn?: (ctx: UnPivotValueColumnContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.unpivotNameColumn`. + * Enter a parse tree produced by `SparkSqlParser.unPivotNameColumn`. * @param ctx the parse tree */ - enterUnpivotNameColumn?: (ctx: UnpivotNameColumnContext) => void; + enterUnPivotNameColumn?: (ctx: UnPivotNameColumnContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.unpivotNameColumn`. + * Exit a parse tree produced by `SparkSqlParser.unPivotNameColumn`. * @param ctx the parse tree */ - exitUnpivotNameColumn?: (ctx: UnpivotNameColumnContext) => void; + exitUnPivotNameColumn?: (ctx: UnPivotNameColumnContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.unpivotColumnAndAlias`. + * Enter a parse tree produced by `SparkSqlParser.unPivotColumnAndAlias`. * @param ctx the parse tree */ - enterUnpivotColumnAndAlias?: (ctx: UnpivotColumnAndAliasContext) => void; + enterUnPivotColumnAndAlias?: (ctx: UnPivotColumnAndAliasContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.unpivotColumnAndAlias`. + * Exit a parse tree produced by `SparkSqlParser.unPivotColumnAndAlias`. * @param ctx the parse tree */ - exitUnpivotColumnAndAlias?: (ctx: UnpivotColumnAndAliasContext) => void; + exitUnPivotColumnAndAlias?: (ctx: UnPivotColumnAndAliasContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.unpivotColumn`. + * Enter a parse tree produced by `SparkSqlParser.unPivotColumn`. * @param ctx the parse tree */ - enterUnpivotColumn?: (ctx: UnpivotColumnContext) => void; + enterUnPivotColumn?: (ctx: UnPivotColumnContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.unpivotColumn`. + * Exit a parse tree produced by `SparkSqlParser.unPivotColumn`. * @param ctx the parse tree */ - exitUnpivotColumn?: (ctx: UnpivotColumnContext) => void; + exitUnPivotColumn?: (ctx: UnPivotColumnContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.unpivotAlias`. + * Enter a parse tree produced by `SparkSqlParser.unPivotAlias`. * @param ctx the parse tree */ - enterUnpivotAlias?: (ctx: UnpivotAliasContext) => void; + enterUnPivotAlias?: (ctx: UnPivotAliasContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.unpivotAlias`. + * Exit a parse tree produced by `SparkSqlParser.unPivotAlias`. * @param ctx the parse tree */ - exitUnpivotAlias?: (ctx: UnpivotAliasContext) => void; + exitUnPivotAlias?: (ctx: UnPivotAliasContext) => void; /** * Enter a parse tree produced by `SparkSqlParser.ifNotExists`. * @param ctx the parse tree @@ -3214,15 +3214,15 @@ export class SparkSqlParserListener implements ParseTreeListener { */ exitWindowClause?: (ctx: WindowClauseContext) => void; /** - * Enter a parse tree produced by `SparkSqlParser.zorderClause`. + * Enter a parse tree produced by `SparkSqlParser.zOrderClause`. * @param ctx the parse tree */ - enterZorderClause?: (ctx: ZorderClauseContext) => void; + enterZOrderClause?: (ctx: ZOrderClauseContext) => void; /** - * Exit a parse tree produced by `SparkSqlParser.zorderClause`. + * Exit a parse tree produced by `SparkSqlParser.zOrderClause`. * @param ctx the parse tree */ - exitZorderClause?: (ctx: ZorderClauseContext) => void; + exitZOrderClause?: (ctx: ZOrderClauseContext) => void; /** * Enter a parse tree produced by `SparkSqlParser.namedWindow`. * @param ctx the parse tree diff --git a/src/lib/spark/SparkSqlParserVisitor.ts b/src/lib/spark/SparkSqlParserVisitor.ts index f25709949..545e5c146 100644 --- a/src/lib/spark/SparkSqlParserVisitor.ts +++ b/src/lib/spark/SparkSqlParserVisitor.ts @@ -186,17 +186,17 @@ import { GroupingSetContext } from "./SparkSqlParser.js"; import { PivotClauseContext } from "./SparkSqlParser.js"; import { PivotColumnContext } from "./SparkSqlParser.js"; import { PivotValueContext } from "./SparkSqlParser.js"; -import { UnpivotClauseContext } from "./SparkSqlParser.js"; -import { UnpivotNullClauseContext } from "./SparkSqlParser.js"; -import { UnpivotOperatorContext } from "./SparkSqlParser.js"; -import { UnpivotSingleValueColumnClauseContext } from "./SparkSqlParser.js"; -import { UnpivotMultiValueColumnClauseContext } from "./SparkSqlParser.js"; -import { UnpivotColumnSetContext } from "./SparkSqlParser.js"; -import { UnpivotValueColumnContext } from "./SparkSqlParser.js"; -import { UnpivotNameColumnContext } from "./SparkSqlParser.js"; -import { UnpivotColumnAndAliasContext } from "./SparkSqlParser.js"; -import { UnpivotColumnContext } from "./SparkSqlParser.js"; -import { UnpivotAliasContext } from "./SparkSqlParser.js"; +import { UnPivotClauseContext } from "./SparkSqlParser.js"; +import { UnPivotNullClauseContext } from "./SparkSqlParser.js"; +import { UnPivotOperatorContext } from "./SparkSqlParser.js"; +import { UnPivotSingleValueColumnClauseContext } from "./SparkSqlParser.js"; +import { UnPivotMultiValueColumnClauseContext } from "./SparkSqlParser.js"; +import { UnPivotColumnSetContext } from "./SparkSqlParser.js"; +import { UnPivotValueColumnContext } from "./SparkSqlParser.js"; +import { UnPivotNameColumnContext } from "./SparkSqlParser.js"; +import { UnPivotColumnAndAliasContext } from "./SparkSqlParser.js"; +import { UnPivotColumnContext } from "./SparkSqlParser.js"; +import { UnPivotAliasContext } from "./SparkSqlParser.js"; import { IfNotExistsContext } from "./SparkSqlParser.js"; import { IfExistsContext } from "./SparkSqlParser.js"; import { LateralViewContext } from "./SparkSqlParser.js"; @@ -279,7 +279,7 @@ import { ComplexColTypeListContext } from "./SparkSqlParser.js"; import { ComplexColTypeContext } from "./SparkSqlParser.js"; import { WhenClauseContext } from "./SparkSqlParser.js"; import { WindowClauseContext } from "./SparkSqlParser.js"; -import { ZorderClauseContext } from "./SparkSqlParser.js"; +import { ZOrderClauseContext } from "./SparkSqlParser.js"; import { NamedWindowContext } from "./SparkSqlParser.js"; import { WindowSpecContext } from "./SparkSqlParser.js"; import { WindowFrameContext } from "./SparkSqlParser.js"; @@ -1478,71 +1478,71 @@ export class SparkSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `SparkSqlParser.unpivotClause`. + * Visit a parse tree produced by `SparkSqlParser.unPivotClause`. * @param ctx the parse tree * @return the visitor result */ - visitUnpivotClause?: (ctx: UnpivotClauseContext) => Result; + visitUnPivotClause?: (ctx: UnPivotClauseContext) => Result; /** - * Visit a parse tree produced by `SparkSqlParser.unpivotNullClause`. + * Visit a parse tree produced by `SparkSqlParser.unPivotNullClause`. * @param ctx the parse tree * @return the visitor result */ - visitUnpivotNullClause?: (ctx: UnpivotNullClauseContext) => Result; + visitUnPivotNullClause?: (ctx: UnPivotNullClauseContext) => Result; /** - * Visit a parse tree produced by `SparkSqlParser.unpivotOperator`. + * Visit a parse tree produced by `SparkSqlParser.unPivotOperator`. * @param ctx the parse tree * @return the visitor result */ - visitUnpivotOperator?: (ctx: UnpivotOperatorContext) => Result; + visitUnPivotOperator?: (ctx: UnPivotOperatorContext) => Result; /** - * Visit a parse tree produced by `SparkSqlParser.unpivotSingleValueColumnClause`. + * Visit a parse tree produced by `SparkSqlParser.unPivotSingleValueColumnClause`. * @param ctx the parse tree * @return the visitor result */ - visitUnpivotSingleValueColumnClause?: (ctx: UnpivotSingleValueColumnClauseContext) => Result; + visitUnPivotSingleValueColumnClause?: (ctx: UnPivotSingleValueColumnClauseContext) => Result; /** - * Visit a parse tree produced by `SparkSqlParser.unpivotMultiValueColumnClause`. + * Visit a parse tree produced by `SparkSqlParser.unPivotMultiValueColumnClause`. * @param ctx the parse tree * @return the visitor result */ - visitUnpivotMultiValueColumnClause?: (ctx: UnpivotMultiValueColumnClauseContext) => Result; + visitUnPivotMultiValueColumnClause?: (ctx: UnPivotMultiValueColumnClauseContext) => Result; /** - * Visit a parse tree produced by `SparkSqlParser.unpivotColumnSet`. + * Visit a parse tree produced by `SparkSqlParser.unPivotColumnSet`. * @param ctx the parse tree * @return the visitor result */ - visitUnpivotColumnSet?: (ctx: UnpivotColumnSetContext) => Result; + visitUnPivotColumnSet?: (ctx: UnPivotColumnSetContext) => Result; /** - * Visit a parse tree produced by `SparkSqlParser.unpivotValueColumn`. + * Visit a parse tree produced by `SparkSqlParser.unPivotValueColumn`. * @param ctx the parse tree * @return the visitor result */ - visitUnpivotValueColumn?: (ctx: UnpivotValueColumnContext) => Result; + visitUnPivotValueColumn?: (ctx: UnPivotValueColumnContext) => Result; /** - * Visit a parse tree produced by `SparkSqlParser.unpivotNameColumn`. + * Visit a parse tree produced by `SparkSqlParser.unPivotNameColumn`. * @param ctx the parse tree * @return the visitor result */ - visitUnpivotNameColumn?: (ctx: UnpivotNameColumnContext) => Result; + visitUnPivotNameColumn?: (ctx: UnPivotNameColumnContext) => Result; /** - * Visit a parse tree produced by `SparkSqlParser.unpivotColumnAndAlias`. + * Visit a parse tree produced by `SparkSqlParser.unPivotColumnAndAlias`. * @param ctx the parse tree * @return the visitor result */ - visitUnpivotColumnAndAlias?: (ctx: UnpivotColumnAndAliasContext) => Result; + visitUnPivotColumnAndAlias?: (ctx: UnPivotColumnAndAliasContext) => Result; /** - * Visit a parse tree produced by `SparkSqlParser.unpivotColumn`. + * Visit a parse tree produced by `SparkSqlParser.unPivotColumn`. * @param ctx the parse tree * @return the visitor result */ - visitUnpivotColumn?: (ctx: UnpivotColumnContext) => Result; + visitUnPivotColumn?: (ctx: UnPivotColumnContext) => Result; /** - * Visit a parse tree produced by `SparkSqlParser.unpivotAlias`. + * Visit a parse tree produced by `SparkSqlParser.unPivotAlias`. * @param ctx the parse tree * @return the visitor result */ - visitUnpivotAlias?: (ctx: UnpivotAliasContext) => Result; + visitUnPivotAlias?: (ctx: UnPivotAliasContext) => Result; /** * Visit a parse tree produced by `SparkSqlParser.ifNotExists`. * @param ctx the parse tree @@ -2036,11 +2036,11 @@ export class SparkSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `SparkSqlParser.zorderClause`. + * Visit a parse tree produced by `SparkSqlParser.zOrderClause`. * @param ctx the parse tree * @return the visitor result */ - visitZorderClause?: (ctx: ZorderClauseContext) => Result; + visitZOrderClause?: (ctx: ZOrderClauseContext) => Result; /** * Visit a parse tree produced by `SparkSqlParser.namedWindow`. * @param ctx the parse tree From 792564ac8451ef60dec29b4ff5e8b19bea15f4ce Mon Sep 17 00:00:00 2001 From: LuckyFBB <976060700@qq.com> Date: Thu, 13 Feb 2025 11:21:10 +0800 Subject: [PATCH 6/8] feat(trino): check spelling errors for trino sql --- src/grammar/trino/TrinoSql.g4 | 10 +- src/lib/trino/TrinoSql.interp | 4 +- src/lib/trino/TrinoSqlListener.ts | 46 +++---- src/lib/trino/TrinoSqlParser.ts | 214 +++++++++++++++--------------- src/lib/trino/TrinoSqlVisitor.ts | 28 ++-- 5 files changed, 151 insertions(+), 151 deletions(-) diff --git a/src/grammar/trino/TrinoSql.g4 b/src/grammar/trino/TrinoSql.g4 index 6ce90a081..fa5d3b72d 100644 --- a/src/grammar/trino/TrinoSql.g4 +++ b/src/grammar/trino/TrinoSql.g4 @@ -373,10 +373,10 @@ trimsSpecification listAggOverflowBehavior : KW_ERROR - | KW_TRUNCATE string? listaggCountIndication + | KW_TRUNCATE string? listAggCountIndication ; -listaggCountIndication +listAggCountIndication : KW_WITH KW_COUNT | KW_WITHOUT KW_COUNT ; @@ -489,7 +489,7 @@ jsonTableDefaultPlan tableFunctionCall : functionName '(' (tableFunctionArgument (',' tableFunctionArgument)*)? ( - KW_COPARTITION copartitionTables (',' copartitionTables)* + KW_COPARTITION coPartitionTables (',' coPartitionTables)* )? ')' ; @@ -522,7 +522,7 @@ descriptorField : identifier type? ; -copartitionTables +coPartitionTables : '(' qualifiedName ',' qualifiedName (',' qualifiedName)* ')' ; @@ -573,7 +573,7 @@ primaryExpression | KW_ROW '(' expression (',' expression)* ')' # rowConstructor | name=KW_LISTAGG '(' setQuantifier? expression (',' string)? ( KW_ON KW_OVERFLOW listAggOverflowBehavior - )? ')' (KW_WITHIN KW_GROUP '(' KW_ORDER KW_BY sortItem (',' sortItem)* ')') filter? # listagg + )? ')' (KW_WITHIN KW_GROUP '(' KW_ORDER KW_BY sortItem (',' sortItem)* ')') filter? # listAgg | processingMode? functionName '(' (label=identifier '.')? ASTERISK ')' filter? over? # functionCall | processingMode? functionName '(' (setQuantifier? expression (',' expression)*)? ( KW_ORDER KW_BY sortItem (',' sortItem)* diff --git a/src/lib/trino/TrinoSql.interp b/src/lib/trino/TrinoSql.interp index 925fc4272..4498811d3 100644 --- a/src/lib/trino/TrinoSql.interp +++ b/src/lib/trino/TrinoSql.interp @@ -728,7 +728,7 @@ sampledRelation sampleType trimsSpecification listAggOverflowBehavior -listaggCountIndication +listAggCountIndication patternRecognition measureDefinition rowsPerMatch @@ -752,7 +752,7 @@ tableArgument tableArgumentRelation descriptorArgument descriptorField -copartitionTables +coPartitionTables expression booleanExpression predicate diff --git a/src/lib/trino/TrinoSqlListener.ts b/src/lib/trino/TrinoSqlListener.ts index fc5a39d6d..348ede55b 100644 --- a/src/lib/trino/TrinoSqlListener.ts +++ b/src/lib/trino/TrinoSqlListener.ts @@ -144,7 +144,7 @@ import { SampledRelationContext } from "./TrinoSqlParser.js"; import { SampleTypeContext } from "./TrinoSqlParser.js"; import { TrimsSpecificationContext } from "./TrinoSqlParser.js"; import { ListAggOverflowBehaviorContext } from "./TrinoSqlParser.js"; -import { ListaggCountIndicationContext } from "./TrinoSqlParser.js"; +import { ListAggCountIndicationContext } from "./TrinoSqlParser.js"; import { PatternRecognitionContext } from "./TrinoSqlParser.js"; import { MeasureDefinitionContext } from "./TrinoSqlParser.js"; import { RowsPerMatchContext } from "./TrinoSqlParser.js"; @@ -181,7 +181,7 @@ import { TableArgumentTableContext } from "./TrinoSqlParser.js"; import { TableArgumentQueryContext } from "./TrinoSqlParser.js"; import { DescriptorArgumentContext } from "./TrinoSqlParser.js"; import { DescriptorFieldContext } from "./TrinoSqlParser.js"; -import { CopartitionTablesContext } from "./TrinoSqlParser.js"; +import { CoPartitionTablesContext } from "./TrinoSqlParser.js"; import { ExpressionContext } from "./TrinoSqlParser.js"; import { LogicalNotContext } from "./TrinoSqlParser.js"; import { PredicatedContext } from "./TrinoSqlParser.js"; @@ -212,6 +212,7 @@ import { TrimContext } from "./TrinoSqlParser.js"; import { ParameterContext } from "./TrinoSqlParser.js"; import { NormalizeContext } from "./TrinoSqlParser.js"; import { LocalTimestampContext } from "./TrinoSqlParser.js"; +import { ListAggContext } from "./TrinoSqlParser.js"; import { JsonObjectContext } from "./TrinoSqlParser.js"; import { IntervalLiteralContext } from "./TrinoSqlParser.js"; import { NumericLiteralContext } from "./TrinoSqlParser.js"; @@ -239,7 +240,6 @@ import { CurrentTimestampContext } from "./TrinoSqlParser.js"; import { CurrentSchemaContext } from "./TrinoSqlParser.js"; import { ExistsContext } from "./TrinoSqlParser.js"; import { PositionContext } from "./TrinoSqlParser.js"; -import { ListaggContext } from "./TrinoSqlParser.js"; import { SearchedCaseContext } from "./TrinoSqlParser.js"; import { CurrentCatalogContext } from "./TrinoSqlParser.js"; import { GroupingOperationContext } from "./TrinoSqlParser.js"; @@ -1948,15 +1948,15 @@ export class TrinoSqlListener implements ParseTreeListener { */ exitListAggOverflowBehavior?: (ctx: ListAggOverflowBehaviorContext) => void; /** - * Enter a parse tree produced by `TrinoSqlParser.listaggCountIndication`. + * Enter a parse tree produced by `TrinoSqlParser.listAggCountIndication`. * @param ctx the parse tree */ - enterListaggCountIndication?: (ctx: ListaggCountIndicationContext) => void; + enterListAggCountIndication?: (ctx: ListAggCountIndicationContext) => void; /** - * Exit a parse tree produced by `TrinoSqlParser.listaggCountIndication`. + * Exit a parse tree produced by `TrinoSqlParser.listAggCountIndication`. * @param ctx the parse tree */ - exitListaggCountIndication?: (ctx: ListaggCountIndicationContext) => void; + exitListAggCountIndication?: (ctx: ListAggCountIndicationContext) => void; /** * Enter a parse tree produced by `TrinoSqlParser.patternRecognition`. * @param ctx the parse tree @@ -2352,15 +2352,15 @@ export class TrinoSqlListener implements ParseTreeListener { */ exitDescriptorField?: (ctx: DescriptorFieldContext) => void; /** - * Enter a parse tree produced by `TrinoSqlParser.copartitionTables`. + * Enter a parse tree produced by `TrinoSqlParser.coPartitionTables`. * @param ctx the parse tree */ - enterCopartitionTables?: (ctx: CopartitionTablesContext) => void; + enterCoPartitionTables?: (ctx: CoPartitionTablesContext) => void; /** - * Exit a parse tree produced by `TrinoSqlParser.copartitionTables`. + * Exit a parse tree produced by `TrinoSqlParser.coPartitionTables`. * @param ctx the parse tree */ - exitCopartitionTables?: (ctx: CopartitionTablesContext) => void; + exitCoPartitionTables?: (ctx: CoPartitionTablesContext) => void; /** * Enter a parse tree produced by `TrinoSqlParser.expression`. * @param ctx the parse tree @@ -2719,6 +2719,18 @@ export class TrinoSqlListener implements ParseTreeListener { * @param ctx the parse tree */ exitLocalTimestamp?: (ctx: LocalTimestampContext) => void; + /** + * Enter a parse tree produced by the `listAgg` + * labeled alternative in `TrinoSqlParser.primaryExpression`. + * @param ctx the parse tree + */ + enterListAgg?: (ctx: ListAggContext) => void; + /** + * Exit a parse tree produced by the `listAgg` + * labeled alternative in `TrinoSqlParser.primaryExpression`. + * @param ctx the parse tree + */ + exitListAgg?: (ctx: ListAggContext) => void; /** * Enter a parse tree produced by the `jsonObject` * labeled alternative in `TrinoSqlParser.primaryExpression`. @@ -3043,18 +3055,6 @@ export class TrinoSqlListener implements ParseTreeListener { * @param ctx the parse tree */ exitPosition?: (ctx: PositionContext) => void; - /** - * Enter a parse tree produced by the `listagg` - * labeled alternative in `TrinoSqlParser.primaryExpression`. - * @param ctx the parse tree - */ - enterListagg?: (ctx: ListaggContext) => void; - /** - * Exit a parse tree produced by the `listagg` - * labeled alternative in `TrinoSqlParser.primaryExpression`. - * @param ctx the parse tree - */ - exitListagg?: (ctx: ListaggContext) => void; /** * Enter a parse tree produced by the `searchedCase` * labeled alternative in `TrinoSqlParser.primaryExpression`. diff --git a/src/lib/trino/TrinoSqlParser.ts b/src/lib/trino/TrinoSqlParser.ts index 705af90fe..74eec9a1d 100644 --- a/src/lib/trino/TrinoSqlParser.ts +++ b/src/lib/trino/TrinoSqlParser.ts @@ -400,7 +400,7 @@ export class TrinoSqlParser extends SQLParserBase { public static readonly RULE_sampleType = 40; public static readonly RULE_trimsSpecification = 41; public static readonly RULE_listAggOverflowBehavior = 42; - public static readonly RULE_listaggCountIndication = 43; + public static readonly RULE_listAggCountIndication = 43; public static readonly RULE_patternRecognition = 44; public static readonly RULE_measureDefinition = 45; public static readonly RULE_rowsPerMatch = 46; @@ -424,7 +424,7 @@ export class TrinoSqlParser extends SQLParserBase { public static readonly RULE_tableArgumentRelation = 64; public static readonly RULE_descriptorArgument = 65; public static readonly RULE_descriptorField = 66; - public static readonly RULE_copartitionTables = 67; + public static readonly RULE_coPartitionTables = 67; public static readonly RULE_expression = 68; public static readonly RULE_booleanExpression = 69; public static readonly RULE_predicate = 70; @@ -643,13 +643,13 @@ export class TrinoSqlParser extends SQLParserBase { "groupingSet", "groupingTerm", "windowDefinition", "windowSpecification", "namedQuery", "setQuantifier", "selectItem", "relation", "joinType", "joinCriteria", "sampledRelation", "sampleType", "trimsSpecification", - "listAggOverflowBehavior", "listaggCountIndication", "patternRecognition", + "listAggOverflowBehavior", "listAggCountIndication", "patternRecognition", "measureDefinition", "rowsPerMatch", "emptyMatchHandling", "skipTo", "subsetDefinition", "variableDefinition", "aliasedRelation", "columnListCreate", "columnList", "columnAliases", "relationPrimary", "jsonTableColumn", "jsonTableSpecificPlan", "jsonTablePathName", "planPrimary", "jsonTableDefaultPlan", "tableFunctionCall", "tableFunctionArgument", "tableArgument", "tableArgumentRelation", - "descriptorArgument", "descriptorField", "copartitionTables", "expression", + "descriptorArgument", "descriptorField", "coPartitionTables", "expression", "booleanExpression", "predicate", "valueExpression", "primaryExpression", "jsonPathInvocation", "jsonValueExpression", "jsonRepresentation", "jsonArgument", "jsonExistsErrorBehavior", "jsonValueBehavior", @@ -6178,7 +6178,7 @@ export class TrinoSqlParser extends SQLParserBase { } this.state = 1661; - this.listaggCountIndication(); + this.listAggCountIndication(); } break; default: @@ -6199,9 +6199,9 @@ export class TrinoSqlParser extends SQLParserBase { } return localContext; } - public listaggCountIndication(): ListaggCountIndicationContext { - let localContext = new ListaggCountIndicationContext(this.context, this.state); - this.enterRule(localContext, 86, TrinoSqlParser.RULE_listaggCountIndication); + public listAggCountIndication(): ListAggCountIndicationContext { + let localContext = new ListAggCountIndicationContext(this.context, this.state); + this.enterRule(localContext, 86, TrinoSqlParser.RULE_listAggCountIndication); try { this.state = 1668; this.errorHandler.sync(this); @@ -7996,7 +7996,7 @@ export class TrinoSqlParser extends SQLParserBase { this.state = 2076; this.match(TrinoSqlParser.KW_COPARTITION); this.state = 2077; - this.copartitionTables(); + this.coPartitionTables(); this.state = 2082; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -8006,7 +8006,7 @@ export class TrinoSqlParser extends SQLParserBase { this.state = 2078; this.match(TrinoSqlParser.T__2); this.state = 2079; - this.copartitionTables(); + this.coPartitionTables(); } } this.state = 2084; @@ -8469,9 +8469,9 @@ export class TrinoSqlParser extends SQLParserBase { } return localContext; } - public copartitionTables(): CopartitionTablesContext { - let localContext = new CopartitionTablesContext(this.context, this.state); - this.enterRule(localContext, 134, TrinoSqlParser.RULE_copartitionTables); + public coPartitionTables(): CoPartitionTablesContext { + let localContext = new CoPartitionTablesContext(this.context, this.state); + this.enterRule(localContext, 134, TrinoSqlParser.RULE_coPartitionTables); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -9482,11 +9482,11 @@ export class TrinoSqlParser extends SQLParserBase { break; case 13: { - localContext = new ListaggContext(localContext); + localContext = new ListAggContext(localContext); this.context = localContext; previousContext = localContext; this.state = 2361; - (localContext as ListaggContext)._name = this.match(TrinoSqlParser.KW_LISTAGG); + (localContext as ListAggContext)._name = this.match(TrinoSqlParser.KW_LISTAGG); this.state = 2362; this.match(TrinoSqlParser.T__0); this.state = 2364; @@ -23999,8 +23999,8 @@ export class ListAggOverflowBehaviorContext extends antlr.ParserRuleContext { public KW_TRUNCATE(): antlr.TerminalNode | null { return this.getToken(TrinoSqlParser.KW_TRUNCATE, 0); } - public listaggCountIndication(): ListaggCountIndicationContext | null { - return this.getRuleContext(0, ListaggCountIndicationContext); + public listAggCountIndication(): ListAggCountIndicationContext | null { + return this.getRuleContext(0, ListAggCountIndicationContext); } public string(): StringContext | null { return this.getRuleContext(0, StringContext); @@ -24028,7 +24028,7 @@ export class ListAggOverflowBehaviorContext extends antlr.ParserRuleContext { } -export class ListaggCountIndicationContext extends antlr.ParserRuleContext { +export class ListAggCountIndicationContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -24042,21 +24042,21 @@ export class ListaggCountIndicationContext extends antlr.ParserRuleContext { return this.getToken(TrinoSqlParser.KW_WITHOUT, 0); } public override get ruleIndex(): number { - return TrinoSqlParser.RULE_listaggCountIndication; + return TrinoSqlParser.RULE_listAggCountIndication; } public override enterRule(listener: TrinoSqlListener): void { - if(listener.enterListaggCountIndication) { - listener.enterListaggCountIndication(this); + if(listener.enterListAggCountIndication) { + listener.enterListAggCountIndication(this); } } public override exitRule(listener: TrinoSqlListener): void { - if(listener.exitListaggCountIndication) { - listener.exitListaggCountIndication(this); + if(listener.exitListAggCountIndication) { + listener.exitListAggCountIndication(this); } } public override accept(visitor: TrinoSqlVisitor): Result | null { - if (visitor.visitListaggCountIndication) { - return visitor.visitListaggCountIndication(this); + if (visitor.visitListAggCountIndication) { + return visitor.visitListAggCountIndication(this); } else { return visitor.visitChildren(this); } @@ -25389,14 +25389,14 @@ export class TableFunctionCallContext extends antlr.ParserRuleContext { public KW_COPARTITION(): antlr.TerminalNode | null { return this.getToken(TrinoSqlParser.KW_COPARTITION, 0); } - public copartitionTables(): CopartitionTablesContext[]; - public copartitionTables(i: number): CopartitionTablesContext | null; - public copartitionTables(i?: number): CopartitionTablesContext[] | CopartitionTablesContext | null { + public coPartitionTables(): CoPartitionTablesContext[]; + public coPartitionTables(i: number): CoPartitionTablesContext | null; + public coPartitionTables(i?: number): CoPartitionTablesContext[] | CoPartitionTablesContext | null { if (i === undefined) { - return this.getRuleContexts(CopartitionTablesContext); + return this.getRuleContexts(CoPartitionTablesContext); } - return this.getRuleContext(i, CopartitionTablesContext); + return this.getRuleContext(i, CoPartitionTablesContext); } public override get ruleIndex(): number { return TrinoSqlParser.RULE_tableFunctionCall; @@ -25705,7 +25705,7 @@ export class DescriptorFieldContext extends antlr.ParserRuleContext { } -export class CopartitionTablesContext extends antlr.ParserRuleContext { +export class CoPartitionTablesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -25719,21 +25719,21 @@ export class CopartitionTablesContext extends antlr.ParserRuleContext { return this.getRuleContext(i, QualifiedNameContext); } public override get ruleIndex(): number { - return TrinoSqlParser.RULE_copartitionTables; + return TrinoSqlParser.RULE_coPartitionTables; } public override enterRule(listener: TrinoSqlListener): void { - if(listener.enterCopartitionTables) { - listener.enterCopartitionTables(this); + if(listener.enterCoPartitionTables) { + listener.enterCoPartitionTables(this); } } public override exitRule(listener: TrinoSqlListener): void { - if(listener.exitCopartitionTables) { - listener.exitCopartitionTables(this); + if(listener.exitCoPartitionTables) { + listener.exitCoPartitionTables(this); } } public override accept(visitor: TrinoSqlVisitor): Result | null { - if (visitor.visitCopartitionTables) { - return visitor.visitCopartitionTables(this); + if (visitor.visitCoPartitionTables) { + return visitor.visitCoPartitionTables(this); } else { return visitor.visitChildren(this); } @@ -26846,6 +26846,75 @@ export class LocalTimestampContext extends PrimaryExpressionContext { } } } +export class ListAggContext extends PrimaryExpressionContext { + public _name?: Token | null; + public constructor(ctx: PrimaryExpressionContext) { + super(ctx.parent, ctx.invokingState); + super.copyFrom(ctx); + } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext)!; + } + public KW_LISTAGG(): antlr.TerminalNode { + return this.getToken(TrinoSqlParser.KW_LISTAGG, 0)!; + } + public KW_WITHIN(): antlr.TerminalNode | null { + return this.getToken(TrinoSqlParser.KW_WITHIN, 0); + } + public KW_GROUP(): antlr.TerminalNode | null { + return this.getToken(TrinoSqlParser.KW_GROUP, 0); + } + public KW_ORDER(): antlr.TerminalNode | null { + return this.getToken(TrinoSqlParser.KW_ORDER, 0); + } + public KW_BY(): antlr.TerminalNode | null { + return this.getToken(TrinoSqlParser.KW_BY, 0); + } + public sortItem(): SortItemContext[]; + public sortItem(i: number): SortItemContext | null; + public sortItem(i?: number): SortItemContext[] | SortItemContext | null { + if (i === undefined) { + return this.getRuleContexts(SortItemContext); + } + + return this.getRuleContext(i, SortItemContext); + } + public setQuantifier(): SetQuantifierContext | null { + return this.getRuleContext(0, SetQuantifierContext); + } + public string(): StringContext | null { + return this.getRuleContext(0, StringContext); + } + public KW_ON(): antlr.TerminalNode | null { + return this.getToken(TrinoSqlParser.KW_ON, 0); + } + public KW_OVERFLOW(): antlr.TerminalNode | null { + return this.getToken(TrinoSqlParser.KW_OVERFLOW, 0); + } + public listAggOverflowBehavior(): ListAggOverflowBehaviorContext | null { + return this.getRuleContext(0, ListAggOverflowBehaviorContext); + } + public filter(): FilterContext | null { + return this.getRuleContext(0, FilterContext); + } + public override enterRule(listener: TrinoSqlListener): void { + if(listener.enterListAgg) { + listener.enterListAgg(this); + } + } + public override exitRule(listener: TrinoSqlListener): void { + if(listener.exitListAgg) { + listener.exitListAgg(this); + } + } + public override accept(visitor: TrinoSqlVisitor): Result | null { + if (visitor.visitListAgg) { + return visitor.visitListAgg(this); + } else { + return visitor.visitChildren(this); + } + } +} export class JsonObjectContext extends PrimaryExpressionContext { public constructor(ctx: PrimaryExpressionContext) { super(ctx.parent, ctx.invokingState); @@ -27846,75 +27915,6 @@ export class PositionContext extends PrimaryExpressionContext { } } } -export class ListaggContext extends PrimaryExpressionContext { - public _name?: Token | null; - public constructor(ctx: PrimaryExpressionContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext)!; - } - public KW_LISTAGG(): antlr.TerminalNode { - return this.getToken(TrinoSqlParser.KW_LISTAGG, 0)!; - } - public KW_WITHIN(): antlr.TerminalNode | null { - return this.getToken(TrinoSqlParser.KW_WITHIN, 0); - } - public KW_GROUP(): antlr.TerminalNode | null { - return this.getToken(TrinoSqlParser.KW_GROUP, 0); - } - public KW_ORDER(): antlr.TerminalNode | null { - return this.getToken(TrinoSqlParser.KW_ORDER, 0); - } - public KW_BY(): antlr.TerminalNode | null { - return this.getToken(TrinoSqlParser.KW_BY, 0); - } - public sortItem(): SortItemContext[]; - public sortItem(i: number): SortItemContext | null; - public sortItem(i?: number): SortItemContext[] | SortItemContext | null { - if (i === undefined) { - return this.getRuleContexts(SortItemContext); - } - - return this.getRuleContext(i, SortItemContext); - } - public setQuantifier(): SetQuantifierContext | null { - return this.getRuleContext(0, SetQuantifierContext); - } - public string(): StringContext | null { - return this.getRuleContext(0, StringContext); - } - public KW_ON(): antlr.TerminalNode | null { - return this.getToken(TrinoSqlParser.KW_ON, 0); - } - public KW_OVERFLOW(): antlr.TerminalNode | null { - return this.getToken(TrinoSqlParser.KW_OVERFLOW, 0); - } - public listAggOverflowBehavior(): ListAggOverflowBehaviorContext | null { - return this.getRuleContext(0, ListAggOverflowBehaviorContext); - } - public filter(): FilterContext | null { - return this.getRuleContext(0, FilterContext); - } - public override enterRule(listener: TrinoSqlListener): void { - if(listener.enterListagg) { - listener.enterListagg(this); - } - } - public override exitRule(listener: TrinoSqlListener): void { - if(listener.exitListagg) { - listener.exitListagg(this); - } - } - public override accept(visitor: TrinoSqlVisitor): Result | null { - if (visitor.visitListagg) { - return visitor.visitListagg(this); - } else { - return visitor.visitChildren(this); - } - } -} export class SearchedCaseContext extends PrimaryExpressionContext { public _elseExpression?: ExpressionContext; public constructor(ctx: PrimaryExpressionContext) { diff --git a/src/lib/trino/TrinoSqlVisitor.ts b/src/lib/trino/TrinoSqlVisitor.ts index 16c11b694..c5b6cda23 100644 --- a/src/lib/trino/TrinoSqlVisitor.ts +++ b/src/lib/trino/TrinoSqlVisitor.ts @@ -144,7 +144,7 @@ import { SampledRelationContext } from "./TrinoSqlParser.js"; import { SampleTypeContext } from "./TrinoSqlParser.js"; import { TrimsSpecificationContext } from "./TrinoSqlParser.js"; import { ListAggOverflowBehaviorContext } from "./TrinoSqlParser.js"; -import { ListaggCountIndicationContext } from "./TrinoSqlParser.js"; +import { ListAggCountIndicationContext } from "./TrinoSqlParser.js"; import { PatternRecognitionContext } from "./TrinoSqlParser.js"; import { MeasureDefinitionContext } from "./TrinoSqlParser.js"; import { RowsPerMatchContext } from "./TrinoSqlParser.js"; @@ -181,7 +181,7 @@ import { TableArgumentTableContext } from "./TrinoSqlParser.js"; import { TableArgumentQueryContext } from "./TrinoSqlParser.js"; import { DescriptorArgumentContext } from "./TrinoSqlParser.js"; import { DescriptorFieldContext } from "./TrinoSqlParser.js"; -import { CopartitionTablesContext } from "./TrinoSqlParser.js"; +import { CoPartitionTablesContext } from "./TrinoSqlParser.js"; import { ExpressionContext } from "./TrinoSqlParser.js"; import { LogicalNotContext } from "./TrinoSqlParser.js"; import { PredicatedContext } from "./TrinoSqlParser.js"; @@ -212,6 +212,7 @@ import { TrimContext } from "./TrinoSqlParser.js"; import { ParameterContext } from "./TrinoSqlParser.js"; import { NormalizeContext } from "./TrinoSqlParser.js"; import { LocalTimestampContext } from "./TrinoSqlParser.js"; +import { ListAggContext } from "./TrinoSqlParser.js"; import { JsonObjectContext } from "./TrinoSqlParser.js"; import { IntervalLiteralContext } from "./TrinoSqlParser.js"; import { NumericLiteralContext } from "./TrinoSqlParser.js"; @@ -239,7 +240,6 @@ import { CurrentTimestampContext } from "./TrinoSqlParser.js"; import { CurrentSchemaContext } from "./TrinoSqlParser.js"; import { ExistsContext } from "./TrinoSqlParser.js"; import { PositionContext } from "./TrinoSqlParser.js"; -import { ListaggContext } from "./TrinoSqlParser.js"; import { SearchedCaseContext } from "./TrinoSqlParser.js"; import { CurrentCatalogContext } from "./TrinoSqlParser.js"; import { GroupingOperationContext } from "./TrinoSqlParser.js"; @@ -1306,11 +1306,11 @@ export class TrinoSqlVisitor extends AbstractParseTreeVisitor { */ visitListAggOverflowBehavior?: (ctx: ListAggOverflowBehaviorContext) => Result; /** - * Visit a parse tree produced by `TrinoSqlParser.listaggCountIndication`. + * Visit a parse tree produced by `TrinoSqlParser.listAggCountIndication`. * @param ctx the parse tree * @return the visitor result */ - visitListaggCountIndication?: (ctx: ListaggCountIndicationContext) => Result; + visitListAggCountIndication?: (ctx: ListAggCountIndicationContext) => Result; /** * Visit a parse tree produced by `TrinoSqlParser.patternRecognition`. * @param ctx the parse tree @@ -1545,11 +1545,11 @@ export class TrinoSqlVisitor extends AbstractParseTreeVisitor { */ visitDescriptorField?: (ctx: DescriptorFieldContext) => Result; /** - * Visit a parse tree produced by `TrinoSqlParser.copartitionTables`. + * Visit a parse tree produced by `TrinoSqlParser.coPartitionTables`. * @param ctx the parse tree * @return the visitor result */ - visitCopartitionTables?: (ctx: CopartitionTablesContext) => Result; + visitCoPartitionTables?: (ctx: CoPartitionTablesContext) => Result; /** * Visit a parse tree produced by `TrinoSqlParser.expression`. * @param ctx the parse tree @@ -1759,6 +1759,13 @@ export class TrinoSqlVisitor extends AbstractParseTreeVisitor { * @return the visitor result */ visitLocalTimestamp?: (ctx: LocalTimestampContext) => Result; + /** + * Visit a parse tree produced by the `listAgg` + * labeled alternative in `TrinoSqlParser.primaryExpression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitListAgg?: (ctx: ListAggContext) => Result; /** * Visit a parse tree produced by the `jsonObject` * labeled alternative in `TrinoSqlParser.primaryExpression`. @@ -1948,13 +1955,6 @@ export class TrinoSqlVisitor extends AbstractParseTreeVisitor { * @return the visitor result */ visitPosition?: (ctx: PositionContext) => Result; - /** - * Visit a parse tree produced by the `listagg` - * labeled alternative in `TrinoSqlParser.primaryExpression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitListagg?: (ctx: ListaggContext) => Result; /** * Visit a parse tree produced by the `searchedCase` * labeled alternative in `TrinoSqlParser.primaryExpression`. From 9d6e577702f69b23956a5468a7324f57fe483d09 Mon Sep 17 00:00:00 2001 From: LuckyFBB <976060700@qq.com> Date: Thu, 13 Feb 2025 11:56:09 +0800 Subject: [PATCH 7/8] feat(postgre): check seplling errors for postgre g4 --- src/grammar/postgresql/PostgreSqlParser.g4 | 1524 +-- src/lib/postgresql/PostgreSqlParser.interp | 394 +- src/lib/postgresql/PostgreSqlParser.ts | 10029 ++++++++-------- .../postgresql/PostgreSqlParserListener.ts | 1916 +-- src/lib/postgresql/PostgreSqlParserVisitor.ts | 1146 +- .../postgresql/postgreEntityCollector.ts | 12 +- 6 files changed, 7505 insertions(+), 7516 deletions(-) diff --git a/src/grammar/postgresql/PostgreSqlParser.g4 b/src/grammar/postgresql/PostgreSqlParser.g4 index 57f4ca3af..e539cf909 100644 --- a/src/grammar/postgresql/PostgreSqlParser.g4 +++ b/src/grammar/postgresql/PostgreSqlParser.g4 @@ -58,136 +58,136 @@ singleStmt ; stmt - : altereventtrigstmt - | altercollationstmt - | alterdatabasestmt - | alterdatabasesetstmt - | alterdefaultprivilegesstmt - | alterdomainstmt - | alterenumstmt - | alterextensionstmt - | alterextensioncontentsstmt - | alterfdwstmt - | alterforeignserverstmt - | alterfunctionstmt - | altergroupstmt - | alterobjectdependsstmt - | alterobjectschemastmt - | alterownerstmt - | alteroperatorstmt - | altertypestmt - | alterpolicystmt - | alterprocedurestmt - | alterseqstmt - | altersystemstmt - | altertablestmt - | altertblspcstmt - | altercompositetypestmt - | alterpublicationstmt - | alterrolesetstmt - | alterroutinestmt - | alterrolestmt - | altersubscriptionstmt - | alterstatsstmt - | altertsconfigurationstmt - | altertsdictionarystmt - | alterusermappingstmt - | analyzestmt - | callstmt - | checkpointstmt - | closeportalstmt - | clusterstmt - | commentstmt - | constraintssetstmt - | copystmt - | createamstmt - | createasstmt - | createassertionstmt - | createcaststmt - | createconversionstmt - | createdomainstmt - | createextensionstmt - | createfdwstmt - | createforeignserverstmt - | createforeigntablestmt - | createfunctionstmt - | creategroupstmt - | creatematviewstmt - | createopclassstmt - | createopfamilystmt - | createpublicationstmt - | alteropfamilystmt - | createpolicystmt - | createplangstmt - | createschemastmt - | createseqstmt - | createstmt - | createsubscriptionstmt - | createstatsstmt - | createtablespacestmt - | createtransformstmt - | createtrigstmt - | createeventtrigstmt - | createrolestmt - | createuserstmt - | createusermappingstmt - | createdbstmt - | deallocatestmt - | declarecursorstmt - | definestmt - | deletestmt - | discardstmt - | dostmt - | dropstmt - | executestmt - | explainstmt - | fetchstmt - | grantstmt - | grantrolestmt - | mergestmt - | importforeignschemastmt - | indexstmt - | insertstmt - | listenstmt - | refreshmatviewstmt - | loadstmt - | lockstmt - | notifystmt - | preparestmt - | reassignownedstmt - | reindexstmt - | removeaggrstmt - | removefuncstmt - | removeoperstmt - | renamestmt - | revokestmt - | revokerolestmt - | rulestmt - | seclabelstmt - | selectstmt - | transactionstmt - | truncatestmt - | unlistenstmt - | updatestmt - | vacuumstmt - | variableresetstmt - | variablesetstmt - | variableshowstmt - | viewstmt + : alterEventTrigStmt + | alterCollationStmt + | alterDatabaseStmt + | alterDatabaseSetStmt + | alterDefaultPrivilegesStmt + | alterDomainStmt + | alterEnumStmt + | alterExtensionStmt + | alterExtensionContentsStmt + | alterFdwStmt + | alterForeignServerStmt + | alterFunctionStmt + | alterGroupStmt + | alterObjectDependsStmt + | alterObjectSchemaStmt + | alterOwnerStmt + | alterOperatorStmt + | alterTypeStmt + | alterPolicyStmt + | alterProcedureStmt + | alterSeqStmt + | alterSystemStmt + | alterTableStmt + | alterTblSpcStmt + | alterCompositeTypeStmt + | alterPublicationStmt + | alterRoleSetStmt + | alterRoutineStmt + | alterRoleStmt + | alterSubscriptionStmt + | alterStatsStmt + | alterSearchConfigurationStmt + | alterSearchDictionaryStmt + | alterUserMappingStmt + | analyzeStmt + | callStmt + | checkPointStmt + | closePortalStmt + | clusterStmt + | commentStmt + | constraintsSetStmt + | copyStmt + | createAccessMethodStmt + | createAsStmt + | createAssertionStmt + | createCastStmt + | createConversionStmt + | createDomainStmt + | createExtensionStmt + | createFdwStmt + | createForeignServerStmt + | createForeignTableStmt + | createFunctionStmt + | createGroupStmt + | createMaterializedViewStmt + | createOperatorClassStmt + | createOperatorFamilyStmt + | createPublicationStmt + | alterOperatorFamilyStmt + | createPolicyStmt + | createProceduralLangStmt + | createSchemaStmt + | createSeqStmt + | createStmt + | createSubscriptionStmt + | createStatsStmt + | createTableSpaceStmt + | createTransformStmt + | createTrigStmt + | createEventTrigStmt + | createRoleStmt + | createUserStmt + | createUserMappingStmt + | createDbStmt + | dealLocateStmt + | declareCursorStmt + | defineStmt + | deleteStmt + | discardStmt + | doStmt + | dropStmt + | executeStmt + | explainStmt + | fetchStmt + | grantStmt + | grantRoleStmt + | mergeStmt + | importForeignSchemaStmt + | indexStmt + | insertStmt + | listenStmt + | refreshMaterializedViewStmt + | loadStmt + | lockStmt + | notifyStmt + | prepareStmt + | reassignOwnedStmt + | reindexStmt + | removeAggregateStmt + | removeFuncStmt + | removeOperatorStmt + | renameStmt + | revokeStmt + | revokeRoleStmt + | ruleStmt + | secLabelStmt + | selectStmt + | transactionStmt + | truncateStmt + | unListenStmt + | updateStmt + | vacuumStmt + | variableResetStmt + | variableSetStmt + | variableShowStmt + | viewStmt | MetaCommand EndMetaCommand? ; -callstmt +callStmt : KW_CALL func_application ; -createrolestmt - : KW_CREATE KW_ROLE rolespec KW_WITH? createoptroleelem* +createRoleStmt + : KW_CREATE KW_ROLE roleSpec KW_WITH? createOperatorRoleElem* ; -alteroptroleelem - : KW_PASSWORD (sconst | KW_NULL) - | (KW_ENCRYPTED | KW_UNENCRYPTED) KW_PASSWORD sconst +alterOperatorRoleElem + : KW_PASSWORD (stringConst | KW_NULL) + | (KW_ENCRYPTED | KW_UNENCRYPTED) KW_PASSWORD stringConst | KW_INHERIT | KW_NOINHERIT | KW_CREATEUSER @@ -204,43 +204,43 @@ alteroptroleelem | KW_NOREPLICATION | KW_BYPASSRLS | KW_NOBYPASSRLS - | KW_CONNECTION KW_LIMIT signediconst - | KW_VALID KW_UNTIL sconst + | KW_CONNECTION KW_LIMIT signedConst + | KW_VALID KW_UNTIL stringConst | KW_IN (KW_ROLE | KW_GROUP) name_list | (KW_ROLE | KW_USER) role_list | KW_ADMIN name_list | identifier ; -createoptroleelem - : alteroptroleelem +createOperatorRoleElem + : alterOperatorRoleElem | KW_SYSID Integral | (KW_ADMIN | KW_ROLE) role_list | KW_IN (KW_ROLE | KW_GROUP) role_list ; -createuserstmt - : KW_CREATE KW_USER rolespec KW_WITH? createoptroleelem* +createUserStmt + : KW_CREATE KW_USER roleSpec KW_WITH? createOperatorRoleElem* ; -alterrolestmt - : KW_ALTER (KW_ROLE | KW_USER) rolespec KW_WITH? alteroptroleelem* +alterRoleStmt + : KW_ALTER (KW_ROLE | KW_USER) roleSpec KW_WITH? alterOperatorRoleElem* ; -alterrolesetstmt - : KW_ALTER (KW_ROLE | KW_USER) (KW_ALL | rolespec) KW_IN KW_DATABASE database_name setresetclause +alterRoleSetStmt + : KW_ALTER (KW_ROLE | KW_USER) (KW_ALL | roleSpec) KW_IN KW_DATABASE database_name setOrResetClause ; -alterroutinestmt - : KW_ALTER KW_ROUTINE routine_name func_args? alter_routine_cluase +alterRoutineStmt + : KW_ALTER KW_ROUTINE routine_name func_args? alter_routine_clause ; -alter_routine_cluase +alter_routine_clause : routine_action (routine_action)* KW_RESTRICT? | KW_RENAME KW_TO routine_name_create - | KW_OWNER KW_TO rolespec + | KW_OWNER KW_TO roleSpec | KW_SET KW_SCHEMA schema_name_create - | KW_NO? KW_DEPENDS KW_ON KW_EXTENSION colid + | KW_NO? KW_DEPENDS KW_ON KW_EXTENSION colId ; routine_action @@ -250,24 +250,24 @@ routine_action | KW_NOT? KW_LEAKPROOF | (KW_EXTERNAL? KW_SECURITY KW_INVOKER | KW_EXTERNAL? KW_SECURITY KW_DEFINER) | KW_PARALLEL (KW_UNSAFE | KW_RESTRICTED | KW_SAFE) - | KW_COST collabel - | KW_ROWS colid - | KW_SET colid (KW_TO | EQUAL) (colid | KW_DEFAULT) - | KW_SET colid KW_FROM KW_CURRENT - | KW_RESET (colid | KW_ALL) + | KW_COST colLabel + | KW_ROWS colId + | KW_SET colId (KW_TO | EQUAL) (colId | KW_DEFAULT) + | KW_SET colId KW_FROM KW_CURRENT + | KW_RESET (colId | KW_ALL) ; -creategroupstmt - : KW_CREATE KW_GROUP rolespec KW_WITH? createoptroleelem* +createGroupStmt + : KW_CREATE KW_GROUP roleSpec KW_WITH? createOperatorRoleElem* ; -altergroupstmt - : KW_ALTER KW_GROUP rolespec (KW_ADD | KW_DROP) KW_USER role_list +alterGroupStmt + : KW_ALTER KW_GROUP roleSpec (KW_ADD | KW_DROP) KW_USER role_list ; -createschemastmt +createSchemaStmt : KW_CREATE KW_SCHEMA opt_if_not_exists? ( - schema_name_create? KW_AUTHORIZATION rolespec + schema_name_create? KW_AUTHORIZATION roleSpec | schema_name_create ) schema_stmt* ; @@ -277,15 +277,15 @@ schema_name_create ; schema_stmt - : createstmt - | indexstmt - | createseqstmt - | createtrigstmt - | grantstmt - | viewstmt + : createStmt + | indexStmt + | createSeqStmt + | createTrigStmt + | grantStmt + | viewStmt ; -variablesetstmt +variableSetStmt : KW_SET (KW_LOCAL | KW_SESSION)? set_rest ; @@ -301,19 +301,19 @@ generic_set set_rest_more : KW_TIME KW_ZONE zone_value - | KW_CATALOG sconst + | KW_CATALOG stringConst | KW_SCHEMA schema_name - | KW_NAMES (sconst | KW_DEFAULT)? - | KW_ROLE nonreservedword_or_sconst - | KW_SESSION KW_AUTHORIZATION nonreservedword_or_sconst + | KW_NAMES (stringConst | KW_DEFAULT)? + | KW_ROLE nonReservedWordOrStringConst + | KW_SESSION KW_AUTHORIZATION nonReservedWordOrStringConst | KW_XML KW_OPTION document_or_content - | KW_TRANSACTION KW_SNAPSHOT sconst + | KW_TRANSACTION KW_SNAPSHOT stringConst | var_name KW_FROM KW_CURRENT | generic_set ; var_name - : colid (DOT colid)* + : colId (DOT colId)* ; var_list @@ -322,7 +322,7 @@ var_list var_value : opt_boolean_or_string - | numericonly + | numericOnly ; iso_level @@ -337,32 +337,32 @@ opt_boolean_or_string_column | KW_ON | column_name | type_func_name_keyword - | sconst + | stringConst ; opt_boolean_or_string : KW_TRUE | KW_FALSE | KW_ON - | nonreservedword_or_sconst + | nonReservedWordOrStringConst ; zone_value - : sconst + : stringConst | KW_DEFAULT | identifier - | KW_INTERVAL sconst opt_interval? - | KW_INTERVAL opt_float sconst - | numericonly + | KW_INTERVAL stringConst opt_interval? + | KW_INTERVAL opt_float stringConst + | numericOnly | KW_LOCAL ; -nonreservedword_or_sconst - : nonreservedword - | sconst +nonReservedWordOrStringConst + : nonReservedWord + | stringConst ; -variableresetstmt +variableResetStmt : KW_RESET reset_rest ; @@ -374,17 +374,17 @@ reset_rest | var_name ; -setresetclause +setOrResetClause : KW_SET set_rest - | variableresetstmt + | variableResetStmt ; -functionsetresetclause +functionSetOrResetClause : KW_SET set_rest_more - | variableresetstmt + | variableResetStmt ; -variableshowstmt +variableShowStmt : KW_SHOW ( var_name | KW_TIME KW_ZONE @@ -394,21 +394,21 @@ variableshowstmt ) ; -constraintssetstmt +constraintsSetStmt : KW_SET KW_CONSTRAINTS (KW_ALL | qualified_name_list) (KW_DEFERRED | KW_IMMEDIATE) ; -checkpointstmt +checkPointStmt : KW_CHECKPOINT ; -discardstmt +discardStmt : KW_DISCARD (KW_ALL | KW_TEMP | KW_TEMPORARY | KW_PLANS | KW_SEQUENCES) ; -altertablestmt +alterTableStmt : KW_ALTER KW_TABLE opt_if_exists? relation_expr (alter_table_cmds | partition_cmd) - | KW_ALTER KW_TABLE KW_ALL KW_IN opttablespace (KW_OWNED KW_BY role_list)? KW_SET KW_TABLESPACE tablespace_name_create KW_NOWAIT? + | KW_ALTER KW_TABLE KW_ALL KW_IN optTableSpace (KW_OWNED KW_BY role_list)? KW_SET KW_TABLESPACE tablespace_name_create KW_NOWAIT? | KW_ALTER KW_TABLE opt_if_exists? table_name index_partition_cmd ( KW_FOR KW_VALUES partition_bound_spec | KW_DEFAULT @@ -418,10 +418,10 @@ altertablestmt | KW_FINALIZE )? | KW_ALTER KW_INDEX opt_if_exists? qualified_name (alter_table_cmds | index_partition_cmd) - | KW_ALTER KW_INDEX KW_ALL KW_IN opttablespace (KW_OWNED KW_BY role_list)? KW_SET opttablespace KW_NOWAIT? + | KW_ALTER KW_INDEX KW_ALL KW_IN optTableSpace (KW_OWNED KW_BY role_list)? KW_SET optTableSpace KW_NOWAIT? | KW_ALTER KW_SEQUENCE opt_if_exists? qualified_name alter_table_cmds | KW_ALTER KW_MATERIALIZED? KW_VIEW opt_if_exists? view_name alter_table_cmds - | KW_ALTER KW_MATERIALIZED KW_VIEW KW_ALL KW_IN opttablespace (KW_OWNED KW_BY role_list)? KW_SET KW_TABLESPACE tablespace_name_create KW_NOWAIT? + | KW_ALTER KW_MATERIALIZED KW_VIEW KW_ALL KW_IN optTableSpace (KW_OWNED KW_BY role_list)? KW_SET KW_TABLESPACE tablespace_name_create KW_NOWAIT? | KW_ALTER KW_FOREIGN KW_TABLE opt_if_exists? relation_expr alter_table_cmds ; @@ -431,11 +431,11 @@ alter_table_cmds partition_bound_spec : KW_IN execute_param_clause - | KW_FROM partition_bound_cluase KW_TO partition_bound_cluase - | KW_WITH partition_with_cluase + | KW_FROM partition_bound_clause KW_TO partition_bound_clause + | KW_WITH partition_with_clause ; -partition_bound_cluase +partition_bound_clause : OPEN_PAREN partition_bound_choose (COMMA partition_bound_choose)* CLOSE_PAREN ; @@ -445,12 +445,12 @@ partition_bound_choose | KW_MAXVALUE ; -partition_with_cluase - : OPEN_PAREN KW_MODULUS numericonly COMMA KW_REMAINDER numericonly CLOSE_PAREN +partition_with_clause + : OPEN_PAREN KW_MODULUS numericOnly COMMA KW_REMAINDER numericOnly CLOSE_PAREN ; partition_cmd - : index_partition_cmd partitionboundspec + : index_partition_cmd partitionBoundSpec | KW_DETACH KW_PARTITION qualified_name ; @@ -459,38 +459,38 @@ index_partition_cmd ; alter_table_cmd - : KW_ADD (KW_CONSTRAINT colid)? constraintelem - | KW_ALTER KW_CONSTRAINT colid constraintattributeElem* - | KW_VALIDATE KW_CONSTRAINT colid - | KW_DROP KW_CONSTRAINT opt_if_exists? colid opt_drop_behavior? + : KW_ADD (KW_CONSTRAINT colId)? constraintElem + | KW_ALTER KW_CONSTRAINT colId constraintAttributeElem* + | KW_VALIDATE KW_CONSTRAINT colId + | KW_DROP KW_CONSTRAINT opt_if_exists? colId opt_drop_behavior? | KW_SET KW_WITHOUT (KW_OIDS | KW_CLUSTER) - | KW_CLUSTER KW_ON colid + | KW_CLUSTER KW_ON colId | KW_SET (KW_LOGGED | KW_UNLOGGED) | KW_ENABLE (KW_REPLICA | KW_ALWAYS)? KW_TRIGGER - | KW_DISABLE KW_TRIGGER (KW_ALL | KW_USER | colid) - | KW_ENABLE (KW_ALWAYS | KW_REPLICA) KW_RULE colid - | KW_DISABLE KW_RULE colid + | KW_DISABLE KW_TRIGGER (KW_ALL | KW_USER | colId) + | KW_ENABLE (KW_ALWAYS | KW_REPLICA) KW_RULE colId + | KW_DISABLE KW_RULE colId | KW_NO? KW_INHERIT qualified_name | KW_OF any_name | KW_NOT KW_OF - | KW_OWNER KW_TO rolespec + | KW_OWNER KW_TO roleSpec | KW_SET KW_TABLESPACE tablespace_name_create - | KW_REPLICA KW_IDENTITY (KW_NOTHING | KW_FULL | KW_DEFAULT | existingindex) + | KW_REPLICA KW_IDENTITY (KW_NOTHING | KW_FULL | KW_DEFAULT | existingIndex) | (KW_ENABLE | KW_DISABLE | (KW_NO? KW_FORCE)) KW_ROW KW_LEVEL KW_SECURITY | KW_DROP KW_COLUMN? opt_if_exists? column_name opt_drop_behavior? | KW_ADD KW_COLUMN? opt_if_not_exists? column_def | KW_ALTER KW_COLUMN? column_name (alter_column_default | alter_generic_options) | KW_ALTER KW_COLUMN? column_name (KW_DROP | KW_SET) KW_NOT KW_NULL | KW_ALTER KW_COLUMN? column_name KW_DROP KW_EXPRESSION opt_if_exists? - | KW_ALTER KW_COLUMN? column_name KW_SET KW_STATISTICS signediconst - | (KW_ALTER KW_COLUMN? column_name)? (KW_SET | KW_RESET) reloptions - | KW_ALTER KW_COLUMN? column_name KW_SET KW_STORAGE colid + | KW_ALTER KW_COLUMN? column_name KW_SET KW_STATISTICS signedConst + | (KW_ALTER KW_COLUMN? column_name)? (KW_SET | KW_RESET) relOptions + | KW_ALTER KW_COLUMN? column_name KW_SET KW_STORAGE colId | KW_ALTER KW_COLUMN? column_name KW_ADD KW_GENERATED generated_when KW_AS KW_IDENTITY ( - OPEN_PAREN seqoptelem+ CLOSE_PAREN + OPEN_PAREN seqOptElem+ CLOSE_PAREN )? | KW_ALTER KW_COLUMN? column_name ( - KW_RESTART (KW_WITH? numericonly)? - | KW_SET (seqoptelem | KW_GENERATED generated_when) + KW_RESTART (KW_WITH? numericOnly)? + | KW_SET (seqOptElem | KW_GENERATED generated_when) )+ | KW_ALTER KW_COLUMN? column_name KW_DROP KW_IDENTITY opt_if_exists? | KW_ALTER KW_COLUMN? column_name (KW_SET KW_DATA)? KW_TYPE typename opt_collate_clause? ( @@ -513,47 +513,47 @@ opt_collate_clause : KW_COLLATE any_name ; -reloptions - : OPEN_PAREN reloption_elem (COMMA reloption_elem)* CLOSE_PAREN +relOptions + : OPEN_PAREN relOptionElem (COMMA relOptionElem)* CLOSE_PAREN ; -opt_reloptions - : KW_WITH reloptions +optRelOptions + : KW_WITH relOptions ; -reloption_elem - : collabel (EQUAL def_arg | DOT def_elem)? +relOptionElem + : colLabel (EQUAL def_arg | DOT def_elem)? ; -partitionboundspec +partitionBoundSpec : KW_FOR KW_VALUES KW_WITH OPEN_PAREN KW_MODULUS Integral COMMA KW_REMAINDER Integral CLOSE_PAREN | KW_FOR KW_VALUES KW_IN execute_param_clause | KW_FOR KW_VALUES KW_FROM execute_param_clause KW_TO execute_param_clause | KW_DEFAULT ; -altercompositetypestmt +alterCompositeTypeStmt : KW_ALTER KW_TYPE any_name alter_type_cmd (COMMA alter_type_cmd)* ; alter_type_cmd - : KW_ADD KW_ATTRIBUTE tablefuncelement opt_drop_behavior? - | KW_DROP KW_ATTRIBUTE opt_if_exists? colid opt_drop_behavior? - | KW_ALTER KW_ATTRIBUTE colid (KW_SET KW_DATA)? KW_TYPE typename opt_collate_clause? opt_drop_behavior? + : KW_ADD KW_ATTRIBUTE tableFuncElement opt_drop_behavior? + | KW_DROP KW_ATTRIBUTE opt_if_exists? colId opt_drop_behavior? + | KW_ALTER KW_ATTRIBUTE colId (KW_SET KW_DATA)? KW_TYPE typename opt_collate_clause? opt_drop_behavior? ; -closeportalstmt - : KW_CLOSE (colid | KW_ALL) +closePortalStmt + : KW_CLOSE (colId | KW_ALL) ; -copystmt +copyStmt : KW_COPY KW_BINARY? table_name opt_column_list? (KW_FROM | KW_TO) KW_PROGRAM? ( - sconst + stringConst | KW_STDIN | KW_STDOUT - ) (KW_USING? KW_DELIMITERS sconst)? KW_WITH? copyOptions where_clause? - | KW_COPY OPEN_PAREN preparablestmt CLOSE_PAREN KW_TO KW_PROGRAM? ( - sconst + ) (KW_USING? KW_DELIMITERS stringConst)? KW_WITH? copyOptions where_clause? + | KW_COPY OPEN_PAREN preParableStmt CLOSE_PAREN KW_TO KW_PROGRAM? ( + stringConst | KW_STDIN | KW_STDOUT ) KW_WITH? copyOptions @@ -563,12 +563,12 @@ copyOptionsNoparens : ( KW_BINARY | KW_FREEZE - | (KW_NULL | KW_DELIMITER | KW_ESCAPE | KW_QUOTE) KW_AS? sconst + | (KW_NULL | KW_DELIMITER | KW_ESCAPE | KW_QUOTE) KW_AS? stringConst | KW_CSV | KW_HEADER | KW_FORCE KW_QUOTE (column_list | STAR) | KW_FORCE KW_NOT? KW_NULL column_list - | KW_ENCODING sconst + | KW_ENCODING stringConst | (KW_FORCE_QUOTE | KW_FORCE_NOT_NULL | KW_FORCE_NULL) ( OPEN_PAREN (column_list | STAR) (COMMA (column_list | STAR))* CLOSE_PAREN )? @@ -583,72 +583,72 @@ copyOptions ; copy_generic_opt_elem - : collabel ( + : colLabel ( opt_boolean_or_string - | numericonly + | numericOnly | STAR | OPEN_PAREN opt_boolean_or_string_column (COMMA opt_boolean_or_string_column)* CLOSE_PAREN )? ; -createstmt - : KW_CREATE opttemp? KW_TABLE opt_if_not_exists? table_name_create ( - OPEN_PAREN tableelementlist? CLOSE_PAREN optinherit? partitionspec? table_access_method_clause? optwith? oncommitoption? opttablespace? - | KW_OF any_name opttypedtableelementlist? partitionspec? table_access_method_clause? optwith? oncommitoption? opttablespace? - | KW_PARTITION KW_OF qualified_name opttypedtableelementlist? partitionboundspec partitionspec? table_access_method_clause? optwith? - oncommitoption? opttablespace? +createStmt + : KW_CREATE optTemp? KW_TABLE opt_if_not_exists? table_name_create ( + OPEN_PAREN tableElementList? CLOSE_PAREN optInherit? partitionSpec? table_access_method_clause? optWith? onCommitOption? optTableSpace? + | KW_OF any_name optTypedTableElEmentList? partitionSpec? table_access_method_clause? optWith? onCommitOption? optTableSpace? + | KW_PARTITION KW_OF qualified_name optTypedTableElEmentList? partitionBoundSpec partitionSpec? table_access_method_clause? optWith? + onCommitOption? optTableSpace? ) # columnCreateTable ; -opttemp +optTemp : KW_TEMPORARY | KW_TEMP | (KW_LOCAL | KW_GLOBAL) (KW_TEMPORARY | KW_TEMP) | KW_UNLOGGED ; -opttypedtableelementlist - : OPEN_PAREN typedtableelement (COMMA typedtableelement)* CLOSE_PAREN +optTypedTableElEmentList + : OPEN_PAREN typedTableElement (COMMA typedTableElement)* CLOSE_PAREN ; -tableelementlist - : tableelement (COMMA tableelement)* +tableElementList + : tableElement (COMMA tableElement)* ; -tableelement - : (KW_CONSTRAINT colid)? constraintelem +tableElement + : (KW_CONSTRAINT colId)? constraintElem | column_def - | KW_LIKE qualified_name ((KW_INCLUDING | KW_EXCLUDING) tablelikeoption)* + | KW_LIKE qualified_name ((KW_INCLUDING | KW_EXCLUDING) tableLikeOption)* ; -typedtableelement - : column_name_create (KW_WITH KW_OPTIONS)? colconstraint* - | (KW_CONSTRAINT colid)? constraintelem +typedTableElement + : column_name_create (KW_WITH KW_OPTIONS)? colConstraint* + | (KW_CONSTRAINT colId)? constraintElem ; column_def : column_name_create colType=typename create_generic_options? ( - KW_STORAGE (KW_PLAIN | KW_EXTERNAL | KW_EXTENDED | KW_MAIN | KW_DEFAULT | colid) - )? (KW_COMPRESSION colid)? (opt_collate_clause)? (KW_WITH KW_OPTIONS)? colconstraint* + KW_STORAGE (KW_PLAIN | KW_EXTERNAL | KW_EXTENDED | KW_MAIN | KW_DEFAULT | colId) + )? (KW_COMPRESSION colId)? (opt_collate_clause)? (KW_WITH KW_OPTIONS)? colConstraint* ; -colconstraint - : (KW_CONSTRAINT colid)? colconstraintelem (KW_NOT? KW_DEFERRABLE)? ( +colConstraint + : (KW_CONSTRAINT colId)? colConstraintElem (KW_NOT? KW_DEFERRABLE)? ( KW_INITIALLY (KW_DEFERRED | KW_IMMEDIATE) )? ; -colconstraintelem +colConstraintElem : KW_NOT? KW_NULL - | KW_UNIQUE opt_definition? optconstablespace? + | KW_UNIQUE opt_definition? optConstableSpace? | KW_UNIQUE (KW_NULLS KW_NOT? KW_DISTINCT)? ( - (KW_INCLUDE index_params)? with_clause? optconstablespace? + (KW_INCLUDE index_params)? with_clause? optConstableSpace? ) - | KW_PRIMARY KW_KEY opt_definition? optconstablespace? + | KW_PRIMARY KW_KEY opt_definition? optConstableSpace? | KW_CHECK OPEN_PAREN expression CLOSE_PAREN (KW_NO KW_INHERIT)? | KW_DEFAULT primaryExpression | KW_GENERATED generated_when KW_AS ( - KW_IDENTITY (OPEN_PAREN seqoptelem+ CLOSE_PAREN)? + KW_IDENTITY (OPEN_PAREN seqOptElem+ CLOSE_PAREN)? | OPEN_PAREN expression CLOSE_PAREN KW_STORED ) | KW_REFERENCES qualified_name opt_column_list? key_match? key_actions? @@ -660,7 +660,7 @@ generated_when | KW_BY KW_DEFAULT ; -tablelikeoption +tableLikeOption : KW_COMMENTS | KW_CONSTRAINTS | KW_DEFAULTS @@ -672,18 +672,18 @@ tablelikeoption | KW_ALL ; -constraintelem - : KW_CHECK OPEN_PAREN expression CLOSE_PAREN constraintattributeElem* +constraintElem + : KW_CHECK OPEN_PAREN expression CLOSE_PAREN constraintAttributeElem* | (KW_UNIQUE | ( KW_PRIMARY KW_KEY)) ( - opt_column_list opt_c_include? opt_definition? optconstablespace? constraintattributeElem* - | existingindex constraintattributeElem* + opt_column_list opt_c_include? opt_definition? optConstableSpace? constraintAttributeElem* + | existingIndex constraintAttributeElem* ) - | KW_EXCLUDE table_access_method_clause? OPEN_PAREN exclusionconstraintelem ( - COMMA exclusionconstraintelem - )* CLOSE_PAREN opt_c_include? opt_definition? optconstablespace? ( + | KW_EXCLUDE table_access_method_clause? OPEN_PAREN exclusionConstraintElem ( + COMMA exclusionConstraintElem + )* CLOSE_PAREN opt_c_include? opt_definition? optConstableSpace? ( KW_WHERE OPEN_PAREN expression CLOSE_PAREN - )? constraintattributeElem* - | KW_FOREIGN KW_KEY opt_column_list KW_REFERENCES qualified_name opt_column_list? key_match? key_actions? constraintattributeElem* + )? constraintAttributeElem* + | KW_FOREIGN KW_KEY opt_column_list KW_REFERENCES qualified_name opt_column_list? key_match? key_actions? constraintAttributeElem* ; opt_column_list @@ -706,7 +706,7 @@ key_match : KW_MATCH (KW_FULL | KW_PARTIAL | KW_SIMPLE) ; -exclusionconstraintelem +exclusionConstraintElem : index_elem KW_WITH (any_operator | KW_OPERATOR OPEN_PAREN any_operator CLOSE_PAREN) ; @@ -730,12 +730,12 @@ key_action | KW_SET (KW_NULL | KW_DEFAULT) column_list? ; -optinherit +optInherit : KW_INHERITS OPEN_PAREN qualified_name_list CLOSE_PAREN ; -partitionspec - : KW_PARTITION KW_BY colid OPEN_PAREN part_elem (COMMA part_elem)* CLOSE_PAREN +partitionSpec + : KW_PARTITION KW_BY colId OPEN_PAREN part_elem (COMMA part_elem)* CLOSE_PAREN ; part_elem @@ -743,127 +743,127 @@ part_elem ; table_access_method_clause - : KW_USING colid + : KW_USING colId ; -optwith - : KW_WITH reloptions +optWith + : KW_WITH relOptions | (KW_WITHOUT | KW_WITH) KW_OIDS ; -oncommitoption +onCommitOption : KW_ON KW_COMMIT (KW_DROP | KW_DELETE KW_ROWS | KW_PRESERVE KW_ROWS) ; -opttablespace +optTableSpace : KW_TABLESPACE tablespace_name ; -optconstablespace - : KW_USING KW_INDEX opttablespace +optConstableSpace + : KW_USING KW_INDEX optTableSpace ; -existingindex - : KW_USING KW_INDEX colid +existingIndex + : KW_USING KW_INDEX colId ; -createstatsstmt +createStatsStmt : KW_CREATE KW_STATISTICS (opt_if_not_exists? any_name)? opt_column_list? KW_ON ( column_expr (COMMA column_expr)* | expr_list ) from_clause ; -alterstatsstmt - : KW_ALTER KW_STATISTICS opt_if_exists? any_name KW_SET KW_STATISTICS signediconst +alterStatsStmt + : KW_ALTER KW_STATISTICS opt_if_exists? any_name KW_SET KW_STATISTICS signedConst ; -createasstmt - : KW_CREATE opttemp? KW_TABLE opt_if_not_exists? create_as_target KW_AS selectstmt opt_with_data? # queryCreateTable +createAsStmt + : KW_CREATE optTemp? KW_TABLE opt_if_not_exists? create_as_target KW_AS selectStmt opt_with_data? # queryCreateTable ; create_as_target - : table_name_create opt_column_list_create? table_access_method_clause? optwith? oncommitoption? opttablespace? + : table_name_create opt_column_list_create? table_access_method_clause? optWith? onCommitOption? optTableSpace? ; opt_with_data : KW_WITH (KW_DATA | KW_NO KW_DATA) ; -creatematviewstmt +createMaterializedViewStmt : KW_CREATE KW_UNLOGGED? KW_MATERIALIZED KW_VIEW opt_if_not_exists? view_name_create opt_column_list_create? table_access_method_clause? - opt_reloptions? opttablespace? KW_AS selectstmt opt_with_data? # createMaterializedView + optRelOptions? optTableSpace? KW_AS selectStmt opt_with_data? # createMaterializedView ; -refreshmatviewstmt +refreshMaterializedViewStmt : KW_REFRESH KW_MATERIALIZED KW_VIEW KW_CONCURRENTLY? view_name opt_with_data? ; -createseqstmt - : KW_CREATE opttemp? KW_SEQUENCE opt_if_not_exists? qualified_name (seqoptelem+)? +createSeqStmt + : KW_CREATE optTemp? KW_SEQUENCE opt_if_not_exists? qualified_name (seqOptElem+)? ; -alterseqstmt - : KW_ALTER KW_SEQUENCE opt_if_exists? qualified_name seqoptelem+ +alterSeqStmt + : KW_ALTER KW_SEQUENCE opt_if_exists? qualified_name seqOptElem+ ; -seqoptelem - : KW_AS simpletypename - | KW_CACHE numericonly? - | KW_INCREMENT KW_BY? numericonly - | (KW_MAXVALUE | KW_MINVALUE) numericonly +seqOptElem + : KW_AS simpleTypeName + | KW_CACHE numericOnly? + | KW_INCREMENT KW_BY? numericOnly + | (KW_MAXVALUE | KW_MINVALUE) numericOnly | KW_NO (KW_MAXVALUE | KW_MINVALUE | KW_CYCLE) | KW_OWNED KW_BY column_name | KW_SEQUENCE KW_NAME any_name - | KW_START KW_WITH? numericonly - | KW_RESTART KW_WITH? numericonly? + | KW_START KW_WITH? numericOnly + | KW_RESTART KW_WITH? numericOnly? ; -numericonly +numericOnly : (PLUS | MINUS)? Numeric - | signediconst + | signedConst ; -createplangstmt - : KW_CREATE opt_or_replace? KW_TRUSTED? KW_PROCEDURAL? KW_LANGUAGE colid ( +createProceduralLangStmt + : KW_CREATE opt_or_replace? KW_TRUSTED? KW_PROCEDURAL? KW_LANGUAGE colId ( KW_HANDLER any_name (KW_INLINE any_name)? (KW_VALIDATOR any_name | KW_NO KW_VALIDATOR)? )? ; -createtablespacestmt - : KW_CREATE opttablespace (KW_OWNER rolespec)? KW_LOCATION sconst opt_reloptions? +createTableSpaceStmt + : KW_CREATE optTableSpace (KW_OWNER roleSpec)? KW_LOCATION stringConst optRelOptions? ; -createextensionstmt - : KW_CREATE KW_EXTENSION opt_if_not_exists? colid KW_WITH? ( +createExtensionStmt + : KW_CREATE KW_EXTENSION opt_if_not_exists? colId KW_WITH? ( KW_SCHEMA schema_name - | (KW_VERSION | KW_FROM) nonreservedword_or_sconst + | (KW_VERSION | KW_FROM) nonReservedWordOrStringConst | KW_CASCADE )* ; -alterextensionstmt - : KW_ALTER KW_EXTENSION colid KW_UPDATE (KW_TO nonreservedword_or_sconst)* +alterExtensionStmt + : KW_ALTER KW_EXTENSION colId KW_UPDATE (KW_TO nonReservedWordOrStringConst)* ; -alterextensioncontentsstmt - : KW_ALTER KW_EXTENSION colid (KW_ADD | KW_DROP) ( - KW_TRANSFORM KW_FOR typename KW_LANGUAGE colid - | KW_ROUTINE routine_with_argtypes - | KW_PROCEDURE procedure_with_argtypes +alterExtensionContentsStmt + : KW_ALTER KW_EXTENSION colId (KW_ADD | KW_DROP) ( + KW_TRANSFORM KW_FOR typename KW_LANGUAGE colId + | KW_ROUTINE routineWithArgTypes + | KW_PROCEDURE procedureWithArgTypes | KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause - | KW_OPERATOR operator_with_argtypes - | KW_FUNCTION function_with_argtypes + | KW_OPERATOR operatorWithArgTypes + | KW_FUNCTION functionWithArgTypes | (KW_DOMAIN | KW_TYPE) typename | KW_CAST OPEN_PAREN typename KW_AS typename CLOSE_PAREN - | KW_AGGREGATE aggregate_with_argtypes + | KW_AGGREGATE aggregateWithArgTypes | object_type_name | object_type_any_name ) ; -createfdwstmt - : KW_CREATE KW_FOREIGN KW_DATA KW_WRAPPER colid (fdw_option+)? create_generic_options? +createFdwStmt + : KW_CREATE KW_FOREIGN KW_DATA KW_WRAPPER colId (fdw_option+)? create_generic_options? ; fdw_option @@ -871,8 +871,8 @@ fdw_option | KW_NO (KW_HANDLER | KW_VALIDATOR) ; -alterfdwstmt - : KW_ALTER KW_FOREIGN KW_DATA KW_WRAPPER colid ( +alterFdwStmt + : KW_ALTER KW_FOREIGN KW_DATA KW_WRAPPER colId ( (fdw_option+)? alter_generic_options | fdw_option+ ) @@ -891,113 +891,113 @@ alter_generic_option_elem ; generic_option_elem - : collabel sconst + : colLabel stringConst ; -createforeignserverstmt - : KW_CREATE KW_SERVER opt_if_not_exists? colid (KW_TYPE sconst)? foreign_server_version? KW_FOREIGN KW_DATA KW_WRAPPER colid +createForeignServerStmt + : KW_CREATE KW_SERVER opt_if_not_exists? colId (KW_TYPE stringConst)? foreign_server_version? KW_FOREIGN KW_DATA KW_WRAPPER colId create_generic_options? ; foreign_server_version - : KW_VERSION (sconst | KW_NULL) + : KW_VERSION (stringConst | KW_NULL) ; -alterforeignserverstmt - : KW_ALTER KW_SERVER colid ( +alterForeignServerStmt + : KW_ALTER KW_SERVER colId ( alter_generic_options | foreign_server_version alter_generic_options? ) ; -createforeigntablestmt - : KW_CREATE KW_FOREIGN KW_TABLE opt_if_not_exists? table_name_create OPEN_PAREN tableelementlist? CLOSE_PAREN optinherit? KW_SERVER colid +createForeignTableStmt + : KW_CREATE KW_FOREIGN KW_TABLE opt_if_not_exists? table_name_create OPEN_PAREN tableElementList? CLOSE_PAREN optInherit? KW_SERVER colId create_generic_options? # createForeignTable - | KW_CREATE KW_FOREIGN KW_TABLE opt_if_not_exists? table_name_create KW_PARTITION KW_OF table_name opttypedtableelementlist? partitionboundspec - KW_SERVER colid create_generic_options? # createPartitionForeignTable + | KW_CREATE KW_FOREIGN KW_TABLE opt_if_not_exists? table_name_create KW_PARTITION KW_OF table_name optTypedTableElEmentList? partitionBoundSpec + KW_SERVER colId create_generic_options? # createPartitionForeignTable ; -importforeignschemastmt +importForeignSchemaStmt : KW_IMPORT KW_FOREIGN KW_SCHEMA schema_name ( (KW_LIMIT KW_TO | KW_EXCEPT) OPEN_PAREN relation_expr_list CLOSE_PAREN - )? KW_FROM KW_SERVER colid KW_INTO colid create_generic_options? + )? KW_FROM KW_SERVER colId KW_INTO colId create_generic_options? ; -createusermappingstmt - : KW_CREATE KW_USER KW_MAPPING opt_if_not_exists? KW_FOR (rolespec | KW_USER) KW_SERVER colid create_generic_options? +createUserMappingStmt + : KW_CREATE KW_USER KW_MAPPING opt_if_not_exists? KW_FOR (roleSpec | KW_USER) KW_SERVER colId create_generic_options? ; -alterusermappingstmt - : KW_ALTER KW_USER KW_MAPPING KW_FOR (rolespec | KW_USER) KW_SERVER colid alter_generic_options +alterUserMappingStmt + : KW_ALTER KW_USER KW_MAPPING KW_FOR (roleSpec | KW_USER) KW_SERVER colId alter_generic_options ; -createpolicystmt - : KW_CREATE KW_POLICY colid KW_ON qualified_name ( +createPolicyStmt + : KW_CREATE KW_POLICY colId KW_ON qualified_name ( KW_AS (KW_PERMISSIVE | KW_RESTRICTIVE | identifier) - )? (KW_FOR (KW_ALL | KW_SELECT | KW_INSERT | KW_UPDATE | KW_DELETE))? (KW_TO role_list)? rowsecurityoptionalexpr? rowsecurityoptionalwithcheck? + )? (KW_FOR (KW_ALL | KW_SELECT | KW_INSERT | KW_UPDATE | KW_DELETE))? (KW_TO role_list)? rowSecurityOptionalExpr? rowSecurityOptionalWithCheck? ; -alterpolicystmt - : KW_ALTER KW_POLICY colid KW_ON qualified_name (KW_TO role_list)? rowsecurityoptionalexpr? rowsecurityoptionalwithcheck? +alterPolicyStmt + : KW_ALTER KW_POLICY colId KW_ON qualified_name (KW_TO role_list)? rowSecurityOptionalExpr? rowSecurityOptionalWithCheck? ; -alterprocedurestmt +alterProcedureStmt : KW_ALTER KW_PROCEDURE procedure_name func_args? ( procedure_action (procedure_action)* KW_RESTRICT? | KW_RENAME KW_TO procedure_name_create - | KW_OWNER KW_TO rolespec + | KW_OWNER KW_TO roleSpec | KW_SET KW_SCHEMA schema_name_create - | KW_NO? KW_DEPENDS KW_ON KW_EXTENSION colid + | KW_NO? KW_DEPENDS KW_ON KW_EXTENSION colId ) ; procedure_action : (KW_EXTERNAL? KW_SECURITY KW_INVOKER | KW_EXTERNAL? KW_SECURITY KW_DEFINER) - | KW_SET colid (KW_TO | STAR) (colid | KW_DEFAULT) - | KW_SET colid KW_FROM KW_CURRENT - | KW_RESET (colid | KW_ALL) + | KW_SET colId (KW_TO | STAR) (colId | KW_DEFAULT) + | KW_SET colId KW_FROM KW_CURRENT + | KW_RESET (colId | KW_ALL) ; -rowsecurityoptionalexpr +rowSecurityOptionalExpr : KW_USING OPEN_PAREN expression CLOSE_PAREN ; -rowsecurityoptionalwithcheck +rowSecurityOptionalWithCheck : KW_WITH KW_CHECK OPEN_PAREN expression CLOSE_PAREN ; -createamstmt - : KW_CREATE KW_ACCESS KW_METHOD colid KW_TYPE (KW_INDEX | KW_TABLE) KW_HANDLER any_name +createAccessMethodStmt + : KW_CREATE KW_ACCESS KW_METHOD colId KW_TYPE (KW_INDEX | KW_TABLE) KW_HANDLER any_name ; -createtrigstmt - : KW_CREATE opt_or_replace? KW_TRIGGER colid triggeractiontime triggerevents KW_ON table_name ( - KW_REFERENCING ((KW_NEW | KW_OLD) (KW_TABLE | KW_ROW) KW_AS? colid)+ - )? (KW_FOR KW_EACH? (KW_ROW | KW_STATEMENT))? triggerwhen? KW_EXECUTE function_or_procedure OPEN_PAREN triggerfuncargs CLOSE_PAREN - | KW_CREATE opt_or_replace? KW_CONSTRAINT? KW_TRIGGER colid triggeractiontime triggerevents KW_ON table_name ( +createTrigStmt + : KW_CREATE opt_or_replace? KW_TRIGGER colId triggerActionTime triggerEvents KW_ON table_name ( + KW_REFERENCING ((KW_NEW | KW_OLD) (KW_TABLE | KW_ROW) KW_AS? colId)+ + )? (KW_FOR KW_EACH? (KW_ROW | KW_STATEMENT))? triggerWhen? KW_EXECUTE function_or_procedure OPEN_PAREN triggerFuncArgs CLOSE_PAREN + | KW_CREATE opt_or_replace? KW_CONSTRAINT? KW_TRIGGER colId triggerActionTime triggerEvents KW_ON table_name ( KW_FROM qualified_name - )? constraintattributeElem* (KW_FOR KW_EACH? (KW_ROW | KW_STATEMENT))? triggerwhen? KW_EXECUTE function_or_procedure OPEN_PAREN triggerfuncargs + )? constraintAttributeElem* (KW_FOR KW_EACH? (KW_ROW | KW_STATEMENT))? triggerWhen? KW_EXECUTE function_or_procedure OPEN_PAREN triggerFuncArgs CLOSE_PAREN ; -triggeractiontime +triggerActionTime : KW_BEFORE | KW_AFTER | KW_INSTEAD KW_OF ; -triggerevents - : triggeroneevent (KW_OR triggeroneevent)* +triggerEvents + : triggerOneEvent (KW_OR triggerOneEvent)* ; -triggeroneevent +triggerOneEvent : KW_INSERT | KW_DELETE | KW_UPDATE (KW_OF column_list)? | KW_TRUNCATE ; -triggerwhen +triggerWhen : KW_WHEN OPEN_PAREN expression CLOSE_PAREN ; @@ -1006,51 +1006,51 @@ function_or_procedure | KW_PROCEDURE procedure_name ; -triggerfuncargs - : (triggerfuncarg |) (COMMA triggerfuncarg)* +triggerFuncArgs + : (triggerFuncArg |) (COMMA triggerFuncArg)* ; -triggerfuncarg +triggerFuncArg : Integral | Numeric - | sconst - | collabel + | stringConst + | colLabel ; -constraintattributeElem +constraintAttributeElem : KW_NOT? KW_DEFERRABLE | KW_INITIALLY (KW_IMMEDIATE | KW_DEFERRED) | KW_NOT KW_VALID | KW_NO KW_INHERIT ; -createeventtrigstmt - : KW_CREATE KW_EVENT KW_TRIGGER colid KW_ON collabel ( +createEventTrigStmt + : KW_CREATE KW_EVENT KW_TRIGGER colId KW_ON colLabel ( KW_WHEN event_trigger_when_item (KW_AND event_trigger_when_item)* )? KW_EXECUTE function_or_procedure OPEN_PAREN CLOSE_PAREN ; event_trigger_when_item - : colid KW_IN OPEN_PAREN sconst (notify_payload)* CLOSE_PAREN + : colId KW_IN OPEN_PAREN stringConst (notify_payload)* CLOSE_PAREN ; -altereventtrigstmt - : KW_ALTER KW_EVENT KW_TRIGGER colid (KW_ENABLE (KW_REPLICA | KW_ALWAYS)? | KW_DISABLE) +alterEventTrigStmt + : KW_ALTER KW_EVENT KW_TRIGGER colId (KW_ENABLE (KW_REPLICA | KW_ALWAYS)? | KW_DISABLE) ; -createassertionstmt - : KW_CREATE KW_ASSERTION any_name KW_CHECK OPEN_PAREN expression CLOSE_PAREN constraintattributeElem* +createAssertionStmt + : KW_CREATE KW_ASSERTION any_name KW_CHECK OPEN_PAREN expression CLOSE_PAREN constraintAttributeElem* ; -definestmt +defineStmt : KW_CREATE opt_or_replace? KW_AGGREGATE function_name ( - (aggr_args definition) - | OPEN_PAREN old_aggr_elem (COMMA old_aggr_elem)* CLOSE_PAREN + (aggregate_args definition) + | OPEN_PAREN old_aggregate_elem (COMMA old_aggregate_elem)* CLOSE_PAREN ) | KW_CREATE KW_OPERATOR any_operator definition | KW_CREATE KW_TYPE any_name KW_AS ( - OPEN_PAREN tablefuncelementlist? CLOSE_PAREN - | KW_ENUM OPEN_PAREN (sconst (notify_payload)*)? CLOSE_PAREN + OPEN_PAREN tableFuncElementList? CLOSE_PAREN + | KW_ENUM OPEN_PAREN (stringConst (notify_payload)*)? CLOSE_PAREN ) | KW_CREATE KW_TYPE any_name ((KW_AS KW_RANGE)? definition)? | KW_CREATE KW_TEXT KW_SEARCH (KW_PARSER | KW_DICTIONARY | KW_TEMPLATE | KW_CONFIGURATION) any_name definition @@ -1062,67 +1062,67 @@ definition ; def_elem - : collabel (EQUAL def_arg)? + : colLabel (EQUAL def_arg)? ; def_arg : func_type | reserved_keyword | qual_all_op - | numericonly - | sconst + | numericOnly + | stringConst | KW_NONE ; -old_aggr_elem +old_aggregate_elem : identifier EQUAL def_arg ; -alterenumstmt - : KW_ALTER KW_TYPE any_name KW_ADD KW_VALUE opt_if_not_exists? sconst ( - (KW_BEFORE | KW_AFTER) sconst +alterEnumStmt + : KW_ALTER KW_TYPE any_name KW_ADD KW_VALUE opt_if_not_exists? stringConst ( + (KW_BEFORE | KW_AFTER) stringConst )? - | KW_ALTER KW_TYPE any_name KW_RENAME KW_VALUE sconst KW_TO sconst + | KW_ALTER KW_TYPE any_name KW_RENAME KW_VALUE stringConst KW_TO stringConst ; opt_if_not_exists : KW_IF KW_NOT KW_EXISTS ; -createopclassstmt +createOperatorClassStmt : KW_CREATE KW_OPERATOR KW_CLASS any_name KW_DEFAULT? KW_FOR KW_TYPE typename table_access_method_clause ( KW_FAMILY any_name - )? KW_AS opclass_item (COMMA opclass_item)* + )? KW_AS opClassItem (COMMA opClassItem)* ; -opclass_item - : KW_OPERATOR Integral any_operator oper_argtypes? ( +opClassItem + : KW_OPERATOR Integral any_operator operatorArgTypes? ( KW_FOR (KW_SEARCH | (KW_ORDER KW_BY any_name)) )? KW_RECHECK? - | KW_FUNCTION Integral prep_type_clause? function_with_argtypes + | KW_FUNCTION Integral prep_type_clause? functionWithArgTypes | KW_STORAGE typename ; -createopfamilystmt +createOperatorFamilyStmt : KW_CREATE KW_OPERATOR KW_FAMILY any_name table_access_method_clause ; -alteropfamilystmt +alterOperatorFamilyStmt : KW_ALTER KW_OPERATOR KW_FAMILY any_name table_access_method_clause ( - KW_ADD opclass_item (COMMA opclass_item)* - | KW_DROP opclass_drop (COMMA opclass_drop)* + KW_ADD opClassItem (COMMA opClassItem)* + | KW_DROP opClassDrop (COMMA opClassDrop)* ) ; -opclass_drop +opClassDrop : (KW_OPERATOR | KW_FUNCTION) Integral prep_type_clause ; -reassignownedstmt - : KW_REASSIGN KW_OWNED KW_BY role_list KW_TO rolespec +reassignOwnedStmt + : KW_REASSIGN KW_OWNED KW_BY role_list KW_TO roleSpec ; -dropstmt +dropStmt : KW_DROP ( KW_SEQUENCE | KW_INDEX @@ -1141,17 +1141,17 @@ dropstmt | KW_DROP KW_MATERIALIZED? KW_VIEW opt_if_exists? view_name (COMMA view_name)* opt_drop_behavior? | KW_DROP KW_FOREIGN? KW_TABLE opt_if_exists? table_name_list opt_drop_behavior? | KW_DROP KW_SCHEMA opt_if_exists? schema_name_list opt_drop_behavior? - | KW_DROP (KW_POLICY | KW_RULE | KW_TRIGGER) opt_if_exists? colid KW_ON any_name opt_drop_behavior? + | KW_DROP (KW_POLICY | KW_RULE | KW_TRIGGER) opt_if_exists? colId KW_ON any_name opt_drop_behavior? | KW_DROP (KW_TYPE | KW_DOMAIN) opt_if_exists? typename (COMMA typename)* opt_drop_behavior? | KW_DROP KW_INDEX KW_CONCURRENTLY opt_if_exists? any_name_list opt_drop_behavior? | KW_DROP KW_CAST opt_if_exists? OPEN_PAREN typename KW_AS typename CLOSE_PAREN opt_drop_behavior? | KW_DROP KW_OPERATOR (KW_CLASS | KW_FAMILY) opt_if_exists? any_name table_access_method_clause opt_drop_behavior? | KW_DROP KW_OWNED KW_BY role_list opt_drop_behavior? - | KW_DROP KW_SUBSCRIPTION opt_if_exists? colid opt_drop_behavior? + | KW_DROP KW_SUBSCRIPTION opt_if_exists? colId opt_drop_behavior? | KW_DROP KW_TABLESPACE opt_if_exists? tablespace_name - | KW_DROP KW_TRANSFORM opt_if_exists? KW_FOR typename KW_LANGUAGE colid opt_drop_behavior? + | KW_DROP KW_TRANSFORM opt_if_exists? KW_FOR typename KW_LANGUAGE colId opt_drop_behavior? | KW_DROP (KW_ROLE | KW_USER | KW_GROUP) opt_if_exists? role_list - | KW_DROP KW_USER KW_MAPPING opt_if_exists? KW_FOR (rolespec | KW_USER) KW_SERVER colid + | KW_DROP KW_USER KW_MAPPING opt_if_exists? KW_FOR (roleSpec | KW_USER) KW_SERVER colId | KW_DROP KW_DATABASE opt_if_exists? database_name ( KW_WITH? (OPEN_PAREN KW_FORCE (COMMA KW_FORCE)* CLOSE_PAREN) )? @@ -1175,10 +1175,10 @@ object_type_name | KW_SUBSCRIPTION | KW_FOREIGN KW_DATA KW_WRAPPER | KW_PROCEDURAL? KW_LANGUAGE - ) colid + ) colId | KW_SCHEMA schema_name | KW_DATABASE database_name - | opttablespace + | optTableSpace ; any_name_list @@ -1186,14 +1186,14 @@ any_name_list ; any_name - : colid attrs? + : colId attrs? ; attrs - : (DOT collabel)+ + : (DOT colLabel)+ ; -truncatestmt +truncateStmt : KW_TRUNCATE KW_TABLE? truncate_table (COMMA truncate_table)* ( (KW_CONTINUE | KW_RESTART) KW_IDENTITY )? opt_drop_behavior? @@ -1203,50 +1203,50 @@ truncate_table : KW_ONLY? table_name STAR? ; -commentstmt +commentStmt : KW_COMMENT KW_ON ( object_type_any_name | object_type_name - | KW_COLUMN (colid attrs?) DOT column_name + | KW_COLUMN (colId attrs?) DOT column_name | (KW_TYPE | KW_DOMAIN) typename - | KW_AGGREGATE aggregate_with_argtypes - | KW_FUNCTION function_with_argtypes - | KW_OPERATOR operator_with_argtypes - | KW_CONSTRAINT colid KW_ON (table_name | (KW_DOMAIN? any_name)) - | (KW_POLICY | KW_RULE | KW_TRIGGER) colid KW_ON any_name - | KW_PROCEDURE procedure_with_argtypes - | KW_ROUTINE routine_with_argtypes - | KW_TRANSFORM KW_FOR typename KW_LANGUAGE colid + | KW_AGGREGATE aggregateWithArgTypes + | KW_FUNCTION functionWithArgTypes + | KW_OPERATOR operatorWithArgTypes + | KW_CONSTRAINT colId KW_ON (table_name | (KW_DOMAIN? any_name)) + | (KW_POLICY | KW_RULE | KW_TRIGGER) colId KW_ON any_name + | KW_PROCEDURE procedureWithArgTypes + | KW_ROUTINE routineWithArgTypes + | KW_TRANSFORM KW_FOR typename KW_LANGUAGE colId | KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause - | KW_LARGE KW_OBJECT numericonly + | KW_LARGE KW_OBJECT numericOnly | KW_CAST OPEN_PAREN typename KW_AS typename CLOSE_PAREN - ) KW_IS (sconst | KW_NULL) + ) KW_IS (stringConst | KW_NULL) ; -seclabelstmt - : KW_SECURITY KW_LABEL (KW_FOR nonreservedword_or_sconst)? KW_ON ( +secLabelStmt + : KW_SECURITY KW_LABEL (KW_FOR nonReservedWordOrStringConst)? KW_ON ( (KW_TYPE | KW_DOMAIN) typename - | KW_AGGREGATE aggregate_with_argtypes + | KW_AGGREGATE aggregateWithArgTypes | KW_COLUMN column_name - | KW_FUNCTION function_with_argtypes - | KW_LARGE KW_OBJECT numericonly - | KW_PROCEDURE procedure_with_argtypes - | KW_ROUTINE routine_with_argtypes + | KW_FUNCTION functionWithArgTypes + | KW_LARGE KW_OBJECT numericOnly + | KW_PROCEDURE procedureWithArgTypes + | KW_ROUTINE routineWithArgTypes | object_type_any_name | object_type_name - ) KW_IS (sconst | KW_NULL) + ) KW_IS (stringConst | KW_NULL) ; -fetchstmt +fetchStmt : (KW_FETCH | KW_MOVE) fetch_args ; fetch_args - : (KW_NEXT | KW_PRIOR | KW_FIRST | KW_LAST)? from_in? colid - | (KW_ABSOLUTE | KW_RELATIVE)? signediconst from_in? colid - | KW_FORWARD signediconst? from_in? colid - | KW_FORWARD? KW_ALL from_in? colid - | KW_BACKWARD (KW_ALL? | signediconst) from_in? colid + : (KW_NEXT | KW_PRIOR | KW_FIRST | KW_LAST)? from_in? colId + | (KW_ABSOLUTE | KW_RELATIVE)? signedConst from_in? colId + | KW_FORWARD signedConst? from_in? colId + | KW_FORWARD? KW_ALL from_in? colId + | KW_BACKWARD (KW_ALL? | signedConst) from_in? colId ; from_in @@ -1254,21 +1254,21 @@ from_in | KW_IN ; -grantstmt +grantStmt : KW_GRANT privileges KW_ON privilege_target KW_TO grantee_list (KW_WITH KW_GRANT KW_OPTION)? ; -revokestmt +revokeStmt : KW_REVOKE (KW_GRANT KW_OPTION KW_FOR)? privileges KW_ON privilege_target KW_FROM grantee_list opt_drop_behavior? ; privileges : privilege (COMMA privilege)* | KW_ALL KW_PRIVILEGES? (opt_column_list)? - | beforeprivilegeselect (COMMA beforeprivilegeselect)* + | beforePrivilegeSelect (COMMA beforePrivilegeSelect)* ; -beforeprivilegeselect +beforePrivilegeSelect : KW_SELECT | KW_INSERT | KW_UPDATE @@ -1285,41 +1285,41 @@ beforeprivilegeselect ; privilege - : (KW_SELECT | KW_REFERENCES | KW_CREATE | colid) opt_column_list? + : (KW_SELECT | KW_REFERENCES | KW_CREATE | colId) opt_column_list? ; privilege_target : KW_TABLE table_name_list | KW_SEQUENCE? qualified_name_list | (KW_FOREIGN (KW_DATA KW_WRAPPER | KW_SERVER) | KW_LANGUAGE) name_list - | KW_FUNCTION function_with_argtypes_list - | KW_PROCEDURE procedure_with_argtypes_list - | KW_ROUTINE routine_with_argtypes_list + | KW_FUNCTION functionWithArgTypesList + | KW_PROCEDURE procedureWithArgTypesList + | KW_ROUTINE routineWithArgTypesList | KW_DATABASE database_nameList | (KW_DOMAIN | KW_TYPE) any_name_list - | KW_LARGE KW_OBJECT numericonly (COMMA numericonly)* + | KW_LARGE KW_OBJECT numericOnly (COMMA numericOnly)* | KW_SCHEMA schema_name_list | KW_TABLESPACE tablespace_name_list | KW_ALL (KW_TABLES | KW_SEQUENCES | KW_FUNCTIONS | KW_PROCEDURES | KW_ROUTINES) KW_IN KW_SCHEMA schema_name_list ; grantee_list - : (KW_GROUP? rolespec) (COMMA (KW_GROUP? rolespec))* + : (KW_GROUP? roleSpec) (COMMA (KW_GROUP? roleSpec))* ; -grantrolestmt +grantRoleStmt : KW_GRANT privilege (COMMA privilege)* KW_TO role_list (KW_WITH KW_ADMIN KW_OPTION)? ( - KW_GRANTED KW_BY rolespec + KW_GRANTED KW_BY roleSpec )? ; -revokerolestmt +revokeRoleStmt : KW_REVOKE (KW_ADMIN KW_OPTION KW_FOR)? privilege (COMMA privilege)* KW_FROM role_list ( - KW_GRANTED KW_BY rolespec + KW_GRANTED KW_BY roleSpec )? opt_drop_behavior? ; -alterdefaultprivilegesstmt +alterDefaultPrivilegesStmt : KW_ALTER KW_DEFAULT KW_PRIVILEGES ( KW_IN KW_SCHEMA schema_name_list | KW_FOR (KW_ROLE | KW_USER) role_list @@ -1344,10 +1344,10 @@ defacl_privilege_target //create index -indexstmt - : KW_CREATE KW_UNIQUE? KW_INDEX KW_CONCURRENTLY? opt_if_not_exists? colid? KW_ON relation_expr table_access_method_clause? index_params ( +indexStmt + : KW_CREATE KW_UNIQUE? KW_INDEX KW_CONCURRENTLY? opt_if_not_exists? colId? KW_ON relation_expr table_access_method_clause? index_params ( KW_INCLUDE index_params - )? (KW_NULLS KW_NOT? KW_DISTINCT)? opt_reloptions? opttablespace? where_clause? + )? (KW_NULLS KW_NOT? KW_DISTINCT)? optRelOptions? optTableSpace? where_clause? ; index_params @@ -1357,11 +1357,11 @@ index_params index_elem : (column_name | func_expr_windowless | OPEN_PAREN expression CLOSE_PAREN) opt_collate_clause? ( any_name? - | any_name reloptions + | any_name relOptions ) (KW_ASC | KW_DESC)? (KW_NULLS (KW_FIRST | KW_LAST))? ; -createfunctionstmt +createFunctionStmt : KW_CREATE opt_or_replace? ( KW_FUNCTION function_name_create | KW_PROCEDURE procedure_name_create @@ -1370,7 +1370,7 @@ createfunctionstmt func_type | KW_TABLE (OPEN_PAREN table_func_column (COMMA table_func_column)* CLOSE_PAREN) ) - )? createfunc_opt_item+ (KW_WITH OPEN_PAREN name_list CLOSE_PAREN)? + )? create_func_opt_item+ (KW_WITH OPEN_PAREN name_list CLOSE_PAREN)? ; opt_or_replace @@ -1385,31 +1385,31 @@ func_args_list : func_arg (COMMA func_arg)* ; -routine_with_argtypes_list - : routine_with_argtypes (COMMA routine_with_argtypes)* +routineWithArgTypesList + : routineWithArgTypes (COMMA routineWithArgTypes)* ; -routine_with_argtypes +routineWithArgTypes : routine_name func_args | type_func_name_keyword | qualified_name ; -procedure_with_argtypes_list - : procedure_with_argtypes (COMMA procedure_with_argtypes)* +procedureWithArgTypesList + : procedureWithArgTypes (COMMA procedureWithArgTypes)* ; -procedure_with_argtypes +procedureWithArgTypes : procedure_name func_args | type_func_name_keyword | qualified_name ; -function_with_argtypes_list - : function_with_argtypes (COMMA function_with_argtypes)* +functionWithArgTypesList + : functionWithArgTypes (COMMA functionWithArgTypes)* ; -function_with_argtypes +functionWithArgTypes : function_name func_args | type_func_name_keyword | qualified_name @@ -1435,12 +1435,12 @@ func_arg_with_default : func_arg ((KW_DEFAULT | EQUAL) expression)? ; -aggr_args +aggregate_args : OPEN_PAREN (STAR | func_args_list? (KW_ORDER KW_BY func_args_list)?) CLOSE_PAREN ; -aggregate_with_argtypes - : function_name aggr_args +aggregateWithArgTypes + : function_name aggregate_args ; common_func_opt_item @@ -1452,23 +1452,23 @@ common_func_opt_item | KW_EXTERNAL? KW_SECURITY (KW_DEFINER | KW_INVOKER) | KW_LEAKPROOF | KW_NOT KW_LEAKPROOF - | (KW_COST | KW_ROWS) numericonly + | (KW_COST | KW_ROWS) numericOnly | KW_SUPPORT any_name | KW_SET set_rest_more - | variableresetstmt - | KW_PARALLEL colid + | variableResetStmt + | KW_PARALLEL colId ; -createfunc_opt_item - : KW_AS sconst notify_payload - | KW_LANGUAGE nonreservedword_or_sconst +create_func_opt_item + : KW_AS stringConst notify_payload + | KW_LANGUAGE nonReservedWordOrStringConst | KW_TRANSFORM KW_FOR KW_TYPE typename (COMMA KW_FOR KW_TYPE typename)* | KW_WINDOW - | KW_SET colid (KW_TO colid | EQUAL colid | KW_FROM KW_CURRENT) - | KW_AS colid + | KW_SET colId (KW_TO colId | EQUAL colId | KW_FROM KW_CURRENT) + | KW_AS colId | stmt | common_func_opt_item - | colid + | colId ; //https://www.postgresql.org/docs/9.1/sql-createfunction.html @@ -1485,53 +1485,51 @@ table_func_column : column_name func_type ; -alterfunctionstmt +alterFunctionStmt : KW_ALTER ( - KW_FUNCTION function_with_argtypes - | KW_PROCEDURE procedure_with_argtypes - | KW_ROUTINE routine_with_argtypes + KW_FUNCTION functionWithArgTypes + | KW_PROCEDURE procedureWithArgTypes + | KW_ROUTINE routineWithArgTypes ) common_func_opt_item+ KW_RESTRICT? ; -removefuncstmt +removeFuncStmt : KW_DROP ( - KW_FUNCTION opt_if_exists? function_with_argtypes_list - | KW_PROCEDURE opt_if_exists? procedure_with_argtypes_list - | KW_ROUTINE opt_if_exists? routine_with_argtypes_list + KW_FUNCTION opt_if_exists? functionWithArgTypesList + | KW_PROCEDURE opt_if_exists? procedureWithArgTypesList + | KW_ROUTINE opt_if_exists? routineWithArgTypesList ) opt_drop_behavior? ; -removeaggrstmt - : KW_DROP KW_AGGREGATE opt_if_exists? ( - aggregate_with_argtypes (COMMA aggregate_with_argtypes)* - ) opt_drop_behavior? +removeAggregateStmt + : KW_DROP KW_AGGREGATE opt_if_exists? (aggregateWithArgTypes (COMMA aggregateWithArgTypes)*) opt_drop_behavior? ; -removeoperstmt - : KW_DROP KW_OPERATOR opt_if_exists? (operator_with_argtypes (COMMA operator_with_argtypes)*) opt_drop_behavior? +removeOperatorStmt + : KW_DROP KW_OPERATOR opt_if_exists? (operatorWithArgTypes (COMMA operatorWithArgTypes)*) opt_drop_behavior? ; -oper_argtypes +operatorArgTypes : OPEN_PAREN (typename (COMMA typename)? | KW_NONE COMMA typename | typename COMMA KW_NONE) CLOSE_PAREN ; any_operator - : (colid DOT)* all_op + : (colId DOT)* all_op ; -operator_with_argtypes - : any_operator oper_argtypes +operatorWithArgTypes + : any_operator operatorArgTypes ; -dostmt - : KW_DO (sconst | KW_LANGUAGE nonreservedword_or_sconst)+ +doStmt + : KW_DO (stringConst | KW_LANGUAGE nonReservedWordOrStringConst)+ ; -createcaststmt +createCastStmt : KW_CREATE KW_CAST OPEN_PAREN typename KW_AS typename CLOSE_PAREN ( (KW_WITHOUT KW_FUNCTION (KW_AS (KW_ASSIGNMENT | KW_IMPLICIT))?) | ( - KW_WITH (KW_FUNCTION function_with_argtypes | KW_INOUT) ( + KW_WITH (KW_FUNCTION functionWithArgTypes | KW_INOUT) ( KW_AS (KW_ASSIGNMENT | KW_IMPLICIT) )? ) @@ -1542,50 +1540,50 @@ opt_if_exists : KW_IF KW_EXISTS ; -createtransformstmt - : KW_CREATE opt_or_replace? KW_TRANSFORM KW_FOR typename KW_LANGUAGE colid OPEN_PAREN ( +createTransformStmt + : KW_CREATE opt_or_replace? KW_TRANSFORM KW_FOR typename KW_LANGUAGE colId OPEN_PAREN ( KW_FROM sql_with_function (COMMA KW_TO sql_with_function)? | KW_TO sql_with_function (COMMA KW_FROM sql_with_function)? ) CLOSE_PAREN ; sql_with_function - : KW_SQL KW_WITH KW_FUNCTION function_with_argtypes + : KW_SQL KW_WITH KW_FUNCTION functionWithArgTypes ; -reindexstmt +reindexStmt : KW_REINDEX (OPEN_PAREN KW_VERBOSE (COMMA KW_VERBOSE)* CLOSE_PAREN)? ( ( KW_INDEX KW_CONCURRENTLY? qualified_name | KW_TABLE KW_CONCURRENTLY? table_name | KW_SCHEMA KW_CONCURRENTLY? schema_name - | KW_SYSTEM KW_CONCURRENTLY? colid + | KW_SYSTEM KW_CONCURRENTLY? colId | KW_DATABASE KW_CONCURRENTLY? database_name ) ) ; -altertblspcstmt - : KW_ALTER opttablespace (KW_SET | KW_RESET) reloptions +alterTblSpcStmt + : KW_ALTER optTableSpace (KW_SET | KW_RESET) relOptions ; -renamestmt - : KW_ALTER (KW_AGGREGATE aggregate_with_argtypes | KW_ROUTINE routine_with_argtypes) KW_RENAME KW_TO colid +renameStmt + : KW_ALTER (KW_AGGREGATE aggregateWithArgTypes | KW_ROUTINE routineWithArgTypes) KW_RENAME KW_TO colId | KW_ALTER KW_DATABASE database_name KW_RENAME KW_TO database_name_create - | KW_ALTER (KW_DOMAIN | KW_STATISTICS | KW_TYPE | KW_CONVERSION | KW_COLLATION) any_name KW_RENAME KW_TO colid - | KW_ALTER KW_FUNCTION function_with_argtypes KW_RENAME KW_TO function_name_create - | KW_ALTER KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause KW_RENAME KW_TO colid - | KW_ALTER KW_PROCEDURE procedure_with_argtypes KW_RENAME KW_TO procedure_name_create + | KW_ALTER (KW_DOMAIN | KW_STATISTICS | KW_TYPE | KW_CONVERSION | KW_COLLATION) any_name KW_RENAME KW_TO colId + | KW_ALTER KW_FUNCTION functionWithArgTypes KW_RENAME KW_TO function_name_create + | KW_ALTER KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause KW_RENAME KW_TO colId + | KW_ALTER KW_PROCEDURE procedureWithArgTypes KW_RENAME KW_TO procedure_name_create | KW_ALTER KW_SCHEMA schema_name KW_RENAME KW_TO schema_name_create - | KW_ALTER (KW_SEQUENCE | KW_INDEX) opt_if_exists? qualified_name KW_RENAME KW_TO colid + | KW_ALTER (KW_SEQUENCE | KW_INDEX) opt_if_exists? qualified_name KW_RENAME KW_TO colId | KW_ALTER KW_MATERIALIZED? KW_VIEW opt_if_exists? view_name KW_RENAME KW_TO view_name_create | KW_ALTER KW_FOREIGN? KW_TABLE opt_if_exists? relation_expr KW_RENAME KW_TO table_name_create | KW_ALTER ( KW_FOREIGN? KW_TABLE opt_if_exists? relation_expr KW_RENAME KW_COLUMN? | KW_MATERIALIZED? KW_VIEW opt_if_exists? view_name KW_RENAME KW_COLUMN? ) column_name KW_TO column_name_create - | KW_ALTER (KW_TABLE opt_if_exists? relation_expr | KW_DOMAIN any_name) KW_RENAME KW_CONSTRAINT colid KW_TO colid - | KW_ALTER ((KW_POLICY opt_if_exists?) | KW_RULE | KW_TRIGGER) colid KW_ON qualified_name KW_RENAME KW_TO colid + | KW_ALTER (KW_TABLE opt_if_exists? relation_expr | KW_DOMAIN any_name) KW_RENAME KW_CONSTRAINT colId KW_TO colId + | KW_ALTER ((KW_POLICY opt_if_exists?) | KW_RULE | KW_TRIGGER) colId KW_ON qualified_name KW_RENAME KW_TO colId | KW_ALTER ( KW_FOREIGN KW_DATA KW_WRAPPER | KW_PROCEDURAL? KW_LANGUAGE @@ -1593,33 +1591,33 @@ renamestmt | KW_SERVER | KW_SUBSCRIPTION | KW_EVENT KW_TRIGGER - ) colid KW_RENAME KW_TO colid - | KW_ALTER (KW_USER | KW_ROLE | KW_GROUP) rolespec KW_RENAME KW_TO rolespec - | KW_ALTER opttablespace KW_RENAME KW_TO tablespace_name_create - | KW_ALTER KW_TEXT KW_SEARCH (KW_PARSER | KW_DICTIONARY | KW_TEMPLATE | KW_CONFIGURATION) any_name KW_RENAME KW_TO colid - | KW_ALTER KW_TYPE any_name KW_RENAME KW_ATTRIBUTE colid KW_TO colid opt_drop_behavior? + ) colId KW_RENAME KW_TO colId + | KW_ALTER (KW_USER | KW_ROLE | KW_GROUP) roleSpec KW_RENAME KW_TO roleSpec + | KW_ALTER optTableSpace KW_RENAME KW_TO tablespace_name_create + | KW_ALTER KW_TEXT KW_SEARCH (KW_PARSER | KW_DICTIONARY | KW_TEMPLATE | KW_CONFIGURATION) any_name KW_RENAME KW_TO colId + | KW_ALTER KW_TYPE any_name KW_RENAME KW_ATTRIBUTE colId KW_TO colId opt_drop_behavior? ; -alterobjectdependsstmt +alterObjectDependsStmt : KW_ALTER ( - KW_FUNCTION function_with_argtypes - | KW_PROCEDURE procedure_with_argtypes - | KW_ROUTINE routine_with_argtypes - | KW_TRIGGER colid KW_ON qualified_name + KW_FUNCTION functionWithArgTypes + | KW_PROCEDURE procedureWithArgTypes + | KW_ROUTINE routineWithArgTypes + | KW_TRIGGER colId KW_ON qualified_name | KW_MATERIALIZED KW_VIEW view_name | KW_INDEX qualified_name - ) KW_NO? KW_DEPENDS KW_ON KW_EXTENSION colid + ) KW_NO? KW_DEPENDS KW_ON KW_EXTENSION colId ; -alterobjectschemastmt +alterObjectSchemaStmt : KW_ALTER ( - KW_AGGREGATE aggregate_with_argtypes - | KW_EXTENSION colid - | KW_FUNCTION function_with_argtypes - | KW_OPERATOR operator_with_argtypes + KW_AGGREGATE aggregateWithArgTypes + | KW_EXTENSION colId + | KW_FUNCTION functionWithArgTypes + | KW_OPERATOR operatorWithArgTypes | KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause - | KW_PROCEDURE procedure_with_argtypes - | KW_ROUTINE routine_with_argtypes + | KW_PROCEDURE procedureWithArgTypes + | KW_ROUTINE routineWithArgTypes | KW_SEQUENCE opt_if_exists? qualified_name | KW_MATERIALIZED? KW_VIEW opt_if_exists? view_name | KW_FOREIGN? KW_TABLE opt_if_exists? relation_expr @@ -1634,8 +1632,8 @@ alterobjectschemastmt ) any_name KW_SET KW_SCHEMA schema_name ; -alteroperatorstmt - : KW_ALTER KW_OPERATOR operator_with_argtypes KW_SET operator_def_list +alterOperatorStmt + : KW_ALTER KW_OPERATOR operatorWithArgTypes KW_SET operator_def_list ; operator_def_list @@ -1643,28 +1641,35 @@ operator_def_list ; operator_def_elem - : collabel EQUAL (KW_NONE | func_type | reserved_keyword | qual_all_op | numericonly | sconst) + : colLabel EQUAL ( + KW_NONE + | func_type + | reserved_keyword + | qual_all_op + | numericOnly + | stringConst + ) ; -altertypestmt +alterTypeStmt : KW_ALTER KW_TYPE any_name KW_SET operator_def_list ; -alterownerstmt - : KW_ALTER KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause KW_OWNER KW_TO rolespec +alterOwnerStmt + : KW_ALTER KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause KW_OWNER KW_TO roleSpec | KW_ALTER ( - KW_AGGREGATE aggregate_with_argtypes + KW_AGGREGATE aggregateWithArgTypes | KW_DATABASE database_name - | KW_FUNCTION function_with_argtypes - | KW_PROCEDURAL? KW_LANGUAGE colid - | KW_LARGE KW_OBJECT numericonly - | KW_LARGE KW_OBJECT numericonly - | KW_OPERATOR operator_with_argtypes - | KW_PROCEDURE procedure_with_argtypes - | KW_ROUTINE routine_with_argtypes + | KW_FUNCTION functionWithArgTypes + | KW_PROCEDURAL? KW_LANGUAGE colId + | KW_LARGE KW_OBJECT numericOnly + | KW_LARGE KW_OBJECT numericOnly + | KW_OPERATOR operatorWithArgTypes + | KW_PROCEDURE procedureWithArgTypes + | KW_ROUTINE routineWithArgTypes | KW_SCHEMA schema_name - | opttablespace - ) KW_OWNER KW_TO rolespec + | optTableSpace + ) KW_OWNER KW_TO roleSpec | KW_ALTER ( KW_TEXT KW_SEARCH (KW_DICTIONARY | KW_CONFIGURATION) | KW_COLLATION @@ -1672,93 +1677,93 @@ alterownerstmt | KW_DOMAIN | KW_TYPE | KW_STATISTICS - ) any_name KW_OWNER KW_TO rolespec + ) any_name KW_OWNER KW_TO roleSpec | KW_ALTER ( KW_SERVER | (KW_FOREIGN KW_DATA KW_WRAPPER) | (KW_EVENT KW_TRIGGER) | KW_PUBLICATION | KW_SUBSCRIPTION - ) colid KW_OWNER KW_TO rolespec + ) colId KW_OWNER KW_TO roleSpec ; -createpublicationstmt - : KW_CREATE KW_PUBLICATION colid (KW_FOR KW_TABLE relation_expr_list | KW_FOR KW_ALL KW_TABLES)? opt_definition? +createPublicationStmt + : KW_CREATE KW_PUBLICATION colId (KW_FOR KW_TABLE relation_expr_list | KW_FOR KW_ALL KW_TABLES)? opt_definition? ; -alterpublicationstmt - : KW_ALTER KW_PUBLICATION colid ( - (KW_OWNER KW_TO rolespec) +alterPublicationStmt + : KW_ALTER KW_PUBLICATION colId ( + (KW_OWNER KW_TO roleSpec) | (KW_SET definition) - | (KW_RENAME KW_TO colid) + | (KW_RENAME KW_TO colId) | (KW_ADD | KW_SET | KW_DROP) publication_relation_expr (COMMA publication_relation_expr)* ) ; -createsubscriptionstmt - : KW_CREATE KW_SUBSCRIPTION colid KW_CONNECTION sconst KW_PUBLICATION ( - collabel (COMMA collabel)* +createSubscriptionStmt + : KW_CREATE KW_SUBSCRIPTION colId KW_CONNECTION stringConst KW_PUBLICATION ( + colLabel (COMMA colLabel)* ) opt_definition? ; -altersubscriptionstmt - : KW_ALTER KW_SUBSCRIPTION colid KW_SET definition - | KW_ALTER KW_SUBSCRIPTION colid KW_CONNECTION sconst - | KW_ALTER KW_SUBSCRIPTION colid KW_REFRESH KW_PUBLICATION opt_definition? - | KW_ALTER KW_SUBSCRIPTION colid (KW_SET | KW_ADD | KW_DROP) KW_PUBLICATION ( - collabel (COMMA collabel)* +alterSubscriptionStmt + : KW_ALTER KW_SUBSCRIPTION colId KW_SET definition + | KW_ALTER KW_SUBSCRIPTION colId KW_CONNECTION stringConst + | KW_ALTER KW_SUBSCRIPTION colId KW_REFRESH KW_PUBLICATION opt_definition? + | KW_ALTER KW_SUBSCRIPTION colId (KW_SET | KW_ADD | KW_DROP) KW_PUBLICATION ( + colLabel (COMMA colLabel)* ) opt_definition? - | KW_ALTER KW_SUBSCRIPTION colid (KW_ENABLE | KW_DISABLE) - | KW_ALTER KW_SUBSCRIPTION colid KW_SKIP OPEN_PAREN old_aggr_elem CLOSE_PAREN - | KW_ALTER KW_SUBSCRIPTION colid KW_OWNER KW_TO rolespec + | KW_ALTER KW_SUBSCRIPTION colId (KW_ENABLE | KW_DISABLE) + | KW_ALTER KW_SUBSCRIPTION colId KW_SKIP OPEN_PAREN old_aggregate_elem CLOSE_PAREN + | KW_ALTER KW_SUBSCRIPTION colId KW_OWNER KW_TO roleSpec ; -rulestmt - : KW_CREATE opt_or_replace? KW_RULE colid KW_AS KW_ON ( +ruleStmt + : KW_CREATE opt_or_replace? KW_RULE colId KW_AS KW_ON ( KW_SELECT | KW_UPDATE | KW_DELETE | KW_INSERT ) KW_TO qualified_name where_clause? KW_DO (KW_INSTEAD | KW_ALSO)? ( KW_NOTHING - | ruleactionstmt - | OPEN_PAREN (ruleactionstmt? (SEMI ruleactionstmt?)*) CLOSE_PAREN + | ruleActionStmt + | OPEN_PAREN (ruleActionStmt? (SEMI ruleActionStmt?)*) CLOSE_PAREN ) ; -ruleactionstmt - : selectstmt - | insertstmt - | updatestmt - | deletestmt - | notifystmt +ruleActionStmt + : selectStmt + | insertStmt + | updateStmt + | deleteStmt + | notifyStmt ; -notifystmt - : KW_NOTIFY colid notify_payload? +notifyStmt + : KW_NOTIFY colId notify_payload? ; notify_payload - : COMMA sconst + : COMMA stringConst ; -listenstmt - : KW_LISTEN colid +listenStmt + : KW_LISTEN colId ; -unlistenstmt - : KW_UNLISTEN (colid | STAR) +unListenStmt + : KW_UNLISTEN (colId | STAR) ; -transactionstmt +transactionStmt : KW_BEGIN opt_transaction? transaction_mode_list? | KW_START KW_TRANSACTION transaction_mode_list? - | KW_SAVEPOINT colid - | KW_RELEASE KW_SAVEPOINT? colid - | KW_PREPARE KW_TRANSACTION sconst - | (KW_COMMIT | KW_ROLLBACK) KW_PREPARED sconst + | KW_SAVEPOINT colId + | KW_RELEASE KW_SAVEPOINT? colId + | KW_PREPARE KW_TRANSACTION stringConst + | (KW_COMMIT | KW_ROLLBACK) KW_PREPARED stringConst | (KW_ABORT | KW_END | KW_COMMIT | KW_ROLLBACK) opt_transaction? (KW_AND KW_NO? KW_CHAIN)? - | KW_ROLLBACK opt_transaction? KW_TO KW_SAVEPOINT? colid + | KW_ROLLBACK opt_transaction? KW_TO KW_SAVEPOINT? colId ; opt_transaction @@ -1776,22 +1781,22 @@ transaction_mode_list : transaction_mode_item (COMMA? transaction_mode_item)* ; -viewstmt - : KW_CREATE (KW_OR KW_REPLACE)? opttemp? ( - KW_VIEW view_name_create opt_column_list_create? opt_reloptions? - | KW_RECURSIVE KW_VIEW view_name_create opt_column_list opt_reloptions? - ) KW_AS selectstmt (KW_WITH (KW_CASCADED | KW_LOCAL)? KW_CHECK KW_OPTION)? # createView +viewStmt + : KW_CREATE (KW_OR KW_REPLACE)? optTemp? ( + KW_VIEW view_name_create opt_column_list_create? optRelOptions? + | KW_RECURSIVE KW_VIEW view_name_create opt_column_list optRelOptions? + ) KW_AS selectStmt (KW_WITH (KW_CASCADED | KW_LOCAL)? KW_CHECK KW_OPTION)? # createView ; -loadstmt - : KW_LOAD sconst +loadStmt + : KW_LOAD stringConst ; -createdbstmt - : KW_CREATE KW_DATABASE database_name_create KW_WITH? (createdb_opt_item+)? # createDatabase +createDbStmt + : KW_CREATE KW_DATABASE database_name_create KW_WITH? (create_db_opt_item+)? # createDatabase ; -createdb_opt_item +create_db_opt_item : ( KW_CONNECTION KW_LIMIT | KW_ENCODING @@ -1800,66 +1805,66 @@ createdb_opt_item | KW_TABLESPACE | KW_TEMPLATE | identifier - ) EQUAL? (signediconst | opt_boolean_or_string | KW_DEFAULT) + ) EQUAL? (signedConst | opt_boolean_or_string | KW_DEFAULT) ; -alterdatabasestmt +alterDatabaseStmt : KW_ALTER KW_DATABASE database_name ( (KW_SET KW_TABLESPACE tablespace_name_create)? - | (KW_WITH? createdb_opt_item+)? + | (KW_WITH? create_db_opt_item+)? ) ; -alterdatabasesetstmt - : KW_ALTER KW_DATABASE database_name setresetclause? +alterDatabaseSetStmt + : KW_ALTER KW_DATABASE database_name setOrResetClause? ; -altercollationstmt +alterCollationStmt : KW_ALTER KW_COLLATION any_name KW_REFRESH KW_VERSION ; -altersystemstmt +alterSystemStmt : KW_ALTER KW_SYSTEM (KW_SET | KW_RESET) generic_set ; -createdomainstmt - : KW_CREATE KW_DOMAIN any_name KW_AS? typename colconstraint* +createDomainStmt + : KW_CREATE KW_DOMAIN any_name KW_AS? typename colConstraint* ; -alterdomainstmt +alterDomainStmt : KW_ALTER KW_DOMAIN any_name ( alter_column_default | (KW_DROP | KW_SET) KW_NOT KW_NULL - | KW_ADD (KW_CONSTRAINT colid)? constraintelem - | KW_DROP KW_CONSTRAINT opt_if_exists? colid opt_drop_behavior? - | KW_VALIDATE KW_CONSTRAINT colid + | KW_ADD (KW_CONSTRAINT colId)? constraintElem + | KW_DROP KW_CONSTRAINT opt_if_exists? colId opt_drop_behavior? + | KW_VALIDATE KW_CONSTRAINT colId ) ; -altertsdictionarystmt +alterSearchDictionaryStmt : KW_ALTER KW_TEXT KW_SEARCH KW_DICTIONARY any_name definition ; -altertsconfigurationstmt +alterSearchConfigurationStmt : KW_ALTER KW_TEXT KW_SEARCH KW_CONFIGURATION any_name (KW_ADD | KW_ALTER) KW_MAPPING KW_FOR name_list KW_WITH any_name_list | KW_ALTER KW_TEXT KW_SEARCH KW_CONFIGURATION any_name KW_ALTER KW_MAPPING (KW_FOR name_list)? KW_REPLACE any_name KW_WITH any_name | KW_ALTER KW_TEXT KW_SEARCH KW_CONFIGURATION any_name KW_DROP KW_MAPPING opt_if_exists? KW_FOR name_list ; -createconversionstmt - : KW_CREATE KW_DEFAULT? KW_CONVERSION any_name KW_FOR sconst KW_TO sconst KW_FROM any_name +createConversionStmt + : KW_CREATE KW_DEFAULT? KW_CONVERSION any_name KW_FOR stringConst KW_TO stringConst KW_FROM any_name ; -clusterstmt +clusterStmt : KW_CLUSTER opt_verbose? (table_name table_access_method_clause?)? | KW_CLUSTER OPEN_PAREN opt_verbose (COMMA opt_verbose)* CLOSE_PAREN table_name table_access_method_clause? ; -vacuumstmt +vacuumStmt : KW_VACUUM ((KW_FULL? KW_FREEZE? opt_verbose? analyze_keyword?) | (explain_option_list)?) vacuum_relation_list? ; -analyzestmt +analyzeStmt : analyze_keyword ( opt_verbose? | OPEN_PAREN analyze_option_elem (COMMA analyze_option_elem)* CLOSE_PAREN @@ -1872,12 +1877,12 @@ analyze_keyword ; vac_analyze_option_elem - : (nonreservedword | analyze_keyword) (opt_boolean_or_string | numericonly)? + : (nonReservedWord | analyze_keyword) (opt_boolean_or_string | numericOnly)? ; analyze_option_elem : (KW_SKIP_LOCKED | KW_VERBOSE) (KW_FALSE | KW_TRUE)? - | KW_BUFFER_USAGE_LIMIT (numericonly | sconst) + | KW_BUFFER_USAGE_LIMIT (numericOnly | stringConst) ; // support on v12+ opt_verbose @@ -1892,59 +1897,58 @@ vacuum_relation_list : vacuum_relation (COMMA vacuum_relation)* ; -explainstmt - : KW_EXPLAIN (explain_option_list | KW_VERBOSE? | (analyze_keyword opt_verbose?)?) explainablestmt +explainStmt + : KW_EXPLAIN (explain_option_list | KW_VERBOSE? | (analyze_keyword opt_verbose?)?) explainableStmt ; -explainablestmt - : selectstmt - | insertstmt - | updatestmt - | deletestmt - | declarecursorstmt - | createasstmt - | creatematviewstmt - | refreshmatviewstmt - | executestmt +explainableStmt + : selectStmt + | insertStmt + | updateStmt + | deleteStmt + | declareCursorStmt + | createAsStmt + | createMaterializedViewStmt + | refreshMaterializedViewStmt + | executeStmt ; explain_option_list : OPEN_PAREN vac_analyze_option_elem (COMMA vac_analyze_option_elem)* CLOSE_PAREN ; -preparestmt - : KW_PREPARE colid prep_type_clause? KW_AS preparablestmt +prepareStmt + : KW_PREPARE colId prep_type_clause? KW_AS preParableStmt ; prep_type_clause : OPEN_PAREN typename (COMMA typename)* CLOSE_PAREN ; -// https://www.postgresql.org/docs/17/sql-select.html -preparablestmt - : selectstmt - | insertstmt - | updatestmt - | deletestmt - | mergestmt +preParableStmt + : selectStmt + | insertStmt + | updateStmt + | deleteStmt + | mergeStmt ; -executestmt - : KW_EXECUTE colid execute_param_clause? - | KW_CREATE opttemp? KW_TABLE opt_if_not_exists? create_as_target KW_AS KW_EXECUTE colid execute_param_clause? opt_with_data? +executeStmt + : KW_EXECUTE colId execute_param_clause? + | KW_CREATE optTemp? KW_TABLE opt_if_not_exists? create_as_target KW_AS KW_EXECUTE colId execute_param_clause? opt_with_data? ; execute_param_clause : OPEN_PAREN expr_list CLOSE_PAREN ; -deallocatestmt - : KW_DEALLOCATE KW_PREPARE? (colid | KW_ALL) +dealLocateStmt + : KW_DEALLOCATE KW_PREPARE? (colId | KW_ALL) ; -insertstmt - : with_clause? KW_INSERT KW_INTO table_name (KW_AS colid)? insert_rest ( - KW_ON KW_CONFLICT (index_params where_clause? | KW_ON KW_CONSTRAINT colid)? KW_DO ( +insertStmt + : with_clause? KW_INSERT KW_INTO table_name (KW_AS colId)? insert_rest ( + KW_ON KW_CONFLICT (index_params where_clause? | KW_ON KW_CONSTRAINT colId)? KW_DO ( KW_UPDATE KW_SET set_clause_list where_clause? | KW_NOTHING ) @@ -1954,7 +1958,7 @@ insertstmt insert_rest : (OPEN_PAREN insert_column_list CLOSE_PAREN)? (KW_OVERRIDING (KW_USER | KW_SYSTEM) KW_VALUE)? ( default_values_or_values - | selectstmt + | selectStmt ) ; @@ -1970,11 +1974,11 @@ returning_clause : KW_RETURNING target_list ; -deletestmt +deleteStmt : with_clause? KW_DELETE KW_FROM relation_expr_opt_alias (KW_USING from_list)? where_or_current_clause? returning_clause? ; -lockstmt +lockStmt : KW_LOCK KW_TABLE? relation_expr_list ( KW_IN ( (KW_ACCESS | KW_ROW) (KW_SHARE | KW_EXCLUSIVE) @@ -1984,7 +1988,7 @@ lockstmt )? KW_NOWAIT? ; -updatestmt +updateStmt : with_clause? KW_UPDATE relation_expr_opt_alias KW_SET set_clause_list from_clause? where_or_current_clause? returning_clause? ; @@ -2000,23 +2004,23 @@ set_clause ) ; -declarecursorstmt - : KW_DECLARE colid (((KW_NO? KW_SCROLL) | KW_BINARY | KW_INSENSITIVE)*) KW_CURSOR ( +declareCursorStmt + : KW_DECLARE colId (((KW_NO? KW_SCROLL) | KW_BINARY | KW_INSENSITIVE)*) KW_CURSOR ( (KW_WITH | KW_WITHOUT) KW_HOLD - )? KW_FOR selectstmt + )? KW_FOR selectStmt ; /* TODO: why select_with_parens alternative is needed at all? i guess it because original byson - grammar can choose selectstmt(2)->select_with_parens on only OPEN_PARENT/SELECT kewords at the - begining of statement; (select * from tab); parse can go through selectstmt( + grammar can choose selectStmt(2)->select_with_parens on only OPEN_PARENT/SELECT kewords at the + begining of statement; (select * from tab); parse can go through selectStmt( )->select_no_parens(1)->select_clause(2)->select_with_parens(1)->select_no_parens(1)->select_clause(1)->simple_select instead of - selectstmt(1)->select_no_parens(1)->select_clause(2)->select_with_parens(1)->select_no_parens(1)->select_clause(1)->simple_select + selectStmt(1)->select_no_parens(1)->select_clause(2)->select_with_parens(1)->select_no_parens(1)->select_clause(1)->simple_select all standard tests passed on both variants */ -selectstmt +selectStmt : select_no_parens # selectStatement | select_with_parens # selectStatement ; @@ -2055,22 +2059,22 @@ with_clause ; common_table_expr - : colid opt_column_list? KW_AS (KW_NOT? KW_MATERIALIZED)? OPEN_PAREN preparablestmt CLOSE_PAREN search_cluase? cycle_cluase? + : colId opt_column_list? KW_AS (KW_NOT? KW_MATERIALIZED)? OPEN_PAREN preParableStmt CLOSE_PAREN search_clause? cycle_clause? ; -search_cluase +search_clause : KW_SEARCH (KW_BREADTH | KW_DEPTH) KW_FIRST KW_BY column_list KW_SET column_name ; -cycle_cluase - : KW_CYCLE column_list KW_SET column_name (KW_TO colid KW_DEFAULT colid)? KW_USING column_name +cycle_clause + : KW_CYCLE column_list KW_SET column_name (KW_TO colId KW_DEFAULT colId)? KW_USING column_name ; into_clause - : KW_INTO (KW_STRICT? opttempTableName | expr_list) + : KW_INTO (KW_STRICT? optTempTableName | expr_list) ; -opttempTableName +optTempTableName : (KW_LOCAL | KW_GLOBAL)? (KW_TEMPORARY | KW_TEMP) KW_TABLE? table_name_create | KW_UNLOGGED? KW_TABLE? table_name_create ; @@ -2080,11 +2084,11 @@ distinct_clause ; sort_clause - : KW_ORDER KW_BY sortby (COMMA sortby)* + : KW_ORDER KW_BY sortBy (COMMA sortBy)* ; -sortby - : column_expr_noparen (KW_USING qual_all_op | (KW_ASC | KW_DESC))? ( +sortBy + : column_expr_no_paren (KW_USING qual_all_op | (KW_ASC | KW_DESC))? ( KW_NULLS (KW_FIRST | KW_LAST) )? ; @@ -2123,9 +2127,9 @@ group_by_list ; group_by_item - : column_expr_noparen + : column_expr_no_paren | OPEN_PAREN CLOSE_PAREN - | (KW_CUBE | KW_ROLLUP)? OPEN_PAREN (column_expr_noparen (COMMA column_expr_noparen)*) CLOSE_PAREN + | (KW_CUBE | KW_ROLLUP)? OPEN_PAREN (column_expr_no_paren (COMMA column_expr_no_paren)*) CLOSE_PAREN | KW_GROUPING KW_SETS OPEN_PAREN group_by_list CLOSE_PAREN ; @@ -2153,9 +2157,9 @@ from_list table_ref : ( - (relation_expr | (KW_ONLY? view_name STAR? column_list? where_clause?)) alias_clause? tablesample_clause? + (relation_expr | (KW_ONLY? view_name STAR? column_list? where_clause?)) alias_clause? tableSampleClause? | KW_LATERAL? ( - xmltable alias_clause? + xmlTable alias_clause? | func_table func_alias_clause? | select_with_parens alias_clause? ) @@ -2172,12 +2176,12 @@ table_ref ; alias_clause - : KW_AS? alias=colid (OPEN_PAREN name_list CLOSE_PAREN)? + : KW_AS? alias=colId (OPEN_PAREN name_list CLOSE_PAREN)? ; func_alias_clause : alias_clause - | (KW_AS alias=colid? | alias=colid) OPEN_PAREN tablefuncelementlist CLOSE_PAREN + | (KW_AS alias=colId? | alias=colId) OPEN_PAREN tableFuncElementList CLOSE_PAREN ; join_type @@ -2206,10 +2210,10 @@ relation_expr_list ; relation_expr_opt_alias - : relation_expr (KW_AS? colid)? + : relation_expr (KW_AS? colId)? ; -tablesample_clause +tableSampleClause : KW_TABLESAMPLE function_name execute_param_clause ( KW_REPEATABLE OPEN_PAREN expression CLOSE_PAREN )? @@ -2218,68 +2222,68 @@ tablesample_clause func_table : ( func_expr_windowless - | (KW_ROWS KW_FROM OPEN_PAREN rowsfrom_item (COMMA rowsfrom_item)* CLOSE_PAREN) + | (KW_ROWS KW_FROM OPEN_PAREN rowsFromItem (COMMA rowsFromItem)* CLOSE_PAREN) ) (KW_WITH KW_ORDINALITY)? ; -rowsfrom_item - : func_expr_windowless (KW_AS OPEN_PAREN tablefuncelementlist CLOSE_PAREN)? +rowsFromItem + : func_expr_windowless (KW_AS OPEN_PAREN tableFuncElementList CLOSE_PAREN)? ; where_clause - : KW_WHERE column_expr_noparen + : KW_WHERE column_expr_no_paren ; where_or_current_clause - : KW_WHERE (KW_CURRENT KW_OF colid | expression) + : KW_WHERE (KW_CURRENT KW_OF colId | expression) ; -tablefuncelementlist - : tablefuncelement (COMMA tablefuncelement)* +tableFuncElementList + : tableFuncElement (COMMA tableFuncElement)* ; -tablefuncelement - : colid typename opt_collate_clause? +tableFuncElement + : colId typename opt_collate_clause? ; -xmltable +xmlTable : KW_XMLTABLE OPEN_PAREN ( - (KW_XMLNAMESPACES OPEN_PAREN xml_namespace_el (COMMA xml_namespace_el)* CLOSE_PAREN COMMA)? primaryExpression xmlexists_argument KW_COLUMNS - xmltable_column_el (COMMA xmltable_column_el)* + (KW_XMLNAMESPACES OPEN_PAREN xml_namespace_el (COMMA xml_namespace_el)* CLOSE_PAREN COMMA)? primaryExpression xmlExistsArgument KW_COLUMNS + xmlTableColumnEl (COMMA xmlTableColumnEl)* ) CLOSE_PAREN ; -xmltable_column_el - : colid ( +xmlTableColumnEl + : colId ( typename (((KW_DEFAULT | identifier) expression | KW_NOT? KW_NULL)+)? | KW_FOR KW_ORDINALITY ) ; xml_namespace_el - : primaryExpression KW_AS collabel + : primaryExpression KW_AS colLabel | KW_DEFAULT primaryExpression ; typename - : KW_SETOF? simpletypename ( + : KW_SETOF? simpleTypeName ( ((OPEN_BRACKET Integral? CLOSE_BRACKET)*) | KW_ARRAY (OPEN_BRACKET Integral CLOSE_BRACKET)? ) | qualified_name PERCENT (KW_ROWTYPE | KW_TYPE) ; -simpletypename +simpleTypeName : type_function_name attrs? execute_param_clause? - | consttypename + | constTypeName | KW_INTERVAL ( opt_interval? | opt_float) ; -consttypename +constTypeName : numeric | bit | character - | constdatetime + | constDatetime ; numeric @@ -2310,7 +2314,7 @@ character ) (opt_float)? ; -constdatetime +constDatetime : (KW_TIMESTAMP | KW_TIME) (opt_float)? ((KW_WITH | KW_WITHOUT) KW_TIME KW_ZONE)? ; @@ -2404,9 +2408,9 @@ primaryExpression | Numeric | BinaryStringConstant | HexadecimalStringConstant - | function_name (sconst | OPEN_PAREN func_arg_list sort_clause? CLOSE_PAREN sconst) - | consttypename? sconst - | KW_INTERVAL ( sconst opt_interval? | opt_float sconst) + | function_name (stringConst | OPEN_PAREN func_arg_list sort_clause? CLOSE_PAREN stringConst) + | constTypeName? stringConst + | KW_INTERVAL ( stringConst opt_interval? | opt_float stringConst) | KW_TRUE | KW_FALSE | KW_NULL @@ -2443,7 +2447,7 @@ func_application func_expr : func_application (KW_WITHIN KW_GROUP OPEN_PAREN sort_clause CLOSE_PAREN)? ( KW_FILTER OPEN_PAREN KW_WHERE expression CLOSE_PAREN - )? (KW_OVER (window_specification | colid))? + )? (KW_OVER (window_specification | colId))? | func_expr_common_subexpr ; @@ -2473,19 +2477,19 @@ func_expr_common_subexpr | KW_TRIM OPEN_PAREN (KW_BOTH | KW_LEADING | KW_TRAILING)? ((expression? KW_FROM)? expr_list) CLOSE_PAREN | KW_NULLIF OPEN_PAREN expression COMMA expression CLOSE_PAREN | (KW_COALESCE | KW_GREATEST | KW_LEAST | KW_XMLCONCAT) execute_param_clause - | KW_XMLELEMENT OPEN_PAREN KW_NAME collabel ( + | KW_XMLELEMENT OPEN_PAREN KW_NAME colLabel ( COMMA ((KW_XMLATTRIBUTES OPEN_PAREN xml_attribute_list CLOSE_PAREN) | expr_list) )? CLOSE_PAREN - | KW_XMLEXISTS OPEN_PAREN primaryExpression xmlexists_argument CLOSE_PAREN + | KW_XMLEXISTS OPEN_PAREN primaryExpression xmlExistsArgument CLOSE_PAREN | KW_XMLFOREST OPEN_PAREN xml_attribute_list CLOSE_PAREN | KW_XMLPARSE OPEN_PAREN document_or_content expression ( (KW_PRESERVE | KW_STRIP) KW_WHITESPACE )? CLOSE_PAREN - | KW_XMLPI OPEN_PAREN KW_NAME collabel (COMMA expression)? CLOSE_PAREN + | KW_XMLPI OPEN_PAREN KW_NAME colLabel (COMMA expression)? CLOSE_PAREN | KW_XMLROOT OPEN_PAREN KW_XML expression COMMA KW_VERSION (( KW_NO KW_VALUE) | expression) ( COMMA KW_STANDALONE ((KW_NO? KW_VALUE) | KW_YES) )? CLOSE_PAREN - | KW_XMLSERIALIZE OPEN_PAREN document_or_content expression KW_AS simpletypename CLOSE_PAREN + | KW_XMLSERIALIZE OPEN_PAREN document_or_content expression KW_AS simpleTypeName CLOSE_PAREN ; xml_attribute_list @@ -2493,7 +2497,7 @@ xml_attribute_list ; xml_attribute_el - : expression (KW_AS collabel)? + : expression (KW_AS colLabel)? ; document_or_content @@ -2501,7 +2505,7 @@ document_or_content | KW_CONTENT ; -xmlexists_argument +xmlExistsArgument : KW_PASSING xml_passing_mech? primaryExpression xml_passing_mech? ; @@ -2514,15 +2518,15 @@ window_clause ; window_definition - : colid KW_AS window_specification + : colId KW_AS window_specification ; over_clause - : KW_OVER (window_specification | colid) + : KW_OVER (window_specification | colId) ; window_specification - : OPEN_PAREN colid? (KW_PARTITION KW_BY expr_list)? sort_clause? opt_frame_clause? CLOSE_PAREN + : OPEN_PAREN colId? (KW_PARTITION KW_BY expr_list)? sort_clause? opt_frame_clause? CLOSE_PAREN ; opt_frame_clause @@ -2595,7 +2599,7 @@ column_expr | column_name ; -column_expr_noparen +column_expr_no_paren : expression | column_name ; @@ -2622,7 +2626,7 @@ extract_arg | KW_HOUR | KW_MINUTE | KW_SECOND - | sconst + | stringConst ; unicode_normal_form @@ -2644,7 +2648,7 @@ when_clause ; indirection_el - : DOT (collabel | STAR) + : DOT (colLabel | STAR) | OPEN_BRACKET (expression | expression? COLON expression?) CLOSE_BRACKET ; @@ -2661,8 +2665,8 @@ target_list ; target_el - : column_expr_noparen (KW_AS collabel | identifier |) # target_label - | STAR # target_star + : column_expr_no_paren (KW_AS colLabel | identifier |) # target_label + | STAR # target_star ; qualified_name_list @@ -2706,7 +2710,7 @@ view_name ; qualified_name - : colid indirection? + : colId indirection? ; tablespace_name_list @@ -2714,7 +2718,7 @@ tablespace_name_list ; name_list - : colid (COMMA colid)* + : colId (COMMA colId)* ; database_name_create @@ -2730,43 +2734,43 @@ schema_name ; routine_name_create - : colid # routineNameCreate + : colId # routineNameCreate ; routine_name - : colid # routineName + : colId # routineName ; procedure_name : type_function_name # procedureName - | colid indirection # procedureName + | colId indirection # procedureName ; procedure_name_create : type_function_name # procedureNameCreate - | colid indirection # procedureNameCreate + | colId indirection # procedureNameCreate ; column_name - : colid opt_indirection # columnName + : colId opt_indirection # columnName | {this.shouldMatchEmpty()}? # columnNameMatch ; column_name_create - : colid # columnNameCreate + : colId # columnNameCreate ; function_name_create : type_function_name # functionNameCreate - | colid indirection # functionNameCreate + | colId indirection # functionNameCreate ; function_name : type_function_name # functionName - | colid indirection # functionName + | colId indirection # functionName ; -sconst +stringConst : anysconst (KW_UESCAPE anysconst)? ; @@ -2777,12 +2781,12 @@ anysconst | EscapeStringConstant ; -signediconst +signedConst : (PLUS | MINUS)? Integral ; -rolespec - : nonreservedword +roleSpec + : nonReservedWord | KW_CURRENT_USER | KW_CURRENT_ROLE | KW_SESSION_USER @@ -2790,10 +2794,10 @@ rolespec ; role_list - : rolespec (COMMA rolespec)* + : roleSpec (COMMA roleSpec)* ; -colid +colId : identifier | col_name_keyword ; @@ -2803,13 +2807,13 @@ type_function_name | type_func_name_keyword ; -nonreservedword +nonReservedWord : identifier | col_name_keyword | type_func_name_keyword ; -collabel +colLabel : identifier | col_name_keyword | type_func_name_keyword @@ -2818,7 +2822,7 @@ collabel identifier : Identifier (KW_UESCAPE anysconst)? - | sconst + | stringConst | QuotedIdentifier | UnicodeQuotedIdentifier | PLSQLVARIABLENAME @@ -3340,13 +3344,13 @@ label_decl decl_statement : any_identifier ( - KW_ALIAS KW_FOR (PARAM | colid) + KW_ALIAS KW_FOR (PARAM | colId) | KW_CONSTANT? typename (opt_collate_clause)? (KW_NOT KW_NULL)? ( ( assign_operator | KW_DEFAULT) sql_expression )? | (KW_NO? KW_SCROLL)? KW_CURSOR ( OPEN_PAREN decl_cursor_arg (COMMA decl_cursor_arg)* CLOSE_PAREN - )? (KW_IS | KW_FOR) selectstmt + )? (KW_IS | KW_FOR) selectStmt ) SEMI ; @@ -3404,7 +3408,7 @@ stmt_getdiag ; getdiag_list_item - : assign_var assign_operator colid + : assign_var assign_operator colId ; assign_var @@ -3431,9 +3435,9 @@ stmt_loop_while_for for_control : any_name_list KW_IN ( - colid execute_param_clause? - | selectstmt - | explainstmt + colId execute_param_clause? + | selectStmt + | explainStmt | KW_EXECUTE expression (KW_USING expr_list)? | KW_REVERSE? expression DOT_DOT expression (KW_BY expression)? ) @@ -3452,7 +3456,7 @@ stmt_exit stmt_return : KW_RETURN ( KW_NEXT sql_expression - | KW_QUERY ( KW_EXECUTE expression KW_USING expr_list | selectstmt) + | KW_QUERY ( KW_EXECUTE expression KW_USING expr_list | selectStmt) | sql_expression? ) SEMI ; @@ -3473,8 +3477,8 @@ stmt_raise : KW_RAISE ( (KW_DEBUG | KW_LOG | KW_INFO | KW_NOTICE | KW_WARNING | KW_EXCEPTION)? ( identifier - | (KW_SQLSTATE sconst) - | (sconst ((COMMA expression)+)?) + | (KW_SQLSTATE stringConst) + | (stringConst ((COMMA expression)+)?) )? (KW_USING (opt_raise_using_elem (COMMA opt_raise_using_elem)*))? SEMI )? ; @@ -3530,17 +3534,17 @@ opt_execute_into stmt_open : KW_OPEN ( cursor_variable (KW_NO? KW_SCROLL)? KW_FOR ( - selectstmt + selectStmt | KW_EXECUTE sql_expression (KW_USING expr_list)? ) - | colid ( + | colId ( OPEN_PAREN (opt_open_bound_list_item (COMMA opt_open_bound_list_item)*) CLOSE_PAREN )? ) SEMI ; opt_open_bound_list_item - : (colid COLON_EQUALS)? expression + : (colId COLON_EQUALS)? expression ; //https://www.postgresql.org/docs/current/plpgsql-cursors.html#PLPGSQL-CURSOR-OPENING @@ -3569,14 +3573,12 @@ stmt_move : KW_MOVE opt_fetch_direction? cursor_variable SEMI ; -// https://www.postgresql.org/docs/17/sql-merge.html -mergestmt - : with_clause? KW_MERGE KW_INTO (KW_ONLY)? table_name (STAR)? (KW_AS? colid)? KW_USING data_source KW_ON expression merge_when_clause+ - returning_clause? +mergeStmt + : with_clause? KW_MERGE KW_INTO (KW_ONLY)? table_name (STAR)? (KW_AS? colId)? KW_USING data_source KW_ON expression merge_when_clause+ ; data_source - : ((KW_ONLY)? table_name (STAR)? | ( select_no_parens | values_clause)) (KW_AS? colid)? + : ((KW_ONLY)? table_name (STAR)? | ( select_no_parens | values_clause)) (KW_AS? colId)? ; merge_when_clause @@ -3601,7 +3603,7 @@ default_values_or_values ; exprofdefault - : sortby + : sortBy | KW_DEFAULT ; @@ -3623,7 +3625,7 @@ stmt_set ; cursor_variable - : colid + : colId | PARAM ; @@ -3633,11 +3635,11 @@ exception_sect proc_condition : any_identifier - | KW_SQLSTATE sconst + | KW_SQLSTATE stringConst ; any_identifier - : colid + : colId | unreserved_keyword ; diff --git a/src/lib/postgresql/PostgreSqlParser.interp b/src/lib/postgresql/PostgreSqlParser.interp index 653c9f4a5..5706ac650 100644 --- a/src/lib/postgresql/PostgreSqlParser.interp +++ b/src/lib/postgresql/PostgreSqlParser.interp @@ -1194,22 +1194,22 @@ rule names: program singleStmt stmt -callstmt -createrolestmt -alteroptroleelem -createoptroleelem -createuserstmt -alterrolestmt -alterrolesetstmt -alterroutinestmt -alter_routine_cluase +callStmt +createRoleStmt +alterOperatorRoleElem +createOperatorRoleElem +createUserStmt +alterRoleStmt +alterRoleSetStmt +alterRoutineStmt +alter_routine_clause routine_action -creategroupstmt -altergroupstmt -createschemastmt +createGroupStmt +alterGroupStmt +createSchemaStmt schema_name_create schema_stmt -variablesetstmt +variableSetStmt set_rest generic_set set_rest_more @@ -1220,259 +1220,259 @@ iso_level opt_boolean_or_string_column opt_boolean_or_string zone_value -nonreservedword_or_sconst -variableresetstmt +nonReservedWordOrStringConst +variableResetStmt reset_rest -setresetclause -functionsetresetclause -variableshowstmt -constraintssetstmt -checkpointstmt -discardstmt -altertablestmt +setOrResetClause +functionSetOrResetClause +variableShowStmt +constraintsSetStmt +checkPointStmt +discardStmt +alterTableStmt alter_table_cmds partition_bound_spec -partition_bound_cluase +partition_bound_clause partition_bound_choose -partition_with_cluase +partition_with_clause partition_cmd index_partition_cmd alter_table_cmd alter_column_default opt_drop_behavior opt_collate_clause -reloptions -opt_reloptions -reloption_elem -partitionboundspec -altercompositetypestmt +relOptions +optRelOptions +relOptionElem +partitionBoundSpec +alterCompositeTypeStmt alter_type_cmd -closeportalstmt -copystmt +closePortalStmt +copyStmt copyOptionsNoparens copyOptions copy_generic_opt_elem -createstmt -opttemp -opttypedtableelementlist -tableelementlist -tableelement -typedtableelement +createStmt +optTemp +optTypedTableElEmentList +tableElementList +tableElement +typedTableElement column_def -colconstraint -colconstraintelem +colConstraint +colConstraintElem generated_when -tablelikeoption -constraintelem +tableLikeOption +constraintElem opt_column_list opt_column_list_create column_list opt_c_include key_match -exclusionconstraintelem +exclusionConstraintElem key_actions key_update key_delete key_action -optinherit -partitionspec +optInherit +partitionSpec part_elem table_access_method_clause -optwith -oncommitoption -opttablespace -optconstablespace -existingindex -createstatsstmt -alterstatsstmt -createasstmt +optWith +onCommitOption +optTableSpace +optConstableSpace +existingIndex +createStatsStmt +alterStatsStmt +createAsStmt create_as_target opt_with_data -creatematviewstmt -refreshmatviewstmt -createseqstmt -alterseqstmt -seqoptelem -numericonly -createplangstmt -createtablespacestmt -createextensionstmt -alterextensionstmt -alterextensioncontentsstmt -createfdwstmt +createMaterializedViewStmt +refreshMaterializedViewStmt +createSeqStmt +alterSeqStmt +seqOptElem +numericOnly +createProceduralLangStmt +createTableSpaceStmt +createExtensionStmt +alterExtensionStmt +alterExtensionContentsStmt +createFdwStmt fdw_option -alterfdwstmt +alterFdwStmt create_generic_options alter_generic_options alter_generic_option_elem generic_option_elem -createforeignserverstmt +createForeignServerStmt foreign_server_version -alterforeignserverstmt -createforeigntablestmt -importforeignschemastmt -createusermappingstmt -alterusermappingstmt -createpolicystmt -alterpolicystmt -alterprocedurestmt +alterForeignServerStmt +createForeignTableStmt +importForeignSchemaStmt +createUserMappingStmt +alterUserMappingStmt +createPolicyStmt +alterPolicyStmt +alterProcedureStmt procedure_action -rowsecurityoptionalexpr -rowsecurityoptionalwithcheck -createamstmt -createtrigstmt -triggeractiontime -triggerevents -triggeroneevent -triggerwhen +rowSecurityOptionalExpr +rowSecurityOptionalWithCheck +createAccessMethodStmt +createTrigStmt +triggerActionTime +triggerEvents +triggerOneEvent +triggerWhen function_or_procedure -triggerfuncargs -triggerfuncarg -constraintattributeElem -createeventtrigstmt +triggerFuncArgs +triggerFuncArg +constraintAttributeElem +createEventTrigStmt event_trigger_when_item -altereventtrigstmt -createassertionstmt -definestmt +alterEventTrigStmt +createAssertionStmt +defineStmt definition def_elem def_arg -old_aggr_elem -alterenumstmt +old_aggregate_elem +alterEnumStmt opt_if_not_exists -createopclassstmt -opclass_item -createopfamilystmt -alteropfamilystmt -opclass_drop -reassignownedstmt -dropstmt +createOperatorClassStmt +opClassItem +createOperatorFamilyStmt +alterOperatorFamilyStmt +opClassDrop +reassignOwnedStmt +dropStmt object_type_any_name object_type_name any_name_list any_name attrs -truncatestmt +truncateStmt truncate_table -commentstmt -seclabelstmt -fetchstmt +commentStmt +secLabelStmt +fetchStmt fetch_args from_in -grantstmt -revokestmt +grantStmt +revokeStmt privileges -beforeprivilegeselect +beforePrivilegeSelect privilege privilege_target grantee_list -grantrolestmt -revokerolestmt -alterdefaultprivilegesstmt +grantRoleStmt +revokeRoleStmt +alterDefaultPrivilegesStmt defaclaction defacl_privilege_target -indexstmt +indexStmt index_params index_elem -createfunctionstmt +createFunctionStmt opt_or_replace func_args func_args_list -routine_with_argtypes_list -routine_with_argtypes -procedure_with_argtypes_list -procedure_with_argtypes -function_with_argtypes_list -function_with_argtypes +routineWithArgTypesList +routineWithArgTypes +procedureWithArgTypesList +procedureWithArgTypes +functionWithArgTypesList +functionWithArgTypes func_arg arg_class func_type func_arg_with_default -aggr_args -aggregate_with_argtypes +aggregate_args +aggregateWithArgTypes common_func_opt_item -createfunc_opt_item +create_func_opt_item opt_definition table_func_column -alterfunctionstmt -removefuncstmt -removeaggrstmt -removeoperstmt -oper_argtypes +alterFunctionStmt +removeFuncStmt +removeAggregateStmt +removeOperatorStmt +operatorArgTypes any_operator -operator_with_argtypes -dostmt -createcaststmt +operatorWithArgTypes +doStmt +createCastStmt opt_if_exists -createtransformstmt +createTransformStmt sql_with_function -reindexstmt -altertblspcstmt -renamestmt -alterobjectdependsstmt -alterobjectschemastmt -alteroperatorstmt +reindexStmt +alterTblSpcStmt +renameStmt +alterObjectDependsStmt +alterObjectSchemaStmt +alterOperatorStmt operator_def_list operator_def_elem -altertypestmt -alterownerstmt -createpublicationstmt -alterpublicationstmt -createsubscriptionstmt -altersubscriptionstmt -rulestmt -ruleactionstmt -notifystmt +alterTypeStmt +alterOwnerStmt +createPublicationStmt +alterPublicationStmt +createSubscriptionStmt +alterSubscriptionStmt +ruleStmt +ruleActionStmt +notifyStmt notify_payload -listenstmt -unlistenstmt -transactionstmt +listenStmt +unListenStmt +transactionStmt opt_transaction transaction_mode_item transaction_mode_list -viewstmt -loadstmt -createdbstmt -createdb_opt_item -alterdatabasestmt -alterdatabasesetstmt -altercollationstmt -altersystemstmt -createdomainstmt -alterdomainstmt -altertsdictionarystmt -altertsconfigurationstmt -createconversionstmt -clusterstmt -vacuumstmt -analyzestmt +viewStmt +loadStmt +createDbStmt +create_db_opt_item +alterDatabaseStmt +alterDatabaseSetStmt +alterCollationStmt +alterSystemStmt +createDomainStmt +alterDomainStmt +alterSearchDictionaryStmt +alterSearchConfigurationStmt +createConversionStmt +clusterStmt +vacuumStmt +analyzeStmt analyze_keyword vac_analyze_option_elem analyze_option_elem opt_verbose vacuum_relation vacuum_relation_list -explainstmt -explainablestmt +explainStmt +explainableStmt explain_option_list -preparestmt +prepareStmt prep_type_clause -preparablestmt -executestmt +preParableStmt +executeStmt execute_param_clause -deallocatestmt -insertstmt +dealLocateStmt +insertStmt insert_rest insert_column_list insert_column_item returning_clause -deletestmt -lockstmt -updatestmt +deleteStmt +lockStmt +updateStmt set_clause_list set_clause -declarecursorstmt -selectstmt +declareCursorStmt +selectStmt select_with_parens select_no_parens select_clause @@ -1480,13 +1480,13 @@ simple_select set_operator_with_all_or_distinct with_clause common_table_expr -search_cluase -cycle_cluase +search_clause +cycle_clause into_clause -opttempTableName +optTempTableName distinct_clause sort_clause -sortby +sortBy select_limit limit_clause fetch_clause @@ -1508,24 +1508,24 @@ relation_expr publication_relation_expr relation_expr_list relation_expr_opt_alias -tablesample_clause +tableSampleClause func_table -rowsfrom_item +rowsFromItem where_clause where_or_current_clause -tablefuncelementlist -tablefuncelement -xmltable -xmltable_column_el +tableFuncElementList +tableFuncElement +xmlTable +xmlTableColumnEl xml_namespace_el typename -simpletypename -consttypename +simpleTypeName +constTypeName numeric opt_float bit character -constdatetime +constDatetime opt_interval interval_second comparisonOperator @@ -1541,7 +1541,7 @@ func_expr_common_subexpr xml_attribute_list xml_attribute_el document_or_content -xmlexists_argument +xmlExistsArgument xml_passing_mech window_clause window_definition @@ -1559,7 +1559,7 @@ qual_all_op subquery_Op expr_list column_expr -column_expr_noparen +column_expr_no_paren func_arg_list func_arg_expr array_expr @@ -1596,15 +1596,15 @@ column_name column_name_create function_name_create function_name -sconst +stringConst anysconst -signediconst -rolespec +signedConst +roleSpec role_list -colid +colId type_function_name -nonreservedword -collabel +nonReservedWord +colLabel identifier unreserved_keyword col_name_keyword @@ -1642,7 +1642,7 @@ opt_open_bound_list_item stmt_fetch opt_fetch_direction stmt_move -mergestmt +mergeStmt data_source merge_when_clause merge_insert @@ -1661,4 +1661,4 @@ sql_expression atn: -[4, 1, 593, 8521, 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, 1, 0, 5, 0, 936, 8, 0, 10, 0, 12, 0, 939, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, 945, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1065, 8, 2, 3, 2, 1067, 8, 2, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 1076, 8, 4, 1, 4, 5, 4, 1079, 8, 4, 10, 4, 12, 4, 1082, 9, 4, 1, 5, 1, 5, 1, 5, 3, 5, 1087, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 1122, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 1132, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 1138, 8, 7, 1, 7, 5, 7, 1141, 8, 7, 10, 7, 12, 7, 1144, 9, 7, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 1150, 8, 8, 1, 8, 5, 8, 1153, 8, 8, 10, 8, 12, 8, 1156, 9, 8, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 1162, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 1173, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 5, 11, 1179, 8, 11, 10, 11, 12, 11, 1182, 9, 11, 1, 11, 3, 11, 1185, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 1197, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 1203, 8, 11, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1209, 8, 12, 1, 12, 1, 12, 3, 12, 1213, 8, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1218, 8, 12, 1, 12, 1, 12, 3, 12, 1222, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1235, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1245, 8, 12, 3, 12, 1247, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 1253, 8, 13, 1, 13, 5, 13, 1256, 8, 13, 10, 13, 12, 13, 1259, 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 3, 15, 1271, 8, 15, 1, 15, 3, 15, 1274, 8, 15, 1, 15, 1, 15, 1, 15, 3, 15, 1279, 8, 15, 1, 15, 5, 15, 1282, 8, 15, 10, 15, 12, 15, 1285, 9, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 1295, 8, 17, 1, 18, 1, 18, 3, 18, 1299, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 1311, 8, 19, 1, 20, 1, 20, 3, 20, 1315, 8, 20, 1, 20, 3, 20, 1318, 8, 20, 1, 20, 1, 20, 3, 20, 1322, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 1334, 8, 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, 21, 1, 21, 1, 21, 3, 21, 1352, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 1357, 8, 22, 10, 22, 12, 22, 1360, 9, 22, 1, 23, 1, 23, 1, 23, 5, 23, 1365, 8, 23, 10, 23, 12, 23, 1368, 9, 23, 1, 24, 1, 24, 3, 24, 1372, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1379, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1387, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 1393, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1401, 8, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1409, 8, 28, 1, 29, 1, 29, 3, 29, 1413, 8, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 1427, 8, 31, 1, 32, 1, 32, 1, 32, 3, 32, 1432, 8, 32, 1, 33, 1, 33, 1, 33, 3, 33, 1437, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 1449, 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 1455, 8, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 3, 38, 1467, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1472, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1482, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1488, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1493, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1501, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1506, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1513, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1518, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1523, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1533, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1538, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1543, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1550, 8, 38, 1, 38, 1, 38, 3, 38, 1554, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1568, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1574, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1580, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1585, 8, 38, 1, 39, 1, 39, 1, 39, 5, 39, 1590, 8, 39, 10, 39, 12, 39, 1593, 9, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 1604, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 5, 41, 1610, 8, 41, 10, 41, 12, 41, 1613, 9, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 3, 42, 1620, 8, 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, 3, 44, 1636, 8, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 3, 46, 1645, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 5, 46, 1652, 8, 46, 10, 46, 12, 46, 1655, 9, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1663, 8, 46, 1, 46, 1, 46, 3, 46, 1667, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1679, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1687, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1697, 8, 46, 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, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1717, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1722, 8, 46, 1, 46, 3, 46, 1725, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1732, 8, 46, 1, 46, 3, 46, 1735, 8, 46, 1, 46, 1, 46, 3, 46, 1739, 8, 46, 1, 46, 1, 46, 3, 46, 1743, 8, 46, 1, 46, 3, 46, 1746, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1751, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1756, 8, 46, 1, 46, 1, 46, 3, 46, 1760, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1769, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1775, 8, 46, 1, 46, 1, 46, 3, 46, 1779, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1788, 8, 46, 1, 46, 3, 46, 1791, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1797, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1806, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 1816, 8, 46, 11, 46, 12, 46, 1817, 1, 46, 1, 46, 3, 46, 1822, 8, 46, 1, 46, 1, 46, 3, 46, 1826, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1831, 8, 46, 1, 46, 3, 46, 1834, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1840, 8, 46, 4, 46, 1842, 8, 46, 11, 46, 12, 46, 1843, 1, 46, 1, 46, 3, 46, 1848, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1854, 8, 46, 1, 46, 1, 46, 3, 46, 1858, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1863, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1868, 8, 46, 1, 46, 1, 46, 3, 46, 1872, 8, 46, 1, 46, 3, 46, 1875, 8, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1882, 8, 47, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 5, 50, 1893, 8, 50, 10, 50, 12, 50, 1896, 9, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 1908, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 1932, 8, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 1940, 8, 54, 10, 54, 12, 54, 1943, 9, 54, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1949, 8, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1954, 8, 55, 1, 55, 1, 55, 3, 55, 1958, 8, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1965, 8, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1970, 8, 55, 1, 55, 3, 55, 1973, 8, 55, 3, 55, 1975, 8, 55, 1, 56, 1, 56, 1, 56, 3, 56, 1980, 8, 56, 1, 57, 1, 57, 3, 57, 1984, 8, 57, 1, 57, 1, 57, 3, 57, 1988, 8, 57, 1, 57, 1, 57, 3, 57, 1992, 8, 57, 1, 57, 1, 57, 1, 57, 3, 57, 1997, 8, 57, 1, 57, 3, 57, 2000, 8, 57, 1, 57, 1, 57, 3, 57, 2004, 8, 57, 1, 57, 3, 57, 2007, 8, 57, 1, 57, 1, 57, 3, 57, 2011, 8, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 3, 57, 2019, 8, 57, 1, 57, 1, 57, 1, 57, 3, 57, 2024, 8, 57, 1, 57, 3, 57, 2027, 8, 57, 1, 57, 1, 57, 3, 57, 2031, 8, 57, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2037, 8, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2046, 8, 58, 1, 58, 1, 58, 3, 58, 2050, 8, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2060, 8, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2065, 8, 58, 5, 58, 2067, 8, 58, 10, 58, 12, 58, 2070, 9, 58, 1, 58, 3, 58, 2073, 8, 58, 5, 58, 2075, 8, 58, 10, 58, 12, 58, 2078, 9, 58, 1, 59, 1, 59, 1, 59, 1, 59, 3, 59, 2084, 8, 59, 1, 59, 1, 59, 1, 59, 3, 59, 2089, 8, 59, 5, 59, 2091, 8, 59, 10, 59, 12, 59, 2094, 9, 59, 1, 59, 1, 59, 3, 59, 2098, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 5, 60, 2108, 8, 60, 10, 60, 12, 60, 2111, 9, 60, 1, 60, 1, 60, 3, 60, 2115, 8, 60, 1, 61, 1, 61, 3, 61, 2119, 8, 61, 1, 61, 1, 61, 3, 61, 2123, 8, 61, 1, 61, 1, 61, 1, 61, 3, 61, 2128, 8, 61, 1, 61, 1, 61, 3, 61, 2132, 8, 61, 1, 61, 3, 61, 2135, 8, 61, 1, 61, 3, 61, 2138, 8, 61, 1, 61, 3, 61, 2141, 8, 61, 1, 61, 3, 61, 2144, 8, 61, 1, 61, 3, 61, 2147, 8, 61, 1, 61, 1, 61, 1, 61, 3, 61, 2152, 8, 61, 1, 61, 3, 61, 2155, 8, 61, 1, 61, 3, 61, 2158, 8, 61, 1, 61, 3, 61, 2161, 8, 61, 1, 61, 3, 61, 2164, 8, 61, 1, 61, 3, 61, 2167, 8, 61, 1, 61, 1, 61, 1, 61, 1, 61, 3, 61, 2173, 8, 61, 1, 61, 1, 61, 3, 61, 2177, 8, 61, 1, 61, 3, 61, 2180, 8, 61, 1, 61, 3, 61, 2183, 8, 61, 1, 61, 3, 61, 2186, 8, 61, 1, 61, 3, 61, 2189, 8, 61, 3, 61, 2191, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 3, 62, 2198, 8, 62, 1, 63, 1, 63, 1, 63, 1, 63, 5, 63, 2204, 8, 63, 10, 63, 12, 63, 2207, 9, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 5, 64, 2214, 8, 64, 10, 64, 12, 64, 2217, 9, 64, 1, 65, 1, 65, 3, 65, 2221, 8, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 5, 65, 2229, 8, 65, 10, 65, 12, 65, 2232, 9, 65, 3, 65, 2234, 8, 65, 1, 66, 1, 66, 1, 66, 3, 66, 2239, 8, 66, 1, 66, 5, 66, 2242, 8, 66, 10, 66, 12, 66, 2245, 9, 66, 1, 66, 1, 66, 3, 66, 2249, 8, 66, 1, 66, 3, 66, 2252, 8, 66, 1, 67, 1, 67, 1, 67, 3, 67, 2257, 8, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 3, 67, 2266, 8, 67, 3, 67, 2268, 8, 67, 1, 67, 1, 67, 3, 67, 2272, 8, 67, 1, 67, 3, 67, 2275, 8, 67, 1, 67, 1, 67, 3, 67, 2279, 8, 67, 1, 67, 5, 67, 2282, 8, 67, 10, 67, 12, 67, 2285, 9, 67, 1, 68, 1, 68, 3, 68, 2289, 8, 68, 1, 68, 1, 68, 3, 68, 2293, 8, 68, 1, 68, 3, 68, 2296, 8, 68, 1, 68, 1, 68, 3, 68, 2300, 8, 68, 1, 69, 3, 69, 2303, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2308, 8, 69, 1, 69, 3, 69, 2311, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2316, 8, 69, 1, 69, 3, 69, 2319, 8, 69, 1, 69, 1, 69, 3, 69, 2323, 8, 69, 1, 69, 3, 69, 2326, 8, 69, 1, 69, 3, 69, 2329, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2334, 8, 69, 1, 69, 3, 69, 2337, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2345, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 4, 69, 2355, 8, 69, 11, 69, 12, 69, 2356, 1, 69, 1, 69, 3, 69, 2361, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2368, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2373, 8, 69, 1, 69, 3, 69, 2376, 8, 69, 1, 69, 3, 69, 2379, 8, 69, 1, 69, 3, 69, 2382, 8, 69, 1, 70, 1, 70, 1, 70, 3, 70, 2387, 8, 70, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 5, 72, 2396, 8, 72, 10, 72, 12, 72, 2399, 9, 72, 1, 72, 1, 72, 1, 72, 3, 72, 2404, 8, 72, 1, 72, 1, 72, 3, 72, 2408, 8, 72, 1, 72, 3, 72, 2411, 8, 72, 1, 72, 3, 72, 2414, 8, 72, 1, 72, 5, 72, 2417, 8, 72, 10, 72, 12, 72, 2420, 9, 72, 1, 72, 1, 72, 5, 72, 2424, 8, 72, 10, 72, 12, 72, 2427, 9, 72, 3, 72, 2429, 8, 72, 1, 72, 1, 72, 3, 72, 2433, 8, 72, 1, 72, 1, 72, 1, 72, 1, 72, 5, 72, 2439, 8, 72, 10, 72, 12, 72, 2442, 9, 72, 1, 72, 1, 72, 3, 72, 2446, 8, 72, 1, 72, 3, 72, 2449, 8, 72, 1, 72, 3, 72, 2452, 8, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 3, 72, 2459, 8, 72, 1, 72, 5, 72, 2462, 8, 72, 10, 72, 12, 72, 2465, 9, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 3, 72, 2473, 8, 72, 1, 72, 3, 72, 2476, 8, 72, 1, 72, 3, 72, 2479, 8, 72, 1, 72, 5, 72, 2482, 8, 72, 10, 72, 12, 72, 2485, 9, 72, 3, 72, 2487, 8, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 5, 74, 2497, 8, 74, 10, 74, 12, 74, 2500, 9, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 5, 75, 2507, 8, 75, 10, 75, 12, 75, 2510, 9, 75, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 3, 78, 2526, 8, 78, 1, 79, 1, 79, 3, 79, 2530, 8, 79, 1, 79, 1, 79, 3, 79, 2534, 8, 79, 3, 79, 2536, 8, 79, 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, 3, 82, 2553, 8, 82, 3, 82, 2555, 8, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 5, 84, 2569, 8, 84, 10, 84, 12, 84, 2572, 9, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 3, 85, 2582, 8, 85, 1, 85, 3, 85, 2585, 8, 85, 1, 85, 3, 85, 2588, 8, 85, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 2597, 8, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 3, 88, 2606, 8, 88, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 3, 92, 2622, 8, 92, 1, 92, 3, 92, 2625, 8, 92, 1, 92, 3, 92, 2628, 8, 92, 1, 92, 1, 92, 1, 92, 1, 92, 5, 92, 2634, 8, 92, 10, 92, 12, 92, 2637, 9, 92, 1, 92, 3, 92, 2640, 8, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 3, 93, 2647, 8, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 3, 94, 2656, 8, 94, 1, 94, 1, 94, 3, 94, 2660, 8, 94, 1, 94, 1, 94, 1, 94, 1, 94, 3, 94, 2666, 8, 94, 1, 95, 1, 95, 3, 95, 2670, 8, 95, 1, 95, 3, 95, 2673, 8, 95, 1, 95, 3, 95, 2676, 8, 95, 1, 95, 3, 95, 2679, 8, 95, 1, 95, 3, 95, 2682, 8, 95, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 2688, 8, 96, 1, 97, 1, 97, 3, 97, 2692, 8, 97, 1, 97, 1, 97, 1, 97, 3, 97, 2697, 8, 97, 1, 97, 1, 97, 3, 97, 2701, 8, 97, 1, 97, 3, 97, 2704, 8, 97, 1, 97, 3, 97, 2707, 8, 97, 1, 97, 3, 97, 2710, 8, 97, 1, 97, 1, 97, 1, 97, 3, 97, 2715, 8, 97, 1, 98, 1, 98, 1, 98, 1, 98, 3, 98, 2721, 8, 98, 1, 98, 1, 98, 3, 98, 2725, 8, 98, 1, 99, 1, 99, 3, 99, 2729, 8, 99, 1, 99, 1, 99, 3, 99, 2733, 8, 99, 1, 99, 1, 99, 4, 99, 2737, 8, 99, 11, 99, 12, 99, 2738, 3, 99, 2741, 8, 99, 1, 100, 1, 100, 1, 100, 3, 100, 2746, 8, 100, 1, 100, 1, 100, 4, 100, 2750, 8, 100, 11, 100, 12, 100, 2751, 1, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2758, 8, 101, 1, 101, 1, 101, 3, 101, 2762, 8, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2777, 8, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2782, 8, 101, 1, 101, 3, 101, 2785, 8, 101, 3, 101, 2787, 8, 101, 1, 102, 3, 102, 2790, 8, 102, 1, 102, 1, 102, 3, 102, 2794, 8, 102, 1, 103, 1, 103, 3, 103, 2798, 8, 103, 1, 103, 3, 103, 2801, 8, 103, 1, 103, 3, 103, 2804, 8, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 3, 103, 2812, 8, 103, 1, 103, 1, 103, 1, 103, 1, 103, 3, 103, 2818, 8, 103, 3, 103, 2820, 8, 103, 1, 104, 1, 104, 1, 104, 1, 104, 3, 104, 2826, 8, 104, 1, 104, 1, 104, 1, 104, 3, 104, 2831, 8, 104, 1, 105, 1, 105, 1, 105, 3, 105, 2836, 8, 105, 1, 105, 1, 105, 3, 105, 2840, 8, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 5, 105, 2847, 8, 105, 10, 105, 12, 105, 2850, 9, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 5, 106, 2858, 8, 106, 10, 106, 12, 106, 2861, 9, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 2899, 8, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 4, 108, 2907, 8, 108, 11, 108, 12, 108, 2908, 3, 108, 2911, 8, 108, 1, 108, 3, 108, 2914, 8, 108, 1, 109, 1, 109, 3, 109, 2918, 8, 109, 1, 109, 1, 109, 3, 109, 2922, 8, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 4, 110, 2930, 8, 110, 11, 110, 12, 110, 2931, 3, 110, 2934, 8, 110, 1, 110, 1, 110, 4, 110, 2938, 8, 110, 11, 110, 12, 110, 2939, 3, 110, 2942, 8, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 5, 111, 2949, 8, 111, 10, 111, 12, 111, 2952, 9, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 5, 112, 2961, 8, 112, 10, 112, 12, 112, 2964, 9, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 3, 115, 2977, 8, 115, 1, 115, 1, 115, 1, 115, 3, 115, 2982, 8, 115, 1, 115, 3, 115, 2985, 8, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 3, 115, 2992, 8, 115, 1, 116, 1, 116, 1, 116, 3, 116, 2997, 8, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 3, 117, 3005, 8, 117, 3, 117, 3007, 8, 117, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3013, 8, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3018, 8, 118, 1, 118, 1, 118, 3, 118, 3022, 8, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3027, 8, 118, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3033, 8, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3040, 8, 118, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3046, 8, 118, 3, 118, 3048, 8, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 3057, 8, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 3063, 8, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 3071, 8, 119, 1, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3077, 8, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3082, 8, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3087, 8, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 3, 121, 3095, 8, 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, 3, 122, 3110, 8, 122, 3, 122, 3112, 8, 122, 1, 122, 1, 122, 3, 122, 3116, 8, 122, 1, 122, 1, 122, 3, 122, 3120, 8, 122, 1, 122, 3, 122, 3123, 8, 122, 1, 122, 3, 122, 3126, 8, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 3, 123, 3135, 8, 123, 1, 123, 3, 123, 3138, 8, 123, 1, 123, 3, 123, 3141, 8, 123, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 3147, 8, 124, 1, 124, 1, 124, 5, 124, 3151, 8, 124, 10, 124, 12, 124, 3154, 9, 124, 1, 124, 3, 124, 3157, 8, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 3169, 8, 124, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 3175, 8, 124, 1, 125, 3, 125, 3178, 8, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3183, 8, 125, 1, 125, 1, 125, 3, 125, 3187, 8, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3194, 8, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3204, 8, 125, 3, 125, 3206, 8, 125, 1, 126, 1, 126, 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, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 3, 129, 3230, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3242, 8, 129, 1, 129, 4, 129, 3245, 8, 129, 11, 129, 12, 129, 3246, 3, 129, 3249, 8, 129, 1, 129, 1, 129, 3, 129, 3253, 8, 129, 1, 129, 3, 129, 3256, 8, 129, 1, 129, 3, 129, 3259, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3269, 8, 129, 1, 129, 3, 129, 3272, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3282, 8, 129, 1, 129, 5, 129, 3285, 8, 129, 10, 129, 12, 129, 3288, 9, 129, 1, 129, 1, 129, 3, 129, 3292, 8, 129, 1, 129, 3, 129, 3295, 8, 129, 1, 129, 3, 129, 3298, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3306, 8, 129, 1, 130, 1, 130, 1, 130, 1, 130, 3, 130, 3312, 8, 130, 1, 131, 1, 131, 1, 131, 5, 131, 3317, 8, 131, 10, 131, 12, 131, 3320, 9, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 3, 132, 3327, 8, 132, 1, 132, 3, 132, 3330, 8, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 3, 134, 3341, 8, 134, 1, 135, 1, 135, 3, 135, 3345, 8, 135, 1, 135, 1, 135, 5, 135, 3349, 8, 135, 10, 135, 12, 135, 3352, 9, 135, 1, 136, 1, 136, 1, 136, 1, 136, 3, 136, 3358, 8, 136, 1, 137, 3, 137, 3361, 8, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 3, 137, 3370, 8, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 5, 138, 3382, 8, 138, 10, 138, 12, 138, 3385, 9, 138, 3, 138, 3387, 8, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 5, 139, 3399, 8, 139, 10, 139, 12, 139, 3402, 9, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 3, 140, 3412, 8, 140, 1, 140, 3, 140, 3415, 8, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 5, 141, 3425, 8, 141, 10, 141, 12, 141, 3428, 9, 141, 1, 142, 1, 142, 3, 142, 3432, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 5, 142, 3443, 8, 142, 10, 142, 12, 142, 3446, 9, 142, 1, 142, 1, 142, 3, 142, 3450, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3463, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 5, 142, 3470, 8, 142, 10, 142, 12, 142, 3473, 9, 142, 3, 142, 3475, 8, 142, 1, 142, 3, 142, 3478, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3485, 8, 142, 1, 142, 3, 142, 3488, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3500, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3506, 8, 142, 3, 142, 3508, 8, 142, 1, 143, 1, 143, 1, 143, 1, 143, 5, 143, 3514, 8, 143, 10, 143, 12, 143, 3517, 9, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 3, 144, 3524, 8, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 3, 145, 3532, 8, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 3, 147, 3544, 8, 147, 1, 147, 1, 147, 1, 147, 3, 147, 3549, 8, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 3, 147, 3560, 8, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 3, 149, 3571, 8, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 3, 149, 3579, 8, 149, 1, 149, 1, 149, 1, 149, 1, 149, 5, 149, 3585, 8, 149, 10, 149, 12, 149, 3588, 9, 149, 1, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3594, 8, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3601, 8, 150, 3, 150, 3603, 8, 150, 1, 150, 3, 150, 3606, 8, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3611, 8, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3616, 8, 150, 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, 152, 1, 152, 5, 152, 3633, 8, 152, 10, 152, 12, 152, 3636, 9, 152, 1, 152, 1, 152, 1, 152, 1, 152, 5, 152, 3642, 8, 152, 10, 152, 12, 152, 3645, 9, 152, 3, 152, 3647, 8, 152, 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, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3674, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3683, 8, 155, 1, 155, 3, 155, 3686, 8, 155, 1, 155, 1, 155, 3, 155, 3690, 8, 155, 1, 155, 1, 155, 3, 155, 3694, 8, 155, 1, 155, 1, 155, 3, 155, 3698, 8, 155, 1, 155, 1, 155, 1, 155, 5, 155, 3703, 8, 155, 10, 155, 12, 155, 3706, 9, 155, 1, 155, 3, 155, 3709, 8, 155, 1, 155, 1, 155, 3, 155, 3713, 8, 155, 1, 155, 1, 155, 3, 155, 3717, 8, 155, 1, 155, 1, 155, 3, 155, 3721, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3726, 8, 155, 1, 155, 1, 155, 3, 155, 3730, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3735, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3741, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3746, 8, 155, 1, 155, 1, 155, 1, 155, 5, 155, 3751, 8, 155, 10, 155, 12, 155, 3754, 9, 155, 1, 155, 3, 155, 3757, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3763, 8, 155, 1, 155, 1, 155, 3, 155, 3767, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3772, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3780, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3786, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3791, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3798, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3803, 8, 155, 1, 155, 1, 155, 3, 155, 3807, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3812, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3818, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3825, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3830, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3837, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3842, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3849, 8, 155, 1, 155, 1, 155, 3, 155, 3853, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 5, 155, 3859, 8, 155, 10, 155, 12, 155, 3862, 9, 155, 1, 155, 3, 155, 3865, 8, 155, 3, 155, 3867, 8, 155, 1, 156, 3, 156, 3870, 8, 156, 1, 156, 1, 156, 1, 156, 3, 156, 3875, 8, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 3, 156, 3885, 8, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 3, 157, 3900, 8, 157, 1, 157, 3, 157, 3903, 8, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 3, 157, 3911, 8, 157, 1, 158, 1, 158, 1, 158, 5, 158, 3916, 8, 158, 10, 158, 12, 158, 3919, 9, 158, 1, 159, 1, 159, 3, 159, 3923, 8, 159, 1, 160, 1, 160, 4, 160, 3927, 8, 160, 11, 160, 12, 160, 3928, 1, 161, 1, 161, 3, 161, 3933, 8, 161, 1, 161, 1, 161, 1, 161, 5, 161, 3938, 8, 161, 10, 161, 12, 161, 3941, 9, 161, 1, 161, 1, 161, 3, 161, 3945, 8, 161, 1, 161, 3, 161, 3948, 8, 161, 1, 162, 3, 162, 3951, 8, 162, 1, 162, 1, 162, 3, 162, 3955, 8, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 3, 163, 3964, 8, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 3, 163, 3982, 8, 163, 1, 163, 3, 163, 3985, 8, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 3, 163, 4017, 8, 163, 1, 163, 1, 163, 1, 163, 3, 163, 4022, 8, 163, 1, 164, 1, 164, 1, 164, 1, 164, 3, 164, 4028, 8, 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, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 3, 164, 4048, 8, 164, 1, 164, 1, 164, 1, 164, 3, 164, 4053, 8, 164, 1, 165, 1, 165, 1, 165, 1, 166, 3, 166, 4059, 8, 166, 1, 166, 3, 166, 4062, 8, 166, 1, 166, 1, 166, 3, 166, 4066, 8, 166, 1, 166, 1, 166, 3, 166, 4070, 8, 166, 1, 166, 1, 166, 1, 166, 1, 166, 3, 166, 4076, 8, 166, 1, 166, 3, 166, 4079, 8, 166, 1, 166, 1, 166, 3, 166, 4083, 8, 166, 1, 166, 1, 166, 3, 166, 4087, 8, 166, 1, 166, 1, 166, 1, 166, 3, 166, 4092, 8, 166, 1, 166, 3, 166, 4095, 8, 166, 1, 166, 3, 166, 4098, 8, 166, 1, 166, 3, 166, 4101, 8, 166, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 3, 168, 4114, 8, 168, 1, 169, 1, 169, 1, 169, 1, 169, 3, 169, 4120, 8, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 3, 169, 4128, 8, 169, 1, 170, 1, 170, 1, 170, 5, 170, 4133, 8, 170, 10, 170, 12, 170, 4136, 9, 170, 1, 170, 1, 170, 3, 170, 4140, 8, 170, 1, 170, 3, 170, 4143, 8, 170, 1, 170, 1, 170, 1, 170, 5, 170, 4148, 8, 170, 10, 170, 12, 170, 4151, 9, 170, 3, 170, 4153, 8, 170, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 4161, 8, 172, 1, 172, 3, 172, 4164, 8, 172, 1, 173, 1, 173, 1, 173, 3, 173, 4169, 8, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 3, 173, 4176, 8, 173, 1, 173, 3, 173, 4179, 8, 173, 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, 173, 1, 173, 1, 173, 1, 173, 5, 173, 4197, 8, 173, 10, 173, 12, 173, 4200, 9, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 3, 173, 4211, 8, 173, 1, 174, 3, 174, 4214, 8, 174, 1, 174, 1, 174, 1, 174, 1, 174, 3, 174, 4220, 8, 174, 1, 174, 5, 174, 4223, 8, 174, 10, 174, 12, 174, 4226, 9, 174, 1, 175, 1, 175, 1, 175, 1, 175, 5, 175, 4232, 8, 175, 10, 175, 12, 175, 4235, 9, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 3, 175, 4242, 8, 175, 1, 175, 1, 175, 1, 175, 3, 175, 4247, 8, 175, 1, 176, 1, 176, 1, 176, 1, 176, 3, 176, 4253, 8, 176, 1, 176, 1, 176, 1, 176, 5, 176, 4258, 8, 176, 10, 176, 12, 176, 4261, 9, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 3, 176, 4268, 8, 176, 1, 176, 3, 176, 4271, 8, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 5, 177, 4282, 8, 177, 10, 177, 12, 177, 4285, 9, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 4298, 8, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 4304, 8, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 4312, 8, 178, 3, 178, 4314, 8, 178, 1, 179, 1, 179, 1, 180, 1, 180, 3, 180, 4320, 8, 180, 1, 180, 1, 180, 3, 180, 4324, 8, 180, 1, 180, 3, 180, 4327, 8, 180, 1, 180, 3, 180, 4330, 8, 180, 1, 180, 1, 180, 1, 180, 3, 180, 4335, 8, 180, 1, 180, 1, 180, 1, 180, 3, 180, 4340, 8, 180, 1, 180, 1, 180, 3, 180, 4344, 8, 180, 1, 180, 3, 180, 4347, 8, 180, 1, 180, 3, 180, 4350, 8, 180, 1, 180, 3, 180, 4353, 8, 180, 1, 180, 3, 180, 4356, 8, 180, 1, 181, 1, 181, 1, 181, 1, 181, 5, 181, 4362, 8, 181, 10, 181, 12, 181, 4365, 9, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 3, 182, 4375, 8, 182, 1, 182, 3, 182, 4378, 8, 182, 1, 182, 3, 182, 4381, 8, 182, 1, 182, 1, 182, 1, 182, 3, 182, 4386, 8, 182, 1, 182, 3, 182, 4389, 8, 182, 1, 182, 1, 182, 3, 182, 4393, 8, 182, 1, 183, 1, 183, 3, 183, 4397, 8, 183, 1, 183, 1, 183, 1, 183, 1, 183, 3, 183, 4403, 8, 183, 1, 183, 1, 183, 1, 183, 1, 183, 5, 183, 4409, 8, 183, 10, 183, 12, 183, 4412, 9, 183, 3, 183, 4414, 8, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 5, 183, 4425, 8, 183, 10, 183, 12, 183, 4428, 9, 183, 1, 183, 1, 183, 3, 183, 4432, 8, 183, 3, 183, 4434, 8, 183, 1, 183, 4, 183, 4437, 8, 183, 11, 183, 12, 183, 4438, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 3, 183, 4446, 8, 183, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 3, 185, 4453, 8, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 5, 186, 4460, 8, 186, 10, 186, 12, 186, 4463, 9, 186, 1, 187, 1, 187, 1, 187, 5, 187, 4468, 8, 187, 10, 187, 12, 187, 4471, 9, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 3, 188, 4478, 8, 188, 1, 189, 1, 189, 1, 189, 5, 189, 4483, 8, 189, 10, 189, 12, 189, 4486, 9, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 3, 190, 4493, 8, 190, 1, 191, 1, 191, 1, 191, 5, 191, 4498, 8, 191, 10, 191, 12, 191, 4501, 9, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 3, 192, 4508, 8, 192, 1, 193, 1, 193, 3, 193, 4512, 8, 193, 1, 193, 1, 193, 3, 193, 4516, 8, 193, 3, 193, 4518, 8, 193, 1, 193, 1, 193, 1, 194, 1, 194, 3, 194, 4524, 8, 194, 1, 194, 1, 194, 1, 194, 3, 194, 4529, 8, 194, 1, 195, 1, 195, 3, 195, 4533, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 4540, 8, 195, 1, 196, 1, 196, 1, 196, 3, 196, 4545, 8, 196, 1, 197, 1, 197, 1, 197, 3, 197, 4550, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 4555, 8, 197, 3, 197, 4557, 8, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 3, 199, 4567, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 4577, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 4593, 8, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 5, 200, 4609, 8, 200, 10, 200, 12, 200, 4612, 9, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 3, 200, 4623, 8, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 3, 200, 4630, 8, 200, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 3, 203, 4645, 8, 203, 1, 203, 4, 203, 4648, 8, 203, 11, 203, 12, 203, 4649, 1, 203, 3, 203, 4653, 8, 203, 1, 204, 1, 204, 1, 204, 3, 204, 4658, 8, 204, 1, 204, 1, 204, 1, 204, 3, 204, 4663, 8, 204, 1, 204, 1, 204, 1, 204, 3, 204, 4668, 8, 204, 1, 204, 3, 204, 4671, 8, 204, 1, 204, 3, 204, 4674, 8, 204, 1, 205, 1, 205, 1, 205, 3, 205, 4679, 8, 205, 1, 205, 1, 205, 1, 205, 5, 205, 4684, 8, 205, 10, 205, 12, 205, 4687, 9, 205, 1, 205, 3, 205, 4690, 8, 205, 1, 206, 1, 206, 1, 206, 3, 206, 4695, 8, 206, 1, 206, 1, 206, 1, 206, 5, 206, 4700, 8, 206, 10, 206, 12, 206, 4703, 9, 206, 1, 206, 3, 206, 4706, 8, 206, 1, 207, 1, 207, 1, 207, 1, 207, 3, 207, 4712, 8, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 3, 207, 4721, 8, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 5, 208, 4728, 8, 208, 10, 208, 12, 208, 4731, 9, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 4, 210, 4742, 8, 210, 11, 210, 12, 210, 4743, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 3, 211, 4757, 8, 211, 1, 211, 1, 211, 1, 211, 1, 211, 3, 211, 4763, 8, 211, 1, 211, 1, 211, 3, 211, 4767, 8, 211, 3, 211, 4769, 8, 211, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 3, 213, 4776, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4789, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4796, 8, 213, 3, 213, 4798, 8, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 5, 215, 4812, 8, 215, 10, 215, 12, 215, 4815, 9, 215, 1, 215, 3, 215, 4818, 8, 215, 1, 215, 1, 215, 3, 215, 4822, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4827, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4832, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4837, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4842, 8, 215, 1, 215, 3, 215, 4845, 8, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4857, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4910, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4919, 8, 217, 1, 217, 1, 217, 3, 217, 4923, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4932, 8, 217, 1, 217, 1, 217, 3, 217, 4936, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4945, 8, 217, 1, 217, 1, 217, 3, 217, 4949, 8, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4954, 8, 217, 1, 217, 3, 217, 4957, 8, 217, 1, 217, 1, 217, 3, 217, 4961, 8, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4966, 8, 217, 3, 217, 4968, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4977, 8, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4982, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4993, 8, 217, 1, 217, 1, 217, 3, 217, 4997, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 5011, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 5019, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 5057, 8, 217, 3, 217, 5059, 8, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 3, 218, 5078, 8, 218, 1, 218, 3, 218, 5081, 8, 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, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 3, 219, 5108, 8, 219, 1, 219, 1, 219, 3, 219, 5112, 8, 219, 1, 219, 1, 219, 3, 219, 5116, 8, 219, 1, 219, 1, 219, 3, 219, 5120, 8, 219, 1, 219, 1, 219, 3, 219, 5124, 8, 219, 1, 219, 3, 219, 5127, 8, 219, 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, 219, 3, 219, 5142, 8, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 3, 219, 5149, 8, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 5, 221, 5161, 8, 221, 10, 221, 12, 221, 5164, 9, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 3, 222, 5176, 8, 222, 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, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5201, 8, 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, 224, 1, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5220, 8, 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, 224, 3, 224, 5235, 8, 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, 224, 1, 224, 3, 224, 5251, 8, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5258, 8, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 3, 225, 5269, 8, 225, 1, 225, 3, 225, 5272, 8, 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, 5, 226, 5289, 8, 226, 10, 226, 12, 226, 5292, 9, 226, 3, 226, 5294, 8, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 5, 227, 5305, 8, 227, 10, 227, 12, 227, 5308, 9, 227, 1, 227, 3, 227, 5311, 8, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 3, 228, 5331, 8, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 5, 228, 5341, 8, 228, 10, 228, 12, 228, 5344, 9, 228, 1, 228, 3, 228, 5347, 8, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 3, 228, 5369, 8, 228, 1, 229, 1, 229, 3, 229, 5373, 8, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 3, 229, 5383, 8, 229, 1, 229, 1, 229, 3, 229, 5387, 8, 229, 1, 229, 1, 229, 1, 229, 1, 229, 3, 229, 5393, 8, 229, 1, 229, 1, 229, 3, 229, 5397, 8, 229, 5, 229, 5399, 8, 229, 10, 229, 12, 229, 5402, 9, 229, 1, 229, 3, 229, 5405, 8, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 3, 230, 5412, 8, 230, 1, 231, 1, 231, 1, 231, 3, 231, 5417, 8, 231, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 3, 234, 5428, 8, 234, 1, 235, 1, 235, 3, 235, 5432, 8, 235, 1, 235, 3, 235, 5435, 8, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5440, 8, 235, 1, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5446, 8, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5457, 8, 235, 1, 235, 1, 235, 3, 235, 5461, 8, 235, 1, 235, 3, 235, 5464, 8, 235, 1, 235, 1, 235, 3, 235, 5468, 8, 235, 1, 235, 1, 235, 3, 235, 5472, 8, 235, 1, 235, 3, 235, 5475, 8, 235, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 3, 237, 5485, 8, 237, 1, 237, 3, 237, 5488, 8, 237, 1, 238, 1, 238, 3, 238, 5492, 8, 238, 1, 238, 5, 238, 5495, 8, 238, 10, 238, 12, 238, 5498, 9, 238, 1, 239, 1, 239, 1, 239, 3, 239, 5503, 8, 239, 1, 239, 3, 239, 5506, 8, 239, 1, 239, 1, 239, 1, 239, 3, 239, 5511, 8, 239, 1, 239, 3, 239, 5514, 8, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 3, 239, 5521, 8, 239, 3, 239, 5523, 8, 239, 1, 239, 1, 239, 1, 239, 1, 239, 3, 239, 5529, 8, 239, 1, 239, 1, 239, 3, 239, 5533, 8, 239, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 3, 241, 5542, 8, 241, 1, 241, 4, 241, 5545, 8, 241, 11, 241, 12, 241, 5546, 3, 241, 5549, 8, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 3, 242, 5559, 8, 242, 1, 242, 3, 242, 5562, 8, 242, 1, 242, 1, 242, 1, 242, 3, 242, 5567, 8, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 3, 243, 5575, 8, 243, 1, 243, 3, 243, 5578, 8, 243, 1, 243, 4, 243, 5581, 8, 243, 11, 243, 12, 243, 5582, 3, 243, 5585, 8, 243, 3, 243, 5587, 8, 243, 1, 244, 1, 244, 1, 244, 1, 244, 3, 244, 5593, 8, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 3, 247, 5610, 8, 247, 1, 247, 1, 247, 5, 247, 5614, 8, 247, 10, 247, 12, 247, 5617, 9, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 3, 248, 5629, 8, 248, 1, 248, 1, 248, 1, 248, 1, 248, 3, 248, 5635, 8, 248, 1, 248, 1, 248, 3, 248, 5639, 8, 248, 1, 248, 1, 248, 1, 248, 3, 248, 5644, 8, 248, 1, 249, 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, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 3, 250, 5674, 8, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 3, 250, 5689, 8, 250, 1, 250, 1, 250, 1, 250, 3, 250, 5694, 8, 250, 1, 251, 1, 251, 3, 251, 5698, 8, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 3, 252, 5711, 8, 252, 1, 252, 1, 252, 3, 252, 5715, 8, 252, 3, 252, 5717, 8, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 5, 252, 5724, 8, 252, 10, 252, 12, 252, 5727, 9, 252, 1, 252, 1, 252, 1, 252, 3, 252, 5732, 8, 252, 3, 252, 5734, 8, 252, 1, 253, 1, 253, 3, 253, 5738, 8, 253, 1, 253, 3, 253, 5741, 8, 253, 1, 253, 3, 253, 5744, 8, 253, 1, 253, 3, 253, 5747, 8, 253, 1, 253, 3, 253, 5750, 8, 253, 3, 253, 5752, 8, 253, 1, 253, 3, 253, 5755, 8, 253, 1, 254, 1, 254, 3, 254, 5759, 8, 254, 1, 254, 1, 254, 1, 254, 1, 254, 5, 254, 5765, 8, 254, 10, 254, 12, 254, 5768, 9, 254, 1, 254, 1, 254, 3, 254, 5772, 8, 254, 1, 254, 3, 254, 5775, 8, 254, 1, 255, 1, 255, 1, 256, 1, 256, 3, 256, 5781, 8, 256, 1, 256, 1, 256, 3, 256, 5785, 8, 256, 1, 257, 1, 257, 3, 257, 5789, 8, 257, 1, 257, 1, 257, 1, 257, 3, 257, 5794, 8, 257, 3, 257, 5796, 8, 257, 1, 258, 1, 258, 3, 258, 5800, 8, 258, 1, 259, 1, 259, 3, 259, 5804, 8, 259, 1, 260, 1, 260, 1, 260, 5, 260, 5809, 8, 260, 10, 260, 12, 260, 5812, 9, 260, 1, 261, 1, 261, 1, 261, 3, 261, 5817, 8, 261, 1, 261, 1, 261, 3, 261, 5821, 8, 261, 3, 261, 5823, 8, 261, 3, 261, 5825, 8, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 3, 262, 5838, 8, 262, 1, 263, 1, 263, 1, 263, 1, 263, 5, 263, 5844, 8, 263, 10, 263, 12, 263, 5847, 9, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 3, 264, 5854, 8, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 5, 265, 5863, 8, 265, 10, 265, 12, 265, 5866, 9, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 3, 266, 5875, 8, 266, 1, 267, 1, 267, 1, 267, 3, 267, 5880, 8, 267, 1, 267, 1, 267, 3, 267, 5884, 8, 267, 1, 267, 1, 267, 3, 267, 5888, 8, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 3, 267, 5895, 8, 267, 1, 267, 3, 267, 5898, 8, 267, 3, 267, 5900, 8, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 3, 269, 5908, 8, 269, 1, 269, 1, 269, 3, 269, 5912, 8, 269, 1, 270, 3, 270, 5915, 8, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5922, 8, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5929, 8, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5934, 8, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5941, 8, 270, 1, 270, 3, 270, 5944, 8, 270, 3, 270, 5946, 8, 270, 1, 270, 3, 270, 5949, 8, 270, 1, 271, 1, 271, 1, 271, 1, 271, 3, 271, 5955, 8, 271, 1, 271, 1, 271, 1, 271, 3, 271, 5960, 8, 271, 1, 271, 1, 271, 3, 271, 5964, 8, 271, 1, 272, 1, 272, 1, 272, 5, 272, 5969, 8, 272, 10, 272, 12, 272, 5972, 9, 272, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 275, 3, 275, 5981, 8, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 3, 275, 5988, 8, 275, 1, 275, 3, 275, 5991, 8, 275, 1, 275, 3, 275, 5994, 8, 275, 1, 276, 1, 276, 3, 276, 5998, 8, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 3, 276, 6009, 8, 276, 1, 276, 3, 276, 6012, 8, 276, 1, 276, 3, 276, 6015, 8, 276, 1, 276, 3, 276, 6018, 8, 276, 1, 277, 3, 277, 6021, 8, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 3, 277, 6028, 8, 277, 1, 277, 3, 277, 6031, 8, 277, 1, 277, 3, 277, 6034, 8, 277, 1, 278, 1, 278, 1, 278, 5, 278, 6039, 8, 278, 10, 278, 12, 278, 6042, 9, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 3, 279, 6053, 8, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 3, 279, 6060, 8, 279, 3, 279, 6062, 8, 279, 1, 280, 1, 280, 1, 280, 3, 280, 6067, 8, 280, 1, 280, 1, 280, 1, 280, 5, 280, 6072, 8, 280, 10, 280, 12, 280, 6075, 9, 280, 1, 280, 1, 280, 1, 280, 3, 280, 6080, 8, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 3, 281, 6087, 8, 281, 1, 282, 1, 282, 1, 282, 3, 282, 6092, 8, 282, 1, 282, 1, 282, 1, 283, 3, 283, 6097, 8, 283, 1, 283, 1, 283, 3, 283, 6101, 8, 283, 1, 283, 1, 283, 3, 283, 6105, 8, 283, 1, 283, 1, 283, 3, 283, 6109, 8, 283, 3, 283, 6111, 8, 283, 1, 284, 1, 284, 3, 284, 6115, 8, 284, 1, 285, 1, 285, 3, 285, 6119, 8, 285, 1, 285, 3, 285, 6122, 8, 285, 1, 285, 3, 285, 6125, 8, 285, 3, 285, 6127, 8, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 3, 285, 6137, 8, 285, 3, 285, 6139, 8, 285, 1, 285, 1, 285, 1, 285, 3, 285, 6144, 8, 285, 5, 285, 6146, 8, 285, 10, 285, 12, 285, 6149, 9, 285, 1, 286, 1, 286, 3, 286, 6153, 8, 286, 1, 287, 1, 287, 3, 287, 6157, 8, 287, 1, 287, 1, 287, 1, 287, 5, 287, 6162, 8, 287, 10, 287, 12, 287, 6165, 9, 287, 1, 288, 1, 288, 3, 288, 6169, 8, 288, 1, 288, 1, 288, 3, 288, 6173, 8, 288, 1, 288, 3, 288, 6176, 8, 288, 1, 288, 1, 288, 1, 288, 1, 288, 3, 288, 6182, 8, 288, 1, 288, 3, 288, 6185, 8, 288, 1, 289, 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, 290, 1, 290, 1, 290, 3, 290, 6204, 8, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 3, 291, 6211, 8, 291, 1, 291, 1, 291, 3, 291, 6215, 8, 291, 1, 292, 3, 292, 6218, 8, 292, 1, 292, 1, 292, 3, 292, 6222, 8, 292, 1, 292, 1, 292, 3, 292, 6226, 8, 292, 1, 292, 3, 292, 6229, 8, 292, 1, 292, 3, 292, 6232, 8, 292, 1, 293, 1, 293, 1, 293, 3, 293, 6237, 8, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 5, 294, 6244, 8, 294, 10, 294, 12, 294, 6247, 9, 294, 1, 295, 1, 295, 1, 295, 1, 295, 3, 295, 6253, 8, 295, 1, 295, 1, 295, 3, 295, 6257, 8, 295, 1, 296, 1, 296, 3, 296, 6261, 8, 296, 1, 296, 1, 296, 3, 296, 6265, 8, 296, 1, 296, 3, 296, 6268, 8, 296, 3, 296, 6270, 8, 296, 1, 297, 1, 297, 1, 297, 3, 297, 6275, 8, 297, 1, 297, 1, 297, 3, 297, 6279, 8, 297, 1, 298, 1, 298, 1, 298, 3, 298, 6284, 8, 298, 1, 298, 1, 298, 1, 298, 1, 298, 3, 298, 6290, 8, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 6297, 8, 299, 1, 300, 1, 300, 1, 300, 3, 300, 6302, 8, 300, 1, 301, 1, 301, 1, 301, 3, 301, 6307, 8, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 5, 302, 6314, 8, 302, 10, 302, 12, 302, 6317, 9, 302, 1, 303, 1, 303, 1, 303, 1, 303, 3, 303, 6323, 8, 303, 1, 303, 1, 303, 1, 303, 1, 303, 5, 303, 6329, 8, 303, 10, 303, 12, 303, 6332, 9, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 3, 303, 6342, 8, 303, 1, 304, 1, 304, 1, 304, 3, 304, 6347, 8, 304, 1, 304, 1, 304, 3, 304, 6351, 8, 304, 1, 304, 3, 304, 6354, 8, 304, 1, 304, 1, 304, 3, 304, 6358, 8, 304, 1, 304, 1, 304, 1, 304, 3, 304, 6363, 8, 304, 4, 304, 6365, 8, 304, 11, 304, 12, 304, 6366, 1, 304, 1, 304, 1, 304, 3, 304, 6372, 8, 304, 1, 305, 1, 305, 1, 305, 1, 305, 5, 305, 6378, 8, 305, 10, 305, 12, 305, 6381, 9, 305, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 5, 307, 6389, 8, 307, 10, 307, 12, 307, 6392, 9, 307, 1, 308, 1, 308, 3, 308, 6396, 8, 308, 1, 308, 1, 308, 3, 308, 6400, 8, 308, 1, 308, 3, 308, 6403, 8, 308, 1, 308, 3, 308, 6406, 8, 308, 3, 308, 6408, 8, 308, 1, 308, 3, 308, 6411, 8, 308, 1, 308, 3, 308, 6414, 8, 308, 1, 308, 3, 308, 6417, 8, 308, 1, 308, 1, 308, 3, 308, 6421, 8, 308, 1, 308, 1, 308, 3, 308, 6425, 8, 308, 1, 308, 1, 308, 3, 308, 6429, 8, 308, 3, 308, 6431, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6440, 8, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6445, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6451, 8, 308, 1, 308, 1, 308, 3, 308, 6455, 8, 308, 3, 308, 6457, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6464, 8, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6469, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 5, 308, 6475, 8, 308, 10, 308, 12, 308, 6478, 9, 308, 1, 309, 3, 309, 6481, 8, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 3, 309, 6488, 8, 309, 1, 310, 1, 310, 1, 310, 3, 310, 6493, 8, 310, 1, 310, 3, 310, 6496, 8, 310, 1, 310, 1, 310, 1, 310, 1, 310, 3, 310, 6502, 8, 310, 1, 311, 1, 311, 3, 311, 6506, 8, 311, 1, 312, 1, 312, 1, 312, 1, 312, 3, 312, 6512, 8, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 3, 313, 6521, 8, 313, 1, 313, 1, 313, 1, 313, 1, 313, 3, 313, 6527, 8, 313, 3, 313, 6529, 8, 313, 1, 314, 1, 314, 1, 314, 3, 314, 6534, 8, 314, 1, 314, 3, 314, 6537, 8, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 3, 314, 6546, 8, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 3, 314, 6553, 8, 314, 3, 314, 6555, 8, 314, 1, 315, 1, 315, 1, 315, 5, 315, 6560, 8, 315, 10, 315, 12, 315, 6563, 9, 315, 1, 316, 1, 316, 3, 316, 6567, 8, 316, 1, 316, 3, 316, 6570, 8, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 3, 317, 6580, 8, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 5, 318, 6589, 8, 318, 10, 318, 12, 318, 6592, 9, 318, 1, 318, 1, 318, 3, 318, 6596, 8, 318, 1, 318, 1, 318, 3, 318, 6600, 8, 318, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 3, 319, 6608, 8, 319, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 3, 321, 6618, 8, 321, 1, 322, 1, 322, 1, 322, 5, 322, 6623, 8, 322, 10, 322, 12, 322, 6626, 9, 322, 1, 323, 1, 323, 1, 323, 3, 323, 6631, 8, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 5, 324, 6640, 8, 324, 10, 324, 12, 324, 6643, 9, 324, 1, 324, 1, 324, 1, 324, 3, 324, 6648, 8, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 5, 324, 6656, 8, 324, 10, 324, 12, 324, 6659, 9, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 325, 3, 325, 6667, 8, 325, 1, 325, 1, 325, 3, 325, 6671, 8, 325, 1, 325, 4, 325, 6674, 8, 325, 11, 325, 12, 325, 6675, 3, 325, 6678, 8, 325, 1, 325, 1, 325, 3, 325, 6682, 8, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 3, 326, 6690, 8, 326, 1, 327, 3, 327, 6693, 8, 327, 1, 327, 1, 327, 1, 327, 3, 327, 6698, 8, 327, 1, 327, 5, 327, 6701, 8, 327, 10, 327, 12, 327, 6704, 9, 327, 1, 327, 1, 327, 1, 327, 1, 327, 3, 327, 6710, 8, 327, 3, 327, 6712, 8, 327, 1, 327, 1, 327, 1, 327, 1, 327, 3, 327, 6718, 8, 327, 1, 328, 1, 328, 3, 328, 6722, 8, 328, 1, 328, 3, 328, 6725, 8, 328, 1, 328, 1, 328, 1, 328, 3, 328, 6730, 8, 328, 1, 328, 3, 328, 6733, 8, 328, 3, 328, 6735, 8, 328, 1, 329, 1, 329, 1, 329, 1, 329, 3, 329, 6741, 8, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 3, 330, 6750, 8, 330, 1, 330, 1, 330, 1, 330, 1, 330, 3, 330, 6756, 8, 330, 1, 330, 3, 330, 6759, 8, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 3, 332, 6767, 8, 332, 1, 332, 3, 332, 6770, 8, 332, 1, 333, 1, 333, 3, 333, 6774, 8, 333, 1, 333, 1, 333, 1, 333, 1, 333, 3, 333, 6780, 8, 333, 3, 333, 6782, 8, 333, 1, 333, 3, 333, 6785, 8, 333, 1, 334, 1, 334, 3, 334, 6789, 8, 334, 1, 334, 1, 334, 1, 334, 3, 334, 6794, 8, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6801, 8, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6808, 8, 335, 3, 335, 6810, 8, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6816, 8, 335, 3, 335, 6818, 8, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6823, 8, 335, 3, 335, 6825, 8, 335, 1, 336, 1, 336, 3, 336, 6829, 8, 336, 1, 337, 1, 337, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 3, 339, 6838, 8, 339, 1, 339, 1, 339, 3, 339, 6842, 8, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 5, 339, 6850, 8, 339, 10, 339, 12, 339, 6853, 9, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6866, 8, 340, 1, 340, 3, 340, 6869, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6877, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 5, 340, 6884, 8, 340, 10, 340, 12, 340, 6887, 9, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6892, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6897, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6905, 8, 340, 3, 340, 6907, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6912, 8, 340, 1, 340, 1, 340, 3, 340, 6916, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6921, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6926, 8, 340, 1, 341, 1, 341, 1, 341, 1, 341, 3, 341, 6932, 8, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 5, 341, 6948, 8, 341, 10, 341, 12, 341, 6951, 9, 341, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6959, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6974, 8, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6979, 8, 342, 1, 342, 3, 342, 6982, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6988, 8, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6993, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7006, 8, 342, 1, 342, 4, 342, 7009, 8, 342, 11, 342, 12, 342, 7010, 1, 342, 1, 342, 3, 342, 7015, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7022, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7041, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7053, 8, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7058, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7066, 8, 342, 5, 342, 7068, 8, 342, 10, 342, 12, 342, 7071, 9, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 3, 343, 7079, 8, 343, 1, 343, 3, 343, 7082, 8, 343, 1, 343, 1, 343, 1, 343, 3, 343, 7087, 8, 343, 1, 343, 1, 343, 1, 343, 3, 343, 7092, 8, 343, 1, 343, 3, 343, 7095, 8, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 3, 344, 7106, 8, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 3, 344, 7114, 8, 344, 1, 344, 1, 344, 1, 344, 3, 344, 7119, 8, 344, 3, 344, 7121, 8, 344, 1, 344, 3, 344, 7124, 8, 344, 1, 345, 1, 345, 3, 345, 7128, 8, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7139, 8, 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, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7160, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7168, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7181, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7191, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7197, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7203, 8, 346, 1, 346, 3, 346, 7206, 8, 346, 1, 346, 3, 346, 7209, 8, 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, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7235, 8, 346, 3, 346, 7237, 8, 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, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7258, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7268, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7281, 8, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7286, 8, 346, 1, 346, 1, 346, 3, 346, 7290, 8, 346, 3, 346, 7292, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7304, 8, 346, 1, 347, 1, 347, 1, 347, 5, 347, 7309, 8, 347, 10, 347, 12, 347, 7312, 9, 347, 1, 348, 1, 348, 1, 348, 3, 348, 7317, 8, 348, 1, 349, 1, 349, 1, 350, 1, 350, 3, 350, 7323, 8, 350, 1, 350, 1, 350, 3, 350, 7327, 8, 350, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 1, 352, 1, 352, 5, 352, 7336, 8, 352, 10, 352, 12, 352, 7339, 9, 352, 1, 353, 1, 353, 1, 353, 1, 353, 1, 354, 1, 354, 1, 354, 3, 354, 7348, 8, 354, 1, 355, 1, 355, 3, 355, 7352, 8, 355, 1, 355, 1, 355, 1, 355, 3, 355, 7357, 8, 355, 1, 355, 3, 355, 7360, 8, 355, 1, 355, 3, 355, 7363, 8, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 3, 356, 7372, 8, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 3, 356, 7383, 8, 356, 3, 356, 7385, 8, 356, 1, 357, 1, 357, 3, 357, 7389, 8, 357, 1, 357, 1, 357, 1, 357, 3, 357, 7394, 8, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 3, 358, 7403, 8, 358, 1, 359, 1, 359, 1, 359, 3, 359, 7408, 8, 359, 1, 359, 1, 359, 1, 360, 1, 360, 1, 361, 1, 361, 3, 361, 7416, 8, 361, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 3, 363, 7426, 8, 363, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 3, 364, 7434, 8, 364, 1, 365, 1, 365, 3, 365, 7438, 8, 365, 1, 365, 3, 365, 7441, 8, 365, 1, 366, 1, 366, 1, 366, 5, 366, 7446, 8, 366, 10, 366, 12, 366, 7449, 9, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 3, 367, 7456, 8, 367, 1, 368, 1, 368, 3, 368, 7460, 8, 368, 1, 369, 1, 369, 1, 369, 5, 369, 7465, 8, 369, 10, 369, 12, 369, 7468, 9, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 3, 370, 7475, 8, 370, 3, 370, 7477, 8, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 5, 371, 7484, 8, 371, 10, 371, 12, 371, 7487, 9, 371, 3, 371, 7489, 8, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 3, 372, 7501, 8, 372, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 3, 374, 7510, 8, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 3, 374, 7517, 8, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 3, 374, 7526, 8, 374, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 3, 376, 7536, 8, 376, 1, 376, 1, 376, 1, 376, 3, 376, 7541, 8, 376, 1, 376, 1, 376, 3, 376, 7545, 8, 376, 3, 376, 7547, 8, 376, 1, 376, 3, 376, 7550, 8, 376, 1, 377, 4, 377, 7553, 8, 377, 11, 377, 12, 377, 7554, 1, 378, 5, 378, 7558, 8, 378, 10, 378, 12, 378, 7561, 9, 378, 1, 379, 1, 379, 1, 379, 5, 379, 7566, 8, 379, 10, 379, 12, 379, 7569, 9, 379, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 3, 380, 7576, 8, 380, 1, 380, 3, 380, 7579, 8, 380, 1, 381, 1, 381, 1, 381, 5, 381, 7584, 8, 381, 10, 381, 12, 381, 7587, 9, 381, 1, 382, 1, 382, 1, 382, 5, 382, 7592, 8, 382, 10, 382, 12, 382, 7595, 9, 382, 1, 383, 1, 383, 1, 383, 5, 383, 7600, 8, 383, 10, 383, 12, 383, 7603, 9, 383, 1, 384, 1, 384, 1, 384, 5, 384, 7608, 8, 384, 10, 384, 12, 384, 7611, 9, 384, 1, 385, 1, 385, 1, 386, 1, 386, 1, 387, 1, 387, 1, 388, 1, 388, 1, 389, 1, 389, 1, 390, 1, 390, 1, 391, 1, 391, 3, 391, 7627, 8, 391, 1, 392, 1, 392, 1, 392, 5, 392, 7632, 8, 392, 10, 392, 12, 392, 7635, 9, 392, 1, 393, 1, 393, 1, 393, 5, 393, 7640, 8, 393, 10, 393, 12, 393, 7643, 9, 393, 1, 394, 1, 394, 1, 395, 1, 395, 1, 396, 1, 396, 1, 397, 1, 397, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 3, 399, 7659, 8, 399, 1, 400, 1, 400, 1, 400, 1, 400, 3, 400, 7665, 8, 400, 1, 401, 1, 401, 1, 401, 1, 401, 3, 401, 7671, 8, 401, 1, 402, 1, 402, 1, 403, 1, 403, 1, 403, 1, 403, 3, 403, 7679, 8, 403, 1, 404, 1, 404, 1, 404, 1, 404, 3, 404, 7685, 8, 404, 1, 405, 1, 405, 1, 405, 3, 405, 7690, 8, 405, 1, 406, 1, 406, 1, 406, 1, 406, 5, 406, 7696, 8, 406, 10, 406, 12, 406, 7699, 9, 406, 1, 406, 1, 406, 3, 406, 7703, 8, 406, 1, 407, 3, 407, 7706, 8, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 3, 408, 7715, 8, 408, 1, 409, 1, 409, 1, 409, 5, 409, 7720, 8, 409, 10, 409, 12, 409, 7723, 9, 409, 1, 410, 1, 410, 3, 410, 7727, 8, 410, 1, 411, 1, 411, 3, 411, 7731, 8, 411, 1, 412, 1, 412, 1, 412, 3, 412, 7736, 8, 412, 1, 413, 1, 413, 1, 413, 1, 413, 3, 413, 7742, 8, 413, 1, 414, 1, 414, 1, 414, 3, 414, 7747, 8, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 3, 414, 7755, 8, 414, 1, 415, 1, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 3, 416, 7810, 8, 416, 1, 417, 1, 417, 1, 418, 1, 418, 1, 419, 3, 419, 7817, 8, 419, 1, 419, 1, 419, 1, 419, 1, 419, 4, 419, 7823, 8, 419, 11, 419, 12, 419, 7824, 3, 419, 7827, 8, 419, 3, 419, 7829, 8, 419, 1, 419, 1, 419, 5, 419, 7833, 8, 419, 10, 419, 12, 419, 7836, 9, 419, 1, 419, 3, 419, 7839, 8, 419, 1, 419, 1, 419, 3, 419, 7843, 8, 419, 1, 420, 1, 420, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 3, 421, 7854, 8, 421, 1, 421, 3, 421, 7857, 8, 421, 1, 421, 1, 421, 3, 421, 7861, 8, 421, 1, 421, 1, 421, 3, 421, 7865, 8, 421, 1, 421, 1, 421, 3, 421, 7869, 8, 421, 1, 421, 3, 421, 7872, 8, 421, 1, 421, 3, 421, 7875, 8, 421, 1, 421, 3, 421, 7878, 8, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 5, 421, 7885, 8, 421, 10, 421, 12, 421, 7888, 9, 421, 1, 421, 1, 421, 3, 421, 7892, 8, 421, 1, 421, 1, 421, 3, 421, 7896, 8, 421, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 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, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 3, 424, 7929, 8, 424, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 3, 426, 7939, 8, 426, 1, 426, 1, 426, 3, 426, 7943, 8, 426, 1, 426, 1, 426, 1, 426, 1, 426, 3, 426, 7949, 8, 426, 1, 426, 1, 426, 1, 426, 3, 426, 7954, 8, 426, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 428, 1, 428, 3, 428, 7963, 8, 428, 1, 428, 1, 428, 1, 428, 1, 428, 5, 428, 7969, 8, 428, 10, 428, 12, 428, 7972, 9, 428, 1, 428, 1, 428, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 1, 430, 3, 430, 7982, 8, 430, 1, 430, 1, 430, 1, 430, 1, 430, 5, 430, 7988, 8, 430, 10, 430, 12, 430, 7991, 9, 430, 1, 431, 1, 431, 1, 431, 1, 431, 5, 431, 7997, 8, 431, 10, 431, 12, 431, 8000, 9, 431, 1, 431, 1, 431, 1, 431, 1, 431, 5, 431, 8006, 8, 431, 10, 431, 12, 431, 8009, 9, 431, 5, 431, 8011, 8, 431, 10, 431, 12, 431, 8014, 9, 431, 1, 431, 3, 431, 8017, 8, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 432, 1, 432, 5, 432, 8025, 8, 432, 10, 432, 12, 432, 8028, 9, 432, 1, 433, 1, 433, 3, 433, 8032, 8, 433, 1, 433, 1, 433, 1, 433, 1, 433, 5, 433, 8038, 8, 433, 10, 433, 12, 433, 8041, 9, 433, 4, 433, 8043, 8, 433, 11, 433, 12, 433, 8044, 1, 433, 3, 433, 8048, 8, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 3, 434, 8055, 8, 434, 1, 434, 1, 434, 1, 434, 1, 434, 3, 434, 8061, 8, 434, 1, 434, 1, 434, 1, 435, 1, 435, 1, 435, 1, 435, 3, 435, 8069, 8, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 3, 435, 8077, 8, 435, 1, 435, 3, 435, 8080, 8, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 3, 435, 8087, 8, 435, 3, 435, 8089, 8, 435, 1, 436, 3, 436, 8092, 8, 436, 1, 436, 1, 436, 1, 436, 1, 436, 3, 436, 8098, 8, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 3, 437, 8107, 8, 437, 1, 437, 1, 437, 3, 437, 8111, 8, 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, 3, 438, 8125, 8, 438, 1, 438, 3, 438, 8128, 8, 438, 3, 438, 8130, 8, 438, 1, 438, 1, 438, 1, 439, 1, 439, 3, 439, 8136, 8, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 4, 439, 8144, 8, 439, 11, 439, 12, 439, 8145, 3, 439, 8148, 8, 439, 3, 439, 8150, 8, 439, 1, 439, 1, 439, 1, 439, 1, 439, 5, 439, 8156, 8, 439, 10, 439, 12, 439, 8159, 9, 439, 3, 439, 8161, 8, 439, 1, 439, 3, 439, 8164, 8, 439, 1, 440, 1, 440, 1, 440, 1, 440, 1, 441, 1, 441, 1, 441, 1, 441, 3, 441, 8174, 8, 441, 1, 441, 1, 441, 1, 442, 1, 442, 5, 442, 8180, 8, 442, 10, 442, 12, 442, 8183, 9, 442, 1, 442, 1, 442, 1, 442, 3, 442, 8188, 8, 442, 1, 442, 1, 442, 1, 443, 1, 443, 3, 443, 8194, 8, 443, 1, 443, 1, 443, 1, 444, 1, 444, 1, 444, 3, 444, 8201, 8, 444, 1, 444, 1, 444, 3, 444, 8205, 8, 444, 1, 444, 1, 444, 3, 444, 8209, 8, 444, 1, 444, 3, 444, 8212, 8, 444, 1, 444, 3, 444, 8215, 8, 444, 1, 444, 1, 444, 1, 445, 1, 445, 3, 445, 8221, 8, 445, 1, 445, 1, 445, 1, 446, 1, 446, 1, 446, 3, 446, 8228, 8, 446, 1, 446, 3, 446, 8231, 8, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 3, 446, 8239, 8, 446, 3, 446, 8241, 8, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 5, 446, 8248, 8, 446, 10, 446, 12, 446, 8251, 9, 446, 1, 446, 1, 446, 3, 446, 8255, 8, 446, 3, 446, 8257, 8, 446, 1, 446, 1, 446, 1, 447, 1, 447, 1, 447, 3, 447, 8264, 8, 447, 1, 447, 1, 447, 1, 448, 1, 448, 3, 448, 8270, 8, 448, 1, 448, 3, 448, 8273, 8, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 8285, 8, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 8292, 8, 449, 3, 449, 8294, 8, 449, 1, 450, 1, 450, 3, 450, 8298, 8, 450, 1, 450, 1, 450, 1, 450, 1, 451, 3, 451, 8304, 8, 451, 1, 451, 1, 451, 1, 451, 3, 451, 8309, 8, 451, 1, 451, 1, 451, 3, 451, 8313, 8, 451, 1, 451, 3, 451, 8316, 8, 451, 1, 451, 3, 451, 8319, 8, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 4, 451, 8326, 8, 451, 11, 451, 12, 451, 8327, 1, 451, 3, 451, 8331, 8, 451, 1, 452, 3, 452, 8334, 8, 452, 1, 452, 1, 452, 3, 452, 8338, 8, 452, 1, 452, 1, 452, 3, 452, 8342, 8, 452, 3, 452, 8344, 8, 452, 1, 452, 3, 452, 8347, 8, 452, 1, 452, 3, 452, 8350, 8, 452, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8356, 8, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8363, 8, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8370, 8, 453, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8376, 8, 453, 3, 453, 8378, 8, 453, 1, 454, 1, 454, 3, 454, 8382, 8, 454, 1, 454, 1, 454, 1, 454, 3, 454, 8387, 8, 454, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 5, 455, 8403, 8, 455, 10, 455, 12, 455, 8406, 9, 455, 1, 455, 1, 455, 4, 455, 8410, 8, 455, 11, 455, 12, 455, 8411, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 5, 456, 8419, 8, 456, 10, 456, 12, 456, 8422, 9, 456, 1, 456, 1, 456, 1, 456, 1, 456, 3, 456, 8428, 8, 456, 1, 457, 1, 457, 3, 457, 8432, 8, 457, 1, 458, 1, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 1, 460, 3, 460, 8444, 8, 460, 1, 460, 3, 460, 8447, 8, 460, 1, 460, 1, 460, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 3, 461, 8460, 8, 461, 1, 461, 3, 461, 8463, 8, 461, 1, 462, 1, 462, 3, 462, 8467, 8, 462, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 5, 463, 8474, 8, 463, 10, 463, 12, 463, 8477, 9, 463, 1, 463, 1, 463, 5, 463, 8481, 8, 463, 10, 463, 12, 463, 8484, 9, 463, 4, 463, 8486, 8, 463, 11, 463, 12, 463, 8487, 1, 464, 1, 464, 1, 464, 3, 464, 8493, 8, 464, 1, 465, 1, 465, 3, 465, 8497, 8, 465, 1, 466, 3, 466, 8500, 8, 466, 1, 466, 3, 466, 8503, 8, 466, 1, 466, 3, 466, 8506, 8, 466, 1, 466, 3, 466, 8509, 8, 466, 1, 466, 3, 466, 8512, 8, 466, 1, 466, 1, 466, 3, 466, 8516, 8, 466, 1, 466, 3, 466, 8519, 8, 466, 1, 466, 0, 3, 678, 682, 684, 467, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 500, 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, 924, 926, 928, 930, 932, 0, 119, 2, 0, 195, 195, 364, 364, 2, 0, 66, 66, 318, 318, 2, 0, 99, 99, 318, 318, 2, 0, 134, 134, 318, 318, 1, 0, 529, 531, 2, 0, 10, 10, 94, 94, 2, 0, 133, 133, 191, 191, 2, 0, 254, 254, 332, 332, 2, 0, 162, 162, 363, 363, 2, 0, 180, 180, 221, 221, 5, 0, 30, 30, 288, 288, 329, 329, 352, 352, 354, 354, 2, 0, 109, 109, 532, 532, 2, 0, 158, 158, 277, 277, 2, 0, 367, 367, 439, 439, 2, 0, 139, 139, 312, 312, 2, 0, 191, 191, 333, 333, 2, 0, 313, 313, 333, 333, 2, 0, 150, 150, 315, 315, 2, 0, 64, 64, 94, 94, 4, 0, 78, 78, 183, 183, 197, 197, 298, 298, 1, 0, 549, 551, 2, 0, 213, 213, 254, 254, 2, 0, 352, 352, 354, 354, 2, 0, 200, 200, 224, 224, 9, 0, 30, 30, 160, 160, 165, 165, 179, 179, 219, 219, 227, 227, 342, 342, 345, 345, 438, 438, 3, 0, 113, 113, 284, 284, 336, 336, 2, 0, 53, 53, 78, 78, 2, 0, 105, 105, 379, 379, 2, 0, 260, 260, 262, 262, 3, 0, 173, 173, 260, 260, 262, 262, 1, 0, 12, 13, 2, 0, 64, 64, 375, 375, 2, 0, 156, 156, 206, 206, 2, 0, 189, 189, 360, 360, 2, 0, 215, 215, 373, 373, 3, 0, 133, 133, 191, 191, 333, 333, 5, 0, 30, 30, 88, 88, 182, 182, 241, 241, 369, 369, 2, 0, 9, 9, 94, 94, 2, 0, 92, 92, 226, 226, 1, 0, 448, 449, 2, 0, 92, 92, 414, 414, 2, 0, 341, 341, 414, 414, 4, 0, 163, 163, 185, 185, 283, 283, 353, 353, 2, 0, 135, 135, 145, 145, 2, 0, 211, 211, 278, 278, 3, 0, 321, 321, 357, 357, 445, 445, 3, 0, 66, 66, 99, 99, 318, 318, 5, 0, 108, 108, 168, 168, 226, 226, 328, 328, 342, 342, 2, 0, 167, 167, 314, 314, 2, 0, 61, 61, 265, 265, 4, 0, 207, 207, 249, 249, 268, 268, 293, 293, 2, 0, 130, 130, 307, 307, 2, 0, 64, 64, 68, 68, 10, 0, 46, 46, 88, 88, 182, 182, 202, 202, 241, 241, 352, 352, 354, 354, 357, 358, 369, 369, 521, 523, 5, 0, 212, 212, 329, 329, 350, 350, 455, 455, 457, 457, 5, 0, 212, 212, 329, 329, 350, 350, 361, 361, 455, 456, 2, 0, 37, 37, 55, 55, 2, 0, 207, 207, 249, 249, 2, 0, 10, 10, 53, 53, 2, 0, 181, 181, 243, 243, 2, 0, 170, 170, 320, 320, 2, 0, 141, 141, 223, 223, 5, 0, 108, 108, 168, 168, 189, 189, 342, 342, 360, 360, 2, 0, 226, 226, 328, 328, 2, 0, 163, 163, 185, 185, 2, 0, 186, 186, 193, 193, 4, 0, 88, 88, 182, 182, 241, 241, 369, 369, 2, 0, 137, 137, 242, 242, 2, 0, 161, 161, 319, 319, 4, 0, 129, 129, 161, 161, 319, 319, 454, 454, 2, 0, 356, 356, 380, 380, 2, 0, 81, 81, 382, 382, 2, 0, 151, 151, 254, 254, 2, 0, 133, 133, 138, 138, 1, 0, 31, 32, 2, 0, 128, 128, 547, 547, 2, 0, 60, 60, 96, 96, 2, 0, 99, 99, 349, 349, 2, 0, 131, 131, 414, 414, 2, 0, 201, 201, 334, 334, 3, 0, 59, 59, 70, 70, 97, 97, 2, 0, 30, 30, 56, 56, 1, 0, 527, 528, 2, 0, 207, 207, 268, 268, 2, 0, 320, 320, 414, 414, 2, 0, 574, 574, 576, 576, 1, 0, 468, 469, 4, 0, 113, 113, 115, 115, 119, 119, 126, 126, 2, 0, 360, 360, 477, 477, 2, 0, 394, 395, 409, 409, 2, 0, 391, 392, 406, 406, 1, 0, 391, 392, 1, 0, 418, 419, 5, 0, 10, 10, 16, 17, 21, 21, 23, 23, 25, 25, 3, 0, 9, 9, 14, 14, 27, 27, 2, 0, 98, 98, 396, 396, 2, 0, 50, 51, 75, 76, 2, 0, 41, 41, 420, 420, 3, 0, 39, 39, 73, 73, 95, 95, 4, 0, 393, 393, 399, 399, 404, 404, 425, 425, 2, 0, 292, 292, 347, 347, 2, 0, 166, 166, 188, 188, 2, 0, 304, 304, 450, 450, 3, 0, 299, 299, 320, 320, 481, 481, 2, 0, 208, 208, 289, 289, 3, 0, 30, 30, 34, 34, 90, 90, 6, 0, 9, 10, 12, 17, 21, 21, 23, 23, 25, 25, 27, 27, 2, 0, 114, 114, 120, 120, 2, 0, 20, 20, 22, 22, 1, 0, 483, 486, 17, 0, 53, 53, 116, 116, 123, 124, 129, 228, 238, 386, 433, 452, 455, 469, 471, 471, 473, 473, 475, 475, 477, 488, 490, 502, 504, 504, 506, 518, 520, 520, 524, 524, 547, 548, 3, 0, 106, 123, 125, 128, 472, 472, 4, 0, 30, 52, 54, 70, 72, 105, 454, 454, 2, 0, 62, 62, 116, 116, 2, 0, 10, 10, 20, 20, 2, 0, 434, 434, 501, 501, 2, 0, 167, 167, 507, 507, 1, 0, 512, 517, 2, 0, 144, 144, 210, 210, 9963, 0, 937, 1, 0, 0, 0, 2, 942, 1, 0, 0, 0, 4, 1066, 1, 0, 0, 0, 6, 1068, 1, 0, 0, 0, 8, 1071, 1, 0, 0, 0, 10, 1121, 1, 0, 0, 0, 12, 1131, 1, 0, 0, 0, 14, 1133, 1, 0, 0, 0, 16, 1145, 1, 0, 0, 0, 18, 1157, 1, 0, 0, 0, 20, 1168, 1, 0, 0, 0, 22, 1202, 1, 0, 0, 0, 24, 1246, 1, 0, 0, 0, 26, 1248, 1, 0, 0, 0, 28, 1260, 1, 0, 0, 0, 30, 1267, 1, 0, 0, 0, 32, 1286, 1, 0, 0, 0, 34, 1294, 1, 0, 0, 0, 36, 1296, 1, 0, 0, 0, 38, 1310, 1, 0, 0, 0, 40, 1314, 1, 0, 0, 0, 42, 1351, 1, 0, 0, 0, 44, 1353, 1, 0, 0, 0, 46, 1361, 1, 0, 0, 0, 48, 1371, 1, 0, 0, 0, 50, 1378, 1, 0, 0, 0, 52, 1386, 1, 0, 0, 0, 54, 1392, 1, 0, 0, 0, 56, 1408, 1, 0, 0, 0, 58, 1412, 1, 0, 0, 0, 60, 1414, 1, 0, 0, 0, 62, 1426, 1, 0, 0, 0, 64, 1431, 1, 0, 0, 0, 66, 1436, 1, 0, 0, 0, 68, 1438, 1, 0, 0, 0, 70, 1450, 1, 0, 0, 0, 72, 1458, 1, 0, 0, 0, 74, 1460, 1, 0, 0, 0, 76, 1584, 1, 0, 0, 0, 78, 1586, 1, 0, 0, 0, 80, 1603, 1, 0, 0, 0, 82, 1605, 1, 0, 0, 0, 84, 1619, 1, 0, 0, 0, 86, 1621, 1, 0, 0, 0, 88, 1635, 1, 0, 0, 0, 90, 1637, 1, 0, 0, 0, 92, 1874, 1, 0, 0, 0, 94, 1881, 1, 0, 0, 0, 96, 1883, 1, 0, 0, 0, 98, 1885, 1, 0, 0, 0, 100, 1888, 1, 0, 0, 0, 102, 1899, 1, 0, 0, 0, 104, 1902, 1, 0, 0, 0, 106, 1931, 1, 0, 0, 0, 108, 1933, 1, 0, 0, 0, 110, 1974, 1, 0, 0, 0, 112, 1976, 1, 0, 0, 0, 114, 2030, 1, 0, 0, 0, 116, 2076, 1, 0, 0, 0, 118, 2097, 1, 0, 0, 0, 120, 2099, 1, 0, 0, 0, 122, 2116, 1, 0, 0, 0, 124, 2197, 1, 0, 0, 0, 126, 2199, 1, 0, 0, 0, 128, 2210, 1, 0, 0, 0, 130, 2233, 1, 0, 0, 0, 132, 2251, 1, 0, 0, 0, 134, 2253, 1, 0, 0, 0, 136, 2288, 1, 0, 0, 0, 138, 2381, 1, 0, 0, 0, 140, 2386, 1, 0, 0, 0, 142, 2388, 1, 0, 0, 0, 144, 2486, 1, 0, 0, 0, 146, 2488, 1, 0, 0, 0, 148, 2492, 1, 0, 0, 0, 150, 2503, 1, 0, 0, 0, 152, 2511, 1, 0, 0, 0, 154, 2514, 1, 0, 0, 0, 156, 2517, 1, 0, 0, 0, 158, 2535, 1, 0, 0, 0, 160, 2537, 1, 0, 0, 0, 162, 2541, 1, 0, 0, 0, 164, 2554, 1, 0, 0, 0, 166, 2556, 1, 0, 0, 0, 168, 2561, 1, 0, 0, 0, 170, 2581, 1, 0, 0, 0, 172, 2589, 1, 0, 0, 0, 174, 2596, 1, 0, 0, 0, 176, 2598, 1, 0, 0, 0, 178, 2607, 1, 0, 0, 0, 180, 2610, 1, 0, 0, 0, 182, 2614, 1, 0, 0, 0, 184, 2618, 1, 0, 0, 0, 186, 2643, 1, 0, 0, 0, 188, 2653, 1, 0, 0, 0, 190, 2667, 1, 0, 0, 0, 192, 2683, 1, 0, 0, 0, 194, 2689, 1, 0, 0, 0, 196, 2716, 1, 0, 0, 0, 198, 2726, 1, 0, 0, 0, 200, 2742, 1, 0, 0, 0, 202, 2786, 1, 0, 0, 0, 204, 2793, 1, 0, 0, 0, 206, 2795, 1, 0, 0, 0, 208, 2821, 1, 0, 0, 0, 210, 2832, 1, 0, 0, 0, 212, 2851, 1, 0, 0, 0, 214, 2862, 1, 0, 0, 0, 216, 2900, 1, 0, 0, 0, 218, 2921, 1, 0, 0, 0, 220, 2923, 1, 0, 0, 0, 222, 2943, 1, 0, 0, 0, 224, 2955, 1, 0, 0, 0, 226, 2967, 1, 0, 0, 0, 228, 2970, 1, 0, 0, 0, 230, 2973, 1, 0, 0, 0, 232, 2993, 1, 0, 0, 0, 234, 2998, 1, 0, 0, 0, 236, 3047, 1, 0, 0, 0, 238, 3049, 1, 0, 0, 0, 240, 3072, 1, 0, 0, 0, 242, 3088, 1, 0, 0, 0, 244, 3100, 1, 0, 0, 0, 246, 3127, 1, 0, 0, 0, 248, 3142, 1, 0, 0, 0, 250, 3205, 1, 0, 0, 0, 252, 3207, 1, 0, 0, 0, 254, 3212, 1, 0, 0, 0, 256, 3218, 1, 0, 0, 0, 258, 3305, 1, 0, 0, 0, 260, 3311, 1, 0, 0, 0, 262, 3313, 1, 0, 0, 0, 264, 3329, 1, 0, 0, 0, 266, 3331, 1, 0, 0, 0, 268, 3340, 1, 0, 0, 0, 270, 3344, 1, 0, 0, 0, 272, 3357, 1, 0, 0, 0, 274, 3369, 1, 0, 0, 0, 276, 3371, 1, 0, 0, 0, 278, 3393, 1, 0, 0, 0, 280, 3405, 1, 0, 0, 0, 282, 3416, 1, 0, 0, 0, 284, 3507, 1, 0, 0, 0, 286, 3509, 1, 0, 0, 0, 288, 3520, 1, 0, 0, 0, 290, 3531, 1, 0, 0, 0, 292, 3533, 1, 0, 0, 0, 294, 3559, 1, 0, 0, 0, 296, 3561, 1, 0, 0, 0, 298, 3565, 1, 0, 0, 0, 300, 3615, 1, 0, 0, 0, 302, 3617, 1, 0, 0, 0, 304, 3623, 1, 0, 0, 0, 306, 3648, 1, 0, 0, 0, 308, 3652, 1, 0, 0, 0, 310, 3866, 1, 0, 0, 0, 312, 3884, 1, 0, 0, 0, 314, 3910, 1, 0, 0, 0, 316, 3912, 1, 0, 0, 0, 318, 3920, 1, 0, 0, 0, 320, 3926, 1, 0, 0, 0, 322, 3930, 1, 0, 0, 0, 324, 3950, 1, 0, 0, 0, 326, 3956, 1, 0, 0, 0, 328, 4023, 1, 0, 0, 0, 330, 4054, 1, 0, 0, 0, 332, 4100, 1, 0, 0, 0, 334, 4102, 1, 0, 0, 0, 336, 4104, 1, 0, 0, 0, 338, 4115, 1, 0, 0, 0, 340, 4152, 1, 0, 0, 0, 342, 4154, 1, 0, 0, 0, 344, 4160, 1, 0, 0, 0, 346, 4210, 1, 0, 0, 0, 348, 4213, 1, 0, 0, 0, 350, 4227, 1, 0, 0, 0, 352, 4248, 1, 0, 0, 0, 354, 4272, 1, 0, 0, 0, 356, 4313, 1, 0, 0, 0, 358, 4315, 1, 0, 0, 0, 360, 4317, 1, 0, 0, 0, 362, 4357, 1, 0, 0, 0, 364, 4374, 1, 0, 0, 0, 366, 4394, 1, 0, 0, 0, 368, 4447, 1, 0, 0, 0, 370, 4450, 1, 0, 0, 0, 372, 4456, 1, 0, 0, 0, 374, 4464, 1, 0, 0, 0, 376, 4477, 1, 0, 0, 0, 378, 4479, 1, 0, 0, 0, 380, 4492, 1, 0, 0, 0, 382, 4494, 1, 0, 0, 0, 384, 4507, 1, 0, 0, 0, 386, 4517, 1, 0, 0, 0, 388, 4528, 1, 0, 0, 0, 390, 4539, 1, 0, 0, 0, 392, 4541, 1, 0, 0, 0, 394, 4546, 1, 0, 0, 0, 396, 4560, 1, 0, 0, 0, 398, 4592, 1, 0, 0, 0, 400, 4629, 1, 0, 0, 0, 402, 4631, 1, 0, 0, 0, 404, 4634, 1, 0, 0, 0, 406, 4637, 1, 0, 0, 0, 408, 4654, 1, 0, 0, 0, 410, 4675, 1, 0, 0, 0, 412, 4691, 1, 0, 0, 0, 414, 4707, 1, 0, 0, 0, 416, 4729, 1, 0, 0, 0, 418, 4734, 1, 0, 0, 0, 420, 4737, 1, 0, 0, 0, 422, 4745, 1, 0, 0, 0, 424, 4770, 1, 0, 0, 0, 426, 4773, 1, 0, 0, 0, 428, 4801, 1, 0, 0, 0, 430, 4806, 1, 0, 0, 0, 432, 4846, 1, 0, 0, 0, 434, 5058, 1, 0, 0, 0, 436, 5060, 1, 0, 0, 0, 438, 5148, 1, 0, 0, 0, 440, 5150, 1, 0, 0, 0, 442, 5156, 1, 0, 0, 0, 444, 5167, 1, 0, 0, 0, 446, 5177, 1, 0, 0, 0, 448, 5257, 1, 0, 0, 0, 450, 5259, 1, 0, 0, 0, 452, 5273, 1, 0, 0, 0, 454, 5295, 1, 0, 0, 0, 456, 5368, 1, 0, 0, 0, 458, 5370, 1, 0, 0, 0, 460, 5411, 1, 0, 0, 0, 462, 5413, 1, 0, 0, 0, 464, 5418, 1, 0, 0, 0, 466, 5421, 1, 0, 0, 0, 468, 5424, 1, 0, 0, 0, 470, 5474, 1, 0, 0, 0, 472, 5476, 1, 0, 0, 0, 474, 5487, 1, 0, 0, 0, 476, 5489, 1, 0, 0, 0, 478, 5499, 1, 0, 0, 0, 480, 5534, 1, 0, 0, 0, 482, 5537, 1, 0, 0, 0, 484, 5558, 1, 0, 0, 0, 486, 5568, 1, 0, 0, 0, 488, 5588, 1, 0, 0, 0, 490, 5594, 1, 0, 0, 0, 492, 5600, 1, 0, 0, 0, 494, 5605, 1, 0, 0, 0, 496, 5618, 1, 0, 0, 0, 498, 5645, 1, 0, 0, 0, 500, 5693, 1, 0, 0, 0, 502, 5695, 1, 0, 0, 0, 504, 5733, 1, 0, 0, 0, 506, 5735, 1, 0, 0, 0, 508, 5756, 1, 0, 0, 0, 510, 5776, 1, 0, 0, 0, 512, 5780, 1, 0, 0, 0, 514, 5795, 1, 0, 0, 0, 516, 5797, 1, 0, 0, 0, 518, 5801, 1, 0, 0, 0, 520, 5805, 1, 0, 0, 0, 522, 5813, 1, 0, 0, 0, 524, 5837, 1, 0, 0, 0, 526, 5839, 1, 0, 0, 0, 528, 5850, 1, 0, 0, 0, 530, 5858, 1, 0, 0, 0, 532, 5874, 1, 0, 0, 0, 534, 5899, 1, 0, 0, 0, 536, 5901, 1, 0, 0, 0, 538, 5905, 1, 0, 0, 0, 540, 5914, 1, 0, 0, 0, 542, 5954, 1, 0, 0, 0, 544, 5965, 1, 0, 0, 0, 546, 5973, 1, 0, 0, 0, 548, 5976, 1, 0, 0, 0, 550, 5980, 1, 0, 0, 0, 552, 5995, 1, 0, 0, 0, 554, 6020, 1, 0, 0, 0, 556, 6035, 1, 0, 0, 0, 558, 6061, 1, 0, 0, 0, 560, 6063, 1, 0, 0, 0, 562, 6086, 1, 0, 0, 0, 564, 6088, 1, 0, 0, 0, 566, 6096, 1, 0, 0, 0, 568, 6114, 1, 0, 0, 0, 570, 6138, 1, 0, 0, 0, 572, 6150, 1, 0, 0, 0, 574, 6154, 1, 0, 0, 0, 576, 6166, 1, 0, 0, 0, 578, 6186, 1, 0, 0, 0, 580, 6194, 1, 0, 0, 0, 582, 6208, 1, 0, 0, 0, 584, 6231, 1, 0, 0, 0, 586, 6233, 1, 0, 0, 0, 588, 6238, 1, 0, 0, 0, 590, 6248, 1, 0, 0, 0, 592, 6269, 1, 0, 0, 0, 594, 6271, 1, 0, 0, 0, 596, 6280, 1, 0, 0, 0, 598, 6291, 1, 0, 0, 0, 600, 6301, 1, 0, 0, 0, 602, 6303, 1, 0, 0, 0, 604, 6310, 1, 0, 0, 0, 606, 6341, 1, 0, 0, 0, 608, 6371, 1, 0, 0, 0, 610, 6373, 1, 0, 0, 0, 612, 6382, 1, 0, 0, 0, 614, 6385, 1, 0, 0, 0, 616, 6456, 1, 0, 0, 0, 618, 6480, 1, 0, 0, 0, 620, 6501, 1, 0, 0, 0, 622, 6503, 1, 0, 0, 0, 624, 6511, 1, 0, 0, 0, 626, 6528, 1, 0, 0, 0, 628, 6554, 1, 0, 0, 0, 630, 6556, 1, 0, 0, 0, 632, 6564, 1, 0, 0, 0, 634, 6571, 1, 0, 0, 0, 636, 6595, 1, 0, 0, 0, 638, 6601, 1, 0, 0, 0, 640, 6609, 1, 0, 0, 0, 642, 6612, 1, 0, 0, 0, 644, 6619, 1, 0, 0, 0, 646, 6627, 1, 0, 0, 0, 648, 6632, 1, 0, 0, 0, 650, 6662, 1, 0, 0, 0, 652, 6689, 1, 0, 0, 0, 654, 6717, 1, 0, 0, 0, 656, 6734, 1, 0, 0, 0, 658, 6740, 1, 0, 0, 0, 660, 6758, 1, 0, 0, 0, 662, 6760, 1, 0, 0, 0, 664, 6764, 1, 0, 0, 0, 666, 6781, 1, 0, 0, 0, 668, 6786, 1, 0, 0, 0, 670, 6824, 1, 0, 0, 0, 672, 6826, 1, 0, 0, 0, 674, 6830, 1, 0, 0, 0, 676, 6832, 1, 0, 0, 0, 678, 6841, 1, 0, 0, 0, 680, 6925, 1, 0, 0, 0, 682, 6931, 1, 0, 0, 0, 684, 7040, 1, 0, 0, 0, 686, 7072, 1, 0, 0, 0, 688, 7123, 1, 0, 0, 0, 690, 7127, 1, 0, 0, 0, 692, 7303, 1, 0, 0, 0, 694, 7305, 1, 0, 0, 0, 696, 7313, 1, 0, 0, 0, 698, 7318, 1, 0, 0, 0, 700, 7320, 1, 0, 0, 0, 702, 7328, 1, 0, 0, 0, 704, 7331, 1, 0, 0, 0, 706, 7340, 1, 0, 0, 0, 708, 7344, 1, 0, 0, 0, 710, 7349, 1, 0, 0, 0, 712, 7366, 1, 0, 0, 0, 714, 7393, 1, 0, 0, 0, 716, 7402, 1, 0, 0, 0, 718, 7404, 1, 0, 0, 0, 720, 7411, 1, 0, 0, 0, 722, 7415, 1, 0, 0, 0, 724, 7417, 1, 0, 0, 0, 726, 7425, 1, 0, 0, 0, 728, 7433, 1, 0, 0, 0, 730, 7440, 1, 0, 0, 0, 732, 7442, 1, 0, 0, 0, 734, 7455, 1, 0, 0, 0, 736, 7459, 1, 0, 0, 0, 738, 7461, 1, 0, 0, 0, 740, 7476, 1, 0, 0, 0, 742, 7478, 1, 0, 0, 0, 744, 7500, 1, 0, 0, 0, 746, 7502, 1, 0, 0, 0, 748, 7525, 1, 0, 0, 0, 750, 7527, 1, 0, 0, 0, 752, 7549, 1, 0, 0, 0, 754, 7552, 1, 0, 0, 0, 756, 7559, 1, 0, 0, 0, 758, 7562, 1, 0, 0, 0, 760, 7578, 1, 0, 0, 0, 762, 7580, 1, 0, 0, 0, 764, 7588, 1, 0, 0, 0, 766, 7596, 1, 0, 0, 0, 768, 7604, 1, 0, 0, 0, 770, 7612, 1, 0, 0, 0, 772, 7614, 1, 0, 0, 0, 774, 7616, 1, 0, 0, 0, 776, 7618, 1, 0, 0, 0, 778, 7620, 1, 0, 0, 0, 780, 7622, 1, 0, 0, 0, 782, 7624, 1, 0, 0, 0, 784, 7628, 1, 0, 0, 0, 786, 7636, 1, 0, 0, 0, 788, 7644, 1, 0, 0, 0, 790, 7646, 1, 0, 0, 0, 792, 7648, 1, 0, 0, 0, 794, 7650, 1, 0, 0, 0, 796, 7652, 1, 0, 0, 0, 798, 7658, 1, 0, 0, 0, 800, 7664, 1, 0, 0, 0, 802, 7670, 1, 0, 0, 0, 804, 7672, 1, 0, 0, 0, 806, 7678, 1, 0, 0, 0, 808, 7684, 1, 0, 0, 0, 810, 7686, 1, 0, 0, 0, 812, 7702, 1, 0, 0, 0, 814, 7705, 1, 0, 0, 0, 816, 7714, 1, 0, 0, 0, 818, 7716, 1, 0, 0, 0, 820, 7726, 1, 0, 0, 0, 822, 7730, 1, 0, 0, 0, 824, 7735, 1, 0, 0, 0, 826, 7741, 1, 0, 0, 0, 828, 7754, 1, 0, 0, 0, 830, 7756, 1, 0, 0, 0, 832, 7809, 1, 0, 0, 0, 834, 7811, 1, 0, 0, 0, 836, 7813, 1, 0, 0, 0, 838, 7816, 1, 0, 0, 0, 840, 7844, 1, 0, 0, 0, 842, 7848, 1, 0, 0, 0, 844, 7899, 1, 0, 0, 0, 846, 7902, 1, 0, 0, 0, 848, 7928, 1, 0, 0, 0, 850, 7930, 1, 0, 0, 0, 852, 7953, 1, 0, 0, 0, 854, 7955, 1, 0, 0, 0, 856, 7960, 1, 0, 0, 0, 858, 7975, 1, 0, 0, 0, 860, 7981, 1, 0, 0, 0, 862, 7992, 1, 0, 0, 0, 864, 8022, 1, 0, 0, 0, 866, 8029, 1, 0, 0, 0, 868, 8054, 1, 0, 0, 0, 870, 8064, 1, 0, 0, 0, 872, 8091, 1, 0, 0, 0, 874, 8104, 1, 0, 0, 0, 876, 8114, 1, 0, 0, 0, 878, 8133, 1, 0, 0, 0, 880, 8165, 1, 0, 0, 0, 882, 8169, 1, 0, 0, 0, 884, 8177, 1, 0, 0, 0, 886, 8191, 1, 0, 0, 0, 888, 8197, 1, 0, 0, 0, 890, 8218, 1, 0, 0, 0, 892, 8224, 1, 0, 0, 0, 894, 8263, 1, 0, 0, 0, 896, 8267, 1, 0, 0, 0, 898, 8293, 1, 0, 0, 0, 900, 8295, 1, 0, 0, 0, 902, 8303, 1, 0, 0, 0, 904, 8343, 1, 0, 0, 0, 906, 8377, 1, 0, 0, 0, 908, 8379, 1, 0, 0, 0, 910, 8390, 1, 0, 0, 0, 912, 8427, 1, 0, 0, 0, 914, 8431, 1, 0, 0, 0, 916, 8433, 1, 0, 0, 0, 918, 8437, 1, 0, 0, 0, 920, 8440, 1, 0, 0, 0, 922, 8462, 1, 0, 0, 0, 924, 8466, 1, 0, 0, 0, 926, 8468, 1, 0, 0, 0, 928, 8492, 1, 0, 0, 0, 930, 8496, 1, 0, 0, 0, 932, 8499, 1, 0, 0, 0, 934, 936, 3, 2, 1, 0, 935, 934, 1, 0, 0, 0, 936, 939, 1, 0, 0, 0, 937, 935, 1, 0, 0, 0, 937, 938, 1, 0, 0, 0, 938, 940, 1, 0, 0, 0, 939, 937, 1, 0, 0, 0, 940, 941, 5, 0, 0, 1, 941, 1, 1, 0, 0, 0, 942, 944, 3, 4, 2, 0, 943, 945, 5, 7, 0, 0, 944, 943, 1, 0, 0, 0, 944, 945, 1, 0, 0, 0, 945, 3, 1, 0, 0, 0, 946, 1067, 3, 280, 140, 0, 947, 1067, 3, 490, 245, 0, 948, 1067, 3, 486, 243, 0, 949, 1067, 3, 488, 244, 0, 950, 1067, 3, 354, 177, 0, 951, 1067, 3, 496, 248, 0, 952, 1067, 3, 294, 147, 0, 953, 1067, 3, 212, 106, 0, 954, 1067, 3, 214, 107, 0, 955, 1067, 3, 220, 110, 0, 956, 1067, 3, 234, 117, 0, 957, 1067, 3, 406, 203, 0, 958, 1067, 3, 28, 14, 0, 959, 1067, 3, 436, 218, 0, 960, 1067, 3, 438, 219, 0, 961, 1067, 3, 448, 224, 0, 962, 1067, 3, 440, 220, 0, 963, 1067, 3, 446, 223, 0, 964, 1067, 3, 246, 123, 0, 965, 1067, 3, 248, 124, 0, 966, 1067, 3, 200, 100, 0, 967, 1067, 3, 492, 246, 0, 968, 1067, 3, 76, 38, 0, 969, 1067, 3, 432, 216, 0, 970, 1067, 3, 108, 54, 0, 971, 1067, 3, 452, 226, 0, 972, 1067, 3, 18, 9, 0, 973, 1067, 3, 20, 10, 0, 974, 1067, 3, 16, 8, 0, 975, 1067, 3, 456, 228, 0, 976, 1067, 3, 186, 93, 0, 977, 1067, 3, 500, 250, 0, 978, 1067, 3, 498, 249, 0, 979, 1067, 3, 242, 121, 0, 980, 1067, 3, 508, 254, 0, 981, 1067, 3, 6, 3, 0, 982, 1067, 3, 72, 36, 0, 983, 1067, 3, 112, 56, 0, 984, 1067, 3, 504, 252, 0, 985, 1067, 3, 326, 163, 0, 986, 1067, 3, 70, 35, 0, 987, 1067, 3, 114, 57, 0, 988, 1067, 3, 256, 128, 0, 989, 1067, 3, 188, 94, 0, 990, 1067, 3, 282, 141, 0, 991, 1067, 3, 422, 211, 0, 992, 1067, 3, 502, 251, 0, 993, 1067, 3, 494, 247, 0, 994, 1067, 3, 210, 105, 0, 995, 1067, 3, 216, 108, 0, 996, 1067, 3, 230, 115, 0, 997, 1067, 3, 236, 118, 0, 998, 1067, 3, 366, 183, 0, 999, 1067, 3, 26, 13, 0, 1000, 1067, 3, 194, 97, 0, 1001, 1067, 3, 298, 149, 0, 1002, 1067, 3, 302, 151, 0, 1003, 1067, 3, 450, 225, 0, 1004, 1067, 3, 304, 152, 0, 1005, 1067, 3, 244, 122, 0, 1006, 1067, 3, 206, 103, 0, 1007, 1067, 3, 30, 15, 0, 1008, 1067, 3, 198, 99, 0, 1009, 1067, 3, 122, 61, 0, 1010, 1067, 3, 454, 227, 0, 1011, 1067, 3, 184, 92, 0, 1012, 1067, 3, 208, 104, 0, 1013, 1067, 3, 426, 213, 0, 1014, 1067, 3, 258, 129, 0, 1015, 1067, 3, 276, 138, 0, 1016, 1067, 3, 8, 4, 0, 1017, 1067, 3, 14, 7, 0, 1018, 1067, 3, 240, 120, 0, 1019, 1067, 3, 482, 241, 0, 1020, 1067, 3, 538, 269, 0, 1021, 1067, 3, 560, 280, 0, 1022, 1067, 3, 284, 142, 0, 1023, 1067, 3, 550, 275, 0, 1024, 1067, 3, 74, 37, 0, 1025, 1067, 3, 420, 210, 0, 1026, 1067, 3, 310, 155, 0, 1027, 1067, 3, 534, 267, 0, 1028, 1067, 3, 522, 261, 0, 1029, 1067, 3, 330, 165, 0, 1030, 1067, 3, 336, 168, 0, 1031, 1067, 3, 350, 175, 0, 1032, 1067, 3, 902, 451, 0, 1033, 1067, 3, 238, 119, 0, 1034, 1067, 3, 360, 180, 0, 1035, 1067, 3, 540, 270, 0, 1036, 1067, 3, 466, 233, 0, 1037, 1067, 3, 196, 98, 0, 1038, 1067, 3, 480, 240, 0, 1039, 1067, 3, 552, 276, 0, 1040, 1067, 3, 462, 231, 0, 1041, 1067, 3, 528, 264, 0, 1042, 1067, 3, 308, 154, 0, 1043, 1067, 3, 430, 215, 0, 1044, 1067, 3, 410, 205, 0, 1045, 1067, 3, 408, 204, 0, 1046, 1067, 3, 412, 206, 0, 1047, 1067, 3, 434, 217, 0, 1048, 1067, 3, 338, 169, 0, 1049, 1067, 3, 352, 176, 0, 1050, 1067, 3, 458, 229, 0, 1051, 1067, 3, 328, 164, 0, 1052, 1067, 3, 562, 281, 0, 1053, 1067, 3, 470, 235, 0, 1054, 1067, 3, 322, 161, 0, 1055, 1067, 3, 468, 234, 0, 1056, 1067, 3, 554, 277, 0, 1057, 1067, 3, 506, 253, 0, 1058, 1067, 3, 60, 30, 0, 1059, 1067, 3, 36, 18, 0, 1060, 1067, 3, 68, 34, 0, 1061, 1067, 3, 478, 239, 0, 1062, 1064, 5, 584, 0, 0, 1063, 1065, 5, 585, 0, 0, 1064, 1063, 1, 0, 0, 0, 1064, 1065, 1, 0, 0, 0, 1065, 1067, 1, 0, 0, 0, 1066, 946, 1, 0, 0, 0, 1066, 947, 1, 0, 0, 0, 1066, 948, 1, 0, 0, 0, 1066, 949, 1, 0, 0, 0, 1066, 950, 1, 0, 0, 0, 1066, 951, 1, 0, 0, 0, 1066, 952, 1, 0, 0, 0, 1066, 953, 1, 0, 0, 0, 1066, 954, 1, 0, 0, 0, 1066, 955, 1, 0, 0, 0, 1066, 956, 1, 0, 0, 0, 1066, 957, 1, 0, 0, 0, 1066, 958, 1, 0, 0, 0, 1066, 959, 1, 0, 0, 0, 1066, 960, 1, 0, 0, 0, 1066, 961, 1, 0, 0, 0, 1066, 962, 1, 0, 0, 0, 1066, 963, 1, 0, 0, 0, 1066, 964, 1, 0, 0, 0, 1066, 965, 1, 0, 0, 0, 1066, 966, 1, 0, 0, 0, 1066, 967, 1, 0, 0, 0, 1066, 968, 1, 0, 0, 0, 1066, 969, 1, 0, 0, 0, 1066, 970, 1, 0, 0, 0, 1066, 971, 1, 0, 0, 0, 1066, 972, 1, 0, 0, 0, 1066, 973, 1, 0, 0, 0, 1066, 974, 1, 0, 0, 0, 1066, 975, 1, 0, 0, 0, 1066, 976, 1, 0, 0, 0, 1066, 977, 1, 0, 0, 0, 1066, 978, 1, 0, 0, 0, 1066, 979, 1, 0, 0, 0, 1066, 980, 1, 0, 0, 0, 1066, 981, 1, 0, 0, 0, 1066, 982, 1, 0, 0, 0, 1066, 983, 1, 0, 0, 0, 1066, 984, 1, 0, 0, 0, 1066, 985, 1, 0, 0, 0, 1066, 986, 1, 0, 0, 0, 1066, 987, 1, 0, 0, 0, 1066, 988, 1, 0, 0, 0, 1066, 989, 1, 0, 0, 0, 1066, 990, 1, 0, 0, 0, 1066, 991, 1, 0, 0, 0, 1066, 992, 1, 0, 0, 0, 1066, 993, 1, 0, 0, 0, 1066, 994, 1, 0, 0, 0, 1066, 995, 1, 0, 0, 0, 1066, 996, 1, 0, 0, 0, 1066, 997, 1, 0, 0, 0, 1066, 998, 1, 0, 0, 0, 1066, 999, 1, 0, 0, 0, 1066, 1000, 1, 0, 0, 0, 1066, 1001, 1, 0, 0, 0, 1066, 1002, 1, 0, 0, 0, 1066, 1003, 1, 0, 0, 0, 1066, 1004, 1, 0, 0, 0, 1066, 1005, 1, 0, 0, 0, 1066, 1006, 1, 0, 0, 0, 1066, 1007, 1, 0, 0, 0, 1066, 1008, 1, 0, 0, 0, 1066, 1009, 1, 0, 0, 0, 1066, 1010, 1, 0, 0, 0, 1066, 1011, 1, 0, 0, 0, 1066, 1012, 1, 0, 0, 0, 1066, 1013, 1, 0, 0, 0, 1066, 1014, 1, 0, 0, 0, 1066, 1015, 1, 0, 0, 0, 1066, 1016, 1, 0, 0, 0, 1066, 1017, 1, 0, 0, 0, 1066, 1018, 1, 0, 0, 0, 1066, 1019, 1, 0, 0, 0, 1066, 1020, 1, 0, 0, 0, 1066, 1021, 1, 0, 0, 0, 1066, 1022, 1, 0, 0, 0, 1066, 1023, 1, 0, 0, 0, 1066, 1024, 1, 0, 0, 0, 1066, 1025, 1, 0, 0, 0, 1066, 1026, 1, 0, 0, 0, 1066, 1027, 1, 0, 0, 0, 1066, 1028, 1, 0, 0, 0, 1066, 1029, 1, 0, 0, 0, 1066, 1030, 1, 0, 0, 0, 1066, 1031, 1, 0, 0, 0, 1066, 1032, 1, 0, 0, 0, 1066, 1033, 1, 0, 0, 0, 1066, 1034, 1, 0, 0, 0, 1066, 1035, 1, 0, 0, 0, 1066, 1036, 1, 0, 0, 0, 1066, 1037, 1, 0, 0, 0, 1066, 1038, 1, 0, 0, 0, 1066, 1039, 1, 0, 0, 0, 1066, 1040, 1, 0, 0, 0, 1066, 1041, 1, 0, 0, 0, 1066, 1042, 1, 0, 0, 0, 1066, 1043, 1, 0, 0, 0, 1066, 1044, 1, 0, 0, 0, 1066, 1045, 1, 0, 0, 0, 1066, 1046, 1, 0, 0, 0, 1066, 1047, 1, 0, 0, 0, 1066, 1048, 1, 0, 0, 0, 1066, 1049, 1, 0, 0, 0, 1066, 1050, 1, 0, 0, 0, 1066, 1051, 1, 0, 0, 0, 1066, 1052, 1, 0, 0, 0, 1066, 1053, 1, 0, 0, 0, 1066, 1054, 1, 0, 0, 0, 1066, 1055, 1, 0, 0, 0, 1066, 1056, 1, 0, 0, 0, 1066, 1057, 1, 0, 0, 0, 1066, 1058, 1, 0, 0, 0, 1066, 1059, 1, 0, 0, 0, 1066, 1060, 1, 0, 0, 0, 1066, 1061, 1, 0, 0, 0, 1066, 1062, 1, 0, 0, 0, 1067, 5, 1, 0, 0, 0, 1068, 1069, 5, 433, 0, 0, 1069, 1070, 3, 686, 343, 0, 1070, 7, 1, 0, 0, 0, 1071, 1072, 5, 46, 0, 0, 1072, 1073, 5, 318, 0, 0, 1073, 1075, 3, 816, 408, 0, 1074, 1076, 5, 105, 0, 0, 1075, 1074, 1, 0, 0, 0, 1075, 1076, 1, 0, 0, 0, 1076, 1080, 1, 0, 0, 0, 1077, 1079, 3, 12, 6, 0, 1078, 1077, 1, 0, 0, 0, 1079, 1082, 1, 0, 0, 0, 1080, 1078, 1, 0, 0, 0, 1080, 1081, 1, 0, 0, 0, 1081, 9, 1, 0, 0, 0, 1082, 1080, 1, 0, 0, 0, 1083, 1086, 5, 287, 0, 0, 1084, 1087, 3, 810, 405, 0, 1085, 1087, 5, 78, 0, 0, 1086, 1084, 1, 0, 0, 0, 1086, 1085, 1, 0, 0, 0, 1087, 1122, 1, 0, 0, 0, 1088, 1089, 7, 0, 0, 0, 1089, 1090, 5, 287, 0, 0, 1090, 1122, 3, 810, 405, 0, 1091, 1122, 5, 228, 0, 0, 1092, 1122, 5, 229, 0, 0, 1093, 1122, 5, 236, 0, 0, 1094, 1122, 5, 237, 0, 0, 1095, 1122, 5, 234, 0, 0, 1096, 1122, 5, 235, 0, 0, 1097, 1122, 5, 232, 0, 0, 1098, 1122, 5, 233, 0, 0, 1099, 1122, 5, 230, 0, 0, 1100, 1122, 5, 231, 0, 0, 1101, 1122, 5, 535, 0, 0, 1102, 1122, 5, 536, 0, 0, 1103, 1122, 5, 537, 0, 0, 1104, 1122, 5, 538, 0, 0, 1105, 1122, 5, 539, 0, 0, 1106, 1122, 5, 540, 0, 0, 1107, 1108, 5, 164, 0, 0, 1108, 1109, 5, 74, 0, 0, 1109, 1122, 3, 814, 407, 0, 1110, 1111, 5, 371, 0, 0, 1111, 1112, 5, 368, 0, 0, 1112, 1122, 3, 810, 405, 0, 1113, 1114, 5, 68, 0, 0, 1114, 1115, 7, 1, 0, 0, 1115, 1122, 3, 786, 393, 0, 1116, 1117, 7, 2, 0, 0, 1117, 1122, 3, 818, 409, 0, 1118, 1119, 5, 134, 0, 0, 1119, 1122, 3, 786, 393, 0, 1120, 1122, 3, 828, 414, 0, 1121, 1083, 1, 0, 0, 0, 1121, 1088, 1, 0, 0, 0, 1121, 1091, 1, 0, 0, 0, 1121, 1092, 1, 0, 0, 0, 1121, 1093, 1, 0, 0, 0, 1121, 1094, 1, 0, 0, 0, 1121, 1095, 1, 0, 0, 0, 1121, 1096, 1, 0, 0, 0, 1121, 1097, 1, 0, 0, 0, 1121, 1098, 1, 0, 0, 0, 1121, 1099, 1, 0, 0, 0, 1121, 1100, 1, 0, 0, 0, 1121, 1101, 1, 0, 0, 0, 1121, 1102, 1, 0, 0, 0, 1121, 1103, 1, 0, 0, 0, 1121, 1104, 1, 0, 0, 0, 1121, 1105, 1, 0, 0, 0, 1121, 1106, 1, 0, 0, 0, 1121, 1107, 1, 0, 0, 0, 1121, 1110, 1, 0, 0, 0, 1121, 1113, 1, 0, 0, 0, 1121, 1116, 1, 0, 0, 0, 1121, 1118, 1, 0, 0, 0, 1121, 1120, 1, 0, 0, 0, 1122, 11, 1, 0, 0, 0, 1123, 1132, 3, 10, 5, 0, 1124, 1125, 5, 348, 0, 0, 1125, 1132, 5, 574, 0, 0, 1126, 1127, 7, 3, 0, 0, 1127, 1132, 3, 818, 409, 0, 1128, 1129, 5, 68, 0, 0, 1129, 1130, 7, 1, 0, 0, 1130, 1132, 3, 818, 409, 0, 1131, 1123, 1, 0, 0, 0, 1131, 1124, 1, 0, 0, 0, 1131, 1126, 1, 0, 0, 0, 1131, 1128, 1, 0, 0, 0, 1132, 13, 1, 0, 0, 0, 1133, 1134, 5, 46, 0, 0, 1134, 1135, 5, 99, 0, 0, 1135, 1137, 3, 816, 408, 0, 1136, 1138, 5, 105, 0, 0, 1137, 1136, 1, 0, 0, 0, 1137, 1138, 1, 0, 0, 0, 1138, 1142, 1, 0, 0, 0, 1139, 1141, 3, 12, 6, 0, 1140, 1139, 1, 0, 0, 0, 1141, 1144, 1, 0, 0, 0, 1142, 1140, 1, 0, 0, 0, 1142, 1143, 1, 0, 0, 0, 1143, 15, 1, 0, 0, 0, 1144, 1142, 1, 0, 0, 0, 1145, 1146, 5, 138, 0, 0, 1146, 1147, 7, 2, 0, 0, 1147, 1149, 3, 816, 408, 0, 1148, 1150, 5, 105, 0, 0, 1149, 1148, 1, 0, 0, 0, 1149, 1150, 1, 0, 0, 0, 1150, 1154, 1, 0, 0, 0, 1151, 1153, 3, 10, 5, 0, 1152, 1151, 1, 0, 0, 0, 1153, 1156, 1, 0, 0, 0, 1154, 1152, 1, 0, 0, 0, 1154, 1155, 1, 0, 0, 0, 1155, 17, 1, 0, 0, 0, 1156, 1154, 1, 0, 0, 0, 1157, 1158, 5, 138, 0, 0, 1158, 1161, 7, 2, 0, 0, 1159, 1162, 5, 30, 0, 0, 1160, 1162, 3, 816, 408, 0, 1161, 1159, 1, 0, 0, 0, 1161, 1160, 1, 0, 0, 0, 1162, 1163, 1, 0, 0, 0, 1163, 1164, 5, 68, 0, 0, 1164, 1165, 5, 175, 0, 0, 1165, 1166, 3, 790, 395, 0, 1166, 1167, 3, 64, 32, 0, 1167, 19, 1, 0, 0, 0, 1168, 1169, 5, 138, 0, 0, 1169, 1170, 5, 442, 0, 0, 1170, 1172, 3, 796, 398, 0, 1171, 1173, 3, 370, 185, 0, 1172, 1171, 1, 0, 0, 0, 1172, 1173, 1, 0, 0, 0, 1173, 1174, 1, 0, 0, 0, 1174, 1175, 3, 22, 11, 0, 1175, 21, 1, 0, 0, 0, 1176, 1180, 3, 24, 12, 0, 1177, 1179, 3, 24, 12, 0, 1178, 1177, 1, 0, 0, 0, 1179, 1182, 1, 0, 0, 0, 1180, 1178, 1, 0, 0, 0, 1180, 1181, 1, 0, 0, 0, 1181, 1184, 1, 0, 0, 0, 1182, 1180, 1, 0, 0, 0, 1183, 1185, 5, 315, 0, 0, 1184, 1183, 1, 0, 0, 0, 1184, 1185, 1, 0, 0, 0, 1185, 1203, 1, 0, 0, 0, 1186, 1187, 5, 309, 0, 0, 1187, 1188, 5, 94, 0, 0, 1188, 1203, 3, 794, 397, 0, 1189, 1190, 5, 282, 0, 0, 1190, 1191, 5, 94, 0, 0, 1191, 1203, 3, 816, 408, 0, 1192, 1193, 5, 333, 0, 0, 1193, 1194, 5, 323, 0, 0, 1194, 1203, 3, 32, 16, 0, 1195, 1197, 5, 269, 0, 0, 1196, 1195, 1, 0, 0, 0, 1196, 1197, 1, 0, 0, 0, 1197, 1198, 1, 0, 0, 0, 1198, 1199, 5, 462, 0, 0, 1199, 1200, 5, 80, 0, 0, 1200, 1201, 5, 204, 0, 0, 1201, 1203, 3, 820, 410, 0, 1202, 1176, 1, 0, 0, 0, 1202, 1186, 1, 0, 0, 0, 1202, 1189, 1, 0, 0, 0, 1202, 1192, 1, 0, 0, 0, 1202, 1196, 1, 0, 0, 0, 1203, 23, 1, 0, 0, 0, 1204, 1247, 5, 222, 0, 0, 1205, 1247, 5, 338, 0, 0, 1206, 1247, 5, 377, 0, 0, 1207, 1209, 5, 77, 0, 0, 1208, 1207, 1, 0, 0, 0, 1208, 1209, 1, 0, 0, 0, 1209, 1210, 1, 0, 0, 0, 1210, 1247, 5, 250, 0, 0, 1211, 1213, 5, 205, 0, 0, 1212, 1211, 1, 0, 0, 0, 1212, 1213, 1, 0, 0, 0, 1213, 1214, 1, 0, 0, 0, 1214, 1215, 5, 327, 0, 0, 1215, 1222, 5, 243, 0, 0, 1216, 1218, 5, 205, 0, 0, 1217, 1216, 1, 0, 0, 0, 1217, 1218, 1, 0, 0, 0, 1218, 1219, 1, 0, 0, 0, 1219, 1220, 5, 327, 0, 0, 1220, 1222, 5, 181, 0, 0, 1221, 1212, 1, 0, 0, 0, 1221, 1217, 1, 0, 0, 0, 1222, 1247, 1, 0, 0, 0, 1223, 1224, 5, 460, 0, 0, 1224, 1247, 7, 4, 0, 0, 1225, 1226, 5, 170, 0, 0, 1226, 1247, 3, 826, 413, 0, 1227, 1228, 5, 320, 0, 0, 1228, 1247, 3, 820, 410, 0, 1229, 1230, 5, 333, 0, 0, 1230, 1231, 3, 820, 410, 0, 1231, 1234, 7, 5, 0, 0, 1232, 1235, 3, 820, 410, 0, 1233, 1235, 5, 53, 0, 0, 1234, 1232, 1, 0, 0, 0, 1234, 1233, 1, 0, 0, 0, 1235, 1247, 1, 0, 0, 0, 1236, 1237, 5, 333, 0, 0, 1237, 1238, 3, 820, 410, 0, 1238, 1239, 5, 64, 0, 0, 1239, 1240, 5, 434, 0, 0, 1240, 1247, 1, 0, 0, 0, 1241, 1244, 5, 313, 0, 0, 1242, 1245, 3, 820, 410, 0, 1243, 1245, 5, 30, 0, 0, 1244, 1242, 1, 0, 0, 0, 1244, 1243, 1, 0, 0, 0, 1245, 1247, 1, 0, 0, 0, 1246, 1204, 1, 0, 0, 0, 1246, 1205, 1, 0, 0, 0, 1246, 1206, 1, 0, 0, 0, 1246, 1208, 1, 0, 0, 0, 1246, 1221, 1, 0, 0, 0, 1246, 1223, 1, 0, 0, 0, 1246, 1225, 1, 0, 0, 0, 1246, 1227, 1, 0, 0, 0, 1246, 1229, 1, 0, 0, 0, 1246, 1236, 1, 0, 0, 0, 1246, 1241, 1, 0, 0, 0, 1247, 25, 1, 0, 0, 0, 1248, 1249, 5, 46, 0, 0, 1249, 1250, 5, 66, 0, 0, 1250, 1252, 3, 816, 408, 0, 1251, 1253, 5, 105, 0, 0, 1252, 1251, 1, 0, 0, 0, 1252, 1253, 1, 0, 0, 0, 1253, 1257, 1, 0, 0, 0, 1254, 1256, 3, 12, 6, 0, 1255, 1254, 1, 0, 0, 0, 1256, 1259, 1, 0, 0, 0, 1257, 1255, 1, 0, 0, 0, 1257, 1258, 1, 0, 0, 0, 1258, 27, 1, 0, 0, 0, 1259, 1257, 1, 0, 0, 0, 1260, 1261, 5, 138, 0, 0, 1261, 1262, 5, 66, 0, 0, 1262, 1263, 3, 816, 408, 0, 1263, 1264, 7, 6, 0, 0, 1264, 1265, 5, 99, 0, 0, 1265, 1266, 3, 818, 409, 0, 1266, 29, 1, 0, 0, 0, 1267, 1268, 5, 46, 0, 0, 1268, 1270, 5, 323, 0, 0, 1269, 1271, 3, 296, 148, 0, 1270, 1269, 1, 0, 0, 0, 1270, 1271, 1, 0, 0, 0, 1271, 1278, 1, 0, 0, 0, 1272, 1274, 3, 32, 16, 0, 1273, 1272, 1, 0, 0, 0, 1273, 1274, 1, 0, 0, 0, 1274, 1275, 1, 0, 0, 0, 1275, 1276, 5, 106, 0, 0, 1276, 1279, 3, 816, 408, 0, 1277, 1279, 3, 32, 16, 0, 1278, 1273, 1, 0, 0, 0, 1278, 1277, 1, 0, 0, 0, 1279, 1283, 1, 0, 0, 0, 1280, 1282, 3, 34, 17, 0, 1281, 1280, 1, 0, 0, 0, 1282, 1285, 1, 0, 0, 0, 1283, 1281, 1, 0, 0, 0, 1283, 1284, 1, 0, 0, 0, 1284, 31, 1, 0, 0, 0, 1285, 1283, 1, 0, 0, 0, 1286, 1287, 3, 318, 159, 0, 1287, 33, 1, 0, 0, 0, 1288, 1295, 3, 122, 61, 0, 1289, 1295, 3, 360, 180, 0, 1290, 1295, 3, 198, 99, 0, 1291, 1295, 3, 258, 129, 0, 1292, 1295, 3, 336, 168, 0, 1293, 1295, 3, 478, 239, 0, 1294, 1288, 1, 0, 0, 0, 1294, 1289, 1, 0, 0, 0, 1294, 1290, 1, 0, 0, 0, 1294, 1291, 1, 0, 0, 0, 1294, 1292, 1, 0, 0, 0, 1294, 1293, 1, 0, 0, 0, 1295, 35, 1, 0, 0, 0, 1296, 1298, 5, 333, 0, 0, 1297, 1299, 7, 7, 0, 0, 1298, 1297, 1, 0, 0, 0, 1298, 1299, 1, 0, 0, 0, 1299, 1300, 1, 0, 0, 0, 1300, 1301, 3, 38, 19, 0, 1301, 37, 1, 0, 0, 0, 1302, 1303, 5, 356, 0, 0, 1303, 1311, 3, 476, 238, 0, 1304, 1305, 5, 332, 0, 0, 1305, 1306, 5, 154, 0, 0, 1306, 1307, 5, 36, 0, 0, 1307, 1308, 5, 356, 0, 0, 1308, 1311, 3, 476, 238, 0, 1309, 1311, 3, 42, 21, 0, 1310, 1302, 1, 0, 0, 0, 1310, 1304, 1, 0, 0, 0, 1310, 1309, 1, 0, 0, 0, 1311, 39, 1, 0, 0, 0, 1312, 1315, 5, 30, 0, 0, 1313, 1315, 3, 44, 22, 0, 1314, 1312, 1, 0, 0, 0, 1314, 1313, 1, 0, 0, 0, 1315, 1317, 1, 0, 0, 0, 1316, 1318, 7, 5, 0, 0, 1317, 1316, 1, 0, 0, 0, 1317, 1318, 1, 0, 0, 0, 1318, 1321, 1, 0, 0, 0, 1319, 1322, 5, 53, 0, 0, 1320, 1322, 3, 46, 23, 0, 1321, 1319, 1, 0, 0, 0, 1321, 1320, 1, 0, 0, 0, 1321, 1322, 1, 0, 0, 0, 1322, 41, 1, 0, 0, 0, 1323, 1324, 5, 418, 0, 0, 1324, 1325, 5, 386, 0, 0, 1325, 1352, 3, 56, 28, 0, 1326, 1327, 5, 152, 0, 0, 1327, 1352, 3, 810, 405, 0, 1328, 1329, 5, 323, 0, 0, 1329, 1352, 3, 792, 396, 0, 1330, 1333, 5, 267, 0, 0, 1331, 1334, 3, 810, 405, 0, 1332, 1334, 5, 53, 0, 0, 1333, 1331, 1, 0, 0, 0, 1333, 1332, 1, 0, 0, 0, 1333, 1334, 1, 0, 0, 0, 1334, 1352, 1, 0, 0, 0, 1335, 1336, 5, 318, 0, 0, 1336, 1352, 3, 58, 29, 0, 1337, 1338, 5, 332, 0, 0, 1338, 1339, 5, 106, 0, 0, 1339, 1352, 3, 58, 29, 0, 1340, 1341, 5, 383, 0, 0, 1341, 1342, 5, 279, 0, 0, 1342, 1352, 3, 698, 349, 0, 1343, 1344, 5, 356, 0, 0, 1344, 1345, 5, 337, 0, 0, 1345, 1352, 3, 810, 405, 0, 1346, 1347, 3, 44, 22, 0, 1347, 1348, 5, 64, 0, 0, 1348, 1349, 5, 434, 0, 0, 1349, 1352, 1, 0, 0, 0, 1350, 1352, 3, 40, 20, 0, 1351, 1323, 1, 0, 0, 0, 1351, 1326, 1, 0, 0, 0, 1351, 1328, 1, 0, 0, 0, 1351, 1330, 1, 0, 0, 0, 1351, 1335, 1, 0, 0, 0, 1351, 1337, 1, 0, 0, 0, 1351, 1340, 1, 0, 0, 0, 1351, 1343, 1, 0, 0, 0, 1351, 1346, 1, 0, 0, 0, 1351, 1350, 1, 0, 0, 0, 1352, 43, 1, 0, 0, 0, 1353, 1358, 3, 820, 410, 0, 1354, 1355, 5, 11, 0, 0, 1355, 1357, 3, 820, 410, 0, 1356, 1354, 1, 0, 0, 0, 1357, 1360, 1, 0, 0, 0, 1358, 1356, 1, 0, 0, 0, 1358, 1359, 1, 0, 0, 0, 1359, 45, 1, 0, 0, 0, 1360, 1358, 1, 0, 0, 0, 1361, 1366, 3, 48, 24, 0, 1362, 1363, 5, 6, 0, 0, 1363, 1365, 3, 48, 24, 0, 1364, 1362, 1, 0, 0, 0, 1365, 1368, 1, 0, 0, 0, 1366, 1364, 1, 0, 0, 0, 1366, 1367, 1, 0, 0, 0, 1367, 47, 1, 0, 0, 0, 1368, 1366, 1, 0, 0, 0, 1369, 1372, 3, 54, 27, 0, 1370, 1372, 3, 204, 102, 0, 1371, 1369, 1, 0, 0, 0, 1371, 1370, 1, 0, 0, 0, 1372, 49, 1, 0, 0, 0, 1373, 1374, 5, 300, 0, 0, 1374, 1379, 7, 8, 0, 0, 1375, 1376, 5, 310, 0, 0, 1376, 1379, 5, 300, 0, 0, 1377, 1379, 5, 330, 0, 0, 1378, 1373, 1, 0, 0, 0, 1378, 1375, 1, 0, 0, 0, 1378, 1377, 1, 0, 0, 0, 1379, 51, 1, 0, 0, 0, 1380, 1387, 5, 96, 0, 0, 1381, 1387, 5, 60, 0, 0, 1382, 1387, 5, 80, 0, 0, 1383, 1387, 3, 802, 401, 0, 1384, 1387, 3, 834, 417, 0, 1385, 1387, 3, 810, 405, 0, 1386, 1380, 1, 0, 0, 0, 1386, 1381, 1, 0, 0, 0, 1386, 1382, 1, 0, 0, 0, 1386, 1383, 1, 0, 0, 0, 1386, 1384, 1, 0, 0, 0, 1386, 1385, 1, 0, 0, 0, 1387, 53, 1, 0, 0, 0, 1388, 1393, 5, 96, 0, 0, 1389, 1393, 5, 60, 0, 0, 1390, 1393, 5, 80, 0, 0, 1391, 1393, 3, 58, 29, 0, 1392, 1388, 1, 0, 0, 0, 1392, 1389, 1, 0, 0, 0, 1392, 1390, 1, 0, 0, 0, 1392, 1391, 1, 0, 0, 0, 1393, 55, 1, 0, 0, 0, 1394, 1409, 3, 810, 405, 0, 1395, 1409, 5, 53, 0, 0, 1396, 1409, 3, 828, 414, 0, 1397, 1398, 5, 403, 0, 0, 1398, 1400, 3, 810, 405, 0, 1399, 1401, 3, 670, 335, 0, 1400, 1399, 1, 0, 0, 0, 1400, 1401, 1, 0, 0, 0, 1401, 1409, 1, 0, 0, 0, 1402, 1403, 5, 403, 0, 0, 1403, 1404, 3, 662, 331, 0, 1404, 1405, 3, 810, 405, 0, 1405, 1409, 1, 0, 0, 0, 1406, 1409, 3, 204, 102, 0, 1407, 1409, 5, 254, 0, 0, 1408, 1394, 1, 0, 0, 0, 1408, 1395, 1, 0, 0, 0, 1408, 1396, 1, 0, 0, 0, 1408, 1397, 1, 0, 0, 0, 1408, 1402, 1, 0, 0, 0, 1408, 1406, 1, 0, 0, 0, 1408, 1407, 1, 0, 0, 0, 1409, 57, 1, 0, 0, 0, 1410, 1413, 3, 824, 412, 0, 1411, 1413, 3, 810, 405, 0, 1412, 1410, 1, 0, 0, 0, 1412, 1411, 1, 0, 0, 0, 1413, 59, 1, 0, 0, 0, 1414, 1415, 5, 313, 0, 0, 1415, 1416, 3, 62, 31, 0, 1416, 61, 1, 0, 0, 0, 1417, 1418, 5, 418, 0, 0, 1418, 1427, 5, 386, 0, 0, 1419, 1420, 5, 356, 0, 0, 1420, 1421, 5, 244, 0, 0, 1421, 1427, 5, 251, 0, 0, 1422, 1423, 5, 332, 0, 0, 1423, 1427, 5, 106, 0, 0, 1424, 1427, 5, 30, 0, 0, 1425, 1427, 3, 44, 22, 0, 1426, 1417, 1, 0, 0, 0, 1426, 1419, 1, 0, 0, 0, 1426, 1422, 1, 0, 0, 0, 1426, 1424, 1, 0, 0, 0, 1426, 1425, 1, 0, 0, 0, 1427, 63, 1, 0, 0, 0, 1428, 1429, 5, 333, 0, 0, 1429, 1432, 3, 38, 19, 0, 1430, 1432, 3, 60, 30, 0, 1431, 1428, 1, 0, 0, 0, 1431, 1430, 1, 0, 0, 0, 1432, 65, 1, 0, 0, 0, 1433, 1434, 5, 333, 0, 0, 1434, 1437, 3, 42, 21, 0, 1435, 1437, 3, 60, 30, 0, 1436, 1433, 1, 0, 0, 0, 1436, 1435, 1, 0, 0, 0, 1437, 67, 1, 0, 0, 0, 1438, 1448, 5, 335, 0, 0, 1439, 1449, 3, 44, 22, 0, 1440, 1441, 5, 418, 0, 0, 1441, 1449, 5, 386, 0, 0, 1442, 1443, 5, 356, 0, 0, 1443, 1444, 5, 244, 0, 0, 1444, 1449, 5, 251, 0, 0, 1445, 1446, 5, 332, 0, 0, 1446, 1449, 5, 106, 0, 0, 1447, 1449, 5, 30, 0, 0, 1448, 1439, 1, 0, 0, 0, 1448, 1440, 1, 0, 0, 0, 1448, 1442, 1, 0, 0, 0, 1448, 1445, 1, 0, 0, 0, 1448, 1447, 1, 0, 0, 0, 1449, 69, 1, 0, 0, 0, 1450, 1451, 5, 333, 0, 0, 1451, 1454, 5, 165, 0, 0, 1452, 1455, 5, 30, 0, 0, 1453, 1455, 3, 762, 381, 0, 1454, 1452, 1, 0, 0, 0, 1454, 1453, 1, 0, 0, 0, 1455, 1456, 1, 0, 0, 0, 1456, 1457, 7, 9, 0, 0, 1457, 71, 1, 0, 0, 0, 1458, 1459, 5, 155, 0, 0, 1459, 73, 1, 0, 0, 0, 1460, 1461, 5, 187, 0, 0, 1461, 1462, 7, 10, 0, 0, 1462, 75, 1, 0, 0, 0, 1463, 1464, 5, 138, 0, 0, 1464, 1466, 5, 92, 0, 0, 1465, 1467, 3, 424, 212, 0, 1466, 1465, 1, 0, 0, 0, 1466, 1467, 1, 0, 0, 0, 1467, 1468, 1, 0, 0, 0, 1468, 1471, 3, 626, 313, 0, 1469, 1472, 3, 78, 39, 0, 1470, 1472, 3, 88, 44, 0, 1471, 1469, 1, 0, 0, 0, 1471, 1470, 1, 0, 0, 0, 1472, 1585, 1, 0, 0, 0, 1473, 1474, 5, 138, 0, 0, 1474, 1475, 5, 92, 0, 0, 1475, 1476, 5, 30, 0, 0, 1476, 1477, 5, 68, 0, 0, 1477, 1481, 3, 178, 89, 0, 1478, 1479, 5, 281, 0, 0, 1479, 1480, 5, 147, 0, 0, 1480, 1482, 3, 818, 409, 0, 1481, 1478, 1, 0, 0, 0, 1481, 1482, 1, 0, 0, 0, 1482, 1483, 1, 0, 0, 0, 1483, 1484, 5, 333, 0, 0, 1484, 1485, 5, 351, 0, 0, 1485, 1487, 3, 770, 385, 0, 1486, 1488, 5, 272, 0, 0, 1487, 1486, 1, 0, 0, 0, 1487, 1488, 1, 0, 0, 0, 1488, 1585, 1, 0, 0, 0, 1489, 1490, 5, 138, 0, 0, 1490, 1492, 5, 92, 0, 0, 1491, 1493, 3, 424, 212, 0, 1492, 1491, 1, 0, 0, 0, 1492, 1493, 1, 0, 0, 0, 1493, 1494, 1, 0, 0, 0, 1494, 1495, 3, 776, 388, 0, 1495, 1500, 3, 90, 45, 0, 1496, 1497, 5, 62, 0, 0, 1497, 1498, 5, 422, 0, 0, 1498, 1501, 3, 80, 40, 0, 1499, 1501, 5, 53, 0, 0, 1500, 1496, 1, 0, 0, 0, 1500, 1499, 1, 0, 0, 0, 1501, 1585, 1, 0, 0, 0, 1502, 1503, 5, 138, 0, 0, 1503, 1505, 5, 92, 0, 0, 1504, 1506, 3, 424, 212, 0, 1505, 1504, 1, 0, 0, 0, 1505, 1506, 1, 0, 0, 0, 1506, 1507, 1, 0, 0, 0, 1507, 1508, 3, 776, 388, 0, 1508, 1509, 5, 436, 0, 0, 1509, 1510, 5, 285, 0, 0, 1510, 1512, 3, 782, 391, 0, 1511, 1513, 7, 11, 0, 0, 1512, 1511, 1, 0, 0, 0, 1512, 1513, 1, 0, 0, 0, 1513, 1585, 1, 0, 0, 0, 1514, 1515, 5, 138, 0, 0, 1515, 1517, 5, 226, 0, 0, 1516, 1518, 3, 424, 212, 0, 1517, 1516, 1, 0, 0, 0, 1517, 1518, 1, 0, 0, 0, 1518, 1519, 1, 0, 0, 0, 1519, 1522, 3, 782, 391, 0, 1520, 1523, 3, 78, 39, 0, 1521, 1523, 3, 90, 45, 0, 1522, 1520, 1, 0, 0, 0, 1522, 1521, 1, 0, 0, 0, 1523, 1585, 1, 0, 0, 0, 1524, 1525, 5, 138, 0, 0, 1525, 1526, 5, 226, 0, 0, 1526, 1527, 5, 30, 0, 0, 1527, 1528, 5, 68, 0, 0, 1528, 1532, 3, 178, 89, 0, 1529, 1530, 5, 281, 0, 0, 1530, 1531, 5, 147, 0, 0, 1531, 1533, 3, 818, 409, 0, 1532, 1529, 1, 0, 0, 0, 1532, 1533, 1, 0, 0, 0, 1533, 1534, 1, 0, 0, 0, 1534, 1535, 5, 333, 0, 0, 1535, 1537, 3, 178, 89, 0, 1536, 1538, 5, 272, 0, 0, 1537, 1536, 1, 0, 0, 0, 1537, 1538, 1, 0, 0, 0, 1538, 1585, 1, 0, 0, 0, 1539, 1540, 5, 138, 0, 0, 1540, 1542, 5, 328, 0, 0, 1541, 1543, 3, 424, 212, 0, 1542, 1541, 1, 0, 0, 0, 1542, 1543, 1, 0, 0, 0, 1543, 1544, 1, 0, 0, 0, 1544, 1545, 3, 782, 391, 0, 1545, 1546, 3, 78, 39, 0, 1546, 1585, 1, 0, 0, 0, 1547, 1549, 5, 138, 0, 0, 1548, 1550, 5, 259, 0, 0, 1549, 1548, 1, 0, 0, 0, 1549, 1550, 1, 0, 0, 0, 1550, 1551, 1, 0, 0, 0, 1551, 1553, 5, 376, 0, 0, 1552, 1554, 3, 424, 212, 0, 1553, 1552, 1, 0, 0, 0, 1553, 1554, 1, 0, 0, 0, 1554, 1555, 1, 0, 0, 0, 1555, 1556, 3, 780, 390, 0, 1556, 1557, 3, 78, 39, 0, 1557, 1585, 1, 0, 0, 0, 1558, 1559, 5, 138, 0, 0, 1559, 1560, 5, 259, 0, 0, 1560, 1561, 5, 376, 0, 0, 1561, 1562, 5, 30, 0, 0, 1562, 1563, 5, 68, 0, 0, 1563, 1567, 3, 178, 89, 0, 1564, 1565, 5, 281, 0, 0, 1565, 1566, 5, 147, 0, 0, 1566, 1568, 3, 818, 409, 0, 1567, 1564, 1, 0, 0, 0, 1567, 1568, 1, 0, 0, 0, 1568, 1569, 1, 0, 0, 0, 1569, 1570, 5, 333, 0, 0, 1570, 1571, 5, 351, 0, 0, 1571, 1573, 3, 770, 385, 0, 1572, 1574, 5, 272, 0, 0, 1573, 1572, 1, 0, 0, 0, 1573, 1574, 1, 0, 0, 0, 1574, 1585, 1, 0, 0, 0, 1575, 1576, 5, 138, 0, 0, 1576, 1577, 5, 63, 0, 0, 1577, 1579, 5, 92, 0, 0, 1578, 1580, 3, 424, 212, 0, 1579, 1578, 1, 0, 0, 0, 1579, 1580, 1, 0, 0, 0, 1580, 1581, 1, 0, 0, 0, 1581, 1582, 3, 626, 313, 0, 1582, 1583, 3, 78, 39, 0, 1583, 1585, 1, 0, 0, 0, 1584, 1463, 1, 0, 0, 0, 1584, 1473, 1, 0, 0, 0, 1584, 1489, 1, 0, 0, 0, 1584, 1502, 1, 0, 0, 0, 1584, 1514, 1, 0, 0, 0, 1584, 1524, 1, 0, 0, 0, 1584, 1539, 1, 0, 0, 0, 1584, 1547, 1, 0, 0, 0, 1584, 1558, 1, 0, 0, 0, 1584, 1575, 1, 0, 0, 0, 1585, 77, 1, 0, 0, 0, 1586, 1591, 3, 92, 46, 0, 1587, 1588, 5, 6, 0, 0, 1588, 1590, 3, 92, 46, 0, 1589, 1587, 1, 0, 0, 0, 1590, 1593, 1, 0, 0, 0, 1591, 1589, 1, 0, 0, 0, 1591, 1592, 1, 0, 0, 0, 1592, 79, 1, 0, 0, 0, 1593, 1591, 1, 0, 0, 0, 1594, 1595, 5, 68, 0, 0, 1595, 1604, 3, 536, 268, 0, 1596, 1597, 5, 64, 0, 0, 1597, 1598, 3, 82, 41, 0, 1598, 1599, 5, 94, 0, 0, 1599, 1600, 3, 82, 41, 0, 1600, 1604, 1, 0, 0, 0, 1601, 1602, 5, 105, 0, 0, 1602, 1604, 3, 86, 43, 0, 1603, 1594, 1, 0, 0, 0, 1603, 1596, 1, 0, 0, 0, 1603, 1601, 1, 0, 0, 0, 1604, 81, 1, 0, 0, 0, 1605, 1606, 5, 2, 0, 0, 1606, 1611, 3, 84, 42, 0, 1607, 1608, 5, 6, 0, 0, 1608, 1610, 3, 84, 42, 0, 1609, 1607, 1, 0, 0, 0, 1610, 1613, 1, 0, 0, 0, 1611, 1609, 1, 0, 0, 0, 1611, 1612, 1, 0, 0, 0, 1612, 1614, 1, 0, 0, 0, 1613, 1611, 1, 0, 0, 0, 1614, 1615, 5, 3, 0, 0, 1615, 83, 1, 0, 0, 0, 1616, 1620, 3, 536, 268, 0, 1617, 1620, 5, 262, 0, 0, 1618, 1620, 5, 260, 0, 0, 1619, 1616, 1, 0, 0, 0, 1619, 1617, 1, 0, 0, 0, 1619, 1618, 1, 0, 0, 0, 1620, 85, 1, 0, 0, 0, 1621, 1622, 5, 2, 0, 0, 1622, 1623, 5, 533, 0, 0, 1623, 1624, 3, 204, 102, 0, 1624, 1625, 5, 6, 0, 0, 1625, 1626, 5, 534, 0, 0, 1626, 1627, 3, 204, 102, 0, 1627, 1628, 5, 3, 0, 0, 1628, 87, 1, 0, 0, 0, 1629, 1630, 3, 90, 45, 0, 1630, 1631, 3, 106, 53, 0, 1631, 1636, 1, 0, 0, 0, 1632, 1633, 5, 436, 0, 0, 1633, 1634, 5, 285, 0, 0, 1634, 1636, 3, 782, 391, 0, 1635, 1629, 1, 0, 0, 0, 1635, 1632, 1, 0, 0, 0, 1636, 89, 1, 0, 0, 0, 1637, 1638, 5, 435, 0, 0, 1638, 1639, 5, 285, 0, 0, 1639, 1640, 3, 782, 391, 0, 1640, 91, 1, 0, 0, 0, 1641, 1644, 5, 133, 0, 0, 1642, 1643, 5, 45, 0, 0, 1643, 1645, 3, 820, 410, 0, 1644, 1642, 1, 0, 0, 0, 1644, 1645, 1, 0, 0, 0, 1645, 1646, 1, 0, 0, 0, 1646, 1875, 3, 144, 72, 0, 1647, 1648, 5, 138, 0, 0, 1648, 1649, 5, 45, 0, 0, 1649, 1653, 3, 820, 410, 0, 1650, 1652, 3, 274, 137, 0, 1651, 1650, 1, 0, 0, 0, 1652, 1655, 1, 0, 0, 0, 1653, 1651, 1, 0, 0, 0, 1653, 1654, 1, 0, 0, 0, 1654, 1875, 1, 0, 0, 0, 1655, 1653, 1, 0, 0, 0, 1656, 1657, 5, 372, 0, 0, 1657, 1658, 5, 45, 0, 0, 1658, 1875, 3, 820, 410, 0, 1659, 1660, 5, 191, 0, 0, 1660, 1662, 5, 45, 0, 0, 1661, 1663, 3, 424, 212, 0, 1662, 1661, 1, 0, 0, 0, 1662, 1663, 1, 0, 0, 0, 1663, 1664, 1, 0, 0, 0, 1664, 1666, 3, 820, 410, 0, 1665, 1667, 3, 96, 48, 0, 1666, 1665, 1, 0, 0, 0, 1666, 1667, 1, 0, 0, 0, 1667, 1875, 1, 0, 0, 0, 1668, 1669, 5, 333, 0, 0, 1669, 1670, 5, 379, 0, 0, 1670, 1875, 7, 12, 0, 0, 1671, 1672, 5, 158, 0, 0, 1672, 1673, 5, 80, 0, 0, 1673, 1875, 3, 820, 410, 0, 1674, 1675, 5, 333, 0, 0, 1675, 1875, 7, 13, 0, 0, 1676, 1678, 5, 193, 0, 0, 1677, 1679, 7, 14, 0, 0, 1678, 1677, 1, 0, 0, 0, 1678, 1679, 1, 0, 0, 0, 1679, 1680, 1, 0, 0, 0, 1680, 1875, 5, 357, 0, 0, 1681, 1682, 5, 186, 0, 0, 1682, 1686, 5, 357, 0, 0, 1683, 1687, 5, 30, 0, 0, 1684, 1687, 5, 99, 0, 0, 1685, 1687, 3, 820, 410, 0, 1686, 1683, 1, 0, 0, 0, 1686, 1684, 1, 0, 0, 0, 1686, 1685, 1, 0, 0, 0, 1687, 1875, 1, 0, 0, 0, 1688, 1689, 5, 193, 0, 0, 1689, 1690, 7, 14, 0, 0, 1690, 1691, 5, 321, 0, 0, 1691, 1875, 3, 820, 410, 0, 1692, 1693, 5, 186, 0, 0, 1693, 1694, 5, 321, 0, 0, 1694, 1875, 3, 820, 410, 0, 1695, 1697, 5, 269, 0, 0, 1696, 1695, 1, 0, 0, 0, 1696, 1697, 1, 0, 0, 0, 1697, 1698, 1, 0, 0, 0, 1698, 1699, 5, 228, 0, 0, 1699, 1875, 3, 782, 391, 0, 1700, 1701, 5, 275, 0, 0, 1701, 1875, 3, 318, 159, 0, 1702, 1703, 5, 77, 0, 0, 1703, 1875, 5, 275, 0, 0, 1704, 1705, 5, 282, 0, 0, 1705, 1706, 5, 94, 0, 0, 1706, 1875, 3, 816, 408, 0, 1707, 1708, 5, 333, 0, 0, 1708, 1709, 5, 351, 0, 0, 1709, 1875, 3, 770, 385, 0, 1710, 1711, 5, 312, 0, 0, 1711, 1716, 5, 219, 0, 0, 1712, 1717, 5, 270, 0, 0, 1713, 1717, 5, 113, 0, 0, 1714, 1717, 5, 53, 0, 0, 1715, 1717, 3, 182, 91, 0, 1716, 1712, 1, 0, 0, 0, 1716, 1713, 1, 0, 0, 0, 1716, 1714, 1, 0, 0, 0, 1716, 1715, 1, 0, 0, 0, 1717, 1875, 1, 0, 0, 0, 1718, 1725, 5, 193, 0, 0, 1719, 1725, 5, 186, 0, 0, 1720, 1722, 5, 269, 0, 0, 1721, 1720, 1, 0, 0, 0, 1721, 1722, 1, 0, 0, 0, 1722, 1723, 1, 0, 0, 0, 1723, 1725, 5, 209, 0, 0, 1724, 1718, 1, 0, 0, 0, 1724, 1719, 1, 0, 0, 0, 1724, 1721, 1, 0, 0, 0, 1725, 1726, 1, 0, 0, 0, 1726, 1727, 5, 414, 0, 0, 1727, 1728, 5, 251, 0, 0, 1728, 1875, 5, 327, 0, 0, 1729, 1731, 5, 191, 0, 0, 1730, 1732, 5, 44, 0, 0, 1731, 1730, 1, 0, 0, 0, 1731, 1732, 1, 0, 0, 0, 1732, 1734, 1, 0, 0, 0, 1733, 1735, 3, 424, 212, 0, 1734, 1733, 1, 0, 0, 0, 1734, 1735, 1, 0, 0, 0, 1735, 1736, 1, 0, 0, 0, 1736, 1738, 3, 802, 401, 0, 1737, 1739, 3, 96, 48, 0, 1738, 1737, 1, 0, 0, 0, 1738, 1739, 1, 0, 0, 0, 1739, 1875, 1, 0, 0, 0, 1740, 1742, 5, 133, 0, 0, 1741, 1743, 5, 44, 0, 0, 1742, 1741, 1, 0, 0, 0, 1742, 1743, 1, 0, 0, 0, 1743, 1745, 1, 0, 0, 0, 1744, 1746, 3, 296, 148, 0, 1745, 1744, 1, 0, 0, 0, 1745, 1746, 1, 0, 0, 0, 1746, 1747, 1, 0, 0, 0, 1747, 1875, 3, 134, 67, 0, 1748, 1750, 5, 138, 0, 0, 1749, 1751, 5, 44, 0, 0, 1750, 1749, 1, 0, 0, 0, 1750, 1751, 1, 0, 0, 0, 1751, 1752, 1, 0, 0, 0, 1752, 1755, 3, 802, 401, 0, 1753, 1756, 3, 94, 47, 0, 1754, 1756, 3, 224, 112, 0, 1755, 1753, 1, 0, 0, 0, 1755, 1754, 1, 0, 0, 0, 1756, 1875, 1, 0, 0, 0, 1757, 1759, 5, 138, 0, 0, 1758, 1760, 5, 44, 0, 0, 1759, 1758, 1, 0, 0, 0, 1759, 1760, 1, 0, 0, 0, 1760, 1761, 1, 0, 0, 0, 1761, 1762, 3, 802, 401, 0, 1762, 1763, 7, 15, 0, 0, 1763, 1764, 5, 77, 0, 0, 1764, 1765, 5, 78, 0, 0, 1765, 1875, 1, 0, 0, 0, 1766, 1768, 5, 138, 0, 0, 1767, 1769, 5, 44, 0, 0, 1768, 1767, 1, 0, 0, 0, 1768, 1769, 1, 0, 0, 0, 1769, 1770, 1, 0, 0, 0, 1770, 1771, 3, 802, 401, 0, 1771, 1772, 5, 191, 0, 0, 1772, 1774, 5, 437, 0, 0, 1773, 1775, 3, 424, 212, 0, 1774, 1773, 1, 0, 0, 0, 1774, 1775, 1, 0, 0, 0, 1775, 1875, 1, 0, 0, 0, 1776, 1778, 5, 138, 0, 0, 1777, 1779, 5, 44, 0, 0, 1778, 1777, 1, 0, 0, 0, 1778, 1779, 1, 0, 0, 0, 1779, 1780, 1, 0, 0, 0, 1780, 1781, 3, 802, 401, 0, 1781, 1782, 5, 333, 0, 0, 1782, 1783, 5, 342, 0, 0, 1783, 1784, 3, 814, 407, 0, 1784, 1875, 1, 0, 0, 0, 1785, 1787, 5, 138, 0, 0, 1786, 1788, 5, 44, 0, 0, 1787, 1786, 1, 0, 0, 0, 1787, 1788, 1, 0, 0, 0, 1788, 1789, 1, 0, 0, 0, 1789, 1791, 3, 802, 401, 0, 1790, 1785, 1, 0, 0, 0, 1790, 1791, 1, 0, 0, 0, 1791, 1792, 1, 0, 0, 0, 1792, 1793, 7, 16, 0, 0, 1793, 1875, 3, 100, 50, 0, 1794, 1796, 5, 138, 0, 0, 1795, 1797, 5, 44, 0, 0, 1796, 1795, 1, 0, 0, 0, 1796, 1797, 1, 0, 0, 0, 1797, 1798, 1, 0, 0, 0, 1798, 1799, 3, 802, 401, 0, 1799, 1800, 5, 333, 0, 0, 1800, 1801, 5, 345, 0, 0, 1801, 1802, 3, 820, 410, 0, 1802, 1875, 1, 0, 0, 0, 1803, 1805, 5, 138, 0, 0, 1804, 1806, 5, 44, 0, 0, 1805, 1804, 1, 0, 0, 0, 1805, 1806, 1, 0, 0, 0, 1806, 1807, 1, 0, 0, 0, 1807, 1808, 3, 802, 401, 0, 1808, 1809, 5, 133, 0, 0, 1809, 1810, 5, 438, 0, 0, 1810, 1811, 3, 140, 70, 0, 1811, 1812, 5, 36, 0, 0, 1812, 1821, 5, 219, 0, 0, 1813, 1815, 5, 2, 0, 0, 1814, 1816, 3, 202, 101, 0, 1815, 1814, 1, 0, 0, 0, 1816, 1817, 1, 0, 0, 0, 1817, 1815, 1, 0, 0, 0, 1817, 1818, 1, 0, 0, 0, 1818, 1819, 1, 0, 0, 0, 1819, 1820, 5, 3, 0, 0, 1820, 1822, 1, 0, 0, 0, 1821, 1813, 1, 0, 0, 0, 1821, 1822, 1, 0, 0, 0, 1822, 1875, 1, 0, 0, 0, 1823, 1825, 5, 138, 0, 0, 1824, 1826, 5, 44, 0, 0, 1825, 1824, 1, 0, 0, 0, 1825, 1826, 1, 0, 0, 0, 1826, 1827, 1, 0, 0, 0, 1827, 1841, 3, 802, 401, 0, 1828, 1833, 5, 314, 0, 0, 1829, 1831, 5, 105, 0, 0, 1830, 1829, 1, 0, 0, 0, 1830, 1831, 1, 0, 0, 0, 1831, 1832, 1, 0, 0, 0, 1832, 1834, 3, 204, 102, 0, 1833, 1830, 1, 0, 0, 0, 1833, 1834, 1, 0, 0, 0, 1834, 1842, 1, 0, 0, 0, 1835, 1839, 5, 333, 0, 0, 1836, 1840, 3, 202, 101, 0, 1837, 1838, 5, 438, 0, 0, 1838, 1840, 3, 140, 70, 0, 1839, 1836, 1, 0, 0, 0, 1839, 1837, 1, 0, 0, 0, 1840, 1842, 1, 0, 0, 0, 1841, 1828, 1, 0, 0, 0, 1841, 1835, 1, 0, 0, 0, 1842, 1843, 1, 0, 0, 0, 1843, 1841, 1, 0, 0, 0, 1843, 1844, 1, 0, 0, 0, 1844, 1875, 1, 0, 0, 0, 1845, 1847, 5, 138, 0, 0, 1846, 1848, 5, 44, 0, 0, 1847, 1846, 1, 0, 0, 0, 1847, 1848, 1, 0, 0, 0, 1848, 1849, 1, 0, 0, 0, 1849, 1850, 3, 802, 401, 0, 1850, 1851, 5, 191, 0, 0, 1851, 1853, 5, 219, 0, 0, 1852, 1854, 3, 424, 212, 0, 1853, 1852, 1, 0, 0, 0, 1853, 1854, 1, 0, 0, 0, 1854, 1875, 1, 0, 0, 0, 1855, 1857, 5, 138, 0, 0, 1856, 1858, 5, 44, 0, 0, 1857, 1856, 1, 0, 0, 0, 1857, 1858, 1, 0, 0, 0, 1858, 1859, 1, 0, 0, 0, 1859, 1862, 3, 802, 401, 0, 1860, 1861, 5, 333, 0, 0, 1861, 1863, 5, 174, 0, 0, 1862, 1860, 1, 0, 0, 0, 1862, 1863, 1, 0, 0, 0, 1863, 1864, 1, 0, 0, 0, 1864, 1865, 5, 360, 0, 0, 1865, 1867, 3, 654, 327, 0, 1866, 1868, 3, 98, 49, 0, 1867, 1866, 1, 0, 0, 0, 1867, 1868, 1, 0, 0, 0, 1868, 1871, 1, 0, 0, 0, 1869, 1870, 5, 100, 0, 0, 1870, 1872, 3, 676, 338, 0, 1871, 1869, 1, 0, 0, 0, 1871, 1872, 1, 0, 0, 0, 1872, 1875, 1, 0, 0, 0, 1873, 1875, 3, 224, 112, 0, 1874, 1641, 1, 0, 0, 0, 1874, 1647, 1, 0, 0, 0, 1874, 1656, 1, 0, 0, 0, 1874, 1659, 1, 0, 0, 0, 1874, 1668, 1, 0, 0, 0, 1874, 1671, 1, 0, 0, 0, 1874, 1674, 1, 0, 0, 0, 1874, 1676, 1, 0, 0, 0, 1874, 1681, 1, 0, 0, 0, 1874, 1688, 1, 0, 0, 0, 1874, 1692, 1, 0, 0, 0, 1874, 1696, 1, 0, 0, 0, 1874, 1700, 1, 0, 0, 0, 1874, 1702, 1, 0, 0, 0, 1874, 1704, 1, 0, 0, 0, 1874, 1707, 1, 0, 0, 0, 1874, 1710, 1, 0, 0, 0, 1874, 1724, 1, 0, 0, 0, 1874, 1729, 1, 0, 0, 0, 1874, 1740, 1, 0, 0, 0, 1874, 1748, 1, 0, 0, 0, 1874, 1757, 1, 0, 0, 0, 1874, 1766, 1, 0, 0, 0, 1874, 1776, 1, 0, 0, 0, 1874, 1790, 1, 0, 0, 0, 1874, 1794, 1, 0, 0, 0, 1874, 1803, 1, 0, 0, 0, 1874, 1823, 1, 0, 0, 0, 1874, 1845, 1, 0, 0, 0, 1874, 1855, 1, 0, 0, 0, 1874, 1873, 1, 0, 0, 0, 1875, 93, 1, 0, 0, 0, 1876, 1877, 5, 333, 0, 0, 1877, 1878, 5, 53, 0, 0, 1878, 1882, 3, 676, 338, 0, 1879, 1880, 5, 191, 0, 0, 1880, 1882, 5, 53, 0, 0, 1881, 1876, 1, 0, 0, 0, 1881, 1879, 1, 0, 0, 0, 1882, 95, 1, 0, 0, 0, 1883, 1884, 7, 17, 0, 0, 1884, 97, 1, 0, 0, 0, 1885, 1886, 5, 43, 0, 0, 1886, 1887, 3, 318, 159, 0, 1887, 99, 1, 0, 0, 0, 1888, 1889, 5, 2, 0, 0, 1889, 1894, 3, 104, 52, 0, 1890, 1891, 5, 6, 0, 0, 1891, 1893, 3, 104, 52, 0, 1892, 1890, 1, 0, 0, 0, 1893, 1896, 1, 0, 0, 0, 1894, 1892, 1, 0, 0, 0, 1894, 1895, 1, 0, 0, 0, 1895, 1897, 1, 0, 0, 0, 1896, 1894, 1, 0, 0, 0, 1897, 1898, 5, 3, 0, 0, 1898, 101, 1, 0, 0, 0, 1899, 1900, 5, 105, 0, 0, 1900, 1901, 3, 100, 50, 0, 1901, 103, 1, 0, 0, 0, 1902, 1907, 3, 826, 413, 0, 1903, 1904, 5, 10, 0, 0, 1904, 1908, 3, 290, 145, 0, 1905, 1906, 5, 11, 0, 0, 1906, 1908, 3, 288, 144, 0, 1907, 1903, 1, 0, 0, 0, 1907, 1905, 1, 0, 0, 0, 1907, 1908, 1, 0, 0, 0, 1908, 105, 1, 0, 0, 0, 1909, 1910, 5, 62, 0, 0, 1910, 1911, 5, 422, 0, 0, 1911, 1912, 5, 105, 0, 0, 1912, 1913, 5, 2, 0, 0, 1913, 1914, 5, 533, 0, 0, 1914, 1915, 5, 574, 0, 0, 1915, 1916, 5, 6, 0, 0, 1916, 1917, 5, 534, 0, 0, 1917, 1918, 5, 574, 0, 0, 1918, 1932, 5, 3, 0, 0, 1919, 1920, 5, 62, 0, 0, 1920, 1921, 5, 422, 0, 0, 1921, 1922, 5, 68, 0, 0, 1922, 1932, 3, 536, 268, 0, 1923, 1924, 5, 62, 0, 0, 1924, 1925, 5, 422, 0, 0, 1925, 1926, 5, 64, 0, 0, 1926, 1927, 3, 536, 268, 0, 1927, 1928, 5, 94, 0, 0, 1928, 1929, 3, 536, 268, 0, 1929, 1932, 1, 0, 0, 0, 1930, 1932, 5, 53, 0, 0, 1931, 1909, 1, 0, 0, 0, 1931, 1919, 1, 0, 0, 0, 1931, 1923, 1, 0, 0, 0, 1931, 1930, 1, 0, 0, 0, 1932, 107, 1, 0, 0, 0, 1933, 1934, 5, 138, 0, 0, 1934, 1935, 5, 360, 0, 0, 1935, 1936, 3, 318, 159, 0, 1936, 1941, 3, 110, 55, 0, 1937, 1938, 5, 6, 0, 0, 1938, 1940, 3, 110, 55, 0, 1939, 1937, 1, 0, 0, 0, 1940, 1943, 1, 0, 0, 0, 1941, 1939, 1, 0, 0, 0, 1941, 1942, 1, 0, 0, 0, 1942, 109, 1, 0, 0, 0, 1943, 1941, 1, 0, 0, 0, 1944, 1945, 5, 133, 0, 0, 1945, 1946, 5, 143, 0, 0, 1946, 1948, 3, 646, 323, 0, 1947, 1949, 3, 96, 48, 0, 1948, 1947, 1, 0, 0, 0, 1948, 1949, 1, 0, 0, 0, 1949, 1975, 1, 0, 0, 0, 1950, 1951, 5, 191, 0, 0, 1951, 1953, 5, 143, 0, 0, 1952, 1954, 3, 424, 212, 0, 1953, 1952, 1, 0, 0, 0, 1953, 1954, 1, 0, 0, 0, 1954, 1955, 1, 0, 0, 0, 1955, 1957, 3, 820, 410, 0, 1956, 1958, 3, 96, 48, 0, 1957, 1956, 1, 0, 0, 0, 1957, 1958, 1, 0, 0, 0, 1958, 1975, 1, 0, 0, 0, 1959, 1960, 5, 138, 0, 0, 1960, 1961, 5, 143, 0, 0, 1961, 1964, 3, 820, 410, 0, 1962, 1963, 5, 333, 0, 0, 1963, 1965, 5, 174, 0, 0, 1964, 1962, 1, 0, 0, 0, 1964, 1965, 1, 0, 0, 0, 1965, 1966, 1, 0, 0, 0, 1966, 1967, 5, 360, 0, 0, 1967, 1969, 3, 654, 327, 0, 1968, 1970, 3, 98, 49, 0, 1969, 1968, 1, 0, 0, 0, 1969, 1970, 1, 0, 0, 0, 1970, 1972, 1, 0, 0, 0, 1971, 1973, 3, 96, 48, 0, 1972, 1971, 1, 0, 0, 0, 1972, 1973, 1, 0, 0, 0, 1973, 1975, 1, 0, 0, 0, 1974, 1944, 1, 0, 0, 0, 1974, 1950, 1, 0, 0, 0, 1974, 1959, 1, 0, 0, 0, 1975, 111, 1, 0, 0, 0, 1976, 1979, 5, 157, 0, 0, 1977, 1980, 3, 820, 410, 0, 1978, 1980, 5, 30, 0, 0, 1979, 1977, 1, 0, 0, 0, 1979, 1978, 1, 0, 0, 0, 1980, 113, 1, 0, 0, 0, 1981, 1983, 5, 169, 0, 0, 1982, 1984, 5, 107, 0, 0, 1983, 1982, 1, 0, 0, 0, 1983, 1984, 1, 0, 0, 0, 1984, 1985, 1, 0, 0, 0, 1985, 1987, 3, 776, 388, 0, 1986, 1988, 3, 146, 73, 0, 1987, 1986, 1, 0, 0, 0, 1987, 1988, 1, 0, 0, 0, 1988, 1989, 1, 0, 0, 0, 1989, 1991, 7, 18, 0, 0, 1990, 1992, 5, 297, 0, 0, 1991, 1990, 1, 0, 0, 0, 1991, 1992, 1, 0, 0, 0, 1992, 1996, 1, 0, 0, 0, 1993, 1997, 3, 810, 405, 0, 1994, 1997, 5, 343, 0, 0, 1995, 1997, 5, 344, 0, 0, 1996, 1993, 1, 0, 0, 0, 1996, 1994, 1, 0, 0, 0, 1996, 1995, 1, 0, 0, 0, 1997, 2003, 1, 0, 0, 0, 1998, 2000, 5, 100, 0, 0, 1999, 1998, 1, 0, 0, 0, 1999, 2000, 1, 0, 0, 0, 2000, 2001, 1, 0, 0, 0, 2001, 2002, 5, 184, 0, 0, 2002, 2004, 3, 810, 405, 0, 2003, 1999, 1, 0, 0, 0, 2003, 2004, 1, 0, 0, 0, 2004, 2006, 1, 0, 0, 0, 2005, 2007, 5, 105, 0, 0, 2006, 2005, 1, 0, 0, 0, 2006, 2007, 1, 0, 0, 0, 2007, 2008, 1, 0, 0, 0, 2008, 2010, 3, 118, 59, 0, 2009, 2011, 3, 640, 320, 0, 2010, 2009, 1, 0, 0, 0, 2010, 2011, 1, 0, 0, 0, 2011, 2031, 1, 0, 0, 0, 2012, 2013, 5, 169, 0, 0, 2013, 2014, 5, 2, 0, 0, 2014, 2015, 3, 532, 266, 0, 2015, 2016, 5, 3, 0, 0, 2016, 2018, 5, 94, 0, 0, 2017, 2019, 5, 297, 0, 0, 2018, 2017, 1, 0, 0, 0, 2018, 2019, 1, 0, 0, 0, 2019, 2023, 1, 0, 0, 0, 2020, 2024, 3, 810, 405, 0, 2021, 2024, 5, 343, 0, 0, 2022, 2024, 5, 344, 0, 0, 2023, 2020, 1, 0, 0, 0, 2023, 2021, 1, 0, 0, 0, 2023, 2022, 1, 0, 0, 0, 2024, 2026, 1, 0, 0, 0, 2025, 2027, 5, 105, 0, 0, 2026, 2025, 1, 0, 0, 0, 2026, 2027, 1, 0, 0, 0, 2027, 2028, 1, 0, 0, 0, 2028, 2029, 3, 118, 59, 0, 2029, 2031, 1, 0, 0, 0, 2030, 1981, 1, 0, 0, 0, 2030, 2012, 1, 0, 0, 0, 2031, 115, 1, 0, 0, 0, 2032, 2075, 5, 107, 0, 0, 2033, 2075, 5, 112, 0, 0, 2034, 2036, 7, 19, 0, 0, 2035, 2037, 5, 36, 0, 0, 2036, 2035, 1, 0, 0, 0, 2036, 2037, 1, 0, 0, 0, 2037, 2038, 1, 0, 0, 0, 2038, 2075, 3, 810, 405, 0, 2039, 2075, 5, 171, 0, 0, 2040, 2075, 5, 216, 0, 0, 2041, 2042, 5, 209, 0, 0, 2042, 2045, 5, 298, 0, 0, 2043, 2046, 3, 150, 75, 0, 2044, 2046, 5, 9, 0, 0, 2045, 2043, 1, 0, 0, 0, 2045, 2044, 1, 0, 0, 0, 2046, 2075, 1, 0, 0, 0, 2047, 2049, 5, 209, 0, 0, 2048, 2050, 5, 77, 0, 0, 2049, 2048, 1, 0, 0, 0, 2049, 2050, 1, 0, 0, 0, 2050, 2051, 1, 0, 0, 0, 2051, 2052, 5, 78, 0, 0, 2052, 2075, 3, 150, 75, 0, 2053, 2054, 5, 194, 0, 0, 2054, 2075, 3, 810, 405, 0, 2055, 2072, 7, 20, 0, 0, 2056, 2059, 5, 2, 0, 0, 2057, 2060, 3, 150, 75, 0, 2058, 2060, 5, 9, 0, 0, 2059, 2057, 1, 0, 0, 0, 2059, 2058, 1, 0, 0, 0, 2060, 2068, 1, 0, 0, 0, 2061, 2064, 5, 6, 0, 0, 2062, 2065, 3, 150, 75, 0, 2063, 2065, 5, 9, 0, 0, 2064, 2062, 1, 0, 0, 0, 2064, 2063, 1, 0, 0, 0, 2065, 2067, 1, 0, 0, 0, 2066, 2061, 1, 0, 0, 0, 2067, 2070, 1, 0, 0, 0, 2068, 2066, 1, 0, 0, 0, 2068, 2069, 1, 0, 0, 0, 2069, 2071, 1, 0, 0, 0, 2070, 2068, 1, 0, 0, 0, 2071, 2073, 5, 3, 0, 0, 2072, 2056, 1, 0, 0, 0, 2072, 2073, 1, 0, 0, 0, 2073, 2075, 1, 0, 0, 0, 2074, 2032, 1, 0, 0, 0, 2074, 2033, 1, 0, 0, 0, 2074, 2034, 1, 0, 0, 0, 2074, 2039, 1, 0, 0, 0, 2074, 2040, 1, 0, 0, 0, 2074, 2041, 1, 0, 0, 0, 2074, 2047, 1, 0, 0, 0, 2074, 2053, 1, 0, 0, 0, 2074, 2055, 1, 0, 0, 0, 2075, 2078, 1, 0, 0, 0, 2076, 2074, 1, 0, 0, 0, 2076, 2077, 1, 0, 0, 0, 2077, 117, 1, 0, 0, 0, 2078, 2076, 1, 0, 0, 0, 2079, 2098, 3, 116, 58, 0, 2080, 2083, 5, 2, 0, 0, 2081, 2084, 3, 116, 58, 0, 2082, 2084, 3, 120, 60, 0, 2083, 2081, 1, 0, 0, 0, 2083, 2082, 1, 0, 0, 0, 2084, 2092, 1, 0, 0, 0, 2085, 2088, 5, 6, 0, 0, 2086, 2089, 3, 116, 58, 0, 2087, 2089, 3, 120, 60, 0, 2088, 2086, 1, 0, 0, 0, 2088, 2087, 1, 0, 0, 0, 2089, 2091, 1, 0, 0, 0, 2090, 2085, 1, 0, 0, 0, 2091, 2094, 1, 0, 0, 0, 2092, 2090, 1, 0, 0, 0, 2092, 2093, 1, 0, 0, 0, 2093, 2095, 1, 0, 0, 0, 2094, 2092, 1, 0, 0, 0, 2095, 2096, 5, 3, 0, 0, 2096, 2098, 1, 0, 0, 0, 2097, 2079, 1, 0, 0, 0, 2097, 2080, 1, 0, 0, 0, 2098, 119, 1, 0, 0, 0, 2099, 2114, 3, 826, 413, 0, 2100, 2115, 3, 54, 27, 0, 2101, 2115, 3, 204, 102, 0, 2102, 2115, 5, 9, 0, 0, 2103, 2104, 5, 2, 0, 0, 2104, 2109, 3, 52, 26, 0, 2105, 2106, 5, 6, 0, 0, 2106, 2108, 3, 52, 26, 0, 2107, 2105, 1, 0, 0, 0, 2108, 2111, 1, 0, 0, 0, 2109, 2107, 1, 0, 0, 0, 2109, 2110, 1, 0, 0, 0, 2110, 2112, 1, 0, 0, 0, 2111, 2109, 1, 0, 0, 0, 2112, 2113, 5, 3, 0, 0, 2113, 2115, 1, 0, 0, 0, 2114, 2100, 1, 0, 0, 0, 2114, 2101, 1, 0, 0, 0, 2114, 2102, 1, 0, 0, 0, 2114, 2103, 1, 0, 0, 0, 2114, 2115, 1, 0, 0, 0, 2115, 121, 1, 0, 0, 0, 2116, 2118, 5, 46, 0, 0, 2117, 2119, 3, 124, 62, 0, 2118, 2117, 1, 0, 0, 0, 2118, 2119, 1, 0, 0, 0, 2119, 2120, 1, 0, 0, 0, 2120, 2122, 5, 92, 0, 0, 2121, 2123, 3, 296, 148, 0, 2122, 2121, 1, 0, 0, 0, 2122, 2123, 1, 0, 0, 0, 2123, 2124, 1, 0, 0, 0, 2124, 2190, 3, 774, 387, 0, 2125, 2127, 5, 2, 0, 0, 2126, 2128, 3, 128, 64, 0, 2127, 2126, 1, 0, 0, 0, 2127, 2128, 1, 0, 0, 0, 2128, 2129, 1, 0, 0, 0, 2129, 2131, 5, 3, 0, 0, 2130, 2132, 3, 166, 83, 0, 2131, 2130, 1, 0, 0, 0, 2131, 2132, 1, 0, 0, 0, 2132, 2134, 1, 0, 0, 0, 2133, 2135, 3, 168, 84, 0, 2134, 2133, 1, 0, 0, 0, 2134, 2135, 1, 0, 0, 0, 2135, 2137, 1, 0, 0, 0, 2136, 2138, 3, 172, 86, 0, 2137, 2136, 1, 0, 0, 0, 2137, 2138, 1, 0, 0, 0, 2138, 2140, 1, 0, 0, 0, 2139, 2141, 3, 174, 87, 0, 2140, 2139, 1, 0, 0, 0, 2140, 2141, 1, 0, 0, 0, 2141, 2143, 1, 0, 0, 0, 2142, 2144, 3, 176, 88, 0, 2143, 2142, 1, 0, 0, 0, 2143, 2144, 1, 0, 0, 0, 2144, 2146, 1, 0, 0, 0, 2145, 2147, 3, 178, 89, 0, 2146, 2145, 1, 0, 0, 0, 2146, 2147, 1, 0, 0, 0, 2147, 2191, 1, 0, 0, 0, 2148, 2149, 5, 275, 0, 0, 2149, 2151, 3, 318, 159, 0, 2150, 2152, 3, 126, 63, 0, 2151, 2150, 1, 0, 0, 0, 2151, 2152, 1, 0, 0, 0, 2152, 2154, 1, 0, 0, 0, 2153, 2155, 3, 168, 84, 0, 2154, 2153, 1, 0, 0, 0, 2154, 2155, 1, 0, 0, 0, 2155, 2157, 1, 0, 0, 0, 2156, 2158, 3, 172, 86, 0, 2157, 2156, 1, 0, 0, 0, 2157, 2158, 1, 0, 0, 0, 2158, 2160, 1, 0, 0, 0, 2159, 2161, 3, 174, 87, 0, 2160, 2159, 1, 0, 0, 0, 2160, 2161, 1, 0, 0, 0, 2161, 2163, 1, 0, 0, 0, 2162, 2164, 3, 176, 88, 0, 2163, 2162, 1, 0, 0, 0, 2163, 2164, 1, 0, 0, 0, 2164, 2166, 1, 0, 0, 0, 2165, 2167, 3, 178, 89, 0, 2166, 2165, 1, 0, 0, 0, 2166, 2167, 1, 0, 0, 0, 2167, 2191, 1, 0, 0, 0, 2168, 2169, 5, 285, 0, 0, 2169, 2170, 5, 275, 0, 0, 2170, 2172, 3, 782, 391, 0, 2171, 2173, 3, 126, 63, 0, 2172, 2171, 1, 0, 0, 0, 2172, 2173, 1, 0, 0, 0, 2173, 2174, 1, 0, 0, 0, 2174, 2176, 3, 106, 53, 0, 2175, 2177, 3, 168, 84, 0, 2176, 2175, 1, 0, 0, 0, 2176, 2177, 1, 0, 0, 0, 2177, 2179, 1, 0, 0, 0, 2178, 2180, 3, 172, 86, 0, 2179, 2178, 1, 0, 0, 0, 2179, 2180, 1, 0, 0, 0, 2180, 2182, 1, 0, 0, 0, 2181, 2183, 3, 174, 87, 0, 2182, 2181, 1, 0, 0, 0, 2182, 2183, 1, 0, 0, 0, 2183, 2185, 1, 0, 0, 0, 2184, 2186, 3, 176, 88, 0, 2185, 2184, 1, 0, 0, 0, 2185, 2186, 1, 0, 0, 0, 2186, 2188, 1, 0, 0, 0, 2187, 2189, 3, 178, 89, 0, 2188, 2187, 1, 0, 0, 0, 2188, 2189, 1, 0, 0, 0, 2189, 2191, 1, 0, 0, 0, 2190, 2125, 1, 0, 0, 0, 2190, 2148, 1, 0, 0, 0, 2190, 2168, 1, 0, 0, 0, 2191, 123, 1, 0, 0, 0, 2192, 2198, 5, 354, 0, 0, 2193, 2198, 5, 352, 0, 0, 2194, 2195, 7, 21, 0, 0, 2195, 2198, 7, 22, 0, 0, 2196, 2198, 5, 367, 0, 0, 2197, 2192, 1, 0, 0, 0, 2197, 2193, 1, 0, 0, 0, 2197, 2194, 1, 0, 0, 0, 2197, 2196, 1, 0, 0, 0, 2198, 125, 1, 0, 0, 0, 2199, 2200, 5, 2, 0, 0, 2200, 2205, 3, 132, 66, 0, 2201, 2202, 5, 6, 0, 0, 2202, 2204, 3, 132, 66, 0, 2203, 2201, 1, 0, 0, 0, 2204, 2207, 1, 0, 0, 0, 2205, 2203, 1, 0, 0, 0, 2205, 2206, 1, 0, 0, 0, 2206, 2208, 1, 0, 0, 0, 2207, 2205, 1, 0, 0, 0, 2208, 2209, 5, 3, 0, 0, 2209, 127, 1, 0, 0, 0, 2210, 2215, 3, 130, 65, 0, 2211, 2212, 5, 6, 0, 0, 2212, 2214, 3, 130, 65, 0, 2213, 2211, 1, 0, 0, 0, 2214, 2217, 1, 0, 0, 0, 2215, 2213, 1, 0, 0, 0, 2215, 2216, 1, 0, 0, 0, 2216, 129, 1, 0, 0, 0, 2217, 2215, 1, 0, 0, 0, 2218, 2219, 5, 45, 0, 0, 2219, 2221, 3, 820, 410, 0, 2220, 2218, 1, 0, 0, 0, 2220, 2221, 1, 0, 0, 0, 2221, 2222, 1, 0, 0, 0, 2222, 2234, 3, 144, 72, 0, 2223, 2234, 3, 134, 67, 0, 2224, 2225, 5, 120, 0, 0, 2225, 2230, 3, 782, 391, 0, 2226, 2227, 7, 23, 0, 0, 2227, 2229, 3, 142, 71, 0, 2228, 2226, 1, 0, 0, 0, 2229, 2232, 1, 0, 0, 0, 2230, 2228, 1, 0, 0, 0, 2230, 2231, 1, 0, 0, 0, 2231, 2234, 1, 0, 0, 0, 2232, 2230, 1, 0, 0, 0, 2233, 2220, 1, 0, 0, 0, 2233, 2223, 1, 0, 0, 0, 2233, 2224, 1, 0, 0, 0, 2234, 131, 1, 0, 0, 0, 2235, 2238, 3, 804, 402, 0, 2236, 2237, 5, 105, 0, 0, 2237, 2239, 5, 280, 0, 0, 2238, 2236, 1, 0, 0, 0, 2238, 2239, 1, 0, 0, 0, 2239, 2243, 1, 0, 0, 0, 2240, 2242, 3, 136, 68, 0, 2241, 2240, 1, 0, 0, 0, 2242, 2245, 1, 0, 0, 0, 2243, 2241, 1, 0, 0, 0, 2243, 2244, 1, 0, 0, 0, 2244, 2252, 1, 0, 0, 0, 2245, 2243, 1, 0, 0, 0, 2246, 2247, 5, 45, 0, 0, 2247, 2249, 3, 820, 410, 0, 2248, 2246, 1, 0, 0, 0, 2248, 2249, 1, 0, 0, 0, 2249, 2250, 1, 0, 0, 0, 2250, 2252, 3, 144, 72, 0, 2251, 2235, 1, 0, 0, 0, 2251, 2248, 1, 0, 0, 0, 2252, 133, 1, 0, 0, 0, 2253, 2254, 3, 804, 402, 0, 2254, 2256, 3, 654, 327, 0, 2255, 2257, 3, 222, 111, 0, 2256, 2255, 1, 0, 0, 0, 2256, 2257, 1, 0, 0, 0, 2257, 2267, 1, 0, 0, 0, 2258, 2265, 5, 345, 0, 0, 2259, 2266, 5, 544, 0, 0, 2260, 2266, 5, 205, 0, 0, 2261, 2266, 5, 545, 0, 0, 2262, 2266, 5, 546, 0, 0, 2263, 2266, 5, 53, 0, 0, 2264, 2266, 3, 820, 410, 0, 2265, 2259, 1, 0, 0, 0, 2265, 2260, 1, 0, 0, 0, 2265, 2261, 1, 0, 0, 0, 2265, 2262, 1, 0, 0, 0, 2265, 2263, 1, 0, 0, 0, 2265, 2264, 1, 0, 0, 0, 2266, 2268, 1, 0, 0, 0, 2267, 2258, 1, 0, 0, 0, 2267, 2268, 1, 0, 0, 0, 2268, 2271, 1, 0, 0, 0, 2269, 2270, 5, 543, 0, 0, 2270, 2272, 3, 820, 410, 0, 2271, 2269, 1, 0, 0, 0, 2271, 2272, 1, 0, 0, 0, 2272, 2274, 1, 0, 0, 0, 2273, 2275, 3, 98, 49, 0, 2274, 2273, 1, 0, 0, 0, 2274, 2275, 1, 0, 0, 0, 2275, 2278, 1, 0, 0, 0, 2276, 2277, 5, 105, 0, 0, 2277, 2279, 5, 280, 0, 0, 2278, 2276, 1, 0, 0, 0, 2278, 2279, 1, 0, 0, 0, 2279, 2283, 1, 0, 0, 0, 2280, 2282, 3, 136, 68, 0, 2281, 2280, 1, 0, 0, 0, 2282, 2285, 1, 0, 0, 0, 2283, 2281, 1, 0, 0, 0, 2283, 2284, 1, 0, 0, 0, 2284, 135, 1, 0, 0, 0, 2285, 2283, 1, 0, 0, 0, 2286, 2287, 5, 45, 0, 0, 2287, 2289, 3, 820, 410, 0, 2288, 2286, 1, 0, 0, 0, 2288, 2289, 1, 0, 0, 0, 2289, 2290, 1, 0, 0, 0, 2290, 2295, 3, 138, 69, 0, 2291, 2293, 5, 77, 0, 0, 2292, 2291, 1, 0, 0, 0, 2292, 2293, 1, 0, 0, 0, 2293, 2294, 1, 0, 0, 0, 2294, 2296, 5, 54, 0, 0, 2295, 2292, 1, 0, 0, 0, 2295, 2296, 1, 0, 0, 0, 2296, 2299, 1, 0, 0, 0, 2297, 2298, 5, 69, 0, 0, 2298, 2300, 7, 9, 0, 0, 2299, 2297, 1, 0, 0, 0, 2299, 2300, 1, 0, 0, 0, 2300, 137, 1, 0, 0, 0, 2301, 2303, 5, 77, 0, 0, 2302, 2301, 1, 0, 0, 0, 2302, 2303, 1, 0, 0, 0, 2303, 2304, 1, 0, 0, 0, 2304, 2382, 5, 78, 0, 0, 2305, 2307, 5, 98, 0, 0, 2306, 2308, 3, 402, 201, 0, 2307, 2306, 1, 0, 0, 0, 2307, 2308, 1, 0, 0, 0, 2308, 2310, 1, 0, 0, 0, 2309, 2311, 3, 180, 90, 0, 2310, 2309, 1, 0, 0, 0, 2310, 2311, 1, 0, 0, 0, 2311, 2382, 1, 0, 0, 0, 2312, 2318, 5, 98, 0, 0, 2313, 2315, 5, 273, 0, 0, 2314, 2316, 5, 77, 0, 0, 2315, 2314, 1, 0, 0, 0, 2315, 2316, 1, 0, 0, 0, 2316, 2317, 1, 0, 0, 0, 2317, 2319, 5, 56, 0, 0, 2318, 2313, 1, 0, 0, 0, 2318, 2319, 1, 0, 0, 0, 2319, 2322, 1, 0, 0, 0, 2320, 2321, 5, 441, 0, 0, 2321, 2323, 3, 362, 181, 0, 2322, 2320, 1, 0, 0, 0, 2322, 2323, 1, 0, 0, 0, 2323, 2325, 1, 0, 0, 0, 2324, 2326, 3, 574, 287, 0, 2325, 2324, 1, 0, 0, 0, 2325, 2326, 1, 0, 0, 0, 2326, 2328, 1, 0, 0, 0, 2327, 2329, 3, 180, 90, 0, 2328, 2327, 1, 0, 0, 0, 2328, 2329, 1, 0, 0, 0, 2329, 2382, 1, 0, 0, 0, 2330, 2331, 5, 85, 0, 0, 2331, 2333, 5, 245, 0, 0, 2332, 2334, 3, 402, 201, 0, 2333, 2332, 1, 0, 0, 0, 2333, 2334, 1, 0, 0, 0, 2334, 2336, 1, 0, 0, 0, 2335, 2337, 3, 180, 90, 0, 2336, 2335, 1, 0, 0, 0, 2336, 2337, 1, 0, 0, 0, 2337, 2382, 1, 0, 0, 0, 2338, 2339, 5, 42, 0, 0, 2339, 2340, 5, 2, 0, 0, 2340, 2341, 3, 676, 338, 0, 2341, 2344, 5, 3, 0, 0, 2342, 2343, 5, 269, 0, 0, 2343, 2345, 5, 228, 0, 0, 2344, 2342, 1, 0, 0, 0, 2344, 2345, 1, 0, 0, 0, 2345, 2382, 1, 0, 0, 0, 2346, 2347, 5, 53, 0, 0, 2347, 2382, 3, 684, 342, 0, 2348, 2349, 5, 438, 0, 0, 2349, 2350, 3, 140, 70, 0, 2350, 2367, 5, 36, 0, 0, 2351, 2360, 5, 219, 0, 0, 2352, 2354, 5, 2, 0, 0, 2353, 2355, 3, 202, 101, 0, 2354, 2353, 1, 0, 0, 0, 2355, 2356, 1, 0, 0, 0, 2356, 2354, 1, 0, 0, 0, 2356, 2357, 1, 0, 0, 0, 2357, 2358, 1, 0, 0, 0, 2358, 2359, 5, 3, 0, 0, 2359, 2361, 1, 0, 0, 0, 2360, 2352, 1, 0, 0, 0, 2360, 2361, 1, 0, 0, 0, 2361, 2368, 1, 0, 0, 0, 2362, 2363, 5, 2, 0, 0, 2363, 2364, 3, 676, 338, 0, 2364, 2365, 5, 3, 0, 0, 2365, 2366, 5, 440, 0, 0, 2366, 2368, 1, 0, 0, 0, 2367, 2351, 1, 0, 0, 0, 2367, 2362, 1, 0, 0, 0, 2368, 2382, 1, 0, 0, 0, 2369, 2370, 5, 86, 0, 0, 2370, 2372, 3, 782, 391, 0, 2371, 2373, 3, 146, 73, 0, 2372, 2371, 1, 0, 0, 0, 2372, 2373, 1, 0, 0, 0, 2373, 2375, 1, 0, 0, 0, 2374, 2376, 3, 154, 77, 0, 2375, 2374, 1, 0, 0, 0, 2375, 2376, 1, 0, 0, 0, 2376, 2378, 1, 0, 0, 0, 2377, 2379, 3, 158, 79, 0, 2378, 2377, 1, 0, 0, 0, 2378, 2379, 1, 0, 0, 0, 2379, 2382, 1, 0, 0, 0, 2380, 2382, 3, 98, 49, 0, 2381, 2302, 1, 0, 0, 0, 2381, 2305, 1, 0, 0, 0, 2381, 2312, 1, 0, 0, 0, 2381, 2330, 1, 0, 0, 0, 2381, 2338, 1, 0, 0, 0, 2381, 2346, 1, 0, 0, 0, 2381, 2348, 1, 0, 0, 0, 2381, 2369, 1, 0, 0, 0, 2381, 2380, 1, 0, 0, 0, 2382, 139, 1, 0, 0, 0, 2383, 2387, 5, 139, 0, 0, 2384, 2385, 5, 147, 0, 0, 2385, 2387, 5, 53, 0, 0, 2386, 2383, 1, 0, 0, 0, 2386, 2384, 1, 0, 0, 0, 2387, 141, 1, 0, 0, 0, 2388, 2389, 7, 24, 0, 0, 2389, 143, 1, 0, 0, 0, 2390, 2391, 5, 42, 0, 0, 2391, 2392, 5, 2, 0, 0, 2392, 2393, 3, 676, 338, 0, 2393, 2397, 5, 3, 0, 0, 2394, 2396, 3, 274, 137, 0, 2395, 2394, 1, 0, 0, 0, 2396, 2399, 1, 0, 0, 0, 2397, 2395, 1, 0, 0, 0, 2397, 2398, 1, 0, 0, 0, 2398, 2487, 1, 0, 0, 0, 2399, 2397, 1, 0, 0, 0, 2400, 2404, 5, 98, 0, 0, 2401, 2402, 5, 85, 0, 0, 2402, 2404, 5, 245, 0, 0, 2403, 2400, 1, 0, 0, 0, 2403, 2401, 1, 0, 0, 0, 2404, 2428, 1, 0, 0, 0, 2405, 2407, 3, 146, 73, 0, 2406, 2408, 3, 152, 76, 0, 2407, 2406, 1, 0, 0, 0, 2407, 2408, 1, 0, 0, 0, 2408, 2410, 1, 0, 0, 0, 2409, 2411, 3, 402, 201, 0, 2410, 2409, 1, 0, 0, 0, 2410, 2411, 1, 0, 0, 0, 2411, 2413, 1, 0, 0, 0, 2412, 2414, 3, 180, 90, 0, 2413, 2412, 1, 0, 0, 0, 2413, 2414, 1, 0, 0, 0, 2414, 2418, 1, 0, 0, 0, 2415, 2417, 3, 274, 137, 0, 2416, 2415, 1, 0, 0, 0, 2417, 2420, 1, 0, 0, 0, 2418, 2416, 1, 0, 0, 0, 2418, 2419, 1, 0, 0, 0, 2419, 2429, 1, 0, 0, 0, 2420, 2418, 1, 0, 0, 0, 2421, 2425, 3, 182, 91, 0, 2422, 2424, 3, 274, 137, 0, 2423, 2422, 1, 0, 0, 0, 2424, 2427, 1, 0, 0, 0, 2425, 2423, 1, 0, 0, 0, 2425, 2426, 1, 0, 0, 0, 2426, 2429, 1, 0, 0, 0, 2427, 2425, 1, 0, 0, 0, 2428, 2405, 1, 0, 0, 0, 2428, 2421, 1, 0, 0, 0, 2429, 2487, 1, 0, 0, 0, 2430, 2432, 5, 199, 0, 0, 2431, 2433, 3, 172, 86, 0, 2432, 2431, 1, 0, 0, 0, 2432, 2433, 1, 0, 0, 0, 2433, 2434, 1, 0, 0, 0, 2434, 2435, 5, 2, 0, 0, 2435, 2440, 3, 156, 78, 0, 2436, 2437, 5, 6, 0, 0, 2437, 2439, 3, 156, 78, 0, 2438, 2436, 1, 0, 0, 0, 2439, 2442, 1, 0, 0, 0, 2440, 2438, 1, 0, 0, 0, 2440, 2441, 1, 0, 0, 0, 2441, 2443, 1, 0, 0, 0, 2442, 2440, 1, 0, 0, 0, 2443, 2445, 5, 3, 0, 0, 2444, 2446, 3, 152, 76, 0, 2445, 2444, 1, 0, 0, 0, 2445, 2446, 1, 0, 0, 0, 2446, 2448, 1, 0, 0, 0, 2447, 2449, 3, 402, 201, 0, 2448, 2447, 1, 0, 0, 0, 2448, 2449, 1, 0, 0, 0, 2449, 2451, 1, 0, 0, 0, 2450, 2452, 3, 180, 90, 0, 2451, 2450, 1, 0, 0, 0, 2451, 2452, 1, 0, 0, 0, 2452, 2458, 1, 0, 0, 0, 2453, 2454, 5, 103, 0, 0, 2454, 2455, 5, 2, 0, 0, 2455, 2456, 3, 676, 338, 0, 2456, 2457, 5, 3, 0, 0, 2457, 2459, 1, 0, 0, 0, 2458, 2453, 1, 0, 0, 0, 2458, 2459, 1, 0, 0, 0, 2459, 2463, 1, 0, 0, 0, 2460, 2462, 3, 274, 137, 0, 2461, 2460, 1, 0, 0, 0, 2462, 2465, 1, 0, 0, 0, 2463, 2461, 1, 0, 0, 0, 2463, 2464, 1, 0, 0, 0, 2464, 2487, 1, 0, 0, 0, 2465, 2463, 1, 0, 0, 0, 2466, 2467, 5, 63, 0, 0, 2467, 2468, 5, 245, 0, 0, 2468, 2469, 3, 146, 73, 0, 2469, 2470, 5, 86, 0, 0, 2470, 2472, 3, 782, 391, 0, 2471, 2473, 3, 146, 73, 0, 2472, 2471, 1, 0, 0, 0, 2472, 2473, 1, 0, 0, 0, 2473, 2475, 1, 0, 0, 0, 2474, 2476, 3, 154, 77, 0, 2475, 2474, 1, 0, 0, 0, 2475, 2476, 1, 0, 0, 0, 2476, 2478, 1, 0, 0, 0, 2477, 2479, 3, 158, 79, 0, 2478, 2477, 1, 0, 0, 0, 2478, 2479, 1, 0, 0, 0, 2479, 2483, 1, 0, 0, 0, 2480, 2482, 3, 274, 137, 0, 2481, 2480, 1, 0, 0, 0, 2482, 2485, 1, 0, 0, 0, 2483, 2481, 1, 0, 0, 0, 2483, 2484, 1, 0, 0, 0, 2484, 2487, 1, 0, 0, 0, 2485, 2483, 1, 0, 0, 0, 2486, 2390, 1, 0, 0, 0, 2486, 2403, 1, 0, 0, 0, 2486, 2430, 1, 0, 0, 0, 2486, 2466, 1, 0, 0, 0, 2487, 145, 1, 0, 0, 0, 2488, 2489, 5, 2, 0, 0, 2489, 2490, 3, 150, 75, 0, 2490, 2491, 5, 3, 0, 0, 2491, 147, 1, 0, 0, 0, 2492, 2493, 5, 2, 0, 0, 2493, 2498, 3, 804, 402, 0, 2494, 2495, 5, 6, 0, 0, 2495, 2497, 3, 804, 402, 0, 2496, 2494, 1, 0, 0, 0, 2497, 2500, 1, 0, 0, 0, 2498, 2496, 1, 0, 0, 0, 2498, 2499, 1, 0, 0, 0, 2499, 2501, 1, 0, 0, 0, 2500, 2498, 1, 0, 0, 0, 2501, 2502, 5, 3, 0, 0, 2502, 149, 1, 0, 0, 0, 2503, 2508, 3, 802, 401, 0, 2504, 2505, 5, 6, 0, 0, 2505, 2507, 3, 802, 401, 0, 2506, 2504, 1, 0, 0, 0, 2507, 2510, 1, 0, 0, 0, 2508, 2506, 1, 0, 0, 0, 2508, 2509, 1, 0, 0, 0, 2509, 151, 1, 0, 0, 0, 2510, 2508, 1, 0, 0, 0, 2511, 2512, 5, 441, 0, 0, 2512, 2513, 3, 146, 73, 0, 2513, 153, 1, 0, 0, 0, 2514, 2515, 5, 258, 0, 0, 2515, 2516, 7, 25, 0, 0, 2516, 155, 1, 0, 0, 0, 2517, 2518, 3, 364, 182, 0, 2518, 2525, 5, 105, 0, 0, 2519, 2526, 3, 416, 208, 0, 2520, 2521, 5, 278, 0, 0, 2521, 2522, 5, 2, 0, 0, 2522, 2523, 3, 416, 208, 0, 2523, 2524, 5, 3, 0, 0, 2524, 2526, 1, 0, 0, 0, 2525, 2519, 1, 0, 0, 0, 2525, 2520, 1, 0, 0, 0, 2526, 157, 1, 0, 0, 0, 2527, 2529, 3, 160, 80, 0, 2528, 2530, 3, 162, 81, 0, 2529, 2528, 1, 0, 0, 0, 2529, 2530, 1, 0, 0, 0, 2530, 2536, 1, 0, 0, 0, 2531, 2533, 3, 162, 81, 0, 2532, 2534, 3, 160, 80, 0, 2533, 2532, 1, 0, 0, 0, 2533, 2534, 1, 0, 0, 0, 2534, 2536, 1, 0, 0, 0, 2535, 2527, 1, 0, 0, 0, 2535, 2531, 1, 0, 0, 0, 2536, 159, 1, 0, 0, 0, 2537, 2538, 5, 80, 0, 0, 2538, 2539, 5, 369, 0, 0, 2539, 2540, 3, 164, 82, 0, 2540, 161, 1, 0, 0, 0, 2541, 2542, 5, 80, 0, 0, 2542, 2543, 5, 182, 0, 0, 2543, 2544, 3, 164, 82, 0, 2544, 163, 1, 0, 0, 0, 2545, 2546, 5, 269, 0, 0, 2546, 2555, 5, 132, 0, 0, 2547, 2555, 5, 315, 0, 0, 2548, 2555, 5, 150, 0, 0, 2549, 2550, 5, 333, 0, 0, 2550, 2552, 7, 26, 0, 0, 2551, 2553, 3, 150, 75, 0, 2552, 2551, 1, 0, 0, 0, 2552, 2553, 1, 0, 0, 0, 2553, 2555, 1, 0, 0, 0, 2554, 2545, 1, 0, 0, 0, 2554, 2547, 1, 0, 0, 0, 2554, 2548, 1, 0, 0, 0, 2554, 2549, 1, 0, 0, 0, 2555, 165, 1, 0, 0, 0, 2556, 2557, 5, 238, 0, 0, 2557, 2558, 5, 2, 0, 0, 2558, 2559, 3, 762, 381, 0, 2559, 2560, 5, 3, 0, 0, 2560, 167, 1, 0, 0, 0, 2561, 2562, 5, 285, 0, 0, 2562, 2563, 5, 147, 0, 0, 2563, 2564, 3, 820, 410, 0, 2564, 2565, 5, 2, 0, 0, 2565, 2570, 3, 170, 85, 0, 2566, 2567, 5, 6, 0, 0, 2567, 2569, 3, 170, 85, 0, 2568, 2566, 1, 0, 0, 0, 2569, 2572, 1, 0, 0, 0, 2570, 2568, 1, 0, 0, 0, 2570, 2571, 1, 0, 0, 0, 2571, 2573, 1, 0, 0, 0, 2572, 2570, 1, 0, 0, 0, 2573, 2574, 5, 3, 0, 0, 2574, 169, 1, 0, 0, 0, 2575, 2582, 3, 802, 401, 0, 2576, 2582, 3, 690, 345, 0, 2577, 2578, 5, 2, 0, 0, 2578, 2579, 3, 676, 338, 0, 2579, 2580, 5, 3, 0, 0, 2580, 2582, 1, 0, 0, 0, 2581, 2575, 1, 0, 0, 0, 2581, 2576, 1, 0, 0, 0, 2581, 2577, 1, 0, 0, 0, 2582, 2584, 1, 0, 0, 0, 2583, 2585, 3, 98, 49, 0, 2584, 2583, 1, 0, 0, 0, 2584, 2585, 1, 0, 0, 0, 2585, 2587, 1, 0, 0, 0, 2586, 2588, 3, 318, 159, 0, 2587, 2586, 1, 0, 0, 0, 2587, 2588, 1, 0, 0, 0, 2588, 171, 1, 0, 0, 0, 2589, 2590, 5, 100, 0, 0, 2590, 2591, 3, 820, 410, 0, 2591, 173, 1, 0, 0, 0, 2592, 2593, 5, 105, 0, 0, 2593, 2597, 3, 100, 50, 0, 2594, 2595, 7, 27, 0, 0, 2595, 2597, 5, 277, 0, 0, 2596, 2592, 1, 0, 0, 0, 2596, 2594, 1, 0, 0, 0, 2597, 175, 1, 0, 0, 0, 2598, 2599, 5, 80, 0, 0, 2599, 2605, 5, 161, 0, 0, 2600, 2606, 5, 191, 0, 0, 2601, 2602, 5, 182, 0, 0, 2602, 2606, 5, 320, 0, 0, 2603, 2604, 5, 292, 0, 0, 2604, 2606, 5, 320, 0, 0, 2605, 2600, 1, 0, 0, 0, 2605, 2601, 1, 0, 0, 0, 2605, 2603, 1, 0, 0, 0, 2606, 177, 1, 0, 0, 0, 2607, 2608, 5, 351, 0, 0, 2608, 2609, 3, 772, 386, 0, 2609, 179, 1, 0, 0, 0, 2610, 2611, 5, 100, 0, 0, 2611, 2612, 5, 226, 0, 0, 2612, 2613, 3, 178, 89, 0, 2613, 181, 1, 0, 0, 0, 2614, 2615, 5, 100, 0, 0, 2615, 2616, 5, 226, 0, 0, 2616, 2617, 3, 820, 410, 0, 2617, 183, 1, 0, 0, 0, 2618, 2619, 5, 46, 0, 0, 2619, 2624, 5, 342, 0, 0, 2620, 2622, 3, 296, 148, 0, 2621, 2620, 1, 0, 0, 0, 2621, 2622, 1, 0, 0, 0, 2622, 2623, 1, 0, 0, 0, 2623, 2625, 3, 318, 159, 0, 2624, 2621, 1, 0, 0, 0, 2624, 2625, 1, 0, 0, 0, 2625, 2627, 1, 0, 0, 0, 2626, 2628, 3, 146, 73, 0, 2627, 2626, 1, 0, 0, 0, 2627, 2628, 1, 0, 0, 0, 2628, 2629, 1, 0, 0, 0, 2629, 2639, 5, 80, 0, 0, 2630, 2635, 3, 734, 367, 0, 2631, 2632, 5, 6, 0, 0, 2632, 2634, 3, 734, 367, 0, 2633, 2631, 1, 0, 0, 0, 2634, 2637, 1, 0, 0, 0, 2635, 2633, 1, 0, 0, 0, 2635, 2636, 1, 0, 0, 0, 2636, 2640, 1, 0, 0, 0, 2637, 2635, 1, 0, 0, 0, 2638, 2640, 3, 732, 366, 0, 2639, 2630, 1, 0, 0, 0, 2639, 2638, 1, 0, 0, 0, 2640, 2641, 1, 0, 0, 0, 2641, 2642, 3, 612, 306, 0, 2642, 185, 1, 0, 0, 0, 2643, 2644, 5, 138, 0, 0, 2644, 2646, 5, 342, 0, 0, 2645, 2647, 3, 424, 212, 0, 2646, 2645, 1, 0, 0, 0, 2646, 2647, 1, 0, 0, 0, 2647, 2648, 1, 0, 0, 0, 2648, 2649, 3, 318, 159, 0, 2649, 2650, 5, 333, 0, 0, 2650, 2651, 5, 342, 0, 0, 2651, 2652, 3, 814, 407, 0, 2652, 187, 1, 0, 0, 0, 2653, 2655, 5, 46, 0, 0, 2654, 2656, 3, 124, 62, 0, 2655, 2654, 1, 0, 0, 0, 2655, 2656, 1, 0, 0, 0, 2656, 2657, 1, 0, 0, 0, 2657, 2659, 5, 92, 0, 0, 2658, 2660, 3, 296, 148, 0, 2659, 2658, 1, 0, 0, 0, 2659, 2660, 1, 0, 0, 0, 2660, 2661, 1, 0, 0, 0, 2661, 2662, 3, 190, 95, 0, 2662, 2663, 5, 36, 0, 0, 2663, 2665, 3, 562, 281, 0, 2664, 2666, 3, 192, 96, 0, 2665, 2664, 1, 0, 0, 0, 2665, 2666, 1, 0, 0, 0, 2666, 189, 1, 0, 0, 0, 2667, 2669, 3, 774, 387, 0, 2668, 2670, 3, 148, 74, 0, 2669, 2668, 1, 0, 0, 0, 2669, 2670, 1, 0, 0, 0, 2670, 2672, 1, 0, 0, 0, 2671, 2673, 3, 172, 86, 0, 2672, 2671, 1, 0, 0, 0, 2672, 2673, 1, 0, 0, 0, 2673, 2675, 1, 0, 0, 0, 2674, 2676, 3, 174, 87, 0, 2675, 2674, 1, 0, 0, 0, 2675, 2676, 1, 0, 0, 0, 2676, 2678, 1, 0, 0, 0, 2677, 2679, 3, 176, 88, 0, 2678, 2677, 1, 0, 0, 0, 2678, 2679, 1, 0, 0, 0, 2679, 2681, 1, 0, 0, 0, 2680, 2682, 3, 178, 89, 0, 2681, 2680, 1, 0, 0, 0, 2681, 2682, 1, 0, 0, 0, 2682, 191, 1, 0, 0, 0, 2683, 2687, 5, 105, 0, 0, 2684, 2688, 5, 174, 0, 0, 2685, 2686, 5, 269, 0, 0, 2686, 2688, 5, 174, 0, 0, 2687, 2684, 1, 0, 0, 0, 2687, 2685, 1, 0, 0, 0, 2688, 193, 1, 0, 0, 0, 2689, 2691, 5, 46, 0, 0, 2690, 2692, 5, 367, 0, 0, 2691, 2690, 1, 0, 0, 0, 2691, 2692, 1, 0, 0, 0, 2692, 2693, 1, 0, 0, 0, 2693, 2694, 5, 259, 0, 0, 2694, 2696, 5, 376, 0, 0, 2695, 2697, 3, 296, 148, 0, 2696, 2695, 1, 0, 0, 0, 2696, 2697, 1, 0, 0, 0, 2697, 2698, 1, 0, 0, 0, 2698, 2700, 3, 778, 389, 0, 2699, 2701, 3, 148, 74, 0, 2700, 2699, 1, 0, 0, 0, 2700, 2701, 1, 0, 0, 0, 2701, 2703, 1, 0, 0, 0, 2702, 2704, 3, 172, 86, 0, 2703, 2702, 1, 0, 0, 0, 2703, 2704, 1, 0, 0, 0, 2704, 2706, 1, 0, 0, 0, 2705, 2707, 3, 102, 51, 0, 2706, 2705, 1, 0, 0, 0, 2706, 2707, 1, 0, 0, 0, 2707, 2709, 1, 0, 0, 0, 2708, 2710, 3, 178, 89, 0, 2709, 2708, 1, 0, 0, 0, 2709, 2710, 1, 0, 0, 0, 2710, 2711, 1, 0, 0, 0, 2711, 2712, 5, 36, 0, 0, 2712, 2714, 3, 562, 281, 0, 2713, 2715, 3, 192, 96, 0, 2714, 2713, 1, 0, 0, 0, 2714, 2715, 1, 0, 0, 0, 2715, 195, 1, 0, 0, 0, 2716, 2717, 5, 305, 0, 0, 2717, 2718, 5, 259, 0, 0, 2718, 2720, 5, 376, 0, 0, 2719, 2721, 5, 109, 0, 0, 2720, 2719, 1, 0, 0, 0, 2720, 2721, 1, 0, 0, 0, 2721, 2722, 1, 0, 0, 0, 2722, 2724, 3, 780, 390, 0, 2723, 2725, 3, 192, 96, 0, 2724, 2723, 1, 0, 0, 0, 2724, 2725, 1, 0, 0, 0, 2725, 197, 1, 0, 0, 0, 2726, 2728, 5, 46, 0, 0, 2727, 2729, 3, 124, 62, 0, 2728, 2727, 1, 0, 0, 0, 2728, 2729, 1, 0, 0, 0, 2729, 2730, 1, 0, 0, 0, 2730, 2732, 5, 328, 0, 0, 2731, 2733, 3, 296, 148, 0, 2732, 2731, 1, 0, 0, 0, 2732, 2733, 1, 0, 0, 0, 2733, 2734, 1, 0, 0, 0, 2734, 2740, 3, 782, 391, 0, 2735, 2737, 3, 202, 101, 0, 2736, 2735, 1, 0, 0, 0, 2737, 2738, 1, 0, 0, 0, 2738, 2736, 1, 0, 0, 0, 2738, 2739, 1, 0, 0, 0, 2739, 2741, 1, 0, 0, 0, 2740, 2736, 1, 0, 0, 0, 2740, 2741, 1, 0, 0, 0, 2741, 199, 1, 0, 0, 0, 2742, 2743, 5, 138, 0, 0, 2743, 2745, 5, 328, 0, 0, 2744, 2746, 3, 424, 212, 0, 2745, 2744, 1, 0, 0, 0, 2745, 2746, 1, 0, 0, 0, 2746, 2747, 1, 0, 0, 0, 2747, 2749, 3, 782, 391, 0, 2748, 2750, 3, 202, 101, 0, 2749, 2748, 1, 0, 0, 0, 2750, 2751, 1, 0, 0, 0, 2751, 2749, 1, 0, 0, 0, 2751, 2752, 1, 0, 0, 0, 2752, 201, 1, 0, 0, 0, 2753, 2754, 5, 36, 0, 0, 2754, 2787, 3, 656, 328, 0, 2755, 2757, 5, 148, 0, 0, 2756, 2758, 3, 204, 102, 0, 2757, 2756, 1, 0, 0, 0, 2757, 2758, 1, 0, 0, 0, 2758, 2787, 1, 0, 0, 0, 2759, 2761, 5, 225, 0, 0, 2760, 2762, 5, 147, 0, 0, 2761, 2760, 1, 0, 0, 0, 2761, 2762, 1, 0, 0, 0, 2762, 2763, 1, 0, 0, 0, 2763, 2787, 3, 204, 102, 0, 2764, 2765, 7, 28, 0, 0, 2765, 2787, 3, 204, 102, 0, 2766, 2767, 5, 269, 0, 0, 2767, 2787, 7, 29, 0, 0, 2768, 2769, 5, 281, 0, 0, 2769, 2770, 5, 147, 0, 0, 2770, 2787, 3, 802, 401, 0, 2771, 2772, 5, 328, 0, 0, 2772, 2773, 5, 266, 0, 0, 2773, 2787, 3, 318, 159, 0, 2774, 2776, 5, 340, 0, 0, 2775, 2777, 5, 105, 0, 0, 2776, 2775, 1, 0, 0, 0, 2776, 2777, 1, 0, 0, 0, 2777, 2778, 1, 0, 0, 0, 2778, 2787, 3, 204, 102, 0, 2779, 2781, 5, 314, 0, 0, 2780, 2782, 5, 105, 0, 0, 2781, 2780, 1, 0, 0, 0, 2781, 2782, 1, 0, 0, 0, 2782, 2784, 1, 0, 0, 0, 2783, 2785, 3, 204, 102, 0, 2784, 2783, 1, 0, 0, 0, 2784, 2785, 1, 0, 0, 0, 2785, 2787, 1, 0, 0, 0, 2786, 2753, 1, 0, 0, 0, 2786, 2755, 1, 0, 0, 0, 2786, 2759, 1, 0, 0, 0, 2786, 2764, 1, 0, 0, 0, 2786, 2766, 1, 0, 0, 0, 2786, 2768, 1, 0, 0, 0, 2786, 2771, 1, 0, 0, 0, 2786, 2774, 1, 0, 0, 0, 2786, 2779, 1, 0, 0, 0, 2787, 203, 1, 0, 0, 0, 2788, 2790, 7, 30, 0, 0, 2789, 2788, 1, 0, 0, 0, 2789, 2790, 1, 0, 0, 0, 2790, 2791, 1, 0, 0, 0, 2791, 2794, 5, 576, 0, 0, 2792, 2794, 3, 814, 407, 0, 2793, 2789, 1, 0, 0, 0, 2793, 2792, 1, 0, 0, 0, 2794, 205, 1, 0, 0, 0, 2795, 2797, 5, 46, 0, 0, 2796, 2798, 3, 368, 184, 0, 2797, 2796, 1, 0, 0, 0, 2797, 2798, 1, 0, 0, 0, 2798, 2800, 1, 0, 0, 0, 2799, 2801, 5, 359, 0, 0, 2800, 2799, 1, 0, 0, 0, 2800, 2801, 1, 0, 0, 0, 2801, 2803, 1, 0, 0, 0, 2802, 2804, 5, 295, 0, 0, 2803, 2802, 1, 0, 0, 0, 2803, 2804, 1, 0, 0, 0, 2804, 2805, 1, 0, 0, 0, 2805, 2806, 5, 247, 0, 0, 2806, 2819, 3, 820, 410, 0, 2807, 2808, 5, 215, 0, 0, 2808, 2811, 3, 318, 159, 0, 2809, 2810, 5, 239, 0, 0, 2810, 2812, 3, 318, 159, 0, 2811, 2809, 1, 0, 0, 0, 2811, 2812, 1, 0, 0, 0, 2812, 2817, 1, 0, 0, 0, 2813, 2814, 5, 373, 0, 0, 2814, 2818, 3, 318, 159, 0, 2815, 2816, 5, 269, 0, 0, 2816, 2818, 5, 373, 0, 0, 2817, 2813, 1, 0, 0, 0, 2817, 2815, 1, 0, 0, 0, 2817, 2818, 1, 0, 0, 0, 2818, 2820, 1, 0, 0, 0, 2819, 2807, 1, 0, 0, 0, 2819, 2820, 1, 0, 0, 0, 2820, 207, 1, 0, 0, 0, 2821, 2822, 5, 46, 0, 0, 2822, 2825, 3, 178, 89, 0, 2823, 2824, 5, 282, 0, 0, 2824, 2826, 3, 816, 408, 0, 2825, 2823, 1, 0, 0, 0, 2825, 2826, 1, 0, 0, 0, 2826, 2827, 1, 0, 0, 0, 2827, 2828, 5, 255, 0, 0, 2828, 2830, 3, 810, 405, 0, 2829, 2831, 3, 102, 51, 0, 2830, 2829, 1, 0, 0, 0, 2830, 2831, 1, 0, 0, 0, 2831, 209, 1, 0, 0, 0, 2832, 2833, 5, 46, 0, 0, 2833, 2835, 5, 204, 0, 0, 2834, 2836, 3, 296, 148, 0, 2835, 2834, 1, 0, 0, 0, 2835, 2836, 1, 0, 0, 0, 2836, 2837, 1, 0, 0, 0, 2837, 2839, 3, 820, 410, 0, 2838, 2840, 5, 105, 0, 0, 2839, 2838, 1, 0, 0, 0, 2839, 2840, 1, 0, 0, 0, 2840, 2848, 1, 0, 0, 0, 2841, 2842, 5, 323, 0, 0, 2842, 2847, 3, 792, 396, 0, 2843, 2844, 7, 31, 0, 0, 2844, 2847, 3, 58, 29, 0, 2845, 2847, 5, 150, 0, 0, 2846, 2841, 1, 0, 0, 0, 2846, 2843, 1, 0, 0, 0, 2846, 2845, 1, 0, 0, 0, 2847, 2850, 1, 0, 0, 0, 2848, 2846, 1, 0, 0, 0, 2848, 2849, 1, 0, 0, 0, 2849, 211, 1, 0, 0, 0, 2850, 2848, 1, 0, 0, 0, 2851, 2852, 5, 138, 0, 0, 2852, 2853, 5, 204, 0, 0, 2853, 2854, 3, 820, 410, 0, 2854, 2859, 5, 369, 0, 0, 2855, 2856, 5, 94, 0, 0, 2856, 2858, 3, 58, 29, 0, 2857, 2855, 1, 0, 0, 0, 2858, 2861, 1, 0, 0, 0, 2859, 2857, 1, 0, 0, 0, 2859, 2860, 1, 0, 0, 0, 2860, 213, 1, 0, 0, 0, 2861, 2859, 1, 0, 0, 0, 2862, 2863, 5, 138, 0, 0, 2863, 2864, 5, 204, 0, 0, 2864, 2865, 3, 820, 410, 0, 2865, 2898, 7, 6, 0, 0, 2866, 2867, 5, 443, 0, 0, 2867, 2868, 5, 62, 0, 0, 2868, 2869, 3, 654, 327, 0, 2869, 2870, 5, 247, 0, 0, 2870, 2871, 3, 820, 410, 0, 2871, 2899, 1, 0, 0, 0, 2872, 2873, 5, 442, 0, 0, 2873, 2899, 3, 376, 188, 0, 2874, 2875, 5, 296, 0, 0, 2875, 2899, 3, 380, 190, 0, 2876, 2877, 5, 278, 0, 0, 2877, 2878, 7, 32, 0, 0, 2878, 2879, 3, 318, 159, 0, 2879, 2880, 3, 172, 86, 0, 2880, 2899, 1, 0, 0, 0, 2881, 2882, 5, 278, 0, 0, 2882, 2899, 3, 418, 209, 0, 2883, 2884, 5, 211, 0, 0, 2884, 2899, 3, 384, 192, 0, 2885, 2886, 7, 33, 0, 0, 2886, 2899, 3, 654, 327, 0, 2887, 2888, 5, 41, 0, 0, 2888, 2889, 5, 2, 0, 0, 2889, 2890, 3, 654, 327, 0, 2890, 2891, 5, 36, 0, 0, 2891, 2892, 3, 654, 327, 0, 2892, 2893, 5, 3, 0, 0, 2893, 2899, 1, 0, 0, 0, 2894, 2895, 5, 136, 0, 0, 2895, 2899, 3, 396, 198, 0, 2896, 2899, 3, 314, 157, 0, 2897, 2899, 3, 312, 156, 0, 2898, 2866, 1, 0, 0, 0, 2898, 2872, 1, 0, 0, 0, 2898, 2874, 1, 0, 0, 0, 2898, 2876, 1, 0, 0, 0, 2898, 2881, 1, 0, 0, 0, 2898, 2883, 1, 0, 0, 0, 2898, 2885, 1, 0, 0, 0, 2898, 2887, 1, 0, 0, 0, 2898, 2894, 1, 0, 0, 0, 2898, 2896, 1, 0, 0, 0, 2898, 2897, 1, 0, 0, 0, 2899, 215, 1, 0, 0, 0, 2900, 2901, 5, 46, 0, 0, 2901, 2902, 5, 63, 0, 0, 2902, 2903, 5, 174, 0, 0, 2903, 2904, 5, 381, 0, 0, 2904, 2910, 3, 820, 410, 0, 2905, 2907, 3, 218, 109, 0, 2906, 2905, 1, 0, 0, 0, 2907, 2908, 1, 0, 0, 0, 2908, 2906, 1, 0, 0, 0, 2908, 2909, 1, 0, 0, 0, 2909, 2911, 1, 0, 0, 0, 2910, 2906, 1, 0, 0, 0, 2910, 2911, 1, 0, 0, 0, 2911, 2913, 1, 0, 0, 0, 2912, 2914, 3, 222, 111, 0, 2913, 2912, 1, 0, 0, 0, 2913, 2914, 1, 0, 0, 0, 2914, 217, 1, 0, 0, 0, 2915, 2917, 7, 34, 0, 0, 2916, 2918, 3, 318, 159, 0, 2917, 2916, 1, 0, 0, 0, 2917, 2918, 1, 0, 0, 0, 2918, 2922, 1, 0, 0, 0, 2919, 2920, 5, 269, 0, 0, 2920, 2922, 7, 34, 0, 0, 2921, 2915, 1, 0, 0, 0, 2921, 2919, 1, 0, 0, 0, 2922, 219, 1, 0, 0, 0, 2923, 2924, 5, 138, 0, 0, 2924, 2925, 5, 63, 0, 0, 2925, 2926, 5, 174, 0, 0, 2926, 2927, 5, 381, 0, 0, 2927, 2941, 3, 820, 410, 0, 2928, 2930, 3, 218, 109, 0, 2929, 2928, 1, 0, 0, 0, 2930, 2931, 1, 0, 0, 0, 2931, 2929, 1, 0, 0, 0, 2931, 2932, 1, 0, 0, 0, 2932, 2934, 1, 0, 0, 0, 2933, 2929, 1, 0, 0, 0, 2933, 2934, 1, 0, 0, 0, 2934, 2935, 1, 0, 0, 0, 2935, 2942, 3, 224, 112, 0, 2936, 2938, 3, 218, 109, 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, 2942, 1, 0, 0, 0, 2941, 2933, 1, 0, 0, 0, 2941, 2937, 1, 0, 0, 0, 2942, 221, 1, 0, 0, 0, 2943, 2944, 5, 280, 0, 0, 2944, 2945, 5, 2, 0, 0, 2945, 2950, 3, 228, 114, 0, 2946, 2947, 5, 6, 0, 0, 2947, 2949, 3, 228, 114, 0, 2948, 2946, 1, 0, 0, 0, 2949, 2952, 1, 0, 0, 0, 2950, 2948, 1, 0, 0, 0, 2950, 2951, 1, 0, 0, 0, 2951, 2953, 1, 0, 0, 0, 2952, 2950, 1, 0, 0, 0, 2953, 2954, 5, 3, 0, 0, 2954, 223, 1, 0, 0, 0, 2955, 2956, 5, 280, 0, 0, 2956, 2957, 5, 2, 0, 0, 2957, 2962, 3, 226, 113, 0, 2958, 2959, 5, 6, 0, 0, 2959, 2961, 3, 226, 113, 0, 2960, 2958, 1, 0, 0, 0, 2961, 2964, 1, 0, 0, 0, 2962, 2960, 1, 0, 0, 0, 2962, 2963, 1, 0, 0, 0, 2963, 2965, 1, 0, 0, 0, 2964, 2962, 1, 0, 0, 0, 2965, 2966, 5, 3, 0, 0, 2966, 225, 1, 0, 0, 0, 2967, 2968, 7, 35, 0, 0, 2968, 2969, 3, 228, 114, 0, 2969, 227, 1, 0, 0, 0, 2970, 2971, 3, 826, 413, 0, 2971, 2972, 3, 810, 405, 0, 2972, 229, 1, 0, 0, 0, 2973, 2974, 5, 46, 0, 0, 2974, 2976, 5, 331, 0, 0, 2975, 2977, 3, 296, 148, 0, 2976, 2975, 1, 0, 0, 0, 2976, 2977, 1, 0, 0, 0, 2977, 2978, 1, 0, 0, 0, 2978, 2981, 3, 820, 410, 0, 2979, 2980, 5, 360, 0, 0, 2980, 2982, 3, 810, 405, 0, 2981, 2979, 1, 0, 0, 0, 2981, 2982, 1, 0, 0, 0, 2982, 2984, 1, 0, 0, 0, 2983, 2985, 3, 232, 116, 0, 2984, 2983, 1, 0, 0, 0, 2984, 2985, 1, 0, 0, 0, 2985, 2986, 1, 0, 0, 0, 2986, 2987, 5, 63, 0, 0, 2987, 2988, 5, 174, 0, 0, 2988, 2989, 5, 381, 0, 0, 2989, 2991, 3, 820, 410, 0, 2990, 2992, 3, 222, 111, 0, 2991, 2990, 1, 0, 0, 0, 2991, 2992, 1, 0, 0, 0, 2992, 231, 1, 0, 0, 0, 2993, 2996, 5, 375, 0, 0, 2994, 2997, 3, 810, 405, 0, 2995, 2997, 5, 78, 0, 0, 2996, 2994, 1, 0, 0, 0, 2996, 2995, 1, 0, 0, 0, 2997, 233, 1, 0, 0, 0, 2998, 2999, 5, 138, 0, 0, 2999, 3000, 5, 331, 0, 0, 3000, 3006, 3, 820, 410, 0, 3001, 3007, 3, 224, 112, 0, 3002, 3004, 3, 232, 116, 0, 3003, 3005, 3, 224, 112, 0, 3004, 3003, 1, 0, 0, 0, 3004, 3005, 1, 0, 0, 0, 3005, 3007, 1, 0, 0, 0, 3006, 3001, 1, 0, 0, 0, 3006, 3002, 1, 0, 0, 0, 3007, 235, 1, 0, 0, 0, 3008, 3009, 5, 46, 0, 0, 3009, 3010, 5, 63, 0, 0, 3010, 3012, 5, 92, 0, 0, 3011, 3013, 3, 296, 148, 0, 3012, 3011, 1, 0, 0, 0, 3012, 3013, 1, 0, 0, 0, 3013, 3014, 1, 0, 0, 0, 3014, 3015, 3, 774, 387, 0, 3015, 3017, 5, 2, 0, 0, 3016, 3018, 3, 128, 64, 0, 3017, 3016, 1, 0, 0, 0, 3017, 3018, 1, 0, 0, 0, 3018, 3019, 1, 0, 0, 0, 3019, 3021, 5, 3, 0, 0, 3020, 3022, 3, 166, 83, 0, 3021, 3020, 1, 0, 0, 0, 3021, 3022, 1, 0, 0, 0, 3022, 3023, 1, 0, 0, 0, 3023, 3024, 5, 331, 0, 0, 3024, 3026, 3, 820, 410, 0, 3025, 3027, 3, 222, 111, 0, 3026, 3025, 1, 0, 0, 0, 3026, 3027, 1, 0, 0, 0, 3027, 3048, 1, 0, 0, 0, 3028, 3029, 5, 46, 0, 0, 3029, 3030, 5, 63, 0, 0, 3030, 3032, 5, 92, 0, 0, 3031, 3033, 3, 296, 148, 0, 3032, 3031, 1, 0, 0, 0, 3032, 3033, 1, 0, 0, 0, 3033, 3034, 1, 0, 0, 0, 3034, 3035, 3, 774, 387, 0, 3035, 3036, 5, 285, 0, 0, 3036, 3037, 5, 275, 0, 0, 3037, 3039, 3, 776, 388, 0, 3038, 3040, 3, 126, 63, 0, 3039, 3038, 1, 0, 0, 0, 3039, 3040, 1, 0, 0, 0, 3040, 3041, 1, 0, 0, 0, 3041, 3042, 3, 106, 53, 0, 3042, 3043, 5, 331, 0, 0, 3043, 3045, 3, 820, 410, 0, 3044, 3046, 3, 222, 111, 0, 3045, 3044, 1, 0, 0, 0, 3045, 3046, 1, 0, 0, 0, 3046, 3048, 1, 0, 0, 0, 3047, 3008, 1, 0, 0, 0, 3047, 3028, 1, 0, 0, 0, 3048, 237, 1, 0, 0, 0, 3049, 3050, 5, 444, 0, 0, 3050, 3051, 5, 63, 0, 0, 3051, 3052, 5, 323, 0, 0, 3052, 3062, 3, 792, 396, 0, 3053, 3054, 5, 74, 0, 0, 3054, 3057, 5, 94, 0, 0, 3055, 3057, 5, 59, 0, 0, 3056, 3053, 1, 0, 0, 0, 3056, 3055, 1, 0, 0, 0, 3057, 3058, 1, 0, 0, 0, 3058, 3059, 5, 2, 0, 0, 3059, 3060, 3, 630, 315, 0, 3060, 3061, 5, 3, 0, 0, 3061, 3063, 1, 0, 0, 0, 3062, 3056, 1, 0, 0, 0, 3062, 3063, 1, 0, 0, 0, 3063, 3064, 1, 0, 0, 0, 3064, 3065, 5, 64, 0, 0, 3065, 3066, 5, 331, 0, 0, 3066, 3067, 3, 820, 410, 0, 3067, 3068, 5, 71, 0, 0, 3068, 3070, 3, 820, 410, 0, 3069, 3071, 3, 222, 111, 0, 3070, 3069, 1, 0, 0, 0, 3070, 3071, 1, 0, 0, 0, 3071, 239, 1, 0, 0, 0, 3072, 3073, 5, 46, 0, 0, 3073, 3074, 5, 99, 0, 0, 3074, 3076, 5, 257, 0, 0, 3075, 3077, 3, 296, 148, 0, 3076, 3075, 1, 0, 0, 0, 3076, 3077, 1, 0, 0, 0, 3077, 3078, 1, 0, 0, 0, 3078, 3081, 5, 62, 0, 0, 3079, 3082, 3, 816, 408, 0, 3080, 3082, 5, 99, 0, 0, 3081, 3079, 1, 0, 0, 0, 3081, 3080, 1, 0, 0, 0, 3082, 3083, 1, 0, 0, 0, 3083, 3084, 5, 331, 0, 0, 3084, 3086, 3, 820, 410, 0, 3085, 3087, 3, 222, 111, 0, 3086, 3085, 1, 0, 0, 0, 3086, 3087, 1, 0, 0, 0, 3087, 241, 1, 0, 0, 0, 3088, 3089, 5, 138, 0, 0, 3089, 3090, 5, 99, 0, 0, 3090, 3091, 5, 257, 0, 0, 3091, 3094, 5, 62, 0, 0, 3092, 3095, 3, 816, 408, 0, 3093, 3095, 5, 99, 0, 0, 3094, 3092, 1, 0, 0, 0, 3094, 3093, 1, 0, 0, 0, 3095, 3096, 1, 0, 0, 0, 3096, 3097, 5, 331, 0, 0, 3097, 3098, 3, 820, 410, 0, 3098, 3099, 3, 224, 112, 0, 3099, 243, 1, 0, 0, 0, 3100, 3101, 5, 46, 0, 0, 3101, 3102, 5, 445, 0, 0, 3102, 3103, 3, 820, 410, 0, 3103, 3104, 5, 80, 0, 0, 3104, 3111, 3, 782, 391, 0, 3105, 3109, 5, 36, 0, 0, 3106, 3110, 5, 541, 0, 0, 3107, 3110, 5, 542, 0, 0, 3108, 3110, 3, 828, 414, 0, 3109, 3106, 1, 0, 0, 0, 3109, 3107, 1, 0, 0, 0, 3109, 3108, 1, 0, 0, 0, 3110, 3112, 1, 0, 0, 0, 3111, 3105, 1, 0, 0, 0, 3111, 3112, 1, 0, 0, 0, 3112, 3115, 1, 0, 0, 0, 3113, 3114, 5, 62, 0, 0, 3114, 3116, 7, 36, 0, 0, 3115, 3113, 1, 0, 0, 0, 3115, 3116, 1, 0, 0, 0, 3116, 3119, 1, 0, 0, 0, 3117, 3118, 5, 94, 0, 0, 3118, 3120, 3, 818, 409, 0, 3119, 3117, 1, 0, 0, 0, 3119, 3120, 1, 0, 0, 0, 3120, 3122, 1, 0, 0, 0, 3121, 3123, 3, 252, 126, 0, 3122, 3121, 1, 0, 0, 0, 3122, 3123, 1, 0, 0, 0, 3123, 3125, 1, 0, 0, 0, 3124, 3126, 3, 254, 127, 0, 3125, 3124, 1, 0, 0, 0, 3125, 3126, 1, 0, 0, 0, 3126, 245, 1, 0, 0, 0, 3127, 3128, 5, 138, 0, 0, 3128, 3129, 5, 445, 0, 0, 3129, 3130, 3, 820, 410, 0, 3130, 3131, 5, 80, 0, 0, 3131, 3134, 3, 782, 391, 0, 3132, 3133, 5, 94, 0, 0, 3133, 3135, 3, 818, 409, 0, 3134, 3132, 1, 0, 0, 0, 3134, 3135, 1, 0, 0, 0, 3135, 3137, 1, 0, 0, 0, 3136, 3138, 3, 252, 126, 0, 3137, 3136, 1, 0, 0, 0, 3137, 3138, 1, 0, 0, 0, 3138, 3140, 1, 0, 0, 0, 3139, 3141, 3, 254, 127, 0, 3140, 3139, 1, 0, 0, 0, 3140, 3141, 1, 0, 0, 0, 3141, 247, 1, 0, 0, 0, 3142, 3143, 5, 138, 0, 0, 3143, 3144, 5, 296, 0, 0, 3144, 3146, 3, 798, 399, 0, 3145, 3147, 3, 370, 185, 0, 3146, 3145, 1, 0, 0, 0, 3146, 3147, 1, 0, 0, 0, 3147, 3174, 1, 0, 0, 0, 3148, 3152, 3, 250, 125, 0, 3149, 3151, 3, 250, 125, 0, 3150, 3149, 1, 0, 0, 0, 3151, 3154, 1, 0, 0, 0, 3152, 3150, 1, 0, 0, 0, 3152, 3153, 1, 0, 0, 0, 3153, 3156, 1, 0, 0, 0, 3154, 3152, 1, 0, 0, 0, 3155, 3157, 5, 315, 0, 0, 3156, 3155, 1, 0, 0, 0, 3156, 3157, 1, 0, 0, 0, 3157, 3175, 1, 0, 0, 0, 3158, 3159, 5, 309, 0, 0, 3159, 3160, 5, 94, 0, 0, 3160, 3175, 3, 800, 400, 0, 3161, 3162, 5, 282, 0, 0, 3162, 3163, 5, 94, 0, 0, 3163, 3175, 3, 816, 408, 0, 3164, 3165, 5, 333, 0, 0, 3165, 3166, 5, 323, 0, 0, 3166, 3175, 3, 32, 16, 0, 3167, 3169, 5, 269, 0, 0, 3168, 3167, 1, 0, 0, 0, 3168, 3169, 1, 0, 0, 0, 3169, 3170, 1, 0, 0, 0, 3170, 3171, 5, 462, 0, 0, 3171, 3172, 5, 80, 0, 0, 3172, 3173, 5, 204, 0, 0, 3173, 3175, 3, 820, 410, 0, 3174, 3148, 1, 0, 0, 0, 3174, 3158, 1, 0, 0, 0, 3174, 3161, 1, 0, 0, 0, 3174, 3164, 1, 0, 0, 0, 3174, 3168, 1, 0, 0, 0, 3175, 249, 1, 0, 0, 0, 3176, 3178, 5, 205, 0, 0, 3177, 3176, 1, 0, 0, 0, 3177, 3178, 1, 0, 0, 0, 3178, 3179, 1, 0, 0, 0, 3179, 3180, 5, 327, 0, 0, 3180, 3187, 5, 243, 0, 0, 3181, 3183, 5, 205, 0, 0, 3182, 3181, 1, 0, 0, 0, 3182, 3183, 1, 0, 0, 0, 3183, 3184, 1, 0, 0, 0, 3184, 3185, 5, 327, 0, 0, 3185, 3187, 5, 181, 0, 0, 3186, 3177, 1, 0, 0, 0, 3186, 3182, 1, 0, 0, 0, 3187, 3206, 1, 0, 0, 0, 3188, 3189, 5, 333, 0, 0, 3189, 3190, 3, 820, 410, 0, 3190, 3193, 7, 37, 0, 0, 3191, 3194, 3, 820, 410, 0, 3192, 3194, 5, 53, 0, 0, 3193, 3191, 1, 0, 0, 0, 3193, 3192, 1, 0, 0, 0, 3194, 3206, 1, 0, 0, 0, 3195, 3196, 5, 333, 0, 0, 3196, 3197, 3, 820, 410, 0, 3197, 3198, 5, 64, 0, 0, 3198, 3199, 5, 434, 0, 0, 3199, 3206, 1, 0, 0, 0, 3200, 3203, 5, 313, 0, 0, 3201, 3204, 3, 820, 410, 0, 3202, 3204, 5, 30, 0, 0, 3203, 3201, 1, 0, 0, 0, 3203, 3202, 1, 0, 0, 0, 3204, 3206, 1, 0, 0, 0, 3205, 3186, 1, 0, 0, 0, 3205, 3188, 1, 0, 0, 0, 3205, 3195, 1, 0, 0, 0, 3205, 3200, 1, 0, 0, 0, 3206, 251, 1, 0, 0, 0, 3207, 3208, 5, 100, 0, 0, 3208, 3209, 5, 2, 0, 0, 3209, 3210, 3, 676, 338, 0, 3210, 3211, 5, 3, 0, 0, 3211, 253, 1, 0, 0, 0, 3212, 3213, 5, 105, 0, 0, 3213, 3214, 5, 42, 0, 0, 3214, 3215, 5, 2, 0, 0, 3215, 3216, 3, 676, 338, 0, 3216, 3217, 5, 3, 0, 0, 3217, 255, 1, 0, 0, 0, 3218, 3219, 5, 46, 0, 0, 3219, 3220, 5, 131, 0, 0, 3220, 3221, 5, 446, 0, 0, 3221, 3222, 3, 820, 410, 0, 3222, 3223, 5, 360, 0, 0, 3223, 3224, 7, 38, 0, 0, 3224, 3225, 5, 215, 0, 0, 3225, 3226, 3, 318, 159, 0, 3226, 257, 1, 0, 0, 0, 3227, 3229, 5, 46, 0, 0, 3228, 3230, 3, 368, 184, 0, 3229, 3228, 1, 0, 0, 0, 3229, 3230, 1, 0, 0, 0, 3230, 3231, 1, 0, 0, 0, 3231, 3232, 5, 357, 0, 0, 3232, 3233, 3, 820, 410, 0, 3233, 3234, 3, 260, 130, 0, 3234, 3235, 3, 262, 131, 0, 3235, 3236, 5, 80, 0, 0, 3236, 3248, 3, 776, 388, 0, 3237, 3244, 5, 447, 0, 0, 3238, 3239, 7, 39, 0, 0, 3239, 3241, 7, 40, 0, 0, 3240, 3242, 5, 36, 0, 0, 3241, 3240, 1, 0, 0, 0, 3241, 3242, 1, 0, 0, 0, 3242, 3243, 1, 0, 0, 0, 3243, 3245, 3, 820, 410, 0, 3244, 3238, 1, 0, 0, 0, 3245, 3246, 1, 0, 0, 0, 3246, 3244, 1, 0, 0, 0, 3246, 3247, 1, 0, 0, 0, 3247, 3249, 1, 0, 0, 0, 3248, 3237, 1, 0, 0, 0, 3248, 3249, 1, 0, 0, 0, 3249, 3255, 1, 0, 0, 0, 3250, 3252, 5, 62, 0, 0, 3251, 3253, 5, 192, 0, 0, 3252, 3251, 1, 0, 0, 0, 3252, 3253, 1, 0, 0, 0, 3253, 3254, 1, 0, 0, 0, 3254, 3256, 7, 41, 0, 0, 3255, 3250, 1, 0, 0, 0, 3255, 3256, 1, 0, 0, 0, 3256, 3258, 1, 0, 0, 0, 3257, 3259, 3, 266, 133, 0, 3258, 3257, 1, 0, 0, 0, 3258, 3259, 1, 0, 0, 0, 3259, 3260, 1, 0, 0, 0, 3260, 3261, 5, 202, 0, 0, 3261, 3262, 3, 268, 134, 0, 3262, 3263, 5, 2, 0, 0, 3263, 3264, 3, 270, 135, 0, 3264, 3265, 5, 3, 0, 0, 3265, 3306, 1, 0, 0, 0, 3266, 3268, 5, 46, 0, 0, 3267, 3269, 3, 368, 184, 0, 3268, 3267, 1, 0, 0, 0, 3268, 3269, 1, 0, 0, 0, 3269, 3271, 1, 0, 0, 0, 3270, 3272, 5, 45, 0, 0, 3271, 3270, 1, 0, 0, 0, 3271, 3272, 1, 0, 0, 0, 3272, 3273, 1, 0, 0, 0, 3273, 3274, 5, 357, 0, 0, 3274, 3275, 3, 820, 410, 0, 3275, 3276, 3, 260, 130, 0, 3276, 3277, 3, 262, 131, 0, 3277, 3278, 5, 80, 0, 0, 3278, 3281, 3, 776, 388, 0, 3279, 3280, 5, 64, 0, 0, 3280, 3282, 3, 782, 391, 0, 3281, 3279, 1, 0, 0, 0, 3281, 3282, 1, 0, 0, 0, 3282, 3286, 1, 0, 0, 0, 3283, 3285, 3, 274, 137, 0, 3284, 3283, 1, 0, 0, 0, 3285, 3288, 1, 0, 0, 0, 3286, 3284, 1, 0, 0, 0, 3286, 3287, 1, 0, 0, 0, 3287, 3294, 1, 0, 0, 0, 3288, 3286, 1, 0, 0, 0, 3289, 3291, 5, 62, 0, 0, 3290, 3292, 5, 192, 0, 0, 3291, 3290, 1, 0, 0, 0, 3291, 3292, 1, 0, 0, 0, 3292, 3293, 1, 0, 0, 0, 3293, 3295, 7, 41, 0, 0, 3294, 3289, 1, 0, 0, 0, 3294, 3295, 1, 0, 0, 0, 3295, 3297, 1, 0, 0, 0, 3296, 3298, 3, 266, 133, 0, 3297, 3296, 1, 0, 0, 0, 3297, 3298, 1, 0, 0, 0, 3298, 3299, 1, 0, 0, 0, 3299, 3300, 5, 202, 0, 0, 3300, 3301, 3, 268, 134, 0, 3301, 3302, 5, 2, 0, 0, 3302, 3303, 3, 270, 135, 0, 3303, 3304, 5, 3, 0, 0, 3304, 3306, 1, 0, 0, 0, 3305, 3227, 1, 0, 0, 0, 3305, 3266, 1, 0, 0, 0, 3306, 259, 1, 0, 0, 0, 3307, 3312, 5, 145, 0, 0, 3308, 3312, 5, 135, 0, 0, 3309, 3310, 5, 242, 0, 0, 3310, 3312, 5, 275, 0, 0, 3311, 3307, 1, 0, 0, 0, 3311, 3308, 1, 0, 0, 0, 3311, 3309, 1, 0, 0, 0, 3312, 261, 1, 0, 0, 0, 3313, 3318, 3, 264, 132, 0, 3314, 3315, 5, 82, 0, 0, 3315, 3317, 3, 264, 132, 0, 3316, 3314, 1, 0, 0, 0, 3317, 3320, 1, 0, 0, 0, 3318, 3316, 1, 0, 0, 0, 3318, 3319, 1, 0, 0, 0, 3319, 263, 1, 0, 0, 0, 3320, 3318, 1, 0, 0, 0, 3321, 3330, 5, 241, 0, 0, 3322, 3330, 5, 182, 0, 0, 3323, 3326, 5, 369, 0, 0, 3324, 3325, 5, 275, 0, 0, 3325, 3327, 3, 150, 75, 0, 3326, 3324, 1, 0, 0, 0, 3326, 3327, 1, 0, 0, 0, 3327, 3330, 1, 0, 0, 0, 3328, 3330, 5, 358, 0, 0, 3329, 3321, 1, 0, 0, 0, 3329, 3322, 1, 0, 0, 0, 3329, 3323, 1, 0, 0, 0, 3329, 3328, 1, 0, 0, 0, 3330, 265, 1, 0, 0, 0, 3331, 3332, 5, 102, 0, 0, 3332, 3333, 5, 2, 0, 0, 3333, 3334, 3, 676, 338, 0, 3334, 3335, 5, 3, 0, 0, 3335, 267, 1, 0, 0, 0, 3336, 3337, 5, 211, 0, 0, 3337, 3341, 3, 808, 404, 0, 3338, 3339, 5, 296, 0, 0, 3339, 3341, 3, 798, 399, 0, 3340, 3336, 1, 0, 0, 0, 3340, 3338, 1, 0, 0, 0, 3341, 269, 1, 0, 0, 0, 3342, 3345, 3, 272, 136, 0, 3343, 3345, 1, 0, 0, 0, 3344, 3342, 1, 0, 0, 0, 3344, 3343, 1, 0, 0, 0, 3345, 3350, 1, 0, 0, 0, 3346, 3347, 5, 6, 0, 0, 3347, 3349, 3, 272, 136, 0, 3348, 3346, 1, 0, 0, 0, 3349, 3352, 1, 0, 0, 0, 3350, 3348, 1, 0, 0, 0, 3350, 3351, 1, 0, 0, 0, 3351, 271, 1, 0, 0, 0, 3352, 3350, 1, 0, 0, 0, 3353, 3358, 5, 574, 0, 0, 3354, 3358, 5, 576, 0, 0, 3355, 3358, 3, 810, 405, 0, 3356, 3358, 3, 826, 413, 0, 3357, 3353, 1, 0, 0, 0, 3357, 3354, 1, 0, 0, 0, 3357, 3355, 1, 0, 0, 0, 3357, 3356, 1, 0, 0, 0, 3358, 273, 1, 0, 0, 0, 3359, 3361, 5, 77, 0, 0, 3360, 3359, 1, 0, 0, 0, 3360, 3361, 1, 0, 0, 0, 3361, 3362, 1, 0, 0, 0, 3362, 3370, 5, 54, 0, 0, 3363, 3364, 5, 69, 0, 0, 3364, 3370, 7, 9, 0, 0, 3365, 3366, 5, 77, 0, 0, 3366, 3370, 5, 371, 0, 0, 3367, 3368, 5, 269, 0, 0, 3368, 3370, 5, 228, 0, 0, 3369, 3360, 1, 0, 0, 0, 3369, 3363, 1, 0, 0, 0, 3369, 3365, 1, 0, 0, 0, 3369, 3367, 1, 0, 0, 0, 3370, 275, 1, 0, 0, 0, 3371, 3372, 5, 46, 0, 0, 3372, 3373, 5, 198, 0, 0, 3373, 3374, 5, 357, 0, 0, 3374, 3375, 3, 820, 410, 0, 3375, 3376, 5, 80, 0, 0, 3376, 3386, 3, 826, 413, 0, 3377, 3378, 5, 102, 0, 0, 3378, 3383, 3, 278, 139, 0, 3379, 3380, 5, 33, 0, 0, 3380, 3382, 3, 278, 139, 0, 3381, 3379, 1, 0, 0, 0, 3382, 3385, 1, 0, 0, 0, 3383, 3381, 1, 0, 0, 0, 3383, 3384, 1, 0, 0, 0, 3384, 3387, 1, 0, 0, 0, 3385, 3383, 1, 0, 0, 0, 3386, 3377, 1, 0, 0, 0, 3386, 3387, 1, 0, 0, 0, 3387, 3388, 1, 0, 0, 0, 3388, 3389, 5, 202, 0, 0, 3389, 3390, 3, 268, 134, 0, 3390, 3391, 5, 2, 0, 0, 3391, 3392, 5, 3, 0, 0, 3392, 277, 1, 0, 0, 0, 3393, 3394, 3, 820, 410, 0, 3394, 3395, 5, 68, 0, 0, 3395, 3396, 5, 2, 0, 0, 3396, 3400, 3, 810, 405, 0, 3397, 3399, 3, 464, 232, 0, 3398, 3397, 1, 0, 0, 0, 3399, 3402, 1, 0, 0, 0, 3400, 3398, 1, 0, 0, 0, 3400, 3401, 1, 0, 0, 0, 3401, 3403, 1, 0, 0, 0, 3402, 3400, 1, 0, 0, 0, 3403, 3404, 5, 3, 0, 0, 3404, 279, 1, 0, 0, 0, 3405, 3406, 5, 138, 0, 0, 3406, 3407, 5, 198, 0, 0, 3407, 3408, 5, 357, 0, 0, 3408, 3414, 3, 820, 410, 0, 3409, 3411, 5, 193, 0, 0, 3410, 3412, 7, 14, 0, 0, 3411, 3410, 1, 0, 0, 0, 3411, 3412, 1, 0, 0, 0, 3412, 3415, 1, 0, 0, 0, 3413, 3415, 5, 186, 0, 0, 3414, 3409, 1, 0, 0, 0, 3414, 3413, 1, 0, 0, 0, 3415, 281, 1, 0, 0, 0, 3416, 3417, 5, 46, 0, 0, 3417, 3418, 5, 140, 0, 0, 3418, 3419, 3, 318, 159, 0, 3419, 3420, 5, 42, 0, 0, 3420, 3421, 5, 2, 0, 0, 3421, 3422, 3, 676, 338, 0, 3422, 3426, 5, 3, 0, 0, 3423, 3425, 3, 274, 137, 0, 3424, 3423, 1, 0, 0, 0, 3425, 3428, 1, 0, 0, 0, 3426, 3424, 1, 0, 0, 0, 3426, 3427, 1, 0, 0, 0, 3427, 283, 1, 0, 0, 0, 3428, 3426, 1, 0, 0, 0, 3429, 3431, 5, 46, 0, 0, 3430, 3432, 3, 368, 184, 0, 3431, 3430, 1, 0, 0, 0, 3431, 3432, 1, 0, 0, 0, 3432, 3433, 1, 0, 0, 0, 3433, 3434, 5, 136, 0, 0, 3434, 3449, 3, 808, 404, 0, 3435, 3436, 3, 394, 197, 0, 3436, 3437, 3, 286, 143, 0, 3437, 3450, 1, 0, 0, 0, 3438, 3439, 5, 2, 0, 0, 3439, 3444, 3, 292, 146, 0, 3440, 3441, 5, 6, 0, 0, 3441, 3443, 3, 292, 146, 0, 3442, 3440, 1, 0, 0, 0, 3443, 3446, 1, 0, 0, 0, 3444, 3442, 1, 0, 0, 0, 3444, 3445, 1, 0, 0, 0, 3445, 3447, 1, 0, 0, 0, 3446, 3444, 1, 0, 0, 0, 3447, 3448, 5, 3, 0, 0, 3448, 3450, 1, 0, 0, 0, 3449, 3435, 1, 0, 0, 0, 3449, 3438, 1, 0, 0, 0, 3450, 3508, 1, 0, 0, 0, 3451, 3452, 5, 46, 0, 0, 3452, 3453, 5, 278, 0, 0, 3453, 3454, 3, 416, 208, 0, 3454, 3455, 3, 286, 143, 0, 3455, 3508, 1, 0, 0, 0, 3456, 3457, 5, 46, 0, 0, 3457, 3458, 5, 360, 0, 0, 3458, 3459, 3, 318, 159, 0, 3459, 3477, 5, 36, 0, 0, 3460, 3462, 5, 2, 0, 0, 3461, 3463, 3, 644, 322, 0, 3462, 3461, 1, 0, 0, 0, 3462, 3463, 1, 0, 0, 0, 3463, 3464, 1, 0, 0, 0, 3464, 3478, 5, 3, 0, 0, 3465, 3466, 5, 196, 0, 0, 3466, 3474, 5, 2, 0, 0, 3467, 3471, 3, 810, 405, 0, 3468, 3470, 3, 464, 232, 0, 3469, 3468, 1, 0, 0, 0, 3470, 3473, 1, 0, 0, 0, 3471, 3469, 1, 0, 0, 0, 3471, 3472, 1, 0, 0, 0, 3472, 3475, 1, 0, 0, 0, 3473, 3471, 1, 0, 0, 0, 3474, 3467, 1, 0, 0, 0, 3474, 3475, 1, 0, 0, 0, 3475, 3476, 1, 0, 0, 0, 3476, 3478, 5, 3, 0, 0, 3477, 3460, 1, 0, 0, 0, 3477, 3465, 1, 0, 0, 0, 3478, 3508, 1, 0, 0, 0, 3479, 3480, 5, 46, 0, 0, 3480, 3481, 5, 360, 0, 0, 3481, 3487, 3, 318, 159, 0, 3482, 3483, 5, 36, 0, 0, 3483, 3485, 5, 299, 0, 0, 3484, 3482, 1, 0, 0, 0, 3484, 3485, 1, 0, 0, 0, 3485, 3486, 1, 0, 0, 0, 3486, 3488, 3, 286, 143, 0, 3487, 3484, 1, 0, 0, 0, 3487, 3488, 1, 0, 0, 0, 3488, 3508, 1, 0, 0, 0, 3489, 3490, 5, 46, 0, 0, 3490, 3491, 5, 355, 0, 0, 3491, 3492, 5, 325, 0, 0, 3492, 3493, 7, 42, 0, 0, 3493, 3494, 3, 318, 159, 0, 3494, 3495, 3, 286, 143, 0, 3495, 3508, 1, 0, 0, 0, 3496, 3497, 5, 46, 0, 0, 3497, 3499, 5, 108, 0, 0, 3498, 3500, 3, 296, 148, 0, 3499, 3498, 1, 0, 0, 0, 3499, 3500, 1, 0, 0, 0, 3500, 3501, 1, 0, 0, 0, 3501, 3505, 3, 318, 159, 0, 3502, 3506, 3, 286, 143, 0, 3503, 3504, 5, 64, 0, 0, 3504, 3506, 3, 318, 159, 0, 3505, 3502, 1, 0, 0, 0, 3505, 3503, 1, 0, 0, 0, 3506, 3508, 1, 0, 0, 0, 3507, 3429, 1, 0, 0, 0, 3507, 3451, 1, 0, 0, 0, 3507, 3456, 1, 0, 0, 0, 3507, 3479, 1, 0, 0, 0, 3507, 3489, 1, 0, 0, 0, 3507, 3496, 1, 0, 0, 0, 3508, 285, 1, 0, 0, 0, 3509, 3510, 5, 2, 0, 0, 3510, 3515, 3, 288, 144, 0, 3511, 3512, 5, 6, 0, 0, 3512, 3514, 3, 288, 144, 0, 3513, 3511, 1, 0, 0, 0, 3514, 3517, 1, 0, 0, 0, 3515, 3513, 1, 0, 0, 0, 3515, 3516, 1, 0, 0, 0, 3516, 3518, 1, 0, 0, 0, 3517, 3515, 1, 0, 0, 0, 3518, 3519, 5, 3, 0, 0, 3519, 287, 1, 0, 0, 0, 3520, 3523, 3, 826, 413, 0, 3521, 3522, 5, 10, 0, 0, 3522, 3524, 3, 290, 145, 0, 3523, 3521, 1, 0, 0, 0, 3523, 3524, 1, 0, 0, 0, 3524, 289, 1, 0, 0, 0, 3525, 3532, 3, 390, 195, 0, 3526, 3532, 3, 836, 418, 0, 3527, 3532, 3, 728, 364, 0, 3528, 3532, 3, 204, 102, 0, 3529, 3532, 3, 810, 405, 0, 3530, 3532, 5, 407, 0, 0, 3531, 3525, 1, 0, 0, 0, 3531, 3526, 1, 0, 0, 0, 3531, 3527, 1, 0, 0, 0, 3531, 3528, 1, 0, 0, 0, 3531, 3529, 1, 0, 0, 0, 3531, 3530, 1, 0, 0, 0, 3532, 291, 1, 0, 0, 0, 3533, 3534, 3, 828, 414, 0, 3534, 3535, 5, 10, 0, 0, 3535, 3536, 3, 290, 145, 0, 3536, 293, 1, 0, 0, 0, 3537, 3538, 5, 138, 0, 0, 3538, 3539, 5, 360, 0, 0, 3539, 3540, 3, 318, 159, 0, 3540, 3541, 5, 133, 0, 0, 3541, 3543, 5, 450, 0, 0, 3542, 3544, 3, 296, 148, 0, 3543, 3542, 1, 0, 0, 0, 3543, 3544, 1, 0, 0, 0, 3544, 3545, 1, 0, 0, 0, 3545, 3548, 3, 810, 405, 0, 3546, 3547, 7, 43, 0, 0, 3547, 3549, 3, 810, 405, 0, 3548, 3546, 1, 0, 0, 0, 3548, 3549, 1, 0, 0, 0, 3549, 3560, 1, 0, 0, 0, 3550, 3551, 5, 138, 0, 0, 3551, 3552, 5, 360, 0, 0, 3552, 3553, 3, 318, 159, 0, 3553, 3554, 5, 309, 0, 0, 3554, 3555, 5, 450, 0, 0, 3555, 3556, 3, 810, 405, 0, 3556, 3557, 5, 94, 0, 0, 3557, 3558, 3, 810, 405, 0, 3558, 3560, 1, 0, 0, 0, 3559, 3537, 1, 0, 0, 0, 3559, 3550, 1, 0, 0, 0, 3560, 295, 1, 0, 0, 0, 3561, 3562, 5, 220, 0, 0, 3562, 3563, 5, 77, 0, 0, 3563, 3564, 5, 396, 0, 0, 3564, 297, 1, 0, 0, 0, 3565, 3566, 5, 46, 0, 0, 3566, 3567, 5, 278, 0, 0, 3567, 3568, 5, 156, 0, 0, 3568, 3570, 3, 318, 159, 0, 3569, 3571, 5, 53, 0, 0, 3570, 3569, 1, 0, 0, 0, 3570, 3571, 1, 0, 0, 0, 3571, 3572, 1, 0, 0, 0, 3572, 3573, 5, 62, 0, 0, 3573, 3574, 5, 360, 0, 0, 3574, 3575, 3, 654, 327, 0, 3575, 3578, 3, 172, 86, 0, 3576, 3577, 5, 206, 0, 0, 3577, 3579, 3, 318, 159, 0, 3578, 3576, 1, 0, 0, 0, 3578, 3579, 1, 0, 0, 0, 3579, 3580, 1, 0, 0, 0, 3580, 3581, 5, 36, 0, 0, 3581, 3586, 3, 300, 150, 0, 3582, 3583, 5, 6, 0, 0, 3583, 3585, 3, 300, 150, 0, 3584, 3582, 1, 0, 0, 0, 3585, 3588, 1, 0, 0, 0, 3586, 3584, 1, 0, 0, 0, 3586, 3587, 1, 0, 0, 0, 3587, 299, 1, 0, 0, 0, 3588, 3586, 1, 0, 0, 0, 3589, 3590, 5, 278, 0, 0, 3590, 3591, 5, 574, 0, 0, 3591, 3593, 3, 416, 208, 0, 3592, 3594, 3, 414, 207, 0, 3593, 3592, 1, 0, 0, 0, 3593, 3594, 1, 0, 0, 0, 3594, 3602, 1, 0, 0, 0, 3595, 3600, 5, 62, 0, 0, 3596, 3601, 5, 325, 0, 0, 3597, 3598, 5, 83, 0, 0, 3598, 3599, 5, 147, 0, 0, 3599, 3601, 3, 318, 159, 0, 3600, 3596, 1, 0, 0, 0, 3600, 3597, 1, 0, 0, 0, 3601, 3603, 1, 0, 0, 0, 3602, 3595, 1, 0, 0, 0, 3602, 3603, 1, 0, 0, 0, 3603, 3605, 1, 0, 0, 0, 3604, 3606, 5, 302, 0, 0, 3605, 3604, 1, 0, 0, 0, 3605, 3606, 1, 0, 0, 0, 3606, 3616, 1, 0, 0, 0, 3607, 3608, 5, 211, 0, 0, 3608, 3610, 5, 574, 0, 0, 3609, 3611, 3, 530, 265, 0, 3610, 3609, 1, 0, 0, 0, 3610, 3611, 1, 0, 0, 0, 3611, 3612, 1, 0, 0, 0, 3612, 3616, 3, 384, 192, 0, 3613, 3614, 5, 345, 0, 0, 3614, 3616, 3, 654, 327, 0, 3615, 3589, 1, 0, 0, 0, 3615, 3607, 1, 0, 0, 0, 3615, 3613, 1, 0, 0, 0, 3616, 301, 1, 0, 0, 0, 3617, 3618, 5, 46, 0, 0, 3618, 3619, 5, 278, 0, 0, 3619, 3620, 5, 206, 0, 0, 3620, 3621, 3, 318, 159, 0, 3621, 3622, 3, 172, 86, 0, 3622, 303, 1, 0, 0, 0, 3623, 3624, 5, 138, 0, 0, 3624, 3625, 5, 278, 0, 0, 3625, 3626, 5, 206, 0, 0, 3626, 3627, 3, 318, 159, 0, 3627, 3646, 3, 172, 86, 0, 3628, 3629, 5, 133, 0, 0, 3629, 3634, 3, 300, 150, 0, 3630, 3631, 5, 6, 0, 0, 3631, 3633, 3, 300, 150, 0, 3632, 3630, 1, 0, 0, 0, 3633, 3636, 1, 0, 0, 0, 3634, 3632, 1, 0, 0, 0, 3634, 3635, 1, 0, 0, 0, 3635, 3647, 1, 0, 0, 0, 3636, 3634, 1, 0, 0, 0, 3637, 3638, 5, 191, 0, 0, 3638, 3643, 3, 306, 153, 0, 3639, 3640, 5, 6, 0, 0, 3640, 3642, 3, 306, 153, 0, 3641, 3639, 1, 0, 0, 0, 3642, 3645, 1, 0, 0, 0, 3643, 3641, 1, 0, 0, 0, 3643, 3644, 1, 0, 0, 0, 3644, 3647, 1, 0, 0, 0, 3645, 3643, 1, 0, 0, 0, 3646, 3628, 1, 0, 0, 0, 3646, 3637, 1, 0, 0, 0, 3647, 305, 1, 0, 0, 0, 3648, 3649, 7, 44, 0, 0, 3649, 3650, 5, 574, 0, 0, 3650, 3651, 3, 530, 265, 0, 3651, 307, 1, 0, 0, 0, 3652, 3653, 5, 301, 0, 0, 3653, 3654, 5, 281, 0, 0, 3654, 3655, 5, 147, 0, 0, 3655, 3656, 3, 818, 409, 0, 3656, 3657, 5, 94, 0, 0, 3657, 3658, 3, 816, 408, 0, 3658, 309, 1, 0, 0, 0, 3659, 3682, 5, 191, 0, 0, 3660, 3683, 5, 328, 0, 0, 3661, 3683, 5, 226, 0, 0, 3662, 3683, 5, 108, 0, 0, 3663, 3683, 5, 168, 0, 0, 3664, 3683, 5, 342, 0, 0, 3665, 3683, 5, 452, 0, 0, 3666, 3683, 5, 331, 0, 0, 3667, 3668, 5, 131, 0, 0, 3668, 3683, 5, 446, 0, 0, 3669, 3670, 5, 198, 0, 0, 3670, 3683, 5, 357, 0, 0, 3671, 3683, 5, 204, 0, 0, 3672, 3674, 5, 295, 0, 0, 3673, 3672, 1, 0, 0, 0, 3673, 3674, 1, 0, 0, 0, 3674, 3675, 1, 0, 0, 0, 3675, 3683, 5, 247, 0, 0, 3676, 3677, 5, 63, 0, 0, 3677, 3678, 5, 174, 0, 0, 3678, 3683, 5, 381, 0, 0, 3679, 3680, 5, 355, 0, 0, 3680, 3681, 5, 325, 0, 0, 3681, 3683, 7, 42, 0, 0, 3682, 3660, 1, 0, 0, 0, 3682, 3661, 1, 0, 0, 0, 3682, 3662, 1, 0, 0, 0, 3682, 3663, 1, 0, 0, 0, 3682, 3664, 1, 0, 0, 0, 3682, 3665, 1, 0, 0, 0, 3682, 3666, 1, 0, 0, 0, 3682, 3667, 1, 0, 0, 0, 3682, 3669, 1, 0, 0, 0, 3682, 3671, 1, 0, 0, 0, 3682, 3673, 1, 0, 0, 0, 3682, 3676, 1, 0, 0, 0, 3682, 3679, 1, 0, 0, 0, 3683, 3685, 1, 0, 0, 0, 3684, 3686, 3, 424, 212, 0, 3685, 3684, 1, 0, 0, 0, 3685, 3686, 1, 0, 0, 0, 3686, 3687, 1, 0, 0, 0, 3687, 3689, 3, 786, 393, 0, 3688, 3690, 3, 96, 48, 0, 3689, 3688, 1, 0, 0, 0, 3689, 3690, 1, 0, 0, 0, 3690, 3867, 1, 0, 0, 0, 3691, 3693, 5, 191, 0, 0, 3692, 3694, 5, 259, 0, 0, 3693, 3692, 1, 0, 0, 0, 3693, 3694, 1, 0, 0, 0, 3694, 3695, 1, 0, 0, 0, 3695, 3697, 5, 376, 0, 0, 3696, 3698, 3, 424, 212, 0, 3697, 3696, 1, 0, 0, 0, 3697, 3698, 1, 0, 0, 0, 3698, 3699, 1, 0, 0, 0, 3699, 3704, 3, 780, 390, 0, 3700, 3701, 5, 6, 0, 0, 3701, 3703, 3, 780, 390, 0, 3702, 3700, 1, 0, 0, 0, 3703, 3706, 1, 0, 0, 0, 3704, 3702, 1, 0, 0, 0, 3704, 3705, 1, 0, 0, 0, 3705, 3708, 1, 0, 0, 0, 3706, 3704, 1, 0, 0, 0, 3707, 3709, 3, 96, 48, 0, 3708, 3707, 1, 0, 0, 0, 3708, 3709, 1, 0, 0, 0, 3709, 3867, 1, 0, 0, 0, 3710, 3712, 5, 191, 0, 0, 3711, 3713, 5, 63, 0, 0, 3712, 3711, 1, 0, 0, 0, 3712, 3713, 1, 0, 0, 0, 3713, 3714, 1, 0, 0, 0, 3714, 3716, 5, 92, 0, 0, 3715, 3717, 3, 424, 212, 0, 3716, 3715, 1, 0, 0, 0, 3716, 3717, 1, 0, 0, 0, 3717, 3718, 1, 0, 0, 0, 3718, 3720, 3, 764, 382, 0, 3719, 3721, 3, 96, 48, 0, 3720, 3719, 1, 0, 0, 0, 3720, 3721, 1, 0, 0, 0, 3721, 3867, 1, 0, 0, 0, 3722, 3723, 5, 191, 0, 0, 3723, 3725, 5, 323, 0, 0, 3724, 3726, 3, 424, 212, 0, 3725, 3724, 1, 0, 0, 0, 3725, 3726, 1, 0, 0, 0, 3726, 3727, 1, 0, 0, 0, 3727, 3729, 3, 766, 383, 0, 3728, 3730, 3, 96, 48, 0, 3729, 3728, 1, 0, 0, 0, 3729, 3730, 1, 0, 0, 0, 3730, 3867, 1, 0, 0, 0, 3731, 3732, 5, 191, 0, 0, 3732, 3734, 7, 45, 0, 0, 3733, 3735, 3, 424, 212, 0, 3734, 3733, 1, 0, 0, 0, 3734, 3735, 1, 0, 0, 0, 3735, 3736, 1, 0, 0, 0, 3736, 3737, 3, 820, 410, 0, 3737, 3738, 5, 80, 0, 0, 3738, 3740, 3, 318, 159, 0, 3739, 3741, 3, 96, 48, 0, 3740, 3739, 1, 0, 0, 0, 3740, 3741, 1, 0, 0, 0, 3741, 3867, 1, 0, 0, 0, 3742, 3743, 5, 191, 0, 0, 3743, 3745, 7, 33, 0, 0, 3744, 3746, 3, 424, 212, 0, 3745, 3744, 1, 0, 0, 0, 3745, 3746, 1, 0, 0, 0, 3746, 3747, 1, 0, 0, 0, 3747, 3752, 3, 654, 327, 0, 3748, 3749, 5, 6, 0, 0, 3749, 3751, 3, 654, 327, 0, 3750, 3748, 1, 0, 0, 0, 3751, 3754, 1, 0, 0, 0, 3752, 3750, 1, 0, 0, 0, 3752, 3753, 1, 0, 0, 0, 3753, 3756, 1, 0, 0, 0, 3754, 3752, 1, 0, 0, 0, 3755, 3757, 3, 96, 48, 0, 3756, 3755, 1, 0, 0, 0, 3756, 3757, 1, 0, 0, 0, 3757, 3867, 1, 0, 0, 0, 3758, 3759, 5, 191, 0, 0, 3759, 3760, 5, 226, 0, 0, 3760, 3762, 5, 109, 0, 0, 3761, 3763, 3, 424, 212, 0, 3762, 3761, 1, 0, 0, 0, 3762, 3763, 1, 0, 0, 0, 3763, 3764, 1, 0, 0, 0, 3764, 3766, 3, 316, 158, 0, 3765, 3767, 3, 96, 48, 0, 3766, 3765, 1, 0, 0, 0, 3766, 3767, 1, 0, 0, 0, 3767, 3867, 1, 0, 0, 0, 3768, 3769, 5, 191, 0, 0, 3769, 3771, 5, 41, 0, 0, 3770, 3772, 3, 424, 212, 0, 3771, 3770, 1, 0, 0, 0, 3771, 3772, 1, 0, 0, 0, 3772, 3773, 1, 0, 0, 0, 3773, 3774, 5, 2, 0, 0, 3774, 3775, 3, 654, 327, 0, 3775, 3776, 5, 36, 0, 0, 3776, 3777, 3, 654, 327, 0, 3777, 3779, 5, 3, 0, 0, 3778, 3780, 3, 96, 48, 0, 3779, 3778, 1, 0, 0, 0, 3779, 3780, 1, 0, 0, 0, 3780, 3867, 1, 0, 0, 0, 3781, 3782, 5, 191, 0, 0, 3782, 3783, 5, 278, 0, 0, 3783, 3785, 7, 32, 0, 0, 3784, 3786, 3, 424, 212, 0, 3785, 3784, 1, 0, 0, 0, 3785, 3786, 1, 0, 0, 0, 3786, 3787, 1, 0, 0, 0, 3787, 3788, 3, 318, 159, 0, 3788, 3790, 3, 172, 86, 0, 3789, 3791, 3, 96, 48, 0, 3790, 3789, 1, 0, 0, 0, 3790, 3791, 1, 0, 0, 0, 3791, 3867, 1, 0, 0, 0, 3792, 3793, 5, 191, 0, 0, 3793, 3794, 5, 281, 0, 0, 3794, 3795, 5, 147, 0, 0, 3795, 3797, 3, 818, 409, 0, 3796, 3798, 3, 96, 48, 0, 3797, 3796, 1, 0, 0, 0, 3797, 3798, 1, 0, 0, 0, 3798, 3867, 1, 0, 0, 0, 3799, 3800, 5, 191, 0, 0, 3800, 3802, 5, 451, 0, 0, 3801, 3803, 3, 424, 212, 0, 3802, 3801, 1, 0, 0, 0, 3802, 3803, 1, 0, 0, 0, 3803, 3804, 1, 0, 0, 0, 3804, 3806, 3, 820, 410, 0, 3805, 3807, 3, 96, 48, 0, 3806, 3805, 1, 0, 0, 0, 3806, 3807, 1, 0, 0, 0, 3807, 3867, 1, 0, 0, 0, 3808, 3809, 5, 191, 0, 0, 3809, 3811, 5, 351, 0, 0, 3810, 3812, 3, 424, 212, 0, 3811, 3810, 1, 0, 0, 0, 3811, 3812, 1, 0, 0, 0, 3812, 3813, 1, 0, 0, 0, 3813, 3867, 3, 772, 386, 0, 3814, 3815, 5, 191, 0, 0, 3815, 3817, 5, 443, 0, 0, 3816, 3818, 3, 424, 212, 0, 3817, 3816, 1, 0, 0, 0, 3817, 3818, 1, 0, 0, 0, 3818, 3819, 1, 0, 0, 0, 3819, 3820, 5, 62, 0, 0, 3820, 3821, 3, 654, 327, 0, 3821, 3822, 5, 247, 0, 0, 3822, 3824, 3, 820, 410, 0, 3823, 3825, 3, 96, 48, 0, 3824, 3823, 1, 0, 0, 0, 3824, 3825, 1, 0, 0, 0, 3825, 3867, 1, 0, 0, 0, 3826, 3827, 5, 191, 0, 0, 3827, 3829, 7, 46, 0, 0, 3828, 3830, 3, 424, 212, 0, 3829, 3828, 1, 0, 0, 0, 3829, 3830, 1, 0, 0, 0, 3830, 3831, 1, 0, 0, 0, 3831, 3867, 3, 818, 409, 0, 3832, 3833, 5, 191, 0, 0, 3833, 3834, 5, 99, 0, 0, 3834, 3836, 5, 257, 0, 0, 3835, 3837, 3, 424, 212, 0, 3836, 3835, 1, 0, 0, 0, 3836, 3837, 1, 0, 0, 0, 3837, 3838, 1, 0, 0, 0, 3838, 3841, 5, 62, 0, 0, 3839, 3842, 3, 816, 408, 0, 3840, 3842, 5, 99, 0, 0, 3841, 3839, 1, 0, 0, 0, 3841, 3840, 1, 0, 0, 0, 3842, 3843, 1, 0, 0, 0, 3843, 3844, 5, 331, 0, 0, 3844, 3867, 3, 820, 410, 0, 3845, 3846, 5, 191, 0, 0, 3846, 3848, 5, 175, 0, 0, 3847, 3849, 3, 424, 212, 0, 3848, 3847, 1, 0, 0, 0, 3848, 3849, 1, 0, 0, 0, 3849, 3850, 1, 0, 0, 0, 3850, 3864, 3, 790, 395, 0, 3851, 3853, 5, 105, 0, 0, 3852, 3851, 1, 0, 0, 0, 3852, 3853, 1, 0, 0, 0, 3853, 3854, 1, 0, 0, 0, 3854, 3855, 5, 2, 0, 0, 3855, 3860, 5, 209, 0, 0, 3856, 3857, 5, 6, 0, 0, 3857, 3859, 5, 209, 0, 0, 3858, 3856, 1, 0, 0, 0, 3859, 3862, 1, 0, 0, 0, 3860, 3858, 1, 0, 0, 0, 3860, 3861, 1, 0, 0, 0, 3861, 3863, 1, 0, 0, 0, 3862, 3860, 1, 0, 0, 0, 3863, 3865, 5, 3, 0, 0, 3864, 3852, 1, 0, 0, 0, 3864, 3865, 1, 0, 0, 0, 3865, 3867, 1, 0, 0, 0, 3866, 3659, 1, 0, 0, 0, 3866, 3691, 1, 0, 0, 0, 3866, 3710, 1, 0, 0, 0, 3866, 3722, 1, 0, 0, 0, 3866, 3731, 1, 0, 0, 0, 3866, 3742, 1, 0, 0, 0, 3866, 3758, 1, 0, 0, 0, 3866, 3768, 1, 0, 0, 0, 3866, 3781, 1, 0, 0, 0, 3866, 3792, 1, 0, 0, 0, 3866, 3799, 1, 0, 0, 0, 3866, 3808, 1, 0, 0, 0, 3866, 3814, 1, 0, 0, 0, 3866, 3826, 1, 0, 0, 0, 3866, 3832, 1, 0, 0, 0, 3866, 3845, 1, 0, 0, 0, 3867, 311, 1, 0, 0, 0, 3868, 3870, 5, 63, 0, 0, 3869, 3868, 1, 0, 0, 0, 3869, 3870, 1, 0, 0, 0, 3870, 3871, 1, 0, 0, 0, 3871, 3872, 5, 92, 0, 0, 3872, 3885, 3, 776, 388, 0, 3873, 3875, 5, 259, 0, 0, 3874, 3873, 1, 0, 0, 0, 3874, 3875, 1, 0, 0, 0, 3875, 3876, 1, 0, 0, 0, 3876, 3877, 5, 376, 0, 0, 3877, 3885, 3, 780, 390, 0, 3878, 3879, 7, 47, 0, 0, 3879, 3885, 3, 318, 159, 0, 3880, 3881, 5, 355, 0, 0, 3881, 3882, 5, 325, 0, 0, 3882, 3883, 7, 42, 0, 0, 3883, 3885, 3, 318, 159, 0, 3884, 3869, 1, 0, 0, 0, 3884, 3874, 1, 0, 0, 0, 3884, 3878, 1, 0, 0, 0, 3884, 3880, 1, 0, 0, 0, 3885, 313, 1, 0, 0, 0, 3886, 3887, 5, 198, 0, 0, 3887, 3903, 5, 357, 0, 0, 3888, 3889, 5, 131, 0, 0, 3889, 3903, 5, 446, 0, 0, 3890, 3903, 5, 204, 0, 0, 3891, 3903, 5, 452, 0, 0, 3892, 3903, 5, 331, 0, 0, 3893, 3903, 5, 318, 0, 0, 3894, 3903, 5, 451, 0, 0, 3895, 3896, 5, 63, 0, 0, 3896, 3897, 5, 174, 0, 0, 3897, 3903, 5, 381, 0, 0, 3898, 3900, 5, 295, 0, 0, 3899, 3898, 1, 0, 0, 0, 3899, 3900, 1, 0, 0, 0, 3900, 3901, 1, 0, 0, 0, 3901, 3903, 5, 247, 0, 0, 3902, 3886, 1, 0, 0, 0, 3902, 3888, 1, 0, 0, 0, 3902, 3890, 1, 0, 0, 0, 3902, 3891, 1, 0, 0, 0, 3902, 3892, 1, 0, 0, 0, 3902, 3893, 1, 0, 0, 0, 3902, 3894, 1, 0, 0, 0, 3902, 3895, 1, 0, 0, 0, 3902, 3899, 1, 0, 0, 0, 3903, 3904, 1, 0, 0, 0, 3904, 3911, 3, 820, 410, 0, 3905, 3906, 5, 323, 0, 0, 3906, 3911, 3, 792, 396, 0, 3907, 3908, 5, 175, 0, 0, 3908, 3911, 3, 790, 395, 0, 3909, 3911, 3, 178, 89, 0, 3910, 3902, 1, 0, 0, 0, 3910, 3905, 1, 0, 0, 0, 3910, 3907, 1, 0, 0, 0, 3910, 3909, 1, 0, 0, 0, 3911, 315, 1, 0, 0, 0, 3912, 3917, 3, 318, 159, 0, 3913, 3914, 5, 6, 0, 0, 3914, 3916, 3, 318, 159, 0, 3915, 3913, 1, 0, 0, 0, 3916, 3919, 1, 0, 0, 0, 3917, 3915, 1, 0, 0, 0, 3917, 3918, 1, 0, 0, 0, 3918, 317, 1, 0, 0, 0, 3919, 3917, 1, 0, 0, 0, 3920, 3922, 3, 820, 410, 0, 3921, 3923, 3, 320, 160, 0, 3922, 3921, 1, 0, 0, 0, 3922, 3923, 1, 0, 0, 0, 3923, 319, 1, 0, 0, 0, 3924, 3925, 5, 11, 0, 0, 3925, 3927, 3, 826, 413, 0, 3926, 3924, 1, 0, 0, 0, 3927, 3928, 1, 0, 0, 0, 3928, 3926, 1, 0, 0, 0, 3928, 3929, 1, 0, 0, 0, 3929, 321, 1, 0, 0, 0, 3930, 3932, 5, 358, 0, 0, 3931, 3933, 5, 92, 0, 0, 3932, 3931, 1, 0, 0, 0, 3932, 3933, 1, 0, 0, 0, 3933, 3934, 1, 0, 0, 0, 3934, 3939, 3, 324, 162, 0, 3935, 3936, 5, 6, 0, 0, 3936, 3938, 3, 324, 162, 0, 3937, 3935, 1, 0, 0, 0, 3938, 3941, 1, 0, 0, 0, 3939, 3937, 1, 0, 0, 0, 3939, 3940, 1, 0, 0, 0, 3940, 3944, 1, 0, 0, 0, 3941, 3939, 1, 0, 0, 0, 3942, 3943, 7, 48, 0, 0, 3943, 3945, 5, 219, 0, 0, 3944, 3942, 1, 0, 0, 0, 3944, 3945, 1, 0, 0, 0, 3945, 3947, 1, 0, 0, 0, 3946, 3948, 3, 96, 48, 0, 3947, 3946, 1, 0, 0, 0, 3947, 3948, 1, 0, 0, 0, 3948, 323, 1, 0, 0, 0, 3949, 3951, 5, 81, 0, 0, 3950, 3949, 1, 0, 0, 0, 3950, 3951, 1, 0, 0, 0, 3951, 3952, 1, 0, 0, 0, 3952, 3954, 3, 776, 388, 0, 3953, 3955, 5, 9, 0, 0, 3954, 3953, 1, 0, 0, 0, 3954, 3955, 1, 0, 0, 0, 3955, 325, 1, 0, 0, 0, 3956, 3957, 5, 159, 0, 0, 3957, 4016, 5, 80, 0, 0, 3958, 4017, 3, 312, 156, 0, 3959, 4017, 3, 314, 157, 0, 3960, 3961, 5, 44, 0, 0, 3961, 3963, 3, 820, 410, 0, 3962, 3964, 3, 320, 160, 0, 3963, 3962, 1, 0, 0, 0, 3963, 3964, 1, 0, 0, 0, 3964, 3965, 1, 0, 0, 0, 3965, 3966, 5, 11, 0, 0, 3966, 3967, 3, 802, 401, 0, 3967, 4017, 1, 0, 0, 0, 3968, 3969, 7, 33, 0, 0, 3969, 4017, 3, 654, 327, 0, 3970, 3971, 5, 136, 0, 0, 3971, 4017, 3, 396, 198, 0, 3972, 3973, 5, 211, 0, 0, 3973, 4017, 3, 384, 192, 0, 3974, 3975, 5, 278, 0, 0, 3975, 4017, 3, 418, 209, 0, 3976, 3977, 5, 45, 0, 0, 3977, 3978, 3, 820, 410, 0, 3978, 3984, 5, 80, 0, 0, 3979, 3985, 3, 776, 388, 0, 3980, 3982, 5, 189, 0, 0, 3981, 3980, 1, 0, 0, 0, 3981, 3982, 1, 0, 0, 0, 3982, 3983, 1, 0, 0, 0, 3983, 3985, 3, 318, 159, 0, 3984, 3979, 1, 0, 0, 0, 3984, 3981, 1, 0, 0, 0, 3985, 4017, 1, 0, 0, 0, 3986, 3987, 7, 45, 0, 0, 3987, 3988, 3, 820, 410, 0, 3988, 3989, 5, 80, 0, 0, 3989, 3990, 3, 318, 159, 0, 3990, 4017, 1, 0, 0, 0, 3991, 3992, 5, 296, 0, 0, 3992, 4017, 3, 380, 190, 0, 3993, 3994, 5, 442, 0, 0, 3994, 4017, 3, 376, 188, 0, 3995, 3996, 5, 443, 0, 0, 3996, 3997, 5, 62, 0, 0, 3997, 3998, 3, 654, 327, 0, 3998, 3999, 5, 247, 0, 0, 3999, 4000, 3, 820, 410, 0, 4000, 4017, 1, 0, 0, 0, 4001, 4002, 5, 278, 0, 0, 4002, 4003, 7, 32, 0, 0, 4003, 4004, 3, 318, 159, 0, 4004, 4005, 3, 172, 86, 0, 4005, 4017, 1, 0, 0, 0, 4006, 4007, 5, 248, 0, 0, 4007, 4008, 5, 274, 0, 0, 4008, 4017, 3, 204, 102, 0, 4009, 4010, 5, 41, 0, 0, 4010, 4011, 5, 2, 0, 0, 4011, 4012, 3, 654, 327, 0, 4012, 4013, 5, 36, 0, 0, 4013, 4014, 3, 654, 327, 0, 4014, 4015, 5, 3, 0, 0, 4015, 4017, 1, 0, 0, 0, 4016, 3958, 1, 0, 0, 0, 4016, 3959, 1, 0, 0, 0, 4016, 3960, 1, 0, 0, 0, 4016, 3968, 1, 0, 0, 0, 4016, 3970, 1, 0, 0, 0, 4016, 3972, 1, 0, 0, 0, 4016, 3974, 1, 0, 0, 0, 4016, 3976, 1, 0, 0, 0, 4016, 3986, 1, 0, 0, 0, 4016, 3991, 1, 0, 0, 0, 4016, 3993, 1, 0, 0, 0, 4016, 3995, 1, 0, 0, 0, 4016, 4001, 1, 0, 0, 0, 4016, 4006, 1, 0, 0, 0, 4016, 4009, 1, 0, 0, 0, 4017, 4018, 1, 0, 0, 0, 4018, 4021, 5, 116, 0, 0, 4019, 4022, 3, 810, 405, 0, 4020, 4022, 5, 78, 0, 0, 4021, 4019, 1, 0, 0, 0, 4021, 4020, 1, 0, 0, 0, 4022, 327, 1, 0, 0, 0, 4023, 4024, 5, 327, 0, 0, 4024, 4027, 5, 246, 0, 0, 4025, 4026, 5, 62, 0, 0, 4026, 4028, 3, 58, 29, 0, 4027, 4025, 1, 0, 0, 0, 4027, 4028, 1, 0, 0, 0, 4028, 4029, 1, 0, 0, 0, 4029, 4047, 5, 80, 0, 0, 4030, 4031, 7, 33, 0, 0, 4031, 4048, 3, 654, 327, 0, 4032, 4033, 5, 136, 0, 0, 4033, 4048, 3, 396, 198, 0, 4034, 4035, 5, 44, 0, 0, 4035, 4048, 3, 802, 401, 0, 4036, 4037, 5, 211, 0, 0, 4037, 4048, 3, 384, 192, 0, 4038, 4039, 5, 248, 0, 0, 4039, 4040, 5, 274, 0, 0, 4040, 4048, 3, 204, 102, 0, 4041, 4042, 5, 296, 0, 0, 4042, 4048, 3, 380, 190, 0, 4043, 4044, 5, 442, 0, 0, 4044, 4048, 3, 376, 188, 0, 4045, 4048, 3, 312, 156, 0, 4046, 4048, 3, 314, 157, 0, 4047, 4030, 1, 0, 0, 0, 4047, 4032, 1, 0, 0, 0, 4047, 4034, 1, 0, 0, 0, 4047, 4036, 1, 0, 0, 0, 4047, 4038, 1, 0, 0, 0, 4047, 4041, 1, 0, 0, 0, 4047, 4043, 1, 0, 0, 0, 4047, 4045, 1, 0, 0, 0, 4047, 4046, 1, 0, 0, 0, 4048, 4049, 1, 0, 0, 0, 4049, 4052, 5, 116, 0, 0, 4050, 4053, 3, 810, 405, 0, 4051, 4053, 5, 78, 0, 0, 4052, 4050, 1, 0, 0, 0, 4052, 4051, 1, 0, 0, 0, 4053, 329, 1, 0, 0, 0, 4054, 4055, 7, 49, 0, 0, 4055, 4056, 3, 332, 166, 0, 4056, 331, 1, 0, 0, 0, 4057, 4059, 7, 50, 0, 0, 4058, 4057, 1, 0, 0, 0, 4058, 4059, 1, 0, 0, 0, 4059, 4061, 1, 0, 0, 0, 4060, 4062, 3, 334, 167, 0, 4061, 4060, 1, 0, 0, 0, 4061, 4062, 1, 0, 0, 0, 4062, 4063, 1, 0, 0, 0, 4063, 4101, 3, 820, 410, 0, 4064, 4066, 7, 51, 0, 0, 4065, 4064, 1, 0, 0, 0, 4065, 4066, 1, 0, 0, 0, 4066, 4067, 1, 0, 0, 0, 4067, 4069, 3, 814, 407, 0, 4068, 4070, 3, 334, 167, 0, 4069, 4068, 1, 0, 0, 0, 4069, 4070, 1, 0, 0, 0, 4070, 4071, 1, 0, 0, 0, 4071, 4072, 3, 820, 410, 0, 4072, 4101, 1, 0, 0, 0, 4073, 4075, 5, 210, 0, 0, 4074, 4076, 3, 814, 407, 0, 4075, 4074, 1, 0, 0, 0, 4075, 4076, 1, 0, 0, 0, 4076, 4078, 1, 0, 0, 0, 4077, 4079, 3, 334, 167, 0, 4078, 4077, 1, 0, 0, 0, 4078, 4079, 1, 0, 0, 0, 4079, 4080, 1, 0, 0, 0, 4080, 4101, 3, 820, 410, 0, 4081, 4083, 5, 210, 0, 0, 4082, 4081, 1, 0, 0, 0, 4082, 4083, 1, 0, 0, 0, 4083, 4084, 1, 0, 0, 0, 4084, 4086, 5, 30, 0, 0, 4085, 4087, 3, 334, 167, 0, 4086, 4085, 1, 0, 0, 0, 4086, 4087, 1, 0, 0, 0, 4087, 4088, 1, 0, 0, 0, 4088, 4101, 3, 820, 410, 0, 4089, 4094, 5, 144, 0, 0, 4090, 4092, 5, 30, 0, 0, 4091, 4090, 1, 0, 0, 0, 4091, 4092, 1, 0, 0, 0, 4092, 4095, 1, 0, 0, 0, 4093, 4095, 3, 814, 407, 0, 4094, 4091, 1, 0, 0, 0, 4094, 4093, 1, 0, 0, 0, 4095, 4097, 1, 0, 0, 0, 4096, 4098, 3, 334, 167, 0, 4097, 4096, 1, 0, 0, 0, 4097, 4098, 1, 0, 0, 0, 4098, 4099, 1, 0, 0, 0, 4099, 4101, 3, 820, 410, 0, 4100, 4058, 1, 0, 0, 0, 4100, 4065, 1, 0, 0, 0, 4100, 4073, 1, 0, 0, 0, 4100, 4082, 1, 0, 0, 0, 4100, 4089, 1, 0, 0, 0, 4101, 333, 1, 0, 0, 0, 4102, 4103, 7, 52, 0, 0, 4103, 335, 1, 0, 0, 0, 4104, 4105, 5, 65, 0, 0, 4105, 4106, 3, 340, 170, 0, 4106, 4107, 5, 80, 0, 0, 4107, 4108, 3, 346, 173, 0, 4108, 4109, 5, 94, 0, 0, 4109, 4113, 3, 348, 174, 0, 4110, 4111, 5, 105, 0, 0, 4111, 4112, 5, 65, 0, 0, 4112, 4114, 5, 279, 0, 0, 4113, 4110, 1, 0, 0, 0, 4113, 4114, 1, 0, 0, 0, 4114, 337, 1, 0, 0, 0, 4115, 4119, 5, 317, 0, 0, 4116, 4117, 5, 65, 0, 0, 4117, 4118, 5, 279, 0, 0, 4118, 4120, 5, 62, 0, 0, 4119, 4116, 1, 0, 0, 0, 4119, 4120, 1, 0, 0, 0, 4120, 4121, 1, 0, 0, 0, 4121, 4122, 3, 340, 170, 0, 4122, 4123, 5, 80, 0, 0, 4123, 4124, 3, 346, 173, 0, 4124, 4125, 5, 64, 0, 0, 4125, 4127, 3, 348, 174, 0, 4126, 4128, 3, 96, 48, 0, 4127, 4126, 1, 0, 0, 0, 4127, 4128, 1, 0, 0, 0, 4128, 339, 1, 0, 0, 0, 4129, 4134, 3, 344, 172, 0, 4130, 4131, 5, 6, 0, 0, 4131, 4133, 3, 344, 172, 0, 4132, 4130, 1, 0, 0, 0, 4133, 4136, 1, 0, 0, 0, 4134, 4132, 1, 0, 0, 0, 4134, 4135, 1, 0, 0, 0, 4135, 4153, 1, 0, 0, 0, 4136, 4134, 1, 0, 0, 0, 4137, 4139, 5, 30, 0, 0, 4138, 4140, 5, 294, 0, 0, 4139, 4138, 1, 0, 0, 0, 4139, 4140, 1, 0, 0, 0, 4140, 4142, 1, 0, 0, 0, 4141, 4143, 3, 146, 73, 0, 4142, 4141, 1, 0, 0, 0, 4142, 4143, 1, 0, 0, 0, 4143, 4153, 1, 0, 0, 0, 4144, 4149, 3, 342, 171, 0, 4145, 4146, 5, 6, 0, 0, 4146, 4148, 3, 342, 171, 0, 4147, 4145, 1, 0, 0, 0, 4148, 4151, 1, 0, 0, 0, 4149, 4147, 1, 0, 0, 0, 4149, 4150, 1, 0, 0, 0, 4150, 4153, 1, 0, 0, 0, 4151, 4149, 1, 0, 0, 0, 4152, 4129, 1, 0, 0, 0, 4152, 4137, 1, 0, 0, 0, 4152, 4144, 1, 0, 0, 0, 4153, 341, 1, 0, 0, 0, 4154, 4155, 7, 53, 0, 0, 4155, 343, 1, 0, 0, 0, 4156, 4161, 5, 88, 0, 0, 4157, 4161, 5, 86, 0, 0, 4158, 4161, 5, 46, 0, 0, 4159, 4161, 3, 820, 410, 0, 4160, 4156, 1, 0, 0, 0, 4160, 4157, 1, 0, 0, 0, 4160, 4158, 1, 0, 0, 0, 4160, 4159, 1, 0, 0, 0, 4161, 4163, 1, 0, 0, 0, 4162, 4164, 3, 146, 73, 0, 4163, 4162, 1, 0, 0, 0, 4163, 4164, 1, 0, 0, 0, 4164, 345, 1, 0, 0, 0, 4165, 4166, 5, 92, 0, 0, 4166, 4211, 3, 764, 382, 0, 4167, 4169, 5, 328, 0, 0, 4168, 4167, 1, 0, 0, 0, 4168, 4169, 1, 0, 0, 0, 4169, 4170, 1, 0, 0, 0, 4170, 4211, 3, 762, 381, 0, 4171, 4175, 5, 63, 0, 0, 4172, 4173, 5, 174, 0, 0, 4173, 4176, 5, 381, 0, 0, 4174, 4176, 5, 331, 0, 0, 4175, 4172, 1, 0, 0, 0, 4175, 4174, 1, 0, 0, 0, 4176, 4179, 1, 0, 0, 0, 4177, 4179, 5, 247, 0, 0, 4178, 4171, 1, 0, 0, 0, 4178, 4177, 1, 0, 0, 0, 4179, 4180, 1, 0, 0, 0, 4180, 4211, 3, 786, 393, 0, 4181, 4182, 5, 211, 0, 0, 4182, 4211, 3, 382, 191, 0, 4183, 4184, 5, 296, 0, 0, 4184, 4211, 3, 378, 189, 0, 4185, 4186, 5, 442, 0, 0, 4186, 4211, 3, 374, 187, 0, 4187, 4188, 5, 175, 0, 0, 4188, 4211, 3, 768, 384, 0, 4189, 4190, 7, 33, 0, 0, 4190, 4211, 3, 316, 158, 0, 4191, 4192, 5, 248, 0, 0, 4192, 4193, 5, 274, 0, 0, 4193, 4198, 3, 204, 102, 0, 4194, 4195, 5, 6, 0, 0, 4195, 4197, 3, 204, 102, 0, 4196, 4194, 1, 0, 0, 0, 4197, 4200, 1, 0, 0, 0, 4198, 4196, 1, 0, 0, 0, 4198, 4199, 1, 0, 0, 0, 4199, 4211, 1, 0, 0, 0, 4200, 4198, 1, 0, 0, 0, 4201, 4202, 5, 323, 0, 0, 4202, 4211, 3, 766, 383, 0, 4203, 4204, 5, 351, 0, 0, 4204, 4211, 3, 784, 392, 0, 4205, 4206, 5, 30, 0, 0, 4206, 4207, 7, 54, 0, 0, 4207, 4208, 5, 68, 0, 0, 4208, 4209, 5, 323, 0, 0, 4209, 4211, 3, 766, 383, 0, 4210, 4165, 1, 0, 0, 0, 4210, 4168, 1, 0, 0, 0, 4210, 4178, 1, 0, 0, 0, 4210, 4181, 1, 0, 0, 0, 4210, 4183, 1, 0, 0, 0, 4210, 4185, 1, 0, 0, 0, 4210, 4187, 1, 0, 0, 0, 4210, 4189, 1, 0, 0, 0, 4210, 4191, 1, 0, 0, 0, 4210, 4201, 1, 0, 0, 0, 4210, 4203, 1, 0, 0, 0, 4210, 4205, 1, 0, 0, 0, 4211, 347, 1, 0, 0, 0, 4212, 4214, 5, 66, 0, 0, 4213, 4212, 1, 0, 0, 0, 4213, 4214, 1, 0, 0, 0, 4214, 4215, 1, 0, 0, 0, 4215, 4216, 3, 816, 408, 0, 4216, 4224, 1, 0, 0, 0, 4217, 4219, 5, 6, 0, 0, 4218, 4220, 5, 66, 0, 0, 4219, 4218, 1, 0, 0, 0, 4219, 4220, 1, 0, 0, 0, 4220, 4221, 1, 0, 0, 0, 4221, 4223, 3, 816, 408, 0, 4222, 4217, 1, 0, 0, 0, 4223, 4226, 1, 0, 0, 0, 4224, 4222, 1, 0, 0, 0, 4224, 4225, 1, 0, 0, 0, 4225, 349, 1, 0, 0, 0, 4226, 4224, 1, 0, 0, 0, 4227, 4228, 5, 65, 0, 0, 4228, 4233, 3, 344, 172, 0, 4229, 4230, 5, 6, 0, 0, 4230, 4232, 3, 344, 172, 0, 4231, 4229, 1, 0, 0, 0, 4232, 4235, 1, 0, 0, 0, 4233, 4231, 1, 0, 0, 0, 4233, 4234, 1, 0, 0, 0, 4234, 4236, 1, 0, 0, 0, 4235, 4233, 1, 0, 0, 0, 4236, 4237, 5, 94, 0, 0, 4237, 4241, 3, 818, 409, 0, 4238, 4239, 5, 105, 0, 0, 4239, 4240, 5, 134, 0, 0, 4240, 4242, 5, 279, 0, 0, 4241, 4238, 1, 0, 0, 0, 4241, 4242, 1, 0, 0, 0, 4242, 4246, 1, 0, 0, 0, 4243, 4244, 5, 214, 0, 0, 4244, 4245, 5, 147, 0, 0, 4245, 4247, 3, 816, 408, 0, 4246, 4243, 1, 0, 0, 0, 4246, 4247, 1, 0, 0, 0, 4247, 351, 1, 0, 0, 0, 4248, 4252, 5, 317, 0, 0, 4249, 4250, 5, 134, 0, 0, 4250, 4251, 5, 279, 0, 0, 4251, 4253, 5, 62, 0, 0, 4252, 4249, 1, 0, 0, 0, 4252, 4253, 1, 0, 0, 0, 4253, 4254, 1, 0, 0, 0, 4254, 4259, 3, 344, 172, 0, 4255, 4256, 5, 6, 0, 0, 4256, 4258, 3, 344, 172, 0, 4257, 4255, 1, 0, 0, 0, 4258, 4261, 1, 0, 0, 0, 4259, 4257, 1, 0, 0, 0, 4259, 4260, 1, 0, 0, 0, 4260, 4262, 1, 0, 0, 0, 4261, 4259, 1, 0, 0, 0, 4262, 4263, 5, 64, 0, 0, 4263, 4267, 3, 818, 409, 0, 4264, 4265, 5, 214, 0, 0, 4265, 4266, 5, 147, 0, 0, 4266, 4268, 3, 816, 408, 0, 4267, 4264, 1, 0, 0, 0, 4267, 4268, 1, 0, 0, 0, 4268, 4270, 1, 0, 0, 0, 4269, 4271, 3, 96, 48, 0, 4270, 4269, 1, 0, 0, 0, 4270, 4271, 1, 0, 0, 0, 4271, 353, 1, 0, 0, 0, 4272, 4273, 5, 138, 0, 0, 4273, 4274, 5, 53, 0, 0, 4274, 4283, 5, 294, 0, 0, 4275, 4276, 5, 68, 0, 0, 4276, 4277, 5, 323, 0, 0, 4277, 4282, 3, 766, 383, 0, 4278, 4279, 5, 62, 0, 0, 4279, 4280, 7, 2, 0, 0, 4280, 4282, 3, 818, 409, 0, 4281, 4275, 1, 0, 0, 0, 4281, 4278, 1, 0, 0, 0, 4282, 4285, 1, 0, 0, 0, 4283, 4281, 1, 0, 0, 0, 4283, 4284, 1, 0, 0, 0, 4284, 4286, 1, 0, 0, 0, 4285, 4283, 1, 0, 0, 0, 4286, 4287, 3, 356, 178, 0, 4287, 355, 1, 0, 0, 0, 4288, 4289, 5, 65, 0, 0, 4289, 4290, 3, 340, 170, 0, 4290, 4291, 5, 80, 0, 0, 4291, 4292, 3, 358, 179, 0, 4292, 4293, 5, 94, 0, 0, 4293, 4297, 3, 348, 174, 0, 4294, 4295, 5, 105, 0, 0, 4295, 4296, 5, 65, 0, 0, 4296, 4298, 5, 279, 0, 0, 4297, 4294, 1, 0, 0, 0, 4297, 4298, 1, 0, 0, 0, 4298, 4314, 1, 0, 0, 0, 4299, 4303, 5, 317, 0, 0, 4300, 4301, 5, 65, 0, 0, 4301, 4302, 5, 279, 0, 0, 4302, 4304, 5, 62, 0, 0, 4303, 4300, 1, 0, 0, 0, 4303, 4304, 1, 0, 0, 0, 4304, 4305, 1, 0, 0, 0, 4305, 4306, 3, 340, 170, 0, 4306, 4307, 5, 80, 0, 0, 4307, 4308, 3, 358, 179, 0, 4308, 4309, 5, 64, 0, 0, 4309, 4311, 3, 348, 174, 0, 4310, 4312, 3, 96, 48, 0, 4311, 4310, 1, 0, 0, 0, 4311, 4312, 1, 0, 0, 0, 4312, 4314, 1, 0, 0, 0, 4313, 4288, 1, 0, 0, 0, 4313, 4299, 1, 0, 0, 0, 4314, 357, 1, 0, 0, 0, 4315, 4316, 7, 55, 0, 0, 4316, 359, 1, 0, 0, 0, 4317, 4319, 5, 46, 0, 0, 4318, 4320, 5, 98, 0, 0, 4319, 4318, 1, 0, 0, 0, 4319, 4320, 1, 0, 0, 0, 4320, 4321, 1, 0, 0, 0, 4321, 4323, 5, 226, 0, 0, 4322, 4324, 5, 109, 0, 0, 4323, 4322, 1, 0, 0, 0, 4323, 4324, 1, 0, 0, 0, 4324, 4326, 1, 0, 0, 0, 4325, 4327, 3, 296, 148, 0, 4326, 4325, 1, 0, 0, 0, 4326, 4327, 1, 0, 0, 0, 4327, 4329, 1, 0, 0, 0, 4328, 4330, 3, 820, 410, 0, 4329, 4328, 1, 0, 0, 0, 4329, 4330, 1, 0, 0, 0, 4330, 4331, 1, 0, 0, 0, 4331, 4332, 5, 80, 0, 0, 4332, 4334, 3, 626, 313, 0, 4333, 4335, 3, 172, 86, 0, 4334, 4333, 1, 0, 0, 0, 4334, 4335, 1, 0, 0, 0, 4335, 4336, 1, 0, 0, 0, 4336, 4339, 3, 362, 181, 0, 4337, 4338, 5, 441, 0, 0, 4338, 4340, 3, 362, 181, 0, 4339, 4337, 1, 0, 0, 0, 4339, 4340, 1, 0, 0, 0, 4340, 4346, 1, 0, 0, 0, 4341, 4343, 5, 273, 0, 0, 4342, 4344, 5, 77, 0, 0, 4343, 4342, 1, 0, 0, 0, 4343, 4344, 1, 0, 0, 0, 4344, 4345, 1, 0, 0, 0, 4345, 4347, 5, 56, 0, 0, 4346, 4341, 1, 0, 0, 0, 4346, 4347, 1, 0, 0, 0, 4347, 4349, 1, 0, 0, 0, 4348, 4350, 3, 102, 51, 0, 4349, 4348, 1, 0, 0, 0, 4349, 4350, 1, 0, 0, 0, 4350, 4352, 1, 0, 0, 0, 4351, 4353, 3, 178, 89, 0, 4352, 4351, 1, 0, 0, 0, 4352, 4353, 1, 0, 0, 0, 4353, 4355, 1, 0, 0, 0, 4354, 4356, 3, 640, 320, 0, 4355, 4354, 1, 0, 0, 0, 4355, 4356, 1, 0, 0, 0, 4356, 361, 1, 0, 0, 0, 4357, 4358, 5, 2, 0, 0, 4358, 4363, 3, 364, 182, 0, 4359, 4360, 5, 6, 0, 0, 4360, 4362, 3, 364, 182, 0, 4361, 4359, 1, 0, 0, 0, 4362, 4365, 1, 0, 0, 0, 4363, 4361, 1, 0, 0, 0, 4363, 4364, 1, 0, 0, 0, 4364, 4366, 1, 0, 0, 0, 4365, 4363, 1, 0, 0, 0, 4366, 4367, 5, 3, 0, 0, 4367, 363, 1, 0, 0, 0, 4368, 4375, 3, 802, 401, 0, 4369, 4375, 3, 690, 345, 0, 4370, 4371, 5, 2, 0, 0, 4371, 4372, 3, 676, 338, 0, 4372, 4373, 5, 3, 0, 0, 4373, 4375, 1, 0, 0, 0, 4374, 4368, 1, 0, 0, 0, 4374, 4369, 1, 0, 0, 0, 4374, 4370, 1, 0, 0, 0, 4375, 4377, 1, 0, 0, 0, 4376, 4378, 3, 98, 49, 0, 4377, 4376, 1, 0, 0, 0, 4377, 4378, 1, 0, 0, 0, 4378, 4385, 1, 0, 0, 0, 4379, 4381, 3, 318, 159, 0, 4380, 4379, 1, 0, 0, 0, 4380, 4381, 1, 0, 0, 0, 4381, 4386, 1, 0, 0, 0, 4382, 4383, 3, 318, 159, 0, 4383, 4384, 3, 100, 50, 0, 4384, 4386, 1, 0, 0, 0, 4385, 4380, 1, 0, 0, 0, 4385, 4382, 1, 0, 0, 0, 4386, 4388, 1, 0, 0, 0, 4387, 4389, 7, 56, 0, 0, 4388, 4387, 1, 0, 0, 0, 4388, 4389, 1, 0, 0, 0, 4389, 4392, 1, 0, 0, 0, 4390, 4391, 5, 273, 0, 0, 4391, 4393, 7, 57, 0, 0, 4392, 4390, 1, 0, 0, 0, 4392, 4393, 1, 0, 0, 0, 4393, 365, 1, 0, 0, 0, 4394, 4396, 5, 46, 0, 0, 4395, 4397, 3, 368, 184, 0, 4396, 4395, 1, 0, 0, 0, 4396, 4397, 1, 0, 0, 0, 4397, 4402, 1, 0, 0, 0, 4398, 4399, 5, 211, 0, 0, 4399, 4403, 3, 806, 403, 0, 4400, 4401, 5, 296, 0, 0, 4401, 4403, 3, 800, 400, 0, 4402, 4398, 1, 0, 0, 0, 4402, 4400, 1, 0, 0, 0, 4403, 4404, 1, 0, 0, 0, 4404, 4413, 5, 2, 0, 0, 4405, 4410, 3, 392, 196, 0, 4406, 4407, 5, 6, 0, 0, 4407, 4409, 3, 392, 196, 0, 4408, 4406, 1, 0, 0, 0, 4409, 4412, 1, 0, 0, 0, 4410, 4408, 1, 0, 0, 0, 4410, 4411, 1, 0, 0, 0, 4411, 4414, 1, 0, 0, 0, 4412, 4410, 1, 0, 0, 0, 4413, 4405, 1, 0, 0, 0, 4413, 4414, 1, 0, 0, 0, 4414, 4415, 1, 0, 0, 0, 4415, 4416, 5, 3, 0, 0, 4416, 4433, 1, 0, 0, 0, 4417, 4431, 5, 316, 0, 0, 4418, 4432, 3, 390, 195, 0, 4419, 4420, 5, 92, 0, 0, 4420, 4421, 5, 2, 0, 0, 4421, 4426, 3, 404, 202, 0, 4422, 4423, 5, 6, 0, 0, 4423, 4425, 3, 404, 202, 0, 4424, 4422, 1, 0, 0, 0, 4425, 4428, 1, 0, 0, 0, 4426, 4424, 1, 0, 0, 0, 4426, 4427, 1, 0, 0, 0, 4427, 4429, 1, 0, 0, 0, 4428, 4426, 1, 0, 0, 0, 4429, 4430, 5, 3, 0, 0, 4430, 4432, 1, 0, 0, 0, 4431, 4418, 1, 0, 0, 0, 4431, 4419, 1, 0, 0, 0, 4432, 4434, 1, 0, 0, 0, 4433, 4417, 1, 0, 0, 0, 4433, 4434, 1, 0, 0, 0, 4434, 4436, 1, 0, 0, 0, 4435, 4437, 3, 400, 200, 0, 4436, 4435, 1, 0, 0, 0, 4437, 4438, 1, 0, 0, 0, 4438, 4436, 1, 0, 0, 0, 4438, 4439, 1, 0, 0, 0, 4439, 4445, 1, 0, 0, 0, 4440, 4441, 5, 105, 0, 0, 4441, 4442, 5, 2, 0, 0, 4442, 4443, 3, 786, 393, 0, 4443, 4444, 5, 3, 0, 0, 4444, 4446, 1, 0, 0, 0, 4445, 4440, 1, 0, 0, 0, 4445, 4446, 1, 0, 0, 0, 4446, 367, 1, 0, 0, 0, 4447, 4448, 5, 82, 0, 0, 4448, 4449, 5, 311, 0, 0, 4449, 369, 1, 0, 0, 0, 4450, 4452, 5, 2, 0, 0, 4451, 4453, 3, 372, 186, 0, 4452, 4451, 1, 0, 0, 0, 4452, 4453, 1, 0, 0, 0, 4453, 4454, 1, 0, 0, 0, 4454, 4455, 5, 3, 0, 0, 4455, 371, 1, 0, 0, 0, 4456, 4461, 3, 386, 193, 0, 4457, 4458, 5, 6, 0, 0, 4458, 4460, 3, 386, 193, 0, 4459, 4457, 1, 0, 0, 0, 4460, 4463, 1, 0, 0, 0, 4461, 4459, 1, 0, 0, 0, 4461, 4462, 1, 0, 0, 0, 4462, 373, 1, 0, 0, 0, 4463, 4461, 1, 0, 0, 0, 4464, 4469, 3, 376, 188, 0, 4465, 4466, 5, 6, 0, 0, 4466, 4468, 3, 376, 188, 0, 4467, 4465, 1, 0, 0, 0, 4468, 4471, 1, 0, 0, 0, 4469, 4467, 1, 0, 0, 0, 4469, 4470, 1, 0, 0, 0, 4470, 375, 1, 0, 0, 0, 4471, 4469, 1, 0, 0, 0, 4472, 4473, 3, 796, 398, 0, 4473, 4474, 3, 370, 185, 0, 4474, 4478, 1, 0, 0, 0, 4475, 4478, 3, 834, 417, 0, 4476, 4478, 3, 782, 391, 0, 4477, 4472, 1, 0, 0, 0, 4477, 4475, 1, 0, 0, 0, 4477, 4476, 1, 0, 0, 0, 4478, 377, 1, 0, 0, 0, 4479, 4484, 3, 380, 190, 0, 4480, 4481, 5, 6, 0, 0, 4481, 4483, 3, 380, 190, 0, 4482, 4480, 1, 0, 0, 0, 4483, 4486, 1, 0, 0, 0, 4484, 4482, 1, 0, 0, 0, 4484, 4485, 1, 0, 0, 0, 4485, 379, 1, 0, 0, 0, 4486, 4484, 1, 0, 0, 0, 4487, 4488, 3, 798, 399, 0, 4488, 4489, 3, 370, 185, 0, 4489, 4493, 1, 0, 0, 0, 4490, 4493, 3, 834, 417, 0, 4491, 4493, 3, 782, 391, 0, 4492, 4487, 1, 0, 0, 0, 4492, 4490, 1, 0, 0, 0, 4492, 4491, 1, 0, 0, 0, 4493, 381, 1, 0, 0, 0, 4494, 4499, 3, 384, 192, 0, 4495, 4496, 5, 6, 0, 0, 4496, 4498, 3, 384, 192, 0, 4497, 4495, 1, 0, 0, 0, 4498, 4501, 1, 0, 0, 0, 4499, 4497, 1, 0, 0, 0, 4499, 4500, 1, 0, 0, 0, 4500, 383, 1, 0, 0, 0, 4501, 4499, 1, 0, 0, 0, 4502, 4503, 3, 808, 404, 0, 4503, 4504, 3, 370, 185, 0, 4504, 4508, 1, 0, 0, 0, 4505, 4508, 3, 834, 417, 0, 4506, 4508, 3, 782, 391, 0, 4507, 4502, 1, 0, 0, 0, 4507, 4505, 1, 0, 0, 0, 4507, 4506, 1, 0, 0, 0, 4508, 385, 1, 0, 0, 0, 4509, 4511, 3, 388, 194, 0, 4510, 4512, 3, 822, 411, 0, 4511, 4510, 1, 0, 0, 0, 4511, 4512, 1, 0, 0, 0, 4512, 4518, 1, 0, 0, 0, 4513, 4515, 3, 822, 411, 0, 4514, 4516, 3, 388, 194, 0, 4515, 4514, 1, 0, 0, 0, 4515, 4516, 1, 0, 0, 0, 4516, 4518, 1, 0, 0, 0, 4517, 4509, 1, 0, 0, 0, 4517, 4513, 1, 0, 0, 0, 4517, 4518, 1, 0, 0, 0, 4518, 4519, 1, 0, 0, 0, 4519, 4520, 3, 390, 195, 0, 4520, 387, 1, 0, 0, 0, 4521, 4523, 5, 68, 0, 0, 4522, 4524, 5, 453, 0, 0, 4523, 4522, 1, 0, 0, 0, 4523, 4524, 1, 0, 0, 0, 4524, 4529, 1, 0, 0, 0, 4525, 4529, 5, 453, 0, 0, 4526, 4529, 5, 400, 0, 0, 4527, 4529, 5, 101, 0, 0, 4528, 4521, 1, 0, 0, 0, 4528, 4525, 1, 0, 0, 0, 4528, 4526, 1, 0, 0, 0, 4528, 4527, 1, 0, 0, 0, 4529, 389, 1, 0, 0, 0, 4530, 4540, 3, 654, 327, 0, 4531, 4533, 5, 415, 0, 0, 4532, 4531, 1, 0, 0, 0, 4532, 4533, 1, 0, 0, 0, 4533, 4534, 1, 0, 0, 0, 4534, 4535, 3, 822, 411, 0, 4535, 4536, 3, 320, 160, 0, 4536, 4537, 5, 27, 0, 0, 4537, 4538, 5, 360, 0, 0, 4538, 4540, 1, 0, 0, 0, 4539, 4530, 1, 0, 0, 0, 4539, 4532, 1, 0, 0, 0, 4540, 391, 1, 0, 0, 0, 4541, 4544, 3, 386, 193, 0, 4542, 4543, 7, 58, 0, 0, 4543, 4545, 3, 676, 338, 0, 4544, 4542, 1, 0, 0, 0, 4544, 4545, 1, 0, 0, 0, 4545, 393, 1, 0, 0, 0, 4546, 4556, 5, 2, 0, 0, 4547, 4557, 5, 9, 0, 0, 4548, 4550, 3, 372, 186, 0, 4549, 4548, 1, 0, 0, 0, 4549, 4550, 1, 0, 0, 0, 4550, 4554, 1, 0, 0, 0, 4551, 4552, 5, 83, 0, 0, 4552, 4553, 5, 147, 0, 0, 4553, 4555, 3, 372, 186, 0, 4554, 4551, 1, 0, 0, 0, 4554, 4555, 1, 0, 0, 0, 4555, 4557, 1, 0, 0, 0, 4556, 4547, 1, 0, 0, 0, 4556, 4549, 1, 0, 0, 0, 4557, 4558, 1, 0, 0, 0, 4558, 4559, 5, 3, 0, 0, 4559, 395, 1, 0, 0, 0, 4560, 4561, 3, 808, 404, 0, 4561, 4562, 3, 394, 197, 0, 4562, 397, 1, 0, 0, 0, 4563, 4564, 5, 316, 0, 0, 4564, 4567, 5, 78, 0, 0, 4565, 4567, 5, 149, 0, 0, 4566, 4563, 1, 0, 0, 0, 4566, 4565, 1, 0, 0, 0, 4567, 4568, 1, 0, 0, 0, 4568, 4569, 5, 80, 0, 0, 4569, 4570, 5, 78, 0, 0, 4570, 4593, 5, 458, 0, 0, 4571, 4593, 5, 346, 0, 0, 4572, 4593, 5, 222, 0, 0, 4573, 4593, 5, 338, 0, 0, 4574, 4593, 5, 377, 0, 0, 4575, 4577, 5, 205, 0, 0, 4576, 4575, 1, 0, 0, 0, 4576, 4577, 1, 0, 0, 0, 4577, 4578, 1, 0, 0, 0, 4578, 4579, 5, 327, 0, 0, 4579, 4593, 7, 59, 0, 0, 4580, 4593, 5, 250, 0, 0, 4581, 4582, 5, 77, 0, 0, 4582, 4593, 5, 250, 0, 0, 4583, 4584, 7, 60, 0, 0, 4584, 4593, 3, 204, 102, 0, 4585, 4586, 5, 459, 0, 0, 4586, 4593, 3, 318, 159, 0, 4587, 4588, 5, 333, 0, 0, 4588, 4593, 3, 42, 21, 0, 4589, 4593, 3, 60, 30, 0, 4590, 4591, 5, 460, 0, 0, 4591, 4593, 3, 820, 410, 0, 4592, 4566, 1, 0, 0, 0, 4592, 4571, 1, 0, 0, 0, 4592, 4572, 1, 0, 0, 0, 4592, 4573, 1, 0, 0, 0, 4592, 4574, 1, 0, 0, 0, 4592, 4576, 1, 0, 0, 0, 4592, 4580, 1, 0, 0, 0, 4592, 4581, 1, 0, 0, 0, 4592, 4583, 1, 0, 0, 0, 4592, 4585, 1, 0, 0, 0, 4592, 4587, 1, 0, 0, 0, 4592, 4589, 1, 0, 0, 0, 4592, 4590, 1, 0, 0, 0, 4593, 399, 1, 0, 0, 0, 4594, 4595, 5, 36, 0, 0, 4595, 4596, 3, 810, 405, 0, 4596, 4597, 3, 464, 232, 0, 4597, 4630, 1, 0, 0, 0, 4598, 4599, 5, 247, 0, 0, 4599, 4630, 3, 58, 29, 0, 4600, 4601, 5, 443, 0, 0, 4601, 4602, 5, 62, 0, 0, 4602, 4603, 5, 360, 0, 0, 4603, 4610, 3, 654, 327, 0, 4604, 4605, 5, 6, 0, 0, 4605, 4606, 5, 62, 0, 0, 4606, 4607, 5, 360, 0, 0, 4607, 4609, 3, 654, 327, 0, 4608, 4604, 1, 0, 0, 0, 4609, 4612, 1, 0, 0, 0, 4610, 4608, 1, 0, 0, 0, 4610, 4611, 1, 0, 0, 0, 4611, 4630, 1, 0, 0, 0, 4612, 4610, 1, 0, 0, 0, 4613, 4630, 5, 104, 0, 0, 4614, 4615, 5, 333, 0, 0, 4615, 4622, 3, 820, 410, 0, 4616, 4617, 5, 94, 0, 0, 4617, 4623, 3, 820, 410, 0, 4618, 4619, 5, 10, 0, 0, 4619, 4623, 3, 820, 410, 0, 4620, 4621, 5, 64, 0, 0, 4621, 4623, 5, 434, 0, 0, 4622, 4616, 1, 0, 0, 0, 4622, 4618, 1, 0, 0, 0, 4622, 4620, 1, 0, 0, 0, 4623, 4630, 1, 0, 0, 0, 4624, 4625, 5, 36, 0, 0, 4625, 4630, 3, 820, 410, 0, 4626, 4630, 3, 4, 2, 0, 4627, 4630, 3, 398, 199, 0, 4628, 4630, 3, 820, 410, 0, 4629, 4594, 1, 0, 0, 0, 4629, 4598, 1, 0, 0, 0, 4629, 4600, 1, 0, 0, 0, 4629, 4613, 1, 0, 0, 0, 4629, 4614, 1, 0, 0, 0, 4629, 4624, 1, 0, 0, 0, 4629, 4626, 1, 0, 0, 0, 4629, 4627, 1, 0, 0, 0, 4629, 4628, 1, 0, 0, 0, 4630, 401, 1, 0, 0, 0, 4631, 4632, 5, 105, 0, 0, 4632, 4633, 3, 286, 143, 0, 4633, 403, 1, 0, 0, 0, 4634, 4635, 3, 802, 401, 0, 4635, 4636, 3, 390, 195, 0, 4636, 405, 1, 0, 0, 0, 4637, 4644, 5, 138, 0, 0, 4638, 4639, 5, 211, 0, 0, 4639, 4645, 3, 384, 192, 0, 4640, 4641, 5, 296, 0, 0, 4641, 4645, 3, 380, 190, 0, 4642, 4643, 5, 442, 0, 0, 4643, 4645, 3, 376, 188, 0, 4644, 4638, 1, 0, 0, 0, 4644, 4640, 1, 0, 0, 0, 4644, 4642, 1, 0, 0, 0, 4645, 4647, 1, 0, 0, 0, 4646, 4648, 3, 398, 199, 0, 4647, 4646, 1, 0, 0, 0, 4648, 4649, 1, 0, 0, 0, 4649, 4647, 1, 0, 0, 0, 4649, 4650, 1, 0, 0, 0, 4650, 4652, 1, 0, 0, 0, 4651, 4653, 5, 315, 0, 0, 4652, 4651, 1, 0, 0, 0, 4652, 4653, 1, 0, 0, 0, 4653, 407, 1, 0, 0, 0, 4654, 4670, 5, 191, 0, 0, 4655, 4657, 5, 211, 0, 0, 4656, 4658, 3, 424, 212, 0, 4657, 4656, 1, 0, 0, 0, 4657, 4658, 1, 0, 0, 0, 4658, 4659, 1, 0, 0, 0, 4659, 4671, 3, 382, 191, 0, 4660, 4662, 5, 296, 0, 0, 4661, 4663, 3, 424, 212, 0, 4662, 4661, 1, 0, 0, 0, 4662, 4663, 1, 0, 0, 0, 4663, 4664, 1, 0, 0, 0, 4664, 4671, 3, 378, 189, 0, 4665, 4667, 5, 442, 0, 0, 4666, 4668, 3, 424, 212, 0, 4667, 4666, 1, 0, 0, 0, 4667, 4668, 1, 0, 0, 0, 4668, 4669, 1, 0, 0, 0, 4669, 4671, 3, 374, 187, 0, 4670, 4655, 1, 0, 0, 0, 4670, 4660, 1, 0, 0, 0, 4670, 4665, 1, 0, 0, 0, 4671, 4673, 1, 0, 0, 0, 4672, 4674, 3, 96, 48, 0, 4673, 4672, 1, 0, 0, 0, 4673, 4674, 1, 0, 0, 0, 4674, 409, 1, 0, 0, 0, 4675, 4676, 5, 191, 0, 0, 4676, 4678, 5, 136, 0, 0, 4677, 4679, 3, 424, 212, 0, 4678, 4677, 1, 0, 0, 0, 4678, 4679, 1, 0, 0, 0, 4679, 4680, 1, 0, 0, 0, 4680, 4685, 3, 396, 198, 0, 4681, 4682, 5, 6, 0, 0, 4682, 4684, 3, 396, 198, 0, 4683, 4681, 1, 0, 0, 0, 4684, 4687, 1, 0, 0, 0, 4685, 4683, 1, 0, 0, 0, 4685, 4686, 1, 0, 0, 0, 4686, 4689, 1, 0, 0, 0, 4687, 4685, 1, 0, 0, 0, 4688, 4690, 3, 96, 48, 0, 4689, 4688, 1, 0, 0, 0, 4689, 4690, 1, 0, 0, 0, 4690, 411, 1, 0, 0, 0, 4691, 4692, 5, 191, 0, 0, 4692, 4694, 5, 278, 0, 0, 4693, 4695, 3, 424, 212, 0, 4694, 4693, 1, 0, 0, 0, 4694, 4695, 1, 0, 0, 0, 4695, 4696, 1, 0, 0, 0, 4696, 4701, 3, 418, 209, 0, 4697, 4698, 5, 6, 0, 0, 4698, 4700, 3, 418, 209, 0, 4699, 4697, 1, 0, 0, 0, 4700, 4703, 1, 0, 0, 0, 4701, 4699, 1, 0, 0, 0, 4701, 4702, 1, 0, 0, 0, 4702, 4705, 1, 0, 0, 0, 4703, 4701, 1, 0, 0, 0, 4704, 4706, 3, 96, 48, 0, 4705, 4704, 1, 0, 0, 0, 4705, 4706, 1, 0, 0, 0, 4706, 413, 1, 0, 0, 0, 4707, 4720, 5, 2, 0, 0, 4708, 4711, 3, 654, 327, 0, 4709, 4710, 5, 6, 0, 0, 4710, 4712, 3, 654, 327, 0, 4711, 4709, 1, 0, 0, 0, 4711, 4712, 1, 0, 0, 0, 4712, 4721, 1, 0, 0, 0, 4713, 4714, 5, 407, 0, 0, 4714, 4715, 5, 6, 0, 0, 4715, 4721, 3, 654, 327, 0, 4716, 4717, 3, 654, 327, 0, 4717, 4718, 5, 6, 0, 0, 4718, 4719, 5, 407, 0, 0, 4719, 4721, 1, 0, 0, 0, 4720, 4708, 1, 0, 0, 0, 4720, 4713, 1, 0, 0, 0, 4720, 4716, 1, 0, 0, 0, 4721, 4722, 1, 0, 0, 0, 4722, 4723, 5, 3, 0, 0, 4723, 415, 1, 0, 0, 0, 4724, 4725, 3, 820, 410, 0, 4725, 4726, 5, 11, 0, 0, 4726, 4728, 1, 0, 0, 0, 4727, 4724, 1, 0, 0, 0, 4728, 4731, 1, 0, 0, 0, 4729, 4727, 1, 0, 0, 0, 4729, 4730, 1, 0, 0, 0, 4730, 4732, 1, 0, 0, 0, 4731, 4729, 1, 0, 0, 0, 4732, 4733, 3, 722, 361, 0, 4733, 417, 1, 0, 0, 0, 4734, 4735, 3, 416, 208, 0, 4735, 4736, 3, 414, 207, 0, 4736, 419, 1, 0, 0, 0, 4737, 4741, 5, 57, 0, 0, 4738, 4742, 3, 810, 405, 0, 4739, 4740, 5, 247, 0, 0, 4740, 4742, 3, 58, 29, 0, 4741, 4738, 1, 0, 0, 0, 4741, 4739, 1, 0, 0, 0, 4742, 4743, 1, 0, 0, 0, 4743, 4741, 1, 0, 0, 0, 4743, 4744, 1, 0, 0, 0, 4744, 421, 1, 0, 0, 0, 4745, 4746, 5, 46, 0, 0, 4746, 4747, 5, 41, 0, 0, 4747, 4748, 5, 2, 0, 0, 4748, 4749, 3, 654, 327, 0, 4749, 4750, 5, 36, 0, 0, 4750, 4751, 3, 654, 327, 0, 4751, 4768, 5, 3, 0, 0, 4752, 4753, 5, 379, 0, 0, 4753, 4756, 5, 211, 0, 0, 4754, 4755, 5, 36, 0, 0, 4755, 4757, 7, 61, 0, 0, 4756, 4754, 1, 0, 0, 0, 4756, 4757, 1, 0, 0, 0, 4757, 4769, 1, 0, 0, 0, 4758, 4762, 5, 105, 0, 0, 4759, 4760, 5, 211, 0, 0, 4760, 4763, 3, 384, 192, 0, 4761, 4763, 5, 400, 0, 0, 4762, 4759, 1, 0, 0, 0, 4762, 4761, 1, 0, 0, 0, 4763, 4766, 1, 0, 0, 0, 4764, 4765, 5, 36, 0, 0, 4765, 4767, 7, 61, 0, 0, 4766, 4764, 1, 0, 0, 0, 4766, 4767, 1, 0, 0, 0, 4767, 4769, 1, 0, 0, 0, 4768, 4752, 1, 0, 0, 0, 4768, 4758, 1, 0, 0, 0, 4769, 423, 1, 0, 0, 0, 4770, 4771, 5, 220, 0, 0, 4771, 4772, 5, 396, 0, 0, 4772, 425, 1, 0, 0, 0, 4773, 4775, 5, 46, 0, 0, 4774, 4776, 3, 368, 184, 0, 4775, 4774, 1, 0, 0, 0, 4775, 4776, 1, 0, 0, 0, 4776, 4777, 1, 0, 0, 0, 4777, 4778, 5, 443, 0, 0, 4778, 4779, 5, 62, 0, 0, 4779, 4780, 3, 654, 327, 0, 4780, 4781, 5, 247, 0, 0, 4781, 4782, 3, 820, 410, 0, 4782, 4797, 5, 2, 0, 0, 4783, 4784, 5, 64, 0, 0, 4784, 4788, 3, 428, 214, 0, 4785, 4786, 5, 6, 0, 0, 4786, 4787, 5, 94, 0, 0, 4787, 4789, 3, 428, 214, 0, 4788, 4785, 1, 0, 0, 0, 4788, 4789, 1, 0, 0, 0, 4789, 4798, 1, 0, 0, 0, 4790, 4791, 5, 94, 0, 0, 4791, 4795, 3, 428, 214, 0, 4792, 4793, 5, 6, 0, 0, 4793, 4794, 5, 64, 0, 0, 4794, 4796, 3, 428, 214, 0, 4795, 4792, 1, 0, 0, 0, 4795, 4796, 1, 0, 0, 0, 4796, 4798, 1, 0, 0, 0, 4797, 4783, 1, 0, 0, 0, 4797, 4790, 1, 0, 0, 0, 4798, 4799, 1, 0, 0, 0, 4799, 4800, 5, 3, 0, 0, 4800, 427, 1, 0, 0, 0, 4801, 4802, 5, 461, 0, 0, 4802, 4803, 5, 105, 0, 0, 4803, 4804, 5, 211, 0, 0, 4804, 4805, 3, 384, 192, 0, 4805, 429, 1, 0, 0, 0, 4806, 4817, 5, 306, 0, 0, 4807, 4808, 5, 2, 0, 0, 4808, 4813, 5, 128, 0, 0, 4809, 4810, 5, 6, 0, 0, 4810, 4812, 5, 128, 0, 0, 4811, 4809, 1, 0, 0, 0, 4812, 4815, 1, 0, 0, 0, 4813, 4811, 1, 0, 0, 0, 4813, 4814, 1, 0, 0, 0, 4814, 4816, 1, 0, 0, 0, 4815, 4813, 1, 0, 0, 0, 4816, 4818, 5, 3, 0, 0, 4817, 4807, 1, 0, 0, 0, 4817, 4818, 1, 0, 0, 0, 4818, 4844, 1, 0, 0, 0, 4819, 4821, 5, 226, 0, 0, 4820, 4822, 5, 109, 0, 0, 4821, 4820, 1, 0, 0, 0, 4821, 4822, 1, 0, 0, 0, 4822, 4823, 1, 0, 0, 0, 4823, 4845, 3, 782, 391, 0, 4824, 4826, 5, 92, 0, 0, 4825, 4827, 5, 109, 0, 0, 4826, 4825, 1, 0, 0, 0, 4826, 4827, 1, 0, 0, 0, 4827, 4828, 1, 0, 0, 0, 4828, 4845, 3, 776, 388, 0, 4829, 4831, 5, 323, 0, 0, 4830, 4832, 5, 109, 0, 0, 4831, 4830, 1, 0, 0, 0, 4831, 4832, 1, 0, 0, 0, 4832, 4833, 1, 0, 0, 0, 4833, 4845, 3, 792, 396, 0, 4834, 4836, 5, 349, 0, 0, 4835, 4837, 5, 109, 0, 0, 4836, 4835, 1, 0, 0, 0, 4836, 4837, 1, 0, 0, 0, 4837, 4838, 1, 0, 0, 0, 4838, 4845, 3, 820, 410, 0, 4839, 4841, 5, 175, 0, 0, 4840, 4842, 5, 109, 0, 0, 4841, 4840, 1, 0, 0, 0, 4841, 4842, 1, 0, 0, 0, 4842, 4843, 1, 0, 0, 0, 4843, 4845, 3, 790, 395, 0, 4844, 4819, 1, 0, 0, 0, 4844, 4824, 1, 0, 0, 0, 4844, 4829, 1, 0, 0, 0, 4844, 4834, 1, 0, 0, 0, 4844, 4839, 1, 0, 0, 0, 4845, 431, 1, 0, 0, 0, 4846, 4847, 5, 138, 0, 0, 4847, 4848, 3, 178, 89, 0, 4848, 4849, 7, 16, 0, 0, 4849, 4850, 3, 100, 50, 0, 4850, 433, 1, 0, 0, 0, 4851, 4856, 5, 138, 0, 0, 4852, 4853, 5, 136, 0, 0, 4853, 4857, 3, 396, 198, 0, 4854, 4855, 5, 442, 0, 0, 4855, 4857, 3, 376, 188, 0, 4856, 4852, 1, 0, 0, 0, 4856, 4854, 1, 0, 0, 0, 4857, 4858, 1, 0, 0, 0, 4858, 4859, 5, 309, 0, 0, 4859, 4860, 5, 94, 0, 0, 4860, 4861, 3, 820, 410, 0, 4861, 5059, 1, 0, 0, 0, 4862, 4863, 5, 138, 0, 0, 4863, 4864, 5, 175, 0, 0, 4864, 4865, 3, 790, 395, 0, 4865, 4866, 5, 309, 0, 0, 4866, 4867, 5, 94, 0, 0, 4867, 4868, 3, 788, 394, 0, 4868, 5059, 1, 0, 0, 0, 4869, 4870, 5, 138, 0, 0, 4870, 4871, 7, 62, 0, 0, 4871, 4872, 3, 318, 159, 0, 4872, 4873, 5, 309, 0, 0, 4873, 4874, 5, 94, 0, 0, 4874, 4875, 3, 820, 410, 0, 4875, 5059, 1, 0, 0, 0, 4876, 4877, 5, 138, 0, 0, 4877, 4878, 5, 211, 0, 0, 4878, 4879, 3, 384, 192, 0, 4879, 4880, 5, 309, 0, 0, 4880, 4881, 5, 94, 0, 0, 4881, 4882, 3, 806, 403, 0, 4882, 5059, 1, 0, 0, 0, 4883, 4884, 5, 138, 0, 0, 4884, 4885, 5, 278, 0, 0, 4885, 4886, 7, 32, 0, 0, 4886, 4887, 3, 318, 159, 0, 4887, 4888, 3, 172, 86, 0, 4888, 4889, 5, 309, 0, 0, 4889, 4890, 5, 94, 0, 0, 4890, 4891, 3, 820, 410, 0, 4891, 5059, 1, 0, 0, 0, 4892, 4893, 5, 138, 0, 0, 4893, 4894, 5, 296, 0, 0, 4894, 4895, 3, 380, 190, 0, 4895, 4896, 5, 309, 0, 0, 4896, 4897, 5, 94, 0, 0, 4897, 4898, 3, 800, 400, 0, 4898, 5059, 1, 0, 0, 0, 4899, 4900, 5, 138, 0, 0, 4900, 4901, 5, 323, 0, 0, 4901, 4902, 3, 792, 396, 0, 4902, 4903, 5, 309, 0, 0, 4903, 4904, 5, 94, 0, 0, 4904, 4905, 3, 32, 16, 0, 4905, 5059, 1, 0, 0, 0, 4906, 4907, 5, 138, 0, 0, 4907, 4909, 7, 63, 0, 0, 4908, 4910, 3, 424, 212, 0, 4909, 4908, 1, 0, 0, 0, 4909, 4910, 1, 0, 0, 0, 4910, 4911, 1, 0, 0, 0, 4911, 4912, 3, 782, 391, 0, 4912, 4913, 5, 309, 0, 0, 4913, 4914, 5, 94, 0, 0, 4914, 4915, 3, 820, 410, 0, 4915, 5059, 1, 0, 0, 0, 4916, 4918, 5, 138, 0, 0, 4917, 4919, 5, 259, 0, 0, 4918, 4917, 1, 0, 0, 0, 4918, 4919, 1, 0, 0, 0, 4919, 4920, 1, 0, 0, 0, 4920, 4922, 5, 376, 0, 0, 4921, 4923, 3, 424, 212, 0, 4922, 4921, 1, 0, 0, 0, 4922, 4923, 1, 0, 0, 0, 4923, 4924, 1, 0, 0, 0, 4924, 4925, 3, 780, 390, 0, 4925, 4926, 5, 309, 0, 0, 4926, 4927, 5, 94, 0, 0, 4927, 4928, 3, 778, 389, 0, 4928, 5059, 1, 0, 0, 0, 4929, 4931, 5, 138, 0, 0, 4930, 4932, 5, 63, 0, 0, 4931, 4930, 1, 0, 0, 0, 4931, 4932, 1, 0, 0, 0, 4932, 4933, 1, 0, 0, 0, 4933, 4935, 5, 92, 0, 0, 4934, 4936, 3, 424, 212, 0, 4935, 4934, 1, 0, 0, 0, 4935, 4936, 1, 0, 0, 0, 4936, 4937, 1, 0, 0, 0, 4937, 4938, 3, 626, 313, 0, 4938, 4939, 5, 309, 0, 0, 4939, 4940, 5, 94, 0, 0, 4940, 4941, 3, 774, 387, 0, 4941, 5059, 1, 0, 0, 0, 4942, 4967, 5, 138, 0, 0, 4943, 4945, 5, 63, 0, 0, 4944, 4943, 1, 0, 0, 0, 4944, 4945, 1, 0, 0, 0, 4945, 4946, 1, 0, 0, 0, 4946, 4948, 5, 92, 0, 0, 4947, 4949, 3, 424, 212, 0, 4948, 4947, 1, 0, 0, 0, 4948, 4949, 1, 0, 0, 0, 4949, 4950, 1, 0, 0, 0, 4950, 4951, 3, 626, 313, 0, 4951, 4953, 5, 309, 0, 0, 4952, 4954, 5, 44, 0, 0, 4953, 4952, 1, 0, 0, 0, 4953, 4954, 1, 0, 0, 0, 4954, 4968, 1, 0, 0, 0, 4955, 4957, 5, 259, 0, 0, 4956, 4955, 1, 0, 0, 0, 4956, 4957, 1, 0, 0, 0, 4957, 4958, 1, 0, 0, 0, 4958, 4960, 5, 376, 0, 0, 4959, 4961, 3, 424, 212, 0, 4960, 4959, 1, 0, 0, 0, 4960, 4961, 1, 0, 0, 0, 4961, 4962, 1, 0, 0, 0, 4962, 4963, 3, 780, 390, 0, 4963, 4965, 5, 309, 0, 0, 4964, 4966, 5, 44, 0, 0, 4965, 4964, 1, 0, 0, 0, 4965, 4966, 1, 0, 0, 0, 4966, 4968, 1, 0, 0, 0, 4967, 4944, 1, 0, 0, 0, 4967, 4956, 1, 0, 0, 0, 4968, 4969, 1, 0, 0, 0, 4969, 4970, 3, 802, 401, 0, 4970, 4971, 5, 94, 0, 0, 4971, 4972, 3, 804, 402, 0, 4972, 5059, 1, 0, 0, 0, 4973, 4981, 5, 138, 0, 0, 4974, 4976, 5, 92, 0, 0, 4975, 4977, 3, 424, 212, 0, 4976, 4975, 1, 0, 0, 0, 4976, 4977, 1, 0, 0, 0, 4977, 4978, 1, 0, 0, 0, 4978, 4982, 3, 626, 313, 0, 4979, 4980, 5, 189, 0, 0, 4980, 4982, 3, 318, 159, 0, 4981, 4974, 1, 0, 0, 0, 4981, 4979, 1, 0, 0, 0, 4982, 4983, 1, 0, 0, 0, 4983, 4984, 5, 309, 0, 0, 4984, 4985, 5, 45, 0, 0, 4985, 4986, 3, 820, 410, 0, 4986, 4987, 5, 94, 0, 0, 4987, 4988, 3, 820, 410, 0, 4988, 5059, 1, 0, 0, 0, 4989, 4996, 5, 138, 0, 0, 4990, 4992, 5, 445, 0, 0, 4991, 4993, 3, 424, 212, 0, 4992, 4991, 1, 0, 0, 0, 4992, 4993, 1, 0, 0, 0, 4993, 4997, 1, 0, 0, 0, 4994, 4997, 5, 321, 0, 0, 4995, 4997, 5, 357, 0, 0, 4996, 4990, 1, 0, 0, 0, 4996, 4994, 1, 0, 0, 0, 4996, 4995, 1, 0, 0, 0, 4997, 4998, 1, 0, 0, 0, 4998, 4999, 3, 820, 410, 0, 4999, 5000, 5, 80, 0, 0, 5000, 5001, 3, 782, 391, 0, 5001, 5002, 5, 309, 0, 0, 5002, 5003, 5, 94, 0, 0, 5003, 5004, 3, 820, 410, 0, 5004, 5059, 1, 0, 0, 0, 5005, 5018, 5, 138, 0, 0, 5006, 5007, 5, 63, 0, 0, 5007, 5008, 5, 174, 0, 0, 5008, 5019, 5, 381, 0, 0, 5009, 5011, 5, 295, 0, 0, 5010, 5009, 1, 0, 0, 0, 5010, 5011, 1, 0, 0, 0, 5011, 5012, 1, 0, 0, 0, 5012, 5019, 5, 247, 0, 0, 5013, 5019, 5, 452, 0, 0, 5014, 5019, 5, 331, 0, 0, 5015, 5019, 5, 451, 0, 0, 5016, 5017, 5, 198, 0, 0, 5017, 5019, 5, 357, 0, 0, 5018, 5006, 1, 0, 0, 0, 5018, 5010, 1, 0, 0, 0, 5018, 5013, 1, 0, 0, 0, 5018, 5014, 1, 0, 0, 0, 5018, 5015, 1, 0, 0, 0, 5018, 5016, 1, 0, 0, 0, 5019, 5020, 1, 0, 0, 0, 5020, 5021, 3, 820, 410, 0, 5021, 5022, 5, 309, 0, 0, 5022, 5023, 5, 94, 0, 0, 5023, 5024, 3, 820, 410, 0, 5024, 5059, 1, 0, 0, 0, 5025, 5026, 5, 138, 0, 0, 5026, 5027, 7, 46, 0, 0, 5027, 5028, 3, 816, 408, 0, 5028, 5029, 5, 309, 0, 0, 5029, 5030, 5, 94, 0, 0, 5030, 5031, 3, 816, 408, 0, 5031, 5059, 1, 0, 0, 0, 5032, 5033, 5, 138, 0, 0, 5033, 5034, 3, 178, 89, 0, 5034, 5035, 5, 309, 0, 0, 5035, 5036, 5, 94, 0, 0, 5036, 5037, 3, 770, 385, 0, 5037, 5059, 1, 0, 0, 0, 5038, 5039, 5, 138, 0, 0, 5039, 5040, 5, 355, 0, 0, 5040, 5041, 5, 325, 0, 0, 5041, 5042, 7, 42, 0, 0, 5042, 5043, 3, 318, 159, 0, 5043, 5044, 5, 309, 0, 0, 5044, 5045, 5, 94, 0, 0, 5045, 5046, 3, 820, 410, 0, 5046, 5059, 1, 0, 0, 0, 5047, 5048, 5, 138, 0, 0, 5048, 5049, 5, 360, 0, 0, 5049, 5050, 3, 318, 159, 0, 5050, 5051, 5, 309, 0, 0, 5051, 5052, 5, 143, 0, 0, 5052, 5053, 3, 820, 410, 0, 5053, 5054, 5, 94, 0, 0, 5054, 5056, 3, 820, 410, 0, 5055, 5057, 3, 96, 48, 0, 5056, 5055, 1, 0, 0, 0, 5056, 5057, 1, 0, 0, 0, 5057, 5059, 1, 0, 0, 0, 5058, 4851, 1, 0, 0, 0, 5058, 4862, 1, 0, 0, 0, 5058, 4869, 1, 0, 0, 0, 5058, 4876, 1, 0, 0, 0, 5058, 4883, 1, 0, 0, 0, 5058, 4892, 1, 0, 0, 0, 5058, 4899, 1, 0, 0, 0, 5058, 4906, 1, 0, 0, 0, 5058, 4916, 1, 0, 0, 0, 5058, 4929, 1, 0, 0, 0, 5058, 4942, 1, 0, 0, 0, 5058, 4973, 1, 0, 0, 0, 5058, 4989, 1, 0, 0, 0, 5058, 5005, 1, 0, 0, 0, 5058, 5025, 1, 0, 0, 0, 5058, 5032, 1, 0, 0, 0, 5058, 5038, 1, 0, 0, 0, 5058, 5047, 1, 0, 0, 0, 5059, 435, 1, 0, 0, 0, 5060, 5077, 5, 138, 0, 0, 5061, 5062, 5, 211, 0, 0, 5062, 5078, 3, 384, 192, 0, 5063, 5064, 5, 296, 0, 0, 5064, 5078, 3, 380, 190, 0, 5065, 5066, 5, 442, 0, 0, 5066, 5078, 3, 376, 188, 0, 5067, 5068, 5, 357, 0, 0, 5068, 5069, 3, 820, 410, 0, 5069, 5070, 5, 80, 0, 0, 5070, 5071, 3, 782, 391, 0, 5071, 5078, 1, 0, 0, 0, 5072, 5073, 5, 259, 0, 0, 5073, 5074, 5, 376, 0, 0, 5074, 5078, 3, 780, 390, 0, 5075, 5076, 5, 226, 0, 0, 5076, 5078, 3, 782, 391, 0, 5077, 5061, 1, 0, 0, 0, 5077, 5063, 1, 0, 0, 0, 5077, 5065, 1, 0, 0, 0, 5077, 5067, 1, 0, 0, 0, 5077, 5072, 1, 0, 0, 0, 5077, 5075, 1, 0, 0, 0, 5078, 5080, 1, 0, 0, 0, 5079, 5081, 5, 269, 0, 0, 5080, 5079, 1, 0, 0, 0, 5080, 5081, 1, 0, 0, 0, 5081, 5082, 1, 0, 0, 0, 5082, 5083, 5, 462, 0, 0, 5083, 5084, 5, 80, 0, 0, 5084, 5085, 5, 204, 0, 0, 5085, 5086, 3, 820, 410, 0, 5086, 437, 1, 0, 0, 0, 5087, 5126, 5, 138, 0, 0, 5088, 5089, 5, 136, 0, 0, 5089, 5127, 3, 396, 198, 0, 5090, 5091, 5, 204, 0, 0, 5091, 5127, 3, 820, 410, 0, 5092, 5093, 5, 211, 0, 0, 5093, 5127, 3, 384, 192, 0, 5094, 5095, 5, 278, 0, 0, 5095, 5127, 3, 418, 209, 0, 5096, 5097, 5, 278, 0, 0, 5097, 5098, 7, 32, 0, 0, 5098, 5099, 3, 318, 159, 0, 5099, 5100, 3, 172, 86, 0, 5100, 5127, 1, 0, 0, 0, 5101, 5102, 5, 296, 0, 0, 5102, 5127, 3, 380, 190, 0, 5103, 5104, 5, 442, 0, 0, 5104, 5127, 3, 376, 188, 0, 5105, 5107, 5, 328, 0, 0, 5106, 5108, 3, 424, 212, 0, 5107, 5106, 1, 0, 0, 0, 5107, 5108, 1, 0, 0, 0, 5108, 5109, 1, 0, 0, 0, 5109, 5127, 3, 782, 391, 0, 5110, 5112, 5, 259, 0, 0, 5111, 5110, 1, 0, 0, 0, 5111, 5112, 1, 0, 0, 0, 5112, 5113, 1, 0, 0, 0, 5113, 5115, 5, 376, 0, 0, 5114, 5116, 3, 424, 212, 0, 5115, 5114, 1, 0, 0, 0, 5115, 5116, 1, 0, 0, 0, 5116, 5117, 1, 0, 0, 0, 5117, 5127, 3, 780, 390, 0, 5118, 5120, 5, 63, 0, 0, 5119, 5118, 1, 0, 0, 0, 5119, 5120, 1, 0, 0, 0, 5120, 5121, 1, 0, 0, 0, 5121, 5123, 5, 92, 0, 0, 5122, 5124, 3, 424, 212, 0, 5123, 5122, 1, 0, 0, 0, 5123, 5124, 1, 0, 0, 0, 5124, 5125, 1, 0, 0, 0, 5125, 5127, 3, 626, 313, 0, 5126, 5088, 1, 0, 0, 0, 5126, 5090, 1, 0, 0, 0, 5126, 5092, 1, 0, 0, 0, 5126, 5094, 1, 0, 0, 0, 5126, 5096, 1, 0, 0, 0, 5126, 5101, 1, 0, 0, 0, 5126, 5103, 1, 0, 0, 0, 5126, 5105, 1, 0, 0, 0, 5126, 5111, 1, 0, 0, 0, 5126, 5119, 1, 0, 0, 0, 5127, 5128, 1, 0, 0, 0, 5128, 5129, 5, 333, 0, 0, 5129, 5130, 5, 323, 0, 0, 5130, 5131, 3, 792, 396, 0, 5131, 5149, 1, 0, 0, 0, 5132, 5141, 5, 138, 0, 0, 5133, 5134, 5, 355, 0, 0, 5134, 5135, 5, 325, 0, 0, 5135, 5142, 7, 42, 0, 0, 5136, 5142, 5, 108, 0, 0, 5137, 5142, 5, 168, 0, 0, 5138, 5142, 5, 189, 0, 0, 5139, 5142, 5, 342, 0, 0, 5140, 5142, 5, 360, 0, 0, 5141, 5133, 1, 0, 0, 0, 5141, 5136, 1, 0, 0, 0, 5141, 5137, 1, 0, 0, 0, 5141, 5138, 1, 0, 0, 0, 5141, 5139, 1, 0, 0, 0, 5141, 5140, 1, 0, 0, 0, 5142, 5143, 1, 0, 0, 0, 5143, 5144, 3, 318, 159, 0, 5144, 5145, 5, 333, 0, 0, 5145, 5146, 5, 323, 0, 0, 5146, 5147, 3, 792, 396, 0, 5147, 5149, 1, 0, 0, 0, 5148, 5087, 1, 0, 0, 0, 5148, 5132, 1, 0, 0, 0, 5149, 439, 1, 0, 0, 0, 5150, 5151, 5, 138, 0, 0, 5151, 5152, 5, 278, 0, 0, 5152, 5153, 3, 418, 209, 0, 5153, 5154, 5, 333, 0, 0, 5154, 5155, 3, 442, 221, 0, 5155, 441, 1, 0, 0, 0, 5156, 5157, 5, 2, 0, 0, 5157, 5162, 3, 444, 222, 0, 5158, 5159, 5, 6, 0, 0, 5159, 5161, 3, 444, 222, 0, 5160, 5158, 1, 0, 0, 0, 5161, 5164, 1, 0, 0, 0, 5162, 5160, 1, 0, 0, 0, 5162, 5163, 1, 0, 0, 0, 5163, 5165, 1, 0, 0, 0, 5164, 5162, 1, 0, 0, 0, 5165, 5166, 5, 3, 0, 0, 5166, 443, 1, 0, 0, 0, 5167, 5168, 3, 826, 413, 0, 5168, 5175, 5, 10, 0, 0, 5169, 5176, 5, 407, 0, 0, 5170, 5176, 3, 390, 195, 0, 5171, 5176, 3, 836, 418, 0, 5172, 5176, 3, 728, 364, 0, 5173, 5176, 3, 204, 102, 0, 5174, 5176, 3, 810, 405, 0, 5175, 5169, 1, 0, 0, 0, 5175, 5170, 1, 0, 0, 0, 5175, 5171, 1, 0, 0, 0, 5175, 5172, 1, 0, 0, 0, 5175, 5173, 1, 0, 0, 0, 5175, 5174, 1, 0, 0, 0, 5176, 445, 1, 0, 0, 0, 5177, 5178, 5, 138, 0, 0, 5178, 5179, 5, 360, 0, 0, 5179, 5180, 3, 318, 159, 0, 5180, 5181, 5, 333, 0, 0, 5181, 5182, 3, 442, 221, 0, 5182, 447, 1, 0, 0, 0, 5183, 5184, 5, 138, 0, 0, 5184, 5185, 5, 278, 0, 0, 5185, 5186, 7, 32, 0, 0, 5186, 5187, 3, 318, 159, 0, 5187, 5188, 3, 172, 86, 0, 5188, 5189, 5, 282, 0, 0, 5189, 5190, 5, 94, 0, 0, 5190, 5191, 3, 816, 408, 0, 5191, 5258, 1, 0, 0, 0, 5192, 5219, 5, 138, 0, 0, 5193, 5194, 5, 136, 0, 0, 5194, 5220, 3, 396, 198, 0, 5195, 5196, 5, 175, 0, 0, 5196, 5220, 3, 790, 395, 0, 5197, 5198, 5, 211, 0, 0, 5198, 5220, 3, 384, 192, 0, 5199, 5201, 5, 295, 0, 0, 5200, 5199, 1, 0, 0, 0, 5200, 5201, 1, 0, 0, 0, 5201, 5202, 1, 0, 0, 0, 5202, 5203, 5, 247, 0, 0, 5203, 5220, 3, 820, 410, 0, 5204, 5205, 5, 248, 0, 0, 5205, 5206, 5, 274, 0, 0, 5206, 5220, 3, 204, 102, 0, 5207, 5208, 5, 248, 0, 0, 5208, 5209, 5, 274, 0, 0, 5209, 5220, 3, 204, 102, 0, 5210, 5211, 5, 278, 0, 0, 5211, 5220, 3, 418, 209, 0, 5212, 5213, 5, 296, 0, 0, 5213, 5220, 3, 380, 190, 0, 5214, 5215, 5, 442, 0, 0, 5215, 5220, 3, 376, 188, 0, 5216, 5217, 5, 323, 0, 0, 5217, 5220, 3, 792, 396, 0, 5218, 5220, 3, 178, 89, 0, 5219, 5193, 1, 0, 0, 0, 5219, 5195, 1, 0, 0, 0, 5219, 5197, 1, 0, 0, 0, 5219, 5200, 1, 0, 0, 0, 5219, 5204, 1, 0, 0, 0, 5219, 5207, 1, 0, 0, 0, 5219, 5210, 1, 0, 0, 0, 5219, 5212, 1, 0, 0, 0, 5219, 5214, 1, 0, 0, 0, 5219, 5216, 1, 0, 0, 0, 5219, 5218, 1, 0, 0, 0, 5220, 5221, 1, 0, 0, 0, 5221, 5222, 5, 282, 0, 0, 5222, 5223, 5, 94, 0, 0, 5223, 5224, 3, 816, 408, 0, 5224, 5258, 1, 0, 0, 0, 5225, 5234, 5, 138, 0, 0, 5226, 5227, 5, 355, 0, 0, 5227, 5228, 5, 325, 0, 0, 5228, 5235, 7, 64, 0, 0, 5229, 5235, 5, 108, 0, 0, 5230, 5235, 5, 168, 0, 0, 5231, 5235, 5, 189, 0, 0, 5232, 5235, 5, 360, 0, 0, 5233, 5235, 5, 342, 0, 0, 5234, 5226, 1, 0, 0, 0, 5234, 5229, 1, 0, 0, 0, 5234, 5230, 1, 0, 0, 0, 5234, 5231, 1, 0, 0, 0, 5234, 5232, 1, 0, 0, 0, 5234, 5233, 1, 0, 0, 0, 5235, 5236, 1, 0, 0, 0, 5236, 5237, 3, 318, 159, 0, 5237, 5238, 5, 282, 0, 0, 5238, 5239, 5, 94, 0, 0, 5239, 5240, 3, 816, 408, 0, 5240, 5258, 1, 0, 0, 0, 5241, 5250, 5, 138, 0, 0, 5242, 5251, 5, 331, 0, 0, 5243, 5244, 5, 63, 0, 0, 5244, 5245, 5, 174, 0, 0, 5245, 5251, 5, 381, 0, 0, 5246, 5247, 5, 198, 0, 0, 5247, 5251, 5, 357, 0, 0, 5248, 5251, 5, 452, 0, 0, 5249, 5251, 5, 451, 0, 0, 5250, 5242, 1, 0, 0, 0, 5250, 5243, 1, 0, 0, 0, 5250, 5246, 1, 0, 0, 0, 5250, 5248, 1, 0, 0, 0, 5250, 5249, 1, 0, 0, 0, 5251, 5252, 1, 0, 0, 0, 5252, 5253, 3, 820, 410, 0, 5253, 5254, 5, 282, 0, 0, 5254, 5255, 5, 94, 0, 0, 5255, 5256, 3, 816, 408, 0, 5256, 5258, 1, 0, 0, 0, 5257, 5183, 1, 0, 0, 0, 5257, 5192, 1, 0, 0, 0, 5257, 5225, 1, 0, 0, 0, 5257, 5241, 1, 0, 0, 0, 5258, 449, 1, 0, 0, 0, 5259, 5260, 5, 46, 0, 0, 5260, 5261, 5, 452, 0, 0, 5261, 5268, 3, 820, 410, 0, 5262, 5263, 5, 62, 0, 0, 5263, 5264, 5, 92, 0, 0, 5264, 5269, 3, 630, 315, 0, 5265, 5266, 5, 62, 0, 0, 5266, 5267, 5, 30, 0, 0, 5267, 5269, 5, 350, 0, 0, 5268, 5262, 1, 0, 0, 0, 5268, 5265, 1, 0, 0, 0, 5268, 5269, 1, 0, 0, 0, 5269, 5271, 1, 0, 0, 0, 5270, 5272, 3, 402, 201, 0, 5271, 5270, 1, 0, 0, 0, 5271, 5272, 1, 0, 0, 0, 5272, 451, 1, 0, 0, 0, 5273, 5274, 5, 138, 0, 0, 5274, 5275, 5, 452, 0, 0, 5275, 5293, 3, 820, 410, 0, 5276, 5277, 5, 282, 0, 0, 5277, 5278, 5, 94, 0, 0, 5278, 5294, 3, 816, 408, 0, 5279, 5280, 5, 333, 0, 0, 5280, 5294, 3, 286, 143, 0, 5281, 5282, 5, 309, 0, 0, 5282, 5283, 5, 94, 0, 0, 5283, 5294, 3, 820, 410, 0, 5284, 5285, 7, 35, 0, 0, 5285, 5290, 3, 628, 314, 0, 5286, 5287, 5, 6, 0, 0, 5287, 5289, 3, 628, 314, 0, 5288, 5286, 1, 0, 0, 0, 5289, 5292, 1, 0, 0, 0, 5290, 5288, 1, 0, 0, 0, 5290, 5291, 1, 0, 0, 0, 5291, 5294, 1, 0, 0, 0, 5292, 5290, 1, 0, 0, 0, 5293, 5276, 1, 0, 0, 0, 5293, 5279, 1, 0, 0, 0, 5293, 5281, 1, 0, 0, 0, 5293, 5284, 1, 0, 0, 0, 5294, 453, 1, 0, 0, 0, 5295, 5296, 5, 46, 0, 0, 5296, 5297, 5, 451, 0, 0, 5297, 5298, 3, 820, 410, 0, 5298, 5299, 5, 164, 0, 0, 5299, 5300, 3, 810, 405, 0, 5300, 5301, 5, 452, 0, 0, 5301, 5306, 3, 826, 413, 0, 5302, 5303, 5, 6, 0, 0, 5303, 5305, 3, 826, 413, 0, 5304, 5302, 1, 0, 0, 0, 5305, 5308, 1, 0, 0, 0, 5306, 5304, 1, 0, 0, 0, 5306, 5307, 1, 0, 0, 0, 5307, 5310, 1, 0, 0, 0, 5308, 5306, 1, 0, 0, 0, 5309, 5311, 3, 402, 201, 0, 5310, 5309, 1, 0, 0, 0, 5310, 5311, 1, 0, 0, 0, 5311, 455, 1, 0, 0, 0, 5312, 5313, 5, 138, 0, 0, 5313, 5314, 5, 451, 0, 0, 5314, 5315, 3, 820, 410, 0, 5315, 5316, 5, 333, 0, 0, 5316, 5317, 3, 286, 143, 0, 5317, 5369, 1, 0, 0, 0, 5318, 5319, 5, 138, 0, 0, 5319, 5320, 5, 451, 0, 0, 5320, 5321, 3, 820, 410, 0, 5321, 5322, 5, 164, 0, 0, 5322, 5323, 3, 810, 405, 0, 5323, 5369, 1, 0, 0, 0, 5324, 5325, 5, 138, 0, 0, 5325, 5326, 5, 451, 0, 0, 5326, 5327, 3, 820, 410, 0, 5327, 5328, 5, 305, 0, 0, 5328, 5330, 5, 452, 0, 0, 5329, 5331, 3, 402, 201, 0, 5330, 5329, 1, 0, 0, 0, 5330, 5331, 1, 0, 0, 0, 5331, 5369, 1, 0, 0, 0, 5332, 5333, 5, 138, 0, 0, 5333, 5334, 5, 451, 0, 0, 5334, 5335, 3, 820, 410, 0, 5335, 5336, 7, 35, 0, 0, 5336, 5337, 5, 452, 0, 0, 5337, 5342, 3, 826, 413, 0, 5338, 5339, 5, 6, 0, 0, 5339, 5341, 3, 826, 413, 0, 5340, 5338, 1, 0, 0, 0, 5341, 5344, 1, 0, 0, 0, 5342, 5340, 1, 0, 0, 0, 5342, 5343, 1, 0, 0, 0, 5343, 5346, 1, 0, 0, 0, 5344, 5342, 1, 0, 0, 0, 5345, 5347, 3, 402, 201, 0, 5346, 5345, 1, 0, 0, 0, 5346, 5347, 1, 0, 0, 0, 5347, 5369, 1, 0, 0, 0, 5348, 5349, 5, 138, 0, 0, 5349, 5350, 5, 451, 0, 0, 5350, 5351, 3, 820, 410, 0, 5351, 5352, 7, 65, 0, 0, 5352, 5369, 1, 0, 0, 0, 5353, 5354, 5, 138, 0, 0, 5354, 5355, 5, 451, 0, 0, 5355, 5356, 3, 820, 410, 0, 5356, 5357, 5, 465, 0, 0, 5357, 5358, 5, 2, 0, 0, 5358, 5359, 3, 292, 146, 0, 5359, 5360, 5, 3, 0, 0, 5360, 5369, 1, 0, 0, 0, 5361, 5362, 5, 138, 0, 0, 5362, 5363, 5, 451, 0, 0, 5363, 5364, 3, 820, 410, 0, 5364, 5365, 5, 282, 0, 0, 5365, 5366, 5, 94, 0, 0, 5366, 5367, 3, 816, 408, 0, 5367, 5369, 1, 0, 0, 0, 5368, 5312, 1, 0, 0, 0, 5368, 5318, 1, 0, 0, 0, 5368, 5324, 1, 0, 0, 0, 5368, 5332, 1, 0, 0, 0, 5368, 5348, 1, 0, 0, 0, 5368, 5353, 1, 0, 0, 0, 5368, 5361, 1, 0, 0, 0, 5369, 457, 1, 0, 0, 0, 5370, 5372, 5, 46, 0, 0, 5371, 5373, 3, 368, 184, 0, 5372, 5371, 1, 0, 0, 0, 5372, 5373, 1, 0, 0, 0, 5373, 5374, 1, 0, 0, 0, 5374, 5375, 5, 321, 0, 0, 5375, 5376, 3, 820, 410, 0, 5376, 5377, 5, 36, 0, 0, 5377, 5378, 5, 80, 0, 0, 5378, 5379, 7, 66, 0, 0, 5379, 5380, 5, 94, 0, 0, 5380, 5382, 3, 782, 391, 0, 5381, 5383, 3, 640, 320, 0, 5382, 5381, 1, 0, 0, 0, 5382, 5383, 1, 0, 0, 0, 5383, 5384, 1, 0, 0, 0, 5384, 5386, 5, 57, 0, 0, 5385, 5387, 7, 67, 0, 0, 5386, 5385, 1, 0, 0, 0, 5386, 5387, 1, 0, 0, 0, 5387, 5404, 1, 0, 0, 0, 5388, 5405, 5, 270, 0, 0, 5389, 5405, 3, 460, 230, 0, 5390, 5392, 5, 2, 0, 0, 5391, 5393, 3, 460, 230, 0, 5392, 5391, 1, 0, 0, 0, 5392, 5393, 1, 0, 0, 0, 5393, 5400, 1, 0, 0, 0, 5394, 5396, 5, 7, 0, 0, 5395, 5397, 3, 460, 230, 0, 5396, 5395, 1, 0, 0, 0, 5396, 5397, 1, 0, 0, 0, 5397, 5399, 1, 0, 0, 0, 5398, 5394, 1, 0, 0, 0, 5399, 5402, 1, 0, 0, 0, 5400, 5398, 1, 0, 0, 0, 5400, 5401, 1, 0, 0, 0, 5401, 5403, 1, 0, 0, 0, 5402, 5400, 1, 0, 0, 0, 5403, 5405, 5, 3, 0, 0, 5404, 5388, 1, 0, 0, 0, 5404, 5389, 1, 0, 0, 0, 5404, 5390, 1, 0, 0, 0, 5405, 459, 1, 0, 0, 0, 5406, 5412, 3, 562, 281, 0, 5407, 5412, 3, 540, 270, 0, 5408, 5412, 3, 554, 277, 0, 5409, 5412, 3, 550, 275, 0, 5410, 5412, 3, 462, 231, 0, 5411, 5406, 1, 0, 0, 0, 5411, 5407, 1, 0, 0, 0, 5411, 5408, 1, 0, 0, 0, 5411, 5409, 1, 0, 0, 0, 5411, 5410, 1, 0, 0, 0, 5412, 461, 1, 0, 0, 0, 5413, 5414, 5, 271, 0, 0, 5414, 5416, 3, 820, 410, 0, 5415, 5417, 3, 464, 232, 0, 5416, 5415, 1, 0, 0, 0, 5416, 5417, 1, 0, 0, 0, 5417, 463, 1, 0, 0, 0, 5418, 5419, 5, 6, 0, 0, 5419, 5420, 3, 810, 405, 0, 5420, 465, 1, 0, 0, 0, 5421, 5422, 5, 252, 0, 0, 5422, 5423, 3, 820, 410, 0, 5423, 467, 1, 0, 0, 0, 5424, 5427, 5, 366, 0, 0, 5425, 5428, 3, 820, 410, 0, 5426, 5428, 5, 9, 0, 0, 5427, 5425, 1, 0, 0, 0, 5427, 5426, 1, 0, 0, 0, 5428, 469, 1, 0, 0, 0, 5429, 5431, 5, 146, 0, 0, 5430, 5432, 3, 472, 236, 0, 5431, 5430, 1, 0, 0, 0, 5431, 5432, 1, 0, 0, 0, 5432, 5434, 1, 0, 0, 0, 5433, 5435, 3, 476, 238, 0, 5434, 5433, 1, 0, 0, 0, 5434, 5435, 1, 0, 0, 0, 5435, 5475, 1, 0, 0, 0, 5436, 5437, 5, 340, 0, 0, 5437, 5439, 5, 356, 0, 0, 5438, 5440, 3, 476, 238, 0, 5439, 5438, 1, 0, 0, 0, 5439, 5440, 1, 0, 0, 0, 5440, 5475, 1, 0, 0, 0, 5441, 5442, 5, 322, 0, 0, 5442, 5475, 3, 820, 410, 0, 5443, 5445, 5, 308, 0, 0, 5444, 5446, 5, 322, 0, 0, 5445, 5444, 1, 0, 0, 0, 5445, 5446, 1, 0, 0, 0, 5446, 5447, 1, 0, 0, 0, 5447, 5475, 3, 820, 410, 0, 5448, 5449, 5, 290, 0, 0, 5449, 5450, 5, 356, 0, 0, 5450, 5475, 3, 810, 405, 0, 5451, 5452, 7, 68, 0, 0, 5452, 5453, 5, 291, 0, 0, 5453, 5475, 3, 810, 405, 0, 5454, 5456, 7, 69, 0, 0, 5455, 5457, 3, 472, 236, 0, 5456, 5455, 1, 0, 0, 0, 5456, 5457, 1, 0, 0, 0, 5457, 5463, 1, 0, 0, 0, 5458, 5460, 5, 33, 0, 0, 5459, 5461, 5, 269, 0, 0, 5460, 5459, 1, 0, 0, 0, 5460, 5461, 1, 0, 0, 0, 5461, 5462, 1, 0, 0, 0, 5462, 5464, 5, 153, 0, 0, 5463, 5458, 1, 0, 0, 0, 5463, 5464, 1, 0, 0, 0, 5464, 5475, 1, 0, 0, 0, 5465, 5467, 5, 319, 0, 0, 5466, 5468, 3, 472, 236, 0, 5467, 5466, 1, 0, 0, 0, 5467, 5468, 1, 0, 0, 0, 5468, 5469, 1, 0, 0, 0, 5469, 5471, 5, 94, 0, 0, 5470, 5472, 5, 322, 0, 0, 5471, 5470, 1, 0, 0, 0, 5471, 5472, 1, 0, 0, 0, 5472, 5473, 1, 0, 0, 0, 5473, 5475, 3, 820, 410, 0, 5474, 5429, 1, 0, 0, 0, 5474, 5436, 1, 0, 0, 0, 5474, 5441, 1, 0, 0, 0, 5474, 5443, 1, 0, 0, 0, 5474, 5448, 1, 0, 0, 0, 5474, 5451, 1, 0, 0, 0, 5474, 5454, 1, 0, 0, 0, 5474, 5465, 1, 0, 0, 0, 5475, 471, 1, 0, 0, 0, 5476, 5477, 7, 70, 0, 0, 5477, 473, 1, 0, 0, 0, 5478, 5479, 5, 244, 0, 0, 5479, 5480, 5, 251, 0, 0, 5480, 5488, 3, 50, 25, 0, 5481, 5482, 5, 300, 0, 0, 5482, 5488, 7, 71, 0, 0, 5483, 5485, 5, 77, 0, 0, 5484, 5483, 1, 0, 0, 0, 5484, 5485, 1, 0, 0, 0, 5485, 5486, 1, 0, 0, 0, 5486, 5488, 5, 54, 0, 0, 5487, 5478, 1, 0, 0, 0, 5487, 5481, 1, 0, 0, 0, 5487, 5484, 1, 0, 0, 0, 5488, 475, 1, 0, 0, 0, 5489, 5496, 3, 474, 237, 0, 5490, 5492, 5, 6, 0, 0, 5491, 5490, 1, 0, 0, 0, 5491, 5492, 1, 0, 0, 0, 5492, 5493, 1, 0, 0, 0, 5493, 5495, 3, 474, 237, 0, 5494, 5491, 1, 0, 0, 0, 5495, 5498, 1, 0, 0, 0, 5496, 5494, 1, 0, 0, 0, 5496, 5497, 1, 0, 0, 0, 5497, 477, 1, 0, 0, 0, 5498, 5496, 1, 0, 0, 0, 5499, 5502, 5, 46, 0, 0, 5500, 5501, 5, 82, 0, 0, 5501, 5503, 5, 311, 0, 0, 5502, 5500, 1, 0, 0, 0, 5502, 5503, 1, 0, 0, 0, 5503, 5505, 1, 0, 0, 0, 5504, 5506, 3, 124, 62, 0, 5505, 5504, 1, 0, 0, 0, 5505, 5506, 1, 0, 0, 0, 5506, 5522, 1, 0, 0, 0, 5507, 5508, 5, 376, 0, 0, 5508, 5510, 3, 778, 389, 0, 5509, 5511, 3, 148, 74, 0, 5510, 5509, 1, 0, 0, 0, 5510, 5511, 1, 0, 0, 0, 5511, 5513, 1, 0, 0, 0, 5512, 5514, 3, 102, 51, 0, 5513, 5512, 1, 0, 0, 0, 5513, 5514, 1, 0, 0, 0, 5514, 5523, 1, 0, 0, 0, 5515, 5516, 5, 303, 0, 0, 5516, 5517, 5, 376, 0, 0, 5517, 5518, 3, 778, 389, 0, 5518, 5520, 3, 146, 73, 0, 5519, 5521, 3, 102, 51, 0, 5520, 5519, 1, 0, 0, 0, 5520, 5521, 1, 0, 0, 0, 5521, 5523, 1, 0, 0, 0, 5522, 5507, 1, 0, 0, 0, 5522, 5515, 1, 0, 0, 0, 5523, 5524, 1, 0, 0, 0, 5524, 5525, 5, 36, 0, 0, 5525, 5532, 3, 562, 281, 0, 5526, 5528, 5, 105, 0, 0, 5527, 5529, 7, 72, 0, 0, 5528, 5527, 1, 0, 0, 0, 5528, 5529, 1, 0, 0, 0, 5529, 5530, 1, 0, 0, 0, 5530, 5531, 5, 42, 0, 0, 5531, 5533, 5, 279, 0, 0, 5532, 5526, 1, 0, 0, 0, 5532, 5533, 1, 0, 0, 0, 5533, 479, 1, 0, 0, 0, 5534, 5535, 5, 253, 0, 0, 5535, 5536, 3, 810, 405, 0, 5536, 481, 1, 0, 0, 0, 5537, 5538, 5, 46, 0, 0, 5538, 5539, 5, 175, 0, 0, 5539, 5541, 3, 788, 394, 0, 5540, 5542, 5, 105, 0, 0, 5541, 5540, 1, 0, 0, 0, 5541, 5542, 1, 0, 0, 0, 5542, 5548, 1, 0, 0, 0, 5543, 5545, 3, 484, 242, 0, 5544, 5543, 1, 0, 0, 0, 5545, 5546, 1, 0, 0, 0, 5546, 5544, 1, 0, 0, 0, 5546, 5547, 1, 0, 0, 0, 5547, 5549, 1, 0, 0, 0, 5548, 5544, 1, 0, 0, 0, 5548, 5549, 1, 0, 0, 0, 5549, 483, 1, 0, 0, 0, 5550, 5551, 5, 164, 0, 0, 5551, 5559, 5, 74, 0, 0, 5552, 5559, 5, 194, 0, 0, 5553, 5559, 5, 255, 0, 0, 5554, 5559, 5, 282, 0, 0, 5555, 5559, 5, 351, 0, 0, 5556, 5559, 5, 353, 0, 0, 5557, 5559, 3, 828, 414, 0, 5558, 5550, 1, 0, 0, 0, 5558, 5552, 1, 0, 0, 0, 5558, 5553, 1, 0, 0, 0, 5558, 5554, 1, 0, 0, 0, 5558, 5555, 1, 0, 0, 0, 5558, 5556, 1, 0, 0, 0, 5558, 5557, 1, 0, 0, 0, 5559, 5561, 1, 0, 0, 0, 5560, 5562, 5, 10, 0, 0, 5561, 5560, 1, 0, 0, 0, 5561, 5562, 1, 0, 0, 0, 5562, 5566, 1, 0, 0, 0, 5563, 5567, 3, 814, 407, 0, 5564, 5567, 3, 54, 27, 0, 5565, 5567, 5, 53, 0, 0, 5566, 5563, 1, 0, 0, 0, 5566, 5564, 1, 0, 0, 0, 5566, 5565, 1, 0, 0, 0, 5567, 485, 1, 0, 0, 0, 5568, 5569, 5, 138, 0, 0, 5569, 5570, 5, 175, 0, 0, 5570, 5586, 3, 790, 395, 0, 5571, 5572, 5, 333, 0, 0, 5572, 5573, 5, 351, 0, 0, 5573, 5575, 3, 770, 385, 0, 5574, 5571, 1, 0, 0, 0, 5574, 5575, 1, 0, 0, 0, 5575, 5587, 1, 0, 0, 0, 5576, 5578, 5, 105, 0, 0, 5577, 5576, 1, 0, 0, 0, 5577, 5578, 1, 0, 0, 0, 5578, 5580, 1, 0, 0, 0, 5579, 5581, 3, 484, 242, 0, 5580, 5579, 1, 0, 0, 0, 5581, 5582, 1, 0, 0, 0, 5582, 5580, 1, 0, 0, 0, 5582, 5583, 1, 0, 0, 0, 5583, 5585, 1, 0, 0, 0, 5584, 5577, 1, 0, 0, 0, 5584, 5585, 1, 0, 0, 0, 5585, 5587, 1, 0, 0, 0, 5586, 5574, 1, 0, 0, 0, 5586, 5584, 1, 0, 0, 0, 5587, 487, 1, 0, 0, 0, 5588, 5589, 5, 138, 0, 0, 5589, 5590, 5, 175, 0, 0, 5590, 5592, 3, 790, 395, 0, 5591, 5593, 3, 64, 32, 0, 5592, 5591, 1, 0, 0, 0, 5592, 5593, 1, 0, 0, 0, 5593, 489, 1, 0, 0, 0, 5594, 5595, 5, 138, 0, 0, 5595, 5596, 5, 108, 0, 0, 5596, 5597, 3, 318, 159, 0, 5597, 5598, 5, 305, 0, 0, 5598, 5599, 5, 375, 0, 0, 5599, 491, 1, 0, 0, 0, 5600, 5601, 5, 138, 0, 0, 5601, 5602, 5, 349, 0, 0, 5602, 5603, 7, 16, 0, 0, 5603, 5604, 3, 40, 20, 0, 5604, 493, 1, 0, 0, 0, 5605, 5606, 5, 46, 0, 0, 5606, 5607, 5, 189, 0, 0, 5607, 5609, 3, 318, 159, 0, 5608, 5610, 5, 36, 0, 0, 5609, 5608, 1, 0, 0, 0, 5609, 5610, 1, 0, 0, 0, 5610, 5611, 1, 0, 0, 0, 5611, 5615, 3, 654, 327, 0, 5612, 5614, 3, 136, 68, 0, 5613, 5612, 1, 0, 0, 0, 5614, 5617, 1, 0, 0, 0, 5615, 5613, 1, 0, 0, 0, 5615, 5616, 1, 0, 0, 0, 5616, 495, 1, 0, 0, 0, 5617, 5615, 1, 0, 0, 0, 5618, 5619, 5, 138, 0, 0, 5619, 5620, 5, 189, 0, 0, 5620, 5643, 3, 318, 159, 0, 5621, 5644, 3, 94, 47, 0, 5622, 5623, 7, 15, 0, 0, 5623, 5624, 5, 77, 0, 0, 5624, 5644, 5, 78, 0, 0, 5625, 5628, 5, 133, 0, 0, 5626, 5627, 5, 45, 0, 0, 5627, 5629, 3, 820, 410, 0, 5628, 5626, 1, 0, 0, 0, 5628, 5629, 1, 0, 0, 0, 5629, 5630, 1, 0, 0, 0, 5630, 5644, 3, 144, 72, 0, 5631, 5632, 5, 191, 0, 0, 5632, 5634, 5, 45, 0, 0, 5633, 5635, 3, 424, 212, 0, 5634, 5633, 1, 0, 0, 0, 5634, 5635, 1, 0, 0, 0, 5635, 5636, 1, 0, 0, 0, 5636, 5638, 3, 820, 410, 0, 5637, 5639, 3, 96, 48, 0, 5638, 5637, 1, 0, 0, 0, 5638, 5639, 1, 0, 0, 0, 5639, 5644, 1, 0, 0, 0, 5640, 5641, 5, 372, 0, 0, 5641, 5642, 5, 45, 0, 0, 5642, 5644, 3, 820, 410, 0, 5643, 5621, 1, 0, 0, 0, 5643, 5622, 1, 0, 0, 0, 5643, 5625, 1, 0, 0, 0, 5643, 5631, 1, 0, 0, 0, 5643, 5640, 1, 0, 0, 0, 5644, 497, 1, 0, 0, 0, 5645, 5646, 5, 138, 0, 0, 5646, 5647, 5, 355, 0, 0, 5647, 5648, 5, 325, 0, 0, 5648, 5649, 5, 185, 0, 0, 5649, 5650, 3, 318, 159, 0, 5650, 5651, 3, 286, 143, 0, 5651, 499, 1, 0, 0, 0, 5652, 5653, 5, 138, 0, 0, 5653, 5654, 5, 355, 0, 0, 5654, 5655, 5, 325, 0, 0, 5655, 5656, 5, 163, 0, 0, 5656, 5657, 3, 318, 159, 0, 5657, 5658, 7, 73, 0, 0, 5658, 5659, 5, 257, 0, 0, 5659, 5660, 5, 62, 0, 0, 5660, 5661, 3, 786, 393, 0, 5661, 5662, 5, 105, 0, 0, 5662, 5663, 3, 316, 158, 0, 5663, 5694, 1, 0, 0, 0, 5664, 5665, 5, 138, 0, 0, 5665, 5666, 5, 355, 0, 0, 5666, 5667, 5, 325, 0, 0, 5667, 5668, 5, 163, 0, 0, 5668, 5669, 3, 318, 159, 0, 5669, 5670, 5, 138, 0, 0, 5670, 5673, 5, 257, 0, 0, 5671, 5672, 5, 62, 0, 0, 5672, 5674, 3, 786, 393, 0, 5673, 5671, 1, 0, 0, 0, 5673, 5674, 1, 0, 0, 0, 5674, 5675, 1, 0, 0, 0, 5675, 5676, 5, 311, 0, 0, 5676, 5677, 3, 318, 159, 0, 5677, 5678, 5, 105, 0, 0, 5678, 5679, 3, 318, 159, 0, 5679, 5694, 1, 0, 0, 0, 5680, 5681, 5, 138, 0, 0, 5681, 5682, 5, 355, 0, 0, 5682, 5683, 5, 325, 0, 0, 5683, 5684, 5, 163, 0, 0, 5684, 5685, 3, 318, 159, 0, 5685, 5686, 5, 191, 0, 0, 5686, 5688, 5, 257, 0, 0, 5687, 5689, 3, 424, 212, 0, 5688, 5687, 1, 0, 0, 0, 5688, 5689, 1, 0, 0, 0, 5689, 5690, 1, 0, 0, 0, 5690, 5691, 5, 62, 0, 0, 5691, 5692, 3, 786, 393, 0, 5692, 5694, 1, 0, 0, 0, 5693, 5652, 1, 0, 0, 0, 5693, 5664, 1, 0, 0, 0, 5693, 5680, 1, 0, 0, 0, 5694, 501, 1, 0, 0, 0, 5695, 5697, 5, 46, 0, 0, 5696, 5698, 5, 53, 0, 0, 5697, 5696, 1, 0, 0, 0, 5697, 5698, 1, 0, 0, 0, 5698, 5699, 1, 0, 0, 0, 5699, 5700, 5, 168, 0, 0, 5700, 5701, 3, 318, 159, 0, 5701, 5702, 5, 62, 0, 0, 5702, 5703, 3, 810, 405, 0, 5703, 5704, 5, 94, 0, 0, 5704, 5705, 3, 810, 405, 0, 5705, 5706, 5, 64, 0, 0, 5706, 5707, 3, 318, 159, 0, 5707, 503, 1, 0, 0, 0, 5708, 5710, 5, 158, 0, 0, 5709, 5711, 3, 516, 258, 0, 5710, 5709, 1, 0, 0, 0, 5710, 5711, 1, 0, 0, 0, 5711, 5716, 1, 0, 0, 0, 5712, 5714, 3, 776, 388, 0, 5713, 5715, 3, 172, 86, 0, 5714, 5713, 1, 0, 0, 0, 5714, 5715, 1, 0, 0, 0, 5715, 5717, 1, 0, 0, 0, 5716, 5712, 1, 0, 0, 0, 5716, 5717, 1, 0, 0, 0, 5717, 5734, 1, 0, 0, 0, 5718, 5719, 5, 158, 0, 0, 5719, 5720, 5, 2, 0, 0, 5720, 5725, 3, 516, 258, 0, 5721, 5722, 5, 6, 0, 0, 5722, 5724, 3, 516, 258, 0, 5723, 5721, 1, 0, 0, 0, 5724, 5727, 1, 0, 0, 0, 5725, 5723, 1, 0, 0, 0, 5725, 5726, 1, 0, 0, 0, 5726, 5728, 1, 0, 0, 0, 5727, 5725, 1, 0, 0, 0, 5728, 5729, 5, 3, 0, 0, 5729, 5731, 3, 776, 388, 0, 5730, 5732, 3, 172, 86, 0, 5731, 5730, 1, 0, 0, 0, 5731, 5732, 1, 0, 0, 0, 5732, 5734, 1, 0, 0, 0, 5733, 5708, 1, 0, 0, 0, 5733, 5718, 1, 0, 0, 0, 5734, 505, 1, 0, 0, 0, 5735, 5751, 5, 370, 0, 0, 5736, 5738, 5, 113, 0, 0, 5737, 5736, 1, 0, 0, 0, 5737, 5738, 1, 0, 0, 0, 5738, 5740, 1, 0, 0, 0, 5739, 5741, 5, 112, 0, 0, 5740, 5739, 1, 0, 0, 0, 5740, 5741, 1, 0, 0, 0, 5741, 5743, 1, 0, 0, 0, 5742, 5744, 3, 516, 258, 0, 5743, 5742, 1, 0, 0, 0, 5743, 5744, 1, 0, 0, 0, 5744, 5746, 1, 0, 0, 0, 5745, 5747, 3, 510, 255, 0, 5746, 5745, 1, 0, 0, 0, 5746, 5747, 1, 0, 0, 0, 5747, 5752, 1, 0, 0, 0, 5748, 5750, 3, 526, 263, 0, 5749, 5748, 1, 0, 0, 0, 5749, 5750, 1, 0, 0, 0, 5750, 5752, 1, 0, 0, 0, 5751, 5737, 1, 0, 0, 0, 5751, 5749, 1, 0, 0, 0, 5752, 5754, 1, 0, 0, 0, 5753, 5755, 3, 520, 260, 0, 5754, 5753, 1, 0, 0, 0, 5754, 5755, 1, 0, 0, 0, 5755, 507, 1, 0, 0, 0, 5756, 5771, 3, 510, 255, 0, 5757, 5759, 3, 516, 258, 0, 5758, 5757, 1, 0, 0, 0, 5758, 5759, 1, 0, 0, 0, 5759, 5772, 1, 0, 0, 0, 5760, 5761, 5, 2, 0, 0, 5761, 5766, 3, 514, 257, 0, 5762, 5763, 5, 6, 0, 0, 5763, 5765, 3, 514, 257, 0, 5764, 5762, 1, 0, 0, 0, 5765, 5768, 1, 0, 0, 0, 5766, 5764, 1, 0, 0, 0, 5766, 5767, 1, 0, 0, 0, 5767, 5769, 1, 0, 0, 0, 5768, 5766, 1, 0, 0, 0, 5769, 5770, 5, 3, 0, 0, 5770, 5772, 1, 0, 0, 0, 5771, 5758, 1, 0, 0, 0, 5771, 5760, 1, 0, 0, 0, 5772, 5774, 1, 0, 0, 0, 5773, 5775, 3, 520, 260, 0, 5774, 5773, 1, 0, 0, 0, 5774, 5775, 1, 0, 0, 0, 5775, 509, 1, 0, 0, 0, 5776, 5777, 7, 74, 0, 0, 5777, 511, 1, 0, 0, 0, 5778, 5781, 3, 824, 412, 0, 5779, 5781, 3, 510, 255, 0, 5780, 5778, 1, 0, 0, 0, 5780, 5779, 1, 0, 0, 0, 5781, 5784, 1, 0, 0, 0, 5782, 5785, 3, 54, 27, 0, 5783, 5785, 3, 204, 102, 0, 5784, 5782, 1, 0, 0, 0, 5784, 5783, 1, 0, 0, 0, 5784, 5785, 1, 0, 0, 0, 5785, 513, 1, 0, 0, 0, 5786, 5788, 7, 75, 0, 0, 5787, 5789, 7, 76, 0, 0, 5788, 5787, 1, 0, 0, 0, 5788, 5789, 1, 0, 0, 0, 5789, 5796, 1, 0, 0, 0, 5790, 5793, 5, 548, 0, 0, 5791, 5794, 3, 204, 102, 0, 5792, 5794, 3, 810, 405, 0, 5793, 5791, 1, 0, 0, 0, 5793, 5792, 1, 0, 0, 0, 5794, 5796, 1, 0, 0, 0, 5795, 5786, 1, 0, 0, 0, 5795, 5790, 1, 0, 0, 0, 5796, 515, 1, 0, 0, 0, 5797, 5799, 5, 128, 0, 0, 5798, 5800, 7, 76, 0, 0, 5799, 5798, 1, 0, 0, 0, 5799, 5800, 1, 0, 0, 0, 5800, 517, 1, 0, 0, 0, 5801, 5803, 3, 776, 388, 0, 5802, 5804, 3, 146, 73, 0, 5803, 5802, 1, 0, 0, 0, 5803, 5804, 1, 0, 0, 0, 5804, 519, 1, 0, 0, 0, 5805, 5810, 3, 518, 259, 0, 5806, 5807, 5, 6, 0, 0, 5807, 5809, 3, 518, 259, 0, 5808, 5806, 1, 0, 0, 0, 5809, 5812, 1, 0, 0, 0, 5810, 5808, 1, 0, 0, 0, 5810, 5811, 1, 0, 0, 0, 5811, 521, 1, 0, 0, 0, 5812, 5810, 1, 0, 0, 0, 5813, 5824, 5, 203, 0, 0, 5814, 5825, 3, 526, 263, 0, 5815, 5817, 5, 128, 0, 0, 5816, 5815, 1, 0, 0, 0, 5816, 5817, 1, 0, 0, 0, 5817, 5825, 1, 0, 0, 0, 5818, 5820, 3, 510, 255, 0, 5819, 5821, 3, 516, 258, 0, 5820, 5819, 1, 0, 0, 0, 5820, 5821, 1, 0, 0, 0, 5821, 5823, 1, 0, 0, 0, 5822, 5818, 1, 0, 0, 0, 5822, 5823, 1, 0, 0, 0, 5823, 5825, 1, 0, 0, 0, 5824, 5814, 1, 0, 0, 0, 5824, 5816, 1, 0, 0, 0, 5824, 5822, 1, 0, 0, 0, 5825, 5826, 1, 0, 0, 0, 5826, 5827, 3, 524, 262, 0, 5827, 523, 1, 0, 0, 0, 5828, 5838, 3, 562, 281, 0, 5829, 5838, 3, 540, 270, 0, 5830, 5838, 3, 554, 277, 0, 5831, 5838, 3, 550, 275, 0, 5832, 5838, 3, 560, 280, 0, 5833, 5838, 3, 188, 94, 0, 5834, 5838, 3, 194, 97, 0, 5835, 5838, 3, 196, 98, 0, 5836, 5838, 3, 534, 267, 0, 5837, 5828, 1, 0, 0, 0, 5837, 5829, 1, 0, 0, 0, 5837, 5830, 1, 0, 0, 0, 5837, 5831, 1, 0, 0, 0, 5837, 5832, 1, 0, 0, 0, 5837, 5833, 1, 0, 0, 0, 5837, 5834, 1, 0, 0, 0, 5837, 5835, 1, 0, 0, 0, 5837, 5836, 1, 0, 0, 0, 5838, 525, 1, 0, 0, 0, 5839, 5840, 5, 2, 0, 0, 5840, 5845, 3, 512, 256, 0, 5841, 5842, 5, 6, 0, 0, 5842, 5844, 3, 512, 256, 0, 5843, 5841, 1, 0, 0, 0, 5844, 5847, 1, 0, 0, 0, 5845, 5843, 1, 0, 0, 0, 5845, 5846, 1, 0, 0, 0, 5846, 5848, 1, 0, 0, 0, 5847, 5845, 1, 0, 0, 0, 5848, 5849, 5, 3, 0, 0, 5849, 527, 1, 0, 0, 0, 5850, 5851, 5, 290, 0, 0, 5851, 5853, 3, 820, 410, 0, 5852, 5854, 3, 530, 265, 0, 5853, 5852, 1, 0, 0, 0, 5853, 5854, 1, 0, 0, 0, 5854, 5855, 1, 0, 0, 0, 5855, 5856, 5, 36, 0, 0, 5856, 5857, 3, 532, 266, 0, 5857, 529, 1, 0, 0, 0, 5858, 5859, 5, 2, 0, 0, 5859, 5864, 3, 654, 327, 0, 5860, 5861, 5, 6, 0, 0, 5861, 5863, 3, 654, 327, 0, 5862, 5860, 1, 0, 0, 0, 5863, 5866, 1, 0, 0, 0, 5864, 5862, 1, 0, 0, 0, 5864, 5865, 1, 0, 0, 0, 5865, 5867, 1, 0, 0, 0, 5866, 5864, 1, 0, 0, 0, 5867, 5868, 5, 3, 0, 0, 5868, 531, 1, 0, 0, 0, 5869, 5875, 3, 562, 281, 0, 5870, 5875, 3, 540, 270, 0, 5871, 5875, 3, 554, 277, 0, 5872, 5875, 3, 550, 275, 0, 5873, 5875, 3, 902, 451, 0, 5874, 5869, 1, 0, 0, 0, 5874, 5870, 1, 0, 0, 0, 5874, 5871, 1, 0, 0, 0, 5874, 5872, 1, 0, 0, 0, 5874, 5873, 1, 0, 0, 0, 5875, 533, 1, 0, 0, 0, 5876, 5877, 5, 202, 0, 0, 5877, 5879, 3, 820, 410, 0, 5878, 5880, 3, 536, 268, 0, 5879, 5878, 1, 0, 0, 0, 5879, 5880, 1, 0, 0, 0, 5880, 5900, 1, 0, 0, 0, 5881, 5883, 5, 46, 0, 0, 5882, 5884, 3, 124, 62, 0, 5883, 5882, 1, 0, 0, 0, 5883, 5884, 1, 0, 0, 0, 5884, 5885, 1, 0, 0, 0, 5885, 5887, 5, 92, 0, 0, 5886, 5888, 3, 296, 148, 0, 5887, 5886, 1, 0, 0, 0, 5887, 5888, 1, 0, 0, 0, 5888, 5889, 1, 0, 0, 0, 5889, 5890, 3, 190, 95, 0, 5890, 5891, 5, 36, 0, 0, 5891, 5892, 5, 202, 0, 0, 5892, 5894, 3, 820, 410, 0, 5893, 5895, 3, 536, 268, 0, 5894, 5893, 1, 0, 0, 0, 5894, 5895, 1, 0, 0, 0, 5895, 5897, 1, 0, 0, 0, 5896, 5898, 3, 192, 96, 0, 5897, 5896, 1, 0, 0, 0, 5897, 5898, 1, 0, 0, 0, 5898, 5900, 1, 0, 0, 0, 5899, 5876, 1, 0, 0, 0, 5899, 5881, 1, 0, 0, 0, 5900, 535, 1, 0, 0, 0, 5901, 5902, 5, 2, 0, 0, 5902, 5903, 3, 732, 366, 0, 5903, 5904, 5, 3, 0, 0, 5904, 537, 1, 0, 0, 0, 5905, 5907, 5, 177, 0, 0, 5906, 5908, 5, 290, 0, 0, 5907, 5906, 1, 0, 0, 0, 5907, 5908, 1, 0, 0, 0, 5908, 5911, 1, 0, 0, 0, 5909, 5912, 3, 820, 410, 0, 5910, 5912, 5, 30, 0, 0, 5911, 5909, 1, 0, 0, 0, 5911, 5910, 1, 0, 0, 0, 5912, 539, 1, 0, 0, 0, 5913, 5915, 3, 574, 287, 0, 5914, 5913, 1, 0, 0, 0, 5914, 5915, 1, 0, 0, 0, 5915, 5916, 1, 0, 0, 0, 5916, 5917, 5, 241, 0, 0, 5917, 5918, 5, 71, 0, 0, 5918, 5921, 3, 776, 388, 0, 5919, 5920, 5, 36, 0, 0, 5920, 5922, 3, 820, 410, 0, 5921, 5919, 1, 0, 0, 0, 5921, 5922, 1, 0, 0, 0, 5922, 5923, 1, 0, 0, 0, 5923, 5945, 3, 542, 271, 0, 5924, 5925, 5, 80, 0, 0, 5925, 5933, 5, 464, 0, 0, 5926, 5928, 3, 362, 181, 0, 5927, 5929, 3, 640, 320, 0, 5928, 5927, 1, 0, 0, 0, 5928, 5929, 1, 0, 0, 0, 5929, 5934, 1, 0, 0, 0, 5930, 5931, 5, 80, 0, 0, 5931, 5932, 5, 45, 0, 0, 5932, 5934, 3, 820, 410, 0, 5933, 5926, 1, 0, 0, 0, 5933, 5930, 1, 0, 0, 0, 5933, 5934, 1, 0, 0, 0, 5934, 5935, 1, 0, 0, 0, 5935, 5943, 5, 57, 0, 0, 5936, 5937, 5, 369, 0, 0, 5937, 5938, 5, 333, 0, 0, 5938, 5940, 3, 556, 278, 0, 5939, 5941, 3, 640, 320, 0, 5940, 5939, 1, 0, 0, 0, 5940, 5941, 1, 0, 0, 0, 5941, 5944, 1, 0, 0, 0, 5942, 5944, 5, 270, 0, 0, 5943, 5936, 1, 0, 0, 0, 5943, 5942, 1, 0, 0, 0, 5944, 5946, 1, 0, 0, 0, 5945, 5924, 1, 0, 0, 0, 5945, 5946, 1, 0, 0, 0, 5946, 5948, 1, 0, 0, 0, 5947, 5949, 3, 548, 274, 0, 5948, 5947, 1, 0, 0, 0, 5948, 5949, 1, 0, 0, 0, 5949, 541, 1, 0, 0, 0, 5950, 5951, 5, 2, 0, 0, 5951, 5952, 3, 544, 272, 0, 5952, 5953, 5, 3, 0, 0, 5953, 5955, 1, 0, 0, 0, 5954, 5950, 1, 0, 0, 0, 5954, 5955, 1, 0, 0, 0, 5955, 5959, 1, 0, 0, 0, 5956, 5957, 5, 463, 0, 0, 5957, 5958, 7, 77, 0, 0, 5958, 5960, 5, 450, 0, 0, 5959, 5956, 1, 0, 0, 0, 5959, 5960, 1, 0, 0, 0, 5960, 5963, 1, 0, 0, 0, 5961, 5964, 3, 912, 456, 0, 5962, 5964, 3, 562, 281, 0, 5963, 5961, 1, 0, 0, 0, 5963, 5962, 1, 0, 0, 0, 5964, 543, 1, 0, 0, 0, 5965, 5970, 3, 546, 273, 0, 5966, 5967, 5, 6, 0, 0, 5967, 5969, 3, 546, 273, 0, 5968, 5966, 1, 0, 0, 0, 5969, 5972, 1, 0, 0, 0, 5970, 5968, 1, 0, 0, 0, 5970, 5971, 1, 0, 0, 0, 5971, 545, 1, 0, 0, 0, 5972, 5970, 1, 0, 0, 0, 5973, 5974, 3, 802, 401, 0, 5974, 5975, 3, 756, 378, 0, 5975, 547, 1, 0, 0, 0, 5976, 5977, 5, 87, 0, 0, 5977, 5978, 3, 758, 379, 0, 5978, 549, 1, 0, 0, 0, 5979, 5981, 3, 574, 287, 0, 5980, 5979, 1, 0, 0, 0, 5980, 5981, 1, 0, 0, 0, 5981, 5982, 1, 0, 0, 0, 5982, 5983, 5, 182, 0, 0, 5983, 5984, 5, 64, 0, 0, 5984, 5987, 3, 632, 316, 0, 5985, 5986, 5, 100, 0, 0, 5986, 5988, 3, 614, 307, 0, 5987, 5985, 1, 0, 0, 0, 5987, 5988, 1, 0, 0, 0, 5988, 5990, 1, 0, 0, 0, 5989, 5991, 3, 642, 321, 0, 5990, 5989, 1, 0, 0, 0, 5990, 5991, 1, 0, 0, 0, 5991, 5993, 1, 0, 0, 0, 5992, 5994, 3, 548, 274, 0, 5993, 5992, 1, 0, 0, 0, 5993, 5994, 1, 0, 0, 0, 5994, 551, 1, 0, 0, 0, 5995, 5997, 5, 256, 0, 0, 5996, 5998, 5, 92, 0, 0, 5997, 5996, 1, 0, 0, 0, 5997, 5998, 1, 0, 0, 0, 5998, 5999, 1, 0, 0, 0, 5999, 6014, 3, 630, 315, 0, 6000, 6011, 5, 68, 0, 0, 6001, 6002, 7, 78, 0, 0, 6002, 6012, 7, 79, 0, 0, 6003, 6008, 5, 334, 0, 0, 6004, 6005, 5, 369, 0, 0, 6005, 6009, 5, 201, 0, 0, 6006, 6007, 5, 414, 0, 0, 6007, 6009, 5, 201, 0, 0, 6008, 6004, 1, 0, 0, 0, 6008, 6006, 1, 0, 0, 0, 6008, 6009, 1, 0, 0, 0, 6009, 6012, 1, 0, 0, 0, 6010, 6012, 5, 201, 0, 0, 6011, 6001, 1, 0, 0, 0, 6011, 6003, 1, 0, 0, 0, 6011, 6010, 1, 0, 0, 0, 6012, 6013, 1, 0, 0, 0, 6013, 6015, 5, 263, 0, 0, 6014, 6000, 1, 0, 0, 0, 6014, 6015, 1, 0, 0, 0, 6015, 6017, 1, 0, 0, 0, 6016, 6018, 5, 272, 0, 0, 6017, 6016, 1, 0, 0, 0, 6017, 6018, 1, 0, 0, 0, 6018, 553, 1, 0, 0, 0, 6019, 6021, 3, 574, 287, 0, 6020, 6019, 1, 0, 0, 0, 6020, 6021, 1, 0, 0, 0, 6021, 6022, 1, 0, 0, 0, 6022, 6023, 5, 369, 0, 0, 6023, 6024, 3, 632, 316, 0, 6024, 6025, 5, 333, 0, 0, 6025, 6027, 3, 556, 278, 0, 6026, 6028, 3, 612, 306, 0, 6027, 6026, 1, 0, 0, 0, 6027, 6028, 1, 0, 0, 0, 6028, 6030, 1, 0, 0, 0, 6029, 6031, 3, 642, 321, 0, 6030, 6029, 1, 0, 0, 0, 6030, 6031, 1, 0, 0, 0, 6031, 6033, 1, 0, 0, 0, 6032, 6034, 3, 548, 274, 0, 6033, 6032, 1, 0, 0, 0, 6033, 6034, 1, 0, 0, 0, 6034, 555, 1, 0, 0, 0, 6035, 6040, 3, 558, 279, 0, 6036, 6037, 5, 6, 0, 0, 6037, 6039, 3, 558, 279, 0, 6038, 6036, 1, 0, 0, 0, 6039, 6042, 1, 0, 0, 0, 6040, 6038, 1, 0, 0, 0, 6040, 6041, 1, 0, 0, 0, 6041, 557, 1, 0, 0, 0, 6042, 6040, 1, 0, 0, 0, 6043, 6044, 3, 546, 273, 0, 6044, 6045, 5, 10, 0, 0, 6045, 6046, 3, 676, 338, 0, 6046, 6062, 1, 0, 0, 0, 6047, 6048, 5, 2, 0, 0, 6048, 6049, 3, 544, 272, 0, 6049, 6050, 5, 3, 0, 0, 6050, 6059, 5, 10, 0, 0, 6051, 6053, 5, 414, 0, 0, 6052, 6051, 1, 0, 0, 0, 6052, 6053, 1, 0, 0, 0, 6053, 6054, 1, 0, 0, 0, 6054, 6060, 3, 676, 338, 0, 6055, 6056, 5, 2, 0, 0, 6056, 6057, 3, 568, 284, 0, 6057, 6058, 5, 3, 0, 0, 6058, 6060, 1, 0, 0, 0, 6059, 6052, 1, 0, 0, 0, 6059, 6055, 1, 0, 0, 0, 6060, 6062, 1, 0, 0, 0, 6061, 6043, 1, 0, 0, 0, 6061, 6047, 1, 0, 0, 0, 6062, 559, 1, 0, 0, 0, 6063, 6064, 5, 178, 0, 0, 6064, 6073, 3, 820, 410, 0, 6065, 6067, 5, 269, 0, 0, 6066, 6065, 1, 0, 0, 0, 6066, 6067, 1, 0, 0, 0, 6067, 6068, 1, 0, 0, 0, 6068, 6072, 5, 324, 0, 0, 6069, 6072, 5, 107, 0, 0, 6070, 6072, 5, 240, 0, 0, 6071, 6066, 1, 0, 0, 0, 6071, 6069, 1, 0, 0, 0, 6071, 6070, 1, 0, 0, 0, 6072, 6075, 1, 0, 0, 0, 6073, 6071, 1, 0, 0, 0, 6073, 6074, 1, 0, 0, 0, 6074, 6076, 1, 0, 0, 0, 6075, 6073, 1, 0, 0, 0, 6076, 6079, 5, 172, 0, 0, 6077, 6078, 7, 27, 0, 0, 6078, 6080, 5, 217, 0, 0, 6079, 6077, 1, 0, 0, 0, 6079, 6080, 1, 0, 0, 0, 6080, 6081, 1, 0, 0, 0, 6081, 6082, 5, 62, 0, 0, 6082, 6083, 3, 562, 281, 0, 6083, 561, 1, 0, 0, 0, 6084, 6087, 3, 566, 283, 0, 6085, 6087, 3, 564, 282, 0, 6086, 6084, 1, 0, 0, 0, 6086, 6085, 1, 0, 0, 0, 6087, 563, 1, 0, 0, 0, 6088, 6091, 5, 2, 0, 0, 6089, 6092, 3, 566, 283, 0, 6090, 6092, 3, 564, 282, 0, 6091, 6089, 1, 0, 0, 0, 6091, 6090, 1, 0, 0, 0, 6092, 6093, 1, 0, 0, 0, 6093, 6094, 5, 3, 0, 0, 6094, 565, 1, 0, 0, 0, 6095, 6097, 3, 574, 287, 0, 6096, 6095, 1, 0, 0, 0, 6096, 6097, 1, 0, 0, 0, 6097, 6098, 1, 0, 0, 0, 6098, 6100, 3, 568, 284, 0, 6099, 6101, 3, 588, 294, 0, 6100, 6099, 1, 0, 0, 0, 6100, 6101, 1, 0, 0, 0, 6101, 6110, 1, 0, 0, 0, 6102, 6104, 3, 608, 304, 0, 6103, 6105, 3, 592, 296, 0, 6104, 6103, 1, 0, 0, 0, 6104, 6105, 1, 0, 0, 0, 6105, 6111, 1, 0, 0, 0, 6106, 6108, 3, 592, 296, 0, 6107, 6109, 3, 608, 304, 0, 6108, 6107, 1, 0, 0, 0, 6108, 6109, 1, 0, 0, 0, 6109, 6111, 1, 0, 0, 0, 6110, 6102, 1, 0, 0, 0, 6110, 6106, 1, 0, 0, 0, 6110, 6111, 1, 0, 0, 0, 6111, 567, 1, 0, 0, 0, 6112, 6115, 3, 570, 285, 0, 6113, 6115, 3, 564, 282, 0, 6114, 6112, 1, 0, 0, 0, 6114, 6113, 1, 0, 0, 0, 6115, 569, 1, 0, 0, 0, 6116, 6126, 5, 88, 0, 0, 6117, 6119, 5, 30, 0, 0, 6118, 6117, 1, 0, 0, 0, 6118, 6119, 1, 0, 0, 0, 6119, 6121, 1, 0, 0, 0, 6120, 6122, 3, 582, 291, 0, 6121, 6120, 1, 0, 0, 0, 6121, 6122, 1, 0, 0, 0, 6122, 6127, 1, 0, 0, 0, 6123, 6125, 3, 586, 293, 0, 6124, 6123, 1, 0, 0, 0, 6124, 6125, 1, 0, 0, 0, 6125, 6127, 1, 0, 0, 0, 6126, 6118, 1, 0, 0, 0, 6126, 6124, 1, 0, 0, 0, 6127, 6128, 1, 0, 0, 0, 6128, 6139, 3, 932, 466, 0, 6129, 6139, 3, 610, 305, 0, 6130, 6131, 5, 92, 0, 0, 6131, 6139, 3, 626, 313, 0, 6132, 6133, 3, 564, 282, 0, 6133, 6136, 3, 572, 286, 0, 6134, 6137, 3, 570, 285, 0, 6135, 6137, 3, 564, 282, 0, 6136, 6134, 1, 0, 0, 0, 6136, 6135, 1, 0, 0, 0, 6137, 6139, 1, 0, 0, 0, 6138, 6116, 1, 0, 0, 0, 6138, 6129, 1, 0, 0, 0, 6138, 6130, 1, 0, 0, 0, 6138, 6132, 1, 0, 0, 0, 6139, 6147, 1, 0, 0, 0, 6140, 6143, 3, 572, 286, 0, 6141, 6144, 3, 570, 285, 0, 6142, 6144, 3, 564, 282, 0, 6143, 6141, 1, 0, 0, 0, 6143, 6142, 1, 0, 0, 0, 6144, 6146, 1, 0, 0, 0, 6145, 6140, 1, 0, 0, 0, 6146, 6149, 1, 0, 0, 0, 6147, 6145, 1, 0, 0, 0, 6147, 6148, 1, 0, 0, 0, 6148, 571, 1, 0, 0, 0, 6149, 6147, 1, 0, 0, 0, 6150, 6152, 7, 80, 0, 0, 6151, 6153, 7, 81, 0, 0, 6152, 6151, 1, 0, 0, 0, 6152, 6153, 1, 0, 0, 0, 6153, 573, 1, 0, 0, 0, 6154, 6156, 5, 105, 0, 0, 6155, 6157, 5, 303, 0, 0, 6156, 6155, 1, 0, 0, 0, 6156, 6157, 1, 0, 0, 0, 6157, 6158, 1, 0, 0, 0, 6158, 6163, 3, 576, 288, 0, 6159, 6160, 5, 6, 0, 0, 6160, 6162, 3, 576, 288, 0, 6161, 6159, 1, 0, 0, 0, 6162, 6165, 1, 0, 0, 0, 6163, 6161, 1, 0, 0, 0, 6163, 6164, 1, 0, 0, 0, 6164, 575, 1, 0, 0, 0, 6165, 6163, 1, 0, 0, 0, 6166, 6168, 3, 820, 410, 0, 6167, 6169, 3, 146, 73, 0, 6168, 6167, 1, 0, 0, 0, 6168, 6169, 1, 0, 0, 0, 6169, 6170, 1, 0, 0, 0, 6170, 6175, 5, 36, 0, 0, 6171, 6173, 5, 77, 0, 0, 6172, 6171, 1, 0, 0, 0, 6172, 6173, 1, 0, 0, 0, 6173, 6174, 1, 0, 0, 0, 6174, 6176, 5, 259, 0, 0, 6175, 6172, 1, 0, 0, 0, 6175, 6176, 1, 0, 0, 0, 6176, 6177, 1, 0, 0, 0, 6177, 6178, 5, 2, 0, 0, 6178, 6179, 3, 532, 266, 0, 6179, 6181, 5, 3, 0, 0, 6180, 6182, 3, 578, 289, 0, 6181, 6180, 1, 0, 0, 0, 6181, 6182, 1, 0, 0, 0, 6182, 6184, 1, 0, 0, 0, 6183, 6185, 3, 580, 290, 0, 6184, 6183, 1, 0, 0, 0, 6184, 6185, 1, 0, 0, 0, 6185, 577, 1, 0, 0, 0, 6186, 6187, 5, 325, 0, 0, 6187, 6188, 7, 82, 0, 0, 6188, 6189, 5, 207, 0, 0, 6189, 6190, 5, 147, 0, 0, 6190, 6191, 3, 150, 75, 0, 6191, 6192, 5, 333, 0, 0, 6192, 6193, 3, 802, 401, 0, 6193, 579, 1, 0, 0, 0, 6194, 6195, 5, 173, 0, 0, 6195, 6196, 3, 150, 75, 0, 6196, 6197, 5, 333, 0, 0, 6197, 6203, 3, 802, 401, 0, 6198, 6199, 5, 94, 0, 0, 6199, 6200, 3, 820, 410, 0, 6200, 6201, 5, 53, 0, 0, 6201, 6202, 3, 820, 410, 0, 6202, 6204, 1, 0, 0, 0, 6203, 6198, 1, 0, 0, 0, 6203, 6204, 1, 0, 0, 0, 6204, 6205, 1, 0, 0, 0, 6205, 6206, 5, 100, 0, 0, 6206, 6207, 3, 802, 401, 0, 6207, 581, 1, 0, 0, 0, 6208, 6214, 5, 71, 0, 0, 6209, 6211, 5, 346, 0, 0, 6210, 6209, 1, 0, 0, 0, 6210, 6211, 1, 0, 0, 0, 6211, 6212, 1, 0, 0, 0, 6212, 6215, 3, 584, 292, 0, 6213, 6215, 3, 732, 366, 0, 6214, 6210, 1, 0, 0, 0, 6214, 6213, 1, 0, 0, 0, 6215, 583, 1, 0, 0, 0, 6216, 6218, 7, 21, 0, 0, 6217, 6216, 1, 0, 0, 0, 6217, 6218, 1, 0, 0, 0, 6218, 6219, 1, 0, 0, 0, 6219, 6221, 7, 22, 0, 0, 6220, 6222, 5, 92, 0, 0, 6221, 6220, 1, 0, 0, 0, 6221, 6222, 1, 0, 0, 0, 6222, 6223, 1, 0, 0, 0, 6223, 6232, 3, 774, 387, 0, 6224, 6226, 5, 367, 0, 0, 6225, 6224, 1, 0, 0, 0, 6225, 6226, 1, 0, 0, 0, 6226, 6228, 1, 0, 0, 0, 6227, 6229, 5, 92, 0, 0, 6228, 6227, 1, 0, 0, 0, 6228, 6229, 1, 0, 0, 0, 6229, 6230, 1, 0, 0, 0, 6230, 6232, 3, 774, 387, 0, 6231, 6217, 1, 0, 0, 0, 6231, 6225, 1, 0, 0, 0, 6232, 585, 1, 0, 0, 0, 6233, 6236, 5, 56, 0, 0, 6234, 6235, 5, 80, 0, 0, 6235, 6237, 3, 536, 268, 0, 6236, 6234, 1, 0, 0, 0, 6236, 6237, 1, 0, 0, 0, 6237, 587, 1, 0, 0, 0, 6238, 6239, 5, 83, 0, 0, 6239, 6240, 5, 147, 0, 0, 6240, 6245, 3, 590, 295, 0, 6241, 6242, 5, 6, 0, 0, 6242, 6244, 3, 590, 295, 0, 6243, 6241, 1, 0, 0, 0, 6244, 6247, 1, 0, 0, 0, 6245, 6243, 1, 0, 0, 0, 6245, 6246, 1, 0, 0, 0, 6246, 589, 1, 0, 0, 0, 6247, 6245, 1, 0, 0, 0, 6248, 6252, 3, 736, 368, 0, 6249, 6250, 5, 100, 0, 0, 6250, 6253, 3, 728, 364, 0, 6251, 6253, 7, 56, 0, 0, 6252, 6249, 1, 0, 0, 0, 6252, 6251, 1, 0, 0, 0, 6252, 6253, 1, 0, 0, 0, 6253, 6256, 1, 0, 0, 0, 6254, 6255, 5, 273, 0, 0, 6255, 6257, 7, 57, 0, 0, 6256, 6254, 1, 0, 0, 0, 6256, 6257, 1, 0, 0, 0, 6257, 591, 1, 0, 0, 0, 6258, 6260, 3, 598, 299, 0, 6259, 6261, 3, 596, 298, 0, 6260, 6259, 1, 0, 0, 0, 6260, 6261, 1, 0, 0, 0, 6261, 6270, 1, 0, 0, 0, 6262, 6265, 3, 594, 297, 0, 6263, 6265, 3, 596, 298, 0, 6264, 6262, 1, 0, 0, 0, 6264, 6263, 1, 0, 0, 0, 6265, 6267, 1, 0, 0, 0, 6266, 6268, 3, 598, 299, 0, 6267, 6266, 1, 0, 0, 0, 6267, 6268, 1, 0, 0, 0, 6268, 6270, 1, 0, 0, 0, 6269, 6258, 1, 0, 0, 0, 6269, 6264, 1, 0, 0, 0, 6270, 593, 1, 0, 0, 0, 6271, 6274, 5, 74, 0, 0, 6272, 6275, 3, 676, 338, 0, 6273, 6275, 5, 30, 0, 0, 6274, 6272, 1, 0, 0, 0, 6274, 6273, 1, 0, 0, 0, 6275, 6278, 1, 0, 0, 0, 6276, 6277, 5, 6, 0, 0, 6277, 6279, 3, 676, 338, 0, 6278, 6276, 1, 0, 0, 0, 6278, 6279, 1, 0, 0, 0, 6279, 595, 1, 0, 0, 0, 6280, 6281, 5, 61, 0, 0, 6281, 6283, 7, 83, 0, 0, 6282, 6284, 3, 600, 300, 0, 6283, 6282, 1, 0, 0, 0, 6283, 6284, 1, 0, 0, 0, 6284, 6285, 1, 0, 0, 0, 6285, 6289, 7, 84, 0, 0, 6286, 6290, 5, 81, 0, 0, 6287, 6288, 5, 105, 0, 0, 6288, 6290, 5, 467, 0, 0, 6289, 6286, 1, 0, 0, 0, 6289, 6287, 1, 0, 0, 0, 6290, 597, 1, 0, 0, 0, 6291, 6296, 5, 79, 0, 0, 6292, 6293, 3, 600, 300, 0, 6293, 6294, 7, 84, 0, 0, 6294, 6297, 1, 0, 0, 0, 6295, 6297, 3, 676, 338, 0, 6296, 6292, 1, 0, 0, 0, 6296, 6295, 1, 0, 0, 0, 6297, 599, 1, 0, 0, 0, 6298, 6299, 7, 30, 0, 0, 6299, 6302, 7, 85, 0, 0, 6300, 6302, 3, 684, 342, 0, 6301, 6298, 1, 0, 0, 0, 6301, 6300, 1, 0, 0, 0, 6302, 601, 1, 0, 0, 0, 6303, 6304, 5, 66, 0, 0, 6304, 6306, 5, 147, 0, 0, 6305, 6307, 7, 81, 0, 0, 6306, 6305, 1, 0, 0, 0, 6306, 6307, 1, 0, 0, 0, 6307, 6308, 1, 0, 0, 0, 6308, 6309, 3, 604, 302, 0, 6309, 603, 1, 0, 0, 0, 6310, 6315, 3, 606, 303, 0, 6311, 6312, 5, 6, 0, 0, 6312, 6314, 3, 606, 303, 0, 6313, 6311, 1, 0, 0, 0, 6314, 6317, 1, 0, 0, 0, 6315, 6313, 1, 0, 0, 0, 6315, 6316, 1, 0, 0, 0, 6316, 605, 1, 0, 0, 0, 6317, 6315, 1, 0, 0, 0, 6318, 6342, 3, 736, 368, 0, 6319, 6320, 5, 2, 0, 0, 6320, 6342, 5, 3, 0, 0, 6321, 6323, 7, 86, 0, 0, 6322, 6321, 1, 0, 0, 0, 6322, 6323, 1, 0, 0, 0, 6323, 6324, 1, 0, 0, 0, 6324, 6325, 5, 2, 0, 0, 6325, 6330, 3, 736, 368, 0, 6326, 6327, 5, 6, 0, 0, 6327, 6329, 3, 736, 368, 0, 6328, 6326, 1, 0, 0, 0, 6329, 6332, 1, 0, 0, 0, 6330, 6328, 1, 0, 0, 0, 6330, 6331, 1, 0, 0, 0, 6331, 6333, 1, 0, 0, 0, 6332, 6330, 1, 0, 0, 0, 6333, 6334, 5, 3, 0, 0, 6334, 6342, 1, 0, 0, 0, 6335, 6336, 5, 470, 0, 0, 6336, 6337, 5, 471, 0, 0, 6337, 6338, 5, 2, 0, 0, 6338, 6339, 3, 604, 302, 0, 6339, 6340, 5, 3, 0, 0, 6340, 6342, 1, 0, 0, 0, 6341, 6318, 1, 0, 0, 0, 6341, 6319, 1, 0, 0, 0, 6341, 6322, 1, 0, 0, 0, 6341, 6335, 1, 0, 0, 0, 6342, 607, 1, 0, 0, 0, 6343, 6353, 5, 62, 0, 0, 6344, 6345, 5, 269, 0, 0, 6345, 6347, 5, 245, 0, 0, 6346, 6344, 1, 0, 0, 0, 6346, 6347, 1, 0, 0, 0, 6347, 6348, 1, 0, 0, 0, 6348, 6354, 5, 369, 0, 0, 6349, 6351, 5, 245, 0, 0, 6350, 6349, 1, 0, 0, 0, 6350, 6351, 1, 0, 0, 0, 6351, 6352, 1, 0, 0, 0, 6352, 6354, 5, 334, 0, 0, 6353, 6346, 1, 0, 0, 0, 6353, 6350, 1, 0, 0, 0, 6354, 6357, 1, 0, 0, 0, 6355, 6356, 5, 275, 0, 0, 6356, 6358, 3, 762, 381, 0, 6357, 6355, 1, 0, 0, 0, 6357, 6358, 1, 0, 0, 0, 6358, 6362, 1, 0, 0, 0, 6359, 6363, 5, 272, 0, 0, 6360, 6361, 5, 465, 0, 0, 6361, 6363, 5, 466, 0, 0, 6362, 6359, 1, 0, 0, 0, 6362, 6360, 1, 0, 0, 0, 6362, 6363, 1, 0, 0, 0, 6363, 6365, 1, 0, 0, 0, 6364, 6343, 1, 0, 0, 0, 6365, 6366, 1, 0, 0, 0, 6366, 6364, 1, 0, 0, 0, 6366, 6367, 1, 0, 0, 0, 6367, 6372, 1, 0, 0, 0, 6368, 6369, 5, 62, 0, 0, 6369, 6370, 5, 300, 0, 0, 6370, 6372, 5, 81, 0, 0, 6371, 6364, 1, 0, 0, 0, 6371, 6368, 1, 0, 0, 0, 6372, 609, 1, 0, 0, 0, 6373, 6374, 5, 422, 0, 0, 6374, 6379, 3, 536, 268, 0, 6375, 6376, 5, 6, 0, 0, 6376, 6378, 3, 536, 268, 0, 6377, 6375, 1, 0, 0, 0, 6378, 6381, 1, 0, 0, 0, 6379, 6377, 1, 0, 0, 0, 6379, 6380, 1, 0, 0, 0, 6380, 611, 1, 0, 0, 0, 6381, 6379, 1, 0, 0, 0, 6382, 6383, 5, 64, 0, 0, 6383, 6384, 3, 614, 307, 0, 6384, 613, 1, 0, 0, 0, 6385, 6390, 3, 616, 308, 0, 6386, 6387, 5, 6, 0, 0, 6387, 6389, 3, 616, 308, 0, 6388, 6386, 1, 0, 0, 0, 6389, 6392, 1, 0, 0, 0, 6390, 6388, 1, 0, 0, 0, 6390, 6391, 1, 0, 0, 0, 6391, 615, 1, 0, 0, 0, 6392, 6390, 1, 0, 0, 0, 6393, 6408, 3, 626, 313, 0, 6394, 6396, 5, 81, 0, 0, 6395, 6394, 1, 0, 0, 0, 6395, 6396, 1, 0, 0, 0, 6396, 6397, 1, 0, 0, 0, 6397, 6399, 3, 780, 390, 0, 6398, 6400, 5, 9, 0, 0, 6399, 6398, 1, 0, 0, 0, 6399, 6400, 1, 0, 0, 0, 6400, 6402, 1, 0, 0, 0, 6401, 6403, 3, 150, 75, 0, 6402, 6401, 1, 0, 0, 0, 6402, 6403, 1, 0, 0, 0, 6403, 6405, 1, 0, 0, 0, 6404, 6406, 3, 640, 320, 0, 6405, 6404, 1, 0, 0, 0, 6405, 6406, 1, 0, 0, 0, 6406, 6408, 1, 0, 0, 0, 6407, 6393, 1, 0, 0, 0, 6407, 6395, 1, 0, 0, 0, 6408, 6410, 1, 0, 0, 0, 6409, 6411, 3, 618, 309, 0, 6410, 6409, 1, 0, 0, 0, 6410, 6411, 1, 0, 0, 0, 6411, 6413, 1, 0, 0, 0, 6412, 6414, 3, 634, 317, 0, 6413, 6412, 1, 0, 0, 0, 6413, 6414, 1, 0, 0, 0, 6414, 6457, 1, 0, 0, 0, 6415, 6417, 5, 72, 0, 0, 6416, 6415, 1, 0, 0, 0, 6416, 6417, 1, 0, 0, 0, 6417, 6430, 1, 0, 0, 0, 6418, 6420, 3, 648, 324, 0, 6419, 6421, 3, 618, 309, 0, 6420, 6419, 1, 0, 0, 0, 6420, 6421, 1, 0, 0, 0, 6421, 6431, 1, 0, 0, 0, 6422, 6424, 3, 636, 318, 0, 6423, 6425, 3, 620, 310, 0, 6424, 6423, 1, 0, 0, 0, 6424, 6425, 1, 0, 0, 0, 6425, 6431, 1, 0, 0, 0, 6426, 6428, 3, 564, 282, 0, 6427, 6429, 3, 618, 309, 0, 6428, 6427, 1, 0, 0, 0, 6428, 6429, 1, 0, 0, 0, 6429, 6431, 1, 0, 0, 0, 6430, 6418, 1, 0, 0, 0, 6430, 6422, 1, 0, 0, 0, 6430, 6426, 1, 0, 0, 0, 6431, 6457, 1, 0, 0, 0, 6432, 6433, 5, 2, 0, 0, 6433, 6450, 3, 616, 308, 0, 6434, 6435, 5, 110, 0, 0, 6435, 6436, 5, 118, 0, 0, 6436, 6451, 3, 616, 308, 0, 6437, 6439, 5, 121, 0, 0, 6438, 6440, 3, 622, 311, 0, 6439, 6438, 1, 0, 0, 0, 6439, 6440, 1, 0, 0, 0, 6440, 6441, 1, 0, 0, 0, 6441, 6442, 5, 118, 0, 0, 6442, 6451, 3, 616, 308, 0, 6443, 6445, 3, 622, 311, 0, 6444, 6443, 1, 0, 0, 0, 6444, 6445, 1, 0, 0, 0, 6445, 6446, 1, 0, 0, 0, 6446, 6447, 5, 118, 0, 0, 6447, 6448, 3, 616, 308, 0, 6448, 6449, 3, 624, 312, 0, 6449, 6451, 1, 0, 0, 0, 6450, 6434, 1, 0, 0, 0, 6450, 6437, 1, 0, 0, 0, 6450, 6444, 1, 0, 0, 0, 6450, 6451, 1, 0, 0, 0, 6451, 6452, 1, 0, 0, 0, 6452, 6454, 5, 3, 0, 0, 6453, 6455, 3, 618, 309, 0, 6454, 6453, 1, 0, 0, 0, 6454, 6455, 1, 0, 0, 0, 6455, 6457, 1, 0, 0, 0, 6456, 6407, 1, 0, 0, 0, 6456, 6416, 1, 0, 0, 0, 6456, 6432, 1, 0, 0, 0, 6457, 6476, 1, 0, 0, 0, 6458, 6459, 5, 110, 0, 0, 6459, 6460, 5, 118, 0, 0, 6460, 6475, 3, 616, 308, 0, 6461, 6463, 5, 121, 0, 0, 6462, 6464, 3, 622, 311, 0, 6463, 6462, 1, 0, 0, 0, 6463, 6464, 1, 0, 0, 0, 6464, 6465, 1, 0, 0, 0, 6465, 6466, 5, 118, 0, 0, 6466, 6475, 3, 616, 308, 0, 6467, 6469, 3, 622, 311, 0, 6468, 6467, 1, 0, 0, 0, 6468, 6469, 1, 0, 0, 0, 6469, 6470, 1, 0, 0, 0, 6470, 6471, 5, 118, 0, 0, 6471, 6472, 3, 616, 308, 0, 6472, 6473, 3, 624, 312, 0, 6473, 6475, 1, 0, 0, 0, 6474, 6458, 1, 0, 0, 0, 6474, 6461, 1, 0, 0, 0, 6474, 6468, 1, 0, 0, 0, 6475, 6478, 1, 0, 0, 0, 6476, 6474, 1, 0, 0, 0, 6476, 6477, 1, 0, 0, 0, 6477, 617, 1, 0, 0, 0, 6478, 6476, 1, 0, 0, 0, 6479, 6481, 5, 36, 0, 0, 6480, 6479, 1, 0, 0, 0, 6480, 6481, 1, 0, 0, 0, 6481, 6482, 1, 0, 0, 0, 6482, 6487, 3, 820, 410, 0, 6483, 6484, 5, 2, 0, 0, 6484, 6485, 3, 786, 393, 0, 6485, 6486, 5, 3, 0, 0, 6486, 6488, 1, 0, 0, 0, 6487, 6483, 1, 0, 0, 0, 6487, 6488, 1, 0, 0, 0, 6488, 619, 1, 0, 0, 0, 6489, 6502, 3, 618, 309, 0, 6490, 6492, 5, 36, 0, 0, 6491, 6493, 3, 820, 410, 0, 6492, 6491, 1, 0, 0, 0, 6492, 6493, 1, 0, 0, 0, 6493, 6496, 1, 0, 0, 0, 6494, 6496, 3, 820, 410, 0, 6495, 6490, 1, 0, 0, 0, 6495, 6494, 1, 0, 0, 0, 6496, 6497, 1, 0, 0, 0, 6497, 6498, 5, 2, 0, 0, 6498, 6499, 3, 644, 322, 0, 6499, 6500, 5, 3, 0, 0, 6500, 6502, 1, 0, 0, 0, 6501, 6489, 1, 0, 0, 0, 6501, 6495, 1, 0, 0, 0, 6502, 621, 1, 0, 0, 0, 6503, 6505, 7, 87, 0, 0, 6504, 6506, 5, 123, 0, 0, 6505, 6504, 1, 0, 0, 0, 6505, 6506, 1, 0, 0, 0, 6506, 623, 1, 0, 0, 0, 6507, 6508, 5, 100, 0, 0, 6508, 6512, 3, 146, 73, 0, 6509, 6510, 5, 80, 0, 0, 6510, 6512, 3, 676, 338, 0, 6511, 6507, 1, 0, 0, 0, 6511, 6509, 1, 0, 0, 0, 6512, 625, 1, 0, 0, 0, 6513, 6529, 3, 324, 162, 0, 6514, 6520, 5, 81, 0, 0, 6515, 6521, 3, 776, 388, 0, 6516, 6517, 5, 2, 0, 0, 6517, 6518, 3, 776, 388, 0, 6518, 6519, 5, 3, 0, 0, 6519, 6521, 1, 0, 0, 0, 6520, 6515, 1, 0, 0, 0, 6520, 6516, 1, 0, 0, 0, 6521, 6529, 1, 0, 0, 0, 6522, 6523, 5, 68, 0, 0, 6523, 6526, 5, 323, 0, 0, 6524, 6527, 3, 792, 396, 0, 6525, 6527, 5, 111, 0, 0, 6526, 6524, 1, 0, 0, 0, 6526, 6525, 1, 0, 0, 0, 6527, 6529, 1, 0, 0, 0, 6528, 6513, 1, 0, 0, 0, 6528, 6514, 1, 0, 0, 0, 6528, 6522, 1, 0, 0, 0, 6529, 627, 1, 0, 0, 0, 6530, 6531, 5, 92, 0, 0, 6531, 6533, 3, 324, 162, 0, 6532, 6534, 3, 146, 73, 0, 6533, 6532, 1, 0, 0, 0, 6533, 6534, 1, 0, 0, 0, 6534, 6536, 1, 0, 0, 0, 6535, 6537, 3, 640, 320, 0, 6536, 6535, 1, 0, 0, 0, 6536, 6537, 1, 0, 0, 0, 6537, 6555, 1, 0, 0, 0, 6538, 6539, 5, 92, 0, 0, 6539, 6545, 5, 81, 0, 0, 6540, 6546, 3, 776, 388, 0, 6541, 6542, 5, 2, 0, 0, 6542, 6543, 3, 776, 388, 0, 6543, 6544, 5, 3, 0, 0, 6544, 6546, 1, 0, 0, 0, 6545, 6540, 1, 0, 0, 0, 6545, 6541, 1, 0, 0, 0, 6546, 6555, 1, 0, 0, 0, 6547, 6548, 5, 350, 0, 0, 6548, 6549, 5, 68, 0, 0, 6549, 6552, 5, 323, 0, 0, 6550, 6553, 3, 792, 396, 0, 6551, 6553, 5, 111, 0, 0, 6552, 6550, 1, 0, 0, 0, 6552, 6551, 1, 0, 0, 0, 6553, 6555, 1, 0, 0, 0, 6554, 6530, 1, 0, 0, 0, 6554, 6538, 1, 0, 0, 0, 6554, 6547, 1, 0, 0, 0, 6555, 629, 1, 0, 0, 0, 6556, 6561, 3, 626, 313, 0, 6557, 6558, 5, 6, 0, 0, 6558, 6560, 3, 626, 313, 0, 6559, 6557, 1, 0, 0, 0, 6560, 6563, 1, 0, 0, 0, 6561, 6559, 1, 0, 0, 0, 6561, 6562, 1, 0, 0, 0, 6562, 631, 1, 0, 0, 0, 6563, 6561, 1, 0, 0, 0, 6564, 6569, 3, 626, 313, 0, 6565, 6567, 5, 36, 0, 0, 6566, 6565, 1, 0, 0, 0, 6566, 6567, 1, 0, 0, 0, 6567, 6568, 1, 0, 0, 0, 6568, 6570, 3, 820, 410, 0, 6569, 6566, 1, 0, 0, 0, 6569, 6570, 1, 0, 0, 0, 6570, 633, 1, 0, 0, 0, 6571, 6572, 5, 472, 0, 0, 6572, 6573, 3, 808, 404, 0, 6573, 6579, 3, 536, 268, 0, 6574, 6575, 5, 310, 0, 0, 6575, 6576, 5, 2, 0, 0, 6576, 6577, 3, 676, 338, 0, 6577, 6578, 5, 3, 0, 0, 6578, 6580, 1, 0, 0, 0, 6579, 6574, 1, 0, 0, 0, 6579, 6580, 1, 0, 0, 0, 6580, 635, 1, 0, 0, 0, 6581, 6596, 3, 690, 345, 0, 6582, 6583, 5, 320, 0, 0, 6583, 6584, 5, 64, 0, 0, 6584, 6585, 5, 2, 0, 0, 6585, 6590, 3, 638, 319, 0, 6586, 6587, 5, 6, 0, 0, 6587, 6589, 3, 638, 319, 0, 6588, 6586, 1, 0, 0, 0, 6589, 6592, 1, 0, 0, 0, 6590, 6588, 1, 0, 0, 0, 6590, 6591, 1, 0, 0, 0, 6591, 6593, 1, 0, 0, 0, 6592, 6590, 1, 0, 0, 0, 6593, 6594, 5, 3, 0, 0, 6594, 6596, 1, 0, 0, 0, 6595, 6581, 1, 0, 0, 0, 6595, 6582, 1, 0, 0, 0, 6596, 6599, 1, 0, 0, 0, 6597, 6598, 5, 105, 0, 0, 6598, 6600, 5, 473, 0, 0, 6599, 6597, 1, 0, 0, 0, 6599, 6600, 1, 0, 0, 0, 6600, 637, 1, 0, 0, 0, 6601, 6607, 3, 690, 345, 0, 6602, 6603, 5, 36, 0, 0, 6603, 6604, 5, 2, 0, 0, 6604, 6605, 3, 644, 322, 0, 6605, 6606, 5, 3, 0, 0, 6606, 6608, 1, 0, 0, 0, 6607, 6602, 1, 0, 0, 0, 6607, 6608, 1, 0, 0, 0, 6608, 639, 1, 0, 0, 0, 6609, 6610, 5, 103, 0, 0, 6610, 6611, 3, 736, 368, 0, 6611, 641, 1, 0, 0, 0, 6612, 6617, 5, 103, 0, 0, 6613, 6614, 5, 434, 0, 0, 6614, 6615, 5, 275, 0, 0, 6615, 6618, 3, 820, 410, 0, 6616, 6618, 3, 676, 338, 0, 6617, 6613, 1, 0, 0, 0, 6617, 6616, 1, 0, 0, 0, 6618, 643, 1, 0, 0, 0, 6619, 6624, 3, 646, 323, 0, 6620, 6621, 5, 6, 0, 0, 6621, 6623, 3, 646, 323, 0, 6622, 6620, 1, 0, 0, 0, 6623, 6626, 1, 0, 0, 0, 6624, 6622, 1, 0, 0, 0, 6624, 6625, 1, 0, 0, 0, 6625, 645, 1, 0, 0, 0, 6626, 6624, 1, 0, 0, 0, 6627, 6628, 3, 820, 410, 0, 6628, 6630, 3, 654, 327, 0, 6629, 6631, 3, 98, 49, 0, 6630, 6629, 1, 0, 0, 0, 6630, 6631, 1, 0, 0, 0, 6631, 647, 1, 0, 0, 0, 6632, 6633, 5, 474, 0, 0, 6633, 6647, 5, 2, 0, 0, 6634, 6635, 5, 476, 0, 0, 6635, 6636, 5, 2, 0, 0, 6636, 6641, 3, 652, 326, 0, 6637, 6638, 5, 6, 0, 0, 6638, 6640, 3, 652, 326, 0, 6639, 6637, 1, 0, 0, 0, 6640, 6643, 1, 0, 0, 0, 6641, 6639, 1, 0, 0, 0, 6641, 6642, 1, 0, 0, 0, 6642, 6644, 1, 0, 0, 0, 6643, 6641, 1, 0, 0, 0, 6644, 6645, 5, 3, 0, 0, 6645, 6646, 5, 6, 0, 0, 6646, 6648, 1, 0, 0, 0, 6647, 6634, 1, 0, 0, 0, 6647, 6648, 1, 0, 0, 0, 6648, 6649, 1, 0, 0, 0, 6649, 6650, 3, 684, 342, 0, 6650, 6651, 3, 700, 350, 0, 6651, 6652, 5, 475, 0, 0, 6652, 6657, 3, 650, 325, 0, 6653, 6654, 5, 6, 0, 0, 6654, 6656, 3, 650, 325, 0, 6655, 6653, 1, 0, 0, 0, 6656, 6659, 1, 0, 0, 0, 6657, 6655, 1, 0, 0, 0, 6657, 6658, 1, 0, 0, 0, 6658, 6660, 1, 0, 0, 0, 6659, 6657, 1, 0, 0, 0, 6660, 6661, 5, 3, 0, 0, 6661, 649, 1, 0, 0, 0, 6662, 6681, 3, 820, 410, 0, 6663, 6677, 3, 654, 327, 0, 6664, 6667, 5, 53, 0, 0, 6665, 6667, 3, 828, 414, 0, 6666, 6664, 1, 0, 0, 0, 6666, 6665, 1, 0, 0, 0, 6667, 6668, 1, 0, 0, 0, 6668, 6674, 3, 676, 338, 0, 6669, 6671, 5, 77, 0, 0, 6670, 6669, 1, 0, 0, 0, 6670, 6671, 1, 0, 0, 0, 6671, 6672, 1, 0, 0, 0, 6672, 6674, 5, 78, 0, 0, 6673, 6666, 1, 0, 0, 0, 6673, 6670, 1, 0, 0, 0, 6674, 6675, 1, 0, 0, 0, 6675, 6673, 1, 0, 0, 0, 6675, 6676, 1, 0, 0, 0, 6676, 6678, 1, 0, 0, 0, 6677, 6673, 1, 0, 0, 0, 6677, 6678, 1, 0, 0, 0, 6678, 6682, 1, 0, 0, 0, 6679, 6680, 5, 62, 0, 0, 6680, 6682, 5, 473, 0, 0, 6681, 6663, 1, 0, 0, 0, 6681, 6679, 1, 0, 0, 0, 6682, 651, 1, 0, 0, 0, 6683, 6684, 3, 684, 342, 0, 6684, 6685, 5, 36, 0, 0, 6685, 6686, 3, 826, 413, 0, 6686, 6690, 1, 0, 0, 0, 6687, 6688, 5, 53, 0, 0, 6688, 6690, 3, 684, 342, 0, 6689, 6683, 1, 0, 0, 0, 6689, 6687, 1, 0, 0, 0, 6690, 653, 1, 0, 0, 0, 6691, 6693, 5, 415, 0, 0, 6692, 6691, 1, 0, 0, 0, 6692, 6693, 1, 0, 0, 0, 6693, 6694, 1, 0, 0, 0, 6694, 6711, 3, 656, 328, 0, 6695, 6697, 5, 4, 0, 0, 6696, 6698, 5, 574, 0, 0, 6697, 6696, 1, 0, 0, 0, 6697, 6698, 1, 0, 0, 0, 6698, 6699, 1, 0, 0, 0, 6699, 6701, 5, 5, 0, 0, 6700, 6695, 1, 0, 0, 0, 6701, 6704, 1, 0, 0, 0, 6702, 6700, 1, 0, 0, 0, 6702, 6703, 1, 0, 0, 0, 6703, 6712, 1, 0, 0, 0, 6704, 6702, 1, 0, 0, 0, 6705, 6709, 5, 35, 0, 0, 6706, 6707, 5, 4, 0, 0, 6707, 6708, 5, 574, 0, 0, 6708, 6710, 5, 5, 0, 0, 6709, 6706, 1, 0, 0, 0, 6709, 6710, 1, 0, 0, 0, 6710, 6712, 1, 0, 0, 0, 6711, 6702, 1, 0, 0, 0, 6711, 6705, 1, 0, 0, 0, 6712, 6718, 1, 0, 0, 0, 6713, 6714, 3, 782, 391, 0, 6714, 6715, 5, 27, 0, 0, 6715, 6716, 7, 88, 0, 0, 6716, 6718, 1, 0, 0, 0, 6717, 6692, 1, 0, 0, 0, 6717, 6713, 1, 0, 0, 0, 6718, 655, 1, 0, 0, 0, 6719, 6721, 3, 822, 411, 0, 6720, 6722, 3, 320, 160, 0, 6721, 6720, 1, 0, 0, 0, 6721, 6722, 1, 0, 0, 0, 6722, 6724, 1, 0, 0, 0, 6723, 6725, 3, 536, 268, 0, 6724, 6723, 1, 0, 0, 0, 6724, 6725, 1, 0, 0, 0, 6725, 6735, 1, 0, 0, 0, 6726, 6735, 3, 658, 329, 0, 6727, 6732, 5, 403, 0, 0, 6728, 6730, 3, 670, 335, 0, 6729, 6728, 1, 0, 0, 0, 6729, 6730, 1, 0, 0, 0, 6730, 6733, 1, 0, 0, 0, 6731, 6733, 3, 662, 331, 0, 6732, 6729, 1, 0, 0, 0, 6732, 6731, 1, 0, 0, 0, 6733, 6735, 1, 0, 0, 0, 6734, 6719, 1, 0, 0, 0, 6734, 6726, 1, 0, 0, 0, 6734, 6727, 1, 0, 0, 0, 6735, 657, 1, 0, 0, 0, 6736, 6741, 3, 660, 330, 0, 6737, 6741, 3, 664, 332, 0, 6738, 6741, 3, 666, 333, 0, 6739, 6741, 3, 668, 334, 0, 6740, 6736, 1, 0, 0, 0, 6740, 6737, 1, 0, 0, 0, 6740, 6738, 1, 0, 0, 0, 6740, 6739, 1, 0, 0, 0, 6741, 659, 1, 0, 0, 0, 6742, 6759, 5, 401, 0, 0, 6743, 6759, 5, 402, 0, 0, 6744, 6759, 5, 416, 0, 0, 6745, 6759, 5, 388, 0, 0, 6746, 6759, 5, 413, 0, 0, 6747, 6749, 5, 398, 0, 0, 6748, 6750, 3, 662, 331, 0, 6749, 6748, 1, 0, 0, 0, 6749, 6750, 1, 0, 0, 0, 6750, 6759, 1, 0, 0, 0, 6751, 6752, 5, 190, 0, 0, 6752, 6759, 5, 412, 0, 0, 6753, 6755, 7, 89, 0, 0, 6754, 6756, 3, 536, 268, 0, 6755, 6754, 1, 0, 0, 0, 6755, 6756, 1, 0, 0, 0, 6756, 6759, 1, 0, 0, 0, 6757, 6759, 5, 390, 0, 0, 6758, 6742, 1, 0, 0, 0, 6758, 6743, 1, 0, 0, 0, 6758, 6744, 1, 0, 0, 0, 6758, 6745, 1, 0, 0, 0, 6758, 6746, 1, 0, 0, 0, 6758, 6747, 1, 0, 0, 0, 6758, 6751, 1, 0, 0, 0, 6758, 6753, 1, 0, 0, 0, 6758, 6757, 1, 0, 0, 0, 6759, 661, 1, 0, 0, 0, 6760, 6761, 5, 2, 0, 0, 6761, 6762, 5, 574, 0, 0, 6762, 6763, 5, 3, 0, 0, 6763, 663, 1, 0, 0, 0, 6764, 6766, 5, 389, 0, 0, 6765, 6767, 5, 374, 0, 0, 6766, 6765, 1, 0, 0, 0, 6766, 6767, 1, 0, 0, 0, 6767, 6769, 1, 0, 0, 0, 6768, 6770, 3, 536, 268, 0, 6769, 6768, 1, 0, 0, 0, 6769, 6770, 1, 0, 0, 0, 6770, 665, 1, 0, 0, 0, 6771, 6773, 7, 90, 0, 0, 6772, 6774, 5, 374, 0, 0, 6773, 6772, 1, 0, 0, 0, 6773, 6774, 1, 0, 0, 0, 6774, 6782, 1, 0, 0, 0, 6775, 6782, 5, 423, 0, 0, 6776, 6777, 5, 405, 0, 0, 6777, 6779, 7, 91, 0, 0, 6778, 6780, 5, 374, 0, 0, 6779, 6778, 1, 0, 0, 0, 6779, 6780, 1, 0, 0, 0, 6780, 6782, 1, 0, 0, 0, 6781, 6771, 1, 0, 0, 0, 6781, 6775, 1, 0, 0, 0, 6781, 6776, 1, 0, 0, 0, 6782, 6784, 1, 0, 0, 0, 6783, 6785, 3, 662, 331, 0, 6784, 6783, 1, 0, 0, 0, 6784, 6785, 1, 0, 0, 0, 6785, 667, 1, 0, 0, 0, 6786, 6788, 7, 92, 0, 0, 6787, 6789, 3, 662, 331, 0, 6788, 6787, 1, 0, 0, 0, 6788, 6789, 1, 0, 0, 0, 6789, 6793, 1, 0, 0, 0, 6790, 6791, 7, 27, 0, 0, 6791, 6792, 5, 418, 0, 0, 6792, 6794, 5, 386, 0, 0, 6793, 6790, 1, 0, 0, 0, 6793, 6794, 1, 0, 0, 0, 6794, 669, 1, 0, 0, 0, 6795, 6825, 5, 264, 0, 0, 6796, 6825, 3, 672, 336, 0, 6797, 6800, 5, 384, 0, 0, 6798, 6799, 5, 94, 0, 0, 6799, 6801, 5, 264, 0, 0, 6800, 6798, 1, 0, 0, 0, 6800, 6801, 1, 0, 0, 0, 6801, 6825, 1, 0, 0, 0, 6802, 6809, 5, 176, 0, 0, 6803, 6807, 5, 94, 0, 0, 6804, 6808, 5, 218, 0, 0, 6805, 6808, 5, 261, 0, 0, 6806, 6808, 3, 672, 336, 0, 6807, 6804, 1, 0, 0, 0, 6807, 6805, 1, 0, 0, 0, 6807, 6806, 1, 0, 0, 0, 6808, 6810, 1, 0, 0, 0, 6809, 6803, 1, 0, 0, 0, 6809, 6810, 1, 0, 0, 0, 6810, 6825, 1, 0, 0, 0, 6811, 6817, 5, 218, 0, 0, 6812, 6815, 5, 94, 0, 0, 6813, 6816, 5, 261, 0, 0, 6814, 6816, 3, 672, 336, 0, 6815, 6813, 1, 0, 0, 0, 6815, 6814, 1, 0, 0, 0, 6816, 6818, 1, 0, 0, 0, 6817, 6812, 1, 0, 0, 0, 6817, 6818, 1, 0, 0, 0, 6818, 6825, 1, 0, 0, 0, 6819, 6822, 5, 261, 0, 0, 6820, 6821, 5, 94, 0, 0, 6821, 6823, 3, 672, 336, 0, 6822, 6820, 1, 0, 0, 0, 6822, 6823, 1, 0, 0, 0, 6823, 6825, 1, 0, 0, 0, 6824, 6795, 1, 0, 0, 0, 6824, 6796, 1, 0, 0, 0, 6824, 6797, 1, 0, 0, 0, 6824, 6802, 1, 0, 0, 0, 6824, 6811, 1, 0, 0, 0, 6824, 6819, 1, 0, 0, 0, 6825, 671, 1, 0, 0, 0, 6826, 6828, 5, 326, 0, 0, 6827, 6829, 3, 662, 331, 0, 6828, 6827, 1, 0, 0, 0, 6828, 6829, 1, 0, 0, 0, 6829, 673, 1, 0, 0, 0, 6830, 6831, 7, 93, 0, 0, 6831, 675, 1, 0, 0, 0, 6832, 6833, 3, 678, 339, 0, 6833, 677, 1, 0, 0, 0, 6834, 6835, 6, 339, -1, 0, 6835, 6837, 3, 682, 341, 0, 6836, 6838, 3, 680, 340, 0, 6837, 6836, 1, 0, 0, 0, 6837, 6838, 1, 0, 0, 0, 6838, 6842, 1, 0, 0, 0, 6839, 6840, 5, 77, 0, 0, 6840, 6842, 3, 678, 339, 3, 6841, 6834, 1, 0, 0, 0, 6841, 6839, 1, 0, 0, 0, 6842, 6851, 1, 0, 0, 0, 6843, 6844, 10, 2, 0, 0, 6844, 6845, 5, 33, 0, 0, 6845, 6850, 3, 678, 339, 3, 6846, 6847, 10, 1, 0, 0, 6847, 6848, 5, 82, 0, 0, 6848, 6850, 3, 678, 339, 2, 6849, 6843, 1, 0, 0, 0, 6849, 6846, 1, 0, 0, 0, 6850, 6853, 1, 0, 0, 0, 6851, 6849, 1, 0, 0, 0, 6851, 6852, 1, 0, 0, 0, 6852, 679, 1, 0, 0, 0, 6853, 6851, 1, 0, 0, 0, 6854, 6855, 3, 674, 337, 0, 6855, 6856, 3, 682, 341, 0, 6856, 6926, 1, 0, 0, 0, 6857, 6858, 3, 674, 337, 0, 6858, 6859, 3, 730, 365, 0, 6859, 6865, 3, 720, 360, 0, 6860, 6866, 3, 564, 282, 0, 6861, 6862, 5, 2, 0, 0, 6862, 6863, 3, 676, 338, 0, 6863, 6864, 5, 3, 0, 0, 6864, 6866, 1, 0, 0, 0, 6865, 6860, 1, 0, 0, 0, 6865, 6861, 1, 0, 0, 0, 6866, 6926, 1, 0, 0, 0, 6867, 6869, 5, 77, 0, 0, 6868, 6867, 1, 0, 0, 0, 6868, 6869, 1, 0, 0, 0, 6869, 6870, 1, 0, 0, 0, 6870, 6871, 5, 387, 0, 0, 6871, 6872, 3, 682, 341, 0, 6872, 6873, 5, 33, 0, 0, 6873, 6874, 3, 682, 341, 0, 6874, 6926, 1, 0, 0, 0, 6875, 6877, 5, 77, 0, 0, 6876, 6875, 1, 0, 0, 0, 6876, 6877, 1, 0, 0, 0, 6877, 6878, 1, 0, 0, 0, 6878, 6879, 5, 68, 0, 0, 6879, 6880, 5, 2, 0, 0, 6880, 6885, 3, 676, 338, 0, 6881, 6882, 5, 6, 0, 0, 6882, 6884, 3, 676, 338, 0, 6883, 6881, 1, 0, 0, 0, 6884, 6887, 1, 0, 0, 0, 6885, 6883, 1, 0, 0, 0, 6885, 6886, 1, 0, 0, 0, 6886, 6888, 1, 0, 0, 0, 6887, 6885, 1, 0, 0, 0, 6888, 6889, 5, 3, 0, 0, 6889, 6926, 1, 0, 0, 0, 6890, 6892, 5, 77, 0, 0, 6891, 6890, 1, 0, 0, 0, 6891, 6892, 1, 0, 0, 0, 6892, 6893, 1, 0, 0, 0, 6893, 6894, 5, 68, 0, 0, 6894, 6926, 3, 564, 282, 0, 6895, 6897, 5, 77, 0, 0, 6896, 6895, 1, 0, 0, 0, 6896, 6897, 1, 0, 0, 0, 6897, 6906, 1, 0, 0, 0, 6898, 6907, 5, 120, 0, 0, 6899, 6907, 5, 114, 0, 0, 6900, 6901, 5, 127, 0, 0, 6901, 6907, 5, 94, 0, 0, 6902, 6904, 5, 387, 0, 0, 6903, 6905, 5, 91, 0, 0, 6904, 6903, 1, 0, 0, 0, 6904, 6905, 1, 0, 0, 0, 6905, 6907, 1, 0, 0, 0, 6906, 6898, 1, 0, 0, 0, 6906, 6899, 1, 0, 0, 0, 6906, 6900, 1, 0, 0, 0, 6906, 6902, 1, 0, 0, 0, 6907, 6908, 1, 0, 0, 0, 6908, 6911, 3, 682, 341, 0, 6909, 6910, 5, 197, 0, 0, 6910, 6912, 3, 682, 341, 0, 6911, 6909, 1, 0, 0, 0, 6911, 6912, 1, 0, 0, 0, 6912, 6926, 1, 0, 0, 0, 6913, 6915, 5, 116, 0, 0, 6914, 6916, 5, 77, 0, 0, 6915, 6914, 1, 0, 0, 0, 6915, 6916, 1, 0, 0, 0, 6916, 6917, 1, 0, 0, 0, 6917, 6926, 5, 78, 0, 0, 6918, 6920, 5, 116, 0, 0, 6919, 6921, 5, 77, 0, 0, 6920, 6919, 1, 0, 0, 0, 6920, 6921, 1, 0, 0, 0, 6921, 6922, 1, 0, 0, 0, 6922, 6923, 5, 56, 0, 0, 6923, 6924, 5, 64, 0, 0, 6924, 6926, 3, 682, 341, 0, 6925, 6854, 1, 0, 0, 0, 6925, 6857, 1, 0, 0, 0, 6925, 6868, 1, 0, 0, 0, 6925, 6876, 1, 0, 0, 0, 6925, 6891, 1, 0, 0, 0, 6925, 6896, 1, 0, 0, 0, 6925, 6913, 1, 0, 0, 0, 6925, 6918, 1, 0, 0, 0, 6926, 681, 1, 0, 0, 0, 6927, 6928, 6, 341, -1, 0, 6928, 6932, 3, 684, 342, 0, 6929, 6930, 7, 30, 0, 0, 6930, 6932, 3, 682, 341, 4, 6931, 6927, 1, 0, 0, 0, 6931, 6929, 1, 0, 0, 0, 6932, 6949, 1, 0, 0, 0, 6933, 6934, 10, 3, 0, 0, 6934, 6935, 7, 94, 0, 0, 6935, 6948, 3, 682, 341, 4, 6936, 6937, 10, 2, 0, 0, 6937, 6938, 7, 30, 0, 0, 6938, 6948, 3, 682, 341, 3, 6939, 6940, 10, 1, 0, 0, 6940, 6941, 5, 15, 0, 0, 6941, 6948, 3, 682, 341, 2, 6942, 6943, 10, 5, 0, 0, 6943, 6944, 5, 142, 0, 0, 6944, 6945, 5, 418, 0, 0, 6945, 6946, 5, 386, 0, 0, 6946, 6948, 3, 676, 338, 0, 6947, 6933, 1, 0, 0, 0, 6947, 6936, 1, 0, 0, 0, 6947, 6939, 1, 0, 0, 0, 6947, 6942, 1, 0, 0, 0, 6948, 6951, 1, 0, 0, 0, 6949, 6947, 1, 0, 0, 0, 6949, 6950, 1, 0, 0, 0, 6950, 683, 1, 0, 0, 0, 6951, 6949, 1, 0, 0, 0, 6952, 6953, 6, 342, -1, 0, 6953, 6954, 7, 95, 0, 0, 6954, 7041, 3, 564, 282, 0, 6955, 6958, 5, 35, 0, 0, 6956, 6959, 3, 564, 282, 0, 6957, 6959, 3, 742, 371, 0, 6958, 6956, 1, 0, 0, 0, 6958, 6957, 1, 0, 0, 0, 6959, 7041, 1, 0, 0, 0, 6960, 6961, 5, 28, 0, 0, 6961, 7041, 3, 756, 378, 0, 6962, 6963, 5, 470, 0, 0, 6963, 7041, 3, 536, 268, 0, 6964, 7041, 5, 574, 0, 0, 6965, 7041, 5, 576, 0, 0, 6966, 7041, 5, 566, 0, 0, 6967, 7041, 5, 570, 0, 0, 6968, 6978, 3, 808, 404, 0, 6969, 6979, 3, 810, 405, 0, 6970, 6971, 5, 2, 0, 0, 6971, 6973, 3, 738, 369, 0, 6972, 6974, 3, 588, 294, 0, 6973, 6972, 1, 0, 0, 0, 6973, 6974, 1, 0, 0, 0, 6974, 6975, 1, 0, 0, 0, 6975, 6976, 5, 3, 0, 0, 6976, 6977, 3, 810, 405, 0, 6977, 6979, 1, 0, 0, 0, 6978, 6969, 1, 0, 0, 0, 6978, 6970, 1, 0, 0, 0, 6979, 7041, 1, 0, 0, 0, 6980, 6982, 3, 658, 329, 0, 6981, 6980, 1, 0, 0, 0, 6981, 6982, 1, 0, 0, 0, 6982, 6983, 1, 0, 0, 0, 6983, 7041, 3, 810, 405, 0, 6984, 6992, 5, 403, 0, 0, 6985, 6987, 3, 810, 405, 0, 6986, 6988, 3, 670, 335, 0, 6987, 6986, 1, 0, 0, 0, 6987, 6988, 1, 0, 0, 0, 6988, 6993, 1, 0, 0, 0, 6989, 6990, 3, 662, 331, 0, 6990, 6991, 3, 810, 405, 0, 6991, 6993, 1, 0, 0, 0, 6992, 6985, 1, 0, 0, 0, 6992, 6989, 1, 0, 0, 0, 6993, 7041, 1, 0, 0, 0, 6994, 7041, 5, 96, 0, 0, 6995, 7041, 5, 60, 0, 0, 6996, 7041, 5, 78, 0, 0, 6997, 7041, 5, 577, 0, 0, 6998, 6999, 5, 2, 0, 0, 6999, 7000, 3, 676, 338, 0, 7000, 7001, 5, 3, 0, 0, 7001, 7002, 3, 756, 378, 0, 7002, 7041, 1, 0, 0, 0, 7003, 7005, 5, 40, 0, 0, 7004, 7006, 3, 676, 338, 0, 7005, 7004, 1, 0, 0, 0, 7005, 7006, 1, 0, 0, 0, 7006, 7008, 1, 0, 0, 0, 7007, 7009, 3, 750, 375, 0, 7008, 7007, 1, 0, 0, 0, 7009, 7010, 1, 0, 0, 0, 7010, 7008, 1, 0, 0, 0, 7010, 7011, 1, 0, 0, 0, 7011, 7014, 1, 0, 0, 0, 7012, 7013, 5, 58, 0, 0, 7013, 7015, 3, 676, 338, 0, 7014, 7012, 1, 0, 0, 0, 7014, 7015, 1, 0, 0, 0, 7015, 7016, 1, 0, 0, 0, 7016, 7017, 5, 454, 0, 0, 7017, 7041, 1, 0, 0, 0, 7018, 7041, 3, 688, 344, 0, 7019, 7021, 3, 564, 282, 0, 7020, 7022, 3, 754, 377, 0, 7021, 7020, 1, 0, 0, 0, 7021, 7022, 1, 0, 0, 0, 7022, 7041, 1, 0, 0, 0, 7023, 7041, 3, 718, 359, 0, 7024, 7025, 5, 2, 0, 0, 7025, 7026, 3, 676, 338, 0, 7026, 7027, 5, 6, 0, 0, 7027, 7028, 3, 732, 366, 0, 7028, 7029, 5, 3, 0, 0, 7029, 7041, 1, 0, 0, 0, 7030, 7031, 3, 716, 358, 0, 7031, 7032, 5, 125, 0, 0, 7032, 7033, 3, 716, 358, 0, 7033, 7041, 1, 0, 0, 0, 7034, 7041, 3, 782, 391, 0, 7035, 7036, 7, 30, 0, 0, 7036, 7041, 3, 684, 342, 5, 7037, 7038, 3, 726, 363, 0, 7038, 7039, 3, 684, 342, 2, 7039, 7041, 1, 0, 0, 0, 7040, 6952, 1, 0, 0, 0, 7040, 6955, 1, 0, 0, 0, 7040, 6960, 1, 0, 0, 0, 7040, 6962, 1, 0, 0, 0, 7040, 6964, 1, 0, 0, 0, 7040, 6965, 1, 0, 0, 0, 7040, 6966, 1, 0, 0, 0, 7040, 6967, 1, 0, 0, 0, 7040, 6968, 1, 0, 0, 0, 7040, 6981, 1, 0, 0, 0, 7040, 6984, 1, 0, 0, 0, 7040, 6994, 1, 0, 0, 0, 7040, 6995, 1, 0, 0, 0, 7040, 6996, 1, 0, 0, 0, 7040, 6997, 1, 0, 0, 0, 7040, 6998, 1, 0, 0, 0, 7040, 7003, 1, 0, 0, 0, 7040, 7018, 1, 0, 0, 0, 7040, 7019, 1, 0, 0, 0, 7040, 7023, 1, 0, 0, 0, 7040, 7024, 1, 0, 0, 0, 7040, 7030, 1, 0, 0, 0, 7040, 7034, 1, 0, 0, 0, 7040, 7035, 1, 0, 0, 0, 7040, 7037, 1, 0, 0, 0, 7041, 7069, 1, 0, 0, 0, 7042, 7043, 10, 3, 0, 0, 7043, 7044, 3, 724, 362, 0, 7044, 7045, 3, 684, 342, 4, 7045, 7068, 1, 0, 0, 0, 7046, 7047, 10, 6, 0, 0, 7047, 7048, 5, 26, 0, 0, 7048, 7068, 3, 654, 327, 0, 7049, 7050, 10, 4, 0, 0, 7050, 7052, 3, 726, 363, 0, 7051, 7053, 3, 684, 342, 0, 7052, 7051, 1, 0, 0, 0, 7052, 7053, 1, 0, 0, 0, 7053, 7068, 1, 0, 0, 0, 7054, 7055, 10, 1, 0, 0, 7055, 7057, 5, 116, 0, 0, 7056, 7058, 5, 77, 0, 0, 7057, 7056, 1, 0, 0, 0, 7057, 7058, 1, 0, 0, 0, 7058, 7065, 1, 0, 0, 0, 7059, 7060, 5, 56, 0, 0, 7060, 7061, 5, 64, 0, 0, 7061, 7066, 3, 684, 342, 0, 7062, 7063, 5, 275, 0, 0, 7063, 7066, 3, 530, 265, 0, 7064, 7066, 5, 188, 0, 0, 7065, 7059, 1, 0, 0, 0, 7065, 7062, 1, 0, 0, 0, 7065, 7064, 1, 0, 0, 0, 7066, 7068, 1, 0, 0, 0, 7067, 7042, 1, 0, 0, 0, 7067, 7046, 1, 0, 0, 0, 7067, 7049, 1, 0, 0, 0, 7067, 7054, 1, 0, 0, 0, 7068, 7071, 1, 0, 0, 0, 7069, 7067, 1, 0, 0, 0, 7069, 7070, 1, 0, 0, 0, 7070, 685, 1, 0, 0, 0, 7071, 7069, 1, 0, 0, 0, 7072, 7073, 3, 808, 404, 0, 7073, 7094, 5, 2, 0, 0, 7074, 7078, 3, 738, 369, 0, 7075, 7076, 5, 6, 0, 0, 7076, 7077, 5, 101, 0, 0, 7077, 7079, 3, 740, 370, 0, 7078, 7075, 1, 0, 0, 0, 7078, 7079, 1, 0, 0, 0, 7079, 7081, 1, 0, 0, 0, 7080, 7082, 3, 588, 294, 0, 7081, 7080, 1, 0, 0, 0, 7081, 7082, 1, 0, 0, 0, 7082, 7095, 1, 0, 0, 0, 7083, 7084, 5, 101, 0, 0, 7084, 7086, 3, 740, 370, 0, 7085, 7087, 3, 588, 294, 0, 7086, 7085, 1, 0, 0, 0, 7086, 7087, 1, 0, 0, 0, 7087, 7095, 1, 0, 0, 0, 7088, 7089, 7, 81, 0, 0, 7089, 7091, 3, 738, 369, 0, 7090, 7092, 3, 588, 294, 0, 7091, 7090, 1, 0, 0, 0, 7091, 7092, 1, 0, 0, 0, 7092, 7095, 1, 0, 0, 0, 7093, 7095, 5, 9, 0, 0, 7094, 7074, 1, 0, 0, 0, 7094, 7083, 1, 0, 0, 0, 7094, 7088, 1, 0, 0, 0, 7094, 7093, 1, 0, 0, 0, 7094, 7095, 1, 0, 0, 0, 7095, 7096, 1, 0, 0, 0, 7096, 7097, 5, 3, 0, 0, 7097, 687, 1, 0, 0, 0, 7098, 7105, 3, 686, 343, 0, 7099, 7100, 5, 479, 0, 0, 7100, 7101, 5, 66, 0, 0, 7101, 7102, 5, 2, 0, 0, 7102, 7103, 3, 588, 294, 0, 7103, 7104, 5, 3, 0, 0, 7104, 7106, 1, 0, 0, 0, 7105, 7099, 1, 0, 0, 0, 7105, 7106, 1, 0, 0, 0, 7106, 7113, 1, 0, 0, 0, 7107, 7108, 5, 480, 0, 0, 7108, 7109, 5, 2, 0, 0, 7109, 7110, 5, 103, 0, 0, 7110, 7111, 3, 676, 338, 0, 7111, 7112, 5, 3, 0, 0, 7112, 7114, 1, 0, 0, 0, 7113, 7107, 1, 0, 0, 0, 7113, 7114, 1, 0, 0, 0, 7114, 7120, 1, 0, 0, 0, 7115, 7118, 5, 124, 0, 0, 7116, 7119, 3, 710, 355, 0, 7117, 7119, 3, 820, 410, 0, 7118, 7116, 1, 0, 0, 0, 7118, 7117, 1, 0, 0, 0, 7119, 7121, 1, 0, 0, 0, 7120, 7115, 1, 0, 0, 0, 7120, 7121, 1, 0, 0, 0, 7121, 7124, 1, 0, 0, 0, 7122, 7124, 3, 692, 346, 0, 7123, 7098, 1, 0, 0, 0, 7123, 7122, 1, 0, 0, 0, 7124, 689, 1, 0, 0, 0, 7125, 7128, 3, 686, 343, 0, 7126, 7128, 3, 692, 346, 0, 7127, 7125, 1, 0, 0, 0, 7127, 7126, 1, 0, 0, 0, 7128, 691, 1, 0, 0, 0, 7129, 7130, 5, 108, 0, 0, 7130, 7131, 5, 62, 0, 0, 7131, 7132, 5, 2, 0, 0, 7132, 7133, 3, 676, 338, 0, 7133, 7134, 5, 3, 0, 0, 7134, 7304, 1, 0, 0, 0, 7135, 7304, 5, 48, 0, 0, 7136, 7138, 7, 96, 0, 0, 7137, 7139, 3, 662, 331, 0, 7138, 7137, 1, 0, 0, 0, 7138, 7139, 1, 0, 0, 0, 7139, 7304, 1, 0, 0, 0, 7140, 7304, 5, 49, 0, 0, 7141, 7304, 5, 52, 0, 0, 7142, 7304, 5, 89, 0, 0, 7143, 7304, 5, 99, 0, 0, 7144, 7304, 5, 47, 0, 0, 7145, 7304, 5, 111, 0, 0, 7146, 7147, 7, 97, 0, 0, 7147, 7148, 5, 2, 0, 0, 7148, 7149, 3, 676, 338, 0, 7149, 7150, 5, 36, 0, 0, 7150, 7151, 3, 654, 327, 0, 7151, 7152, 5, 3, 0, 0, 7152, 7304, 1, 0, 0, 0, 7153, 7154, 5, 397, 0, 0, 7154, 7159, 5, 2, 0, 0, 7155, 7156, 3, 744, 372, 0, 7156, 7157, 5, 64, 0, 0, 7157, 7158, 3, 676, 338, 0, 7158, 7160, 1, 0, 0, 0, 7159, 7155, 1, 0, 0, 0, 7159, 7160, 1, 0, 0, 0, 7160, 7161, 1, 0, 0, 0, 7161, 7304, 5, 3, 0, 0, 7162, 7163, 5, 489, 0, 0, 7163, 7164, 5, 2, 0, 0, 7164, 7167, 3, 676, 338, 0, 7165, 7166, 5, 6, 0, 0, 7166, 7168, 3, 746, 373, 0, 7167, 7165, 1, 0, 0, 0, 7167, 7168, 1, 0, 0, 0, 7168, 7169, 1, 0, 0, 0, 7169, 7170, 5, 3, 0, 0, 7170, 7304, 1, 0, 0, 0, 7171, 7172, 5, 410, 0, 0, 7172, 7173, 5, 2, 0, 0, 7173, 7174, 3, 676, 338, 0, 7174, 7175, 5, 84, 0, 0, 7175, 7176, 3, 676, 338, 0, 7176, 7177, 5, 64, 0, 0, 7177, 7180, 3, 676, 338, 0, 7178, 7179, 5, 62, 0, 0, 7179, 7181, 3, 676, 338, 0, 7180, 7178, 1, 0, 0, 0, 7180, 7181, 1, 0, 0, 0, 7181, 7182, 1, 0, 0, 0, 7182, 7183, 5, 3, 0, 0, 7183, 7304, 1, 0, 0, 0, 7184, 7185, 5, 411, 0, 0, 7185, 7190, 5, 2, 0, 0, 7186, 7187, 3, 684, 342, 0, 7187, 7188, 5, 68, 0, 0, 7188, 7189, 3, 684, 342, 0, 7189, 7191, 1, 0, 0, 0, 7190, 7186, 1, 0, 0, 0, 7190, 7191, 1, 0, 0, 0, 7191, 7192, 1, 0, 0, 0, 7192, 7304, 5, 3, 0, 0, 7193, 7194, 5, 417, 0, 0, 7194, 7196, 5, 2, 0, 0, 7195, 7197, 3, 748, 374, 0, 7196, 7195, 1, 0, 0, 0, 7196, 7197, 1, 0, 0, 0, 7197, 7198, 1, 0, 0, 0, 7198, 7304, 5, 3, 0, 0, 7199, 7200, 5, 421, 0, 0, 7200, 7202, 5, 2, 0, 0, 7201, 7203, 7, 98, 0, 0, 7202, 7201, 1, 0, 0, 0, 7202, 7203, 1, 0, 0, 0, 7203, 7208, 1, 0, 0, 0, 7204, 7206, 3, 676, 338, 0, 7205, 7204, 1, 0, 0, 0, 7205, 7206, 1, 0, 0, 0, 7206, 7207, 1, 0, 0, 0, 7207, 7209, 5, 64, 0, 0, 7208, 7205, 1, 0, 0, 0, 7208, 7209, 1, 0, 0, 0, 7209, 7210, 1, 0, 0, 0, 7210, 7211, 3, 732, 366, 0, 7211, 7212, 1, 0, 0, 0, 7212, 7213, 5, 3, 0, 0, 7213, 7304, 1, 0, 0, 0, 7214, 7215, 5, 408, 0, 0, 7215, 7216, 5, 2, 0, 0, 7216, 7217, 3, 676, 338, 0, 7217, 7218, 5, 6, 0, 0, 7218, 7219, 3, 676, 338, 0, 7219, 7220, 5, 3, 0, 0, 7220, 7304, 1, 0, 0, 0, 7221, 7222, 7, 99, 0, 0, 7222, 7304, 3, 536, 268, 0, 7223, 7224, 5, 426, 0, 0, 7224, 7225, 5, 2, 0, 0, 7225, 7226, 5, 266, 0, 0, 7226, 7236, 3, 826, 413, 0, 7227, 7234, 5, 6, 0, 0, 7228, 7229, 5, 424, 0, 0, 7229, 7230, 5, 2, 0, 0, 7230, 7231, 3, 694, 347, 0, 7231, 7232, 5, 3, 0, 0, 7232, 7235, 1, 0, 0, 0, 7233, 7235, 3, 732, 366, 0, 7234, 7228, 1, 0, 0, 0, 7234, 7233, 1, 0, 0, 0, 7235, 7237, 1, 0, 0, 0, 7236, 7227, 1, 0, 0, 0, 7236, 7237, 1, 0, 0, 0, 7237, 7238, 1, 0, 0, 0, 7238, 7239, 5, 3, 0, 0, 7239, 7304, 1, 0, 0, 0, 7240, 7241, 5, 427, 0, 0, 7241, 7242, 5, 2, 0, 0, 7242, 7243, 3, 684, 342, 0, 7243, 7244, 3, 700, 350, 0, 7244, 7245, 5, 3, 0, 0, 7245, 7304, 1, 0, 0, 0, 7246, 7247, 5, 428, 0, 0, 7247, 7248, 5, 2, 0, 0, 7248, 7249, 3, 694, 347, 0, 7249, 7250, 5, 3, 0, 0, 7250, 7304, 1, 0, 0, 0, 7251, 7252, 5, 429, 0, 0, 7252, 7253, 5, 2, 0, 0, 7253, 7254, 3, 698, 349, 0, 7254, 7257, 3, 676, 338, 0, 7255, 7256, 7, 100, 0, 0, 7256, 7258, 5, 378, 0, 0, 7257, 7255, 1, 0, 0, 0, 7257, 7258, 1, 0, 0, 0, 7258, 7259, 1, 0, 0, 0, 7259, 7260, 5, 3, 0, 0, 7260, 7304, 1, 0, 0, 0, 7261, 7262, 5, 430, 0, 0, 7262, 7263, 5, 2, 0, 0, 7263, 7264, 5, 266, 0, 0, 7264, 7267, 3, 826, 413, 0, 7265, 7266, 5, 6, 0, 0, 7266, 7268, 3, 676, 338, 0, 7267, 7265, 1, 0, 0, 0, 7267, 7268, 1, 0, 0, 0, 7268, 7269, 1, 0, 0, 0, 7269, 7270, 5, 3, 0, 0, 7270, 7304, 1, 0, 0, 0, 7271, 7272, 5, 431, 0, 0, 7272, 7273, 5, 2, 0, 0, 7273, 7274, 5, 383, 0, 0, 7274, 7275, 3, 676, 338, 0, 7275, 7276, 5, 6, 0, 0, 7276, 7280, 5, 375, 0, 0, 7277, 7278, 5, 269, 0, 0, 7278, 7281, 5, 450, 0, 0, 7279, 7281, 3, 676, 338, 0, 7280, 7277, 1, 0, 0, 0, 7280, 7279, 1, 0, 0, 0, 7281, 7291, 1, 0, 0, 0, 7282, 7283, 5, 6, 0, 0, 7283, 7289, 5, 339, 0, 0, 7284, 7286, 5, 269, 0, 0, 7285, 7284, 1, 0, 0, 0, 7285, 7286, 1, 0, 0, 0, 7286, 7287, 1, 0, 0, 0, 7287, 7290, 5, 450, 0, 0, 7288, 7290, 5, 385, 0, 0, 7289, 7285, 1, 0, 0, 0, 7289, 7288, 1, 0, 0, 0, 7290, 7292, 1, 0, 0, 0, 7291, 7282, 1, 0, 0, 0, 7291, 7292, 1, 0, 0, 0, 7292, 7293, 1, 0, 0, 0, 7293, 7294, 5, 3, 0, 0, 7294, 7304, 1, 0, 0, 0, 7295, 7296, 5, 432, 0, 0, 7296, 7297, 5, 2, 0, 0, 7297, 7298, 3, 698, 349, 0, 7298, 7299, 3, 676, 338, 0, 7299, 7300, 5, 36, 0, 0, 7300, 7301, 3, 656, 328, 0, 7301, 7302, 5, 3, 0, 0, 7302, 7304, 1, 0, 0, 0, 7303, 7129, 1, 0, 0, 0, 7303, 7135, 1, 0, 0, 0, 7303, 7136, 1, 0, 0, 0, 7303, 7140, 1, 0, 0, 0, 7303, 7141, 1, 0, 0, 0, 7303, 7142, 1, 0, 0, 0, 7303, 7143, 1, 0, 0, 0, 7303, 7144, 1, 0, 0, 0, 7303, 7145, 1, 0, 0, 0, 7303, 7146, 1, 0, 0, 0, 7303, 7153, 1, 0, 0, 0, 7303, 7162, 1, 0, 0, 0, 7303, 7171, 1, 0, 0, 0, 7303, 7184, 1, 0, 0, 0, 7303, 7193, 1, 0, 0, 0, 7303, 7199, 1, 0, 0, 0, 7303, 7214, 1, 0, 0, 0, 7303, 7221, 1, 0, 0, 0, 7303, 7223, 1, 0, 0, 0, 7303, 7240, 1, 0, 0, 0, 7303, 7246, 1, 0, 0, 0, 7303, 7251, 1, 0, 0, 0, 7303, 7261, 1, 0, 0, 0, 7303, 7271, 1, 0, 0, 0, 7303, 7295, 1, 0, 0, 0, 7304, 693, 1, 0, 0, 0, 7305, 7310, 3, 696, 348, 0, 7306, 7307, 5, 6, 0, 0, 7307, 7309, 3, 696, 348, 0, 7308, 7306, 1, 0, 0, 0, 7309, 7312, 1, 0, 0, 0, 7310, 7308, 1, 0, 0, 0, 7310, 7311, 1, 0, 0, 0, 7311, 695, 1, 0, 0, 0, 7312, 7310, 1, 0, 0, 0, 7313, 7316, 3, 676, 338, 0, 7314, 7315, 5, 36, 0, 0, 7315, 7317, 3, 826, 413, 0, 7316, 7314, 1, 0, 0, 0, 7316, 7317, 1, 0, 0, 0, 7317, 697, 1, 0, 0, 0, 7318, 7319, 7, 101, 0, 0, 7319, 699, 1, 0, 0, 0, 7320, 7322, 5, 286, 0, 0, 7321, 7323, 3, 702, 351, 0, 7322, 7321, 1, 0, 0, 0, 7322, 7323, 1, 0, 0, 0, 7323, 7324, 1, 0, 0, 0, 7324, 7326, 3, 684, 342, 0, 7325, 7327, 3, 702, 351, 0, 7326, 7325, 1, 0, 0, 0, 7326, 7327, 1, 0, 0, 0, 7327, 701, 1, 0, 0, 0, 7328, 7329, 5, 147, 0, 0, 7329, 7330, 7, 102, 0, 0, 7330, 703, 1, 0, 0, 0, 7331, 7332, 5, 104, 0, 0, 7332, 7337, 3, 706, 353, 0, 7333, 7334, 5, 6, 0, 0, 7334, 7336, 3, 706, 353, 0, 7335, 7333, 1, 0, 0, 0, 7336, 7339, 1, 0, 0, 0, 7337, 7335, 1, 0, 0, 0, 7337, 7338, 1, 0, 0, 0, 7338, 705, 1, 0, 0, 0, 7339, 7337, 1, 0, 0, 0, 7340, 7341, 3, 820, 410, 0, 7341, 7342, 5, 36, 0, 0, 7342, 7343, 3, 710, 355, 0, 7343, 707, 1, 0, 0, 0, 7344, 7347, 5, 124, 0, 0, 7345, 7348, 3, 710, 355, 0, 7346, 7348, 3, 820, 410, 0, 7347, 7345, 1, 0, 0, 0, 7347, 7346, 1, 0, 0, 0, 7348, 709, 1, 0, 0, 0, 7349, 7351, 5, 2, 0, 0, 7350, 7352, 3, 820, 410, 0, 7351, 7350, 1, 0, 0, 0, 7351, 7352, 1, 0, 0, 0, 7352, 7356, 1, 0, 0, 0, 7353, 7354, 5, 285, 0, 0, 7354, 7355, 5, 147, 0, 0, 7355, 7357, 3, 732, 366, 0, 7356, 7353, 1, 0, 0, 0, 7356, 7357, 1, 0, 0, 0, 7357, 7359, 1, 0, 0, 0, 7358, 7360, 3, 588, 294, 0, 7359, 7358, 1, 0, 0, 0, 7359, 7360, 1, 0, 0, 0, 7360, 7362, 1, 0, 0, 0, 7361, 7363, 3, 712, 356, 0, 7362, 7361, 1, 0, 0, 0, 7362, 7363, 1, 0, 0, 0, 7363, 7364, 1, 0, 0, 0, 7364, 7365, 5, 3, 0, 0, 7365, 711, 1, 0, 0, 0, 7366, 7371, 7, 103, 0, 0, 7367, 7368, 5, 387, 0, 0, 7368, 7369, 3, 714, 357, 0, 7369, 7370, 5, 33, 0, 0, 7370, 7372, 1, 0, 0, 0, 7371, 7367, 1, 0, 0, 0, 7371, 7372, 1, 0, 0, 0, 7372, 7373, 1, 0, 0, 0, 7373, 7374, 3, 714, 357, 0, 7374, 7384, 1, 0, 0, 0, 7375, 7382, 5, 199, 0, 0, 7376, 7377, 5, 434, 0, 0, 7377, 7383, 5, 414, 0, 0, 7378, 7383, 5, 66, 0, 0, 7379, 7383, 5, 467, 0, 0, 7380, 7381, 5, 269, 0, 0, 7381, 7383, 5, 482, 0, 0, 7382, 7376, 1, 0, 0, 0, 7382, 7378, 1, 0, 0, 0, 7382, 7379, 1, 0, 0, 0, 7382, 7380, 1, 0, 0, 0, 7383, 7385, 1, 0, 0, 0, 7384, 7375, 1, 0, 0, 0, 7384, 7385, 1, 0, 0, 0, 7385, 713, 1, 0, 0, 0, 7386, 7389, 5, 362, 0, 0, 7387, 7389, 3, 676, 338, 0, 7388, 7386, 1, 0, 0, 0, 7388, 7387, 1, 0, 0, 0, 7389, 7390, 1, 0, 0, 0, 7390, 7394, 7, 104, 0, 0, 7391, 7392, 5, 434, 0, 0, 7392, 7394, 5, 414, 0, 0, 7393, 7388, 1, 0, 0, 0, 7393, 7391, 1, 0, 0, 0, 7394, 715, 1, 0, 0, 0, 7395, 7403, 3, 718, 359, 0, 7396, 7397, 5, 2, 0, 0, 7397, 7398, 3, 732, 366, 0, 7398, 7399, 5, 6, 0, 0, 7399, 7400, 3, 676, 338, 0, 7400, 7401, 5, 3, 0, 0, 7401, 7403, 1, 0, 0, 0, 7402, 7395, 1, 0, 0, 0, 7402, 7396, 1, 0, 0, 0, 7403, 717, 1, 0, 0, 0, 7404, 7405, 5, 414, 0, 0, 7405, 7407, 5, 2, 0, 0, 7406, 7408, 3, 732, 366, 0, 7407, 7406, 1, 0, 0, 0, 7407, 7408, 1, 0, 0, 0, 7408, 7409, 1, 0, 0, 0, 7409, 7410, 5, 3, 0, 0, 7410, 719, 1, 0, 0, 0, 7411, 7412, 7, 105, 0, 0, 7412, 721, 1, 0, 0, 0, 7413, 7416, 5, 29, 0, 0, 7414, 7416, 3, 724, 362, 0, 7415, 7413, 1, 0, 0, 0, 7415, 7414, 1, 0, 0, 0, 7416, 723, 1, 0, 0, 0, 7417, 7418, 7, 106, 0, 0, 7418, 725, 1, 0, 0, 0, 7419, 7426, 5, 29, 0, 0, 7420, 7421, 5, 278, 0, 0, 7421, 7422, 5, 2, 0, 0, 7422, 7423, 3, 416, 208, 0, 7423, 7424, 5, 3, 0, 0, 7424, 7426, 1, 0, 0, 0, 7425, 7419, 1, 0, 0, 0, 7425, 7420, 1, 0, 0, 0, 7426, 727, 1, 0, 0, 0, 7427, 7434, 3, 722, 361, 0, 7428, 7429, 5, 278, 0, 0, 7429, 7430, 5, 2, 0, 0, 7430, 7431, 3, 416, 208, 0, 7431, 7432, 5, 3, 0, 0, 7432, 7434, 1, 0, 0, 0, 7433, 7427, 1, 0, 0, 0, 7433, 7428, 1, 0, 0, 0, 7434, 729, 1, 0, 0, 0, 7435, 7441, 3, 728, 364, 0, 7436, 7438, 5, 77, 0, 0, 7437, 7436, 1, 0, 0, 0, 7437, 7438, 1, 0, 0, 0, 7438, 7439, 1, 0, 0, 0, 7439, 7441, 7, 107, 0, 0, 7440, 7435, 1, 0, 0, 0, 7440, 7437, 1, 0, 0, 0, 7441, 731, 1, 0, 0, 0, 7442, 7447, 3, 676, 338, 0, 7443, 7444, 5, 6, 0, 0, 7444, 7446, 3, 676, 338, 0, 7445, 7443, 1, 0, 0, 0, 7446, 7449, 1, 0, 0, 0, 7447, 7445, 1, 0, 0, 0, 7447, 7448, 1, 0, 0, 0, 7448, 733, 1, 0, 0, 0, 7449, 7447, 1, 0, 0, 0, 7450, 7451, 5, 2, 0, 0, 7451, 7452, 3, 676, 338, 0, 7452, 7453, 5, 3, 0, 0, 7453, 7456, 1, 0, 0, 0, 7454, 7456, 3, 802, 401, 0, 7455, 7450, 1, 0, 0, 0, 7455, 7454, 1, 0, 0, 0, 7456, 735, 1, 0, 0, 0, 7457, 7460, 3, 676, 338, 0, 7458, 7460, 3, 802, 401, 0, 7459, 7457, 1, 0, 0, 0, 7459, 7458, 1, 0, 0, 0, 7460, 737, 1, 0, 0, 0, 7461, 7466, 3, 740, 370, 0, 7462, 7463, 5, 6, 0, 0, 7463, 7465, 3, 740, 370, 0, 7464, 7462, 1, 0, 0, 0, 7465, 7468, 1, 0, 0, 0, 7466, 7464, 1, 0, 0, 0, 7466, 7467, 1, 0, 0, 0, 7467, 739, 1, 0, 0, 0, 7468, 7466, 1, 0, 0, 0, 7469, 7477, 3, 802, 401, 0, 7470, 7477, 3, 676, 338, 0, 7471, 7474, 3, 822, 411, 0, 7472, 7473, 7, 108, 0, 0, 7473, 7475, 3, 676, 338, 0, 7474, 7472, 1, 0, 0, 0, 7474, 7475, 1, 0, 0, 0, 7475, 7477, 1, 0, 0, 0, 7476, 7469, 1, 0, 0, 0, 7476, 7470, 1, 0, 0, 0, 7476, 7471, 1, 0, 0, 0, 7477, 741, 1, 0, 0, 0, 7478, 7488, 5, 4, 0, 0, 7479, 7489, 3, 732, 366, 0, 7480, 7485, 3, 742, 371, 0, 7481, 7482, 5, 6, 0, 0, 7482, 7484, 3, 742, 371, 0, 7483, 7481, 1, 0, 0, 0, 7484, 7487, 1, 0, 0, 0, 7485, 7483, 1, 0, 0, 0, 7485, 7486, 1, 0, 0, 0, 7486, 7489, 1, 0, 0, 0, 7487, 7485, 1, 0, 0, 0, 7488, 7479, 1, 0, 0, 0, 7488, 7480, 1, 0, 0, 0, 7488, 7489, 1, 0, 0, 0, 7489, 7490, 1, 0, 0, 0, 7490, 7491, 5, 5, 0, 0, 7491, 743, 1, 0, 0, 0, 7492, 7501, 3, 828, 414, 0, 7493, 7501, 5, 384, 0, 0, 7494, 7501, 5, 264, 0, 0, 7495, 7501, 5, 176, 0, 0, 7496, 7501, 5, 218, 0, 0, 7497, 7501, 5, 261, 0, 0, 7498, 7501, 5, 326, 0, 0, 7499, 7501, 3, 810, 405, 0, 7500, 7492, 1, 0, 0, 0, 7500, 7493, 1, 0, 0, 0, 7500, 7494, 1, 0, 0, 0, 7500, 7495, 1, 0, 0, 0, 7500, 7496, 1, 0, 0, 0, 7500, 7497, 1, 0, 0, 0, 7500, 7498, 1, 0, 0, 0, 7500, 7499, 1, 0, 0, 0, 7501, 745, 1, 0, 0, 0, 7502, 7503, 7, 109, 0, 0, 7503, 747, 1, 0, 0, 0, 7504, 7505, 3, 676, 338, 0, 7505, 7506, 5, 64, 0, 0, 7506, 7509, 3, 676, 338, 0, 7507, 7508, 5, 62, 0, 0, 7508, 7510, 3, 676, 338, 0, 7509, 7507, 1, 0, 0, 0, 7509, 7510, 1, 0, 0, 0, 7510, 7526, 1, 0, 0, 0, 7511, 7512, 3, 676, 338, 0, 7512, 7513, 5, 62, 0, 0, 7513, 7516, 3, 676, 338, 0, 7514, 7515, 5, 64, 0, 0, 7515, 7517, 3, 676, 338, 0, 7516, 7514, 1, 0, 0, 0, 7516, 7517, 1, 0, 0, 0, 7517, 7526, 1, 0, 0, 0, 7518, 7519, 3, 676, 338, 0, 7519, 7520, 5, 127, 0, 0, 7520, 7521, 3, 676, 338, 0, 7521, 7522, 5, 197, 0, 0, 7522, 7523, 3, 676, 338, 0, 7523, 7526, 1, 0, 0, 0, 7524, 7526, 3, 732, 366, 0, 7525, 7504, 1, 0, 0, 0, 7525, 7511, 1, 0, 0, 0, 7525, 7518, 1, 0, 0, 0, 7525, 7524, 1, 0, 0, 0, 7526, 749, 1, 0, 0, 0, 7527, 7528, 5, 102, 0, 0, 7528, 7529, 3, 676, 338, 0, 7529, 7530, 5, 93, 0, 0, 7530, 7531, 3, 676, 338, 0, 7531, 751, 1, 0, 0, 0, 7532, 7535, 5, 11, 0, 0, 7533, 7536, 3, 826, 413, 0, 7534, 7536, 5, 9, 0, 0, 7535, 7533, 1, 0, 0, 0, 7535, 7534, 1, 0, 0, 0, 7536, 7550, 1, 0, 0, 0, 7537, 7546, 5, 4, 0, 0, 7538, 7547, 3, 676, 338, 0, 7539, 7541, 3, 676, 338, 0, 7540, 7539, 1, 0, 0, 0, 7540, 7541, 1, 0, 0, 0, 7541, 7542, 1, 0, 0, 0, 7542, 7544, 5, 8, 0, 0, 7543, 7545, 3, 676, 338, 0, 7544, 7543, 1, 0, 0, 0, 7544, 7545, 1, 0, 0, 0, 7545, 7547, 1, 0, 0, 0, 7546, 7538, 1, 0, 0, 0, 7546, 7540, 1, 0, 0, 0, 7547, 7548, 1, 0, 0, 0, 7548, 7550, 5, 5, 0, 0, 7549, 7532, 1, 0, 0, 0, 7549, 7537, 1, 0, 0, 0, 7550, 753, 1, 0, 0, 0, 7551, 7553, 3, 752, 376, 0, 7552, 7551, 1, 0, 0, 0, 7553, 7554, 1, 0, 0, 0, 7554, 7552, 1, 0, 0, 0, 7554, 7555, 1, 0, 0, 0, 7555, 755, 1, 0, 0, 0, 7556, 7558, 3, 752, 376, 0, 7557, 7556, 1, 0, 0, 0, 7558, 7561, 1, 0, 0, 0, 7559, 7557, 1, 0, 0, 0, 7559, 7560, 1, 0, 0, 0, 7560, 757, 1, 0, 0, 0, 7561, 7559, 1, 0, 0, 0, 7562, 7567, 3, 760, 380, 0, 7563, 7564, 5, 6, 0, 0, 7564, 7566, 3, 760, 380, 0, 7565, 7563, 1, 0, 0, 0, 7566, 7569, 1, 0, 0, 0, 7567, 7565, 1, 0, 0, 0, 7567, 7568, 1, 0, 0, 0, 7568, 759, 1, 0, 0, 0, 7569, 7567, 1, 0, 0, 0, 7570, 7575, 3, 736, 368, 0, 7571, 7572, 5, 36, 0, 0, 7572, 7576, 3, 826, 413, 0, 7573, 7576, 3, 828, 414, 0, 7574, 7576, 1, 0, 0, 0, 7575, 7571, 1, 0, 0, 0, 7575, 7573, 1, 0, 0, 0, 7575, 7574, 1, 0, 0, 0, 7576, 7579, 1, 0, 0, 0, 7577, 7579, 5, 9, 0, 0, 7578, 7570, 1, 0, 0, 0, 7578, 7577, 1, 0, 0, 0, 7579, 761, 1, 0, 0, 0, 7580, 7585, 3, 782, 391, 0, 7581, 7582, 5, 6, 0, 0, 7582, 7584, 3, 782, 391, 0, 7583, 7581, 1, 0, 0, 0, 7584, 7587, 1, 0, 0, 0, 7585, 7583, 1, 0, 0, 0, 7585, 7586, 1, 0, 0, 0, 7586, 763, 1, 0, 0, 0, 7587, 7585, 1, 0, 0, 0, 7588, 7593, 3, 776, 388, 0, 7589, 7590, 5, 6, 0, 0, 7590, 7592, 3, 776, 388, 0, 7591, 7589, 1, 0, 0, 0, 7592, 7595, 1, 0, 0, 0, 7593, 7591, 1, 0, 0, 0, 7593, 7594, 1, 0, 0, 0, 7594, 765, 1, 0, 0, 0, 7595, 7593, 1, 0, 0, 0, 7596, 7601, 3, 792, 396, 0, 7597, 7598, 5, 6, 0, 0, 7598, 7600, 3, 792, 396, 0, 7599, 7597, 1, 0, 0, 0, 7600, 7603, 1, 0, 0, 0, 7601, 7599, 1, 0, 0, 0, 7601, 7602, 1, 0, 0, 0, 7602, 767, 1, 0, 0, 0, 7603, 7601, 1, 0, 0, 0, 7604, 7609, 3, 790, 395, 0, 7605, 7606, 5, 6, 0, 0, 7606, 7608, 3, 790, 395, 0, 7607, 7605, 1, 0, 0, 0, 7608, 7611, 1, 0, 0, 0, 7609, 7607, 1, 0, 0, 0, 7609, 7610, 1, 0, 0, 0, 7610, 769, 1, 0, 0, 0, 7611, 7609, 1, 0, 0, 0, 7612, 7613, 3, 782, 391, 0, 7613, 771, 1, 0, 0, 0, 7614, 7615, 3, 782, 391, 0, 7615, 773, 1, 0, 0, 0, 7616, 7617, 3, 782, 391, 0, 7617, 775, 1, 0, 0, 0, 7618, 7619, 3, 782, 391, 0, 7619, 777, 1, 0, 0, 0, 7620, 7621, 3, 782, 391, 0, 7621, 779, 1, 0, 0, 0, 7622, 7623, 3, 318, 159, 0, 7623, 781, 1, 0, 0, 0, 7624, 7626, 3, 820, 410, 0, 7625, 7627, 3, 754, 377, 0, 7626, 7625, 1, 0, 0, 0, 7626, 7627, 1, 0, 0, 0, 7627, 783, 1, 0, 0, 0, 7628, 7633, 3, 772, 386, 0, 7629, 7630, 5, 6, 0, 0, 7630, 7632, 3, 772, 386, 0, 7631, 7629, 1, 0, 0, 0, 7632, 7635, 1, 0, 0, 0, 7633, 7631, 1, 0, 0, 0, 7633, 7634, 1, 0, 0, 0, 7634, 785, 1, 0, 0, 0, 7635, 7633, 1, 0, 0, 0, 7636, 7641, 3, 820, 410, 0, 7637, 7638, 5, 6, 0, 0, 7638, 7640, 3, 820, 410, 0, 7639, 7637, 1, 0, 0, 0, 7640, 7643, 1, 0, 0, 0, 7641, 7639, 1, 0, 0, 0, 7641, 7642, 1, 0, 0, 0, 7642, 787, 1, 0, 0, 0, 7643, 7641, 1, 0, 0, 0, 7644, 7645, 3, 318, 159, 0, 7645, 789, 1, 0, 0, 0, 7646, 7647, 3, 318, 159, 0, 7647, 791, 1, 0, 0, 0, 7648, 7649, 3, 318, 159, 0, 7649, 793, 1, 0, 0, 0, 7650, 7651, 3, 820, 410, 0, 7651, 795, 1, 0, 0, 0, 7652, 7653, 3, 820, 410, 0, 7653, 797, 1, 0, 0, 0, 7654, 7659, 3, 822, 411, 0, 7655, 7656, 3, 820, 410, 0, 7656, 7657, 3, 754, 377, 0, 7657, 7659, 1, 0, 0, 0, 7658, 7654, 1, 0, 0, 0, 7658, 7655, 1, 0, 0, 0, 7659, 799, 1, 0, 0, 0, 7660, 7665, 3, 822, 411, 0, 7661, 7662, 3, 820, 410, 0, 7662, 7663, 3, 754, 377, 0, 7663, 7665, 1, 0, 0, 0, 7664, 7660, 1, 0, 0, 0, 7664, 7661, 1, 0, 0, 0, 7665, 801, 1, 0, 0, 0, 7666, 7667, 3, 820, 410, 0, 7667, 7668, 3, 756, 378, 0, 7668, 7671, 1, 0, 0, 0, 7669, 7671, 4, 401, 10, 0, 7670, 7666, 1, 0, 0, 0, 7670, 7669, 1, 0, 0, 0, 7671, 803, 1, 0, 0, 0, 7672, 7673, 3, 820, 410, 0, 7673, 805, 1, 0, 0, 0, 7674, 7679, 3, 822, 411, 0, 7675, 7676, 3, 820, 410, 0, 7676, 7677, 3, 754, 377, 0, 7677, 7679, 1, 0, 0, 0, 7678, 7674, 1, 0, 0, 0, 7678, 7675, 1, 0, 0, 0, 7679, 807, 1, 0, 0, 0, 7680, 7685, 3, 822, 411, 0, 7681, 7682, 3, 820, 410, 0, 7682, 7683, 3, 754, 377, 0, 7683, 7685, 1, 0, 0, 0, 7684, 7680, 1, 0, 0, 0, 7684, 7681, 1, 0, 0, 0, 7685, 809, 1, 0, 0, 0, 7686, 7689, 3, 812, 406, 0, 7687, 7688, 5, 487, 0, 0, 7688, 7690, 3, 812, 406, 0, 7689, 7687, 1, 0, 0, 0, 7689, 7690, 1, 0, 0, 0, 7690, 811, 1, 0, 0, 0, 7691, 7703, 5, 561, 0, 0, 7692, 7703, 5, 563, 0, 0, 7693, 7697, 5, 565, 0, 0, 7694, 7696, 5, 591, 0, 0, 7695, 7694, 1, 0, 0, 0, 7696, 7699, 1, 0, 0, 0, 7697, 7695, 1, 0, 0, 0, 7697, 7698, 1, 0, 0, 0, 7698, 7700, 1, 0, 0, 0, 7699, 7697, 1, 0, 0, 0, 7700, 7703, 5, 592, 0, 0, 7701, 7703, 5, 587, 0, 0, 7702, 7691, 1, 0, 0, 0, 7702, 7692, 1, 0, 0, 0, 7702, 7693, 1, 0, 0, 0, 7702, 7701, 1, 0, 0, 0, 7703, 813, 1, 0, 0, 0, 7704, 7706, 7, 30, 0, 0, 7705, 7704, 1, 0, 0, 0, 7705, 7706, 1, 0, 0, 0, 7706, 7707, 1, 0, 0, 0, 7707, 7708, 5, 574, 0, 0, 7708, 815, 1, 0, 0, 0, 7709, 7715, 3, 824, 412, 0, 7710, 7715, 5, 52, 0, 0, 7711, 7715, 5, 49, 0, 0, 7712, 7715, 5, 89, 0, 0, 7713, 7715, 5, 524, 0, 0, 7714, 7709, 1, 0, 0, 0, 7714, 7710, 1, 0, 0, 0, 7714, 7711, 1, 0, 0, 0, 7714, 7712, 1, 0, 0, 0, 7714, 7713, 1, 0, 0, 0, 7715, 817, 1, 0, 0, 0, 7716, 7721, 3, 816, 408, 0, 7717, 7718, 5, 6, 0, 0, 7718, 7720, 3, 816, 408, 0, 7719, 7717, 1, 0, 0, 0, 7720, 7723, 1, 0, 0, 0, 7721, 7719, 1, 0, 0, 0, 7721, 7722, 1, 0, 0, 0, 7722, 819, 1, 0, 0, 0, 7723, 7721, 1, 0, 0, 0, 7724, 7727, 3, 828, 414, 0, 7725, 7727, 3, 832, 416, 0, 7726, 7724, 1, 0, 0, 0, 7726, 7725, 1, 0, 0, 0, 7727, 821, 1, 0, 0, 0, 7728, 7731, 3, 828, 414, 0, 7729, 7731, 3, 834, 417, 0, 7730, 7728, 1, 0, 0, 0, 7730, 7729, 1, 0, 0, 0, 7731, 823, 1, 0, 0, 0, 7732, 7736, 3, 828, 414, 0, 7733, 7736, 3, 832, 416, 0, 7734, 7736, 3, 834, 417, 0, 7735, 7732, 1, 0, 0, 0, 7735, 7733, 1, 0, 0, 0, 7735, 7734, 1, 0, 0, 0, 7736, 825, 1, 0, 0, 0, 7737, 7742, 3, 828, 414, 0, 7738, 7742, 3, 832, 416, 0, 7739, 7742, 3, 834, 417, 0, 7740, 7742, 3, 836, 418, 0, 7741, 7737, 1, 0, 0, 0, 7741, 7738, 1, 0, 0, 0, 7741, 7739, 1, 0, 0, 0, 7741, 7740, 1, 0, 0, 0, 7742, 827, 1, 0, 0, 0, 7743, 7746, 5, 552, 0, 0, 7744, 7745, 5, 487, 0, 0, 7745, 7747, 3, 812, 406, 0, 7746, 7744, 1, 0, 0, 0, 7746, 7747, 1, 0, 0, 0, 7747, 7755, 1, 0, 0, 0, 7748, 7755, 3, 810, 405, 0, 7749, 7755, 5, 553, 0, 0, 7750, 7755, 5, 557, 0, 0, 7751, 7755, 5, 577, 0, 0, 7752, 7755, 5, 578, 0, 0, 7753, 7755, 3, 830, 415, 0, 7754, 7743, 1, 0, 0, 0, 7754, 7748, 1, 0, 0, 0, 7754, 7749, 1, 0, 0, 0, 7754, 7750, 1, 0, 0, 0, 7754, 7751, 1, 0, 0, 0, 7754, 7752, 1, 0, 0, 0, 7754, 7753, 1, 0, 0, 0, 7755, 829, 1, 0, 0, 0, 7756, 7757, 7, 110, 0, 0, 7757, 831, 1, 0, 0, 0, 7758, 7810, 5, 387, 0, 0, 7759, 7810, 5, 388, 0, 0, 7760, 7810, 3, 664, 332, 0, 7761, 7810, 5, 390, 0, 0, 7762, 7810, 5, 391, 0, 0, 7763, 7810, 3, 666, 333, 0, 7764, 7810, 5, 393, 0, 0, 7765, 7810, 5, 394, 0, 0, 7766, 7810, 5, 395, 0, 0, 7767, 7810, 5, 396, 0, 0, 7768, 7810, 5, 397, 0, 0, 7769, 7810, 5, 398, 0, 0, 7770, 7810, 5, 399, 0, 0, 7771, 7810, 5, 470, 0, 0, 7772, 7810, 5, 400, 0, 0, 7773, 7810, 5, 401, 0, 0, 7774, 7810, 5, 402, 0, 0, 7775, 7810, 5, 403, 0, 0, 7776, 7810, 5, 404, 0, 0, 7777, 7810, 5, 405, 0, 0, 7778, 7810, 5, 406, 0, 0, 7779, 7810, 5, 407, 0, 0, 7780, 7810, 5, 489, 0, 0, 7781, 7810, 5, 408, 0, 0, 7782, 7810, 3, 660, 330, 0, 7783, 7810, 5, 453, 0, 0, 7784, 7810, 5, 410, 0, 0, 7785, 7810, 5, 411, 0, 0, 7786, 7810, 5, 412, 0, 0, 7787, 7810, 5, 413, 0, 0, 7788, 7810, 5, 414, 0, 0, 7789, 7810, 5, 415, 0, 0, 7790, 7810, 5, 416, 0, 0, 7791, 7810, 5, 417, 0, 0, 7792, 7810, 5, 418, 0, 0, 7793, 7810, 5, 419, 0, 0, 7794, 7810, 5, 420, 0, 0, 7795, 7810, 5, 421, 0, 0, 7796, 7810, 5, 422, 0, 0, 7797, 7810, 5, 423, 0, 0, 7798, 7810, 5, 424, 0, 0, 7799, 7810, 5, 425, 0, 0, 7800, 7810, 5, 426, 0, 0, 7801, 7810, 5, 427, 0, 0, 7802, 7810, 5, 428, 0, 0, 7803, 7810, 5, 476, 0, 0, 7804, 7810, 5, 429, 0, 0, 7805, 7810, 5, 430, 0, 0, 7806, 7810, 5, 431, 0, 0, 7807, 7810, 5, 432, 0, 0, 7808, 7810, 5, 474, 0, 0, 7809, 7758, 1, 0, 0, 0, 7809, 7759, 1, 0, 0, 0, 7809, 7760, 1, 0, 0, 0, 7809, 7761, 1, 0, 0, 0, 7809, 7762, 1, 0, 0, 0, 7809, 7763, 1, 0, 0, 0, 7809, 7764, 1, 0, 0, 0, 7809, 7765, 1, 0, 0, 0, 7809, 7766, 1, 0, 0, 0, 7809, 7767, 1, 0, 0, 0, 7809, 7768, 1, 0, 0, 0, 7809, 7769, 1, 0, 0, 0, 7809, 7770, 1, 0, 0, 0, 7809, 7771, 1, 0, 0, 0, 7809, 7772, 1, 0, 0, 0, 7809, 7773, 1, 0, 0, 0, 7809, 7774, 1, 0, 0, 0, 7809, 7775, 1, 0, 0, 0, 7809, 7776, 1, 0, 0, 0, 7809, 7777, 1, 0, 0, 0, 7809, 7778, 1, 0, 0, 0, 7809, 7779, 1, 0, 0, 0, 7809, 7780, 1, 0, 0, 0, 7809, 7781, 1, 0, 0, 0, 7809, 7782, 1, 0, 0, 0, 7809, 7783, 1, 0, 0, 0, 7809, 7784, 1, 0, 0, 0, 7809, 7785, 1, 0, 0, 0, 7809, 7786, 1, 0, 0, 0, 7809, 7787, 1, 0, 0, 0, 7809, 7788, 1, 0, 0, 0, 7809, 7789, 1, 0, 0, 0, 7809, 7790, 1, 0, 0, 0, 7809, 7791, 1, 0, 0, 0, 7809, 7792, 1, 0, 0, 0, 7809, 7793, 1, 0, 0, 0, 7809, 7794, 1, 0, 0, 0, 7809, 7795, 1, 0, 0, 0, 7809, 7796, 1, 0, 0, 0, 7809, 7797, 1, 0, 0, 0, 7809, 7798, 1, 0, 0, 0, 7809, 7799, 1, 0, 0, 0, 7809, 7800, 1, 0, 0, 0, 7809, 7801, 1, 0, 0, 0, 7809, 7802, 1, 0, 0, 0, 7809, 7803, 1, 0, 0, 0, 7809, 7804, 1, 0, 0, 0, 7809, 7805, 1, 0, 0, 0, 7809, 7806, 1, 0, 0, 0, 7809, 7807, 1, 0, 0, 0, 7809, 7808, 1, 0, 0, 0, 7810, 833, 1, 0, 0, 0, 7811, 7812, 7, 111, 0, 0, 7812, 835, 1, 0, 0, 0, 7813, 7814, 7, 112, 0, 0, 7814, 837, 1, 0, 0, 0, 7815, 7817, 3, 840, 420, 0, 7816, 7815, 1, 0, 0, 0, 7816, 7817, 1, 0, 0, 0, 7817, 7828, 1, 0, 0, 0, 7818, 7826, 5, 178, 0, 0, 7819, 7823, 3, 842, 421, 0, 7820, 7823, 5, 178, 0, 0, 7821, 7823, 3, 840, 420, 0, 7822, 7819, 1, 0, 0, 0, 7822, 7820, 1, 0, 0, 0, 7822, 7821, 1, 0, 0, 0, 7823, 7824, 1, 0, 0, 0, 7824, 7822, 1, 0, 0, 0, 7824, 7825, 1, 0, 0, 0, 7825, 7827, 1, 0, 0, 0, 7826, 7822, 1, 0, 0, 0, 7826, 7827, 1, 0, 0, 0, 7827, 7829, 1, 0, 0, 0, 7828, 7818, 1, 0, 0, 0, 7828, 7829, 1, 0, 0, 0, 7829, 7830, 1, 0, 0, 0, 7830, 7834, 5, 146, 0, 0, 7831, 7833, 3, 848, 424, 0, 7832, 7831, 1, 0, 0, 0, 7833, 7836, 1, 0, 0, 0, 7834, 7832, 1, 0, 0, 0, 7834, 7835, 1, 0, 0, 0, 7835, 7838, 1, 0, 0, 0, 7836, 7834, 1, 0, 0, 0, 7837, 7839, 3, 926, 463, 0, 7838, 7837, 1, 0, 0, 0, 7838, 7839, 1, 0, 0, 0, 7839, 7840, 1, 0, 0, 0, 7840, 7842, 5, 454, 0, 0, 7841, 7843, 3, 930, 465, 0, 7842, 7841, 1, 0, 0, 0, 7842, 7843, 1, 0, 0, 0, 7843, 839, 1, 0, 0, 0, 7844, 7845, 5, 18, 0, 0, 7845, 7846, 3, 930, 465, 0, 7846, 7847, 5, 19, 0, 0, 7847, 841, 1, 0, 0, 0, 7848, 7895, 3, 930, 465, 0, 7849, 7850, 5, 496, 0, 0, 7850, 7853, 5, 62, 0, 0, 7851, 7854, 5, 28, 0, 0, 7852, 7854, 3, 820, 410, 0, 7853, 7851, 1, 0, 0, 0, 7853, 7852, 1, 0, 0, 0, 7854, 7896, 1, 0, 0, 0, 7855, 7857, 5, 497, 0, 0, 7856, 7855, 1, 0, 0, 0, 7856, 7857, 1, 0, 0, 0, 7857, 7858, 1, 0, 0, 0, 7858, 7860, 3, 654, 327, 0, 7859, 7861, 3, 98, 49, 0, 7860, 7859, 1, 0, 0, 0, 7860, 7861, 1, 0, 0, 0, 7861, 7864, 1, 0, 0, 0, 7862, 7863, 5, 77, 0, 0, 7863, 7865, 5, 78, 0, 0, 7864, 7862, 1, 0, 0, 0, 7864, 7865, 1, 0, 0, 0, 7865, 7871, 1, 0, 0, 0, 7866, 7869, 3, 846, 423, 0, 7867, 7869, 5, 53, 0, 0, 7868, 7866, 1, 0, 0, 0, 7868, 7867, 1, 0, 0, 0, 7869, 7870, 1, 0, 0, 0, 7870, 7872, 3, 932, 466, 0, 7871, 7868, 1, 0, 0, 0, 7871, 7872, 1, 0, 0, 0, 7872, 7896, 1, 0, 0, 0, 7873, 7875, 5, 269, 0, 0, 7874, 7873, 1, 0, 0, 0, 7874, 7875, 1, 0, 0, 0, 7875, 7876, 1, 0, 0, 0, 7876, 7878, 5, 324, 0, 0, 7877, 7874, 1, 0, 0, 0, 7877, 7878, 1, 0, 0, 0, 7878, 7879, 1, 0, 0, 0, 7879, 7891, 5, 172, 0, 0, 7880, 7881, 5, 2, 0, 0, 7881, 7886, 3, 844, 422, 0, 7882, 7883, 5, 6, 0, 0, 7883, 7885, 3, 844, 422, 0, 7884, 7882, 1, 0, 0, 0, 7885, 7888, 1, 0, 0, 0, 7886, 7884, 1, 0, 0, 0, 7886, 7887, 1, 0, 0, 0, 7887, 7889, 1, 0, 0, 0, 7888, 7886, 1, 0, 0, 0, 7889, 7890, 5, 3, 0, 0, 7890, 7892, 1, 0, 0, 0, 7891, 7880, 1, 0, 0, 0, 7891, 7892, 1, 0, 0, 0, 7892, 7893, 1, 0, 0, 0, 7893, 7894, 7, 113, 0, 0, 7894, 7896, 3, 562, 281, 0, 7895, 7849, 1, 0, 0, 0, 7895, 7856, 1, 0, 0, 0, 7895, 7877, 1, 0, 0, 0, 7896, 7897, 1, 0, 0, 0, 7897, 7898, 5, 7, 0, 0, 7898, 843, 1, 0, 0, 0, 7899, 7900, 3, 930, 465, 0, 7900, 7901, 3, 654, 327, 0, 7901, 845, 1, 0, 0, 0, 7902, 7903, 7, 114, 0, 0, 7903, 847, 1, 0, 0, 0, 7904, 7905, 3, 838, 419, 0, 7905, 7906, 5, 7, 0, 0, 7906, 7929, 1, 0, 0, 0, 7907, 7929, 3, 876, 438, 0, 7908, 7929, 3, 878, 439, 0, 7909, 7929, 3, 854, 427, 0, 7910, 7929, 3, 862, 431, 0, 7911, 7929, 3, 866, 433, 0, 7912, 7929, 3, 868, 434, 0, 7913, 7929, 3, 872, 436, 0, 7914, 7929, 3, 874, 437, 0, 7915, 7929, 3, 882, 441, 0, 7916, 7929, 3, 886, 443, 0, 7917, 7929, 3, 888, 444, 0, 7918, 7929, 3, 850, 425, 0, 7919, 7929, 3, 852, 426, 0, 7920, 7929, 3, 856, 428, 0, 7921, 7929, 3, 892, 446, 0, 7922, 7929, 3, 896, 448, 0, 7923, 7929, 3, 900, 450, 0, 7924, 7929, 3, 916, 458, 0, 7925, 7929, 3, 918, 459, 0, 7926, 7929, 3, 920, 460, 0, 7927, 7929, 3, 922, 461, 0, 7928, 7904, 1, 0, 0, 0, 7928, 7907, 1, 0, 0, 0, 7928, 7908, 1, 0, 0, 0, 7928, 7909, 1, 0, 0, 0, 7928, 7910, 1, 0, 0, 0, 7928, 7911, 1, 0, 0, 0, 7928, 7912, 1, 0, 0, 0, 7928, 7913, 1, 0, 0, 0, 7928, 7914, 1, 0, 0, 0, 7928, 7915, 1, 0, 0, 0, 7928, 7916, 1, 0, 0, 0, 7928, 7917, 1, 0, 0, 0, 7928, 7918, 1, 0, 0, 0, 7928, 7919, 1, 0, 0, 0, 7928, 7920, 1, 0, 0, 0, 7928, 7921, 1, 0, 0, 0, 7928, 7922, 1, 0, 0, 0, 7928, 7923, 1, 0, 0, 0, 7928, 7924, 1, 0, 0, 0, 7928, 7925, 1, 0, 0, 0, 7928, 7926, 1, 0, 0, 0, 7928, 7927, 1, 0, 0, 0, 7929, 849, 1, 0, 0, 0, 7930, 7931, 5, 498, 0, 0, 7931, 7932, 3, 932, 466, 0, 7932, 7933, 5, 7, 0, 0, 7933, 851, 1, 0, 0, 0, 7934, 7935, 5, 433, 0, 0, 7935, 7942, 3, 930, 465, 0, 7936, 7938, 5, 2, 0, 0, 7937, 7939, 3, 732, 366, 0, 7938, 7937, 1, 0, 0, 0, 7938, 7939, 1, 0, 0, 0, 7939, 7940, 1, 0, 0, 0, 7940, 7941, 5, 3, 0, 0, 7941, 7943, 5, 7, 0, 0, 7942, 7936, 1, 0, 0, 0, 7942, 7943, 1, 0, 0, 0, 7943, 7954, 1, 0, 0, 0, 7944, 7945, 5, 57, 0, 0, 7945, 7946, 3, 930, 465, 0, 7946, 7948, 5, 2, 0, 0, 7947, 7949, 3, 732, 366, 0, 7948, 7947, 1, 0, 0, 0, 7948, 7949, 1, 0, 0, 0, 7949, 7950, 1, 0, 0, 0, 7950, 7951, 5, 3, 0, 0, 7951, 7952, 5, 7, 0, 0, 7952, 7954, 1, 0, 0, 0, 7953, 7934, 1, 0, 0, 0, 7953, 7944, 1, 0, 0, 0, 7954, 853, 1, 0, 0, 0, 7955, 7956, 3, 860, 430, 0, 7956, 7957, 3, 846, 423, 0, 7957, 7958, 3, 932, 466, 0, 7958, 7959, 5, 7, 0, 0, 7959, 855, 1, 0, 0, 0, 7960, 7962, 5, 499, 0, 0, 7961, 7963, 7, 115, 0, 0, 7962, 7961, 1, 0, 0, 0, 7962, 7963, 1, 0, 0, 0, 7963, 7964, 1, 0, 0, 0, 7964, 7965, 5, 500, 0, 0, 7965, 7970, 3, 858, 429, 0, 7966, 7967, 5, 6, 0, 0, 7967, 7969, 3, 858, 429, 0, 7968, 7966, 1, 0, 0, 0, 7969, 7972, 1, 0, 0, 0, 7970, 7968, 1, 0, 0, 0, 7970, 7971, 1, 0, 0, 0, 7971, 7973, 1, 0, 0, 0, 7972, 7970, 1, 0, 0, 0, 7973, 7974, 5, 7, 0, 0, 7974, 857, 1, 0, 0, 0, 7975, 7976, 3, 860, 430, 0, 7976, 7977, 3, 846, 423, 0, 7977, 7978, 3, 820, 410, 0, 7978, 859, 1, 0, 0, 0, 7979, 7982, 3, 318, 159, 0, 7980, 7982, 5, 28, 0, 0, 7981, 7979, 1, 0, 0, 0, 7981, 7980, 1, 0, 0, 0, 7982, 7989, 1, 0, 0, 0, 7983, 7984, 5, 4, 0, 0, 7984, 7985, 3, 676, 338, 0, 7985, 7986, 5, 5, 0, 0, 7986, 7988, 1, 0, 0, 0, 7987, 7983, 1, 0, 0, 0, 7988, 7991, 1, 0, 0, 0, 7989, 7987, 1, 0, 0, 0, 7989, 7990, 1, 0, 0, 0, 7990, 861, 1, 0, 0, 0, 7991, 7989, 1, 0, 0, 0, 7992, 7993, 5, 220, 0, 0, 7993, 7994, 3, 932, 466, 0, 7994, 7998, 5, 93, 0, 0, 7995, 7997, 3, 848, 424, 0, 7996, 7995, 1, 0, 0, 0, 7997, 8000, 1, 0, 0, 0, 7998, 7996, 1, 0, 0, 0, 7998, 7999, 1, 0, 0, 0, 7999, 8012, 1, 0, 0, 0, 8000, 7998, 1, 0, 0, 0, 8001, 8002, 5, 502, 0, 0, 8002, 8003, 3, 676, 338, 0, 8003, 8007, 5, 93, 0, 0, 8004, 8006, 3, 848, 424, 0, 8005, 8004, 1, 0, 0, 0, 8006, 8009, 1, 0, 0, 0, 8007, 8005, 1, 0, 0, 0, 8007, 8008, 1, 0, 0, 0, 8008, 8011, 1, 0, 0, 0, 8009, 8007, 1, 0, 0, 0, 8010, 8001, 1, 0, 0, 0, 8011, 8014, 1, 0, 0, 0, 8012, 8010, 1, 0, 0, 0, 8012, 8013, 1, 0, 0, 0, 8013, 8016, 1, 0, 0, 0, 8014, 8012, 1, 0, 0, 0, 8015, 8017, 3, 864, 432, 0, 8016, 8015, 1, 0, 0, 0, 8016, 8017, 1, 0, 0, 0, 8017, 8018, 1, 0, 0, 0, 8018, 8019, 5, 454, 0, 0, 8019, 8020, 5, 220, 0, 0, 8020, 8021, 5, 7, 0, 0, 8021, 863, 1, 0, 0, 0, 8022, 8026, 5, 58, 0, 0, 8023, 8025, 3, 848, 424, 0, 8024, 8023, 1, 0, 0, 0, 8025, 8028, 1, 0, 0, 0, 8026, 8024, 1, 0, 0, 0, 8026, 8027, 1, 0, 0, 0, 8027, 865, 1, 0, 0, 0, 8028, 8026, 1, 0, 0, 0, 8029, 8031, 5, 40, 0, 0, 8030, 8032, 3, 932, 466, 0, 8031, 8030, 1, 0, 0, 0, 8031, 8032, 1, 0, 0, 0, 8032, 8042, 1, 0, 0, 0, 8033, 8034, 5, 102, 0, 0, 8034, 8035, 3, 732, 366, 0, 8035, 8039, 5, 93, 0, 0, 8036, 8038, 3, 848, 424, 0, 8037, 8036, 1, 0, 0, 0, 8038, 8041, 1, 0, 0, 0, 8039, 8037, 1, 0, 0, 0, 8039, 8040, 1, 0, 0, 0, 8040, 8043, 1, 0, 0, 0, 8041, 8039, 1, 0, 0, 0, 8042, 8033, 1, 0, 0, 0, 8043, 8044, 1, 0, 0, 0, 8044, 8042, 1, 0, 0, 0, 8044, 8045, 1, 0, 0, 0, 8045, 8047, 1, 0, 0, 0, 8046, 8048, 3, 864, 432, 0, 8047, 8046, 1, 0, 0, 0, 8047, 8048, 1, 0, 0, 0, 8048, 8049, 1, 0, 0, 0, 8049, 8050, 5, 454, 0, 0, 8050, 8051, 5, 40, 0, 0, 8051, 8052, 5, 7, 0, 0, 8052, 867, 1, 0, 0, 0, 8053, 8055, 3, 840, 420, 0, 8054, 8053, 1, 0, 0, 0, 8054, 8055, 1, 0, 0, 0, 8055, 8060, 1, 0, 0, 0, 8056, 8057, 5, 503, 0, 0, 8057, 8061, 3, 676, 338, 0, 8058, 8059, 5, 62, 0, 0, 8059, 8061, 3, 870, 435, 0, 8060, 8056, 1, 0, 0, 0, 8060, 8058, 1, 0, 0, 0, 8060, 8061, 1, 0, 0, 0, 8061, 8062, 1, 0, 0, 0, 8062, 8063, 3, 884, 442, 0, 8063, 869, 1, 0, 0, 0, 8064, 8065, 3, 316, 158, 0, 8065, 8088, 5, 68, 0, 0, 8066, 8068, 3, 820, 410, 0, 8067, 8069, 3, 536, 268, 0, 8068, 8067, 1, 0, 0, 0, 8068, 8069, 1, 0, 0, 0, 8069, 8089, 1, 0, 0, 0, 8070, 8089, 3, 562, 281, 0, 8071, 8089, 3, 522, 261, 0, 8072, 8073, 5, 202, 0, 0, 8073, 8076, 3, 676, 338, 0, 8074, 8075, 5, 100, 0, 0, 8075, 8077, 3, 732, 366, 0, 8076, 8074, 1, 0, 0, 0, 8076, 8077, 1, 0, 0, 0, 8077, 8089, 1, 0, 0, 0, 8078, 8080, 5, 504, 0, 0, 8079, 8078, 1, 0, 0, 0, 8079, 8080, 1, 0, 0, 0, 8080, 8081, 1, 0, 0, 0, 8081, 8082, 3, 676, 338, 0, 8082, 8083, 5, 24, 0, 0, 8083, 8086, 3, 676, 338, 0, 8084, 8085, 5, 147, 0, 0, 8085, 8087, 3, 676, 338, 0, 8086, 8084, 1, 0, 0, 0, 8086, 8087, 1, 0, 0, 0, 8087, 8089, 1, 0, 0, 0, 8088, 8066, 1, 0, 0, 0, 8088, 8070, 1, 0, 0, 0, 8088, 8071, 1, 0, 0, 0, 8088, 8072, 1, 0, 0, 0, 8088, 8079, 1, 0, 0, 0, 8089, 871, 1, 0, 0, 0, 8090, 8092, 3, 840, 420, 0, 8091, 8090, 1, 0, 0, 0, 8091, 8092, 1, 0, 0, 0, 8092, 8093, 1, 0, 0, 0, 8093, 8094, 5, 505, 0, 0, 8094, 8097, 3, 316, 158, 0, 8095, 8096, 5, 506, 0, 0, 8096, 8098, 5, 574, 0, 0, 8097, 8095, 1, 0, 0, 0, 8097, 8098, 1, 0, 0, 0, 8098, 8099, 1, 0, 0, 0, 8099, 8100, 5, 68, 0, 0, 8100, 8101, 5, 35, 0, 0, 8101, 8102, 3, 676, 338, 0, 8102, 8103, 3, 884, 442, 0, 8103, 873, 1, 0, 0, 0, 8104, 8106, 7, 116, 0, 0, 8105, 8107, 3, 930, 465, 0, 8106, 8105, 1, 0, 0, 0, 8106, 8107, 1, 0, 0, 0, 8107, 8110, 1, 0, 0, 0, 8108, 8109, 5, 102, 0, 0, 8109, 8111, 3, 932, 466, 0, 8110, 8108, 1, 0, 0, 0, 8110, 8111, 1, 0, 0, 0, 8111, 8112, 1, 0, 0, 0, 8112, 8113, 5, 7, 0, 0, 8113, 875, 1, 0, 0, 0, 8114, 8129, 5, 508, 0, 0, 8115, 8116, 5, 268, 0, 0, 8116, 8130, 3, 932, 466, 0, 8117, 8124, 5, 509, 0, 0, 8118, 8119, 5, 202, 0, 0, 8119, 8120, 3, 676, 338, 0, 8120, 8121, 5, 100, 0, 0, 8121, 8122, 3, 732, 366, 0, 8122, 8125, 1, 0, 0, 0, 8123, 8125, 3, 562, 281, 0, 8124, 8118, 1, 0, 0, 0, 8124, 8123, 1, 0, 0, 0, 8125, 8130, 1, 0, 0, 0, 8126, 8128, 3, 932, 466, 0, 8127, 8126, 1, 0, 0, 0, 8127, 8128, 1, 0, 0, 0, 8128, 8130, 1, 0, 0, 0, 8129, 8115, 1, 0, 0, 0, 8129, 8117, 1, 0, 0, 0, 8129, 8127, 1, 0, 0, 0, 8130, 8131, 1, 0, 0, 0, 8131, 8132, 5, 7, 0, 0, 8132, 877, 1, 0, 0, 0, 8133, 8163, 5, 510, 0, 0, 8134, 8136, 7, 117, 0, 0, 8135, 8134, 1, 0, 0, 0, 8135, 8136, 1, 0, 0, 0, 8136, 8149, 1, 0, 0, 0, 8137, 8150, 3, 828, 414, 0, 8138, 8139, 5, 511, 0, 0, 8139, 8150, 3, 810, 405, 0, 8140, 8147, 3, 810, 405, 0, 8141, 8142, 5, 6, 0, 0, 8142, 8144, 3, 676, 338, 0, 8143, 8141, 1, 0, 0, 0, 8144, 8145, 1, 0, 0, 0, 8145, 8143, 1, 0, 0, 0, 8145, 8146, 1, 0, 0, 0, 8146, 8148, 1, 0, 0, 0, 8147, 8143, 1, 0, 0, 0, 8147, 8148, 1, 0, 0, 0, 8148, 8150, 1, 0, 0, 0, 8149, 8137, 1, 0, 0, 0, 8149, 8138, 1, 0, 0, 0, 8149, 8140, 1, 0, 0, 0, 8149, 8150, 1, 0, 0, 0, 8150, 8160, 1, 0, 0, 0, 8151, 8152, 5, 100, 0, 0, 8152, 8157, 3, 880, 440, 0, 8153, 8154, 5, 6, 0, 0, 8154, 8156, 3, 880, 440, 0, 8155, 8153, 1, 0, 0, 0, 8156, 8159, 1, 0, 0, 0, 8157, 8155, 1, 0, 0, 0, 8157, 8158, 1, 0, 0, 0, 8158, 8161, 1, 0, 0, 0, 8159, 8157, 1, 0, 0, 0, 8160, 8151, 1, 0, 0, 0, 8160, 8161, 1, 0, 0, 0, 8161, 8162, 1, 0, 0, 0, 8162, 8164, 5, 7, 0, 0, 8163, 8135, 1, 0, 0, 0, 8163, 8164, 1, 0, 0, 0, 8164, 879, 1, 0, 0, 0, 8165, 8166, 3, 828, 414, 0, 8166, 8167, 5, 10, 0, 0, 8167, 8168, 3, 676, 338, 0, 8168, 881, 1, 0, 0, 0, 8169, 8170, 5, 518, 0, 0, 8170, 8173, 3, 932, 466, 0, 8171, 8172, 5, 6, 0, 0, 8172, 8174, 3, 932, 466, 0, 8173, 8171, 1, 0, 0, 0, 8173, 8174, 1, 0, 0, 0, 8174, 8175, 1, 0, 0, 0, 8175, 8176, 5, 7, 0, 0, 8176, 883, 1, 0, 0, 0, 8177, 8181, 5, 519, 0, 0, 8178, 8180, 3, 848, 424, 0, 8179, 8178, 1, 0, 0, 0, 8180, 8183, 1, 0, 0, 0, 8181, 8179, 1, 0, 0, 0, 8181, 8182, 1, 0, 0, 0, 8182, 8184, 1, 0, 0, 0, 8183, 8181, 1, 0, 0, 0, 8184, 8185, 5, 454, 0, 0, 8185, 8187, 5, 519, 0, 0, 8186, 8188, 3, 930, 465, 0, 8187, 8186, 1, 0, 0, 0, 8187, 8188, 1, 0, 0, 0, 8188, 8189, 1, 0, 0, 0, 8189, 8190, 5, 7, 0, 0, 8190, 885, 1, 0, 0, 0, 8191, 8193, 3, 4, 2, 0, 8192, 8194, 3, 890, 445, 0, 8193, 8192, 1, 0, 0, 0, 8193, 8194, 1, 0, 0, 0, 8194, 8195, 1, 0, 0, 0, 8195, 8196, 5, 7, 0, 0, 8196, 887, 1, 0, 0, 0, 8197, 8198, 5, 202, 0, 0, 8198, 8214, 3, 676, 338, 0, 8199, 8201, 3, 890, 445, 0, 8200, 8199, 1, 0, 0, 0, 8200, 8201, 1, 0, 0, 0, 8201, 8204, 1, 0, 0, 0, 8202, 8203, 5, 100, 0, 0, 8203, 8205, 3, 732, 366, 0, 8204, 8202, 1, 0, 0, 0, 8204, 8205, 1, 0, 0, 0, 8205, 8215, 1, 0, 0, 0, 8206, 8207, 5, 100, 0, 0, 8207, 8209, 3, 732, 366, 0, 8208, 8206, 1, 0, 0, 0, 8208, 8209, 1, 0, 0, 0, 8209, 8211, 1, 0, 0, 0, 8210, 8212, 3, 890, 445, 0, 8211, 8210, 1, 0, 0, 0, 8211, 8212, 1, 0, 0, 0, 8212, 8215, 1, 0, 0, 0, 8213, 8215, 1, 0, 0, 0, 8214, 8200, 1, 0, 0, 0, 8214, 8208, 1, 0, 0, 0, 8214, 8213, 1, 0, 0, 0, 8215, 8216, 1, 0, 0, 0, 8216, 8217, 5, 7, 0, 0, 8217, 889, 1, 0, 0, 0, 8218, 8220, 5, 71, 0, 0, 8219, 8221, 5, 346, 0, 0, 8220, 8219, 1, 0, 0, 0, 8220, 8221, 1, 0, 0, 0, 8221, 8222, 1, 0, 0, 0, 8222, 8223, 3, 732, 366, 0, 8223, 891, 1, 0, 0, 0, 8224, 8256, 5, 520, 0, 0, 8225, 8230, 3, 924, 462, 0, 8226, 8228, 5, 269, 0, 0, 8227, 8226, 1, 0, 0, 0, 8227, 8228, 1, 0, 0, 0, 8228, 8229, 1, 0, 0, 0, 8229, 8231, 5, 324, 0, 0, 8230, 8227, 1, 0, 0, 0, 8230, 8231, 1, 0, 0, 0, 8231, 8232, 1, 0, 0, 0, 8232, 8240, 5, 62, 0, 0, 8233, 8241, 3, 562, 281, 0, 8234, 8235, 5, 202, 0, 0, 8235, 8238, 3, 932, 466, 0, 8236, 8237, 5, 100, 0, 0, 8237, 8239, 3, 732, 366, 0, 8238, 8236, 1, 0, 0, 0, 8238, 8239, 1, 0, 0, 0, 8239, 8241, 1, 0, 0, 0, 8240, 8233, 1, 0, 0, 0, 8240, 8234, 1, 0, 0, 0, 8241, 8257, 1, 0, 0, 0, 8242, 8254, 3, 820, 410, 0, 8243, 8244, 5, 2, 0, 0, 8244, 8249, 3, 894, 447, 0, 8245, 8246, 5, 6, 0, 0, 8246, 8248, 3, 894, 447, 0, 8247, 8245, 1, 0, 0, 0, 8248, 8251, 1, 0, 0, 0, 8249, 8247, 1, 0, 0, 0, 8249, 8250, 1, 0, 0, 0, 8250, 8252, 1, 0, 0, 0, 8251, 8249, 1, 0, 0, 0, 8252, 8253, 5, 3, 0, 0, 8253, 8255, 1, 0, 0, 0, 8254, 8243, 1, 0, 0, 0, 8254, 8255, 1, 0, 0, 0, 8255, 8257, 1, 0, 0, 0, 8256, 8225, 1, 0, 0, 0, 8256, 8242, 1, 0, 0, 0, 8257, 8258, 1, 0, 0, 0, 8258, 8259, 5, 7, 0, 0, 8259, 893, 1, 0, 0, 0, 8260, 8261, 3, 820, 410, 0, 8261, 8262, 5, 20, 0, 0, 8262, 8264, 1, 0, 0, 0, 8263, 8260, 1, 0, 0, 0, 8263, 8264, 1, 0, 0, 0, 8264, 8265, 1, 0, 0, 0, 8265, 8266, 3, 676, 338, 0, 8266, 895, 1, 0, 0, 0, 8267, 8269, 5, 61, 0, 0, 8268, 8270, 3, 898, 449, 0, 8269, 8268, 1, 0, 0, 0, 8269, 8270, 1, 0, 0, 0, 8270, 8272, 1, 0, 0, 0, 8271, 8273, 3, 334, 167, 0, 8272, 8271, 1, 0, 0, 0, 8272, 8273, 1, 0, 0, 0, 8273, 8274, 1, 0, 0, 0, 8274, 8275, 3, 924, 462, 0, 8275, 8276, 5, 71, 0, 0, 8276, 8277, 3, 732, 366, 0, 8277, 8278, 5, 7, 0, 0, 8278, 897, 1, 0, 0, 0, 8279, 8294, 5, 268, 0, 0, 8280, 8294, 5, 293, 0, 0, 8281, 8294, 5, 207, 0, 0, 8282, 8294, 5, 249, 0, 0, 8283, 8285, 7, 51, 0, 0, 8284, 8283, 1, 0, 0, 0, 8284, 8285, 1, 0, 0, 0, 8285, 8286, 1, 0, 0, 0, 8286, 8294, 3, 676, 338, 0, 8287, 8294, 5, 30, 0, 0, 8288, 8291, 7, 118, 0, 0, 8289, 8292, 3, 676, 338, 0, 8290, 8292, 5, 30, 0, 0, 8291, 8289, 1, 0, 0, 0, 8291, 8290, 1, 0, 0, 0, 8291, 8292, 1, 0, 0, 0, 8292, 8294, 1, 0, 0, 0, 8293, 8279, 1, 0, 0, 0, 8293, 8280, 1, 0, 0, 0, 8293, 8281, 1, 0, 0, 0, 8293, 8282, 1, 0, 0, 0, 8293, 8284, 1, 0, 0, 0, 8293, 8287, 1, 0, 0, 0, 8293, 8288, 1, 0, 0, 0, 8294, 899, 1, 0, 0, 0, 8295, 8297, 5, 265, 0, 0, 8296, 8298, 3, 898, 449, 0, 8297, 8296, 1, 0, 0, 0, 8297, 8298, 1, 0, 0, 0, 8298, 8299, 1, 0, 0, 0, 8299, 8300, 3, 924, 462, 0, 8300, 8301, 5, 7, 0, 0, 8301, 901, 1, 0, 0, 0, 8302, 8304, 3, 574, 287, 0, 8303, 8302, 1, 0, 0, 0, 8303, 8304, 1, 0, 0, 0, 8304, 8305, 1, 0, 0, 0, 8305, 8306, 5, 525, 0, 0, 8306, 8308, 5, 71, 0, 0, 8307, 8309, 5, 81, 0, 0, 8308, 8307, 1, 0, 0, 0, 8308, 8309, 1, 0, 0, 0, 8309, 8310, 1, 0, 0, 0, 8310, 8312, 3, 776, 388, 0, 8311, 8313, 5, 9, 0, 0, 8312, 8311, 1, 0, 0, 0, 8312, 8313, 1, 0, 0, 0, 8313, 8318, 1, 0, 0, 0, 8314, 8316, 5, 36, 0, 0, 8315, 8314, 1, 0, 0, 0, 8315, 8316, 1, 0, 0, 0, 8316, 8317, 1, 0, 0, 0, 8317, 8319, 3, 820, 410, 0, 8318, 8315, 1, 0, 0, 0, 8318, 8319, 1, 0, 0, 0, 8319, 8320, 1, 0, 0, 0, 8320, 8321, 5, 100, 0, 0, 8321, 8322, 3, 904, 452, 0, 8322, 8323, 5, 80, 0, 0, 8323, 8325, 3, 676, 338, 0, 8324, 8326, 3, 906, 453, 0, 8325, 8324, 1, 0, 0, 0, 8326, 8327, 1, 0, 0, 0, 8327, 8325, 1, 0, 0, 0, 8327, 8328, 1, 0, 0, 0, 8328, 8330, 1, 0, 0, 0, 8329, 8331, 3, 548, 274, 0, 8330, 8329, 1, 0, 0, 0, 8330, 8331, 1, 0, 0, 0, 8331, 903, 1, 0, 0, 0, 8332, 8334, 5, 81, 0, 0, 8333, 8332, 1, 0, 0, 0, 8333, 8334, 1, 0, 0, 0, 8334, 8335, 1, 0, 0, 0, 8335, 8337, 3, 776, 388, 0, 8336, 8338, 5, 9, 0, 0, 8337, 8336, 1, 0, 0, 0, 8337, 8338, 1, 0, 0, 0, 8338, 8344, 1, 0, 0, 0, 8339, 8342, 3, 566, 283, 0, 8340, 8342, 3, 610, 305, 0, 8341, 8339, 1, 0, 0, 0, 8341, 8340, 1, 0, 0, 0, 8342, 8344, 1, 0, 0, 0, 8343, 8333, 1, 0, 0, 0, 8343, 8341, 1, 0, 0, 0, 8344, 8349, 1, 0, 0, 0, 8345, 8347, 5, 36, 0, 0, 8346, 8345, 1, 0, 0, 0, 8346, 8347, 1, 0, 0, 0, 8347, 8348, 1, 0, 0, 0, 8348, 8350, 3, 820, 410, 0, 8349, 8346, 1, 0, 0, 0, 8349, 8350, 1, 0, 0, 0, 8350, 905, 1, 0, 0, 0, 8351, 8352, 5, 102, 0, 0, 8352, 8355, 5, 526, 0, 0, 8353, 8354, 5, 33, 0, 0, 8354, 8356, 3, 676, 338, 0, 8355, 8353, 1, 0, 0, 0, 8355, 8356, 1, 0, 0, 0, 8356, 8357, 1, 0, 0, 0, 8357, 8362, 5, 93, 0, 0, 8358, 8363, 3, 910, 455, 0, 8359, 8363, 5, 182, 0, 0, 8360, 8361, 5, 57, 0, 0, 8361, 8363, 5, 270, 0, 0, 8362, 8358, 1, 0, 0, 0, 8362, 8359, 1, 0, 0, 0, 8362, 8360, 1, 0, 0, 0, 8363, 8378, 1, 0, 0, 0, 8364, 8365, 5, 102, 0, 0, 8365, 8366, 5, 77, 0, 0, 8366, 8369, 5, 526, 0, 0, 8367, 8368, 5, 33, 0, 0, 8368, 8370, 3, 676, 338, 0, 8369, 8367, 1, 0, 0, 0, 8369, 8370, 1, 0, 0, 0, 8370, 8371, 1, 0, 0, 0, 8371, 8375, 5, 93, 0, 0, 8372, 8376, 3, 908, 454, 0, 8373, 8374, 5, 57, 0, 0, 8374, 8376, 5, 270, 0, 0, 8375, 8372, 1, 0, 0, 0, 8375, 8373, 1, 0, 0, 0, 8376, 8378, 1, 0, 0, 0, 8377, 8351, 1, 0, 0, 0, 8377, 8364, 1, 0, 0, 0, 8378, 907, 1, 0, 0, 0, 8379, 8381, 5, 241, 0, 0, 8380, 8382, 3, 146, 73, 0, 8381, 8380, 1, 0, 0, 0, 8381, 8382, 1, 0, 0, 0, 8382, 8386, 1, 0, 0, 0, 8383, 8384, 5, 463, 0, 0, 8384, 8385, 7, 77, 0, 0, 8385, 8387, 5, 450, 0, 0, 8386, 8383, 1, 0, 0, 0, 8386, 8387, 1, 0, 0, 0, 8387, 8388, 1, 0, 0, 0, 8388, 8389, 3, 912, 456, 0, 8389, 909, 1, 0, 0, 0, 8390, 8391, 5, 369, 0, 0, 8391, 8409, 5, 333, 0, 0, 8392, 8393, 3, 802, 401, 0, 8393, 8394, 5, 10, 0, 0, 8394, 8395, 3, 914, 457, 0, 8395, 8410, 1, 0, 0, 0, 8396, 8397, 3, 146, 73, 0, 8397, 8398, 5, 10, 0, 0, 8398, 8399, 5, 2, 0, 0, 8399, 8404, 3, 914, 457, 0, 8400, 8401, 5, 6, 0, 0, 8401, 8403, 3, 914, 457, 0, 8402, 8400, 1, 0, 0, 0, 8403, 8406, 1, 0, 0, 0, 8404, 8402, 1, 0, 0, 0, 8404, 8405, 1, 0, 0, 0, 8405, 8407, 1, 0, 0, 0, 8406, 8404, 1, 0, 0, 0, 8407, 8408, 5, 3, 0, 0, 8408, 8410, 1, 0, 0, 0, 8409, 8392, 1, 0, 0, 0, 8409, 8396, 1, 0, 0, 0, 8410, 8411, 1, 0, 0, 0, 8411, 8409, 1, 0, 0, 0, 8411, 8412, 1, 0, 0, 0, 8412, 911, 1, 0, 0, 0, 8413, 8414, 5, 422, 0, 0, 8414, 8415, 5, 2, 0, 0, 8415, 8420, 3, 914, 457, 0, 8416, 8417, 5, 6, 0, 0, 8417, 8419, 3, 914, 457, 0, 8418, 8416, 1, 0, 0, 0, 8419, 8422, 1, 0, 0, 0, 8420, 8418, 1, 0, 0, 0, 8420, 8421, 1, 0, 0, 0, 8421, 8423, 1, 0, 0, 0, 8422, 8420, 1, 0, 0, 0, 8423, 8424, 5, 3, 0, 0, 8424, 8428, 1, 0, 0, 0, 8425, 8426, 5, 53, 0, 0, 8426, 8428, 5, 422, 0, 0, 8427, 8413, 1, 0, 0, 0, 8427, 8425, 1, 0, 0, 0, 8428, 913, 1, 0, 0, 0, 8429, 8432, 3, 590, 295, 0, 8430, 8432, 5, 53, 0, 0, 8431, 8429, 1, 0, 0, 0, 8431, 8430, 1, 0, 0, 0, 8432, 915, 1, 0, 0, 0, 8433, 8434, 5, 157, 0, 0, 8434, 8435, 3, 924, 462, 0, 8435, 8436, 5, 7, 0, 0, 8436, 917, 1, 0, 0, 0, 8437, 8438, 5, 78, 0, 0, 8438, 8439, 5, 7, 0, 0, 8439, 919, 1, 0, 0, 0, 8440, 8446, 7, 68, 0, 0, 8441, 8443, 5, 33, 0, 0, 8442, 8444, 5, 269, 0, 0, 8443, 8442, 1, 0, 0, 0, 8443, 8444, 1, 0, 0, 0, 8444, 8445, 1, 0, 0, 0, 8445, 8447, 5, 153, 0, 0, 8446, 8441, 1, 0, 0, 0, 8446, 8447, 1, 0, 0, 0, 8447, 8448, 1, 0, 0, 0, 8448, 8449, 5, 7, 0, 0, 8449, 921, 1, 0, 0, 0, 8450, 8451, 5, 333, 0, 0, 8451, 8452, 3, 318, 159, 0, 8452, 8453, 5, 94, 0, 0, 8453, 8454, 5, 53, 0, 0, 8454, 8455, 5, 7, 0, 0, 8455, 8463, 1, 0, 0, 0, 8456, 8459, 5, 313, 0, 0, 8457, 8460, 3, 318, 159, 0, 8458, 8460, 5, 30, 0, 0, 8459, 8457, 1, 0, 0, 0, 8459, 8458, 1, 0, 0, 0, 8460, 8461, 1, 0, 0, 0, 8461, 8463, 5, 7, 0, 0, 8462, 8450, 1, 0, 0, 0, 8462, 8456, 1, 0, 0, 0, 8463, 923, 1, 0, 0, 0, 8464, 8467, 3, 820, 410, 0, 8465, 8467, 5, 28, 0, 0, 8466, 8464, 1, 0, 0, 0, 8466, 8465, 1, 0, 0, 0, 8467, 925, 1, 0, 0, 0, 8468, 8485, 5, 517, 0, 0, 8469, 8470, 5, 102, 0, 0, 8470, 8475, 3, 928, 464, 0, 8471, 8472, 5, 82, 0, 0, 8472, 8474, 3, 928, 464, 0, 8473, 8471, 1, 0, 0, 0, 8474, 8477, 1, 0, 0, 0, 8475, 8473, 1, 0, 0, 0, 8475, 8476, 1, 0, 0, 0, 8476, 8478, 1, 0, 0, 0, 8477, 8475, 1, 0, 0, 0, 8478, 8482, 5, 93, 0, 0, 8479, 8481, 3, 848, 424, 0, 8480, 8479, 1, 0, 0, 0, 8481, 8484, 1, 0, 0, 0, 8482, 8480, 1, 0, 0, 0, 8482, 8483, 1, 0, 0, 0, 8483, 8486, 1, 0, 0, 0, 8484, 8482, 1, 0, 0, 0, 8485, 8469, 1, 0, 0, 0, 8486, 8487, 1, 0, 0, 0, 8487, 8485, 1, 0, 0, 0, 8487, 8488, 1, 0, 0, 0, 8488, 927, 1, 0, 0, 0, 8489, 8493, 3, 930, 465, 0, 8490, 8491, 5, 511, 0, 0, 8491, 8493, 3, 810, 405, 0, 8492, 8489, 1, 0, 0, 0, 8492, 8490, 1, 0, 0, 0, 8493, 929, 1, 0, 0, 0, 8494, 8497, 3, 820, 410, 0, 8495, 8497, 3, 830, 415, 0, 8496, 8494, 1, 0, 0, 0, 8496, 8495, 1, 0, 0, 0, 8497, 931, 1, 0, 0, 0, 8498, 8500, 3, 758, 379, 0, 8499, 8498, 1, 0, 0, 0, 8499, 8500, 1, 0, 0, 0, 8500, 8502, 1, 0, 0, 0, 8501, 8503, 3, 582, 291, 0, 8502, 8501, 1, 0, 0, 0, 8502, 8503, 1, 0, 0, 0, 8503, 8505, 1, 0, 0, 0, 8504, 8506, 3, 612, 306, 0, 8505, 8504, 1, 0, 0, 0, 8505, 8506, 1, 0, 0, 0, 8506, 8508, 1, 0, 0, 0, 8507, 8509, 3, 640, 320, 0, 8508, 8507, 1, 0, 0, 0, 8508, 8509, 1, 0, 0, 0, 8509, 8511, 1, 0, 0, 0, 8510, 8512, 3, 602, 301, 0, 8511, 8510, 1, 0, 0, 0, 8511, 8512, 1, 0, 0, 0, 8512, 8515, 1, 0, 0, 0, 8513, 8514, 5, 67, 0, 0, 8514, 8516, 3, 676, 338, 0, 8515, 8513, 1, 0, 0, 0, 8515, 8516, 1, 0, 0, 0, 8516, 8518, 1, 0, 0, 0, 8517, 8519, 3, 704, 352, 0, 8518, 8517, 1, 0, 0, 0, 8518, 8519, 1, 0, 0, 0, 8519, 933, 1, 0, 0, 0, 1194, 937, 944, 1064, 1066, 1075, 1080, 1086, 1121, 1131, 1137, 1142, 1149, 1154, 1161, 1172, 1180, 1184, 1196, 1202, 1208, 1212, 1217, 1221, 1234, 1244, 1246, 1252, 1257, 1270, 1273, 1278, 1283, 1294, 1298, 1310, 1314, 1317, 1321, 1333, 1351, 1358, 1366, 1371, 1378, 1386, 1392, 1400, 1408, 1412, 1426, 1431, 1436, 1448, 1454, 1466, 1471, 1481, 1487, 1492, 1500, 1505, 1512, 1517, 1522, 1532, 1537, 1542, 1549, 1553, 1567, 1573, 1579, 1584, 1591, 1603, 1611, 1619, 1635, 1644, 1653, 1662, 1666, 1678, 1686, 1696, 1716, 1721, 1724, 1731, 1734, 1738, 1742, 1745, 1750, 1755, 1759, 1768, 1774, 1778, 1787, 1790, 1796, 1805, 1817, 1821, 1825, 1830, 1833, 1839, 1841, 1843, 1847, 1853, 1857, 1862, 1867, 1871, 1874, 1881, 1894, 1907, 1931, 1941, 1948, 1953, 1957, 1964, 1969, 1972, 1974, 1979, 1983, 1987, 1991, 1996, 1999, 2003, 2006, 2010, 2018, 2023, 2026, 2030, 2036, 2045, 2049, 2059, 2064, 2068, 2072, 2074, 2076, 2083, 2088, 2092, 2097, 2109, 2114, 2118, 2122, 2127, 2131, 2134, 2137, 2140, 2143, 2146, 2151, 2154, 2157, 2160, 2163, 2166, 2172, 2176, 2179, 2182, 2185, 2188, 2190, 2197, 2205, 2215, 2220, 2230, 2233, 2238, 2243, 2248, 2251, 2256, 2265, 2267, 2271, 2274, 2278, 2283, 2288, 2292, 2295, 2299, 2302, 2307, 2310, 2315, 2318, 2322, 2325, 2328, 2333, 2336, 2344, 2356, 2360, 2367, 2372, 2375, 2378, 2381, 2386, 2397, 2403, 2407, 2410, 2413, 2418, 2425, 2428, 2432, 2440, 2445, 2448, 2451, 2458, 2463, 2472, 2475, 2478, 2483, 2486, 2498, 2508, 2525, 2529, 2533, 2535, 2552, 2554, 2570, 2581, 2584, 2587, 2596, 2605, 2621, 2624, 2627, 2635, 2639, 2646, 2655, 2659, 2665, 2669, 2672, 2675, 2678, 2681, 2687, 2691, 2696, 2700, 2703, 2706, 2709, 2714, 2720, 2724, 2728, 2732, 2738, 2740, 2745, 2751, 2757, 2761, 2776, 2781, 2784, 2786, 2789, 2793, 2797, 2800, 2803, 2811, 2817, 2819, 2825, 2830, 2835, 2839, 2846, 2848, 2859, 2898, 2908, 2910, 2913, 2917, 2921, 2931, 2933, 2939, 2941, 2950, 2962, 2976, 2981, 2984, 2991, 2996, 3004, 3006, 3012, 3017, 3021, 3026, 3032, 3039, 3045, 3047, 3056, 3062, 3070, 3076, 3081, 3086, 3094, 3109, 3111, 3115, 3119, 3122, 3125, 3134, 3137, 3140, 3146, 3152, 3156, 3168, 3174, 3177, 3182, 3186, 3193, 3203, 3205, 3229, 3241, 3246, 3248, 3252, 3255, 3258, 3268, 3271, 3281, 3286, 3291, 3294, 3297, 3305, 3311, 3318, 3326, 3329, 3340, 3344, 3350, 3357, 3360, 3369, 3383, 3386, 3400, 3411, 3414, 3426, 3431, 3444, 3449, 3462, 3471, 3474, 3477, 3484, 3487, 3499, 3505, 3507, 3515, 3523, 3531, 3543, 3548, 3559, 3570, 3578, 3586, 3593, 3600, 3602, 3605, 3610, 3615, 3634, 3643, 3646, 3673, 3682, 3685, 3689, 3693, 3697, 3704, 3708, 3712, 3716, 3720, 3725, 3729, 3734, 3740, 3745, 3752, 3756, 3762, 3766, 3771, 3779, 3785, 3790, 3797, 3802, 3806, 3811, 3817, 3824, 3829, 3836, 3841, 3848, 3852, 3860, 3864, 3866, 3869, 3874, 3884, 3899, 3902, 3910, 3917, 3922, 3928, 3932, 3939, 3944, 3947, 3950, 3954, 3963, 3981, 3984, 4016, 4021, 4027, 4047, 4052, 4058, 4061, 4065, 4069, 4075, 4078, 4082, 4086, 4091, 4094, 4097, 4100, 4113, 4119, 4127, 4134, 4139, 4142, 4149, 4152, 4160, 4163, 4168, 4175, 4178, 4198, 4210, 4213, 4219, 4224, 4233, 4241, 4246, 4252, 4259, 4267, 4270, 4281, 4283, 4297, 4303, 4311, 4313, 4319, 4323, 4326, 4329, 4334, 4339, 4343, 4346, 4349, 4352, 4355, 4363, 4374, 4377, 4380, 4385, 4388, 4392, 4396, 4402, 4410, 4413, 4426, 4431, 4433, 4438, 4445, 4452, 4461, 4469, 4477, 4484, 4492, 4499, 4507, 4511, 4515, 4517, 4523, 4528, 4532, 4539, 4544, 4549, 4554, 4556, 4566, 4576, 4592, 4610, 4622, 4629, 4644, 4649, 4652, 4657, 4662, 4667, 4670, 4673, 4678, 4685, 4689, 4694, 4701, 4705, 4711, 4720, 4729, 4741, 4743, 4756, 4762, 4766, 4768, 4775, 4788, 4795, 4797, 4813, 4817, 4821, 4826, 4831, 4836, 4841, 4844, 4856, 4909, 4918, 4922, 4931, 4935, 4944, 4948, 4953, 4956, 4960, 4965, 4967, 4976, 4981, 4992, 4996, 5010, 5018, 5056, 5058, 5077, 5080, 5107, 5111, 5115, 5119, 5123, 5126, 5141, 5148, 5162, 5175, 5200, 5219, 5234, 5250, 5257, 5268, 5271, 5290, 5293, 5306, 5310, 5330, 5342, 5346, 5368, 5372, 5382, 5386, 5392, 5396, 5400, 5404, 5411, 5416, 5427, 5431, 5434, 5439, 5445, 5456, 5460, 5463, 5467, 5471, 5474, 5484, 5487, 5491, 5496, 5502, 5505, 5510, 5513, 5520, 5522, 5528, 5532, 5541, 5546, 5548, 5558, 5561, 5566, 5574, 5577, 5582, 5584, 5586, 5592, 5609, 5615, 5628, 5634, 5638, 5643, 5673, 5688, 5693, 5697, 5710, 5714, 5716, 5725, 5731, 5733, 5737, 5740, 5743, 5746, 5749, 5751, 5754, 5758, 5766, 5771, 5774, 5780, 5784, 5788, 5793, 5795, 5799, 5803, 5810, 5816, 5820, 5822, 5824, 5837, 5845, 5853, 5864, 5874, 5879, 5883, 5887, 5894, 5897, 5899, 5907, 5911, 5914, 5921, 5928, 5933, 5940, 5943, 5945, 5948, 5954, 5959, 5963, 5970, 5980, 5987, 5990, 5993, 5997, 6008, 6011, 6014, 6017, 6020, 6027, 6030, 6033, 6040, 6052, 6059, 6061, 6066, 6071, 6073, 6079, 6086, 6091, 6096, 6100, 6104, 6108, 6110, 6114, 6118, 6121, 6124, 6126, 6136, 6138, 6143, 6147, 6152, 6156, 6163, 6168, 6172, 6175, 6181, 6184, 6203, 6210, 6214, 6217, 6221, 6225, 6228, 6231, 6236, 6245, 6252, 6256, 6260, 6264, 6267, 6269, 6274, 6278, 6283, 6289, 6296, 6301, 6306, 6315, 6322, 6330, 6341, 6346, 6350, 6353, 6357, 6362, 6366, 6371, 6379, 6390, 6395, 6399, 6402, 6405, 6407, 6410, 6413, 6416, 6420, 6424, 6428, 6430, 6439, 6444, 6450, 6454, 6456, 6463, 6468, 6474, 6476, 6480, 6487, 6492, 6495, 6501, 6505, 6511, 6520, 6526, 6528, 6533, 6536, 6545, 6552, 6554, 6561, 6566, 6569, 6579, 6590, 6595, 6599, 6607, 6617, 6624, 6630, 6641, 6647, 6657, 6666, 6670, 6673, 6675, 6677, 6681, 6689, 6692, 6697, 6702, 6709, 6711, 6717, 6721, 6724, 6729, 6732, 6734, 6740, 6749, 6755, 6758, 6766, 6769, 6773, 6779, 6781, 6784, 6788, 6793, 6800, 6807, 6809, 6815, 6817, 6822, 6824, 6828, 6837, 6841, 6849, 6851, 6865, 6868, 6876, 6885, 6891, 6896, 6904, 6906, 6911, 6915, 6920, 6925, 6931, 6947, 6949, 6958, 6973, 6978, 6981, 6987, 6992, 7005, 7010, 7014, 7021, 7040, 7052, 7057, 7065, 7067, 7069, 7078, 7081, 7086, 7091, 7094, 7105, 7113, 7118, 7120, 7123, 7127, 7138, 7159, 7167, 7180, 7190, 7196, 7202, 7205, 7208, 7234, 7236, 7257, 7267, 7280, 7285, 7289, 7291, 7303, 7310, 7316, 7322, 7326, 7337, 7347, 7351, 7356, 7359, 7362, 7371, 7382, 7384, 7388, 7393, 7402, 7407, 7415, 7425, 7433, 7437, 7440, 7447, 7455, 7459, 7466, 7474, 7476, 7485, 7488, 7500, 7509, 7516, 7525, 7535, 7540, 7544, 7546, 7549, 7554, 7559, 7567, 7575, 7578, 7585, 7593, 7601, 7609, 7626, 7633, 7641, 7658, 7664, 7670, 7678, 7684, 7689, 7697, 7702, 7705, 7714, 7721, 7726, 7730, 7735, 7741, 7746, 7754, 7809, 7816, 7822, 7824, 7826, 7828, 7834, 7838, 7842, 7853, 7856, 7860, 7864, 7868, 7871, 7874, 7877, 7886, 7891, 7895, 7928, 7938, 7942, 7948, 7953, 7962, 7970, 7981, 7989, 7998, 8007, 8012, 8016, 8026, 8031, 8039, 8044, 8047, 8054, 8060, 8068, 8076, 8079, 8086, 8088, 8091, 8097, 8106, 8110, 8124, 8127, 8129, 8135, 8145, 8147, 8149, 8157, 8160, 8163, 8173, 8181, 8187, 8193, 8200, 8204, 8208, 8211, 8214, 8220, 8227, 8230, 8238, 8240, 8249, 8254, 8256, 8263, 8269, 8272, 8284, 8291, 8293, 8297, 8303, 8308, 8312, 8315, 8318, 8327, 8330, 8333, 8337, 8341, 8343, 8346, 8349, 8355, 8362, 8369, 8375, 8377, 8381, 8386, 8404, 8409, 8411, 8420, 8427, 8431, 8443, 8446, 8459, 8462, 8466, 8475, 8482, 8487, 8492, 8496, 8499, 8502, 8505, 8508, 8511, 8515, 8518] \ No newline at end of file +[4, 1, 593, 8518, 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, 1, 0, 5, 0, 936, 8, 0, 10, 0, 12, 0, 939, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, 945, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1065, 8, 2, 3, 2, 1067, 8, 2, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 1076, 8, 4, 1, 4, 5, 4, 1079, 8, 4, 10, 4, 12, 4, 1082, 9, 4, 1, 5, 1, 5, 1, 5, 3, 5, 1087, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 1122, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 1132, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 1138, 8, 7, 1, 7, 5, 7, 1141, 8, 7, 10, 7, 12, 7, 1144, 9, 7, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 1150, 8, 8, 1, 8, 5, 8, 1153, 8, 8, 10, 8, 12, 8, 1156, 9, 8, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 1162, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 1173, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 5, 11, 1179, 8, 11, 10, 11, 12, 11, 1182, 9, 11, 1, 11, 3, 11, 1185, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 1197, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 1203, 8, 11, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1209, 8, 12, 1, 12, 1, 12, 3, 12, 1213, 8, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1218, 8, 12, 1, 12, 1, 12, 3, 12, 1222, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1235, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1245, 8, 12, 3, 12, 1247, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 1253, 8, 13, 1, 13, 5, 13, 1256, 8, 13, 10, 13, 12, 13, 1259, 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 3, 15, 1271, 8, 15, 1, 15, 3, 15, 1274, 8, 15, 1, 15, 1, 15, 1, 15, 3, 15, 1279, 8, 15, 1, 15, 5, 15, 1282, 8, 15, 10, 15, 12, 15, 1285, 9, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 1295, 8, 17, 1, 18, 1, 18, 3, 18, 1299, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 1311, 8, 19, 1, 20, 1, 20, 3, 20, 1315, 8, 20, 1, 20, 3, 20, 1318, 8, 20, 1, 20, 1, 20, 3, 20, 1322, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 1334, 8, 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, 21, 1, 21, 1, 21, 3, 21, 1352, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 1357, 8, 22, 10, 22, 12, 22, 1360, 9, 22, 1, 23, 1, 23, 1, 23, 5, 23, 1365, 8, 23, 10, 23, 12, 23, 1368, 9, 23, 1, 24, 1, 24, 3, 24, 1372, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1379, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1387, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 1393, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1401, 8, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1409, 8, 28, 1, 29, 1, 29, 3, 29, 1413, 8, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 1427, 8, 31, 1, 32, 1, 32, 1, 32, 3, 32, 1432, 8, 32, 1, 33, 1, 33, 1, 33, 3, 33, 1437, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 1449, 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 1455, 8, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 3, 38, 1467, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1472, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1482, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1488, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1493, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1501, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1506, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1513, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1518, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1523, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1533, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1538, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1543, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1550, 8, 38, 1, 38, 1, 38, 3, 38, 1554, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1568, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1574, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1580, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1585, 8, 38, 1, 39, 1, 39, 1, 39, 5, 39, 1590, 8, 39, 10, 39, 12, 39, 1593, 9, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 1604, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 5, 41, 1610, 8, 41, 10, 41, 12, 41, 1613, 9, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 3, 42, 1620, 8, 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, 3, 44, 1636, 8, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 3, 46, 1645, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 5, 46, 1652, 8, 46, 10, 46, 12, 46, 1655, 9, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1663, 8, 46, 1, 46, 1, 46, 3, 46, 1667, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1679, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1687, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1697, 8, 46, 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, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1717, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1722, 8, 46, 1, 46, 3, 46, 1725, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1732, 8, 46, 1, 46, 3, 46, 1735, 8, 46, 1, 46, 1, 46, 3, 46, 1739, 8, 46, 1, 46, 1, 46, 3, 46, 1743, 8, 46, 1, 46, 3, 46, 1746, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1751, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1756, 8, 46, 1, 46, 1, 46, 3, 46, 1760, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1769, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1775, 8, 46, 1, 46, 1, 46, 3, 46, 1779, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1788, 8, 46, 1, 46, 3, 46, 1791, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1797, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1806, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 1816, 8, 46, 11, 46, 12, 46, 1817, 1, 46, 1, 46, 3, 46, 1822, 8, 46, 1, 46, 1, 46, 3, 46, 1826, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1831, 8, 46, 1, 46, 3, 46, 1834, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1840, 8, 46, 4, 46, 1842, 8, 46, 11, 46, 12, 46, 1843, 1, 46, 1, 46, 3, 46, 1848, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1854, 8, 46, 1, 46, 1, 46, 3, 46, 1858, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1863, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1868, 8, 46, 1, 46, 1, 46, 3, 46, 1872, 8, 46, 1, 46, 3, 46, 1875, 8, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1882, 8, 47, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 5, 50, 1893, 8, 50, 10, 50, 12, 50, 1896, 9, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 1908, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 1932, 8, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 1940, 8, 54, 10, 54, 12, 54, 1943, 9, 54, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1949, 8, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1954, 8, 55, 1, 55, 1, 55, 3, 55, 1958, 8, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1965, 8, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1970, 8, 55, 1, 55, 3, 55, 1973, 8, 55, 3, 55, 1975, 8, 55, 1, 56, 1, 56, 1, 56, 3, 56, 1980, 8, 56, 1, 57, 1, 57, 3, 57, 1984, 8, 57, 1, 57, 1, 57, 3, 57, 1988, 8, 57, 1, 57, 1, 57, 3, 57, 1992, 8, 57, 1, 57, 1, 57, 1, 57, 3, 57, 1997, 8, 57, 1, 57, 3, 57, 2000, 8, 57, 1, 57, 1, 57, 3, 57, 2004, 8, 57, 1, 57, 3, 57, 2007, 8, 57, 1, 57, 1, 57, 3, 57, 2011, 8, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 3, 57, 2019, 8, 57, 1, 57, 1, 57, 1, 57, 3, 57, 2024, 8, 57, 1, 57, 3, 57, 2027, 8, 57, 1, 57, 1, 57, 3, 57, 2031, 8, 57, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2037, 8, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2046, 8, 58, 1, 58, 1, 58, 3, 58, 2050, 8, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2060, 8, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2065, 8, 58, 5, 58, 2067, 8, 58, 10, 58, 12, 58, 2070, 9, 58, 1, 58, 3, 58, 2073, 8, 58, 5, 58, 2075, 8, 58, 10, 58, 12, 58, 2078, 9, 58, 1, 59, 1, 59, 1, 59, 1, 59, 3, 59, 2084, 8, 59, 1, 59, 1, 59, 1, 59, 3, 59, 2089, 8, 59, 5, 59, 2091, 8, 59, 10, 59, 12, 59, 2094, 9, 59, 1, 59, 1, 59, 3, 59, 2098, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 5, 60, 2108, 8, 60, 10, 60, 12, 60, 2111, 9, 60, 1, 60, 1, 60, 3, 60, 2115, 8, 60, 1, 61, 1, 61, 3, 61, 2119, 8, 61, 1, 61, 1, 61, 3, 61, 2123, 8, 61, 1, 61, 1, 61, 1, 61, 3, 61, 2128, 8, 61, 1, 61, 1, 61, 3, 61, 2132, 8, 61, 1, 61, 3, 61, 2135, 8, 61, 1, 61, 3, 61, 2138, 8, 61, 1, 61, 3, 61, 2141, 8, 61, 1, 61, 3, 61, 2144, 8, 61, 1, 61, 3, 61, 2147, 8, 61, 1, 61, 1, 61, 1, 61, 3, 61, 2152, 8, 61, 1, 61, 3, 61, 2155, 8, 61, 1, 61, 3, 61, 2158, 8, 61, 1, 61, 3, 61, 2161, 8, 61, 1, 61, 3, 61, 2164, 8, 61, 1, 61, 3, 61, 2167, 8, 61, 1, 61, 1, 61, 1, 61, 1, 61, 3, 61, 2173, 8, 61, 1, 61, 1, 61, 3, 61, 2177, 8, 61, 1, 61, 3, 61, 2180, 8, 61, 1, 61, 3, 61, 2183, 8, 61, 1, 61, 3, 61, 2186, 8, 61, 1, 61, 3, 61, 2189, 8, 61, 3, 61, 2191, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 3, 62, 2198, 8, 62, 1, 63, 1, 63, 1, 63, 1, 63, 5, 63, 2204, 8, 63, 10, 63, 12, 63, 2207, 9, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 5, 64, 2214, 8, 64, 10, 64, 12, 64, 2217, 9, 64, 1, 65, 1, 65, 3, 65, 2221, 8, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 5, 65, 2229, 8, 65, 10, 65, 12, 65, 2232, 9, 65, 3, 65, 2234, 8, 65, 1, 66, 1, 66, 1, 66, 3, 66, 2239, 8, 66, 1, 66, 5, 66, 2242, 8, 66, 10, 66, 12, 66, 2245, 9, 66, 1, 66, 1, 66, 3, 66, 2249, 8, 66, 1, 66, 3, 66, 2252, 8, 66, 1, 67, 1, 67, 1, 67, 3, 67, 2257, 8, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 3, 67, 2266, 8, 67, 3, 67, 2268, 8, 67, 1, 67, 1, 67, 3, 67, 2272, 8, 67, 1, 67, 3, 67, 2275, 8, 67, 1, 67, 1, 67, 3, 67, 2279, 8, 67, 1, 67, 5, 67, 2282, 8, 67, 10, 67, 12, 67, 2285, 9, 67, 1, 68, 1, 68, 3, 68, 2289, 8, 68, 1, 68, 1, 68, 3, 68, 2293, 8, 68, 1, 68, 3, 68, 2296, 8, 68, 1, 68, 1, 68, 3, 68, 2300, 8, 68, 1, 69, 3, 69, 2303, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2308, 8, 69, 1, 69, 3, 69, 2311, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2316, 8, 69, 1, 69, 3, 69, 2319, 8, 69, 1, 69, 1, 69, 3, 69, 2323, 8, 69, 1, 69, 3, 69, 2326, 8, 69, 1, 69, 3, 69, 2329, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2334, 8, 69, 1, 69, 3, 69, 2337, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2345, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 4, 69, 2355, 8, 69, 11, 69, 12, 69, 2356, 1, 69, 1, 69, 3, 69, 2361, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2368, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2373, 8, 69, 1, 69, 3, 69, 2376, 8, 69, 1, 69, 3, 69, 2379, 8, 69, 1, 69, 3, 69, 2382, 8, 69, 1, 70, 1, 70, 1, 70, 3, 70, 2387, 8, 70, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 5, 72, 2396, 8, 72, 10, 72, 12, 72, 2399, 9, 72, 1, 72, 1, 72, 1, 72, 3, 72, 2404, 8, 72, 1, 72, 1, 72, 3, 72, 2408, 8, 72, 1, 72, 3, 72, 2411, 8, 72, 1, 72, 3, 72, 2414, 8, 72, 1, 72, 5, 72, 2417, 8, 72, 10, 72, 12, 72, 2420, 9, 72, 1, 72, 1, 72, 5, 72, 2424, 8, 72, 10, 72, 12, 72, 2427, 9, 72, 3, 72, 2429, 8, 72, 1, 72, 1, 72, 3, 72, 2433, 8, 72, 1, 72, 1, 72, 1, 72, 1, 72, 5, 72, 2439, 8, 72, 10, 72, 12, 72, 2442, 9, 72, 1, 72, 1, 72, 3, 72, 2446, 8, 72, 1, 72, 3, 72, 2449, 8, 72, 1, 72, 3, 72, 2452, 8, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 3, 72, 2459, 8, 72, 1, 72, 5, 72, 2462, 8, 72, 10, 72, 12, 72, 2465, 9, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 3, 72, 2473, 8, 72, 1, 72, 3, 72, 2476, 8, 72, 1, 72, 3, 72, 2479, 8, 72, 1, 72, 5, 72, 2482, 8, 72, 10, 72, 12, 72, 2485, 9, 72, 3, 72, 2487, 8, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 5, 74, 2497, 8, 74, 10, 74, 12, 74, 2500, 9, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 5, 75, 2507, 8, 75, 10, 75, 12, 75, 2510, 9, 75, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 3, 78, 2526, 8, 78, 1, 79, 1, 79, 3, 79, 2530, 8, 79, 1, 79, 1, 79, 3, 79, 2534, 8, 79, 3, 79, 2536, 8, 79, 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, 3, 82, 2553, 8, 82, 3, 82, 2555, 8, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 5, 84, 2569, 8, 84, 10, 84, 12, 84, 2572, 9, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 3, 85, 2582, 8, 85, 1, 85, 3, 85, 2585, 8, 85, 1, 85, 3, 85, 2588, 8, 85, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 2597, 8, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 3, 88, 2606, 8, 88, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 3, 92, 2622, 8, 92, 1, 92, 3, 92, 2625, 8, 92, 1, 92, 3, 92, 2628, 8, 92, 1, 92, 1, 92, 1, 92, 1, 92, 5, 92, 2634, 8, 92, 10, 92, 12, 92, 2637, 9, 92, 1, 92, 3, 92, 2640, 8, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 3, 93, 2647, 8, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 3, 94, 2656, 8, 94, 1, 94, 1, 94, 3, 94, 2660, 8, 94, 1, 94, 1, 94, 1, 94, 1, 94, 3, 94, 2666, 8, 94, 1, 95, 1, 95, 3, 95, 2670, 8, 95, 1, 95, 3, 95, 2673, 8, 95, 1, 95, 3, 95, 2676, 8, 95, 1, 95, 3, 95, 2679, 8, 95, 1, 95, 3, 95, 2682, 8, 95, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 2688, 8, 96, 1, 97, 1, 97, 3, 97, 2692, 8, 97, 1, 97, 1, 97, 1, 97, 3, 97, 2697, 8, 97, 1, 97, 1, 97, 3, 97, 2701, 8, 97, 1, 97, 3, 97, 2704, 8, 97, 1, 97, 3, 97, 2707, 8, 97, 1, 97, 3, 97, 2710, 8, 97, 1, 97, 1, 97, 1, 97, 3, 97, 2715, 8, 97, 1, 98, 1, 98, 1, 98, 1, 98, 3, 98, 2721, 8, 98, 1, 98, 1, 98, 3, 98, 2725, 8, 98, 1, 99, 1, 99, 3, 99, 2729, 8, 99, 1, 99, 1, 99, 3, 99, 2733, 8, 99, 1, 99, 1, 99, 4, 99, 2737, 8, 99, 11, 99, 12, 99, 2738, 3, 99, 2741, 8, 99, 1, 100, 1, 100, 1, 100, 3, 100, 2746, 8, 100, 1, 100, 1, 100, 4, 100, 2750, 8, 100, 11, 100, 12, 100, 2751, 1, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2758, 8, 101, 1, 101, 1, 101, 3, 101, 2762, 8, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2777, 8, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2782, 8, 101, 1, 101, 3, 101, 2785, 8, 101, 3, 101, 2787, 8, 101, 1, 102, 3, 102, 2790, 8, 102, 1, 102, 1, 102, 3, 102, 2794, 8, 102, 1, 103, 1, 103, 3, 103, 2798, 8, 103, 1, 103, 3, 103, 2801, 8, 103, 1, 103, 3, 103, 2804, 8, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 3, 103, 2812, 8, 103, 1, 103, 1, 103, 1, 103, 1, 103, 3, 103, 2818, 8, 103, 3, 103, 2820, 8, 103, 1, 104, 1, 104, 1, 104, 1, 104, 3, 104, 2826, 8, 104, 1, 104, 1, 104, 1, 104, 3, 104, 2831, 8, 104, 1, 105, 1, 105, 1, 105, 3, 105, 2836, 8, 105, 1, 105, 1, 105, 3, 105, 2840, 8, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 5, 105, 2847, 8, 105, 10, 105, 12, 105, 2850, 9, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 5, 106, 2858, 8, 106, 10, 106, 12, 106, 2861, 9, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 2899, 8, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 4, 108, 2907, 8, 108, 11, 108, 12, 108, 2908, 3, 108, 2911, 8, 108, 1, 108, 3, 108, 2914, 8, 108, 1, 109, 1, 109, 3, 109, 2918, 8, 109, 1, 109, 1, 109, 3, 109, 2922, 8, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 4, 110, 2930, 8, 110, 11, 110, 12, 110, 2931, 3, 110, 2934, 8, 110, 1, 110, 1, 110, 4, 110, 2938, 8, 110, 11, 110, 12, 110, 2939, 3, 110, 2942, 8, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 5, 111, 2949, 8, 111, 10, 111, 12, 111, 2952, 9, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 5, 112, 2961, 8, 112, 10, 112, 12, 112, 2964, 9, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 3, 115, 2977, 8, 115, 1, 115, 1, 115, 1, 115, 3, 115, 2982, 8, 115, 1, 115, 3, 115, 2985, 8, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 3, 115, 2992, 8, 115, 1, 116, 1, 116, 1, 116, 3, 116, 2997, 8, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 3, 117, 3005, 8, 117, 3, 117, 3007, 8, 117, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3013, 8, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3018, 8, 118, 1, 118, 1, 118, 3, 118, 3022, 8, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3027, 8, 118, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3033, 8, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3040, 8, 118, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3046, 8, 118, 3, 118, 3048, 8, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 3057, 8, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 3063, 8, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 3071, 8, 119, 1, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3077, 8, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3082, 8, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3087, 8, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 3, 121, 3095, 8, 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, 3, 122, 3110, 8, 122, 3, 122, 3112, 8, 122, 1, 122, 1, 122, 3, 122, 3116, 8, 122, 1, 122, 1, 122, 3, 122, 3120, 8, 122, 1, 122, 3, 122, 3123, 8, 122, 1, 122, 3, 122, 3126, 8, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 3, 123, 3135, 8, 123, 1, 123, 3, 123, 3138, 8, 123, 1, 123, 3, 123, 3141, 8, 123, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 3147, 8, 124, 1, 124, 1, 124, 5, 124, 3151, 8, 124, 10, 124, 12, 124, 3154, 9, 124, 1, 124, 3, 124, 3157, 8, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 3169, 8, 124, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 3175, 8, 124, 1, 125, 3, 125, 3178, 8, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3183, 8, 125, 1, 125, 1, 125, 3, 125, 3187, 8, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3194, 8, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3204, 8, 125, 3, 125, 3206, 8, 125, 1, 126, 1, 126, 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, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 3, 129, 3230, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3242, 8, 129, 1, 129, 4, 129, 3245, 8, 129, 11, 129, 12, 129, 3246, 3, 129, 3249, 8, 129, 1, 129, 1, 129, 3, 129, 3253, 8, 129, 1, 129, 3, 129, 3256, 8, 129, 1, 129, 3, 129, 3259, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3269, 8, 129, 1, 129, 3, 129, 3272, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3282, 8, 129, 1, 129, 5, 129, 3285, 8, 129, 10, 129, 12, 129, 3288, 9, 129, 1, 129, 1, 129, 3, 129, 3292, 8, 129, 1, 129, 3, 129, 3295, 8, 129, 1, 129, 3, 129, 3298, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3306, 8, 129, 1, 130, 1, 130, 1, 130, 1, 130, 3, 130, 3312, 8, 130, 1, 131, 1, 131, 1, 131, 5, 131, 3317, 8, 131, 10, 131, 12, 131, 3320, 9, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 3, 132, 3327, 8, 132, 1, 132, 3, 132, 3330, 8, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 3, 134, 3341, 8, 134, 1, 135, 1, 135, 3, 135, 3345, 8, 135, 1, 135, 1, 135, 5, 135, 3349, 8, 135, 10, 135, 12, 135, 3352, 9, 135, 1, 136, 1, 136, 1, 136, 1, 136, 3, 136, 3358, 8, 136, 1, 137, 3, 137, 3361, 8, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 3, 137, 3370, 8, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 5, 138, 3382, 8, 138, 10, 138, 12, 138, 3385, 9, 138, 3, 138, 3387, 8, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 5, 139, 3399, 8, 139, 10, 139, 12, 139, 3402, 9, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 3, 140, 3412, 8, 140, 1, 140, 3, 140, 3415, 8, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 5, 141, 3425, 8, 141, 10, 141, 12, 141, 3428, 9, 141, 1, 142, 1, 142, 3, 142, 3432, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 5, 142, 3443, 8, 142, 10, 142, 12, 142, 3446, 9, 142, 1, 142, 1, 142, 3, 142, 3450, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3463, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 5, 142, 3470, 8, 142, 10, 142, 12, 142, 3473, 9, 142, 3, 142, 3475, 8, 142, 1, 142, 3, 142, 3478, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3485, 8, 142, 1, 142, 3, 142, 3488, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3500, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3506, 8, 142, 3, 142, 3508, 8, 142, 1, 143, 1, 143, 1, 143, 1, 143, 5, 143, 3514, 8, 143, 10, 143, 12, 143, 3517, 9, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 3, 144, 3524, 8, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 3, 145, 3532, 8, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 3, 147, 3544, 8, 147, 1, 147, 1, 147, 1, 147, 3, 147, 3549, 8, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 3, 147, 3560, 8, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 3, 149, 3571, 8, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 3, 149, 3579, 8, 149, 1, 149, 1, 149, 1, 149, 1, 149, 5, 149, 3585, 8, 149, 10, 149, 12, 149, 3588, 9, 149, 1, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3594, 8, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3601, 8, 150, 3, 150, 3603, 8, 150, 1, 150, 3, 150, 3606, 8, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3611, 8, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3616, 8, 150, 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, 152, 1, 152, 5, 152, 3633, 8, 152, 10, 152, 12, 152, 3636, 9, 152, 1, 152, 1, 152, 1, 152, 1, 152, 5, 152, 3642, 8, 152, 10, 152, 12, 152, 3645, 9, 152, 3, 152, 3647, 8, 152, 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, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3674, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3683, 8, 155, 1, 155, 3, 155, 3686, 8, 155, 1, 155, 1, 155, 3, 155, 3690, 8, 155, 1, 155, 1, 155, 3, 155, 3694, 8, 155, 1, 155, 1, 155, 3, 155, 3698, 8, 155, 1, 155, 1, 155, 1, 155, 5, 155, 3703, 8, 155, 10, 155, 12, 155, 3706, 9, 155, 1, 155, 3, 155, 3709, 8, 155, 1, 155, 1, 155, 3, 155, 3713, 8, 155, 1, 155, 1, 155, 3, 155, 3717, 8, 155, 1, 155, 1, 155, 3, 155, 3721, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3726, 8, 155, 1, 155, 1, 155, 3, 155, 3730, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3735, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3741, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3746, 8, 155, 1, 155, 1, 155, 1, 155, 5, 155, 3751, 8, 155, 10, 155, 12, 155, 3754, 9, 155, 1, 155, 3, 155, 3757, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3763, 8, 155, 1, 155, 1, 155, 3, 155, 3767, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3772, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3780, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3786, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3791, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3798, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3803, 8, 155, 1, 155, 1, 155, 3, 155, 3807, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3812, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3818, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3825, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3830, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3837, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3842, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3849, 8, 155, 1, 155, 1, 155, 3, 155, 3853, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 5, 155, 3859, 8, 155, 10, 155, 12, 155, 3862, 9, 155, 1, 155, 3, 155, 3865, 8, 155, 3, 155, 3867, 8, 155, 1, 156, 3, 156, 3870, 8, 156, 1, 156, 1, 156, 1, 156, 3, 156, 3875, 8, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 3, 156, 3885, 8, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 3, 157, 3900, 8, 157, 1, 157, 3, 157, 3903, 8, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 3, 157, 3911, 8, 157, 1, 158, 1, 158, 1, 158, 5, 158, 3916, 8, 158, 10, 158, 12, 158, 3919, 9, 158, 1, 159, 1, 159, 3, 159, 3923, 8, 159, 1, 160, 1, 160, 4, 160, 3927, 8, 160, 11, 160, 12, 160, 3928, 1, 161, 1, 161, 3, 161, 3933, 8, 161, 1, 161, 1, 161, 1, 161, 5, 161, 3938, 8, 161, 10, 161, 12, 161, 3941, 9, 161, 1, 161, 1, 161, 3, 161, 3945, 8, 161, 1, 161, 3, 161, 3948, 8, 161, 1, 162, 3, 162, 3951, 8, 162, 1, 162, 1, 162, 3, 162, 3955, 8, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 3, 163, 3964, 8, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 3, 163, 3982, 8, 163, 1, 163, 3, 163, 3985, 8, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 3, 163, 4017, 8, 163, 1, 163, 1, 163, 1, 163, 3, 163, 4022, 8, 163, 1, 164, 1, 164, 1, 164, 1, 164, 3, 164, 4028, 8, 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, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 3, 164, 4048, 8, 164, 1, 164, 1, 164, 1, 164, 3, 164, 4053, 8, 164, 1, 165, 1, 165, 1, 165, 1, 166, 3, 166, 4059, 8, 166, 1, 166, 3, 166, 4062, 8, 166, 1, 166, 1, 166, 3, 166, 4066, 8, 166, 1, 166, 1, 166, 3, 166, 4070, 8, 166, 1, 166, 1, 166, 1, 166, 1, 166, 3, 166, 4076, 8, 166, 1, 166, 3, 166, 4079, 8, 166, 1, 166, 1, 166, 3, 166, 4083, 8, 166, 1, 166, 1, 166, 3, 166, 4087, 8, 166, 1, 166, 1, 166, 1, 166, 3, 166, 4092, 8, 166, 1, 166, 3, 166, 4095, 8, 166, 1, 166, 3, 166, 4098, 8, 166, 1, 166, 3, 166, 4101, 8, 166, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 3, 168, 4114, 8, 168, 1, 169, 1, 169, 1, 169, 1, 169, 3, 169, 4120, 8, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 3, 169, 4128, 8, 169, 1, 170, 1, 170, 1, 170, 5, 170, 4133, 8, 170, 10, 170, 12, 170, 4136, 9, 170, 1, 170, 1, 170, 3, 170, 4140, 8, 170, 1, 170, 3, 170, 4143, 8, 170, 1, 170, 1, 170, 1, 170, 5, 170, 4148, 8, 170, 10, 170, 12, 170, 4151, 9, 170, 3, 170, 4153, 8, 170, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 4161, 8, 172, 1, 172, 3, 172, 4164, 8, 172, 1, 173, 1, 173, 1, 173, 3, 173, 4169, 8, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 3, 173, 4176, 8, 173, 1, 173, 3, 173, 4179, 8, 173, 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, 173, 1, 173, 1, 173, 1, 173, 5, 173, 4197, 8, 173, 10, 173, 12, 173, 4200, 9, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 3, 173, 4211, 8, 173, 1, 174, 3, 174, 4214, 8, 174, 1, 174, 1, 174, 1, 174, 1, 174, 3, 174, 4220, 8, 174, 1, 174, 5, 174, 4223, 8, 174, 10, 174, 12, 174, 4226, 9, 174, 1, 175, 1, 175, 1, 175, 1, 175, 5, 175, 4232, 8, 175, 10, 175, 12, 175, 4235, 9, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 3, 175, 4242, 8, 175, 1, 175, 1, 175, 1, 175, 3, 175, 4247, 8, 175, 1, 176, 1, 176, 1, 176, 1, 176, 3, 176, 4253, 8, 176, 1, 176, 1, 176, 1, 176, 5, 176, 4258, 8, 176, 10, 176, 12, 176, 4261, 9, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 3, 176, 4268, 8, 176, 1, 176, 3, 176, 4271, 8, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 5, 177, 4282, 8, 177, 10, 177, 12, 177, 4285, 9, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 4298, 8, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 4304, 8, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 4312, 8, 178, 3, 178, 4314, 8, 178, 1, 179, 1, 179, 1, 180, 1, 180, 3, 180, 4320, 8, 180, 1, 180, 1, 180, 3, 180, 4324, 8, 180, 1, 180, 3, 180, 4327, 8, 180, 1, 180, 3, 180, 4330, 8, 180, 1, 180, 1, 180, 1, 180, 3, 180, 4335, 8, 180, 1, 180, 1, 180, 1, 180, 3, 180, 4340, 8, 180, 1, 180, 1, 180, 3, 180, 4344, 8, 180, 1, 180, 3, 180, 4347, 8, 180, 1, 180, 3, 180, 4350, 8, 180, 1, 180, 3, 180, 4353, 8, 180, 1, 180, 3, 180, 4356, 8, 180, 1, 181, 1, 181, 1, 181, 1, 181, 5, 181, 4362, 8, 181, 10, 181, 12, 181, 4365, 9, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 3, 182, 4375, 8, 182, 1, 182, 3, 182, 4378, 8, 182, 1, 182, 3, 182, 4381, 8, 182, 1, 182, 1, 182, 1, 182, 3, 182, 4386, 8, 182, 1, 182, 3, 182, 4389, 8, 182, 1, 182, 1, 182, 3, 182, 4393, 8, 182, 1, 183, 1, 183, 3, 183, 4397, 8, 183, 1, 183, 1, 183, 1, 183, 1, 183, 3, 183, 4403, 8, 183, 1, 183, 1, 183, 1, 183, 1, 183, 5, 183, 4409, 8, 183, 10, 183, 12, 183, 4412, 9, 183, 3, 183, 4414, 8, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 5, 183, 4425, 8, 183, 10, 183, 12, 183, 4428, 9, 183, 1, 183, 1, 183, 3, 183, 4432, 8, 183, 3, 183, 4434, 8, 183, 1, 183, 4, 183, 4437, 8, 183, 11, 183, 12, 183, 4438, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 3, 183, 4446, 8, 183, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 3, 185, 4453, 8, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 5, 186, 4460, 8, 186, 10, 186, 12, 186, 4463, 9, 186, 1, 187, 1, 187, 1, 187, 5, 187, 4468, 8, 187, 10, 187, 12, 187, 4471, 9, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 3, 188, 4478, 8, 188, 1, 189, 1, 189, 1, 189, 5, 189, 4483, 8, 189, 10, 189, 12, 189, 4486, 9, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 3, 190, 4493, 8, 190, 1, 191, 1, 191, 1, 191, 5, 191, 4498, 8, 191, 10, 191, 12, 191, 4501, 9, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 3, 192, 4508, 8, 192, 1, 193, 1, 193, 3, 193, 4512, 8, 193, 1, 193, 1, 193, 3, 193, 4516, 8, 193, 3, 193, 4518, 8, 193, 1, 193, 1, 193, 1, 194, 1, 194, 3, 194, 4524, 8, 194, 1, 194, 1, 194, 1, 194, 3, 194, 4529, 8, 194, 1, 195, 1, 195, 3, 195, 4533, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 4540, 8, 195, 1, 196, 1, 196, 1, 196, 3, 196, 4545, 8, 196, 1, 197, 1, 197, 1, 197, 3, 197, 4550, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 4555, 8, 197, 3, 197, 4557, 8, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 3, 199, 4567, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 4577, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 4593, 8, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 5, 200, 4609, 8, 200, 10, 200, 12, 200, 4612, 9, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 3, 200, 4623, 8, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 3, 200, 4630, 8, 200, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 3, 203, 4645, 8, 203, 1, 203, 4, 203, 4648, 8, 203, 11, 203, 12, 203, 4649, 1, 203, 3, 203, 4653, 8, 203, 1, 204, 1, 204, 1, 204, 3, 204, 4658, 8, 204, 1, 204, 1, 204, 1, 204, 3, 204, 4663, 8, 204, 1, 204, 1, 204, 1, 204, 3, 204, 4668, 8, 204, 1, 204, 3, 204, 4671, 8, 204, 1, 204, 3, 204, 4674, 8, 204, 1, 205, 1, 205, 1, 205, 3, 205, 4679, 8, 205, 1, 205, 1, 205, 1, 205, 5, 205, 4684, 8, 205, 10, 205, 12, 205, 4687, 9, 205, 1, 205, 3, 205, 4690, 8, 205, 1, 206, 1, 206, 1, 206, 3, 206, 4695, 8, 206, 1, 206, 1, 206, 1, 206, 5, 206, 4700, 8, 206, 10, 206, 12, 206, 4703, 9, 206, 1, 206, 3, 206, 4706, 8, 206, 1, 207, 1, 207, 1, 207, 1, 207, 3, 207, 4712, 8, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 3, 207, 4721, 8, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 5, 208, 4728, 8, 208, 10, 208, 12, 208, 4731, 9, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 4, 210, 4742, 8, 210, 11, 210, 12, 210, 4743, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 3, 211, 4757, 8, 211, 1, 211, 1, 211, 1, 211, 1, 211, 3, 211, 4763, 8, 211, 1, 211, 1, 211, 3, 211, 4767, 8, 211, 3, 211, 4769, 8, 211, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 3, 213, 4776, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4789, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4796, 8, 213, 3, 213, 4798, 8, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 5, 215, 4812, 8, 215, 10, 215, 12, 215, 4815, 9, 215, 1, 215, 3, 215, 4818, 8, 215, 1, 215, 1, 215, 3, 215, 4822, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4827, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4832, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4837, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4842, 8, 215, 1, 215, 3, 215, 4845, 8, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4857, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4910, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4919, 8, 217, 1, 217, 1, 217, 3, 217, 4923, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4932, 8, 217, 1, 217, 1, 217, 3, 217, 4936, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4945, 8, 217, 1, 217, 1, 217, 3, 217, 4949, 8, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4954, 8, 217, 1, 217, 3, 217, 4957, 8, 217, 1, 217, 1, 217, 3, 217, 4961, 8, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4966, 8, 217, 3, 217, 4968, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4977, 8, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4982, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4993, 8, 217, 1, 217, 1, 217, 3, 217, 4997, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 5011, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 5019, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 5057, 8, 217, 3, 217, 5059, 8, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 3, 218, 5078, 8, 218, 1, 218, 3, 218, 5081, 8, 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, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 3, 219, 5108, 8, 219, 1, 219, 1, 219, 3, 219, 5112, 8, 219, 1, 219, 1, 219, 3, 219, 5116, 8, 219, 1, 219, 1, 219, 3, 219, 5120, 8, 219, 1, 219, 1, 219, 3, 219, 5124, 8, 219, 1, 219, 3, 219, 5127, 8, 219, 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, 219, 3, 219, 5142, 8, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 3, 219, 5149, 8, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 5, 221, 5161, 8, 221, 10, 221, 12, 221, 5164, 9, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 3, 222, 5176, 8, 222, 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, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5201, 8, 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, 224, 1, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5220, 8, 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, 224, 3, 224, 5235, 8, 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, 224, 1, 224, 3, 224, 5251, 8, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5258, 8, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 3, 225, 5269, 8, 225, 1, 225, 3, 225, 5272, 8, 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, 5, 226, 5289, 8, 226, 10, 226, 12, 226, 5292, 9, 226, 3, 226, 5294, 8, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 5, 227, 5305, 8, 227, 10, 227, 12, 227, 5308, 9, 227, 1, 227, 3, 227, 5311, 8, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 3, 228, 5331, 8, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 5, 228, 5341, 8, 228, 10, 228, 12, 228, 5344, 9, 228, 1, 228, 3, 228, 5347, 8, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 3, 228, 5369, 8, 228, 1, 229, 1, 229, 3, 229, 5373, 8, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 3, 229, 5383, 8, 229, 1, 229, 1, 229, 3, 229, 5387, 8, 229, 1, 229, 1, 229, 1, 229, 1, 229, 3, 229, 5393, 8, 229, 1, 229, 1, 229, 3, 229, 5397, 8, 229, 5, 229, 5399, 8, 229, 10, 229, 12, 229, 5402, 9, 229, 1, 229, 3, 229, 5405, 8, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 3, 230, 5412, 8, 230, 1, 231, 1, 231, 1, 231, 3, 231, 5417, 8, 231, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 3, 234, 5428, 8, 234, 1, 235, 1, 235, 3, 235, 5432, 8, 235, 1, 235, 3, 235, 5435, 8, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5440, 8, 235, 1, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5446, 8, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5457, 8, 235, 1, 235, 1, 235, 3, 235, 5461, 8, 235, 1, 235, 3, 235, 5464, 8, 235, 1, 235, 1, 235, 3, 235, 5468, 8, 235, 1, 235, 1, 235, 3, 235, 5472, 8, 235, 1, 235, 3, 235, 5475, 8, 235, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 3, 237, 5485, 8, 237, 1, 237, 3, 237, 5488, 8, 237, 1, 238, 1, 238, 3, 238, 5492, 8, 238, 1, 238, 5, 238, 5495, 8, 238, 10, 238, 12, 238, 5498, 9, 238, 1, 239, 1, 239, 1, 239, 3, 239, 5503, 8, 239, 1, 239, 3, 239, 5506, 8, 239, 1, 239, 1, 239, 1, 239, 3, 239, 5511, 8, 239, 1, 239, 3, 239, 5514, 8, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 3, 239, 5521, 8, 239, 3, 239, 5523, 8, 239, 1, 239, 1, 239, 1, 239, 1, 239, 3, 239, 5529, 8, 239, 1, 239, 1, 239, 3, 239, 5533, 8, 239, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 3, 241, 5542, 8, 241, 1, 241, 4, 241, 5545, 8, 241, 11, 241, 12, 241, 5546, 3, 241, 5549, 8, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 3, 242, 5559, 8, 242, 1, 242, 3, 242, 5562, 8, 242, 1, 242, 1, 242, 1, 242, 3, 242, 5567, 8, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 3, 243, 5575, 8, 243, 1, 243, 3, 243, 5578, 8, 243, 1, 243, 4, 243, 5581, 8, 243, 11, 243, 12, 243, 5582, 3, 243, 5585, 8, 243, 3, 243, 5587, 8, 243, 1, 244, 1, 244, 1, 244, 1, 244, 3, 244, 5593, 8, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 3, 247, 5610, 8, 247, 1, 247, 1, 247, 5, 247, 5614, 8, 247, 10, 247, 12, 247, 5617, 9, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 3, 248, 5629, 8, 248, 1, 248, 1, 248, 1, 248, 1, 248, 3, 248, 5635, 8, 248, 1, 248, 1, 248, 3, 248, 5639, 8, 248, 1, 248, 1, 248, 1, 248, 3, 248, 5644, 8, 248, 1, 249, 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, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 3, 250, 5674, 8, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 3, 250, 5689, 8, 250, 1, 250, 1, 250, 1, 250, 3, 250, 5694, 8, 250, 1, 251, 1, 251, 3, 251, 5698, 8, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 3, 252, 5711, 8, 252, 1, 252, 1, 252, 3, 252, 5715, 8, 252, 3, 252, 5717, 8, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 5, 252, 5724, 8, 252, 10, 252, 12, 252, 5727, 9, 252, 1, 252, 1, 252, 1, 252, 3, 252, 5732, 8, 252, 3, 252, 5734, 8, 252, 1, 253, 1, 253, 3, 253, 5738, 8, 253, 1, 253, 3, 253, 5741, 8, 253, 1, 253, 3, 253, 5744, 8, 253, 1, 253, 3, 253, 5747, 8, 253, 1, 253, 3, 253, 5750, 8, 253, 3, 253, 5752, 8, 253, 1, 253, 3, 253, 5755, 8, 253, 1, 254, 1, 254, 3, 254, 5759, 8, 254, 1, 254, 1, 254, 1, 254, 1, 254, 5, 254, 5765, 8, 254, 10, 254, 12, 254, 5768, 9, 254, 1, 254, 1, 254, 3, 254, 5772, 8, 254, 1, 254, 3, 254, 5775, 8, 254, 1, 255, 1, 255, 1, 256, 1, 256, 3, 256, 5781, 8, 256, 1, 256, 1, 256, 3, 256, 5785, 8, 256, 1, 257, 1, 257, 3, 257, 5789, 8, 257, 1, 257, 1, 257, 1, 257, 3, 257, 5794, 8, 257, 3, 257, 5796, 8, 257, 1, 258, 1, 258, 3, 258, 5800, 8, 258, 1, 259, 1, 259, 3, 259, 5804, 8, 259, 1, 260, 1, 260, 1, 260, 5, 260, 5809, 8, 260, 10, 260, 12, 260, 5812, 9, 260, 1, 261, 1, 261, 1, 261, 3, 261, 5817, 8, 261, 1, 261, 1, 261, 3, 261, 5821, 8, 261, 3, 261, 5823, 8, 261, 3, 261, 5825, 8, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 3, 262, 5838, 8, 262, 1, 263, 1, 263, 1, 263, 1, 263, 5, 263, 5844, 8, 263, 10, 263, 12, 263, 5847, 9, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 3, 264, 5854, 8, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 5, 265, 5863, 8, 265, 10, 265, 12, 265, 5866, 9, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 3, 266, 5875, 8, 266, 1, 267, 1, 267, 1, 267, 3, 267, 5880, 8, 267, 1, 267, 1, 267, 3, 267, 5884, 8, 267, 1, 267, 1, 267, 3, 267, 5888, 8, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 3, 267, 5895, 8, 267, 1, 267, 3, 267, 5898, 8, 267, 3, 267, 5900, 8, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 3, 269, 5908, 8, 269, 1, 269, 1, 269, 3, 269, 5912, 8, 269, 1, 270, 3, 270, 5915, 8, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5922, 8, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5929, 8, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5934, 8, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5941, 8, 270, 1, 270, 3, 270, 5944, 8, 270, 3, 270, 5946, 8, 270, 1, 270, 3, 270, 5949, 8, 270, 1, 271, 1, 271, 1, 271, 1, 271, 3, 271, 5955, 8, 271, 1, 271, 1, 271, 1, 271, 3, 271, 5960, 8, 271, 1, 271, 1, 271, 3, 271, 5964, 8, 271, 1, 272, 1, 272, 1, 272, 5, 272, 5969, 8, 272, 10, 272, 12, 272, 5972, 9, 272, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 275, 3, 275, 5981, 8, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 3, 275, 5988, 8, 275, 1, 275, 3, 275, 5991, 8, 275, 1, 275, 3, 275, 5994, 8, 275, 1, 276, 1, 276, 3, 276, 5998, 8, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 3, 276, 6009, 8, 276, 1, 276, 3, 276, 6012, 8, 276, 1, 276, 3, 276, 6015, 8, 276, 1, 276, 3, 276, 6018, 8, 276, 1, 277, 3, 277, 6021, 8, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 3, 277, 6028, 8, 277, 1, 277, 3, 277, 6031, 8, 277, 1, 277, 3, 277, 6034, 8, 277, 1, 278, 1, 278, 1, 278, 5, 278, 6039, 8, 278, 10, 278, 12, 278, 6042, 9, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 3, 279, 6053, 8, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 3, 279, 6060, 8, 279, 3, 279, 6062, 8, 279, 1, 280, 1, 280, 1, 280, 3, 280, 6067, 8, 280, 1, 280, 1, 280, 1, 280, 5, 280, 6072, 8, 280, 10, 280, 12, 280, 6075, 9, 280, 1, 280, 1, 280, 1, 280, 3, 280, 6080, 8, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 3, 281, 6087, 8, 281, 1, 282, 1, 282, 1, 282, 3, 282, 6092, 8, 282, 1, 282, 1, 282, 1, 283, 3, 283, 6097, 8, 283, 1, 283, 1, 283, 3, 283, 6101, 8, 283, 1, 283, 1, 283, 3, 283, 6105, 8, 283, 1, 283, 1, 283, 3, 283, 6109, 8, 283, 3, 283, 6111, 8, 283, 1, 284, 1, 284, 3, 284, 6115, 8, 284, 1, 285, 1, 285, 3, 285, 6119, 8, 285, 1, 285, 3, 285, 6122, 8, 285, 1, 285, 3, 285, 6125, 8, 285, 3, 285, 6127, 8, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 3, 285, 6137, 8, 285, 3, 285, 6139, 8, 285, 1, 285, 1, 285, 1, 285, 3, 285, 6144, 8, 285, 5, 285, 6146, 8, 285, 10, 285, 12, 285, 6149, 9, 285, 1, 286, 1, 286, 3, 286, 6153, 8, 286, 1, 287, 1, 287, 3, 287, 6157, 8, 287, 1, 287, 1, 287, 1, 287, 5, 287, 6162, 8, 287, 10, 287, 12, 287, 6165, 9, 287, 1, 288, 1, 288, 3, 288, 6169, 8, 288, 1, 288, 1, 288, 3, 288, 6173, 8, 288, 1, 288, 3, 288, 6176, 8, 288, 1, 288, 1, 288, 1, 288, 1, 288, 3, 288, 6182, 8, 288, 1, 288, 3, 288, 6185, 8, 288, 1, 289, 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, 290, 1, 290, 1, 290, 3, 290, 6204, 8, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 3, 291, 6211, 8, 291, 1, 291, 1, 291, 3, 291, 6215, 8, 291, 1, 292, 3, 292, 6218, 8, 292, 1, 292, 1, 292, 3, 292, 6222, 8, 292, 1, 292, 1, 292, 3, 292, 6226, 8, 292, 1, 292, 3, 292, 6229, 8, 292, 1, 292, 3, 292, 6232, 8, 292, 1, 293, 1, 293, 1, 293, 3, 293, 6237, 8, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 5, 294, 6244, 8, 294, 10, 294, 12, 294, 6247, 9, 294, 1, 295, 1, 295, 1, 295, 1, 295, 3, 295, 6253, 8, 295, 1, 295, 1, 295, 3, 295, 6257, 8, 295, 1, 296, 1, 296, 3, 296, 6261, 8, 296, 1, 296, 1, 296, 3, 296, 6265, 8, 296, 1, 296, 3, 296, 6268, 8, 296, 3, 296, 6270, 8, 296, 1, 297, 1, 297, 1, 297, 3, 297, 6275, 8, 297, 1, 297, 1, 297, 3, 297, 6279, 8, 297, 1, 298, 1, 298, 1, 298, 3, 298, 6284, 8, 298, 1, 298, 1, 298, 1, 298, 1, 298, 3, 298, 6290, 8, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 6297, 8, 299, 1, 300, 1, 300, 1, 300, 3, 300, 6302, 8, 300, 1, 301, 1, 301, 1, 301, 3, 301, 6307, 8, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 5, 302, 6314, 8, 302, 10, 302, 12, 302, 6317, 9, 302, 1, 303, 1, 303, 1, 303, 1, 303, 3, 303, 6323, 8, 303, 1, 303, 1, 303, 1, 303, 1, 303, 5, 303, 6329, 8, 303, 10, 303, 12, 303, 6332, 9, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 3, 303, 6342, 8, 303, 1, 304, 1, 304, 1, 304, 3, 304, 6347, 8, 304, 1, 304, 1, 304, 3, 304, 6351, 8, 304, 1, 304, 3, 304, 6354, 8, 304, 1, 304, 1, 304, 3, 304, 6358, 8, 304, 1, 304, 1, 304, 1, 304, 3, 304, 6363, 8, 304, 4, 304, 6365, 8, 304, 11, 304, 12, 304, 6366, 1, 304, 1, 304, 1, 304, 3, 304, 6372, 8, 304, 1, 305, 1, 305, 1, 305, 1, 305, 5, 305, 6378, 8, 305, 10, 305, 12, 305, 6381, 9, 305, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 5, 307, 6389, 8, 307, 10, 307, 12, 307, 6392, 9, 307, 1, 308, 1, 308, 3, 308, 6396, 8, 308, 1, 308, 1, 308, 3, 308, 6400, 8, 308, 1, 308, 3, 308, 6403, 8, 308, 1, 308, 3, 308, 6406, 8, 308, 3, 308, 6408, 8, 308, 1, 308, 3, 308, 6411, 8, 308, 1, 308, 3, 308, 6414, 8, 308, 1, 308, 3, 308, 6417, 8, 308, 1, 308, 1, 308, 3, 308, 6421, 8, 308, 1, 308, 1, 308, 3, 308, 6425, 8, 308, 1, 308, 1, 308, 3, 308, 6429, 8, 308, 3, 308, 6431, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6440, 8, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6445, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6451, 8, 308, 1, 308, 1, 308, 3, 308, 6455, 8, 308, 3, 308, 6457, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6464, 8, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6469, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 5, 308, 6475, 8, 308, 10, 308, 12, 308, 6478, 9, 308, 1, 309, 3, 309, 6481, 8, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 3, 309, 6488, 8, 309, 1, 310, 1, 310, 1, 310, 3, 310, 6493, 8, 310, 1, 310, 3, 310, 6496, 8, 310, 1, 310, 1, 310, 1, 310, 1, 310, 3, 310, 6502, 8, 310, 1, 311, 1, 311, 3, 311, 6506, 8, 311, 1, 312, 1, 312, 1, 312, 1, 312, 3, 312, 6512, 8, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 3, 313, 6521, 8, 313, 1, 313, 1, 313, 1, 313, 1, 313, 3, 313, 6527, 8, 313, 3, 313, 6529, 8, 313, 1, 314, 1, 314, 1, 314, 3, 314, 6534, 8, 314, 1, 314, 3, 314, 6537, 8, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 3, 314, 6546, 8, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 3, 314, 6553, 8, 314, 3, 314, 6555, 8, 314, 1, 315, 1, 315, 1, 315, 5, 315, 6560, 8, 315, 10, 315, 12, 315, 6563, 9, 315, 1, 316, 1, 316, 3, 316, 6567, 8, 316, 1, 316, 3, 316, 6570, 8, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 3, 317, 6580, 8, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 5, 318, 6589, 8, 318, 10, 318, 12, 318, 6592, 9, 318, 1, 318, 1, 318, 3, 318, 6596, 8, 318, 1, 318, 1, 318, 3, 318, 6600, 8, 318, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 3, 319, 6608, 8, 319, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 3, 321, 6618, 8, 321, 1, 322, 1, 322, 1, 322, 5, 322, 6623, 8, 322, 10, 322, 12, 322, 6626, 9, 322, 1, 323, 1, 323, 1, 323, 3, 323, 6631, 8, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 5, 324, 6640, 8, 324, 10, 324, 12, 324, 6643, 9, 324, 1, 324, 1, 324, 1, 324, 3, 324, 6648, 8, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 5, 324, 6656, 8, 324, 10, 324, 12, 324, 6659, 9, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 325, 3, 325, 6667, 8, 325, 1, 325, 1, 325, 3, 325, 6671, 8, 325, 1, 325, 4, 325, 6674, 8, 325, 11, 325, 12, 325, 6675, 3, 325, 6678, 8, 325, 1, 325, 1, 325, 3, 325, 6682, 8, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 3, 326, 6690, 8, 326, 1, 327, 3, 327, 6693, 8, 327, 1, 327, 1, 327, 1, 327, 3, 327, 6698, 8, 327, 1, 327, 5, 327, 6701, 8, 327, 10, 327, 12, 327, 6704, 9, 327, 1, 327, 1, 327, 1, 327, 1, 327, 3, 327, 6710, 8, 327, 3, 327, 6712, 8, 327, 1, 327, 1, 327, 1, 327, 1, 327, 3, 327, 6718, 8, 327, 1, 328, 1, 328, 3, 328, 6722, 8, 328, 1, 328, 3, 328, 6725, 8, 328, 1, 328, 1, 328, 1, 328, 3, 328, 6730, 8, 328, 1, 328, 3, 328, 6733, 8, 328, 3, 328, 6735, 8, 328, 1, 329, 1, 329, 1, 329, 1, 329, 3, 329, 6741, 8, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 3, 330, 6750, 8, 330, 1, 330, 1, 330, 1, 330, 1, 330, 3, 330, 6756, 8, 330, 1, 330, 3, 330, 6759, 8, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 3, 332, 6767, 8, 332, 1, 332, 3, 332, 6770, 8, 332, 1, 333, 1, 333, 3, 333, 6774, 8, 333, 1, 333, 1, 333, 1, 333, 1, 333, 3, 333, 6780, 8, 333, 3, 333, 6782, 8, 333, 1, 333, 3, 333, 6785, 8, 333, 1, 334, 1, 334, 3, 334, 6789, 8, 334, 1, 334, 1, 334, 1, 334, 3, 334, 6794, 8, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6801, 8, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6808, 8, 335, 3, 335, 6810, 8, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6816, 8, 335, 3, 335, 6818, 8, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6823, 8, 335, 3, 335, 6825, 8, 335, 1, 336, 1, 336, 3, 336, 6829, 8, 336, 1, 337, 1, 337, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 3, 339, 6838, 8, 339, 1, 339, 1, 339, 3, 339, 6842, 8, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 5, 339, 6850, 8, 339, 10, 339, 12, 339, 6853, 9, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6866, 8, 340, 1, 340, 3, 340, 6869, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6877, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 5, 340, 6884, 8, 340, 10, 340, 12, 340, 6887, 9, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6892, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6897, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6905, 8, 340, 3, 340, 6907, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6912, 8, 340, 1, 340, 1, 340, 3, 340, 6916, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6921, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6926, 8, 340, 1, 341, 1, 341, 1, 341, 1, 341, 3, 341, 6932, 8, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 5, 341, 6948, 8, 341, 10, 341, 12, 341, 6951, 9, 341, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6959, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6974, 8, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6979, 8, 342, 1, 342, 3, 342, 6982, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6988, 8, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6993, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7006, 8, 342, 1, 342, 4, 342, 7009, 8, 342, 11, 342, 12, 342, 7010, 1, 342, 1, 342, 3, 342, 7015, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7022, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7041, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7053, 8, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7058, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7066, 8, 342, 5, 342, 7068, 8, 342, 10, 342, 12, 342, 7071, 9, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 3, 343, 7079, 8, 343, 1, 343, 3, 343, 7082, 8, 343, 1, 343, 1, 343, 1, 343, 3, 343, 7087, 8, 343, 1, 343, 1, 343, 1, 343, 3, 343, 7092, 8, 343, 1, 343, 3, 343, 7095, 8, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 3, 344, 7106, 8, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 3, 344, 7114, 8, 344, 1, 344, 1, 344, 1, 344, 3, 344, 7119, 8, 344, 3, 344, 7121, 8, 344, 1, 344, 3, 344, 7124, 8, 344, 1, 345, 1, 345, 3, 345, 7128, 8, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7139, 8, 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, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7160, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7168, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7181, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7191, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7197, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7203, 8, 346, 1, 346, 3, 346, 7206, 8, 346, 1, 346, 3, 346, 7209, 8, 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, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7235, 8, 346, 3, 346, 7237, 8, 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, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7258, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7268, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7281, 8, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7286, 8, 346, 1, 346, 1, 346, 3, 346, 7290, 8, 346, 3, 346, 7292, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7304, 8, 346, 1, 347, 1, 347, 1, 347, 5, 347, 7309, 8, 347, 10, 347, 12, 347, 7312, 9, 347, 1, 348, 1, 348, 1, 348, 3, 348, 7317, 8, 348, 1, 349, 1, 349, 1, 350, 1, 350, 3, 350, 7323, 8, 350, 1, 350, 1, 350, 3, 350, 7327, 8, 350, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 1, 352, 1, 352, 5, 352, 7336, 8, 352, 10, 352, 12, 352, 7339, 9, 352, 1, 353, 1, 353, 1, 353, 1, 353, 1, 354, 1, 354, 1, 354, 3, 354, 7348, 8, 354, 1, 355, 1, 355, 3, 355, 7352, 8, 355, 1, 355, 1, 355, 1, 355, 3, 355, 7357, 8, 355, 1, 355, 3, 355, 7360, 8, 355, 1, 355, 3, 355, 7363, 8, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 3, 356, 7372, 8, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 3, 356, 7383, 8, 356, 3, 356, 7385, 8, 356, 1, 357, 1, 357, 3, 357, 7389, 8, 357, 1, 357, 1, 357, 1, 357, 3, 357, 7394, 8, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 3, 358, 7403, 8, 358, 1, 359, 1, 359, 1, 359, 3, 359, 7408, 8, 359, 1, 359, 1, 359, 1, 360, 1, 360, 1, 361, 1, 361, 3, 361, 7416, 8, 361, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 3, 363, 7426, 8, 363, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 3, 364, 7434, 8, 364, 1, 365, 1, 365, 3, 365, 7438, 8, 365, 1, 365, 3, 365, 7441, 8, 365, 1, 366, 1, 366, 1, 366, 5, 366, 7446, 8, 366, 10, 366, 12, 366, 7449, 9, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 3, 367, 7456, 8, 367, 1, 368, 1, 368, 3, 368, 7460, 8, 368, 1, 369, 1, 369, 1, 369, 5, 369, 7465, 8, 369, 10, 369, 12, 369, 7468, 9, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 3, 370, 7475, 8, 370, 3, 370, 7477, 8, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 5, 371, 7484, 8, 371, 10, 371, 12, 371, 7487, 9, 371, 3, 371, 7489, 8, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 3, 372, 7501, 8, 372, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 3, 374, 7510, 8, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 3, 374, 7517, 8, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 3, 374, 7526, 8, 374, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 3, 376, 7536, 8, 376, 1, 376, 1, 376, 1, 376, 3, 376, 7541, 8, 376, 1, 376, 1, 376, 3, 376, 7545, 8, 376, 3, 376, 7547, 8, 376, 1, 376, 3, 376, 7550, 8, 376, 1, 377, 4, 377, 7553, 8, 377, 11, 377, 12, 377, 7554, 1, 378, 5, 378, 7558, 8, 378, 10, 378, 12, 378, 7561, 9, 378, 1, 379, 1, 379, 1, 379, 5, 379, 7566, 8, 379, 10, 379, 12, 379, 7569, 9, 379, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 3, 380, 7576, 8, 380, 1, 380, 3, 380, 7579, 8, 380, 1, 381, 1, 381, 1, 381, 5, 381, 7584, 8, 381, 10, 381, 12, 381, 7587, 9, 381, 1, 382, 1, 382, 1, 382, 5, 382, 7592, 8, 382, 10, 382, 12, 382, 7595, 9, 382, 1, 383, 1, 383, 1, 383, 5, 383, 7600, 8, 383, 10, 383, 12, 383, 7603, 9, 383, 1, 384, 1, 384, 1, 384, 5, 384, 7608, 8, 384, 10, 384, 12, 384, 7611, 9, 384, 1, 385, 1, 385, 1, 386, 1, 386, 1, 387, 1, 387, 1, 388, 1, 388, 1, 389, 1, 389, 1, 390, 1, 390, 1, 391, 1, 391, 3, 391, 7627, 8, 391, 1, 392, 1, 392, 1, 392, 5, 392, 7632, 8, 392, 10, 392, 12, 392, 7635, 9, 392, 1, 393, 1, 393, 1, 393, 5, 393, 7640, 8, 393, 10, 393, 12, 393, 7643, 9, 393, 1, 394, 1, 394, 1, 395, 1, 395, 1, 396, 1, 396, 1, 397, 1, 397, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 3, 399, 7659, 8, 399, 1, 400, 1, 400, 1, 400, 1, 400, 3, 400, 7665, 8, 400, 1, 401, 1, 401, 1, 401, 1, 401, 3, 401, 7671, 8, 401, 1, 402, 1, 402, 1, 403, 1, 403, 1, 403, 1, 403, 3, 403, 7679, 8, 403, 1, 404, 1, 404, 1, 404, 1, 404, 3, 404, 7685, 8, 404, 1, 405, 1, 405, 1, 405, 3, 405, 7690, 8, 405, 1, 406, 1, 406, 1, 406, 1, 406, 5, 406, 7696, 8, 406, 10, 406, 12, 406, 7699, 9, 406, 1, 406, 1, 406, 3, 406, 7703, 8, 406, 1, 407, 3, 407, 7706, 8, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 3, 408, 7715, 8, 408, 1, 409, 1, 409, 1, 409, 5, 409, 7720, 8, 409, 10, 409, 12, 409, 7723, 9, 409, 1, 410, 1, 410, 3, 410, 7727, 8, 410, 1, 411, 1, 411, 3, 411, 7731, 8, 411, 1, 412, 1, 412, 1, 412, 3, 412, 7736, 8, 412, 1, 413, 1, 413, 1, 413, 1, 413, 3, 413, 7742, 8, 413, 1, 414, 1, 414, 1, 414, 3, 414, 7747, 8, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 3, 414, 7755, 8, 414, 1, 415, 1, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 3, 416, 7810, 8, 416, 1, 417, 1, 417, 1, 418, 1, 418, 1, 419, 3, 419, 7817, 8, 419, 1, 419, 1, 419, 1, 419, 1, 419, 4, 419, 7823, 8, 419, 11, 419, 12, 419, 7824, 3, 419, 7827, 8, 419, 3, 419, 7829, 8, 419, 1, 419, 1, 419, 5, 419, 7833, 8, 419, 10, 419, 12, 419, 7836, 9, 419, 1, 419, 3, 419, 7839, 8, 419, 1, 419, 1, 419, 3, 419, 7843, 8, 419, 1, 420, 1, 420, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 3, 421, 7854, 8, 421, 1, 421, 3, 421, 7857, 8, 421, 1, 421, 1, 421, 3, 421, 7861, 8, 421, 1, 421, 1, 421, 3, 421, 7865, 8, 421, 1, 421, 1, 421, 3, 421, 7869, 8, 421, 1, 421, 3, 421, 7872, 8, 421, 1, 421, 3, 421, 7875, 8, 421, 1, 421, 3, 421, 7878, 8, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 5, 421, 7885, 8, 421, 10, 421, 12, 421, 7888, 9, 421, 1, 421, 1, 421, 3, 421, 7892, 8, 421, 1, 421, 1, 421, 3, 421, 7896, 8, 421, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 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, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 3, 424, 7929, 8, 424, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 3, 426, 7939, 8, 426, 1, 426, 1, 426, 3, 426, 7943, 8, 426, 1, 426, 1, 426, 1, 426, 1, 426, 3, 426, 7949, 8, 426, 1, 426, 1, 426, 1, 426, 3, 426, 7954, 8, 426, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 428, 1, 428, 3, 428, 7963, 8, 428, 1, 428, 1, 428, 1, 428, 1, 428, 5, 428, 7969, 8, 428, 10, 428, 12, 428, 7972, 9, 428, 1, 428, 1, 428, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 1, 430, 3, 430, 7982, 8, 430, 1, 430, 1, 430, 1, 430, 1, 430, 5, 430, 7988, 8, 430, 10, 430, 12, 430, 7991, 9, 430, 1, 431, 1, 431, 1, 431, 1, 431, 5, 431, 7997, 8, 431, 10, 431, 12, 431, 8000, 9, 431, 1, 431, 1, 431, 1, 431, 1, 431, 5, 431, 8006, 8, 431, 10, 431, 12, 431, 8009, 9, 431, 5, 431, 8011, 8, 431, 10, 431, 12, 431, 8014, 9, 431, 1, 431, 3, 431, 8017, 8, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 432, 1, 432, 5, 432, 8025, 8, 432, 10, 432, 12, 432, 8028, 9, 432, 1, 433, 1, 433, 3, 433, 8032, 8, 433, 1, 433, 1, 433, 1, 433, 1, 433, 5, 433, 8038, 8, 433, 10, 433, 12, 433, 8041, 9, 433, 4, 433, 8043, 8, 433, 11, 433, 12, 433, 8044, 1, 433, 3, 433, 8048, 8, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 3, 434, 8055, 8, 434, 1, 434, 1, 434, 1, 434, 1, 434, 3, 434, 8061, 8, 434, 1, 434, 1, 434, 1, 435, 1, 435, 1, 435, 1, 435, 3, 435, 8069, 8, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 3, 435, 8077, 8, 435, 1, 435, 3, 435, 8080, 8, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 3, 435, 8087, 8, 435, 3, 435, 8089, 8, 435, 1, 436, 3, 436, 8092, 8, 436, 1, 436, 1, 436, 1, 436, 1, 436, 3, 436, 8098, 8, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 3, 437, 8107, 8, 437, 1, 437, 1, 437, 3, 437, 8111, 8, 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, 3, 438, 8125, 8, 438, 1, 438, 3, 438, 8128, 8, 438, 3, 438, 8130, 8, 438, 1, 438, 1, 438, 1, 439, 1, 439, 3, 439, 8136, 8, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 4, 439, 8144, 8, 439, 11, 439, 12, 439, 8145, 3, 439, 8148, 8, 439, 3, 439, 8150, 8, 439, 1, 439, 1, 439, 1, 439, 1, 439, 5, 439, 8156, 8, 439, 10, 439, 12, 439, 8159, 9, 439, 3, 439, 8161, 8, 439, 1, 439, 3, 439, 8164, 8, 439, 1, 440, 1, 440, 1, 440, 1, 440, 1, 441, 1, 441, 1, 441, 1, 441, 3, 441, 8174, 8, 441, 1, 441, 1, 441, 1, 442, 1, 442, 5, 442, 8180, 8, 442, 10, 442, 12, 442, 8183, 9, 442, 1, 442, 1, 442, 1, 442, 3, 442, 8188, 8, 442, 1, 442, 1, 442, 1, 443, 1, 443, 3, 443, 8194, 8, 443, 1, 443, 1, 443, 1, 444, 1, 444, 1, 444, 3, 444, 8201, 8, 444, 1, 444, 1, 444, 3, 444, 8205, 8, 444, 1, 444, 1, 444, 3, 444, 8209, 8, 444, 1, 444, 3, 444, 8212, 8, 444, 1, 444, 3, 444, 8215, 8, 444, 1, 444, 1, 444, 1, 445, 1, 445, 3, 445, 8221, 8, 445, 1, 445, 1, 445, 1, 446, 1, 446, 1, 446, 3, 446, 8228, 8, 446, 1, 446, 3, 446, 8231, 8, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 3, 446, 8239, 8, 446, 3, 446, 8241, 8, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 5, 446, 8248, 8, 446, 10, 446, 12, 446, 8251, 9, 446, 1, 446, 1, 446, 3, 446, 8255, 8, 446, 3, 446, 8257, 8, 446, 1, 446, 1, 446, 1, 447, 1, 447, 1, 447, 3, 447, 8264, 8, 447, 1, 447, 1, 447, 1, 448, 1, 448, 3, 448, 8270, 8, 448, 1, 448, 3, 448, 8273, 8, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 8285, 8, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 8292, 8, 449, 3, 449, 8294, 8, 449, 1, 450, 1, 450, 3, 450, 8298, 8, 450, 1, 450, 1, 450, 1, 450, 1, 451, 3, 451, 8304, 8, 451, 1, 451, 1, 451, 1, 451, 3, 451, 8309, 8, 451, 1, 451, 1, 451, 3, 451, 8313, 8, 451, 1, 451, 3, 451, 8316, 8, 451, 1, 451, 3, 451, 8319, 8, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 4, 451, 8326, 8, 451, 11, 451, 12, 451, 8327, 1, 452, 3, 452, 8331, 8, 452, 1, 452, 1, 452, 3, 452, 8335, 8, 452, 1, 452, 1, 452, 3, 452, 8339, 8, 452, 3, 452, 8341, 8, 452, 1, 452, 3, 452, 8344, 8, 452, 1, 452, 3, 452, 8347, 8, 452, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8353, 8, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8360, 8, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8367, 8, 453, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8373, 8, 453, 3, 453, 8375, 8, 453, 1, 454, 1, 454, 3, 454, 8379, 8, 454, 1, 454, 1, 454, 1, 454, 3, 454, 8384, 8, 454, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 5, 455, 8400, 8, 455, 10, 455, 12, 455, 8403, 9, 455, 1, 455, 1, 455, 4, 455, 8407, 8, 455, 11, 455, 12, 455, 8408, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 5, 456, 8416, 8, 456, 10, 456, 12, 456, 8419, 9, 456, 1, 456, 1, 456, 1, 456, 1, 456, 3, 456, 8425, 8, 456, 1, 457, 1, 457, 3, 457, 8429, 8, 457, 1, 458, 1, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 1, 460, 3, 460, 8441, 8, 460, 1, 460, 3, 460, 8444, 8, 460, 1, 460, 1, 460, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 3, 461, 8457, 8, 461, 1, 461, 3, 461, 8460, 8, 461, 1, 462, 1, 462, 3, 462, 8464, 8, 462, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 5, 463, 8471, 8, 463, 10, 463, 12, 463, 8474, 9, 463, 1, 463, 1, 463, 5, 463, 8478, 8, 463, 10, 463, 12, 463, 8481, 9, 463, 4, 463, 8483, 8, 463, 11, 463, 12, 463, 8484, 1, 464, 1, 464, 1, 464, 3, 464, 8490, 8, 464, 1, 465, 1, 465, 3, 465, 8494, 8, 465, 1, 466, 3, 466, 8497, 8, 466, 1, 466, 3, 466, 8500, 8, 466, 1, 466, 3, 466, 8503, 8, 466, 1, 466, 3, 466, 8506, 8, 466, 1, 466, 3, 466, 8509, 8, 466, 1, 466, 1, 466, 3, 466, 8513, 8, 466, 1, 466, 3, 466, 8516, 8, 466, 1, 466, 0, 3, 678, 682, 684, 467, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 500, 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, 924, 926, 928, 930, 932, 0, 119, 2, 0, 195, 195, 364, 364, 2, 0, 66, 66, 318, 318, 2, 0, 99, 99, 318, 318, 2, 0, 134, 134, 318, 318, 1, 0, 529, 531, 2, 0, 10, 10, 94, 94, 2, 0, 133, 133, 191, 191, 2, 0, 254, 254, 332, 332, 2, 0, 162, 162, 363, 363, 2, 0, 180, 180, 221, 221, 5, 0, 30, 30, 288, 288, 329, 329, 352, 352, 354, 354, 2, 0, 109, 109, 532, 532, 2, 0, 158, 158, 277, 277, 2, 0, 367, 367, 439, 439, 2, 0, 139, 139, 312, 312, 2, 0, 191, 191, 333, 333, 2, 0, 313, 313, 333, 333, 2, 0, 150, 150, 315, 315, 2, 0, 64, 64, 94, 94, 4, 0, 78, 78, 183, 183, 197, 197, 298, 298, 1, 0, 549, 551, 2, 0, 213, 213, 254, 254, 2, 0, 352, 352, 354, 354, 2, 0, 200, 200, 224, 224, 9, 0, 30, 30, 160, 160, 165, 165, 179, 179, 219, 219, 227, 227, 342, 342, 345, 345, 438, 438, 3, 0, 113, 113, 284, 284, 336, 336, 2, 0, 53, 53, 78, 78, 2, 0, 105, 105, 379, 379, 2, 0, 260, 260, 262, 262, 3, 0, 173, 173, 260, 260, 262, 262, 1, 0, 12, 13, 2, 0, 64, 64, 375, 375, 2, 0, 156, 156, 206, 206, 2, 0, 189, 189, 360, 360, 2, 0, 215, 215, 373, 373, 3, 0, 133, 133, 191, 191, 333, 333, 5, 0, 30, 30, 88, 88, 182, 182, 241, 241, 369, 369, 2, 0, 9, 9, 94, 94, 2, 0, 92, 92, 226, 226, 1, 0, 448, 449, 2, 0, 92, 92, 414, 414, 2, 0, 341, 341, 414, 414, 4, 0, 163, 163, 185, 185, 283, 283, 353, 353, 2, 0, 135, 135, 145, 145, 2, 0, 211, 211, 278, 278, 3, 0, 321, 321, 357, 357, 445, 445, 3, 0, 66, 66, 99, 99, 318, 318, 5, 0, 108, 108, 168, 168, 226, 226, 328, 328, 342, 342, 2, 0, 167, 167, 314, 314, 2, 0, 61, 61, 265, 265, 4, 0, 207, 207, 249, 249, 268, 268, 293, 293, 2, 0, 130, 130, 307, 307, 2, 0, 64, 64, 68, 68, 10, 0, 46, 46, 88, 88, 182, 182, 202, 202, 241, 241, 352, 352, 354, 354, 357, 358, 369, 369, 521, 523, 5, 0, 212, 212, 329, 329, 350, 350, 455, 455, 457, 457, 5, 0, 212, 212, 329, 329, 350, 350, 361, 361, 455, 456, 2, 0, 37, 37, 55, 55, 2, 0, 207, 207, 249, 249, 2, 0, 10, 10, 53, 53, 2, 0, 181, 181, 243, 243, 2, 0, 170, 170, 320, 320, 2, 0, 141, 141, 223, 223, 5, 0, 108, 108, 168, 168, 189, 189, 342, 342, 360, 360, 2, 0, 226, 226, 328, 328, 2, 0, 163, 163, 185, 185, 2, 0, 186, 186, 193, 193, 4, 0, 88, 88, 182, 182, 241, 241, 369, 369, 2, 0, 137, 137, 242, 242, 2, 0, 161, 161, 319, 319, 4, 0, 129, 129, 161, 161, 319, 319, 454, 454, 2, 0, 356, 356, 380, 380, 2, 0, 81, 81, 382, 382, 2, 0, 151, 151, 254, 254, 2, 0, 133, 133, 138, 138, 1, 0, 31, 32, 2, 0, 128, 128, 547, 547, 2, 0, 60, 60, 96, 96, 2, 0, 99, 99, 349, 349, 2, 0, 131, 131, 414, 414, 2, 0, 201, 201, 334, 334, 3, 0, 59, 59, 70, 70, 97, 97, 2, 0, 30, 30, 56, 56, 1, 0, 527, 528, 2, 0, 207, 207, 268, 268, 2, 0, 320, 320, 414, 414, 2, 0, 574, 574, 576, 576, 1, 0, 468, 469, 4, 0, 113, 113, 115, 115, 119, 119, 126, 126, 2, 0, 360, 360, 477, 477, 2, 0, 394, 395, 409, 409, 2, 0, 391, 392, 406, 406, 1, 0, 391, 392, 1, 0, 418, 419, 5, 0, 10, 10, 16, 17, 21, 21, 23, 23, 25, 25, 3, 0, 9, 9, 14, 14, 27, 27, 2, 0, 98, 98, 396, 396, 2, 0, 50, 51, 75, 76, 2, 0, 41, 41, 420, 420, 3, 0, 39, 39, 73, 73, 95, 95, 4, 0, 393, 393, 399, 399, 404, 404, 425, 425, 2, 0, 292, 292, 347, 347, 2, 0, 166, 166, 188, 188, 2, 0, 304, 304, 450, 450, 3, 0, 299, 299, 320, 320, 481, 481, 2, 0, 208, 208, 289, 289, 3, 0, 30, 30, 34, 34, 90, 90, 6, 0, 9, 10, 12, 17, 21, 21, 23, 23, 25, 25, 27, 27, 2, 0, 114, 114, 120, 120, 2, 0, 20, 20, 22, 22, 1, 0, 483, 486, 17, 0, 53, 53, 116, 116, 123, 124, 129, 228, 238, 386, 433, 452, 455, 469, 471, 471, 473, 473, 475, 475, 477, 488, 490, 502, 504, 504, 506, 518, 520, 520, 524, 524, 547, 548, 3, 0, 106, 123, 125, 128, 472, 472, 4, 0, 30, 52, 54, 70, 72, 105, 454, 454, 2, 0, 62, 62, 116, 116, 2, 0, 10, 10, 20, 20, 2, 0, 434, 434, 501, 501, 2, 0, 167, 167, 507, 507, 1, 0, 512, 517, 2, 0, 144, 144, 210, 210, 9959, 0, 937, 1, 0, 0, 0, 2, 942, 1, 0, 0, 0, 4, 1066, 1, 0, 0, 0, 6, 1068, 1, 0, 0, 0, 8, 1071, 1, 0, 0, 0, 10, 1121, 1, 0, 0, 0, 12, 1131, 1, 0, 0, 0, 14, 1133, 1, 0, 0, 0, 16, 1145, 1, 0, 0, 0, 18, 1157, 1, 0, 0, 0, 20, 1168, 1, 0, 0, 0, 22, 1202, 1, 0, 0, 0, 24, 1246, 1, 0, 0, 0, 26, 1248, 1, 0, 0, 0, 28, 1260, 1, 0, 0, 0, 30, 1267, 1, 0, 0, 0, 32, 1286, 1, 0, 0, 0, 34, 1294, 1, 0, 0, 0, 36, 1296, 1, 0, 0, 0, 38, 1310, 1, 0, 0, 0, 40, 1314, 1, 0, 0, 0, 42, 1351, 1, 0, 0, 0, 44, 1353, 1, 0, 0, 0, 46, 1361, 1, 0, 0, 0, 48, 1371, 1, 0, 0, 0, 50, 1378, 1, 0, 0, 0, 52, 1386, 1, 0, 0, 0, 54, 1392, 1, 0, 0, 0, 56, 1408, 1, 0, 0, 0, 58, 1412, 1, 0, 0, 0, 60, 1414, 1, 0, 0, 0, 62, 1426, 1, 0, 0, 0, 64, 1431, 1, 0, 0, 0, 66, 1436, 1, 0, 0, 0, 68, 1438, 1, 0, 0, 0, 70, 1450, 1, 0, 0, 0, 72, 1458, 1, 0, 0, 0, 74, 1460, 1, 0, 0, 0, 76, 1584, 1, 0, 0, 0, 78, 1586, 1, 0, 0, 0, 80, 1603, 1, 0, 0, 0, 82, 1605, 1, 0, 0, 0, 84, 1619, 1, 0, 0, 0, 86, 1621, 1, 0, 0, 0, 88, 1635, 1, 0, 0, 0, 90, 1637, 1, 0, 0, 0, 92, 1874, 1, 0, 0, 0, 94, 1881, 1, 0, 0, 0, 96, 1883, 1, 0, 0, 0, 98, 1885, 1, 0, 0, 0, 100, 1888, 1, 0, 0, 0, 102, 1899, 1, 0, 0, 0, 104, 1902, 1, 0, 0, 0, 106, 1931, 1, 0, 0, 0, 108, 1933, 1, 0, 0, 0, 110, 1974, 1, 0, 0, 0, 112, 1976, 1, 0, 0, 0, 114, 2030, 1, 0, 0, 0, 116, 2076, 1, 0, 0, 0, 118, 2097, 1, 0, 0, 0, 120, 2099, 1, 0, 0, 0, 122, 2116, 1, 0, 0, 0, 124, 2197, 1, 0, 0, 0, 126, 2199, 1, 0, 0, 0, 128, 2210, 1, 0, 0, 0, 130, 2233, 1, 0, 0, 0, 132, 2251, 1, 0, 0, 0, 134, 2253, 1, 0, 0, 0, 136, 2288, 1, 0, 0, 0, 138, 2381, 1, 0, 0, 0, 140, 2386, 1, 0, 0, 0, 142, 2388, 1, 0, 0, 0, 144, 2486, 1, 0, 0, 0, 146, 2488, 1, 0, 0, 0, 148, 2492, 1, 0, 0, 0, 150, 2503, 1, 0, 0, 0, 152, 2511, 1, 0, 0, 0, 154, 2514, 1, 0, 0, 0, 156, 2517, 1, 0, 0, 0, 158, 2535, 1, 0, 0, 0, 160, 2537, 1, 0, 0, 0, 162, 2541, 1, 0, 0, 0, 164, 2554, 1, 0, 0, 0, 166, 2556, 1, 0, 0, 0, 168, 2561, 1, 0, 0, 0, 170, 2581, 1, 0, 0, 0, 172, 2589, 1, 0, 0, 0, 174, 2596, 1, 0, 0, 0, 176, 2598, 1, 0, 0, 0, 178, 2607, 1, 0, 0, 0, 180, 2610, 1, 0, 0, 0, 182, 2614, 1, 0, 0, 0, 184, 2618, 1, 0, 0, 0, 186, 2643, 1, 0, 0, 0, 188, 2653, 1, 0, 0, 0, 190, 2667, 1, 0, 0, 0, 192, 2683, 1, 0, 0, 0, 194, 2689, 1, 0, 0, 0, 196, 2716, 1, 0, 0, 0, 198, 2726, 1, 0, 0, 0, 200, 2742, 1, 0, 0, 0, 202, 2786, 1, 0, 0, 0, 204, 2793, 1, 0, 0, 0, 206, 2795, 1, 0, 0, 0, 208, 2821, 1, 0, 0, 0, 210, 2832, 1, 0, 0, 0, 212, 2851, 1, 0, 0, 0, 214, 2862, 1, 0, 0, 0, 216, 2900, 1, 0, 0, 0, 218, 2921, 1, 0, 0, 0, 220, 2923, 1, 0, 0, 0, 222, 2943, 1, 0, 0, 0, 224, 2955, 1, 0, 0, 0, 226, 2967, 1, 0, 0, 0, 228, 2970, 1, 0, 0, 0, 230, 2973, 1, 0, 0, 0, 232, 2993, 1, 0, 0, 0, 234, 2998, 1, 0, 0, 0, 236, 3047, 1, 0, 0, 0, 238, 3049, 1, 0, 0, 0, 240, 3072, 1, 0, 0, 0, 242, 3088, 1, 0, 0, 0, 244, 3100, 1, 0, 0, 0, 246, 3127, 1, 0, 0, 0, 248, 3142, 1, 0, 0, 0, 250, 3205, 1, 0, 0, 0, 252, 3207, 1, 0, 0, 0, 254, 3212, 1, 0, 0, 0, 256, 3218, 1, 0, 0, 0, 258, 3305, 1, 0, 0, 0, 260, 3311, 1, 0, 0, 0, 262, 3313, 1, 0, 0, 0, 264, 3329, 1, 0, 0, 0, 266, 3331, 1, 0, 0, 0, 268, 3340, 1, 0, 0, 0, 270, 3344, 1, 0, 0, 0, 272, 3357, 1, 0, 0, 0, 274, 3369, 1, 0, 0, 0, 276, 3371, 1, 0, 0, 0, 278, 3393, 1, 0, 0, 0, 280, 3405, 1, 0, 0, 0, 282, 3416, 1, 0, 0, 0, 284, 3507, 1, 0, 0, 0, 286, 3509, 1, 0, 0, 0, 288, 3520, 1, 0, 0, 0, 290, 3531, 1, 0, 0, 0, 292, 3533, 1, 0, 0, 0, 294, 3559, 1, 0, 0, 0, 296, 3561, 1, 0, 0, 0, 298, 3565, 1, 0, 0, 0, 300, 3615, 1, 0, 0, 0, 302, 3617, 1, 0, 0, 0, 304, 3623, 1, 0, 0, 0, 306, 3648, 1, 0, 0, 0, 308, 3652, 1, 0, 0, 0, 310, 3866, 1, 0, 0, 0, 312, 3884, 1, 0, 0, 0, 314, 3910, 1, 0, 0, 0, 316, 3912, 1, 0, 0, 0, 318, 3920, 1, 0, 0, 0, 320, 3926, 1, 0, 0, 0, 322, 3930, 1, 0, 0, 0, 324, 3950, 1, 0, 0, 0, 326, 3956, 1, 0, 0, 0, 328, 4023, 1, 0, 0, 0, 330, 4054, 1, 0, 0, 0, 332, 4100, 1, 0, 0, 0, 334, 4102, 1, 0, 0, 0, 336, 4104, 1, 0, 0, 0, 338, 4115, 1, 0, 0, 0, 340, 4152, 1, 0, 0, 0, 342, 4154, 1, 0, 0, 0, 344, 4160, 1, 0, 0, 0, 346, 4210, 1, 0, 0, 0, 348, 4213, 1, 0, 0, 0, 350, 4227, 1, 0, 0, 0, 352, 4248, 1, 0, 0, 0, 354, 4272, 1, 0, 0, 0, 356, 4313, 1, 0, 0, 0, 358, 4315, 1, 0, 0, 0, 360, 4317, 1, 0, 0, 0, 362, 4357, 1, 0, 0, 0, 364, 4374, 1, 0, 0, 0, 366, 4394, 1, 0, 0, 0, 368, 4447, 1, 0, 0, 0, 370, 4450, 1, 0, 0, 0, 372, 4456, 1, 0, 0, 0, 374, 4464, 1, 0, 0, 0, 376, 4477, 1, 0, 0, 0, 378, 4479, 1, 0, 0, 0, 380, 4492, 1, 0, 0, 0, 382, 4494, 1, 0, 0, 0, 384, 4507, 1, 0, 0, 0, 386, 4517, 1, 0, 0, 0, 388, 4528, 1, 0, 0, 0, 390, 4539, 1, 0, 0, 0, 392, 4541, 1, 0, 0, 0, 394, 4546, 1, 0, 0, 0, 396, 4560, 1, 0, 0, 0, 398, 4592, 1, 0, 0, 0, 400, 4629, 1, 0, 0, 0, 402, 4631, 1, 0, 0, 0, 404, 4634, 1, 0, 0, 0, 406, 4637, 1, 0, 0, 0, 408, 4654, 1, 0, 0, 0, 410, 4675, 1, 0, 0, 0, 412, 4691, 1, 0, 0, 0, 414, 4707, 1, 0, 0, 0, 416, 4729, 1, 0, 0, 0, 418, 4734, 1, 0, 0, 0, 420, 4737, 1, 0, 0, 0, 422, 4745, 1, 0, 0, 0, 424, 4770, 1, 0, 0, 0, 426, 4773, 1, 0, 0, 0, 428, 4801, 1, 0, 0, 0, 430, 4806, 1, 0, 0, 0, 432, 4846, 1, 0, 0, 0, 434, 5058, 1, 0, 0, 0, 436, 5060, 1, 0, 0, 0, 438, 5148, 1, 0, 0, 0, 440, 5150, 1, 0, 0, 0, 442, 5156, 1, 0, 0, 0, 444, 5167, 1, 0, 0, 0, 446, 5177, 1, 0, 0, 0, 448, 5257, 1, 0, 0, 0, 450, 5259, 1, 0, 0, 0, 452, 5273, 1, 0, 0, 0, 454, 5295, 1, 0, 0, 0, 456, 5368, 1, 0, 0, 0, 458, 5370, 1, 0, 0, 0, 460, 5411, 1, 0, 0, 0, 462, 5413, 1, 0, 0, 0, 464, 5418, 1, 0, 0, 0, 466, 5421, 1, 0, 0, 0, 468, 5424, 1, 0, 0, 0, 470, 5474, 1, 0, 0, 0, 472, 5476, 1, 0, 0, 0, 474, 5487, 1, 0, 0, 0, 476, 5489, 1, 0, 0, 0, 478, 5499, 1, 0, 0, 0, 480, 5534, 1, 0, 0, 0, 482, 5537, 1, 0, 0, 0, 484, 5558, 1, 0, 0, 0, 486, 5568, 1, 0, 0, 0, 488, 5588, 1, 0, 0, 0, 490, 5594, 1, 0, 0, 0, 492, 5600, 1, 0, 0, 0, 494, 5605, 1, 0, 0, 0, 496, 5618, 1, 0, 0, 0, 498, 5645, 1, 0, 0, 0, 500, 5693, 1, 0, 0, 0, 502, 5695, 1, 0, 0, 0, 504, 5733, 1, 0, 0, 0, 506, 5735, 1, 0, 0, 0, 508, 5756, 1, 0, 0, 0, 510, 5776, 1, 0, 0, 0, 512, 5780, 1, 0, 0, 0, 514, 5795, 1, 0, 0, 0, 516, 5797, 1, 0, 0, 0, 518, 5801, 1, 0, 0, 0, 520, 5805, 1, 0, 0, 0, 522, 5813, 1, 0, 0, 0, 524, 5837, 1, 0, 0, 0, 526, 5839, 1, 0, 0, 0, 528, 5850, 1, 0, 0, 0, 530, 5858, 1, 0, 0, 0, 532, 5874, 1, 0, 0, 0, 534, 5899, 1, 0, 0, 0, 536, 5901, 1, 0, 0, 0, 538, 5905, 1, 0, 0, 0, 540, 5914, 1, 0, 0, 0, 542, 5954, 1, 0, 0, 0, 544, 5965, 1, 0, 0, 0, 546, 5973, 1, 0, 0, 0, 548, 5976, 1, 0, 0, 0, 550, 5980, 1, 0, 0, 0, 552, 5995, 1, 0, 0, 0, 554, 6020, 1, 0, 0, 0, 556, 6035, 1, 0, 0, 0, 558, 6061, 1, 0, 0, 0, 560, 6063, 1, 0, 0, 0, 562, 6086, 1, 0, 0, 0, 564, 6088, 1, 0, 0, 0, 566, 6096, 1, 0, 0, 0, 568, 6114, 1, 0, 0, 0, 570, 6138, 1, 0, 0, 0, 572, 6150, 1, 0, 0, 0, 574, 6154, 1, 0, 0, 0, 576, 6166, 1, 0, 0, 0, 578, 6186, 1, 0, 0, 0, 580, 6194, 1, 0, 0, 0, 582, 6208, 1, 0, 0, 0, 584, 6231, 1, 0, 0, 0, 586, 6233, 1, 0, 0, 0, 588, 6238, 1, 0, 0, 0, 590, 6248, 1, 0, 0, 0, 592, 6269, 1, 0, 0, 0, 594, 6271, 1, 0, 0, 0, 596, 6280, 1, 0, 0, 0, 598, 6291, 1, 0, 0, 0, 600, 6301, 1, 0, 0, 0, 602, 6303, 1, 0, 0, 0, 604, 6310, 1, 0, 0, 0, 606, 6341, 1, 0, 0, 0, 608, 6371, 1, 0, 0, 0, 610, 6373, 1, 0, 0, 0, 612, 6382, 1, 0, 0, 0, 614, 6385, 1, 0, 0, 0, 616, 6456, 1, 0, 0, 0, 618, 6480, 1, 0, 0, 0, 620, 6501, 1, 0, 0, 0, 622, 6503, 1, 0, 0, 0, 624, 6511, 1, 0, 0, 0, 626, 6528, 1, 0, 0, 0, 628, 6554, 1, 0, 0, 0, 630, 6556, 1, 0, 0, 0, 632, 6564, 1, 0, 0, 0, 634, 6571, 1, 0, 0, 0, 636, 6595, 1, 0, 0, 0, 638, 6601, 1, 0, 0, 0, 640, 6609, 1, 0, 0, 0, 642, 6612, 1, 0, 0, 0, 644, 6619, 1, 0, 0, 0, 646, 6627, 1, 0, 0, 0, 648, 6632, 1, 0, 0, 0, 650, 6662, 1, 0, 0, 0, 652, 6689, 1, 0, 0, 0, 654, 6717, 1, 0, 0, 0, 656, 6734, 1, 0, 0, 0, 658, 6740, 1, 0, 0, 0, 660, 6758, 1, 0, 0, 0, 662, 6760, 1, 0, 0, 0, 664, 6764, 1, 0, 0, 0, 666, 6781, 1, 0, 0, 0, 668, 6786, 1, 0, 0, 0, 670, 6824, 1, 0, 0, 0, 672, 6826, 1, 0, 0, 0, 674, 6830, 1, 0, 0, 0, 676, 6832, 1, 0, 0, 0, 678, 6841, 1, 0, 0, 0, 680, 6925, 1, 0, 0, 0, 682, 6931, 1, 0, 0, 0, 684, 7040, 1, 0, 0, 0, 686, 7072, 1, 0, 0, 0, 688, 7123, 1, 0, 0, 0, 690, 7127, 1, 0, 0, 0, 692, 7303, 1, 0, 0, 0, 694, 7305, 1, 0, 0, 0, 696, 7313, 1, 0, 0, 0, 698, 7318, 1, 0, 0, 0, 700, 7320, 1, 0, 0, 0, 702, 7328, 1, 0, 0, 0, 704, 7331, 1, 0, 0, 0, 706, 7340, 1, 0, 0, 0, 708, 7344, 1, 0, 0, 0, 710, 7349, 1, 0, 0, 0, 712, 7366, 1, 0, 0, 0, 714, 7393, 1, 0, 0, 0, 716, 7402, 1, 0, 0, 0, 718, 7404, 1, 0, 0, 0, 720, 7411, 1, 0, 0, 0, 722, 7415, 1, 0, 0, 0, 724, 7417, 1, 0, 0, 0, 726, 7425, 1, 0, 0, 0, 728, 7433, 1, 0, 0, 0, 730, 7440, 1, 0, 0, 0, 732, 7442, 1, 0, 0, 0, 734, 7455, 1, 0, 0, 0, 736, 7459, 1, 0, 0, 0, 738, 7461, 1, 0, 0, 0, 740, 7476, 1, 0, 0, 0, 742, 7478, 1, 0, 0, 0, 744, 7500, 1, 0, 0, 0, 746, 7502, 1, 0, 0, 0, 748, 7525, 1, 0, 0, 0, 750, 7527, 1, 0, 0, 0, 752, 7549, 1, 0, 0, 0, 754, 7552, 1, 0, 0, 0, 756, 7559, 1, 0, 0, 0, 758, 7562, 1, 0, 0, 0, 760, 7578, 1, 0, 0, 0, 762, 7580, 1, 0, 0, 0, 764, 7588, 1, 0, 0, 0, 766, 7596, 1, 0, 0, 0, 768, 7604, 1, 0, 0, 0, 770, 7612, 1, 0, 0, 0, 772, 7614, 1, 0, 0, 0, 774, 7616, 1, 0, 0, 0, 776, 7618, 1, 0, 0, 0, 778, 7620, 1, 0, 0, 0, 780, 7622, 1, 0, 0, 0, 782, 7624, 1, 0, 0, 0, 784, 7628, 1, 0, 0, 0, 786, 7636, 1, 0, 0, 0, 788, 7644, 1, 0, 0, 0, 790, 7646, 1, 0, 0, 0, 792, 7648, 1, 0, 0, 0, 794, 7650, 1, 0, 0, 0, 796, 7652, 1, 0, 0, 0, 798, 7658, 1, 0, 0, 0, 800, 7664, 1, 0, 0, 0, 802, 7670, 1, 0, 0, 0, 804, 7672, 1, 0, 0, 0, 806, 7678, 1, 0, 0, 0, 808, 7684, 1, 0, 0, 0, 810, 7686, 1, 0, 0, 0, 812, 7702, 1, 0, 0, 0, 814, 7705, 1, 0, 0, 0, 816, 7714, 1, 0, 0, 0, 818, 7716, 1, 0, 0, 0, 820, 7726, 1, 0, 0, 0, 822, 7730, 1, 0, 0, 0, 824, 7735, 1, 0, 0, 0, 826, 7741, 1, 0, 0, 0, 828, 7754, 1, 0, 0, 0, 830, 7756, 1, 0, 0, 0, 832, 7809, 1, 0, 0, 0, 834, 7811, 1, 0, 0, 0, 836, 7813, 1, 0, 0, 0, 838, 7816, 1, 0, 0, 0, 840, 7844, 1, 0, 0, 0, 842, 7848, 1, 0, 0, 0, 844, 7899, 1, 0, 0, 0, 846, 7902, 1, 0, 0, 0, 848, 7928, 1, 0, 0, 0, 850, 7930, 1, 0, 0, 0, 852, 7953, 1, 0, 0, 0, 854, 7955, 1, 0, 0, 0, 856, 7960, 1, 0, 0, 0, 858, 7975, 1, 0, 0, 0, 860, 7981, 1, 0, 0, 0, 862, 7992, 1, 0, 0, 0, 864, 8022, 1, 0, 0, 0, 866, 8029, 1, 0, 0, 0, 868, 8054, 1, 0, 0, 0, 870, 8064, 1, 0, 0, 0, 872, 8091, 1, 0, 0, 0, 874, 8104, 1, 0, 0, 0, 876, 8114, 1, 0, 0, 0, 878, 8133, 1, 0, 0, 0, 880, 8165, 1, 0, 0, 0, 882, 8169, 1, 0, 0, 0, 884, 8177, 1, 0, 0, 0, 886, 8191, 1, 0, 0, 0, 888, 8197, 1, 0, 0, 0, 890, 8218, 1, 0, 0, 0, 892, 8224, 1, 0, 0, 0, 894, 8263, 1, 0, 0, 0, 896, 8267, 1, 0, 0, 0, 898, 8293, 1, 0, 0, 0, 900, 8295, 1, 0, 0, 0, 902, 8303, 1, 0, 0, 0, 904, 8340, 1, 0, 0, 0, 906, 8374, 1, 0, 0, 0, 908, 8376, 1, 0, 0, 0, 910, 8387, 1, 0, 0, 0, 912, 8424, 1, 0, 0, 0, 914, 8428, 1, 0, 0, 0, 916, 8430, 1, 0, 0, 0, 918, 8434, 1, 0, 0, 0, 920, 8437, 1, 0, 0, 0, 922, 8459, 1, 0, 0, 0, 924, 8463, 1, 0, 0, 0, 926, 8465, 1, 0, 0, 0, 928, 8489, 1, 0, 0, 0, 930, 8493, 1, 0, 0, 0, 932, 8496, 1, 0, 0, 0, 934, 936, 3, 2, 1, 0, 935, 934, 1, 0, 0, 0, 936, 939, 1, 0, 0, 0, 937, 935, 1, 0, 0, 0, 937, 938, 1, 0, 0, 0, 938, 940, 1, 0, 0, 0, 939, 937, 1, 0, 0, 0, 940, 941, 5, 0, 0, 1, 941, 1, 1, 0, 0, 0, 942, 944, 3, 4, 2, 0, 943, 945, 5, 7, 0, 0, 944, 943, 1, 0, 0, 0, 944, 945, 1, 0, 0, 0, 945, 3, 1, 0, 0, 0, 946, 1067, 3, 280, 140, 0, 947, 1067, 3, 490, 245, 0, 948, 1067, 3, 486, 243, 0, 949, 1067, 3, 488, 244, 0, 950, 1067, 3, 354, 177, 0, 951, 1067, 3, 496, 248, 0, 952, 1067, 3, 294, 147, 0, 953, 1067, 3, 212, 106, 0, 954, 1067, 3, 214, 107, 0, 955, 1067, 3, 220, 110, 0, 956, 1067, 3, 234, 117, 0, 957, 1067, 3, 406, 203, 0, 958, 1067, 3, 28, 14, 0, 959, 1067, 3, 436, 218, 0, 960, 1067, 3, 438, 219, 0, 961, 1067, 3, 448, 224, 0, 962, 1067, 3, 440, 220, 0, 963, 1067, 3, 446, 223, 0, 964, 1067, 3, 246, 123, 0, 965, 1067, 3, 248, 124, 0, 966, 1067, 3, 200, 100, 0, 967, 1067, 3, 492, 246, 0, 968, 1067, 3, 76, 38, 0, 969, 1067, 3, 432, 216, 0, 970, 1067, 3, 108, 54, 0, 971, 1067, 3, 452, 226, 0, 972, 1067, 3, 18, 9, 0, 973, 1067, 3, 20, 10, 0, 974, 1067, 3, 16, 8, 0, 975, 1067, 3, 456, 228, 0, 976, 1067, 3, 186, 93, 0, 977, 1067, 3, 500, 250, 0, 978, 1067, 3, 498, 249, 0, 979, 1067, 3, 242, 121, 0, 980, 1067, 3, 508, 254, 0, 981, 1067, 3, 6, 3, 0, 982, 1067, 3, 72, 36, 0, 983, 1067, 3, 112, 56, 0, 984, 1067, 3, 504, 252, 0, 985, 1067, 3, 326, 163, 0, 986, 1067, 3, 70, 35, 0, 987, 1067, 3, 114, 57, 0, 988, 1067, 3, 256, 128, 0, 989, 1067, 3, 188, 94, 0, 990, 1067, 3, 282, 141, 0, 991, 1067, 3, 422, 211, 0, 992, 1067, 3, 502, 251, 0, 993, 1067, 3, 494, 247, 0, 994, 1067, 3, 210, 105, 0, 995, 1067, 3, 216, 108, 0, 996, 1067, 3, 230, 115, 0, 997, 1067, 3, 236, 118, 0, 998, 1067, 3, 366, 183, 0, 999, 1067, 3, 26, 13, 0, 1000, 1067, 3, 194, 97, 0, 1001, 1067, 3, 298, 149, 0, 1002, 1067, 3, 302, 151, 0, 1003, 1067, 3, 450, 225, 0, 1004, 1067, 3, 304, 152, 0, 1005, 1067, 3, 244, 122, 0, 1006, 1067, 3, 206, 103, 0, 1007, 1067, 3, 30, 15, 0, 1008, 1067, 3, 198, 99, 0, 1009, 1067, 3, 122, 61, 0, 1010, 1067, 3, 454, 227, 0, 1011, 1067, 3, 184, 92, 0, 1012, 1067, 3, 208, 104, 0, 1013, 1067, 3, 426, 213, 0, 1014, 1067, 3, 258, 129, 0, 1015, 1067, 3, 276, 138, 0, 1016, 1067, 3, 8, 4, 0, 1017, 1067, 3, 14, 7, 0, 1018, 1067, 3, 240, 120, 0, 1019, 1067, 3, 482, 241, 0, 1020, 1067, 3, 538, 269, 0, 1021, 1067, 3, 560, 280, 0, 1022, 1067, 3, 284, 142, 0, 1023, 1067, 3, 550, 275, 0, 1024, 1067, 3, 74, 37, 0, 1025, 1067, 3, 420, 210, 0, 1026, 1067, 3, 310, 155, 0, 1027, 1067, 3, 534, 267, 0, 1028, 1067, 3, 522, 261, 0, 1029, 1067, 3, 330, 165, 0, 1030, 1067, 3, 336, 168, 0, 1031, 1067, 3, 350, 175, 0, 1032, 1067, 3, 902, 451, 0, 1033, 1067, 3, 238, 119, 0, 1034, 1067, 3, 360, 180, 0, 1035, 1067, 3, 540, 270, 0, 1036, 1067, 3, 466, 233, 0, 1037, 1067, 3, 196, 98, 0, 1038, 1067, 3, 480, 240, 0, 1039, 1067, 3, 552, 276, 0, 1040, 1067, 3, 462, 231, 0, 1041, 1067, 3, 528, 264, 0, 1042, 1067, 3, 308, 154, 0, 1043, 1067, 3, 430, 215, 0, 1044, 1067, 3, 410, 205, 0, 1045, 1067, 3, 408, 204, 0, 1046, 1067, 3, 412, 206, 0, 1047, 1067, 3, 434, 217, 0, 1048, 1067, 3, 338, 169, 0, 1049, 1067, 3, 352, 176, 0, 1050, 1067, 3, 458, 229, 0, 1051, 1067, 3, 328, 164, 0, 1052, 1067, 3, 562, 281, 0, 1053, 1067, 3, 470, 235, 0, 1054, 1067, 3, 322, 161, 0, 1055, 1067, 3, 468, 234, 0, 1056, 1067, 3, 554, 277, 0, 1057, 1067, 3, 506, 253, 0, 1058, 1067, 3, 60, 30, 0, 1059, 1067, 3, 36, 18, 0, 1060, 1067, 3, 68, 34, 0, 1061, 1067, 3, 478, 239, 0, 1062, 1064, 5, 584, 0, 0, 1063, 1065, 5, 585, 0, 0, 1064, 1063, 1, 0, 0, 0, 1064, 1065, 1, 0, 0, 0, 1065, 1067, 1, 0, 0, 0, 1066, 946, 1, 0, 0, 0, 1066, 947, 1, 0, 0, 0, 1066, 948, 1, 0, 0, 0, 1066, 949, 1, 0, 0, 0, 1066, 950, 1, 0, 0, 0, 1066, 951, 1, 0, 0, 0, 1066, 952, 1, 0, 0, 0, 1066, 953, 1, 0, 0, 0, 1066, 954, 1, 0, 0, 0, 1066, 955, 1, 0, 0, 0, 1066, 956, 1, 0, 0, 0, 1066, 957, 1, 0, 0, 0, 1066, 958, 1, 0, 0, 0, 1066, 959, 1, 0, 0, 0, 1066, 960, 1, 0, 0, 0, 1066, 961, 1, 0, 0, 0, 1066, 962, 1, 0, 0, 0, 1066, 963, 1, 0, 0, 0, 1066, 964, 1, 0, 0, 0, 1066, 965, 1, 0, 0, 0, 1066, 966, 1, 0, 0, 0, 1066, 967, 1, 0, 0, 0, 1066, 968, 1, 0, 0, 0, 1066, 969, 1, 0, 0, 0, 1066, 970, 1, 0, 0, 0, 1066, 971, 1, 0, 0, 0, 1066, 972, 1, 0, 0, 0, 1066, 973, 1, 0, 0, 0, 1066, 974, 1, 0, 0, 0, 1066, 975, 1, 0, 0, 0, 1066, 976, 1, 0, 0, 0, 1066, 977, 1, 0, 0, 0, 1066, 978, 1, 0, 0, 0, 1066, 979, 1, 0, 0, 0, 1066, 980, 1, 0, 0, 0, 1066, 981, 1, 0, 0, 0, 1066, 982, 1, 0, 0, 0, 1066, 983, 1, 0, 0, 0, 1066, 984, 1, 0, 0, 0, 1066, 985, 1, 0, 0, 0, 1066, 986, 1, 0, 0, 0, 1066, 987, 1, 0, 0, 0, 1066, 988, 1, 0, 0, 0, 1066, 989, 1, 0, 0, 0, 1066, 990, 1, 0, 0, 0, 1066, 991, 1, 0, 0, 0, 1066, 992, 1, 0, 0, 0, 1066, 993, 1, 0, 0, 0, 1066, 994, 1, 0, 0, 0, 1066, 995, 1, 0, 0, 0, 1066, 996, 1, 0, 0, 0, 1066, 997, 1, 0, 0, 0, 1066, 998, 1, 0, 0, 0, 1066, 999, 1, 0, 0, 0, 1066, 1000, 1, 0, 0, 0, 1066, 1001, 1, 0, 0, 0, 1066, 1002, 1, 0, 0, 0, 1066, 1003, 1, 0, 0, 0, 1066, 1004, 1, 0, 0, 0, 1066, 1005, 1, 0, 0, 0, 1066, 1006, 1, 0, 0, 0, 1066, 1007, 1, 0, 0, 0, 1066, 1008, 1, 0, 0, 0, 1066, 1009, 1, 0, 0, 0, 1066, 1010, 1, 0, 0, 0, 1066, 1011, 1, 0, 0, 0, 1066, 1012, 1, 0, 0, 0, 1066, 1013, 1, 0, 0, 0, 1066, 1014, 1, 0, 0, 0, 1066, 1015, 1, 0, 0, 0, 1066, 1016, 1, 0, 0, 0, 1066, 1017, 1, 0, 0, 0, 1066, 1018, 1, 0, 0, 0, 1066, 1019, 1, 0, 0, 0, 1066, 1020, 1, 0, 0, 0, 1066, 1021, 1, 0, 0, 0, 1066, 1022, 1, 0, 0, 0, 1066, 1023, 1, 0, 0, 0, 1066, 1024, 1, 0, 0, 0, 1066, 1025, 1, 0, 0, 0, 1066, 1026, 1, 0, 0, 0, 1066, 1027, 1, 0, 0, 0, 1066, 1028, 1, 0, 0, 0, 1066, 1029, 1, 0, 0, 0, 1066, 1030, 1, 0, 0, 0, 1066, 1031, 1, 0, 0, 0, 1066, 1032, 1, 0, 0, 0, 1066, 1033, 1, 0, 0, 0, 1066, 1034, 1, 0, 0, 0, 1066, 1035, 1, 0, 0, 0, 1066, 1036, 1, 0, 0, 0, 1066, 1037, 1, 0, 0, 0, 1066, 1038, 1, 0, 0, 0, 1066, 1039, 1, 0, 0, 0, 1066, 1040, 1, 0, 0, 0, 1066, 1041, 1, 0, 0, 0, 1066, 1042, 1, 0, 0, 0, 1066, 1043, 1, 0, 0, 0, 1066, 1044, 1, 0, 0, 0, 1066, 1045, 1, 0, 0, 0, 1066, 1046, 1, 0, 0, 0, 1066, 1047, 1, 0, 0, 0, 1066, 1048, 1, 0, 0, 0, 1066, 1049, 1, 0, 0, 0, 1066, 1050, 1, 0, 0, 0, 1066, 1051, 1, 0, 0, 0, 1066, 1052, 1, 0, 0, 0, 1066, 1053, 1, 0, 0, 0, 1066, 1054, 1, 0, 0, 0, 1066, 1055, 1, 0, 0, 0, 1066, 1056, 1, 0, 0, 0, 1066, 1057, 1, 0, 0, 0, 1066, 1058, 1, 0, 0, 0, 1066, 1059, 1, 0, 0, 0, 1066, 1060, 1, 0, 0, 0, 1066, 1061, 1, 0, 0, 0, 1066, 1062, 1, 0, 0, 0, 1067, 5, 1, 0, 0, 0, 1068, 1069, 5, 433, 0, 0, 1069, 1070, 3, 686, 343, 0, 1070, 7, 1, 0, 0, 0, 1071, 1072, 5, 46, 0, 0, 1072, 1073, 5, 318, 0, 0, 1073, 1075, 3, 816, 408, 0, 1074, 1076, 5, 105, 0, 0, 1075, 1074, 1, 0, 0, 0, 1075, 1076, 1, 0, 0, 0, 1076, 1080, 1, 0, 0, 0, 1077, 1079, 3, 12, 6, 0, 1078, 1077, 1, 0, 0, 0, 1079, 1082, 1, 0, 0, 0, 1080, 1078, 1, 0, 0, 0, 1080, 1081, 1, 0, 0, 0, 1081, 9, 1, 0, 0, 0, 1082, 1080, 1, 0, 0, 0, 1083, 1086, 5, 287, 0, 0, 1084, 1087, 3, 810, 405, 0, 1085, 1087, 5, 78, 0, 0, 1086, 1084, 1, 0, 0, 0, 1086, 1085, 1, 0, 0, 0, 1087, 1122, 1, 0, 0, 0, 1088, 1089, 7, 0, 0, 0, 1089, 1090, 5, 287, 0, 0, 1090, 1122, 3, 810, 405, 0, 1091, 1122, 5, 228, 0, 0, 1092, 1122, 5, 229, 0, 0, 1093, 1122, 5, 236, 0, 0, 1094, 1122, 5, 237, 0, 0, 1095, 1122, 5, 234, 0, 0, 1096, 1122, 5, 235, 0, 0, 1097, 1122, 5, 232, 0, 0, 1098, 1122, 5, 233, 0, 0, 1099, 1122, 5, 230, 0, 0, 1100, 1122, 5, 231, 0, 0, 1101, 1122, 5, 535, 0, 0, 1102, 1122, 5, 536, 0, 0, 1103, 1122, 5, 537, 0, 0, 1104, 1122, 5, 538, 0, 0, 1105, 1122, 5, 539, 0, 0, 1106, 1122, 5, 540, 0, 0, 1107, 1108, 5, 164, 0, 0, 1108, 1109, 5, 74, 0, 0, 1109, 1122, 3, 814, 407, 0, 1110, 1111, 5, 371, 0, 0, 1111, 1112, 5, 368, 0, 0, 1112, 1122, 3, 810, 405, 0, 1113, 1114, 5, 68, 0, 0, 1114, 1115, 7, 1, 0, 0, 1115, 1122, 3, 786, 393, 0, 1116, 1117, 7, 2, 0, 0, 1117, 1122, 3, 818, 409, 0, 1118, 1119, 5, 134, 0, 0, 1119, 1122, 3, 786, 393, 0, 1120, 1122, 3, 828, 414, 0, 1121, 1083, 1, 0, 0, 0, 1121, 1088, 1, 0, 0, 0, 1121, 1091, 1, 0, 0, 0, 1121, 1092, 1, 0, 0, 0, 1121, 1093, 1, 0, 0, 0, 1121, 1094, 1, 0, 0, 0, 1121, 1095, 1, 0, 0, 0, 1121, 1096, 1, 0, 0, 0, 1121, 1097, 1, 0, 0, 0, 1121, 1098, 1, 0, 0, 0, 1121, 1099, 1, 0, 0, 0, 1121, 1100, 1, 0, 0, 0, 1121, 1101, 1, 0, 0, 0, 1121, 1102, 1, 0, 0, 0, 1121, 1103, 1, 0, 0, 0, 1121, 1104, 1, 0, 0, 0, 1121, 1105, 1, 0, 0, 0, 1121, 1106, 1, 0, 0, 0, 1121, 1107, 1, 0, 0, 0, 1121, 1110, 1, 0, 0, 0, 1121, 1113, 1, 0, 0, 0, 1121, 1116, 1, 0, 0, 0, 1121, 1118, 1, 0, 0, 0, 1121, 1120, 1, 0, 0, 0, 1122, 11, 1, 0, 0, 0, 1123, 1132, 3, 10, 5, 0, 1124, 1125, 5, 348, 0, 0, 1125, 1132, 5, 574, 0, 0, 1126, 1127, 7, 3, 0, 0, 1127, 1132, 3, 818, 409, 0, 1128, 1129, 5, 68, 0, 0, 1129, 1130, 7, 1, 0, 0, 1130, 1132, 3, 818, 409, 0, 1131, 1123, 1, 0, 0, 0, 1131, 1124, 1, 0, 0, 0, 1131, 1126, 1, 0, 0, 0, 1131, 1128, 1, 0, 0, 0, 1132, 13, 1, 0, 0, 0, 1133, 1134, 5, 46, 0, 0, 1134, 1135, 5, 99, 0, 0, 1135, 1137, 3, 816, 408, 0, 1136, 1138, 5, 105, 0, 0, 1137, 1136, 1, 0, 0, 0, 1137, 1138, 1, 0, 0, 0, 1138, 1142, 1, 0, 0, 0, 1139, 1141, 3, 12, 6, 0, 1140, 1139, 1, 0, 0, 0, 1141, 1144, 1, 0, 0, 0, 1142, 1140, 1, 0, 0, 0, 1142, 1143, 1, 0, 0, 0, 1143, 15, 1, 0, 0, 0, 1144, 1142, 1, 0, 0, 0, 1145, 1146, 5, 138, 0, 0, 1146, 1147, 7, 2, 0, 0, 1147, 1149, 3, 816, 408, 0, 1148, 1150, 5, 105, 0, 0, 1149, 1148, 1, 0, 0, 0, 1149, 1150, 1, 0, 0, 0, 1150, 1154, 1, 0, 0, 0, 1151, 1153, 3, 10, 5, 0, 1152, 1151, 1, 0, 0, 0, 1153, 1156, 1, 0, 0, 0, 1154, 1152, 1, 0, 0, 0, 1154, 1155, 1, 0, 0, 0, 1155, 17, 1, 0, 0, 0, 1156, 1154, 1, 0, 0, 0, 1157, 1158, 5, 138, 0, 0, 1158, 1161, 7, 2, 0, 0, 1159, 1162, 5, 30, 0, 0, 1160, 1162, 3, 816, 408, 0, 1161, 1159, 1, 0, 0, 0, 1161, 1160, 1, 0, 0, 0, 1162, 1163, 1, 0, 0, 0, 1163, 1164, 5, 68, 0, 0, 1164, 1165, 5, 175, 0, 0, 1165, 1166, 3, 790, 395, 0, 1166, 1167, 3, 64, 32, 0, 1167, 19, 1, 0, 0, 0, 1168, 1169, 5, 138, 0, 0, 1169, 1170, 5, 442, 0, 0, 1170, 1172, 3, 796, 398, 0, 1171, 1173, 3, 370, 185, 0, 1172, 1171, 1, 0, 0, 0, 1172, 1173, 1, 0, 0, 0, 1173, 1174, 1, 0, 0, 0, 1174, 1175, 3, 22, 11, 0, 1175, 21, 1, 0, 0, 0, 1176, 1180, 3, 24, 12, 0, 1177, 1179, 3, 24, 12, 0, 1178, 1177, 1, 0, 0, 0, 1179, 1182, 1, 0, 0, 0, 1180, 1178, 1, 0, 0, 0, 1180, 1181, 1, 0, 0, 0, 1181, 1184, 1, 0, 0, 0, 1182, 1180, 1, 0, 0, 0, 1183, 1185, 5, 315, 0, 0, 1184, 1183, 1, 0, 0, 0, 1184, 1185, 1, 0, 0, 0, 1185, 1203, 1, 0, 0, 0, 1186, 1187, 5, 309, 0, 0, 1187, 1188, 5, 94, 0, 0, 1188, 1203, 3, 794, 397, 0, 1189, 1190, 5, 282, 0, 0, 1190, 1191, 5, 94, 0, 0, 1191, 1203, 3, 816, 408, 0, 1192, 1193, 5, 333, 0, 0, 1193, 1194, 5, 323, 0, 0, 1194, 1203, 3, 32, 16, 0, 1195, 1197, 5, 269, 0, 0, 1196, 1195, 1, 0, 0, 0, 1196, 1197, 1, 0, 0, 0, 1197, 1198, 1, 0, 0, 0, 1198, 1199, 5, 462, 0, 0, 1199, 1200, 5, 80, 0, 0, 1200, 1201, 5, 204, 0, 0, 1201, 1203, 3, 820, 410, 0, 1202, 1176, 1, 0, 0, 0, 1202, 1186, 1, 0, 0, 0, 1202, 1189, 1, 0, 0, 0, 1202, 1192, 1, 0, 0, 0, 1202, 1196, 1, 0, 0, 0, 1203, 23, 1, 0, 0, 0, 1204, 1247, 5, 222, 0, 0, 1205, 1247, 5, 338, 0, 0, 1206, 1247, 5, 377, 0, 0, 1207, 1209, 5, 77, 0, 0, 1208, 1207, 1, 0, 0, 0, 1208, 1209, 1, 0, 0, 0, 1209, 1210, 1, 0, 0, 0, 1210, 1247, 5, 250, 0, 0, 1211, 1213, 5, 205, 0, 0, 1212, 1211, 1, 0, 0, 0, 1212, 1213, 1, 0, 0, 0, 1213, 1214, 1, 0, 0, 0, 1214, 1215, 5, 327, 0, 0, 1215, 1222, 5, 243, 0, 0, 1216, 1218, 5, 205, 0, 0, 1217, 1216, 1, 0, 0, 0, 1217, 1218, 1, 0, 0, 0, 1218, 1219, 1, 0, 0, 0, 1219, 1220, 5, 327, 0, 0, 1220, 1222, 5, 181, 0, 0, 1221, 1212, 1, 0, 0, 0, 1221, 1217, 1, 0, 0, 0, 1222, 1247, 1, 0, 0, 0, 1223, 1224, 5, 460, 0, 0, 1224, 1247, 7, 4, 0, 0, 1225, 1226, 5, 170, 0, 0, 1226, 1247, 3, 826, 413, 0, 1227, 1228, 5, 320, 0, 0, 1228, 1247, 3, 820, 410, 0, 1229, 1230, 5, 333, 0, 0, 1230, 1231, 3, 820, 410, 0, 1231, 1234, 7, 5, 0, 0, 1232, 1235, 3, 820, 410, 0, 1233, 1235, 5, 53, 0, 0, 1234, 1232, 1, 0, 0, 0, 1234, 1233, 1, 0, 0, 0, 1235, 1247, 1, 0, 0, 0, 1236, 1237, 5, 333, 0, 0, 1237, 1238, 3, 820, 410, 0, 1238, 1239, 5, 64, 0, 0, 1239, 1240, 5, 434, 0, 0, 1240, 1247, 1, 0, 0, 0, 1241, 1244, 5, 313, 0, 0, 1242, 1245, 3, 820, 410, 0, 1243, 1245, 5, 30, 0, 0, 1244, 1242, 1, 0, 0, 0, 1244, 1243, 1, 0, 0, 0, 1245, 1247, 1, 0, 0, 0, 1246, 1204, 1, 0, 0, 0, 1246, 1205, 1, 0, 0, 0, 1246, 1206, 1, 0, 0, 0, 1246, 1208, 1, 0, 0, 0, 1246, 1221, 1, 0, 0, 0, 1246, 1223, 1, 0, 0, 0, 1246, 1225, 1, 0, 0, 0, 1246, 1227, 1, 0, 0, 0, 1246, 1229, 1, 0, 0, 0, 1246, 1236, 1, 0, 0, 0, 1246, 1241, 1, 0, 0, 0, 1247, 25, 1, 0, 0, 0, 1248, 1249, 5, 46, 0, 0, 1249, 1250, 5, 66, 0, 0, 1250, 1252, 3, 816, 408, 0, 1251, 1253, 5, 105, 0, 0, 1252, 1251, 1, 0, 0, 0, 1252, 1253, 1, 0, 0, 0, 1253, 1257, 1, 0, 0, 0, 1254, 1256, 3, 12, 6, 0, 1255, 1254, 1, 0, 0, 0, 1256, 1259, 1, 0, 0, 0, 1257, 1255, 1, 0, 0, 0, 1257, 1258, 1, 0, 0, 0, 1258, 27, 1, 0, 0, 0, 1259, 1257, 1, 0, 0, 0, 1260, 1261, 5, 138, 0, 0, 1261, 1262, 5, 66, 0, 0, 1262, 1263, 3, 816, 408, 0, 1263, 1264, 7, 6, 0, 0, 1264, 1265, 5, 99, 0, 0, 1265, 1266, 3, 818, 409, 0, 1266, 29, 1, 0, 0, 0, 1267, 1268, 5, 46, 0, 0, 1268, 1270, 5, 323, 0, 0, 1269, 1271, 3, 296, 148, 0, 1270, 1269, 1, 0, 0, 0, 1270, 1271, 1, 0, 0, 0, 1271, 1278, 1, 0, 0, 0, 1272, 1274, 3, 32, 16, 0, 1273, 1272, 1, 0, 0, 0, 1273, 1274, 1, 0, 0, 0, 1274, 1275, 1, 0, 0, 0, 1275, 1276, 5, 106, 0, 0, 1276, 1279, 3, 816, 408, 0, 1277, 1279, 3, 32, 16, 0, 1278, 1273, 1, 0, 0, 0, 1278, 1277, 1, 0, 0, 0, 1279, 1283, 1, 0, 0, 0, 1280, 1282, 3, 34, 17, 0, 1281, 1280, 1, 0, 0, 0, 1282, 1285, 1, 0, 0, 0, 1283, 1281, 1, 0, 0, 0, 1283, 1284, 1, 0, 0, 0, 1284, 31, 1, 0, 0, 0, 1285, 1283, 1, 0, 0, 0, 1286, 1287, 3, 318, 159, 0, 1287, 33, 1, 0, 0, 0, 1288, 1295, 3, 122, 61, 0, 1289, 1295, 3, 360, 180, 0, 1290, 1295, 3, 198, 99, 0, 1291, 1295, 3, 258, 129, 0, 1292, 1295, 3, 336, 168, 0, 1293, 1295, 3, 478, 239, 0, 1294, 1288, 1, 0, 0, 0, 1294, 1289, 1, 0, 0, 0, 1294, 1290, 1, 0, 0, 0, 1294, 1291, 1, 0, 0, 0, 1294, 1292, 1, 0, 0, 0, 1294, 1293, 1, 0, 0, 0, 1295, 35, 1, 0, 0, 0, 1296, 1298, 5, 333, 0, 0, 1297, 1299, 7, 7, 0, 0, 1298, 1297, 1, 0, 0, 0, 1298, 1299, 1, 0, 0, 0, 1299, 1300, 1, 0, 0, 0, 1300, 1301, 3, 38, 19, 0, 1301, 37, 1, 0, 0, 0, 1302, 1303, 5, 356, 0, 0, 1303, 1311, 3, 476, 238, 0, 1304, 1305, 5, 332, 0, 0, 1305, 1306, 5, 154, 0, 0, 1306, 1307, 5, 36, 0, 0, 1307, 1308, 5, 356, 0, 0, 1308, 1311, 3, 476, 238, 0, 1309, 1311, 3, 42, 21, 0, 1310, 1302, 1, 0, 0, 0, 1310, 1304, 1, 0, 0, 0, 1310, 1309, 1, 0, 0, 0, 1311, 39, 1, 0, 0, 0, 1312, 1315, 5, 30, 0, 0, 1313, 1315, 3, 44, 22, 0, 1314, 1312, 1, 0, 0, 0, 1314, 1313, 1, 0, 0, 0, 1315, 1317, 1, 0, 0, 0, 1316, 1318, 7, 5, 0, 0, 1317, 1316, 1, 0, 0, 0, 1317, 1318, 1, 0, 0, 0, 1318, 1321, 1, 0, 0, 0, 1319, 1322, 5, 53, 0, 0, 1320, 1322, 3, 46, 23, 0, 1321, 1319, 1, 0, 0, 0, 1321, 1320, 1, 0, 0, 0, 1321, 1322, 1, 0, 0, 0, 1322, 41, 1, 0, 0, 0, 1323, 1324, 5, 418, 0, 0, 1324, 1325, 5, 386, 0, 0, 1325, 1352, 3, 56, 28, 0, 1326, 1327, 5, 152, 0, 0, 1327, 1352, 3, 810, 405, 0, 1328, 1329, 5, 323, 0, 0, 1329, 1352, 3, 792, 396, 0, 1330, 1333, 5, 267, 0, 0, 1331, 1334, 3, 810, 405, 0, 1332, 1334, 5, 53, 0, 0, 1333, 1331, 1, 0, 0, 0, 1333, 1332, 1, 0, 0, 0, 1333, 1334, 1, 0, 0, 0, 1334, 1352, 1, 0, 0, 0, 1335, 1336, 5, 318, 0, 0, 1336, 1352, 3, 58, 29, 0, 1337, 1338, 5, 332, 0, 0, 1338, 1339, 5, 106, 0, 0, 1339, 1352, 3, 58, 29, 0, 1340, 1341, 5, 383, 0, 0, 1341, 1342, 5, 279, 0, 0, 1342, 1352, 3, 698, 349, 0, 1343, 1344, 5, 356, 0, 0, 1344, 1345, 5, 337, 0, 0, 1345, 1352, 3, 810, 405, 0, 1346, 1347, 3, 44, 22, 0, 1347, 1348, 5, 64, 0, 0, 1348, 1349, 5, 434, 0, 0, 1349, 1352, 1, 0, 0, 0, 1350, 1352, 3, 40, 20, 0, 1351, 1323, 1, 0, 0, 0, 1351, 1326, 1, 0, 0, 0, 1351, 1328, 1, 0, 0, 0, 1351, 1330, 1, 0, 0, 0, 1351, 1335, 1, 0, 0, 0, 1351, 1337, 1, 0, 0, 0, 1351, 1340, 1, 0, 0, 0, 1351, 1343, 1, 0, 0, 0, 1351, 1346, 1, 0, 0, 0, 1351, 1350, 1, 0, 0, 0, 1352, 43, 1, 0, 0, 0, 1353, 1358, 3, 820, 410, 0, 1354, 1355, 5, 11, 0, 0, 1355, 1357, 3, 820, 410, 0, 1356, 1354, 1, 0, 0, 0, 1357, 1360, 1, 0, 0, 0, 1358, 1356, 1, 0, 0, 0, 1358, 1359, 1, 0, 0, 0, 1359, 45, 1, 0, 0, 0, 1360, 1358, 1, 0, 0, 0, 1361, 1366, 3, 48, 24, 0, 1362, 1363, 5, 6, 0, 0, 1363, 1365, 3, 48, 24, 0, 1364, 1362, 1, 0, 0, 0, 1365, 1368, 1, 0, 0, 0, 1366, 1364, 1, 0, 0, 0, 1366, 1367, 1, 0, 0, 0, 1367, 47, 1, 0, 0, 0, 1368, 1366, 1, 0, 0, 0, 1369, 1372, 3, 54, 27, 0, 1370, 1372, 3, 204, 102, 0, 1371, 1369, 1, 0, 0, 0, 1371, 1370, 1, 0, 0, 0, 1372, 49, 1, 0, 0, 0, 1373, 1374, 5, 300, 0, 0, 1374, 1379, 7, 8, 0, 0, 1375, 1376, 5, 310, 0, 0, 1376, 1379, 5, 300, 0, 0, 1377, 1379, 5, 330, 0, 0, 1378, 1373, 1, 0, 0, 0, 1378, 1375, 1, 0, 0, 0, 1378, 1377, 1, 0, 0, 0, 1379, 51, 1, 0, 0, 0, 1380, 1387, 5, 96, 0, 0, 1381, 1387, 5, 60, 0, 0, 1382, 1387, 5, 80, 0, 0, 1383, 1387, 3, 802, 401, 0, 1384, 1387, 3, 834, 417, 0, 1385, 1387, 3, 810, 405, 0, 1386, 1380, 1, 0, 0, 0, 1386, 1381, 1, 0, 0, 0, 1386, 1382, 1, 0, 0, 0, 1386, 1383, 1, 0, 0, 0, 1386, 1384, 1, 0, 0, 0, 1386, 1385, 1, 0, 0, 0, 1387, 53, 1, 0, 0, 0, 1388, 1393, 5, 96, 0, 0, 1389, 1393, 5, 60, 0, 0, 1390, 1393, 5, 80, 0, 0, 1391, 1393, 3, 58, 29, 0, 1392, 1388, 1, 0, 0, 0, 1392, 1389, 1, 0, 0, 0, 1392, 1390, 1, 0, 0, 0, 1392, 1391, 1, 0, 0, 0, 1393, 55, 1, 0, 0, 0, 1394, 1409, 3, 810, 405, 0, 1395, 1409, 5, 53, 0, 0, 1396, 1409, 3, 828, 414, 0, 1397, 1398, 5, 403, 0, 0, 1398, 1400, 3, 810, 405, 0, 1399, 1401, 3, 670, 335, 0, 1400, 1399, 1, 0, 0, 0, 1400, 1401, 1, 0, 0, 0, 1401, 1409, 1, 0, 0, 0, 1402, 1403, 5, 403, 0, 0, 1403, 1404, 3, 662, 331, 0, 1404, 1405, 3, 810, 405, 0, 1405, 1409, 1, 0, 0, 0, 1406, 1409, 3, 204, 102, 0, 1407, 1409, 5, 254, 0, 0, 1408, 1394, 1, 0, 0, 0, 1408, 1395, 1, 0, 0, 0, 1408, 1396, 1, 0, 0, 0, 1408, 1397, 1, 0, 0, 0, 1408, 1402, 1, 0, 0, 0, 1408, 1406, 1, 0, 0, 0, 1408, 1407, 1, 0, 0, 0, 1409, 57, 1, 0, 0, 0, 1410, 1413, 3, 824, 412, 0, 1411, 1413, 3, 810, 405, 0, 1412, 1410, 1, 0, 0, 0, 1412, 1411, 1, 0, 0, 0, 1413, 59, 1, 0, 0, 0, 1414, 1415, 5, 313, 0, 0, 1415, 1416, 3, 62, 31, 0, 1416, 61, 1, 0, 0, 0, 1417, 1418, 5, 418, 0, 0, 1418, 1427, 5, 386, 0, 0, 1419, 1420, 5, 356, 0, 0, 1420, 1421, 5, 244, 0, 0, 1421, 1427, 5, 251, 0, 0, 1422, 1423, 5, 332, 0, 0, 1423, 1427, 5, 106, 0, 0, 1424, 1427, 5, 30, 0, 0, 1425, 1427, 3, 44, 22, 0, 1426, 1417, 1, 0, 0, 0, 1426, 1419, 1, 0, 0, 0, 1426, 1422, 1, 0, 0, 0, 1426, 1424, 1, 0, 0, 0, 1426, 1425, 1, 0, 0, 0, 1427, 63, 1, 0, 0, 0, 1428, 1429, 5, 333, 0, 0, 1429, 1432, 3, 38, 19, 0, 1430, 1432, 3, 60, 30, 0, 1431, 1428, 1, 0, 0, 0, 1431, 1430, 1, 0, 0, 0, 1432, 65, 1, 0, 0, 0, 1433, 1434, 5, 333, 0, 0, 1434, 1437, 3, 42, 21, 0, 1435, 1437, 3, 60, 30, 0, 1436, 1433, 1, 0, 0, 0, 1436, 1435, 1, 0, 0, 0, 1437, 67, 1, 0, 0, 0, 1438, 1448, 5, 335, 0, 0, 1439, 1449, 3, 44, 22, 0, 1440, 1441, 5, 418, 0, 0, 1441, 1449, 5, 386, 0, 0, 1442, 1443, 5, 356, 0, 0, 1443, 1444, 5, 244, 0, 0, 1444, 1449, 5, 251, 0, 0, 1445, 1446, 5, 332, 0, 0, 1446, 1449, 5, 106, 0, 0, 1447, 1449, 5, 30, 0, 0, 1448, 1439, 1, 0, 0, 0, 1448, 1440, 1, 0, 0, 0, 1448, 1442, 1, 0, 0, 0, 1448, 1445, 1, 0, 0, 0, 1448, 1447, 1, 0, 0, 0, 1449, 69, 1, 0, 0, 0, 1450, 1451, 5, 333, 0, 0, 1451, 1454, 5, 165, 0, 0, 1452, 1455, 5, 30, 0, 0, 1453, 1455, 3, 762, 381, 0, 1454, 1452, 1, 0, 0, 0, 1454, 1453, 1, 0, 0, 0, 1455, 1456, 1, 0, 0, 0, 1456, 1457, 7, 9, 0, 0, 1457, 71, 1, 0, 0, 0, 1458, 1459, 5, 155, 0, 0, 1459, 73, 1, 0, 0, 0, 1460, 1461, 5, 187, 0, 0, 1461, 1462, 7, 10, 0, 0, 1462, 75, 1, 0, 0, 0, 1463, 1464, 5, 138, 0, 0, 1464, 1466, 5, 92, 0, 0, 1465, 1467, 3, 424, 212, 0, 1466, 1465, 1, 0, 0, 0, 1466, 1467, 1, 0, 0, 0, 1467, 1468, 1, 0, 0, 0, 1468, 1471, 3, 626, 313, 0, 1469, 1472, 3, 78, 39, 0, 1470, 1472, 3, 88, 44, 0, 1471, 1469, 1, 0, 0, 0, 1471, 1470, 1, 0, 0, 0, 1472, 1585, 1, 0, 0, 0, 1473, 1474, 5, 138, 0, 0, 1474, 1475, 5, 92, 0, 0, 1475, 1476, 5, 30, 0, 0, 1476, 1477, 5, 68, 0, 0, 1477, 1481, 3, 178, 89, 0, 1478, 1479, 5, 281, 0, 0, 1479, 1480, 5, 147, 0, 0, 1480, 1482, 3, 818, 409, 0, 1481, 1478, 1, 0, 0, 0, 1481, 1482, 1, 0, 0, 0, 1482, 1483, 1, 0, 0, 0, 1483, 1484, 5, 333, 0, 0, 1484, 1485, 5, 351, 0, 0, 1485, 1487, 3, 770, 385, 0, 1486, 1488, 5, 272, 0, 0, 1487, 1486, 1, 0, 0, 0, 1487, 1488, 1, 0, 0, 0, 1488, 1585, 1, 0, 0, 0, 1489, 1490, 5, 138, 0, 0, 1490, 1492, 5, 92, 0, 0, 1491, 1493, 3, 424, 212, 0, 1492, 1491, 1, 0, 0, 0, 1492, 1493, 1, 0, 0, 0, 1493, 1494, 1, 0, 0, 0, 1494, 1495, 3, 776, 388, 0, 1495, 1500, 3, 90, 45, 0, 1496, 1497, 5, 62, 0, 0, 1497, 1498, 5, 422, 0, 0, 1498, 1501, 3, 80, 40, 0, 1499, 1501, 5, 53, 0, 0, 1500, 1496, 1, 0, 0, 0, 1500, 1499, 1, 0, 0, 0, 1501, 1585, 1, 0, 0, 0, 1502, 1503, 5, 138, 0, 0, 1503, 1505, 5, 92, 0, 0, 1504, 1506, 3, 424, 212, 0, 1505, 1504, 1, 0, 0, 0, 1505, 1506, 1, 0, 0, 0, 1506, 1507, 1, 0, 0, 0, 1507, 1508, 3, 776, 388, 0, 1508, 1509, 5, 436, 0, 0, 1509, 1510, 5, 285, 0, 0, 1510, 1512, 3, 782, 391, 0, 1511, 1513, 7, 11, 0, 0, 1512, 1511, 1, 0, 0, 0, 1512, 1513, 1, 0, 0, 0, 1513, 1585, 1, 0, 0, 0, 1514, 1515, 5, 138, 0, 0, 1515, 1517, 5, 226, 0, 0, 1516, 1518, 3, 424, 212, 0, 1517, 1516, 1, 0, 0, 0, 1517, 1518, 1, 0, 0, 0, 1518, 1519, 1, 0, 0, 0, 1519, 1522, 3, 782, 391, 0, 1520, 1523, 3, 78, 39, 0, 1521, 1523, 3, 90, 45, 0, 1522, 1520, 1, 0, 0, 0, 1522, 1521, 1, 0, 0, 0, 1523, 1585, 1, 0, 0, 0, 1524, 1525, 5, 138, 0, 0, 1525, 1526, 5, 226, 0, 0, 1526, 1527, 5, 30, 0, 0, 1527, 1528, 5, 68, 0, 0, 1528, 1532, 3, 178, 89, 0, 1529, 1530, 5, 281, 0, 0, 1530, 1531, 5, 147, 0, 0, 1531, 1533, 3, 818, 409, 0, 1532, 1529, 1, 0, 0, 0, 1532, 1533, 1, 0, 0, 0, 1533, 1534, 1, 0, 0, 0, 1534, 1535, 5, 333, 0, 0, 1535, 1537, 3, 178, 89, 0, 1536, 1538, 5, 272, 0, 0, 1537, 1536, 1, 0, 0, 0, 1537, 1538, 1, 0, 0, 0, 1538, 1585, 1, 0, 0, 0, 1539, 1540, 5, 138, 0, 0, 1540, 1542, 5, 328, 0, 0, 1541, 1543, 3, 424, 212, 0, 1542, 1541, 1, 0, 0, 0, 1542, 1543, 1, 0, 0, 0, 1543, 1544, 1, 0, 0, 0, 1544, 1545, 3, 782, 391, 0, 1545, 1546, 3, 78, 39, 0, 1546, 1585, 1, 0, 0, 0, 1547, 1549, 5, 138, 0, 0, 1548, 1550, 5, 259, 0, 0, 1549, 1548, 1, 0, 0, 0, 1549, 1550, 1, 0, 0, 0, 1550, 1551, 1, 0, 0, 0, 1551, 1553, 5, 376, 0, 0, 1552, 1554, 3, 424, 212, 0, 1553, 1552, 1, 0, 0, 0, 1553, 1554, 1, 0, 0, 0, 1554, 1555, 1, 0, 0, 0, 1555, 1556, 3, 780, 390, 0, 1556, 1557, 3, 78, 39, 0, 1557, 1585, 1, 0, 0, 0, 1558, 1559, 5, 138, 0, 0, 1559, 1560, 5, 259, 0, 0, 1560, 1561, 5, 376, 0, 0, 1561, 1562, 5, 30, 0, 0, 1562, 1563, 5, 68, 0, 0, 1563, 1567, 3, 178, 89, 0, 1564, 1565, 5, 281, 0, 0, 1565, 1566, 5, 147, 0, 0, 1566, 1568, 3, 818, 409, 0, 1567, 1564, 1, 0, 0, 0, 1567, 1568, 1, 0, 0, 0, 1568, 1569, 1, 0, 0, 0, 1569, 1570, 5, 333, 0, 0, 1570, 1571, 5, 351, 0, 0, 1571, 1573, 3, 770, 385, 0, 1572, 1574, 5, 272, 0, 0, 1573, 1572, 1, 0, 0, 0, 1573, 1574, 1, 0, 0, 0, 1574, 1585, 1, 0, 0, 0, 1575, 1576, 5, 138, 0, 0, 1576, 1577, 5, 63, 0, 0, 1577, 1579, 5, 92, 0, 0, 1578, 1580, 3, 424, 212, 0, 1579, 1578, 1, 0, 0, 0, 1579, 1580, 1, 0, 0, 0, 1580, 1581, 1, 0, 0, 0, 1581, 1582, 3, 626, 313, 0, 1582, 1583, 3, 78, 39, 0, 1583, 1585, 1, 0, 0, 0, 1584, 1463, 1, 0, 0, 0, 1584, 1473, 1, 0, 0, 0, 1584, 1489, 1, 0, 0, 0, 1584, 1502, 1, 0, 0, 0, 1584, 1514, 1, 0, 0, 0, 1584, 1524, 1, 0, 0, 0, 1584, 1539, 1, 0, 0, 0, 1584, 1547, 1, 0, 0, 0, 1584, 1558, 1, 0, 0, 0, 1584, 1575, 1, 0, 0, 0, 1585, 77, 1, 0, 0, 0, 1586, 1591, 3, 92, 46, 0, 1587, 1588, 5, 6, 0, 0, 1588, 1590, 3, 92, 46, 0, 1589, 1587, 1, 0, 0, 0, 1590, 1593, 1, 0, 0, 0, 1591, 1589, 1, 0, 0, 0, 1591, 1592, 1, 0, 0, 0, 1592, 79, 1, 0, 0, 0, 1593, 1591, 1, 0, 0, 0, 1594, 1595, 5, 68, 0, 0, 1595, 1604, 3, 536, 268, 0, 1596, 1597, 5, 64, 0, 0, 1597, 1598, 3, 82, 41, 0, 1598, 1599, 5, 94, 0, 0, 1599, 1600, 3, 82, 41, 0, 1600, 1604, 1, 0, 0, 0, 1601, 1602, 5, 105, 0, 0, 1602, 1604, 3, 86, 43, 0, 1603, 1594, 1, 0, 0, 0, 1603, 1596, 1, 0, 0, 0, 1603, 1601, 1, 0, 0, 0, 1604, 81, 1, 0, 0, 0, 1605, 1606, 5, 2, 0, 0, 1606, 1611, 3, 84, 42, 0, 1607, 1608, 5, 6, 0, 0, 1608, 1610, 3, 84, 42, 0, 1609, 1607, 1, 0, 0, 0, 1610, 1613, 1, 0, 0, 0, 1611, 1609, 1, 0, 0, 0, 1611, 1612, 1, 0, 0, 0, 1612, 1614, 1, 0, 0, 0, 1613, 1611, 1, 0, 0, 0, 1614, 1615, 5, 3, 0, 0, 1615, 83, 1, 0, 0, 0, 1616, 1620, 3, 536, 268, 0, 1617, 1620, 5, 262, 0, 0, 1618, 1620, 5, 260, 0, 0, 1619, 1616, 1, 0, 0, 0, 1619, 1617, 1, 0, 0, 0, 1619, 1618, 1, 0, 0, 0, 1620, 85, 1, 0, 0, 0, 1621, 1622, 5, 2, 0, 0, 1622, 1623, 5, 533, 0, 0, 1623, 1624, 3, 204, 102, 0, 1624, 1625, 5, 6, 0, 0, 1625, 1626, 5, 534, 0, 0, 1626, 1627, 3, 204, 102, 0, 1627, 1628, 5, 3, 0, 0, 1628, 87, 1, 0, 0, 0, 1629, 1630, 3, 90, 45, 0, 1630, 1631, 3, 106, 53, 0, 1631, 1636, 1, 0, 0, 0, 1632, 1633, 5, 436, 0, 0, 1633, 1634, 5, 285, 0, 0, 1634, 1636, 3, 782, 391, 0, 1635, 1629, 1, 0, 0, 0, 1635, 1632, 1, 0, 0, 0, 1636, 89, 1, 0, 0, 0, 1637, 1638, 5, 435, 0, 0, 1638, 1639, 5, 285, 0, 0, 1639, 1640, 3, 782, 391, 0, 1640, 91, 1, 0, 0, 0, 1641, 1644, 5, 133, 0, 0, 1642, 1643, 5, 45, 0, 0, 1643, 1645, 3, 820, 410, 0, 1644, 1642, 1, 0, 0, 0, 1644, 1645, 1, 0, 0, 0, 1645, 1646, 1, 0, 0, 0, 1646, 1875, 3, 144, 72, 0, 1647, 1648, 5, 138, 0, 0, 1648, 1649, 5, 45, 0, 0, 1649, 1653, 3, 820, 410, 0, 1650, 1652, 3, 274, 137, 0, 1651, 1650, 1, 0, 0, 0, 1652, 1655, 1, 0, 0, 0, 1653, 1651, 1, 0, 0, 0, 1653, 1654, 1, 0, 0, 0, 1654, 1875, 1, 0, 0, 0, 1655, 1653, 1, 0, 0, 0, 1656, 1657, 5, 372, 0, 0, 1657, 1658, 5, 45, 0, 0, 1658, 1875, 3, 820, 410, 0, 1659, 1660, 5, 191, 0, 0, 1660, 1662, 5, 45, 0, 0, 1661, 1663, 3, 424, 212, 0, 1662, 1661, 1, 0, 0, 0, 1662, 1663, 1, 0, 0, 0, 1663, 1664, 1, 0, 0, 0, 1664, 1666, 3, 820, 410, 0, 1665, 1667, 3, 96, 48, 0, 1666, 1665, 1, 0, 0, 0, 1666, 1667, 1, 0, 0, 0, 1667, 1875, 1, 0, 0, 0, 1668, 1669, 5, 333, 0, 0, 1669, 1670, 5, 379, 0, 0, 1670, 1875, 7, 12, 0, 0, 1671, 1672, 5, 158, 0, 0, 1672, 1673, 5, 80, 0, 0, 1673, 1875, 3, 820, 410, 0, 1674, 1675, 5, 333, 0, 0, 1675, 1875, 7, 13, 0, 0, 1676, 1678, 5, 193, 0, 0, 1677, 1679, 7, 14, 0, 0, 1678, 1677, 1, 0, 0, 0, 1678, 1679, 1, 0, 0, 0, 1679, 1680, 1, 0, 0, 0, 1680, 1875, 5, 357, 0, 0, 1681, 1682, 5, 186, 0, 0, 1682, 1686, 5, 357, 0, 0, 1683, 1687, 5, 30, 0, 0, 1684, 1687, 5, 99, 0, 0, 1685, 1687, 3, 820, 410, 0, 1686, 1683, 1, 0, 0, 0, 1686, 1684, 1, 0, 0, 0, 1686, 1685, 1, 0, 0, 0, 1687, 1875, 1, 0, 0, 0, 1688, 1689, 5, 193, 0, 0, 1689, 1690, 7, 14, 0, 0, 1690, 1691, 5, 321, 0, 0, 1691, 1875, 3, 820, 410, 0, 1692, 1693, 5, 186, 0, 0, 1693, 1694, 5, 321, 0, 0, 1694, 1875, 3, 820, 410, 0, 1695, 1697, 5, 269, 0, 0, 1696, 1695, 1, 0, 0, 0, 1696, 1697, 1, 0, 0, 0, 1697, 1698, 1, 0, 0, 0, 1698, 1699, 5, 228, 0, 0, 1699, 1875, 3, 782, 391, 0, 1700, 1701, 5, 275, 0, 0, 1701, 1875, 3, 318, 159, 0, 1702, 1703, 5, 77, 0, 0, 1703, 1875, 5, 275, 0, 0, 1704, 1705, 5, 282, 0, 0, 1705, 1706, 5, 94, 0, 0, 1706, 1875, 3, 816, 408, 0, 1707, 1708, 5, 333, 0, 0, 1708, 1709, 5, 351, 0, 0, 1709, 1875, 3, 770, 385, 0, 1710, 1711, 5, 312, 0, 0, 1711, 1716, 5, 219, 0, 0, 1712, 1717, 5, 270, 0, 0, 1713, 1717, 5, 113, 0, 0, 1714, 1717, 5, 53, 0, 0, 1715, 1717, 3, 182, 91, 0, 1716, 1712, 1, 0, 0, 0, 1716, 1713, 1, 0, 0, 0, 1716, 1714, 1, 0, 0, 0, 1716, 1715, 1, 0, 0, 0, 1717, 1875, 1, 0, 0, 0, 1718, 1725, 5, 193, 0, 0, 1719, 1725, 5, 186, 0, 0, 1720, 1722, 5, 269, 0, 0, 1721, 1720, 1, 0, 0, 0, 1721, 1722, 1, 0, 0, 0, 1722, 1723, 1, 0, 0, 0, 1723, 1725, 5, 209, 0, 0, 1724, 1718, 1, 0, 0, 0, 1724, 1719, 1, 0, 0, 0, 1724, 1721, 1, 0, 0, 0, 1725, 1726, 1, 0, 0, 0, 1726, 1727, 5, 414, 0, 0, 1727, 1728, 5, 251, 0, 0, 1728, 1875, 5, 327, 0, 0, 1729, 1731, 5, 191, 0, 0, 1730, 1732, 5, 44, 0, 0, 1731, 1730, 1, 0, 0, 0, 1731, 1732, 1, 0, 0, 0, 1732, 1734, 1, 0, 0, 0, 1733, 1735, 3, 424, 212, 0, 1734, 1733, 1, 0, 0, 0, 1734, 1735, 1, 0, 0, 0, 1735, 1736, 1, 0, 0, 0, 1736, 1738, 3, 802, 401, 0, 1737, 1739, 3, 96, 48, 0, 1738, 1737, 1, 0, 0, 0, 1738, 1739, 1, 0, 0, 0, 1739, 1875, 1, 0, 0, 0, 1740, 1742, 5, 133, 0, 0, 1741, 1743, 5, 44, 0, 0, 1742, 1741, 1, 0, 0, 0, 1742, 1743, 1, 0, 0, 0, 1743, 1745, 1, 0, 0, 0, 1744, 1746, 3, 296, 148, 0, 1745, 1744, 1, 0, 0, 0, 1745, 1746, 1, 0, 0, 0, 1746, 1747, 1, 0, 0, 0, 1747, 1875, 3, 134, 67, 0, 1748, 1750, 5, 138, 0, 0, 1749, 1751, 5, 44, 0, 0, 1750, 1749, 1, 0, 0, 0, 1750, 1751, 1, 0, 0, 0, 1751, 1752, 1, 0, 0, 0, 1752, 1755, 3, 802, 401, 0, 1753, 1756, 3, 94, 47, 0, 1754, 1756, 3, 224, 112, 0, 1755, 1753, 1, 0, 0, 0, 1755, 1754, 1, 0, 0, 0, 1756, 1875, 1, 0, 0, 0, 1757, 1759, 5, 138, 0, 0, 1758, 1760, 5, 44, 0, 0, 1759, 1758, 1, 0, 0, 0, 1759, 1760, 1, 0, 0, 0, 1760, 1761, 1, 0, 0, 0, 1761, 1762, 3, 802, 401, 0, 1762, 1763, 7, 15, 0, 0, 1763, 1764, 5, 77, 0, 0, 1764, 1765, 5, 78, 0, 0, 1765, 1875, 1, 0, 0, 0, 1766, 1768, 5, 138, 0, 0, 1767, 1769, 5, 44, 0, 0, 1768, 1767, 1, 0, 0, 0, 1768, 1769, 1, 0, 0, 0, 1769, 1770, 1, 0, 0, 0, 1770, 1771, 3, 802, 401, 0, 1771, 1772, 5, 191, 0, 0, 1772, 1774, 5, 437, 0, 0, 1773, 1775, 3, 424, 212, 0, 1774, 1773, 1, 0, 0, 0, 1774, 1775, 1, 0, 0, 0, 1775, 1875, 1, 0, 0, 0, 1776, 1778, 5, 138, 0, 0, 1777, 1779, 5, 44, 0, 0, 1778, 1777, 1, 0, 0, 0, 1778, 1779, 1, 0, 0, 0, 1779, 1780, 1, 0, 0, 0, 1780, 1781, 3, 802, 401, 0, 1781, 1782, 5, 333, 0, 0, 1782, 1783, 5, 342, 0, 0, 1783, 1784, 3, 814, 407, 0, 1784, 1875, 1, 0, 0, 0, 1785, 1787, 5, 138, 0, 0, 1786, 1788, 5, 44, 0, 0, 1787, 1786, 1, 0, 0, 0, 1787, 1788, 1, 0, 0, 0, 1788, 1789, 1, 0, 0, 0, 1789, 1791, 3, 802, 401, 0, 1790, 1785, 1, 0, 0, 0, 1790, 1791, 1, 0, 0, 0, 1791, 1792, 1, 0, 0, 0, 1792, 1793, 7, 16, 0, 0, 1793, 1875, 3, 100, 50, 0, 1794, 1796, 5, 138, 0, 0, 1795, 1797, 5, 44, 0, 0, 1796, 1795, 1, 0, 0, 0, 1796, 1797, 1, 0, 0, 0, 1797, 1798, 1, 0, 0, 0, 1798, 1799, 3, 802, 401, 0, 1799, 1800, 5, 333, 0, 0, 1800, 1801, 5, 345, 0, 0, 1801, 1802, 3, 820, 410, 0, 1802, 1875, 1, 0, 0, 0, 1803, 1805, 5, 138, 0, 0, 1804, 1806, 5, 44, 0, 0, 1805, 1804, 1, 0, 0, 0, 1805, 1806, 1, 0, 0, 0, 1806, 1807, 1, 0, 0, 0, 1807, 1808, 3, 802, 401, 0, 1808, 1809, 5, 133, 0, 0, 1809, 1810, 5, 438, 0, 0, 1810, 1811, 3, 140, 70, 0, 1811, 1812, 5, 36, 0, 0, 1812, 1821, 5, 219, 0, 0, 1813, 1815, 5, 2, 0, 0, 1814, 1816, 3, 202, 101, 0, 1815, 1814, 1, 0, 0, 0, 1816, 1817, 1, 0, 0, 0, 1817, 1815, 1, 0, 0, 0, 1817, 1818, 1, 0, 0, 0, 1818, 1819, 1, 0, 0, 0, 1819, 1820, 5, 3, 0, 0, 1820, 1822, 1, 0, 0, 0, 1821, 1813, 1, 0, 0, 0, 1821, 1822, 1, 0, 0, 0, 1822, 1875, 1, 0, 0, 0, 1823, 1825, 5, 138, 0, 0, 1824, 1826, 5, 44, 0, 0, 1825, 1824, 1, 0, 0, 0, 1825, 1826, 1, 0, 0, 0, 1826, 1827, 1, 0, 0, 0, 1827, 1841, 3, 802, 401, 0, 1828, 1833, 5, 314, 0, 0, 1829, 1831, 5, 105, 0, 0, 1830, 1829, 1, 0, 0, 0, 1830, 1831, 1, 0, 0, 0, 1831, 1832, 1, 0, 0, 0, 1832, 1834, 3, 204, 102, 0, 1833, 1830, 1, 0, 0, 0, 1833, 1834, 1, 0, 0, 0, 1834, 1842, 1, 0, 0, 0, 1835, 1839, 5, 333, 0, 0, 1836, 1840, 3, 202, 101, 0, 1837, 1838, 5, 438, 0, 0, 1838, 1840, 3, 140, 70, 0, 1839, 1836, 1, 0, 0, 0, 1839, 1837, 1, 0, 0, 0, 1840, 1842, 1, 0, 0, 0, 1841, 1828, 1, 0, 0, 0, 1841, 1835, 1, 0, 0, 0, 1842, 1843, 1, 0, 0, 0, 1843, 1841, 1, 0, 0, 0, 1843, 1844, 1, 0, 0, 0, 1844, 1875, 1, 0, 0, 0, 1845, 1847, 5, 138, 0, 0, 1846, 1848, 5, 44, 0, 0, 1847, 1846, 1, 0, 0, 0, 1847, 1848, 1, 0, 0, 0, 1848, 1849, 1, 0, 0, 0, 1849, 1850, 3, 802, 401, 0, 1850, 1851, 5, 191, 0, 0, 1851, 1853, 5, 219, 0, 0, 1852, 1854, 3, 424, 212, 0, 1853, 1852, 1, 0, 0, 0, 1853, 1854, 1, 0, 0, 0, 1854, 1875, 1, 0, 0, 0, 1855, 1857, 5, 138, 0, 0, 1856, 1858, 5, 44, 0, 0, 1857, 1856, 1, 0, 0, 0, 1857, 1858, 1, 0, 0, 0, 1858, 1859, 1, 0, 0, 0, 1859, 1862, 3, 802, 401, 0, 1860, 1861, 5, 333, 0, 0, 1861, 1863, 5, 174, 0, 0, 1862, 1860, 1, 0, 0, 0, 1862, 1863, 1, 0, 0, 0, 1863, 1864, 1, 0, 0, 0, 1864, 1865, 5, 360, 0, 0, 1865, 1867, 3, 654, 327, 0, 1866, 1868, 3, 98, 49, 0, 1867, 1866, 1, 0, 0, 0, 1867, 1868, 1, 0, 0, 0, 1868, 1871, 1, 0, 0, 0, 1869, 1870, 5, 100, 0, 0, 1870, 1872, 3, 676, 338, 0, 1871, 1869, 1, 0, 0, 0, 1871, 1872, 1, 0, 0, 0, 1872, 1875, 1, 0, 0, 0, 1873, 1875, 3, 224, 112, 0, 1874, 1641, 1, 0, 0, 0, 1874, 1647, 1, 0, 0, 0, 1874, 1656, 1, 0, 0, 0, 1874, 1659, 1, 0, 0, 0, 1874, 1668, 1, 0, 0, 0, 1874, 1671, 1, 0, 0, 0, 1874, 1674, 1, 0, 0, 0, 1874, 1676, 1, 0, 0, 0, 1874, 1681, 1, 0, 0, 0, 1874, 1688, 1, 0, 0, 0, 1874, 1692, 1, 0, 0, 0, 1874, 1696, 1, 0, 0, 0, 1874, 1700, 1, 0, 0, 0, 1874, 1702, 1, 0, 0, 0, 1874, 1704, 1, 0, 0, 0, 1874, 1707, 1, 0, 0, 0, 1874, 1710, 1, 0, 0, 0, 1874, 1724, 1, 0, 0, 0, 1874, 1729, 1, 0, 0, 0, 1874, 1740, 1, 0, 0, 0, 1874, 1748, 1, 0, 0, 0, 1874, 1757, 1, 0, 0, 0, 1874, 1766, 1, 0, 0, 0, 1874, 1776, 1, 0, 0, 0, 1874, 1790, 1, 0, 0, 0, 1874, 1794, 1, 0, 0, 0, 1874, 1803, 1, 0, 0, 0, 1874, 1823, 1, 0, 0, 0, 1874, 1845, 1, 0, 0, 0, 1874, 1855, 1, 0, 0, 0, 1874, 1873, 1, 0, 0, 0, 1875, 93, 1, 0, 0, 0, 1876, 1877, 5, 333, 0, 0, 1877, 1878, 5, 53, 0, 0, 1878, 1882, 3, 676, 338, 0, 1879, 1880, 5, 191, 0, 0, 1880, 1882, 5, 53, 0, 0, 1881, 1876, 1, 0, 0, 0, 1881, 1879, 1, 0, 0, 0, 1882, 95, 1, 0, 0, 0, 1883, 1884, 7, 17, 0, 0, 1884, 97, 1, 0, 0, 0, 1885, 1886, 5, 43, 0, 0, 1886, 1887, 3, 318, 159, 0, 1887, 99, 1, 0, 0, 0, 1888, 1889, 5, 2, 0, 0, 1889, 1894, 3, 104, 52, 0, 1890, 1891, 5, 6, 0, 0, 1891, 1893, 3, 104, 52, 0, 1892, 1890, 1, 0, 0, 0, 1893, 1896, 1, 0, 0, 0, 1894, 1892, 1, 0, 0, 0, 1894, 1895, 1, 0, 0, 0, 1895, 1897, 1, 0, 0, 0, 1896, 1894, 1, 0, 0, 0, 1897, 1898, 5, 3, 0, 0, 1898, 101, 1, 0, 0, 0, 1899, 1900, 5, 105, 0, 0, 1900, 1901, 3, 100, 50, 0, 1901, 103, 1, 0, 0, 0, 1902, 1907, 3, 826, 413, 0, 1903, 1904, 5, 10, 0, 0, 1904, 1908, 3, 290, 145, 0, 1905, 1906, 5, 11, 0, 0, 1906, 1908, 3, 288, 144, 0, 1907, 1903, 1, 0, 0, 0, 1907, 1905, 1, 0, 0, 0, 1907, 1908, 1, 0, 0, 0, 1908, 105, 1, 0, 0, 0, 1909, 1910, 5, 62, 0, 0, 1910, 1911, 5, 422, 0, 0, 1911, 1912, 5, 105, 0, 0, 1912, 1913, 5, 2, 0, 0, 1913, 1914, 5, 533, 0, 0, 1914, 1915, 5, 574, 0, 0, 1915, 1916, 5, 6, 0, 0, 1916, 1917, 5, 534, 0, 0, 1917, 1918, 5, 574, 0, 0, 1918, 1932, 5, 3, 0, 0, 1919, 1920, 5, 62, 0, 0, 1920, 1921, 5, 422, 0, 0, 1921, 1922, 5, 68, 0, 0, 1922, 1932, 3, 536, 268, 0, 1923, 1924, 5, 62, 0, 0, 1924, 1925, 5, 422, 0, 0, 1925, 1926, 5, 64, 0, 0, 1926, 1927, 3, 536, 268, 0, 1927, 1928, 5, 94, 0, 0, 1928, 1929, 3, 536, 268, 0, 1929, 1932, 1, 0, 0, 0, 1930, 1932, 5, 53, 0, 0, 1931, 1909, 1, 0, 0, 0, 1931, 1919, 1, 0, 0, 0, 1931, 1923, 1, 0, 0, 0, 1931, 1930, 1, 0, 0, 0, 1932, 107, 1, 0, 0, 0, 1933, 1934, 5, 138, 0, 0, 1934, 1935, 5, 360, 0, 0, 1935, 1936, 3, 318, 159, 0, 1936, 1941, 3, 110, 55, 0, 1937, 1938, 5, 6, 0, 0, 1938, 1940, 3, 110, 55, 0, 1939, 1937, 1, 0, 0, 0, 1940, 1943, 1, 0, 0, 0, 1941, 1939, 1, 0, 0, 0, 1941, 1942, 1, 0, 0, 0, 1942, 109, 1, 0, 0, 0, 1943, 1941, 1, 0, 0, 0, 1944, 1945, 5, 133, 0, 0, 1945, 1946, 5, 143, 0, 0, 1946, 1948, 3, 646, 323, 0, 1947, 1949, 3, 96, 48, 0, 1948, 1947, 1, 0, 0, 0, 1948, 1949, 1, 0, 0, 0, 1949, 1975, 1, 0, 0, 0, 1950, 1951, 5, 191, 0, 0, 1951, 1953, 5, 143, 0, 0, 1952, 1954, 3, 424, 212, 0, 1953, 1952, 1, 0, 0, 0, 1953, 1954, 1, 0, 0, 0, 1954, 1955, 1, 0, 0, 0, 1955, 1957, 3, 820, 410, 0, 1956, 1958, 3, 96, 48, 0, 1957, 1956, 1, 0, 0, 0, 1957, 1958, 1, 0, 0, 0, 1958, 1975, 1, 0, 0, 0, 1959, 1960, 5, 138, 0, 0, 1960, 1961, 5, 143, 0, 0, 1961, 1964, 3, 820, 410, 0, 1962, 1963, 5, 333, 0, 0, 1963, 1965, 5, 174, 0, 0, 1964, 1962, 1, 0, 0, 0, 1964, 1965, 1, 0, 0, 0, 1965, 1966, 1, 0, 0, 0, 1966, 1967, 5, 360, 0, 0, 1967, 1969, 3, 654, 327, 0, 1968, 1970, 3, 98, 49, 0, 1969, 1968, 1, 0, 0, 0, 1969, 1970, 1, 0, 0, 0, 1970, 1972, 1, 0, 0, 0, 1971, 1973, 3, 96, 48, 0, 1972, 1971, 1, 0, 0, 0, 1972, 1973, 1, 0, 0, 0, 1973, 1975, 1, 0, 0, 0, 1974, 1944, 1, 0, 0, 0, 1974, 1950, 1, 0, 0, 0, 1974, 1959, 1, 0, 0, 0, 1975, 111, 1, 0, 0, 0, 1976, 1979, 5, 157, 0, 0, 1977, 1980, 3, 820, 410, 0, 1978, 1980, 5, 30, 0, 0, 1979, 1977, 1, 0, 0, 0, 1979, 1978, 1, 0, 0, 0, 1980, 113, 1, 0, 0, 0, 1981, 1983, 5, 169, 0, 0, 1982, 1984, 5, 107, 0, 0, 1983, 1982, 1, 0, 0, 0, 1983, 1984, 1, 0, 0, 0, 1984, 1985, 1, 0, 0, 0, 1985, 1987, 3, 776, 388, 0, 1986, 1988, 3, 146, 73, 0, 1987, 1986, 1, 0, 0, 0, 1987, 1988, 1, 0, 0, 0, 1988, 1989, 1, 0, 0, 0, 1989, 1991, 7, 18, 0, 0, 1990, 1992, 5, 297, 0, 0, 1991, 1990, 1, 0, 0, 0, 1991, 1992, 1, 0, 0, 0, 1992, 1996, 1, 0, 0, 0, 1993, 1997, 3, 810, 405, 0, 1994, 1997, 5, 343, 0, 0, 1995, 1997, 5, 344, 0, 0, 1996, 1993, 1, 0, 0, 0, 1996, 1994, 1, 0, 0, 0, 1996, 1995, 1, 0, 0, 0, 1997, 2003, 1, 0, 0, 0, 1998, 2000, 5, 100, 0, 0, 1999, 1998, 1, 0, 0, 0, 1999, 2000, 1, 0, 0, 0, 2000, 2001, 1, 0, 0, 0, 2001, 2002, 5, 184, 0, 0, 2002, 2004, 3, 810, 405, 0, 2003, 1999, 1, 0, 0, 0, 2003, 2004, 1, 0, 0, 0, 2004, 2006, 1, 0, 0, 0, 2005, 2007, 5, 105, 0, 0, 2006, 2005, 1, 0, 0, 0, 2006, 2007, 1, 0, 0, 0, 2007, 2008, 1, 0, 0, 0, 2008, 2010, 3, 118, 59, 0, 2009, 2011, 3, 640, 320, 0, 2010, 2009, 1, 0, 0, 0, 2010, 2011, 1, 0, 0, 0, 2011, 2031, 1, 0, 0, 0, 2012, 2013, 5, 169, 0, 0, 2013, 2014, 5, 2, 0, 0, 2014, 2015, 3, 532, 266, 0, 2015, 2016, 5, 3, 0, 0, 2016, 2018, 5, 94, 0, 0, 2017, 2019, 5, 297, 0, 0, 2018, 2017, 1, 0, 0, 0, 2018, 2019, 1, 0, 0, 0, 2019, 2023, 1, 0, 0, 0, 2020, 2024, 3, 810, 405, 0, 2021, 2024, 5, 343, 0, 0, 2022, 2024, 5, 344, 0, 0, 2023, 2020, 1, 0, 0, 0, 2023, 2021, 1, 0, 0, 0, 2023, 2022, 1, 0, 0, 0, 2024, 2026, 1, 0, 0, 0, 2025, 2027, 5, 105, 0, 0, 2026, 2025, 1, 0, 0, 0, 2026, 2027, 1, 0, 0, 0, 2027, 2028, 1, 0, 0, 0, 2028, 2029, 3, 118, 59, 0, 2029, 2031, 1, 0, 0, 0, 2030, 1981, 1, 0, 0, 0, 2030, 2012, 1, 0, 0, 0, 2031, 115, 1, 0, 0, 0, 2032, 2075, 5, 107, 0, 0, 2033, 2075, 5, 112, 0, 0, 2034, 2036, 7, 19, 0, 0, 2035, 2037, 5, 36, 0, 0, 2036, 2035, 1, 0, 0, 0, 2036, 2037, 1, 0, 0, 0, 2037, 2038, 1, 0, 0, 0, 2038, 2075, 3, 810, 405, 0, 2039, 2075, 5, 171, 0, 0, 2040, 2075, 5, 216, 0, 0, 2041, 2042, 5, 209, 0, 0, 2042, 2045, 5, 298, 0, 0, 2043, 2046, 3, 150, 75, 0, 2044, 2046, 5, 9, 0, 0, 2045, 2043, 1, 0, 0, 0, 2045, 2044, 1, 0, 0, 0, 2046, 2075, 1, 0, 0, 0, 2047, 2049, 5, 209, 0, 0, 2048, 2050, 5, 77, 0, 0, 2049, 2048, 1, 0, 0, 0, 2049, 2050, 1, 0, 0, 0, 2050, 2051, 1, 0, 0, 0, 2051, 2052, 5, 78, 0, 0, 2052, 2075, 3, 150, 75, 0, 2053, 2054, 5, 194, 0, 0, 2054, 2075, 3, 810, 405, 0, 2055, 2072, 7, 20, 0, 0, 2056, 2059, 5, 2, 0, 0, 2057, 2060, 3, 150, 75, 0, 2058, 2060, 5, 9, 0, 0, 2059, 2057, 1, 0, 0, 0, 2059, 2058, 1, 0, 0, 0, 2060, 2068, 1, 0, 0, 0, 2061, 2064, 5, 6, 0, 0, 2062, 2065, 3, 150, 75, 0, 2063, 2065, 5, 9, 0, 0, 2064, 2062, 1, 0, 0, 0, 2064, 2063, 1, 0, 0, 0, 2065, 2067, 1, 0, 0, 0, 2066, 2061, 1, 0, 0, 0, 2067, 2070, 1, 0, 0, 0, 2068, 2066, 1, 0, 0, 0, 2068, 2069, 1, 0, 0, 0, 2069, 2071, 1, 0, 0, 0, 2070, 2068, 1, 0, 0, 0, 2071, 2073, 5, 3, 0, 0, 2072, 2056, 1, 0, 0, 0, 2072, 2073, 1, 0, 0, 0, 2073, 2075, 1, 0, 0, 0, 2074, 2032, 1, 0, 0, 0, 2074, 2033, 1, 0, 0, 0, 2074, 2034, 1, 0, 0, 0, 2074, 2039, 1, 0, 0, 0, 2074, 2040, 1, 0, 0, 0, 2074, 2041, 1, 0, 0, 0, 2074, 2047, 1, 0, 0, 0, 2074, 2053, 1, 0, 0, 0, 2074, 2055, 1, 0, 0, 0, 2075, 2078, 1, 0, 0, 0, 2076, 2074, 1, 0, 0, 0, 2076, 2077, 1, 0, 0, 0, 2077, 117, 1, 0, 0, 0, 2078, 2076, 1, 0, 0, 0, 2079, 2098, 3, 116, 58, 0, 2080, 2083, 5, 2, 0, 0, 2081, 2084, 3, 116, 58, 0, 2082, 2084, 3, 120, 60, 0, 2083, 2081, 1, 0, 0, 0, 2083, 2082, 1, 0, 0, 0, 2084, 2092, 1, 0, 0, 0, 2085, 2088, 5, 6, 0, 0, 2086, 2089, 3, 116, 58, 0, 2087, 2089, 3, 120, 60, 0, 2088, 2086, 1, 0, 0, 0, 2088, 2087, 1, 0, 0, 0, 2089, 2091, 1, 0, 0, 0, 2090, 2085, 1, 0, 0, 0, 2091, 2094, 1, 0, 0, 0, 2092, 2090, 1, 0, 0, 0, 2092, 2093, 1, 0, 0, 0, 2093, 2095, 1, 0, 0, 0, 2094, 2092, 1, 0, 0, 0, 2095, 2096, 5, 3, 0, 0, 2096, 2098, 1, 0, 0, 0, 2097, 2079, 1, 0, 0, 0, 2097, 2080, 1, 0, 0, 0, 2098, 119, 1, 0, 0, 0, 2099, 2114, 3, 826, 413, 0, 2100, 2115, 3, 54, 27, 0, 2101, 2115, 3, 204, 102, 0, 2102, 2115, 5, 9, 0, 0, 2103, 2104, 5, 2, 0, 0, 2104, 2109, 3, 52, 26, 0, 2105, 2106, 5, 6, 0, 0, 2106, 2108, 3, 52, 26, 0, 2107, 2105, 1, 0, 0, 0, 2108, 2111, 1, 0, 0, 0, 2109, 2107, 1, 0, 0, 0, 2109, 2110, 1, 0, 0, 0, 2110, 2112, 1, 0, 0, 0, 2111, 2109, 1, 0, 0, 0, 2112, 2113, 5, 3, 0, 0, 2113, 2115, 1, 0, 0, 0, 2114, 2100, 1, 0, 0, 0, 2114, 2101, 1, 0, 0, 0, 2114, 2102, 1, 0, 0, 0, 2114, 2103, 1, 0, 0, 0, 2114, 2115, 1, 0, 0, 0, 2115, 121, 1, 0, 0, 0, 2116, 2118, 5, 46, 0, 0, 2117, 2119, 3, 124, 62, 0, 2118, 2117, 1, 0, 0, 0, 2118, 2119, 1, 0, 0, 0, 2119, 2120, 1, 0, 0, 0, 2120, 2122, 5, 92, 0, 0, 2121, 2123, 3, 296, 148, 0, 2122, 2121, 1, 0, 0, 0, 2122, 2123, 1, 0, 0, 0, 2123, 2124, 1, 0, 0, 0, 2124, 2190, 3, 774, 387, 0, 2125, 2127, 5, 2, 0, 0, 2126, 2128, 3, 128, 64, 0, 2127, 2126, 1, 0, 0, 0, 2127, 2128, 1, 0, 0, 0, 2128, 2129, 1, 0, 0, 0, 2129, 2131, 5, 3, 0, 0, 2130, 2132, 3, 166, 83, 0, 2131, 2130, 1, 0, 0, 0, 2131, 2132, 1, 0, 0, 0, 2132, 2134, 1, 0, 0, 0, 2133, 2135, 3, 168, 84, 0, 2134, 2133, 1, 0, 0, 0, 2134, 2135, 1, 0, 0, 0, 2135, 2137, 1, 0, 0, 0, 2136, 2138, 3, 172, 86, 0, 2137, 2136, 1, 0, 0, 0, 2137, 2138, 1, 0, 0, 0, 2138, 2140, 1, 0, 0, 0, 2139, 2141, 3, 174, 87, 0, 2140, 2139, 1, 0, 0, 0, 2140, 2141, 1, 0, 0, 0, 2141, 2143, 1, 0, 0, 0, 2142, 2144, 3, 176, 88, 0, 2143, 2142, 1, 0, 0, 0, 2143, 2144, 1, 0, 0, 0, 2144, 2146, 1, 0, 0, 0, 2145, 2147, 3, 178, 89, 0, 2146, 2145, 1, 0, 0, 0, 2146, 2147, 1, 0, 0, 0, 2147, 2191, 1, 0, 0, 0, 2148, 2149, 5, 275, 0, 0, 2149, 2151, 3, 318, 159, 0, 2150, 2152, 3, 126, 63, 0, 2151, 2150, 1, 0, 0, 0, 2151, 2152, 1, 0, 0, 0, 2152, 2154, 1, 0, 0, 0, 2153, 2155, 3, 168, 84, 0, 2154, 2153, 1, 0, 0, 0, 2154, 2155, 1, 0, 0, 0, 2155, 2157, 1, 0, 0, 0, 2156, 2158, 3, 172, 86, 0, 2157, 2156, 1, 0, 0, 0, 2157, 2158, 1, 0, 0, 0, 2158, 2160, 1, 0, 0, 0, 2159, 2161, 3, 174, 87, 0, 2160, 2159, 1, 0, 0, 0, 2160, 2161, 1, 0, 0, 0, 2161, 2163, 1, 0, 0, 0, 2162, 2164, 3, 176, 88, 0, 2163, 2162, 1, 0, 0, 0, 2163, 2164, 1, 0, 0, 0, 2164, 2166, 1, 0, 0, 0, 2165, 2167, 3, 178, 89, 0, 2166, 2165, 1, 0, 0, 0, 2166, 2167, 1, 0, 0, 0, 2167, 2191, 1, 0, 0, 0, 2168, 2169, 5, 285, 0, 0, 2169, 2170, 5, 275, 0, 0, 2170, 2172, 3, 782, 391, 0, 2171, 2173, 3, 126, 63, 0, 2172, 2171, 1, 0, 0, 0, 2172, 2173, 1, 0, 0, 0, 2173, 2174, 1, 0, 0, 0, 2174, 2176, 3, 106, 53, 0, 2175, 2177, 3, 168, 84, 0, 2176, 2175, 1, 0, 0, 0, 2176, 2177, 1, 0, 0, 0, 2177, 2179, 1, 0, 0, 0, 2178, 2180, 3, 172, 86, 0, 2179, 2178, 1, 0, 0, 0, 2179, 2180, 1, 0, 0, 0, 2180, 2182, 1, 0, 0, 0, 2181, 2183, 3, 174, 87, 0, 2182, 2181, 1, 0, 0, 0, 2182, 2183, 1, 0, 0, 0, 2183, 2185, 1, 0, 0, 0, 2184, 2186, 3, 176, 88, 0, 2185, 2184, 1, 0, 0, 0, 2185, 2186, 1, 0, 0, 0, 2186, 2188, 1, 0, 0, 0, 2187, 2189, 3, 178, 89, 0, 2188, 2187, 1, 0, 0, 0, 2188, 2189, 1, 0, 0, 0, 2189, 2191, 1, 0, 0, 0, 2190, 2125, 1, 0, 0, 0, 2190, 2148, 1, 0, 0, 0, 2190, 2168, 1, 0, 0, 0, 2191, 123, 1, 0, 0, 0, 2192, 2198, 5, 354, 0, 0, 2193, 2198, 5, 352, 0, 0, 2194, 2195, 7, 21, 0, 0, 2195, 2198, 7, 22, 0, 0, 2196, 2198, 5, 367, 0, 0, 2197, 2192, 1, 0, 0, 0, 2197, 2193, 1, 0, 0, 0, 2197, 2194, 1, 0, 0, 0, 2197, 2196, 1, 0, 0, 0, 2198, 125, 1, 0, 0, 0, 2199, 2200, 5, 2, 0, 0, 2200, 2205, 3, 132, 66, 0, 2201, 2202, 5, 6, 0, 0, 2202, 2204, 3, 132, 66, 0, 2203, 2201, 1, 0, 0, 0, 2204, 2207, 1, 0, 0, 0, 2205, 2203, 1, 0, 0, 0, 2205, 2206, 1, 0, 0, 0, 2206, 2208, 1, 0, 0, 0, 2207, 2205, 1, 0, 0, 0, 2208, 2209, 5, 3, 0, 0, 2209, 127, 1, 0, 0, 0, 2210, 2215, 3, 130, 65, 0, 2211, 2212, 5, 6, 0, 0, 2212, 2214, 3, 130, 65, 0, 2213, 2211, 1, 0, 0, 0, 2214, 2217, 1, 0, 0, 0, 2215, 2213, 1, 0, 0, 0, 2215, 2216, 1, 0, 0, 0, 2216, 129, 1, 0, 0, 0, 2217, 2215, 1, 0, 0, 0, 2218, 2219, 5, 45, 0, 0, 2219, 2221, 3, 820, 410, 0, 2220, 2218, 1, 0, 0, 0, 2220, 2221, 1, 0, 0, 0, 2221, 2222, 1, 0, 0, 0, 2222, 2234, 3, 144, 72, 0, 2223, 2234, 3, 134, 67, 0, 2224, 2225, 5, 120, 0, 0, 2225, 2230, 3, 782, 391, 0, 2226, 2227, 7, 23, 0, 0, 2227, 2229, 3, 142, 71, 0, 2228, 2226, 1, 0, 0, 0, 2229, 2232, 1, 0, 0, 0, 2230, 2228, 1, 0, 0, 0, 2230, 2231, 1, 0, 0, 0, 2231, 2234, 1, 0, 0, 0, 2232, 2230, 1, 0, 0, 0, 2233, 2220, 1, 0, 0, 0, 2233, 2223, 1, 0, 0, 0, 2233, 2224, 1, 0, 0, 0, 2234, 131, 1, 0, 0, 0, 2235, 2238, 3, 804, 402, 0, 2236, 2237, 5, 105, 0, 0, 2237, 2239, 5, 280, 0, 0, 2238, 2236, 1, 0, 0, 0, 2238, 2239, 1, 0, 0, 0, 2239, 2243, 1, 0, 0, 0, 2240, 2242, 3, 136, 68, 0, 2241, 2240, 1, 0, 0, 0, 2242, 2245, 1, 0, 0, 0, 2243, 2241, 1, 0, 0, 0, 2243, 2244, 1, 0, 0, 0, 2244, 2252, 1, 0, 0, 0, 2245, 2243, 1, 0, 0, 0, 2246, 2247, 5, 45, 0, 0, 2247, 2249, 3, 820, 410, 0, 2248, 2246, 1, 0, 0, 0, 2248, 2249, 1, 0, 0, 0, 2249, 2250, 1, 0, 0, 0, 2250, 2252, 3, 144, 72, 0, 2251, 2235, 1, 0, 0, 0, 2251, 2248, 1, 0, 0, 0, 2252, 133, 1, 0, 0, 0, 2253, 2254, 3, 804, 402, 0, 2254, 2256, 3, 654, 327, 0, 2255, 2257, 3, 222, 111, 0, 2256, 2255, 1, 0, 0, 0, 2256, 2257, 1, 0, 0, 0, 2257, 2267, 1, 0, 0, 0, 2258, 2265, 5, 345, 0, 0, 2259, 2266, 5, 544, 0, 0, 2260, 2266, 5, 205, 0, 0, 2261, 2266, 5, 545, 0, 0, 2262, 2266, 5, 546, 0, 0, 2263, 2266, 5, 53, 0, 0, 2264, 2266, 3, 820, 410, 0, 2265, 2259, 1, 0, 0, 0, 2265, 2260, 1, 0, 0, 0, 2265, 2261, 1, 0, 0, 0, 2265, 2262, 1, 0, 0, 0, 2265, 2263, 1, 0, 0, 0, 2265, 2264, 1, 0, 0, 0, 2266, 2268, 1, 0, 0, 0, 2267, 2258, 1, 0, 0, 0, 2267, 2268, 1, 0, 0, 0, 2268, 2271, 1, 0, 0, 0, 2269, 2270, 5, 543, 0, 0, 2270, 2272, 3, 820, 410, 0, 2271, 2269, 1, 0, 0, 0, 2271, 2272, 1, 0, 0, 0, 2272, 2274, 1, 0, 0, 0, 2273, 2275, 3, 98, 49, 0, 2274, 2273, 1, 0, 0, 0, 2274, 2275, 1, 0, 0, 0, 2275, 2278, 1, 0, 0, 0, 2276, 2277, 5, 105, 0, 0, 2277, 2279, 5, 280, 0, 0, 2278, 2276, 1, 0, 0, 0, 2278, 2279, 1, 0, 0, 0, 2279, 2283, 1, 0, 0, 0, 2280, 2282, 3, 136, 68, 0, 2281, 2280, 1, 0, 0, 0, 2282, 2285, 1, 0, 0, 0, 2283, 2281, 1, 0, 0, 0, 2283, 2284, 1, 0, 0, 0, 2284, 135, 1, 0, 0, 0, 2285, 2283, 1, 0, 0, 0, 2286, 2287, 5, 45, 0, 0, 2287, 2289, 3, 820, 410, 0, 2288, 2286, 1, 0, 0, 0, 2288, 2289, 1, 0, 0, 0, 2289, 2290, 1, 0, 0, 0, 2290, 2295, 3, 138, 69, 0, 2291, 2293, 5, 77, 0, 0, 2292, 2291, 1, 0, 0, 0, 2292, 2293, 1, 0, 0, 0, 2293, 2294, 1, 0, 0, 0, 2294, 2296, 5, 54, 0, 0, 2295, 2292, 1, 0, 0, 0, 2295, 2296, 1, 0, 0, 0, 2296, 2299, 1, 0, 0, 0, 2297, 2298, 5, 69, 0, 0, 2298, 2300, 7, 9, 0, 0, 2299, 2297, 1, 0, 0, 0, 2299, 2300, 1, 0, 0, 0, 2300, 137, 1, 0, 0, 0, 2301, 2303, 5, 77, 0, 0, 2302, 2301, 1, 0, 0, 0, 2302, 2303, 1, 0, 0, 0, 2303, 2304, 1, 0, 0, 0, 2304, 2382, 5, 78, 0, 0, 2305, 2307, 5, 98, 0, 0, 2306, 2308, 3, 402, 201, 0, 2307, 2306, 1, 0, 0, 0, 2307, 2308, 1, 0, 0, 0, 2308, 2310, 1, 0, 0, 0, 2309, 2311, 3, 180, 90, 0, 2310, 2309, 1, 0, 0, 0, 2310, 2311, 1, 0, 0, 0, 2311, 2382, 1, 0, 0, 0, 2312, 2318, 5, 98, 0, 0, 2313, 2315, 5, 273, 0, 0, 2314, 2316, 5, 77, 0, 0, 2315, 2314, 1, 0, 0, 0, 2315, 2316, 1, 0, 0, 0, 2316, 2317, 1, 0, 0, 0, 2317, 2319, 5, 56, 0, 0, 2318, 2313, 1, 0, 0, 0, 2318, 2319, 1, 0, 0, 0, 2319, 2322, 1, 0, 0, 0, 2320, 2321, 5, 441, 0, 0, 2321, 2323, 3, 362, 181, 0, 2322, 2320, 1, 0, 0, 0, 2322, 2323, 1, 0, 0, 0, 2323, 2325, 1, 0, 0, 0, 2324, 2326, 3, 574, 287, 0, 2325, 2324, 1, 0, 0, 0, 2325, 2326, 1, 0, 0, 0, 2326, 2328, 1, 0, 0, 0, 2327, 2329, 3, 180, 90, 0, 2328, 2327, 1, 0, 0, 0, 2328, 2329, 1, 0, 0, 0, 2329, 2382, 1, 0, 0, 0, 2330, 2331, 5, 85, 0, 0, 2331, 2333, 5, 245, 0, 0, 2332, 2334, 3, 402, 201, 0, 2333, 2332, 1, 0, 0, 0, 2333, 2334, 1, 0, 0, 0, 2334, 2336, 1, 0, 0, 0, 2335, 2337, 3, 180, 90, 0, 2336, 2335, 1, 0, 0, 0, 2336, 2337, 1, 0, 0, 0, 2337, 2382, 1, 0, 0, 0, 2338, 2339, 5, 42, 0, 0, 2339, 2340, 5, 2, 0, 0, 2340, 2341, 3, 676, 338, 0, 2341, 2344, 5, 3, 0, 0, 2342, 2343, 5, 269, 0, 0, 2343, 2345, 5, 228, 0, 0, 2344, 2342, 1, 0, 0, 0, 2344, 2345, 1, 0, 0, 0, 2345, 2382, 1, 0, 0, 0, 2346, 2347, 5, 53, 0, 0, 2347, 2382, 3, 684, 342, 0, 2348, 2349, 5, 438, 0, 0, 2349, 2350, 3, 140, 70, 0, 2350, 2367, 5, 36, 0, 0, 2351, 2360, 5, 219, 0, 0, 2352, 2354, 5, 2, 0, 0, 2353, 2355, 3, 202, 101, 0, 2354, 2353, 1, 0, 0, 0, 2355, 2356, 1, 0, 0, 0, 2356, 2354, 1, 0, 0, 0, 2356, 2357, 1, 0, 0, 0, 2357, 2358, 1, 0, 0, 0, 2358, 2359, 5, 3, 0, 0, 2359, 2361, 1, 0, 0, 0, 2360, 2352, 1, 0, 0, 0, 2360, 2361, 1, 0, 0, 0, 2361, 2368, 1, 0, 0, 0, 2362, 2363, 5, 2, 0, 0, 2363, 2364, 3, 676, 338, 0, 2364, 2365, 5, 3, 0, 0, 2365, 2366, 5, 440, 0, 0, 2366, 2368, 1, 0, 0, 0, 2367, 2351, 1, 0, 0, 0, 2367, 2362, 1, 0, 0, 0, 2368, 2382, 1, 0, 0, 0, 2369, 2370, 5, 86, 0, 0, 2370, 2372, 3, 782, 391, 0, 2371, 2373, 3, 146, 73, 0, 2372, 2371, 1, 0, 0, 0, 2372, 2373, 1, 0, 0, 0, 2373, 2375, 1, 0, 0, 0, 2374, 2376, 3, 154, 77, 0, 2375, 2374, 1, 0, 0, 0, 2375, 2376, 1, 0, 0, 0, 2376, 2378, 1, 0, 0, 0, 2377, 2379, 3, 158, 79, 0, 2378, 2377, 1, 0, 0, 0, 2378, 2379, 1, 0, 0, 0, 2379, 2382, 1, 0, 0, 0, 2380, 2382, 3, 98, 49, 0, 2381, 2302, 1, 0, 0, 0, 2381, 2305, 1, 0, 0, 0, 2381, 2312, 1, 0, 0, 0, 2381, 2330, 1, 0, 0, 0, 2381, 2338, 1, 0, 0, 0, 2381, 2346, 1, 0, 0, 0, 2381, 2348, 1, 0, 0, 0, 2381, 2369, 1, 0, 0, 0, 2381, 2380, 1, 0, 0, 0, 2382, 139, 1, 0, 0, 0, 2383, 2387, 5, 139, 0, 0, 2384, 2385, 5, 147, 0, 0, 2385, 2387, 5, 53, 0, 0, 2386, 2383, 1, 0, 0, 0, 2386, 2384, 1, 0, 0, 0, 2387, 141, 1, 0, 0, 0, 2388, 2389, 7, 24, 0, 0, 2389, 143, 1, 0, 0, 0, 2390, 2391, 5, 42, 0, 0, 2391, 2392, 5, 2, 0, 0, 2392, 2393, 3, 676, 338, 0, 2393, 2397, 5, 3, 0, 0, 2394, 2396, 3, 274, 137, 0, 2395, 2394, 1, 0, 0, 0, 2396, 2399, 1, 0, 0, 0, 2397, 2395, 1, 0, 0, 0, 2397, 2398, 1, 0, 0, 0, 2398, 2487, 1, 0, 0, 0, 2399, 2397, 1, 0, 0, 0, 2400, 2404, 5, 98, 0, 0, 2401, 2402, 5, 85, 0, 0, 2402, 2404, 5, 245, 0, 0, 2403, 2400, 1, 0, 0, 0, 2403, 2401, 1, 0, 0, 0, 2404, 2428, 1, 0, 0, 0, 2405, 2407, 3, 146, 73, 0, 2406, 2408, 3, 152, 76, 0, 2407, 2406, 1, 0, 0, 0, 2407, 2408, 1, 0, 0, 0, 2408, 2410, 1, 0, 0, 0, 2409, 2411, 3, 402, 201, 0, 2410, 2409, 1, 0, 0, 0, 2410, 2411, 1, 0, 0, 0, 2411, 2413, 1, 0, 0, 0, 2412, 2414, 3, 180, 90, 0, 2413, 2412, 1, 0, 0, 0, 2413, 2414, 1, 0, 0, 0, 2414, 2418, 1, 0, 0, 0, 2415, 2417, 3, 274, 137, 0, 2416, 2415, 1, 0, 0, 0, 2417, 2420, 1, 0, 0, 0, 2418, 2416, 1, 0, 0, 0, 2418, 2419, 1, 0, 0, 0, 2419, 2429, 1, 0, 0, 0, 2420, 2418, 1, 0, 0, 0, 2421, 2425, 3, 182, 91, 0, 2422, 2424, 3, 274, 137, 0, 2423, 2422, 1, 0, 0, 0, 2424, 2427, 1, 0, 0, 0, 2425, 2423, 1, 0, 0, 0, 2425, 2426, 1, 0, 0, 0, 2426, 2429, 1, 0, 0, 0, 2427, 2425, 1, 0, 0, 0, 2428, 2405, 1, 0, 0, 0, 2428, 2421, 1, 0, 0, 0, 2429, 2487, 1, 0, 0, 0, 2430, 2432, 5, 199, 0, 0, 2431, 2433, 3, 172, 86, 0, 2432, 2431, 1, 0, 0, 0, 2432, 2433, 1, 0, 0, 0, 2433, 2434, 1, 0, 0, 0, 2434, 2435, 5, 2, 0, 0, 2435, 2440, 3, 156, 78, 0, 2436, 2437, 5, 6, 0, 0, 2437, 2439, 3, 156, 78, 0, 2438, 2436, 1, 0, 0, 0, 2439, 2442, 1, 0, 0, 0, 2440, 2438, 1, 0, 0, 0, 2440, 2441, 1, 0, 0, 0, 2441, 2443, 1, 0, 0, 0, 2442, 2440, 1, 0, 0, 0, 2443, 2445, 5, 3, 0, 0, 2444, 2446, 3, 152, 76, 0, 2445, 2444, 1, 0, 0, 0, 2445, 2446, 1, 0, 0, 0, 2446, 2448, 1, 0, 0, 0, 2447, 2449, 3, 402, 201, 0, 2448, 2447, 1, 0, 0, 0, 2448, 2449, 1, 0, 0, 0, 2449, 2451, 1, 0, 0, 0, 2450, 2452, 3, 180, 90, 0, 2451, 2450, 1, 0, 0, 0, 2451, 2452, 1, 0, 0, 0, 2452, 2458, 1, 0, 0, 0, 2453, 2454, 5, 103, 0, 0, 2454, 2455, 5, 2, 0, 0, 2455, 2456, 3, 676, 338, 0, 2456, 2457, 5, 3, 0, 0, 2457, 2459, 1, 0, 0, 0, 2458, 2453, 1, 0, 0, 0, 2458, 2459, 1, 0, 0, 0, 2459, 2463, 1, 0, 0, 0, 2460, 2462, 3, 274, 137, 0, 2461, 2460, 1, 0, 0, 0, 2462, 2465, 1, 0, 0, 0, 2463, 2461, 1, 0, 0, 0, 2463, 2464, 1, 0, 0, 0, 2464, 2487, 1, 0, 0, 0, 2465, 2463, 1, 0, 0, 0, 2466, 2467, 5, 63, 0, 0, 2467, 2468, 5, 245, 0, 0, 2468, 2469, 3, 146, 73, 0, 2469, 2470, 5, 86, 0, 0, 2470, 2472, 3, 782, 391, 0, 2471, 2473, 3, 146, 73, 0, 2472, 2471, 1, 0, 0, 0, 2472, 2473, 1, 0, 0, 0, 2473, 2475, 1, 0, 0, 0, 2474, 2476, 3, 154, 77, 0, 2475, 2474, 1, 0, 0, 0, 2475, 2476, 1, 0, 0, 0, 2476, 2478, 1, 0, 0, 0, 2477, 2479, 3, 158, 79, 0, 2478, 2477, 1, 0, 0, 0, 2478, 2479, 1, 0, 0, 0, 2479, 2483, 1, 0, 0, 0, 2480, 2482, 3, 274, 137, 0, 2481, 2480, 1, 0, 0, 0, 2482, 2485, 1, 0, 0, 0, 2483, 2481, 1, 0, 0, 0, 2483, 2484, 1, 0, 0, 0, 2484, 2487, 1, 0, 0, 0, 2485, 2483, 1, 0, 0, 0, 2486, 2390, 1, 0, 0, 0, 2486, 2403, 1, 0, 0, 0, 2486, 2430, 1, 0, 0, 0, 2486, 2466, 1, 0, 0, 0, 2487, 145, 1, 0, 0, 0, 2488, 2489, 5, 2, 0, 0, 2489, 2490, 3, 150, 75, 0, 2490, 2491, 5, 3, 0, 0, 2491, 147, 1, 0, 0, 0, 2492, 2493, 5, 2, 0, 0, 2493, 2498, 3, 804, 402, 0, 2494, 2495, 5, 6, 0, 0, 2495, 2497, 3, 804, 402, 0, 2496, 2494, 1, 0, 0, 0, 2497, 2500, 1, 0, 0, 0, 2498, 2496, 1, 0, 0, 0, 2498, 2499, 1, 0, 0, 0, 2499, 2501, 1, 0, 0, 0, 2500, 2498, 1, 0, 0, 0, 2501, 2502, 5, 3, 0, 0, 2502, 149, 1, 0, 0, 0, 2503, 2508, 3, 802, 401, 0, 2504, 2505, 5, 6, 0, 0, 2505, 2507, 3, 802, 401, 0, 2506, 2504, 1, 0, 0, 0, 2507, 2510, 1, 0, 0, 0, 2508, 2506, 1, 0, 0, 0, 2508, 2509, 1, 0, 0, 0, 2509, 151, 1, 0, 0, 0, 2510, 2508, 1, 0, 0, 0, 2511, 2512, 5, 441, 0, 0, 2512, 2513, 3, 146, 73, 0, 2513, 153, 1, 0, 0, 0, 2514, 2515, 5, 258, 0, 0, 2515, 2516, 7, 25, 0, 0, 2516, 155, 1, 0, 0, 0, 2517, 2518, 3, 364, 182, 0, 2518, 2525, 5, 105, 0, 0, 2519, 2526, 3, 416, 208, 0, 2520, 2521, 5, 278, 0, 0, 2521, 2522, 5, 2, 0, 0, 2522, 2523, 3, 416, 208, 0, 2523, 2524, 5, 3, 0, 0, 2524, 2526, 1, 0, 0, 0, 2525, 2519, 1, 0, 0, 0, 2525, 2520, 1, 0, 0, 0, 2526, 157, 1, 0, 0, 0, 2527, 2529, 3, 160, 80, 0, 2528, 2530, 3, 162, 81, 0, 2529, 2528, 1, 0, 0, 0, 2529, 2530, 1, 0, 0, 0, 2530, 2536, 1, 0, 0, 0, 2531, 2533, 3, 162, 81, 0, 2532, 2534, 3, 160, 80, 0, 2533, 2532, 1, 0, 0, 0, 2533, 2534, 1, 0, 0, 0, 2534, 2536, 1, 0, 0, 0, 2535, 2527, 1, 0, 0, 0, 2535, 2531, 1, 0, 0, 0, 2536, 159, 1, 0, 0, 0, 2537, 2538, 5, 80, 0, 0, 2538, 2539, 5, 369, 0, 0, 2539, 2540, 3, 164, 82, 0, 2540, 161, 1, 0, 0, 0, 2541, 2542, 5, 80, 0, 0, 2542, 2543, 5, 182, 0, 0, 2543, 2544, 3, 164, 82, 0, 2544, 163, 1, 0, 0, 0, 2545, 2546, 5, 269, 0, 0, 2546, 2555, 5, 132, 0, 0, 2547, 2555, 5, 315, 0, 0, 2548, 2555, 5, 150, 0, 0, 2549, 2550, 5, 333, 0, 0, 2550, 2552, 7, 26, 0, 0, 2551, 2553, 3, 150, 75, 0, 2552, 2551, 1, 0, 0, 0, 2552, 2553, 1, 0, 0, 0, 2553, 2555, 1, 0, 0, 0, 2554, 2545, 1, 0, 0, 0, 2554, 2547, 1, 0, 0, 0, 2554, 2548, 1, 0, 0, 0, 2554, 2549, 1, 0, 0, 0, 2555, 165, 1, 0, 0, 0, 2556, 2557, 5, 238, 0, 0, 2557, 2558, 5, 2, 0, 0, 2558, 2559, 3, 762, 381, 0, 2559, 2560, 5, 3, 0, 0, 2560, 167, 1, 0, 0, 0, 2561, 2562, 5, 285, 0, 0, 2562, 2563, 5, 147, 0, 0, 2563, 2564, 3, 820, 410, 0, 2564, 2565, 5, 2, 0, 0, 2565, 2570, 3, 170, 85, 0, 2566, 2567, 5, 6, 0, 0, 2567, 2569, 3, 170, 85, 0, 2568, 2566, 1, 0, 0, 0, 2569, 2572, 1, 0, 0, 0, 2570, 2568, 1, 0, 0, 0, 2570, 2571, 1, 0, 0, 0, 2571, 2573, 1, 0, 0, 0, 2572, 2570, 1, 0, 0, 0, 2573, 2574, 5, 3, 0, 0, 2574, 169, 1, 0, 0, 0, 2575, 2582, 3, 802, 401, 0, 2576, 2582, 3, 690, 345, 0, 2577, 2578, 5, 2, 0, 0, 2578, 2579, 3, 676, 338, 0, 2579, 2580, 5, 3, 0, 0, 2580, 2582, 1, 0, 0, 0, 2581, 2575, 1, 0, 0, 0, 2581, 2576, 1, 0, 0, 0, 2581, 2577, 1, 0, 0, 0, 2582, 2584, 1, 0, 0, 0, 2583, 2585, 3, 98, 49, 0, 2584, 2583, 1, 0, 0, 0, 2584, 2585, 1, 0, 0, 0, 2585, 2587, 1, 0, 0, 0, 2586, 2588, 3, 318, 159, 0, 2587, 2586, 1, 0, 0, 0, 2587, 2588, 1, 0, 0, 0, 2588, 171, 1, 0, 0, 0, 2589, 2590, 5, 100, 0, 0, 2590, 2591, 3, 820, 410, 0, 2591, 173, 1, 0, 0, 0, 2592, 2593, 5, 105, 0, 0, 2593, 2597, 3, 100, 50, 0, 2594, 2595, 7, 27, 0, 0, 2595, 2597, 5, 277, 0, 0, 2596, 2592, 1, 0, 0, 0, 2596, 2594, 1, 0, 0, 0, 2597, 175, 1, 0, 0, 0, 2598, 2599, 5, 80, 0, 0, 2599, 2605, 5, 161, 0, 0, 2600, 2606, 5, 191, 0, 0, 2601, 2602, 5, 182, 0, 0, 2602, 2606, 5, 320, 0, 0, 2603, 2604, 5, 292, 0, 0, 2604, 2606, 5, 320, 0, 0, 2605, 2600, 1, 0, 0, 0, 2605, 2601, 1, 0, 0, 0, 2605, 2603, 1, 0, 0, 0, 2606, 177, 1, 0, 0, 0, 2607, 2608, 5, 351, 0, 0, 2608, 2609, 3, 772, 386, 0, 2609, 179, 1, 0, 0, 0, 2610, 2611, 5, 100, 0, 0, 2611, 2612, 5, 226, 0, 0, 2612, 2613, 3, 178, 89, 0, 2613, 181, 1, 0, 0, 0, 2614, 2615, 5, 100, 0, 0, 2615, 2616, 5, 226, 0, 0, 2616, 2617, 3, 820, 410, 0, 2617, 183, 1, 0, 0, 0, 2618, 2619, 5, 46, 0, 0, 2619, 2624, 5, 342, 0, 0, 2620, 2622, 3, 296, 148, 0, 2621, 2620, 1, 0, 0, 0, 2621, 2622, 1, 0, 0, 0, 2622, 2623, 1, 0, 0, 0, 2623, 2625, 3, 318, 159, 0, 2624, 2621, 1, 0, 0, 0, 2624, 2625, 1, 0, 0, 0, 2625, 2627, 1, 0, 0, 0, 2626, 2628, 3, 146, 73, 0, 2627, 2626, 1, 0, 0, 0, 2627, 2628, 1, 0, 0, 0, 2628, 2629, 1, 0, 0, 0, 2629, 2639, 5, 80, 0, 0, 2630, 2635, 3, 734, 367, 0, 2631, 2632, 5, 6, 0, 0, 2632, 2634, 3, 734, 367, 0, 2633, 2631, 1, 0, 0, 0, 2634, 2637, 1, 0, 0, 0, 2635, 2633, 1, 0, 0, 0, 2635, 2636, 1, 0, 0, 0, 2636, 2640, 1, 0, 0, 0, 2637, 2635, 1, 0, 0, 0, 2638, 2640, 3, 732, 366, 0, 2639, 2630, 1, 0, 0, 0, 2639, 2638, 1, 0, 0, 0, 2640, 2641, 1, 0, 0, 0, 2641, 2642, 3, 612, 306, 0, 2642, 185, 1, 0, 0, 0, 2643, 2644, 5, 138, 0, 0, 2644, 2646, 5, 342, 0, 0, 2645, 2647, 3, 424, 212, 0, 2646, 2645, 1, 0, 0, 0, 2646, 2647, 1, 0, 0, 0, 2647, 2648, 1, 0, 0, 0, 2648, 2649, 3, 318, 159, 0, 2649, 2650, 5, 333, 0, 0, 2650, 2651, 5, 342, 0, 0, 2651, 2652, 3, 814, 407, 0, 2652, 187, 1, 0, 0, 0, 2653, 2655, 5, 46, 0, 0, 2654, 2656, 3, 124, 62, 0, 2655, 2654, 1, 0, 0, 0, 2655, 2656, 1, 0, 0, 0, 2656, 2657, 1, 0, 0, 0, 2657, 2659, 5, 92, 0, 0, 2658, 2660, 3, 296, 148, 0, 2659, 2658, 1, 0, 0, 0, 2659, 2660, 1, 0, 0, 0, 2660, 2661, 1, 0, 0, 0, 2661, 2662, 3, 190, 95, 0, 2662, 2663, 5, 36, 0, 0, 2663, 2665, 3, 562, 281, 0, 2664, 2666, 3, 192, 96, 0, 2665, 2664, 1, 0, 0, 0, 2665, 2666, 1, 0, 0, 0, 2666, 189, 1, 0, 0, 0, 2667, 2669, 3, 774, 387, 0, 2668, 2670, 3, 148, 74, 0, 2669, 2668, 1, 0, 0, 0, 2669, 2670, 1, 0, 0, 0, 2670, 2672, 1, 0, 0, 0, 2671, 2673, 3, 172, 86, 0, 2672, 2671, 1, 0, 0, 0, 2672, 2673, 1, 0, 0, 0, 2673, 2675, 1, 0, 0, 0, 2674, 2676, 3, 174, 87, 0, 2675, 2674, 1, 0, 0, 0, 2675, 2676, 1, 0, 0, 0, 2676, 2678, 1, 0, 0, 0, 2677, 2679, 3, 176, 88, 0, 2678, 2677, 1, 0, 0, 0, 2678, 2679, 1, 0, 0, 0, 2679, 2681, 1, 0, 0, 0, 2680, 2682, 3, 178, 89, 0, 2681, 2680, 1, 0, 0, 0, 2681, 2682, 1, 0, 0, 0, 2682, 191, 1, 0, 0, 0, 2683, 2687, 5, 105, 0, 0, 2684, 2688, 5, 174, 0, 0, 2685, 2686, 5, 269, 0, 0, 2686, 2688, 5, 174, 0, 0, 2687, 2684, 1, 0, 0, 0, 2687, 2685, 1, 0, 0, 0, 2688, 193, 1, 0, 0, 0, 2689, 2691, 5, 46, 0, 0, 2690, 2692, 5, 367, 0, 0, 2691, 2690, 1, 0, 0, 0, 2691, 2692, 1, 0, 0, 0, 2692, 2693, 1, 0, 0, 0, 2693, 2694, 5, 259, 0, 0, 2694, 2696, 5, 376, 0, 0, 2695, 2697, 3, 296, 148, 0, 2696, 2695, 1, 0, 0, 0, 2696, 2697, 1, 0, 0, 0, 2697, 2698, 1, 0, 0, 0, 2698, 2700, 3, 778, 389, 0, 2699, 2701, 3, 148, 74, 0, 2700, 2699, 1, 0, 0, 0, 2700, 2701, 1, 0, 0, 0, 2701, 2703, 1, 0, 0, 0, 2702, 2704, 3, 172, 86, 0, 2703, 2702, 1, 0, 0, 0, 2703, 2704, 1, 0, 0, 0, 2704, 2706, 1, 0, 0, 0, 2705, 2707, 3, 102, 51, 0, 2706, 2705, 1, 0, 0, 0, 2706, 2707, 1, 0, 0, 0, 2707, 2709, 1, 0, 0, 0, 2708, 2710, 3, 178, 89, 0, 2709, 2708, 1, 0, 0, 0, 2709, 2710, 1, 0, 0, 0, 2710, 2711, 1, 0, 0, 0, 2711, 2712, 5, 36, 0, 0, 2712, 2714, 3, 562, 281, 0, 2713, 2715, 3, 192, 96, 0, 2714, 2713, 1, 0, 0, 0, 2714, 2715, 1, 0, 0, 0, 2715, 195, 1, 0, 0, 0, 2716, 2717, 5, 305, 0, 0, 2717, 2718, 5, 259, 0, 0, 2718, 2720, 5, 376, 0, 0, 2719, 2721, 5, 109, 0, 0, 2720, 2719, 1, 0, 0, 0, 2720, 2721, 1, 0, 0, 0, 2721, 2722, 1, 0, 0, 0, 2722, 2724, 3, 780, 390, 0, 2723, 2725, 3, 192, 96, 0, 2724, 2723, 1, 0, 0, 0, 2724, 2725, 1, 0, 0, 0, 2725, 197, 1, 0, 0, 0, 2726, 2728, 5, 46, 0, 0, 2727, 2729, 3, 124, 62, 0, 2728, 2727, 1, 0, 0, 0, 2728, 2729, 1, 0, 0, 0, 2729, 2730, 1, 0, 0, 0, 2730, 2732, 5, 328, 0, 0, 2731, 2733, 3, 296, 148, 0, 2732, 2731, 1, 0, 0, 0, 2732, 2733, 1, 0, 0, 0, 2733, 2734, 1, 0, 0, 0, 2734, 2740, 3, 782, 391, 0, 2735, 2737, 3, 202, 101, 0, 2736, 2735, 1, 0, 0, 0, 2737, 2738, 1, 0, 0, 0, 2738, 2736, 1, 0, 0, 0, 2738, 2739, 1, 0, 0, 0, 2739, 2741, 1, 0, 0, 0, 2740, 2736, 1, 0, 0, 0, 2740, 2741, 1, 0, 0, 0, 2741, 199, 1, 0, 0, 0, 2742, 2743, 5, 138, 0, 0, 2743, 2745, 5, 328, 0, 0, 2744, 2746, 3, 424, 212, 0, 2745, 2744, 1, 0, 0, 0, 2745, 2746, 1, 0, 0, 0, 2746, 2747, 1, 0, 0, 0, 2747, 2749, 3, 782, 391, 0, 2748, 2750, 3, 202, 101, 0, 2749, 2748, 1, 0, 0, 0, 2750, 2751, 1, 0, 0, 0, 2751, 2749, 1, 0, 0, 0, 2751, 2752, 1, 0, 0, 0, 2752, 201, 1, 0, 0, 0, 2753, 2754, 5, 36, 0, 0, 2754, 2787, 3, 656, 328, 0, 2755, 2757, 5, 148, 0, 0, 2756, 2758, 3, 204, 102, 0, 2757, 2756, 1, 0, 0, 0, 2757, 2758, 1, 0, 0, 0, 2758, 2787, 1, 0, 0, 0, 2759, 2761, 5, 225, 0, 0, 2760, 2762, 5, 147, 0, 0, 2761, 2760, 1, 0, 0, 0, 2761, 2762, 1, 0, 0, 0, 2762, 2763, 1, 0, 0, 0, 2763, 2787, 3, 204, 102, 0, 2764, 2765, 7, 28, 0, 0, 2765, 2787, 3, 204, 102, 0, 2766, 2767, 5, 269, 0, 0, 2767, 2787, 7, 29, 0, 0, 2768, 2769, 5, 281, 0, 0, 2769, 2770, 5, 147, 0, 0, 2770, 2787, 3, 802, 401, 0, 2771, 2772, 5, 328, 0, 0, 2772, 2773, 5, 266, 0, 0, 2773, 2787, 3, 318, 159, 0, 2774, 2776, 5, 340, 0, 0, 2775, 2777, 5, 105, 0, 0, 2776, 2775, 1, 0, 0, 0, 2776, 2777, 1, 0, 0, 0, 2777, 2778, 1, 0, 0, 0, 2778, 2787, 3, 204, 102, 0, 2779, 2781, 5, 314, 0, 0, 2780, 2782, 5, 105, 0, 0, 2781, 2780, 1, 0, 0, 0, 2781, 2782, 1, 0, 0, 0, 2782, 2784, 1, 0, 0, 0, 2783, 2785, 3, 204, 102, 0, 2784, 2783, 1, 0, 0, 0, 2784, 2785, 1, 0, 0, 0, 2785, 2787, 1, 0, 0, 0, 2786, 2753, 1, 0, 0, 0, 2786, 2755, 1, 0, 0, 0, 2786, 2759, 1, 0, 0, 0, 2786, 2764, 1, 0, 0, 0, 2786, 2766, 1, 0, 0, 0, 2786, 2768, 1, 0, 0, 0, 2786, 2771, 1, 0, 0, 0, 2786, 2774, 1, 0, 0, 0, 2786, 2779, 1, 0, 0, 0, 2787, 203, 1, 0, 0, 0, 2788, 2790, 7, 30, 0, 0, 2789, 2788, 1, 0, 0, 0, 2789, 2790, 1, 0, 0, 0, 2790, 2791, 1, 0, 0, 0, 2791, 2794, 5, 576, 0, 0, 2792, 2794, 3, 814, 407, 0, 2793, 2789, 1, 0, 0, 0, 2793, 2792, 1, 0, 0, 0, 2794, 205, 1, 0, 0, 0, 2795, 2797, 5, 46, 0, 0, 2796, 2798, 3, 368, 184, 0, 2797, 2796, 1, 0, 0, 0, 2797, 2798, 1, 0, 0, 0, 2798, 2800, 1, 0, 0, 0, 2799, 2801, 5, 359, 0, 0, 2800, 2799, 1, 0, 0, 0, 2800, 2801, 1, 0, 0, 0, 2801, 2803, 1, 0, 0, 0, 2802, 2804, 5, 295, 0, 0, 2803, 2802, 1, 0, 0, 0, 2803, 2804, 1, 0, 0, 0, 2804, 2805, 1, 0, 0, 0, 2805, 2806, 5, 247, 0, 0, 2806, 2819, 3, 820, 410, 0, 2807, 2808, 5, 215, 0, 0, 2808, 2811, 3, 318, 159, 0, 2809, 2810, 5, 239, 0, 0, 2810, 2812, 3, 318, 159, 0, 2811, 2809, 1, 0, 0, 0, 2811, 2812, 1, 0, 0, 0, 2812, 2817, 1, 0, 0, 0, 2813, 2814, 5, 373, 0, 0, 2814, 2818, 3, 318, 159, 0, 2815, 2816, 5, 269, 0, 0, 2816, 2818, 5, 373, 0, 0, 2817, 2813, 1, 0, 0, 0, 2817, 2815, 1, 0, 0, 0, 2817, 2818, 1, 0, 0, 0, 2818, 2820, 1, 0, 0, 0, 2819, 2807, 1, 0, 0, 0, 2819, 2820, 1, 0, 0, 0, 2820, 207, 1, 0, 0, 0, 2821, 2822, 5, 46, 0, 0, 2822, 2825, 3, 178, 89, 0, 2823, 2824, 5, 282, 0, 0, 2824, 2826, 3, 816, 408, 0, 2825, 2823, 1, 0, 0, 0, 2825, 2826, 1, 0, 0, 0, 2826, 2827, 1, 0, 0, 0, 2827, 2828, 5, 255, 0, 0, 2828, 2830, 3, 810, 405, 0, 2829, 2831, 3, 102, 51, 0, 2830, 2829, 1, 0, 0, 0, 2830, 2831, 1, 0, 0, 0, 2831, 209, 1, 0, 0, 0, 2832, 2833, 5, 46, 0, 0, 2833, 2835, 5, 204, 0, 0, 2834, 2836, 3, 296, 148, 0, 2835, 2834, 1, 0, 0, 0, 2835, 2836, 1, 0, 0, 0, 2836, 2837, 1, 0, 0, 0, 2837, 2839, 3, 820, 410, 0, 2838, 2840, 5, 105, 0, 0, 2839, 2838, 1, 0, 0, 0, 2839, 2840, 1, 0, 0, 0, 2840, 2848, 1, 0, 0, 0, 2841, 2842, 5, 323, 0, 0, 2842, 2847, 3, 792, 396, 0, 2843, 2844, 7, 31, 0, 0, 2844, 2847, 3, 58, 29, 0, 2845, 2847, 5, 150, 0, 0, 2846, 2841, 1, 0, 0, 0, 2846, 2843, 1, 0, 0, 0, 2846, 2845, 1, 0, 0, 0, 2847, 2850, 1, 0, 0, 0, 2848, 2846, 1, 0, 0, 0, 2848, 2849, 1, 0, 0, 0, 2849, 211, 1, 0, 0, 0, 2850, 2848, 1, 0, 0, 0, 2851, 2852, 5, 138, 0, 0, 2852, 2853, 5, 204, 0, 0, 2853, 2854, 3, 820, 410, 0, 2854, 2859, 5, 369, 0, 0, 2855, 2856, 5, 94, 0, 0, 2856, 2858, 3, 58, 29, 0, 2857, 2855, 1, 0, 0, 0, 2858, 2861, 1, 0, 0, 0, 2859, 2857, 1, 0, 0, 0, 2859, 2860, 1, 0, 0, 0, 2860, 213, 1, 0, 0, 0, 2861, 2859, 1, 0, 0, 0, 2862, 2863, 5, 138, 0, 0, 2863, 2864, 5, 204, 0, 0, 2864, 2865, 3, 820, 410, 0, 2865, 2898, 7, 6, 0, 0, 2866, 2867, 5, 443, 0, 0, 2867, 2868, 5, 62, 0, 0, 2868, 2869, 3, 654, 327, 0, 2869, 2870, 5, 247, 0, 0, 2870, 2871, 3, 820, 410, 0, 2871, 2899, 1, 0, 0, 0, 2872, 2873, 5, 442, 0, 0, 2873, 2899, 3, 376, 188, 0, 2874, 2875, 5, 296, 0, 0, 2875, 2899, 3, 380, 190, 0, 2876, 2877, 5, 278, 0, 0, 2877, 2878, 7, 32, 0, 0, 2878, 2879, 3, 318, 159, 0, 2879, 2880, 3, 172, 86, 0, 2880, 2899, 1, 0, 0, 0, 2881, 2882, 5, 278, 0, 0, 2882, 2899, 3, 418, 209, 0, 2883, 2884, 5, 211, 0, 0, 2884, 2899, 3, 384, 192, 0, 2885, 2886, 7, 33, 0, 0, 2886, 2899, 3, 654, 327, 0, 2887, 2888, 5, 41, 0, 0, 2888, 2889, 5, 2, 0, 0, 2889, 2890, 3, 654, 327, 0, 2890, 2891, 5, 36, 0, 0, 2891, 2892, 3, 654, 327, 0, 2892, 2893, 5, 3, 0, 0, 2893, 2899, 1, 0, 0, 0, 2894, 2895, 5, 136, 0, 0, 2895, 2899, 3, 396, 198, 0, 2896, 2899, 3, 314, 157, 0, 2897, 2899, 3, 312, 156, 0, 2898, 2866, 1, 0, 0, 0, 2898, 2872, 1, 0, 0, 0, 2898, 2874, 1, 0, 0, 0, 2898, 2876, 1, 0, 0, 0, 2898, 2881, 1, 0, 0, 0, 2898, 2883, 1, 0, 0, 0, 2898, 2885, 1, 0, 0, 0, 2898, 2887, 1, 0, 0, 0, 2898, 2894, 1, 0, 0, 0, 2898, 2896, 1, 0, 0, 0, 2898, 2897, 1, 0, 0, 0, 2899, 215, 1, 0, 0, 0, 2900, 2901, 5, 46, 0, 0, 2901, 2902, 5, 63, 0, 0, 2902, 2903, 5, 174, 0, 0, 2903, 2904, 5, 381, 0, 0, 2904, 2910, 3, 820, 410, 0, 2905, 2907, 3, 218, 109, 0, 2906, 2905, 1, 0, 0, 0, 2907, 2908, 1, 0, 0, 0, 2908, 2906, 1, 0, 0, 0, 2908, 2909, 1, 0, 0, 0, 2909, 2911, 1, 0, 0, 0, 2910, 2906, 1, 0, 0, 0, 2910, 2911, 1, 0, 0, 0, 2911, 2913, 1, 0, 0, 0, 2912, 2914, 3, 222, 111, 0, 2913, 2912, 1, 0, 0, 0, 2913, 2914, 1, 0, 0, 0, 2914, 217, 1, 0, 0, 0, 2915, 2917, 7, 34, 0, 0, 2916, 2918, 3, 318, 159, 0, 2917, 2916, 1, 0, 0, 0, 2917, 2918, 1, 0, 0, 0, 2918, 2922, 1, 0, 0, 0, 2919, 2920, 5, 269, 0, 0, 2920, 2922, 7, 34, 0, 0, 2921, 2915, 1, 0, 0, 0, 2921, 2919, 1, 0, 0, 0, 2922, 219, 1, 0, 0, 0, 2923, 2924, 5, 138, 0, 0, 2924, 2925, 5, 63, 0, 0, 2925, 2926, 5, 174, 0, 0, 2926, 2927, 5, 381, 0, 0, 2927, 2941, 3, 820, 410, 0, 2928, 2930, 3, 218, 109, 0, 2929, 2928, 1, 0, 0, 0, 2930, 2931, 1, 0, 0, 0, 2931, 2929, 1, 0, 0, 0, 2931, 2932, 1, 0, 0, 0, 2932, 2934, 1, 0, 0, 0, 2933, 2929, 1, 0, 0, 0, 2933, 2934, 1, 0, 0, 0, 2934, 2935, 1, 0, 0, 0, 2935, 2942, 3, 224, 112, 0, 2936, 2938, 3, 218, 109, 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, 2942, 1, 0, 0, 0, 2941, 2933, 1, 0, 0, 0, 2941, 2937, 1, 0, 0, 0, 2942, 221, 1, 0, 0, 0, 2943, 2944, 5, 280, 0, 0, 2944, 2945, 5, 2, 0, 0, 2945, 2950, 3, 228, 114, 0, 2946, 2947, 5, 6, 0, 0, 2947, 2949, 3, 228, 114, 0, 2948, 2946, 1, 0, 0, 0, 2949, 2952, 1, 0, 0, 0, 2950, 2948, 1, 0, 0, 0, 2950, 2951, 1, 0, 0, 0, 2951, 2953, 1, 0, 0, 0, 2952, 2950, 1, 0, 0, 0, 2953, 2954, 5, 3, 0, 0, 2954, 223, 1, 0, 0, 0, 2955, 2956, 5, 280, 0, 0, 2956, 2957, 5, 2, 0, 0, 2957, 2962, 3, 226, 113, 0, 2958, 2959, 5, 6, 0, 0, 2959, 2961, 3, 226, 113, 0, 2960, 2958, 1, 0, 0, 0, 2961, 2964, 1, 0, 0, 0, 2962, 2960, 1, 0, 0, 0, 2962, 2963, 1, 0, 0, 0, 2963, 2965, 1, 0, 0, 0, 2964, 2962, 1, 0, 0, 0, 2965, 2966, 5, 3, 0, 0, 2966, 225, 1, 0, 0, 0, 2967, 2968, 7, 35, 0, 0, 2968, 2969, 3, 228, 114, 0, 2969, 227, 1, 0, 0, 0, 2970, 2971, 3, 826, 413, 0, 2971, 2972, 3, 810, 405, 0, 2972, 229, 1, 0, 0, 0, 2973, 2974, 5, 46, 0, 0, 2974, 2976, 5, 331, 0, 0, 2975, 2977, 3, 296, 148, 0, 2976, 2975, 1, 0, 0, 0, 2976, 2977, 1, 0, 0, 0, 2977, 2978, 1, 0, 0, 0, 2978, 2981, 3, 820, 410, 0, 2979, 2980, 5, 360, 0, 0, 2980, 2982, 3, 810, 405, 0, 2981, 2979, 1, 0, 0, 0, 2981, 2982, 1, 0, 0, 0, 2982, 2984, 1, 0, 0, 0, 2983, 2985, 3, 232, 116, 0, 2984, 2983, 1, 0, 0, 0, 2984, 2985, 1, 0, 0, 0, 2985, 2986, 1, 0, 0, 0, 2986, 2987, 5, 63, 0, 0, 2987, 2988, 5, 174, 0, 0, 2988, 2989, 5, 381, 0, 0, 2989, 2991, 3, 820, 410, 0, 2990, 2992, 3, 222, 111, 0, 2991, 2990, 1, 0, 0, 0, 2991, 2992, 1, 0, 0, 0, 2992, 231, 1, 0, 0, 0, 2993, 2996, 5, 375, 0, 0, 2994, 2997, 3, 810, 405, 0, 2995, 2997, 5, 78, 0, 0, 2996, 2994, 1, 0, 0, 0, 2996, 2995, 1, 0, 0, 0, 2997, 233, 1, 0, 0, 0, 2998, 2999, 5, 138, 0, 0, 2999, 3000, 5, 331, 0, 0, 3000, 3006, 3, 820, 410, 0, 3001, 3007, 3, 224, 112, 0, 3002, 3004, 3, 232, 116, 0, 3003, 3005, 3, 224, 112, 0, 3004, 3003, 1, 0, 0, 0, 3004, 3005, 1, 0, 0, 0, 3005, 3007, 1, 0, 0, 0, 3006, 3001, 1, 0, 0, 0, 3006, 3002, 1, 0, 0, 0, 3007, 235, 1, 0, 0, 0, 3008, 3009, 5, 46, 0, 0, 3009, 3010, 5, 63, 0, 0, 3010, 3012, 5, 92, 0, 0, 3011, 3013, 3, 296, 148, 0, 3012, 3011, 1, 0, 0, 0, 3012, 3013, 1, 0, 0, 0, 3013, 3014, 1, 0, 0, 0, 3014, 3015, 3, 774, 387, 0, 3015, 3017, 5, 2, 0, 0, 3016, 3018, 3, 128, 64, 0, 3017, 3016, 1, 0, 0, 0, 3017, 3018, 1, 0, 0, 0, 3018, 3019, 1, 0, 0, 0, 3019, 3021, 5, 3, 0, 0, 3020, 3022, 3, 166, 83, 0, 3021, 3020, 1, 0, 0, 0, 3021, 3022, 1, 0, 0, 0, 3022, 3023, 1, 0, 0, 0, 3023, 3024, 5, 331, 0, 0, 3024, 3026, 3, 820, 410, 0, 3025, 3027, 3, 222, 111, 0, 3026, 3025, 1, 0, 0, 0, 3026, 3027, 1, 0, 0, 0, 3027, 3048, 1, 0, 0, 0, 3028, 3029, 5, 46, 0, 0, 3029, 3030, 5, 63, 0, 0, 3030, 3032, 5, 92, 0, 0, 3031, 3033, 3, 296, 148, 0, 3032, 3031, 1, 0, 0, 0, 3032, 3033, 1, 0, 0, 0, 3033, 3034, 1, 0, 0, 0, 3034, 3035, 3, 774, 387, 0, 3035, 3036, 5, 285, 0, 0, 3036, 3037, 5, 275, 0, 0, 3037, 3039, 3, 776, 388, 0, 3038, 3040, 3, 126, 63, 0, 3039, 3038, 1, 0, 0, 0, 3039, 3040, 1, 0, 0, 0, 3040, 3041, 1, 0, 0, 0, 3041, 3042, 3, 106, 53, 0, 3042, 3043, 5, 331, 0, 0, 3043, 3045, 3, 820, 410, 0, 3044, 3046, 3, 222, 111, 0, 3045, 3044, 1, 0, 0, 0, 3045, 3046, 1, 0, 0, 0, 3046, 3048, 1, 0, 0, 0, 3047, 3008, 1, 0, 0, 0, 3047, 3028, 1, 0, 0, 0, 3048, 237, 1, 0, 0, 0, 3049, 3050, 5, 444, 0, 0, 3050, 3051, 5, 63, 0, 0, 3051, 3052, 5, 323, 0, 0, 3052, 3062, 3, 792, 396, 0, 3053, 3054, 5, 74, 0, 0, 3054, 3057, 5, 94, 0, 0, 3055, 3057, 5, 59, 0, 0, 3056, 3053, 1, 0, 0, 0, 3056, 3055, 1, 0, 0, 0, 3057, 3058, 1, 0, 0, 0, 3058, 3059, 5, 2, 0, 0, 3059, 3060, 3, 630, 315, 0, 3060, 3061, 5, 3, 0, 0, 3061, 3063, 1, 0, 0, 0, 3062, 3056, 1, 0, 0, 0, 3062, 3063, 1, 0, 0, 0, 3063, 3064, 1, 0, 0, 0, 3064, 3065, 5, 64, 0, 0, 3065, 3066, 5, 331, 0, 0, 3066, 3067, 3, 820, 410, 0, 3067, 3068, 5, 71, 0, 0, 3068, 3070, 3, 820, 410, 0, 3069, 3071, 3, 222, 111, 0, 3070, 3069, 1, 0, 0, 0, 3070, 3071, 1, 0, 0, 0, 3071, 239, 1, 0, 0, 0, 3072, 3073, 5, 46, 0, 0, 3073, 3074, 5, 99, 0, 0, 3074, 3076, 5, 257, 0, 0, 3075, 3077, 3, 296, 148, 0, 3076, 3075, 1, 0, 0, 0, 3076, 3077, 1, 0, 0, 0, 3077, 3078, 1, 0, 0, 0, 3078, 3081, 5, 62, 0, 0, 3079, 3082, 3, 816, 408, 0, 3080, 3082, 5, 99, 0, 0, 3081, 3079, 1, 0, 0, 0, 3081, 3080, 1, 0, 0, 0, 3082, 3083, 1, 0, 0, 0, 3083, 3084, 5, 331, 0, 0, 3084, 3086, 3, 820, 410, 0, 3085, 3087, 3, 222, 111, 0, 3086, 3085, 1, 0, 0, 0, 3086, 3087, 1, 0, 0, 0, 3087, 241, 1, 0, 0, 0, 3088, 3089, 5, 138, 0, 0, 3089, 3090, 5, 99, 0, 0, 3090, 3091, 5, 257, 0, 0, 3091, 3094, 5, 62, 0, 0, 3092, 3095, 3, 816, 408, 0, 3093, 3095, 5, 99, 0, 0, 3094, 3092, 1, 0, 0, 0, 3094, 3093, 1, 0, 0, 0, 3095, 3096, 1, 0, 0, 0, 3096, 3097, 5, 331, 0, 0, 3097, 3098, 3, 820, 410, 0, 3098, 3099, 3, 224, 112, 0, 3099, 243, 1, 0, 0, 0, 3100, 3101, 5, 46, 0, 0, 3101, 3102, 5, 445, 0, 0, 3102, 3103, 3, 820, 410, 0, 3103, 3104, 5, 80, 0, 0, 3104, 3111, 3, 782, 391, 0, 3105, 3109, 5, 36, 0, 0, 3106, 3110, 5, 541, 0, 0, 3107, 3110, 5, 542, 0, 0, 3108, 3110, 3, 828, 414, 0, 3109, 3106, 1, 0, 0, 0, 3109, 3107, 1, 0, 0, 0, 3109, 3108, 1, 0, 0, 0, 3110, 3112, 1, 0, 0, 0, 3111, 3105, 1, 0, 0, 0, 3111, 3112, 1, 0, 0, 0, 3112, 3115, 1, 0, 0, 0, 3113, 3114, 5, 62, 0, 0, 3114, 3116, 7, 36, 0, 0, 3115, 3113, 1, 0, 0, 0, 3115, 3116, 1, 0, 0, 0, 3116, 3119, 1, 0, 0, 0, 3117, 3118, 5, 94, 0, 0, 3118, 3120, 3, 818, 409, 0, 3119, 3117, 1, 0, 0, 0, 3119, 3120, 1, 0, 0, 0, 3120, 3122, 1, 0, 0, 0, 3121, 3123, 3, 252, 126, 0, 3122, 3121, 1, 0, 0, 0, 3122, 3123, 1, 0, 0, 0, 3123, 3125, 1, 0, 0, 0, 3124, 3126, 3, 254, 127, 0, 3125, 3124, 1, 0, 0, 0, 3125, 3126, 1, 0, 0, 0, 3126, 245, 1, 0, 0, 0, 3127, 3128, 5, 138, 0, 0, 3128, 3129, 5, 445, 0, 0, 3129, 3130, 3, 820, 410, 0, 3130, 3131, 5, 80, 0, 0, 3131, 3134, 3, 782, 391, 0, 3132, 3133, 5, 94, 0, 0, 3133, 3135, 3, 818, 409, 0, 3134, 3132, 1, 0, 0, 0, 3134, 3135, 1, 0, 0, 0, 3135, 3137, 1, 0, 0, 0, 3136, 3138, 3, 252, 126, 0, 3137, 3136, 1, 0, 0, 0, 3137, 3138, 1, 0, 0, 0, 3138, 3140, 1, 0, 0, 0, 3139, 3141, 3, 254, 127, 0, 3140, 3139, 1, 0, 0, 0, 3140, 3141, 1, 0, 0, 0, 3141, 247, 1, 0, 0, 0, 3142, 3143, 5, 138, 0, 0, 3143, 3144, 5, 296, 0, 0, 3144, 3146, 3, 798, 399, 0, 3145, 3147, 3, 370, 185, 0, 3146, 3145, 1, 0, 0, 0, 3146, 3147, 1, 0, 0, 0, 3147, 3174, 1, 0, 0, 0, 3148, 3152, 3, 250, 125, 0, 3149, 3151, 3, 250, 125, 0, 3150, 3149, 1, 0, 0, 0, 3151, 3154, 1, 0, 0, 0, 3152, 3150, 1, 0, 0, 0, 3152, 3153, 1, 0, 0, 0, 3153, 3156, 1, 0, 0, 0, 3154, 3152, 1, 0, 0, 0, 3155, 3157, 5, 315, 0, 0, 3156, 3155, 1, 0, 0, 0, 3156, 3157, 1, 0, 0, 0, 3157, 3175, 1, 0, 0, 0, 3158, 3159, 5, 309, 0, 0, 3159, 3160, 5, 94, 0, 0, 3160, 3175, 3, 800, 400, 0, 3161, 3162, 5, 282, 0, 0, 3162, 3163, 5, 94, 0, 0, 3163, 3175, 3, 816, 408, 0, 3164, 3165, 5, 333, 0, 0, 3165, 3166, 5, 323, 0, 0, 3166, 3175, 3, 32, 16, 0, 3167, 3169, 5, 269, 0, 0, 3168, 3167, 1, 0, 0, 0, 3168, 3169, 1, 0, 0, 0, 3169, 3170, 1, 0, 0, 0, 3170, 3171, 5, 462, 0, 0, 3171, 3172, 5, 80, 0, 0, 3172, 3173, 5, 204, 0, 0, 3173, 3175, 3, 820, 410, 0, 3174, 3148, 1, 0, 0, 0, 3174, 3158, 1, 0, 0, 0, 3174, 3161, 1, 0, 0, 0, 3174, 3164, 1, 0, 0, 0, 3174, 3168, 1, 0, 0, 0, 3175, 249, 1, 0, 0, 0, 3176, 3178, 5, 205, 0, 0, 3177, 3176, 1, 0, 0, 0, 3177, 3178, 1, 0, 0, 0, 3178, 3179, 1, 0, 0, 0, 3179, 3180, 5, 327, 0, 0, 3180, 3187, 5, 243, 0, 0, 3181, 3183, 5, 205, 0, 0, 3182, 3181, 1, 0, 0, 0, 3182, 3183, 1, 0, 0, 0, 3183, 3184, 1, 0, 0, 0, 3184, 3185, 5, 327, 0, 0, 3185, 3187, 5, 181, 0, 0, 3186, 3177, 1, 0, 0, 0, 3186, 3182, 1, 0, 0, 0, 3187, 3206, 1, 0, 0, 0, 3188, 3189, 5, 333, 0, 0, 3189, 3190, 3, 820, 410, 0, 3190, 3193, 7, 37, 0, 0, 3191, 3194, 3, 820, 410, 0, 3192, 3194, 5, 53, 0, 0, 3193, 3191, 1, 0, 0, 0, 3193, 3192, 1, 0, 0, 0, 3194, 3206, 1, 0, 0, 0, 3195, 3196, 5, 333, 0, 0, 3196, 3197, 3, 820, 410, 0, 3197, 3198, 5, 64, 0, 0, 3198, 3199, 5, 434, 0, 0, 3199, 3206, 1, 0, 0, 0, 3200, 3203, 5, 313, 0, 0, 3201, 3204, 3, 820, 410, 0, 3202, 3204, 5, 30, 0, 0, 3203, 3201, 1, 0, 0, 0, 3203, 3202, 1, 0, 0, 0, 3204, 3206, 1, 0, 0, 0, 3205, 3186, 1, 0, 0, 0, 3205, 3188, 1, 0, 0, 0, 3205, 3195, 1, 0, 0, 0, 3205, 3200, 1, 0, 0, 0, 3206, 251, 1, 0, 0, 0, 3207, 3208, 5, 100, 0, 0, 3208, 3209, 5, 2, 0, 0, 3209, 3210, 3, 676, 338, 0, 3210, 3211, 5, 3, 0, 0, 3211, 253, 1, 0, 0, 0, 3212, 3213, 5, 105, 0, 0, 3213, 3214, 5, 42, 0, 0, 3214, 3215, 5, 2, 0, 0, 3215, 3216, 3, 676, 338, 0, 3216, 3217, 5, 3, 0, 0, 3217, 255, 1, 0, 0, 0, 3218, 3219, 5, 46, 0, 0, 3219, 3220, 5, 131, 0, 0, 3220, 3221, 5, 446, 0, 0, 3221, 3222, 3, 820, 410, 0, 3222, 3223, 5, 360, 0, 0, 3223, 3224, 7, 38, 0, 0, 3224, 3225, 5, 215, 0, 0, 3225, 3226, 3, 318, 159, 0, 3226, 257, 1, 0, 0, 0, 3227, 3229, 5, 46, 0, 0, 3228, 3230, 3, 368, 184, 0, 3229, 3228, 1, 0, 0, 0, 3229, 3230, 1, 0, 0, 0, 3230, 3231, 1, 0, 0, 0, 3231, 3232, 5, 357, 0, 0, 3232, 3233, 3, 820, 410, 0, 3233, 3234, 3, 260, 130, 0, 3234, 3235, 3, 262, 131, 0, 3235, 3236, 5, 80, 0, 0, 3236, 3248, 3, 776, 388, 0, 3237, 3244, 5, 447, 0, 0, 3238, 3239, 7, 39, 0, 0, 3239, 3241, 7, 40, 0, 0, 3240, 3242, 5, 36, 0, 0, 3241, 3240, 1, 0, 0, 0, 3241, 3242, 1, 0, 0, 0, 3242, 3243, 1, 0, 0, 0, 3243, 3245, 3, 820, 410, 0, 3244, 3238, 1, 0, 0, 0, 3245, 3246, 1, 0, 0, 0, 3246, 3244, 1, 0, 0, 0, 3246, 3247, 1, 0, 0, 0, 3247, 3249, 1, 0, 0, 0, 3248, 3237, 1, 0, 0, 0, 3248, 3249, 1, 0, 0, 0, 3249, 3255, 1, 0, 0, 0, 3250, 3252, 5, 62, 0, 0, 3251, 3253, 5, 192, 0, 0, 3252, 3251, 1, 0, 0, 0, 3252, 3253, 1, 0, 0, 0, 3253, 3254, 1, 0, 0, 0, 3254, 3256, 7, 41, 0, 0, 3255, 3250, 1, 0, 0, 0, 3255, 3256, 1, 0, 0, 0, 3256, 3258, 1, 0, 0, 0, 3257, 3259, 3, 266, 133, 0, 3258, 3257, 1, 0, 0, 0, 3258, 3259, 1, 0, 0, 0, 3259, 3260, 1, 0, 0, 0, 3260, 3261, 5, 202, 0, 0, 3261, 3262, 3, 268, 134, 0, 3262, 3263, 5, 2, 0, 0, 3263, 3264, 3, 270, 135, 0, 3264, 3265, 5, 3, 0, 0, 3265, 3306, 1, 0, 0, 0, 3266, 3268, 5, 46, 0, 0, 3267, 3269, 3, 368, 184, 0, 3268, 3267, 1, 0, 0, 0, 3268, 3269, 1, 0, 0, 0, 3269, 3271, 1, 0, 0, 0, 3270, 3272, 5, 45, 0, 0, 3271, 3270, 1, 0, 0, 0, 3271, 3272, 1, 0, 0, 0, 3272, 3273, 1, 0, 0, 0, 3273, 3274, 5, 357, 0, 0, 3274, 3275, 3, 820, 410, 0, 3275, 3276, 3, 260, 130, 0, 3276, 3277, 3, 262, 131, 0, 3277, 3278, 5, 80, 0, 0, 3278, 3281, 3, 776, 388, 0, 3279, 3280, 5, 64, 0, 0, 3280, 3282, 3, 782, 391, 0, 3281, 3279, 1, 0, 0, 0, 3281, 3282, 1, 0, 0, 0, 3282, 3286, 1, 0, 0, 0, 3283, 3285, 3, 274, 137, 0, 3284, 3283, 1, 0, 0, 0, 3285, 3288, 1, 0, 0, 0, 3286, 3284, 1, 0, 0, 0, 3286, 3287, 1, 0, 0, 0, 3287, 3294, 1, 0, 0, 0, 3288, 3286, 1, 0, 0, 0, 3289, 3291, 5, 62, 0, 0, 3290, 3292, 5, 192, 0, 0, 3291, 3290, 1, 0, 0, 0, 3291, 3292, 1, 0, 0, 0, 3292, 3293, 1, 0, 0, 0, 3293, 3295, 7, 41, 0, 0, 3294, 3289, 1, 0, 0, 0, 3294, 3295, 1, 0, 0, 0, 3295, 3297, 1, 0, 0, 0, 3296, 3298, 3, 266, 133, 0, 3297, 3296, 1, 0, 0, 0, 3297, 3298, 1, 0, 0, 0, 3298, 3299, 1, 0, 0, 0, 3299, 3300, 5, 202, 0, 0, 3300, 3301, 3, 268, 134, 0, 3301, 3302, 5, 2, 0, 0, 3302, 3303, 3, 270, 135, 0, 3303, 3304, 5, 3, 0, 0, 3304, 3306, 1, 0, 0, 0, 3305, 3227, 1, 0, 0, 0, 3305, 3266, 1, 0, 0, 0, 3306, 259, 1, 0, 0, 0, 3307, 3312, 5, 145, 0, 0, 3308, 3312, 5, 135, 0, 0, 3309, 3310, 5, 242, 0, 0, 3310, 3312, 5, 275, 0, 0, 3311, 3307, 1, 0, 0, 0, 3311, 3308, 1, 0, 0, 0, 3311, 3309, 1, 0, 0, 0, 3312, 261, 1, 0, 0, 0, 3313, 3318, 3, 264, 132, 0, 3314, 3315, 5, 82, 0, 0, 3315, 3317, 3, 264, 132, 0, 3316, 3314, 1, 0, 0, 0, 3317, 3320, 1, 0, 0, 0, 3318, 3316, 1, 0, 0, 0, 3318, 3319, 1, 0, 0, 0, 3319, 263, 1, 0, 0, 0, 3320, 3318, 1, 0, 0, 0, 3321, 3330, 5, 241, 0, 0, 3322, 3330, 5, 182, 0, 0, 3323, 3326, 5, 369, 0, 0, 3324, 3325, 5, 275, 0, 0, 3325, 3327, 3, 150, 75, 0, 3326, 3324, 1, 0, 0, 0, 3326, 3327, 1, 0, 0, 0, 3327, 3330, 1, 0, 0, 0, 3328, 3330, 5, 358, 0, 0, 3329, 3321, 1, 0, 0, 0, 3329, 3322, 1, 0, 0, 0, 3329, 3323, 1, 0, 0, 0, 3329, 3328, 1, 0, 0, 0, 3330, 265, 1, 0, 0, 0, 3331, 3332, 5, 102, 0, 0, 3332, 3333, 5, 2, 0, 0, 3333, 3334, 3, 676, 338, 0, 3334, 3335, 5, 3, 0, 0, 3335, 267, 1, 0, 0, 0, 3336, 3337, 5, 211, 0, 0, 3337, 3341, 3, 808, 404, 0, 3338, 3339, 5, 296, 0, 0, 3339, 3341, 3, 798, 399, 0, 3340, 3336, 1, 0, 0, 0, 3340, 3338, 1, 0, 0, 0, 3341, 269, 1, 0, 0, 0, 3342, 3345, 3, 272, 136, 0, 3343, 3345, 1, 0, 0, 0, 3344, 3342, 1, 0, 0, 0, 3344, 3343, 1, 0, 0, 0, 3345, 3350, 1, 0, 0, 0, 3346, 3347, 5, 6, 0, 0, 3347, 3349, 3, 272, 136, 0, 3348, 3346, 1, 0, 0, 0, 3349, 3352, 1, 0, 0, 0, 3350, 3348, 1, 0, 0, 0, 3350, 3351, 1, 0, 0, 0, 3351, 271, 1, 0, 0, 0, 3352, 3350, 1, 0, 0, 0, 3353, 3358, 5, 574, 0, 0, 3354, 3358, 5, 576, 0, 0, 3355, 3358, 3, 810, 405, 0, 3356, 3358, 3, 826, 413, 0, 3357, 3353, 1, 0, 0, 0, 3357, 3354, 1, 0, 0, 0, 3357, 3355, 1, 0, 0, 0, 3357, 3356, 1, 0, 0, 0, 3358, 273, 1, 0, 0, 0, 3359, 3361, 5, 77, 0, 0, 3360, 3359, 1, 0, 0, 0, 3360, 3361, 1, 0, 0, 0, 3361, 3362, 1, 0, 0, 0, 3362, 3370, 5, 54, 0, 0, 3363, 3364, 5, 69, 0, 0, 3364, 3370, 7, 9, 0, 0, 3365, 3366, 5, 77, 0, 0, 3366, 3370, 5, 371, 0, 0, 3367, 3368, 5, 269, 0, 0, 3368, 3370, 5, 228, 0, 0, 3369, 3360, 1, 0, 0, 0, 3369, 3363, 1, 0, 0, 0, 3369, 3365, 1, 0, 0, 0, 3369, 3367, 1, 0, 0, 0, 3370, 275, 1, 0, 0, 0, 3371, 3372, 5, 46, 0, 0, 3372, 3373, 5, 198, 0, 0, 3373, 3374, 5, 357, 0, 0, 3374, 3375, 3, 820, 410, 0, 3375, 3376, 5, 80, 0, 0, 3376, 3386, 3, 826, 413, 0, 3377, 3378, 5, 102, 0, 0, 3378, 3383, 3, 278, 139, 0, 3379, 3380, 5, 33, 0, 0, 3380, 3382, 3, 278, 139, 0, 3381, 3379, 1, 0, 0, 0, 3382, 3385, 1, 0, 0, 0, 3383, 3381, 1, 0, 0, 0, 3383, 3384, 1, 0, 0, 0, 3384, 3387, 1, 0, 0, 0, 3385, 3383, 1, 0, 0, 0, 3386, 3377, 1, 0, 0, 0, 3386, 3387, 1, 0, 0, 0, 3387, 3388, 1, 0, 0, 0, 3388, 3389, 5, 202, 0, 0, 3389, 3390, 3, 268, 134, 0, 3390, 3391, 5, 2, 0, 0, 3391, 3392, 5, 3, 0, 0, 3392, 277, 1, 0, 0, 0, 3393, 3394, 3, 820, 410, 0, 3394, 3395, 5, 68, 0, 0, 3395, 3396, 5, 2, 0, 0, 3396, 3400, 3, 810, 405, 0, 3397, 3399, 3, 464, 232, 0, 3398, 3397, 1, 0, 0, 0, 3399, 3402, 1, 0, 0, 0, 3400, 3398, 1, 0, 0, 0, 3400, 3401, 1, 0, 0, 0, 3401, 3403, 1, 0, 0, 0, 3402, 3400, 1, 0, 0, 0, 3403, 3404, 5, 3, 0, 0, 3404, 279, 1, 0, 0, 0, 3405, 3406, 5, 138, 0, 0, 3406, 3407, 5, 198, 0, 0, 3407, 3408, 5, 357, 0, 0, 3408, 3414, 3, 820, 410, 0, 3409, 3411, 5, 193, 0, 0, 3410, 3412, 7, 14, 0, 0, 3411, 3410, 1, 0, 0, 0, 3411, 3412, 1, 0, 0, 0, 3412, 3415, 1, 0, 0, 0, 3413, 3415, 5, 186, 0, 0, 3414, 3409, 1, 0, 0, 0, 3414, 3413, 1, 0, 0, 0, 3415, 281, 1, 0, 0, 0, 3416, 3417, 5, 46, 0, 0, 3417, 3418, 5, 140, 0, 0, 3418, 3419, 3, 318, 159, 0, 3419, 3420, 5, 42, 0, 0, 3420, 3421, 5, 2, 0, 0, 3421, 3422, 3, 676, 338, 0, 3422, 3426, 5, 3, 0, 0, 3423, 3425, 3, 274, 137, 0, 3424, 3423, 1, 0, 0, 0, 3425, 3428, 1, 0, 0, 0, 3426, 3424, 1, 0, 0, 0, 3426, 3427, 1, 0, 0, 0, 3427, 283, 1, 0, 0, 0, 3428, 3426, 1, 0, 0, 0, 3429, 3431, 5, 46, 0, 0, 3430, 3432, 3, 368, 184, 0, 3431, 3430, 1, 0, 0, 0, 3431, 3432, 1, 0, 0, 0, 3432, 3433, 1, 0, 0, 0, 3433, 3434, 5, 136, 0, 0, 3434, 3449, 3, 808, 404, 0, 3435, 3436, 3, 394, 197, 0, 3436, 3437, 3, 286, 143, 0, 3437, 3450, 1, 0, 0, 0, 3438, 3439, 5, 2, 0, 0, 3439, 3444, 3, 292, 146, 0, 3440, 3441, 5, 6, 0, 0, 3441, 3443, 3, 292, 146, 0, 3442, 3440, 1, 0, 0, 0, 3443, 3446, 1, 0, 0, 0, 3444, 3442, 1, 0, 0, 0, 3444, 3445, 1, 0, 0, 0, 3445, 3447, 1, 0, 0, 0, 3446, 3444, 1, 0, 0, 0, 3447, 3448, 5, 3, 0, 0, 3448, 3450, 1, 0, 0, 0, 3449, 3435, 1, 0, 0, 0, 3449, 3438, 1, 0, 0, 0, 3450, 3508, 1, 0, 0, 0, 3451, 3452, 5, 46, 0, 0, 3452, 3453, 5, 278, 0, 0, 3453, 3454, 3, 416, 208, 0, 3454, 3455, 3, 286, 143, 0, 3455, 3508, 1, 0, 0, 0, 3456, 3457, 5, 46, 0, 0, 3457, 3458, 5, 360, 0, 0, 3458, 3459, 3, 318, 159, 0, 3459, 3477, 5, 36, 0, 0, 3460, 3462, 5, 2, 0, 0, 3461, 3463, 3, 644, 322, 0, 3462, 3461, 1, 0, 0, 0, 3462, 3463, 1, 0, 0, 0, 3463, 3464, 1, 0, 0, 0, 3464, 3478, 5, 3, 0, 0, 3465, 3466, 5, 196, 0, 0, 3466, 3474, 5, 2, 0, 0, 3467, 3471, 3, 810, 405, 0, 3468, 3470, 3, 464, 232, 0, 3469, 3468, 1, 0, 0, 0, 3470, 3473, 1, 0, 0, 0, 3471, 3469, 1, 0, 0, 0, 3471, 3472, 1, 0, 0, 0, 3472, 3475, 1, 0, 0, 0, 3473, 3471, 1, 0, 0, 0, 3474, 3467, 1, 0, 0, 0, 3474, 3475, 1, 0, 0, 0, 3475, 3476, 1, 0, 0, 0, 3476, 3478, 5, 3, 0, 0, 3477, 3460, 1, 0, 0, 0, 3477, 3465, 1, 0, 0, 0, 3478, 3508, 1, 0, 0, 0, 3479, 3480, 5, 46, 0, 0, 3480, 3481, 5, 360, 0, 0, 3481, 3487, 3, 318, 159, 0, 3482, 3483, 5, 36, 0, 0, 3483, 3485, 5, 299, 0, 0, 3484, 3482, 1, 0, 0, 0, 3484, 3485, 1, 0, 0, 0, 3485, 3486, 1, 0, 0, 0, 3486, 3488, 3, 286, 143, 0, 3487, 3484, 1, 0, 0, 0, 3487, 3488, 1, 0, 0, 0, 3488, 3508, 1, 0, 0, 0, 3489, 3490, 5, 46, 0, 0, 3490, 3491, 5, 355, 0, 0, 3491, 3492, 5, 325, 0, 0, 3492, 3493, 7, 42, 0, 0, 3493, 3494, 3, 318, 159, 0, 3494, 3495, 3, 286, 143, 0, 3495, 3508, 1, 0, 0, 0, 3496, 3497, 5, 46, 0, 0, 3497, 3499, 5, 108, 0, 0, 3498, 3500, 3, 296, 148, 0, 3499, 3498, 1, 0, 0, 0, 3499, 3500, 1, 0, 0, 0, 3500, 3501, 1, 0, 0, 0, 3501, 3505, 3, 318, 159, 0, 3502, 3506, 3, 286, 143, 0, 3503, 3504, 5, 64, 0, 0, 3504, 3506, 3, 318, 159, 0, 3505, 3502, 1, 0, 0, 0, 3505, 3503, 1, 0, 0, 0, 3506, 3508, 1, 0, 0, 0, 3507, 3429, 1, 0, 0, 0, 3507, 3451, 1, 0, 0, 0, 3507, 3456, 1, 0, 0, 0, 3507, 3479, 1, 0, 0, 0, 3507, 3489, 1, 0, 0, 0, 3507, 3496, 1, 0, 0, 0, 3508, 285, 1, 0, 0, 0, 3509, 3510, 5, 2, 0, 0, 3510, 3515, 3, 288, 144, 0, 3511, 3512, 5, 6, 0, 0, 3512, 3514, 3, 288, 144, 0, 3513, 3511, 1, 0, 0, 0, 3514, 3517, 1, 0, 0, 0, 3515, 3513, 1, 0, 0, 0, 3515, 3516, 1, 0, 0, 0, 3516, 3518, 1, 0, 0, 0, 3517, 3515, 1, 0, 0, 0, 3518, 3519, 5, 3, 0, 0, 3519, 287, 1, 0, 0, 0, 3520, 3523, 3, 826, 413, 0, 3521, 3522, 5, 10, 0, 0, 3522, 3524, 3, 290, 145, 0, 3523, 3521, 1, 0, 0, 0, 3523, 3524, 1, 0, 0, 0, 3524, 289, 1, 0, 0, 0, 3525, 3532, 3, 390, 195, 0, 3526, 3532, 3, 836, 418, 0, 3527, 3532, 3, 728, 364, 0, 3528, 3532, 3, 204, 102, 0, 3529, 3532, 3, 810, 405, 0, 3530, 3532, 5, 407, 0, 0, 3531, 3525, 1, 0, 0, 0, 3531, 3526, 1, 0, 0, 0, 3531, 3527, 1, 0, 0, 0, 3531, 3528, 1, 0, 0, 0, 3531, 3529, 1, 0, 0, 0, 3531, 3530, 1, 0, 0, 0, 3532, 291, 1, 0, 0, 0, 3533, 3534, 3, 828, 414, 0, 3534, 3535, 5, 10, 0, 0, 3535, 3536, 3, 290, 145, 0, 3536, 293, 1, 0, 0, 0, 3537, 3538, 5, 138, 0, 0, 3538, 3539, 5, 360, 0, 0, 3539, 3540, 3, 318, 159, 0, 3540, 3541, 5, 133, 0, 0, 3541, 3543, 5, 450, 0, 0, 3542, 3544, 3, 296, 148, 0, 3543, 3542, 1, 0, 0, 0, 3543, 3544, 1, 0, 0, 0, 3544, 3545, 1, 0, 0, 0, 3545, 3548, 3, 810, 405, 0, 3546, 3547, 7, 43, 0, 0, 3547, 3549, 3, 810, 405, 0, 3548, 3546, 1, 0, 0, 0, 3548, 3549, 1, 0, 0, 0, 3549, 3560, 1, 0, 0, 0, 3550, 3551, 5, 138, 0, 0, 3551, 3552, 5, 360, 0, 0, 3552, 3553, 3, 318, 159, 0, 3553, 3554, 5, 309, 0, 0, 3554, 3555, 5, 450, 0, 0, 3555, 3556, 3, 810, 405, 0, 3556, 3557, 5, 94, 0, 0, 3557, 3558, 3, 810, 405, 0, 3558, 3560, 1, 0, 0, 0, 3559, 3537, 1, 0, 0, 0, 3559, 3550, 1, 0, 0, 0, 3560, 295, 1, 0, 0, 0, 3561, 3562, 5, 220, 0, 0, 3562, 3563, 5, 77, 0, 0, 3563, 3564, 5, 396, 0, 0, 3564, 297, 1, 0, 0, 0, 3565, 3566, 5, 46, 0, 0, 3566, 3567, 5, 278, 0, 0, 3567, 3568, 5, 156, 0, 0, 3568, 3570, 3, 318, 159, 0, 3569, 3571, 5, 53, 0, 0, 3570, 3569, 1, 0, 0, 0, 3570, 3571, 1, 0, 0, 0, 3571, 3572, 1, 0, 0, 0, 3572, 3573, 5, 62, 0, 0, 3573, 3574, 5, 360, 0, 0, 3574, 3575, 3, 654, 327, 0, 3575, 3578, 3, 172, 86, 0, 3576, 3577, 5, 206, 0, 0, 3577, 3579, 3, 318, 159, 0, 3578, 3576, 1, 0, 0, 0, 3578, 3579, 1, 0, 0, 0, 3579, 3580, 1, 0, 0, 0, 3580, 3581, 5, 36, 0, 0, 3581, 3586, 3, 300, 150, 0, 3582, 3583, 5, 6, 0, 0, 3583, 3585, 3, 300, 150, 0, 3584, 3582, 1, 0, 0, 0, 3585, 3588, 1, 0, 0, 0, 3586, 3584, 1, 0, 0, 0, 3586, 3587, 1, 0, 0, 0, 3587, 299, 1, 0, 0, 0, 3588, 3586, 1, 0, 0, 0, 3589, 3590, 5, 278, 0, 0, 3590, 3591, 5, 574, 0, 0, 3591, 3593, 3, 416, 208, 0, 3592, 3594, 3, 414, 207, 0, 3593, 3592, 1, 0, 0, 0, 3593, 3594, 1, 0, 0, 0, 3594, 3602, 1, 0, 0, 0, 3595, 3600, 5, 62, 0, 0, 3596, 3601, 5, 325, 0, 0, 3597, 3598, 5, 83, 0, 0, 3598, 3599, 5, 147, 0, 0, 3599, 3601, 3, 318, 159, 0, 3600, 3596, 1, 0, 0, 0, 3600, 3597, 1, 0, 0, 0, 3601, 3603, 1, 0, 0, 0, 3602, 3595, 1, 0, 0, 0, 3602, 3603, 1, 0, 0, 0, 3603, 3605, 1, 0, 0, 0, 3604, 3606, 5, 302, 0, 0, 3605, 3604, 1, 0, 0, 0, 3605, 3606, 1, 0, 0, 0, 3606, 3616, 1, 0, 0, 0, 3607, 3608, 5, 211, 0, 0, 3608, 3610, 5, 574, 0, 0, 3609, 3611, 3, 530, 265, 0, 3610, 3609, 1, 0, 0, 0, 3610, 3611, 1, 0, 0, 0, 3611, 3612, 1, 0, 0, 0, 3612, 3616, 3, 384, 192, 0, 3613, 3614, 5, 345, 0, 0, 3614, 3616, 3, 654, 327, 0, 3615, 3589, 1, 0, 0, 0, 3615, 3607, 1, 0, 0, 0, 3615, 3613, 1, 0, 0, 0, 3616, 301, 1, 0, 0, 0, 3617, 3618, 5, 46, 0, 0, 3618, 3619, 5, 278, 0, 0, 3619, 3620, 5, 206, 0, 0, 3620, 3621, 3, 318, 159, 0, 3621, 3622, 3, 172, 86, 0, 3622, 303, 1, 0, 0, 0, 3623, 3624, 5, 138, 0, 0, 3624, 3625, 5, 278, 0, 0, 3625, 3626, 5, 206, 0, 0, 3626, 3627, 3, 318, 159, 0, 3627, 3646, 3, 172, 86, 0, 3628, 3629, 5, 133, 0, 0, 3629, 3634, 3, 300, 150, 0, 3630, 3631, 5, 6, 0, 0, 3631, 3633, 3, 300, 150, 0, 3632, 3630, 1, 0, 0, 0, 3633, 3636, 1, 0, 0, 0, 3634, 3632, 1, 0, 0, 0, 3634, 3635, 1, 0, 0, 0, 3635, 3647, 1, 0, 0, 0, 3636, 3634, 1, 0, 0, 0, 3637, 3638, 5, 191, 0, 0, 3638, 3643, 3, 306, 153, 0, 3639, 3640, 5, 6, 0, 0, 3640, 3642, 3, 306, 153, 0, 3641, 3639, 1, 0, 0, 0, 3642, 3645, 1, 0, 0, 0, 3643, 3641, 1, 0, 0, 0, 3643, 3644, 1, 0, 0, 0, 3644, 3647, 1, 0, 0, 0, 3645, 3643, 1, 0, 0, 0, 3646, 3628, 1, 0, 0, 0, 3646, 3637, 1, 0, 0, 0, 3647, 305, 1, 0, 0, 0, 3648, 3649, 7, 44, 0, 0, 3649, 3650, 5, 574, 0, 0, 3650, 3651, 3, 530, 265, 0, 3651, 307, 1, 0, 0, 0, 3652, 3653, 5, 301, 0, 0, 3653, 3654, 5, 281, 0, 0, 3654, 3655, 5, 147, 0, 0, 3655, 3656, 3, 818, 409, 0, 3656, 3657, 5, 94, 0, 0, 3657, 3658, 3, 816, 408, 0, 3658, 309, 1, 0, 0, 0, 3659, 3682, 5, 191, 0, 0, 3660, 3683, 5, 328, 0, 0, 3661, 3683, 5, 226, 0, 0, 3662, 3683, 5, 108, 0, 0, 3663, 3683, 5, 168, 0, 0, 3664, 3683, 5, 342, 0, 0, 3665, 3683, 5, 452, 0, 0, 3666, 3683, 5, 331, 0, 0, 3667, 3668, 5, 131, 0, 0, 3668, 3683, 5, 446, 0, 0, 3669, 3670, 5, 198, 0, 0, 3670, 3683, 5, 357, 0, 0, 3671, 3683, 5, 204, 0, 0, 3672, 3674, 5, 295, 0, 0, 3673, 3672, 1, 0, 0, 0, 3673, 3674, 1, 0, 0, 0, 3674, 3675, 1, 0, 0, 0, 3675, 3683, 5, 247, 0, 0, 3676, 3677, 5, 63, 0, 0, 3677, 3678, 5, 174, 0, 0, 3678, 3683, 5, 381, 0, 0, 3679, 3680, 5, 355, 0, 0, 3680, 3681, 5, 325, 0, 0, 3681, 3683, 7, 42, 0, 0, 3682, 3660, 1, 0, 0, 0, 3682, 3661, 1, 0, 0, 0, 3682, 3662, 1, 0, 0, 0, 3682, 3663, 1, 0, 0, 0, 3682, 3664, 1, 0, 0, 0, 3682, 3665, 1, 0, 0, 0, 3682, 3666, 1, 0, 0, 0, 3682, 3667, 1, 0, 0, 0, 3682, 3669, 1, 0, 0, 0, 3682, 3671, 1, 0, 0, 0, 3682, 3673, 1, 0, 0, 0, 3682, 3676, 1, 0, 0, 0, 3682, 3679, 1, 0, 0, 0, 3683, 3685, 1, 0, 0, 0, 3684, 3686, 3, 424, 212, 0, 3685, 3684, 1, 0, 0, 0, 3685, 3686, 1, 0, 0, 0, 3686, 3687, 1, 0, 0, 0, 3687, 3689, 3, 786, 393, 0, 3688, 3690, 3, 96, 48, 0, 3689, 3688, 1, 0, 0, 0, 3689, 3690, 1, 0, 0, 0, 3690, 3867, 1, 0, 0, 0, 3691, 3693, 5, 191, 0, 0, 3692, 3694, 5, 259, 0, 0, 3693, 3692, 1, 0, 0, 0, 3693, 3694, 1, 0, 0, 0, 3694, 3695, 1, 0, 0, 0, 3695, 3697, 5, 376, 0, 0, 3696, 3698, 3, 424, 212, 0, 3697, 3696, 1, 0, 0, 0, 3697, 3698, 1, 0, 0, 0, 3698, 3699, 1, 0, 0, 0, 3699, 3704, 3, 780, 390, 0, 3700, 3701, 5, 6, 0, 0, 3701, 3703, 3, 780, 390, 0, 3702, 3700, 1, 0, 0, 0, 3703, 3706, 1, 0, 0, 0, 3704, 3702, 1, 0, 0, 0, 3704, 3705, 1, 0, 0, 0, 3705, 3708, 1, 0, 0, 0, 3706, 3704, 1, 0, 0, 0, 3707, 3709, 3, 96, 48, 0, 3708, 3707, 1, 0, 0, 0, 3708, 3709, 1, 0, 0, 0, 3709, 3867, 1, 0, 0, 0, 3710, 3712, 5, 191, 0, 0, 3711, 3713, 5, 63, 0, 0, 3712, 3711, 1, 0, 0, 0, 3712, 3713, 1, 0, 0, 0, 3713, 3714, 1, 0, 0, 0, 3714, 3716, 5, 92, 0, 0, 3715, 3717, 3, 424, 212, 0, 3716, 3715, 1, 0, 0, 0, 3716, 3717, 1, 0, 0, 0, 3717, 3718, 1, 0, 0, 0, 3718, 3720, 3, 764, 382, 0, 3719, 3721, 3, 96, 48, 0, 3720, 3719, 1, 0, 0, 0, 3720, 3721, 1, 0, 0, 0, 3721, 3867, 1, 0, 0, 0, 3722, 3723, 5, 191, 0, 0, 3723, 3725, 5, 323, 0, 0, 3724, 3726, 3, 424, 212, 0, 3725, 3724, 1, 0, 0, 0, 3725, 3726, 1, 0, 0, 0, 3726, 3727, 1, 0, 0, 0, 3727, 3729, 3, 766, 383, 0, 3728, 3730, 3, 96, 48, 0, 3729, 3728, 1, 0, 0, 0, 3729, 3730, 1, 0, 0, 0, 3730, 3867, 1, 0, 0, 0, 3731, 3732, 5, 191, 0, 0, 3732, 3734, 7, 45, 0, 0, 3733, 3735, 3, 424, 212, 0, 3734, 3733, 1, 0, 0, 0, 3734, 3735, 1, 0, 0, 0, 3735, 3736, 1, 0, 0, 0, 3736, 3737, 3, 820, 410, 0, 3737, 3738, 5, 80, 0, 0, 3738, 3740, 3, 318, 159, 0, 3739, 3741, 3, 96, 48, 0, 3740, 3739, 1, 0, 0, 0, 3740, 3741, 1, 0, 0, 0, 3741, 3867, 1, 0, 0, 0, 3742, 3743, 5, 191, 0, 0, 3743, 3745, 7, 33, 0, 0, 3744, 3746, 3, 424, 212, 0, 3745, 3744, 1, 0, 0, 0, 3745, 3746, 1, 0, 0, 0, 3746, 3747, 1, 0, 0, 0, 3747, 3752, 3, 654, 327, 0, 3748, 3749, 5, 6, 0, 0, 3749, 3751, 3, 654, 327, 0, 3750, 3748, 1, 0, 0, 0, 3751, 3754, 1, 0, 0, 0, 3752, 3750, 1, 0, 0, 0, 3752, 3753, 1, 0, 0, 0, 3753, 3756, 1, 0, 0, 0, 3754, 3752, 1, 0, 0, 0, 3755, 3757, 3, 96, 48, 0, 3756, 3755, 1, 0, 0, 0, 3756, 3757, 1, 0, 0, 0, 3757, 3867, 1, 0, 0, 0, 3758, 3759, 5, 191, 0, 0, 3759, 3760, 5, 226, 0, 0, 3760, 3762, 5, 109, 0, 0, 3761, 3763, 3, 424, 212, 0, 3762, 3761, 1, 0, 0, 0, 3762, 3763, 1, 0, 0, 0, 3763, 3764, 1, 0, 0, 0, 3764, 3766, 3, 316, 158, 0, 3765, 3767, 3, 96, 48, 0, 3766, 3765, 1, 0, 0, 0, 3766, 3767, 1, 0, 0, 0, 3767, 3867, 1, 0, 0, 0, 3768, 3769, 5, 191, 0, 0, 3769, 3771, 5, 41, 0, 0, 3770, 3772, 3, 424, 212, 0, 3771, 3770, 1, 0, 0, 0, 3771, 3772, 1, 0, 0, 0, 3772, 3773, 1, 0, 0, 0, 3773, 3774, 5, 2, 0, 0, 3774, 3775, 3, 654, 327, 0, 3775, 3776, 5, 36, 0, 0, 3776, 3777, 3, 654, 327, 0, 3777, 3779, 5, 3, 0, 0, 3778, 3780, 3, 96, 48, 0, 3779, 3778, 1, 0, 0, 0, 3779, 3780, 1, 0, 0, 0, 3780, 3867, 1, 0, 0, 0, 3781, 3782, 5, 191, 0, 0, 3782, 3783, 5, 278, 0, 0, 3783, 3785, 7, 32, 0, 0, 3784, 3786, 3, 424, 212, 0, 3785, 3784, 1, 0, 0, 0, 3785, 3786, 1, 0, 0, 0, 3786, 3787, 1, 0, 0, 0, 3787, 3788, 3, 318, 159, 0, 3788, 3790, 3, 172, 86, 0, 3789, 3791, 3, 96, 48, 0, 3790, 3789, 1, 0, 0, 0, 3790, 3791, 1, 0, 0, 0, 3791, 3867, 1, 0, 0, 0, 3792, 3793, 5, 191, 0, 0, 3793, 3794, 5, 281, 0, 0, 3794, 3795, 5, 147, 0, 0, 3795, 3797, 3, 818, 409, 0, 3796, 3798, 3, 96, 48, 0, 3797, 3796, 1, 0, 0, 0, 3797, 3798, 1, 0, 0, 0, 3798, 3867, 1, 0, 0, 0, 3799, 3800, 5, 191, 0, 0, 3800, 3802, 5, 451, 0, 0, 3801, 3803, 3, 424, 212, 0, 3802, 3801, 1, 0, 0, 0, 3802, 3803, 1, 0, 0, 0, 3803, 3804, 1, 0, 0, 0, 3804, 3806, 3, 820, 410, 0, 3805, 3807, 3, 96, 48, 0, 3806, 3805, 1, 0, 0, 0, 3806, 3807, 1, 0, 0, 0, 3807, 3867, 1, 0, 0, 0, 3808, 3809, 5, 191, 0, 0, 3809, 3811, 5, 351, 0, 0, 3810, 3812, 3, 424, 212, 0, 3811, 3810, 1, 0, 0, 0, 3811, 3812, 1, 0, 0, 0, 3812, 3813, 1, 0, 0, 0, 3813, 3867, 3, 772, 386, 0, 3814, 3815, 5, 191, 0, 0, 3815, 3817, 5, 443, 0, 0, 3816, 3818, 3, 424, 212, 0, 3817, 3816, 1, 0, 0, 0, 3817, 3818, 1, 0, 0, 0, 3818, 3819, 1, 0, 0, 0, 3819, 3820, 5, 62, 0, 0, 3820, 3821, 3, 654, 327, 0, 3821, 3822, 5, 247, 0, 0, 3822, 3824, 3, 820, 410, 0, 3823, 3825, 3, 96, 48, 0, 3824, 3823, 1, 0, 0, 0, 3824, 3825, 1, 0, 0, 0, 3825, 3867, 1, 0, 0, 0, 3826, 3827, 5, 191, 0, 0, 3827, 3829, 7, 46, 0, 0, 3828, 3830, 3, 424, 212, 0, 3829, 3828, 1, 0, 0, 0, 3829, 3830, 1, 0, 0, 0, 3830, 3831, 1, 0, 0, 0, 3831, 3867, 3, 818, 409, 0, 3832, 3833, 5, 191, 0, 0, 3833, 3834, 5, 99, 0, 0, 3834, 3836, 5, 257, 0, 0, 3835, 3837, 3, 424, 212, 0, 3836, 3835, 1, 0, 0, 0, 3836, 3837, 1, 0, 0, 0, 3837, 3838, 1, 0, 0, 0, 3838, 3841, 5, 62, 0, 0, 3839, 3842, 3, 816, 408, 0, 3840, 3842, 5, 99, 0, 0, 3841, 3839, 1, 0, 0, 0, 3841, 3840, 1, 0, 0, 0, 3842, 3843, 1, 0, 0, 0, 3843, 3844, 5, 331, 0, 0, 3844, 3867, 3, 820, 410, 0, 3845, 3846, 5, 191, 0, 0, 3846, 3848, 5, 175, 0, 0, 3847, 3849, 3, 424, 212, 0, 3848, 3847, 1, 0, 0, 0, 3848, 3849, 1, 0, 0, 0, 3849, 3850, 1, 0, 0, 0, 3850, 3864, 3, 790, 395, 0, 3851, 3853, 5, 105, 0, 0, 3852, 3851, 1, 0, 0, 0, 3852, 3853, 1, 0, 0, 0, 3853, 3854, 1, 0, 0, 0, 3854, 3855, 5, 2, 0, 0, 3855, 3860, 5, 209, 0, 0, 3856, 3857, 5, 6, 0, 0, 3857, 3859, 5, 209, 0, 0, 3858, 3856, 1, 0, 0, 0, 3859, 3862, 1, 0, 0, 0, 3860, 3858, 1, 0, 0, 0, 3860, 3861, 1, 0, 0, 0, 3861, 3863, 1, 0, 0, 0, 3862, 3860, 1, 0, 0, 0, 3863, 3865, 5, 3, 0, 0, 3864, 3852, 1, 0, 0, 0, 3864, 3865, 1, 0, 0, 0, 3865, 3867, 1, 0, 0, 0, 3866, 3659, 1, 0, 0, 0, 3866, 3691, 1, 0, 0, 0, 3866, 3710, 1, 0, 0, 0, 3866, 3722, 1, 0, 0, 0, 3866, 3731, 1, 0, 0, 0, 3866, 3742, 1, 0, 0, 0, 3866, 3758, 1, 0, 0, 0, 3866, 3768, 1, 0, 0, 0, 3866, 3781, 1, 0, 0, 0, 3866, 3792, 1, 0, 0, 0, 3866, 3799, 1, 0, 0, 0, 3866, 3808, 1, 0, 0, 0, 3866, 3814, 1, 0, 0, 0, 3866, 3826, 1, 0, 0, 0, 3866, 3832, 1, 0, 0, 0, 3866, 3845, 1, 0, 0, 0, 3867, 311, 1, 0, 0, 0, 3868, 3870, 5, 63, 0, 0, 3869, 3868, 1, 0, 0, 0, 3869, 3870, 1, 0, 0, 0, 3870, 3871, 1, 0, 0, 0, 3871, 3872, 5, 92, 0, 0, 3872, 3885, 3, 776, 388, 0, 3873, 3875, 5, 259, 0, 0, 3874, 3873, 1, 0, 0, 0, 3874, 3875, 1, 0, 0, 0, 3875, 3876, 1, 0, 0, 0, 3876, 3877, 5, 376, 0, 0, 3877, 3885, 3, 780, 390, 0, 3878, 3879, 7, 47, 0, 0, 3879, 3885, 3, 318, 159, 0, 3880, 3881, 5, 355, 0, 0, 3881, 3882, 5, 325, 0, 0, 3882, 3883, 7, 42, 0, 0, 3883, 3885, 3, 318, 159, 0, 3884, 3869, 1, 0, 0, 0, 3884, 3874, 1, 0, 0, 0, 3884, 3878, 1, 0, 0, 0, 3884, 3880, 1, 0, 0, 0, 3885, 313, 1, 0, 0, 0, 3886, 3887, 5, 198, 0, 0, 3887, 3903, 5, 357, 0, 0, 3888, 3889, 5, 131, 0, 0, 3889, 3903, 5, 446, 0, 0, 3890, 3903, 5, 204, 0, 0, 3891, 3903, 5, 452, 0, 0, 3892, 3903, 5, 331, 0, 0, 3893, 3903, 5, 318, 0, 0, 3894, 3903, 5, 451, 0, 0, 3895, 3896, 5, 63, 0, 0, 3896, 3897, 5, 174, 0, 0, 3897, 3903, 5, 381, 0, 0, 3898, 3900, 5, 295, 0, 0, 3899, 3898, 1, 0, 0, 0, 3899, 3900, 1, 0, 0, 0, 3900, 3901, 1, 0, 0, 0, 3901, 3903, 5, 247, 0, 0, 3902, 3886, 1, 0, 0, 0, 3902, 3888, 1, 0, 0, 0, 3902, 3890, 1, 0, 0, 0, 3902, 3891, 1, 0, 0, 0, 3902, 3892, 1, 0, 0, 0, 3902, 3893, 1, 0, 0, 0, 3902, 3894, 1, 0, 0, 0, 3902, 3895, 1, 0, 0, 0, 3902, 3899, 1, 0, 0, 0, 3903, 3904, 1, 0, 0, 0, 3904, 3911, 3, 820, 410, 0, 3905, 3906, 5, 323, 0, 0, 3906, 3911, 3, 792, 396, 0, 3907, 3908, 5, 175, 0, 0, 3908, 3911, 3, 790, 395, 0, 3909, 3911, 3, 178, 89, 0, 3910, 3902, 1, 0, 0, 0, 3910, 3905, 1, 0, 0, 0, 3910, 3907, 1, 0, 0, 0, 3910, 3909, 1, 0, 0, 0, 3911, 315, 1, 0, 0, 0, 3912, 3917, 3, 318, 159, 0, 3913, 3914, 5, 6, 0, 0, 3914, 3916, 3, 318, 159, 0, 3915, 3913, 1, 0, 0, 0, 3916, 3919, 1, 0, 0, 0, 3917, 3915, 1, 0, 0, 0, 3917, 3918, 1, 0, 0, 0, 3918, 317, 1, 0, 0, 0, 3919, 3917, 1, 0, 0, 0, 3920, 3922, 3, 820, 410, 0, 3921, 3923, 3, 320, 160, 0, 3922, 3921, 1, 0, 0, 0, 3922, 3923, 1, 0, 0, 0, 3923, 319, 1, 0, 0, 0, 3924, 3925, 5, 11, 0, 0, 3925, 3927, 3, 826, 413, 0, 3926, 3924, 1, 0, 0, 0, 3927, 3928, 1, 0, 0, 0, 3928, 3926, 1, 0, 0, 0, 3928, 3929, 1, 0, 0, 0, 3929, 321, 1, 0, 0, 0, 3930, 3932, 5, 358, 0, 0, 3931, 3933, 5, 92, 0, 0, 3932, 3931, 1, 0, 0, 0, 3932, 3933, 1, 0, 0, 0, 3933, 3934, 1, 0, 0, 0, 3934, 3939, 3, 324, 162, 0, 3935, 3936, 5, 6, 0, 0, 3936, 3938, 3, 324, 162, 0, 3937, 3935, 1, 0, 0, 0, 3938, 3941, 1, 0, 0, 0, 3939, 3937, 1, 0, 0, 0, 3939, 3940, 1, 0, 0, 0, 3940, 3944, 1, 0, 0, 0, 3941, 3939, 1, 0, 0, 0, 3942, 3943, 7, 48, 0, 0, 3943, 3945, 5, 219, 0, 0, 3944, 3942, 1, 0, 0, 0, 3944, 3945, 1, 0, 0, 0, 3945, 3947, 1, 0, 0, 0, 3946, 3948, 3, 96, 48, 0, 3947, 3946, 1, 0, 0, 0, 3947, 3948, 1, 0, 0, 0, 3948, 323, 1, 0, 0, 0, 3949, 3951, 5, 81, 0, 0, 3950, 3949, 1, 0, 0, 0, 3950, 3951, 1, 0, 0, 0, 3951, 3952, 1, 0, 0, 0, 3952, 3954, 3, 776, 388, 0, 3953, 3955, 5, 9, 0, 0, 3954, 3953, 1, 0, 0, 0, 3954, 3955, 1, 0, 0, 0, 3955, 325, 1, 0, 0, 0, 3956, 3957, 5, 159, 0, 0, 3957, 4016, 5, 80, 0, 0, 3958, 4017, 3, 312, 156, 0, 3959, 4017, 3, 314, 157, 0, 3960, 3961, 5, 44, 0, 0, 3961, 3963, 3, 820, 410, 0, 3962, 3964, 3, 320, 160, 0, 3963, 3962, 1, 0, 0, 0, 3963, 3964, 1, 0, 0, 0, 3964, 3965, 1, 0, 0, 0, 3965, 3966, 5, 11, 0, 0, 3966, 3967, 3, 802, 401, 0, 3967, 4017, 1, 0, 0, 0, 3968, 3969, 7, 33, 0, 0, 3969, 4017, 3, 654, 327, 0, 3970, 3971, 5, 136, 0, 0, 3971, 4017, 3, 396, 198, 0, 3972, 3973, 5, 211, 0, 0, 3973, 4017, 3, 384, 192, 0, 3974, 3975, 5, 278, 0, 0, 3975, 4017, 3, 418, 209, 0, 3976, 3977, 5, 45, 0, 0, 3977, 3978, 3, 820, 410, 0, 3978, 3984, 5, 80, 0, 0, 3979, 3985, 3, 776, 388, 0, 3980, 3982, 5, 189, 0, 0, 3981, 3980, 1, 0, 0, 0, 3981, 3982, 1, 0, 0, 0, 3982, 3983, 1, 0, 0, 0, 3983, 3985, 3, 318, 159, 0, 3984, 3979, 1, 0, 0, 0, 3984, 3981, 1, 0, 0, 0, 3985, 4017, 1, 0, 0, 0, 3986, 3987, 7, 45, 0, 0, 3987, 3988, 3, 820, 410, 0, 3988, 3989, 5, 80, 0, 0, 3989, 3990, 3, 318, 159, 0, 3990, 4017, 1, 0, 0, 0, 3991, 3992, 5, 296, 0, 0, 3992, 4017, 3, 380, 190, 0, 3993, 3994, 5, 442, 0, 0, 3994, 4017, 3, 376, 188, 0, 3995, 3996, 5, 443, 0, 0, 3996, 3997, 5, 62, 0, 0, 3997, 3998, 3, 654, 327, 0, 3998, 3999, 5, 247, 0, 0, 3999, 4000, 3, 820, 410, 0, 4000, 4017, 1, 0, 0, 0, 4001, 4002, 5, 278, 0, 0, 4002, 4003, 7, 32, 0, 0, 4003, 4004, 3, 318, 159, 0, 4004, 4005, 3, 172, 86, 0, 4005, 4017, 1, 0, 0, 0, 4006, 4007, 5, 248, 0, 0, 4007, 4008, 5, 274, 0, 0, 4008, 4017, 3, 204, 102, 0, 4009, 4010, 5, 41, 0, 0, 4010, 4011, 5, 2, 0, 0, 4011, 4012, 3, 654, 327, 0, 4012, 4013, 5, 36, 0, 0, 4013, 4014, 3, 654, 327, 0, 4014, 4015, 5, 3, 0, 0, 4015, 4017, 1, 0, 0, 0, 4016, 3958, 1, 0, 0, 0, 4016, 3959, 1, 0, 0, 0, 4016, 3960, 1, 0, 0, 0, 4016, 3968, 1, 0, 0, 0, 4016, 3970, 1, 0, 0, 0, 4016, 3972, 1, 0, 0, 0, 4016, 3974, 1, 0, 0, 0, 4016, 3976, 1, 0, 0, 0, 4016, 3986, 1, 0, 0, 0, 4016, 3991, 1, 0, 0, 0, 4016, 3993, 1, 0, 0, 0, 4016, 3995, 1, 0, 0, 0, 4016, 4001, 1, 0, 0, 0, 4016, 4006, 1, 0, 0, 0, 4016, 4009, 1, 0, 0, 0, 4017, 4018, 1, 0, 0, 0, 4018, 4021, 5, 116, 0, 0, 4019, 4022, 3, 810, 405, 0, 4020, 4022, 5, 78, 0, 0, 4021, 4019, 1, 0, 0, 0, 4021, 4020, 1, 0, 0, 0, 4022, 327, 1, 0, 0, 0, 4023, 4024, 5, 327, 0, 0, 4024, 4027, 5, 246, 0, 0, 4025, 4026, 5, 62, 0, 0, 4026, 4028, 3, 58, 29, 0, 4027, 4025, 1, 0, 0, 0, 4027, 4028, 1, 0, 0, 0, 4028, 4029, 1, 0, 0, 0, 4029, 4047, 5, 80, 0, 0, 4030, 4031, 7, 33, 0, 0, 4031, 4048, 3, 654, 327, 0, 4032, 4033, 5, 136, 0, 0, 4033, 4048, 3, 396, 198, 0, 4034, 4035, 5, 44, 0, 0, 4035, 4048, 3, 802, 401, 0, 4036, 4037, 5, 211, 0, 0, 4037, 4048, 3, 384, 192, 0, 4038, 4039, 5, 248, 0, 0, 4039, 4040, 5, 274, 0, 0, 4040, 4048, 3, 204, 102, 0, 4041, 4042, 5, 296, 0, 0, 4042, 4048, 3, 380, 190, 0, 4043, 4044, 5, 442, 0, 0, 4044, 4048, 3, 376, 188, 0, 4045, 4048, 3, 312, 156, 0, 4046, 4048, 3, 314, 157, 0, 4047, 4030, 1, 0, 0, 0, 4047, 4032, 1, 0, 0, 0, 4047, 4034, 1, 0, 0, 0, 4047, 4036, 1, 0, 0, 0, 4047, 4038, 1, 0, 0, 0, 4047, 4041, 1, 0, 0, 0, 4047, 4043, 1, 0, 0, 0, 4047, 4045, 1, 0, 0, 0, 4047, 4046, 1, 0, 0, 0, 4048, 4049, 1, 0, 0, 0, 4049, 4052, 5, 116, 0, 0, 4050, 4053, 3, 810, 405, 0, 4051, 4053, 5, 78, 0, 0, 4052, 4050, 1, 0, 0, 0, 4052, 4051, 1, 0, 0, 0, 4053, 329, 1, 0, 0, 0, 4054, 4055, 7, 49, 0, 0, 4055, 4056, 3, 332, 166, 0, 4056, 331, 1, 0, 0, 0, 4057, 4059, 7, 50, 0, 0, 4058, 4057, 1, 0, 0, 0, 4058, 4059, 1, 0, 0, 0, 4059, 4061, 1, 0, 0, 0, 4060, 4062, 3, 334, 167, 0, 4061, 4060, 1, 0, 0, 0, 4061, 4062, 1, 0, 0, 0, 4062, 4063, 1, 0, 0, 0, 4063, 4101, 3, 820, 410, 0, 4064, 4066, 7, 51, 0, 0, 4065, 4064, 1, 0, 0, 0, 4065, 4066, 1, 0, 0, 0, 4066, 4067, 1, 0, 0, 0, 4067, 4069, 3, 814, 407, 0, 4068, 4070, 3, 334, 167, 0, 4069, 4068, 1, 0, 0, 0, 4069, 4070, 1, 0, 0, 0, 4070, 4071, 1, 0, 0, 0, 4071, 4072, 3, 820, 410, 0, 4072, 4101, 1, 0, 0, 0, 4073, 4075, 5, 210, 0, 0, 4074, 4076, 3, 814, 407, 0, 4075, 4074, 1, 0, 0, 0, 4075, 4076, 1, 0, 0, 0, 4076, 4078, 1, 0, 0, 0, 4077, 4079, 3, 334, 167, 0, 4078, 4077, 1, 0, 0, 0, 4078, 4079, 1, 0, 0, 0, 4079, 4080, 1, 0, 0, 0, 4080, 4101, 3, 820, 410, 0, 4081, 4083, 5, 210, 0, 0, 4082, 4081, 1, 0, 0, 0, 4082, 4083, 1, 0, 0, 0, 4083, 4084, 1, 0, 0, 0, 4084, 4086, 5, 30, 0, 0, 4085, 4087, 3, 334, 167, 0, 4086, 4085, 1, 0, 0, 0, 4086, 4087, 1, 0, 0, 0, 4087, 4088, 1, 0, 0, 0, 4088, 4101, 3, 820, 410, 0, 4089, 4094, 5, 144, 0, 0, 4090, 4092, 5, 30, 0, 0, 4091, 4090, 1, 0, 0, 0, 4091, 4092, 1, 0, 0, 0, 4092, 4095, 1, 0, 0, 0, 4093, 4095, 3, 814, 407, 0, 4094, 4091, 1, 0, 0, 0, 4094, 4093, 1, 0, 0, 0, 4095, 4097, 1, 0, 0, 0, 4096, 4098, 3, 334, 167, 0, 4097, 4096, 1, 0, 0, 0, 4097, 4098, 1, 0, 0, 0, 4098, 4099, 1, 0, 0, 0, 4099, 4101, 3, 820, 410, 0, 4100, 4058, 1, 0, 0, 0, 4100, 4065, 1, 0, 0, 0, 4100, 4073, 1, 0, 0, 0, 4100, 4082, 1, 0, 0, 0, 4100, 4089, 1, 0, 0, 0, 4101, 333, 1, 0, 0, 0, 4102, 4103, 7, 52, 0, 0, 4103, 335, 1, 0, 0, 0, 4104, 4105, 5, 65, 0, 0, 4105, 4106, 3, 340, 170, 0, 4106, 4107, 5, 80, 0, 0, 4107, 4108, 3, 346, 173, 0, 4108, 4109, 5, 94, 0, 0, 4109, 4113, 3, 348, 174, 0, 4110, 4111, 5, 105, 0, 0, 4111, 4112, 5, 65, 0, 0, 4112, 4114, 5, 279, 0, 0, 4113, 4110, 1, 0, 0, 0, 4113, 4114, 1, 0, 0, 0, 4114, 337, 1, 0, 0, 0, 4115, 4119, 5, 317, 0, 0, 4116, 4117, 5, 65, 0, 0, 4117, 4118, 5, 279, 0, 0, 4118, 4120, 5, 62, 0, 0, 4119, 4116, 1, 0, 0, 0, 4119, 4120, 1, 0, 0, 0, 4120, 4121, 1, 0, 0, 0, 4121, 4122, 3, 340, 170, 0, 4122, 4123, 5, 80, 0, 0, 4123, 4124, 3, 346, 173, 0, 4124, 4125, 5, 64, 0, 0, 4125, 4127, 3, 348, 174, 0, 4126, 4128, 3, 96, 48, 0, 4127, 4126, 1, 0, 0, 0, 4127, 4128, 1, 0, 0, 0, 4128, 339, 1, 0, 0, 0, 4129, 4134, 3, 344, 172, 0, 4130, 4131, 5, 6, 0, 0, 4131, 4133, 3, 344, 172, 0, 4132, 4130, 1, 0, 0, 0, 4133, 4136, 1, 0, 0, 0, 4134, 4132, 1, 0, 0, 0, 4134, 4135, 1, 0, 0, 0, 4135, 4153, 1, 0, 0, 0, 4136, 4134, 1, 0, 0, 0, 4137, 4139, 5, 30, 0, 0, 4138, 4140, 5, 294, 0, 0, 4139, 4138, 1, 0, 0, 0, 4139, 4140, 1, 0, 0, 0, 4140, 4142, 1, 0, 0, 0, 4141, 4143, 3, 146, 73, 0, 4142, 4141, 1, 0, 0, 0, 4142, 4143, 1, 0, 0, 0, 4143, 4153, 1, 0, 0, 0, 4144, 4149, 3, 342, 171, 0, 4145, 4146, 5, 6, 0, 0, 4146, 4148, 3, 342, 171, 0, 4147, 4145, 1, 0, 0, 0, 4148, 4151, 1, 0, 0, 0, 4149, 4147, 1, 0, 0, 0, 4149, 4150, 1, 0, 0, 0, 4150, 4153, 1, 0, 0, 0, 4151, 4149, 1, 0, 0, 0, 4152, 4129, 1, 0, 0, 0, 4152, 4137, 1, 0, 0, 0, 4152, 4144, 1, 0, 0, 0, 4153, 341, 1, 0, 0, 0, 4154, 4155, 7, 53, 0, 0, 4155, 343, 1, 0, 0, 0, 4156, 4161, 5, 88, 0, 0, 4157, 4161, 5, 86, 0, 0, 4158, 4161, 5, 46, 0, 0, 4159, 4161, 3, 820, 410, 0, 4160, 4156, 1, 0, 0, 0, 4160, 4157, 1, 0, 0, 0, 4160, 4158, 1, 0, 0, 0, 4160, 4159, 1, 0, 0, 0, 4161, 4163, 1, 0, 0, 0, 4162, 4164, 3, 146, 73, 0, 4163, 4162, 1, 0, 0, 0, 4163, 4164, 1, 0, 0, 0, 4164, 345, 1, 0, 0, 0, 4165, 4166, 5, 92, 0, 0, 4166, 4211, 3, 764, 382, 0, 4167, 4169, 5, 328, 0, 0, 4168, 4167, 1, 0, 0, 0, 4168, 4169, 1, 0, 0, 0, 4169, 4170, 1, 0, 0, 0, 4170, 4211, 3, 762, 381, 0, 4171, 4175, 5, 63, 0, 0, 4172, 4173, 5, 174, 0, 0, 4173, 4176, 5, 381, 0, 0, 4174, 4176, 5, 331, 0, 0, 4175, 4172, 1, 0, 0, 0, 4175, 4174, 1, 0, 0, 0, 4176, 4179, 1, 0, 0, 0, 4177, 4179, 5, 247, 0, 0, 4178, 4171, 1, 0, 0, 0, 4178, 4177, 1, 0, 0, 0, 4179, 4180, 1, 0, 0, 0, 4180, 4211, 3, 786, 393, 0, 4181, 4182, 5, 211, 0, 0, 4182, 4211, 3, 382, 191, 0, 4183, 4184, 5, 296, 0, 0, 4184, 4211, 3, 378, 189, 0, 4185, 4186, 5, 442, 0, 0, 4186, 4211, 3, 374, 187, 0, 4187, 4188, 5, 175, 0, 0, 4188, 4211, 3, 768, 384, 0, 4189, 4190, 7, 33, 0, 0, 4190, 4211, 3, 316, 158, 0, 4191, 4192, 5, 248, 0, 0, 4192, 4193, 5, 274, 0, 0, 4193, 4198, 3, 204, 102, 0, 4194, 4195, 5, 6, 0, 0, 4195, 4197, 3, 204, 102, 0, 4196, 4194, 1, 0, 0, 0, 4197, 4200, 1, 0, 0, 0, 4198, 4196, 1, 0, 0, 0, 4198, 4199, 1, 0, 0, 0, 4199, 4211, 1, 0, 0, 0, 4200, 4198, 1, 0, 0, 0, 4201, 4202, 5, 323, 0, 0, 4202, 4211, 3, 766, 383, 0, 4203, 4204, 5, 351, 0, 0, 4204, 4211, 3, 784, 392, 0, 4205, 4206, 5, 30, 0, 0, 4206, 4207, 7, 54, 0, 0, 4207, 4208, 5, 68, 0, 0, 4208, 4209, 5, 323, 0, 0, 4209, 4211, 3, 766, 383, 0, 4210, 4165, 1, 0, 0, 0, 4210, 4168, 1, 0, 0, 0, 4210, 4178, 1, 0, 0, 0, 4210, 4181, 1, 0, 0, 0, 4210, 4183, 1, 0, 0, 0, 4210, 4185, 1, 0, 0, 0, 4210, 4187, 1, 0, 0, 0, 4210, 4189, 1, 0, 0, 0, 4210, 4191, 1, 0, 0, 0, 4210, 4201, 1, 0, 0, 0, 4210, 4203, 1, 0, 0, 0, 4210, 4205, 1, 0, 0, 0, 4211, 347, 1, 0, 0, 0, 4212, 4214, 5, 66, 0, 0, 4213, 4212, 1, 0, 0, 0, 4213, 4214, 1, 0, 0, 0, 4214, 4215, 1, 0, 0, 0, 4215, 4216, 3, 816, 408, 0, 4216, 4224, 1, 0, 0, 0, 4217, 4219, 5, 6, 0, 0, 4218, 4220, 5, 66, 0, 0, 4219, 4218, 1, 0, 0, 0, 4219, 4220, 1, 0, 0, 0, 4220, 4221, 1, 0, 0, 0, 4221, 4223, 3, 816, 408, 0, 4222, 4217, 1, 0, 0, 0, 4223, 4226, 1, 0, 0, 0, 4224, 4222, 1, 0, 0, 0, 4224, 4225, 1, 0, 0, 0, 4225, 349, 1, 0, 0, 0, 4226, 4224, 1, 0, 0, 0, 4227, 4228, 5, 65, 0, 0, 4228, 4233, 3, 344, 172, 0, 4229, 4230, 5, 6, 0, 0, 4230, 4232, 3, 344, 172, 0, 4231, 4229, 1, 0, 0, 0, 4232, 4235, 1, 0, 0, 0, 4233, 4231, 1, 0, 0, 0, 4233, 4234, 1, 0, 0, 0, 4234, 4236, 1, 0, 0, 0, 4235, 4233, 1, 0, 0, 0, 4236, 4237, 5, 94, 0, 0, 4237, 4241, 3, 818, 409, 0, 4238, 4239, 5, 105, 0, 0, 4239, 4240, 5, 134, 0, 0, 4240, 4242, 5, 279, 0, 0, 4241, 4238, 1, 0, 0, 0, 4241, 4242, 1, 0, 0, 0, 4242, 4246, 1, 0, 0, 0, 4243, 4244, 5, 214, 0, 0, 4244, 4245, 5, 147, 0, 0, 4245, 4247, 3, 816, 408, 0, 4246, 4243, 1, 0, 0, 0, 4246, 4247, 1, 0, 0, 0, 4247, 351, 1, 0, 0, 0, 4248, 4252, 5, 317, 0, 0, 4249, 4250, 5, 134, 0, 0, 4250, 4251, 5, 279, 0, 0, 4251, 4253, 5, 62, 0, 0, 4252, 4249, 1, 0, 0, 0, 4252, 4253, 1, 0, 0, 0, 4253, 4254, 1, 0, 0, 0, 4254, 4259, 3, 344, 172, 0, 4255, 4256, 5, 6, 0, 0, 4256, 4258, 3, 344, 172, 0, 4257, 4255, 1, 0, 0, 0, 4258, 4261, 1, 0, 0, 0, 4259, 4257, 1, 0, 0, 0, 4259, 4260, 1, 0, 0, 0, 4260, 4262, 1, 0, 0, 0, 4261, 4259, 1, 0, 0, 0, 4262, 4263, 5, 64, 0, 0, 4263, 4267, 3, 818, 409, 0, 4264, 4265, 5, 214, 0, 0, 4265, 4266, 5, 147, 0, 0, 4266, 4268, 3, 816, 408, 0, 4267, 4264, 1, 0, 0, 0, 4267, 4268, 1, 0, 0, 0, 4268, 4270, 1, 0, 0, 0, 4269, 4271, 3, 96, 48, 0, 4270, 4269, 1, 0, 0, 0, 4270, 4271, 1, 0, 0, 0, 4271, 353, 1, 0, 0, 0, 4272, 4273, 5, 138, 0, 0, 4273, 4274, 5, 53, 0, 0, 4274, 4283, 5, 294, 0, 0, 4275, 4276, 5, 68, 0, 0, 4276, 4277, 5, 323, 0, 0, 4277, 4282, 3, 766, 383, 0, 4278, 4279, 5, 62, 0, 0, 4279, 4280, 7, 2, 0, 0, 4280, 4282, 3, 818, 409, 0, 4281, 4275, 1, 0, 0, 0, 4281, 4278, 1, 0, 0, 0, 4282, 4285, 1, 0, 0, 0, 4283, 4281, 1, 0, 0, 0, 4283, 4284, 1, 0, 0, 0, 4284, 4286, 1, 0, 0, 0, 4285, 4283, 1, 0, 0, 0, 4286, 4287, 3, 356, 178, 0, 4287, 355, 1, 0, 0, 0, 4288, 4289, 5, 65, 0, 0, 4289, 4290, 3, 340, 170, 0, 4290, 4291, 5, 80, 0, 0, 4291, 4292, 3, 358, 179, 0, 4292, 4293, 5, 94, 0, 0, 4293, 4297, 3, 348, 174, 0, 4294, 4295, 5, 105, 0, 0, 4295, 4296, 5, 65, 0, 0, 4296, 4298, 5, 279, 0, 0, 4297, 4294, 1, 0, 0, 0, 4297, 4298, 1, 0, 0, 0, 4298, 4314, 1, 0, 0, 0, 4299, 4303, 5, 317, 0, 0, 4300, 4301, 5, 65, 0, 0, 4301, 4302, 5, 279, 0, 0, 4302, 4304, 5, 62, 0, 0, 4303, 4300, 1, 0, 0, 0, 4303, 4304, 1, 0, 0, 0, 4304, 4305, 1, 0, 0, 0, 4305, 4306, 3, 340, 170, 0, 4306, 4307, 5, 80, 0, 0, 4307, 4308, 3, 358, 179, 0, 4308, 4309, 5, 64, 0, 0, 4309, 4311, 3, 348, 174, 0, 4310, 4312, 3, 96, 48, 0, 4311, 4310, 1, 0, 0, 0, 4311, 4312, 1, 0, 0, 0, 4312, 4314, 1, 0, 0, 0, 4313, 4288, 1, 0, 0, 0, 4313, 4299, 1, 0, 0, 0, 4314, 357, 1, 0, 0, 0, 4315, 4316, 7, 55, 0, 0, 4316, 359, 1, 0, 0, 0, 4317, 4319, 5, 46, 0, 0, 4318, 4320, 5, 98, 0, 0, 4319, 4318, 1, 0, 0, 0, 4319, 4320, 1, 0, 0, 0, 4320, 4321, 1, 0, 0, 0, 4321, 4323, 5, 226, 0, 0, 4322, 4324, 5, 109, 0, 0, 4323, 4322, 1, 0, 0, 0, 4323, 4324, 1, 0, 0, 0, 4324, 4326, 1, 0, 0, 0, 4325, 4327, 3, 296, 148, 0, 4326, 4325, 1, 0, 0, 0, 4326, 4327, 1, 0, 0, 0, 4327, 4329, 1, 0, 0, 0, 4328, 4330, 3, 820, 410, 0, 4329, 4328, 1, 0, 0, 0, 4329, 4330, 1, 0, 0, 0, 4330, 4331, 1, 0, 0, 0, 4331, 4332, 5, 80, 0, 0, 4332, 4334, 3, 626, 313, 0, 4333, 4335, 3, 172, 86, 0, 4334, 4333, 1, 0, 0, 0, 4334, 4335, 1, 0, 0, 0, 4335, 4336, 1, 0, 0, 0, 4336, 4339, 3, 362, 181, 0, 4337, 4338, 5, 441, 0, 0, 4338, 4340, 3, 362, 181, 0, 4339, 4337, 1, 0, 0, 0, 4339, 4340, 1, 0, 0, 0, 4340, 4346, 1, 0, 0, 0, 4341, 4343, 5, 273, 0, 0, 4342, 4344, 5, 77, 0, 0, 4343, 4342, 1, 0, 0, 0, 4343, 4344, 1, 0, 0, 0, 4344, 4345, 1, 0, 0, 0, 4345, 4347, 5, 56, 0, 0, 4346, 4341, 1, 0, 0, 0, 4346, 4347, 1, 0, 0, 0, 4347, 4349, 1, 0, 0, 0, 4348, 4350, 3, 102, 51, 0, 4349, 4348, 1, 0, 0, 0, 4349, 4350, 1, 0, 0, 0, 4350, 4352, 1, 0, 0, 0, 4351, 4353, 3, 178, 89, 0, 4352, 4351, 1, 0, 0, 0, 4352, 4353, 1, 0, 0, 0, 4353, 4355, 1, 0, 0, 0, 4354, 4356, 3, 640, 320, 0, 4355, 4354, 1, 0, 0, 0, 4355, 4356, 1, 0, 0, 0, 4356, 361, 1, 0, 0, 0, 4357, 4358, 5, 2, 0, 0, 4358, 4363, 3, 364, 182, 0, 4359, 4360, 5, 6, 0, 0, 4360, 4362, 3, 364, 182, 0, 4361, 4359, 1, 0, 0, 0, 4362, 4365, 1, 0, 0, 0, 4363, 4361, 1, 0, 0, 0, 4363, 4364, 1, 0, 0, 0, 4364, 4366, 1, 0, 0, 0, 4365, 4363, 1, 0, 0, 0, 4366, 4367, 5, 3, 0, 0, 4367, 363, 1, 0, 0, 0, 4368, 4375, 3, 802, 401, 0, 4369, 4375, 3, 690, 345, 0, 4370, 4371, 5, 2, 0, 0, 4371, 4372, 3, 676, 338, 0, 4372, 4373, 5, 3, 0, 0, 4373, 4375, 1, 0, 0, 0, 4374, 4368, 1, 0, 0, 0, 4374, 4369, 1, 0, 0, 0, 4374, 4370, 1, 0, 0, 0, 4375, 4377, 1, 0, 0, 0, 4376, 4378, 3, 98, 49, 0, 4377, 4376, 1, 0, 0, 0, 4377, 4378, 1, 0, 0, 0, 4378, 4385, 1, 0, 0, 0, 4379, 4381, 3, 318, 159, 0, 4380, 4379, 1, 0, 0, 0, 4380, 4381, 1, 0, 0, 0, 4381, 4386, 1, 0, 0, 0, 4382, 4383, 3, 318, 159, 0, 4383, 4384, 3, 100, 50, 0, 4384, 4386, 1, 0, 0, 0, 4385, 4380, 1, 0, 0, 0, 4385, 4382, 1, 0, 0, 0, 4386, 4388, 1, 0, 0, 0, 4387, 4389, 7, 56, 0, 0, 4388, 4387, 1, 0, 0, 0, 4388, 4389, 1, 0, 0, 0, 4389, 4392, 1, 0, 0, 0, 4390, 4391, 5, 273, 0, 0, 4391, 4393, 7, 57, 0, 0, 4392, 4390, 1, 0, 0, 0, 4392, 4393, 1, 0, 0, 0, 4393, 365, 1, 0, 0, 0, 4394, 4396, 5, 46, 0, 0, 4395, 4397, 3, 368, 184, 0, 4396, 4395, 1, 0, 0, 0, 4396, 4397, 1, 0, 0, 0, 4397, 4402, 1, 0, 0, 0, 4398, 4399, 5, 211, 0, 0, 4399, 4403, 3, 806, 403, 0, 4400, 4401, 5, 296, 0, 0, 4401, 4403, 3, 800, 400, 0, 4402, 4398, 1, 0, 0, 0, 4402, 4400, 1, 0, 0, 0, 4403, 4404, 1, 0, 0, 0, 4404, 4413, 5, 2, 0, 0, 4405, 4410, 3, 392, 196, 0, 4406, 4407, 5, 6, 0, 0, 4407, 4409, 3, 392, 196, 0, 4408, 4406, 1, 0, 0, 0, 4409, 4412, 1, 0, 0, 0, 4410, 4408, 1, 0, 0, 0, 4410, 4411, 1, 0, 0, 0, 4411, 4414, 1, 0, 0, 0, 4412, 4410, 1, 0, 0, 0, 4413, 4405, 1, 0, 0, 0, 4413, 4414, 1, 0, 0, 0, 4414, 4415, 1, 0, 0, 0, 4415, 4416, 5, 3, 0, 0, 4416, 4433, 1, 0, 0, 0, 4417, 4431, 5, 316, 0, 0, 4418, 4432, 3, 390, 195, 0, 4419, 4420, 5, 92, 0, 0, 4420, 4421, 5, 2, 0, 0, 4421, 4426, 3, 404, 202, 0, 4422, 4423, 5, 6, 0, 0, 4423, 4425, 3, 404, 202, 0, 4424, 4422, 1, 0, 0, 0, 4425, 4428, 1, 0, 0, 0, 4426, 4424, 1, 0, 0, 0, 4426, 4427, 1, 0, 0, 0, 4427, 4429, 1, 0, 0, 0, 4428, 4426, 1, 0, 0, 0, 4429, 4430, 5, 3, 0, 0, 4430, 4432, 1, 0, 0, 0, 4431, 4418, 1, 0, 0, 0, 4431, 4419, 1, 0, 0, 0, 4432, 4434, 1, 0, 0, 0, 4433, 4417, 1, 0, 0, 0, 4433, 4434, 1, 0, 0, 0, 4434, 4436, 1, 0, 0, 0, 4435, 4437, 3, 400, 200, 0, 4436, 4435, 1, 0, 0, 0, 4437, 4438, 1, 0, 0, 0, 4438, 4436, 1, 0, 0, 0, 4438, 4439, 1, 0, 0, 0, 4439, 4445, 1, 0, 0, 0, 4440, 4441, 5, 105, 0, 0, 4441, 4442, 5, 2, 0, 0, 4442, 4443, 3, 786, 393, 0, 4443, 4444, 5, 3, 0, 0, 4444, 4446, 1, 0, 0, 0, 4445, 4440, 1, 0, 0, 0, 4445, 4446, 1, 0, 0, 0, 4446, 367, 1, 0, 0, 0, 4447, 4448, 5, 82, 0, 0, 4448, 4449, 5, 311, 0, 0, 4449, 369, 1, 0, 0, 0, 4450, 4452, 5, 2, 0, 0, 4451, 4453, 3, 372, 186, 0, 4452, 4451, 1, 0, 0, 0, 4452, 4453, 1, 0, 0, 0, 4453, 4454, 1, 0, 0, 0, 4454, 4455, 5, 3, 0, 0, 4455, 371, 1, 0, 0, 0, 4456, 4461, 3, 386, 193, 0, 4457, 4458, 5, 6, 0, 0, 4458, 4460, 3, 386, 193, 0, 4459, 4457, 1, 0, 0, 0, 4460, 4463, 1, 0, 0, 0, 4461, 4459, 1, 0, 0, 0, 4461, 4462, 1, 0, 0, 0, 4462, 373, 1, 0, 0, 0, 4463, 4461, 1, 0, 0, 0, 4464, 4469, 3, 376, 188, 0, 4465, 4466, 5, 6, 0, 0, 4466, 4468, 3, 376, 188, 0, 4467, 4465, 1, 0, 0, 0, 4468, 4471, 1, 0, 0, 0, 4469, 4467, 1, 0, 0, 0, 4469, 4470, 1, 0, 0, 0, 4470, 375, 1, 0, 0, 0, 4471, 4469, 1, 0, 0, 0, 4472, 4473, 3, 796, 398, 0, 4473, 4474, 3, 370, 185, 0, 4474, 4478, 1, 0, 0, 0, 4475, 4478, 3, 834, 417, 0, 4476, 4478, 3, 782, 391, 0, 4477, 4472, 1, 0, 0, 0, 4477, 4475, 1, 0, 0, 0, 4477, 4476, 1, 0, 0, 0, 4478, 377, 1, 0, 0, 0, 4479, 4484, 3, 380, 190, 0, 4480, 4481, 5, 6, 0, 0, 4481, 4483, 3, 380, 190, 0, 4482, 4480, 1, 0, 0, 0, 4483, 4486, 1, 0, 0, 0, 4484, 4482, 1, 0, 0, 0, 4484, 4485, 1, 0, 0, 0, 4485, 379, 1, 0, 0, 0, 4486, 4484, 1, 0, 0, 0, 4487, 4488, 3, 798, 399, 0, 4488, 4489, 3, 370, 185, 0, 4489, 4493, 1, 0, 0, 0, 4490, 4493, 3, 834, 417, 0, 4491, 4493, 3, 782, 391, 0, 4492, 4487, 1, 0, 0, 0, 4492, 4490, 1, 0, 0, 0, 4492, 4491, 1, 0, 0, 0, 4493, 381, 1, 0, 0, 0, 4494, 4499, 3, 384, 192, 0, 4495, 4496, 5, 6, 0, 0, 4496, 4498, 3, 384, 192, 0, 4497, 4495, 1, 0, 0, 0, 4498, 4501, 1, 0, 0, 0, 4499, 4497, 1, 0, 0, 0, 4499, 4500, 1, 0, 0, 0, 4500, 383, 1, 0, 0, 0, 4501, 4499, 1, 0, 0, 0, 4502, 4503, 3, 808, 404, 0, 4503, 4504, 3, 370, 185, 0, 4504, 4508, 1, 0, 0, 0, 4505, 4508, 3, 834, 417, 0, 4506, 4508, 3, 782, 391, 0, 4507, 4502, 1, 0, 0, 0, 4507, 4505, 1, 0, 0, 0, 4507, 4506, 1, 0, 0, 0, 4508, 385, 1, 0, 0, 0, 4509, 4511, 3, 388, 194, 0, 4510, 4512, 3, 822, 411, 0, 4511, 4510, 1, 0, 0, 0, 4511, 4512, 1, 0, 0, 0, 4512, 4518, 1, 0, 0, 0, 4513, 4515, 3, 822, 411, 0, 4514, 4516, 3, 388, 194, 0, 4515, 4514, 1, 0, 0, 0, 4515, 4516, 1, 0, 0, 0, 4516, 4518, 1, 0, 0, 0, 4517, 4509, 1, 0, 0, 0, 4517, 4513, 1, 0, 0, 0, 4517, 4518, 1, 0, 0, 0, 4518, 4519, 1, 0, 0, 0, 4519, 4520, 3, 390, 195, 0, 4520, 387, 1, 0, 0, 0, 4521, 4523, 5, 68, 0, 0, 4522, 4524, 5, 453, 0, 0, 4523, 4522, 1, 0, 0, 0, 4523, 4524, 1, 0, 0, 0, 4524, 4529, 1, 0, 0, 0, 4525, 4529, 5, 453, 0, 0, 4526, 4529, 5, 400, 0, 0, 4527, 4529, 5, 101, 0, 0, 4528, 4521, 1, 0, 0, 0, 4528, 4525, 1, 0, 0, 0, 4528, 4526, 1, 0, 0, 0, 4528, 4527, 1, 0, 0, 0, 4529, 389, 1, 0, 0, 0, 4530, 4540, 3, 654, 327, 0, 4531, 4533, 5, 415, 0, 0, 4532, 4531, 1, 0, 0, 0, 4532, 4533, 1, 0, 0, 0, 4533, 4534, 1, 0, 0, 0, 4534, 4535, 3, 822, 411, 0, 4535, 4536, 3, 320, 160, 0, 4536, 4537, 5, 27, 0, 0, 4537, 4538, 5, 360, 0, 0, 4538, 4540, 1, 0, 0, 0, 4539, 4530, 1, 0, 0, 0, 4539, 4532, 1, 0, 0, 0, 4540, 391, 1, 0, 0, 0, 4541, 4544, 3, 386, 193, 0, 4542, 4543, 7, 58, 0, 0, 4543, 4545, 3, 676, 338, 0, 4544, 4542, 1, 0, 0, 0, 4544, 4545, 1, 0, 0, 0, 4545, 393, 1, 0, 0, 0, 4546, 4556, 5, 2, 0, 0, 4547, 4557, 5, 9, 0, 0, 4548, 4550, 3, 372, 186, 0, 4549, 4548, 1, 0, 0, 0, 4549, 4550, 1, 0, 0, 0, 4550, 4554, 1, 0, 0, 0, 4551, 4552, 5, 83, 0, 0, 4552, 4553, 5, 147, 0, 0, 4553, 4555, 3, 372, 186, 0, 4554, 4551, 1, 0, 0, 0, 4554, 4555, 1, 0, 0, 0, 4555, 4557, 1, 0, 0, 0, 4556, 4547, 1, 0, 0, 0, 4556, 4549, 1, 0, 0, 0, 4557, 4558, 1, 0, 0, 0, 4558, 4559, 5, 3, 0, 0, 4559, 395, 1, 0, 0, 0, 4560, 4561, 3, 808, 404, 0, 4561, 4562, 3, 394, 197, 0, 4562, 397, 1, 0, 0, 0, 4563, 4564, 5, 316, 0, 0, 4564, 4567, 5, 78, 0, 0, 4565, 4567, 5, 149, 0, 0, 4566, 4563, 1, 0, 0, 0, 4566, 4565, 1, 0, 0, 0, 4567, 4568, 1, 0, 0, 0, 4568, 4569, 5, 80, 0, 0, 4569, 4570, 5, 78, 0, 0, 4570, 4593, 5, 458, 0, 0, 4571, 4593, 5, 346, 0, 0, 4572, 4593, 5, 222, 0, 0, 4573, 4593, 5, 338, 0, 0, 4574, 4593, 5, 377, 0, 0, 4575, 4577, 5, 205, 0, 0, 4576, 4575, 1, 0, 0, 0, 4576, 4577, 1, 0, 0, 0, 4577, 4578, 1, 0, 0, 0, 4578, 4579, 5, 327, 0, 0, 4579, 4593, 7, 59, 0, 0, 4580, 4593, 5, 250, 0, 0, 4581, 4582, 5, 77, 0, 0, 4582, 4593, 5, 250, 0, 0, 4583, 4584, 7, 60, 0, 0, 4584, 4593, 3, 204, 102, 0, 4585, 4586, 5, 459, 0, 0, 4586, 4593, 3, 318, 159, 0, 4587, 4588, 5, 333, 0, 0, 4588, 4593, 3, 42, 21, 0, 4589, 4593, 3, 60, 30, 0, 4590, 4591, 5, 460, 0, 0, 4591, 4593, 3, 820, 410, 0, 4592, 4566, 1, 0, 0, 0, 4592, 4571, 1, 0, 0, 0, 4592, 4572, 1, 0, 0, 0, 4592, 4573, 1, 0, 0, 0, 4592, 4574, 1, 0, 0, 0, 4592, 4576, 1, 0, 0, 0, 4592, 4580, 1, 0, 0, 0, 4592, 4581, 1, 0, 0, 0, 4592, 4583, 1, 0, 0, 0, 4592, 4585, 1, 0, 0, 0, 4592, 4587, 1, 0, 0, 0, 4592, 4589, 1, 0, 0, 0, 4592, 4590, 1, 0, 0, 0, 4593, 399, 1, 0, 0, 0, 4594, 4595, 5, 36, 0, 0, 4595, 4596, 3, 810, 405, 0, 4596, 4597, 3, 464, 232, 0, 4597, 4630, 1, 0, 0, 0, 4598, 4599, 5, 247, 0, 0, 4599, 4630, 3, 58, 29, 0, 4600, 4601, 5, 443, 0, 0, 4601, 4602, 5, 62, 0, 0, 4602, 4603, 5, 360, 0, 0, 4603, 4610, 3, 654, 327, 0, 4604, 4605, 5, 6, 0, 0, 4605, 4606, 5, 62, 0, 0, 4606, 4607, 5, 360, 0, 0, 4607, 4609, 3, 654, 327, 0, 4608, 4604, 1, 0, 0, 0, 4609, 4612, 1, 0, 0, 0, 4610, 4608, 1, 0, 0, 0, 4610, 4611, 1, 0, 0, 0, 4611, 4630, 1, 0, 0, 0, 4612, 4610, 1, 0, 0, 0, 4613, 4630, 5, 104, 0, 0, 4614, 4615, 5, 333, 0, 0, 4615, 4622, 3, 820, 410, 0, 4616, 4617, 5, 94, 0, 0, 4617, 4623, 3, 820, 410, 0, 4618, 4619, 5, 10, 0, 0, 4619, 4623, 3, 820, 410, 0, 4620, 4621, 5, 64, 0, 0, 4621, 4623, 5, 434, 0, 0, 4622, 4616, 1, 0, 0, 0, 4622, 4618, 1, 0, 0, 0, 4622, 4620, 1, 0, 0, 0, 4623, 4630, 1, 0, 0, 0, 4624, 4625, 5, 36, 0, 0, 4625, 4630, 3, 820, 410, 0, 4626, 4630, 3, 4, 2, 0, 4627, 4630, 3, 398, 199, 0, 4628, 4630, 3, 820, 410, 0, 4629, 4594, 1, 0, 0, 0, 4629, 4598, 1, 0, 0, 0, 4629, 4600, 1, 0, 0, 0, 4629, 4613, 1, 0, 0, 0, 4629, 4614, 1, 0, 0, 0, 4629, 4624, 1, 0, 0, 0, 4629, 4626, 1, 0, 0, 0, 4629, 4627, 1, 0, 0, 0, 4629, 4628, 1, 0, 0, 0, 4630, 401, 1, 0, 0, 0, 4631, 4632, 5, 105, 0, 0, 4632, 4633, 3, 286, 143, 0, 4633, 403, 1, 0, 0, 0, 4634, 4635, 3, 802, 401, 0, 4635, 4636, 3, 390, 195, 0, 4636, 405, 1, 0, 0, 0, 4637, 4644, 5, 138, 0, 0, 4638, 4639, 5, 211, 0, 0, 4639, 4645, 3, 384, 192, 0, 4640, 4641, 5, 296, 0, 0, 4641, 4645, 3, 380, 190, 0, 4642, 4643, 5, 442, 0, 0, 4643, 4645, 3, 376, 188, 0, 4644, 4638, 1, 0, 0, 0, 4644, 4640, 1, 0, 0, 0, 4644, 4642, 1, 0, 0, 0, 4645, 4647, 1, 0, 0, 0, 4646, 4648, 3, 398, 199, 0, 4647, 4646, 1, 0, 0, 0, 4648, 4649, 1, 0, 0, 0, 4649, 4647, 1, 0, 0, 0, 4649, 4650, 1, 0, 0, 0, 4650, 4652, 1, 0, 0, 0, 4651, 4653, 5, 315, 0, 0, 4652, 4651, 1, 0, 0, 0, 4652, 4653, 1, 0, 0, 0, 4653, 407, 1, 0, 0, 0, 4654, 4670, 5, 191, 0, 0, 4655, 4657, 5, 211, 0, 0, 4656, 4658, 3, 424, 212, 0, 4657, 4656, 1, 0, 0, 0, 4657, 4658, 1, 0, 0, 0, 4658, 4659, 1, 0, 0, 0, 4659, 4671, 3, 382, 191, 0, 4660, 4662, 5, 296, 0, 0, 4661, 4663, 3, 424, 212, 0, 4662, 4661, 1, 0, 0, 0, 4662, 4663, 1, 0, 0, 0, 4663, 4664, 1, 0, 0, 0, 4664, 4671, 3, 378, 189, 0, 4665, 4667, 5, 442, 0, 0, 4666, 4668, 3, 424, 212, 0, 4667, 4666, 1, 0, 0, 0, 4667, 4668, 1, 0, 0, 0, 4668, 4669, 1, 0, 0, 0, 4669, 4671, 3, 374, 187, 0, 4670, 4655, 1, 0, 0, 0, 4670, 4660, 1, 0, 0, 0, 4670, 4665, 1, 0, 0, 0, 4671, 4673, 1, 0, 0, 0, 4672, 4674, 3, 96, 48, 0, 4673, 4672, 1, 0, 0, 0, 4673, 4674, 1, 0, 0, 0, 4674, 409, 1, 0, 0, 0, 4675, 4676, 5, 191, 0, 0, 4676, 4678, 5, 136, 0, 0, 4677, 4679, 3, 424, 212, 0, 4678, 4677, 1, 0, 0, 0, 4678, 4679, 1, 0, 0, 0, 4679, 4680, 1, 0, 0, 0, 4680, 4685, 3, 396, 198, 0, 4681, 4682, 5, 6, 0, 0, 4682, 4684, 3, 396, 198, 0, 4683, 4681, 1, 0, 0, 0, 4684, 4687, 1, 0, 0, 0, 4685, 4683, 1, 0, 0, 0, 4685, 4686, 1, 0, 0, 0, 4686, 4689, 1, 0, 0, 0, 4687, 4685, 1, 0, 0, 0, 4688, 4690, 3, 96, 48, 0, 4689, 4688, 1, 0, 0, 0, 4689, 4690, 1, 0, 0, 0, 4690, 411, 1, 0, 0, 0, 4691, 4692, 5, 191, 0, 0, 4692, 4694, 5, 278, 0, 0, 4693, 4695, 3, 424, 212, 0, 4694, 4693, 1, 0, 0, 0, 4694, 4695, 1, 0, 0, 0, 4695, 4696, 1, 0, 0, 0, 4696, 4701, 3, 418, 209, 0, 4697, 4698, 5, 6, 0, 0, 4698, 4700, 3, 418, 209, 0, 4699, 4697, 1, 0, 0, 0, 4700, 4703, 1, 0, 0, 0, 4701, 4699, 1, 0, 0, 0, 4701, 4702, 1, 0, 0, 0, 4702, 4705, 1, 0, 0, 0, 4703, 4701, 1, 0, 0, 0, 4704, 4706, 3, 96, 48, 0, 4705, 4704, 1, 0, 0, 0, 4705, 4706, 1, 0, 0, 0, 4706, 413, 1, 0, 0, 0, 4707, 4720, 5, 2, 0, 0, 4708, 4711, 3, 654, 327, 0, 4709, 4710, 5, 6, 0, 0, 4710, 4712, 3, 654, 327, 0, 4711, 4709, 1, 0, 0, 0, 4711, 4712, 1, 0, 0, 0, 4712, 4721, 1, 0, 0, 0, 4713, 4714, 5, 407, 0, 0, 4714, 4715, 5, 6, 0, 0, 4715, 4721, 3, 654, 327, 0, 4716, 4717, 3, 654, 327, 0, 4717, 4718, 5, 6, 0, 0, 4718, 4719, 5, 407, 0, 0, 4719, 4721, 1, 0, 0, 0, 4720, 4708, 1, 0, 0, 0, 4720, 4713, 1, 0, 0, 0, 4720, 4716, 1, 0, 0, 0, 4721, 4722, 1, 0, 0, 0, 4722, 4723, 5, 3, 0, 0, 4723, 415, 1, 0, 0, 0, 4724, 4725, 3, 820, 410, 0, 4725, 4726, 5, 11, 0, 0, 4726, 4728, 1, 0, 0, 0, 4727, 4724, 1, 0, 0, 0, 4728, 4731, 1, 0, 0, 0, 4729, 4727, 1, 0, 0, 0, 4729, 4730, 1, 0, 0, 0, 4730, 4732, 1, 0, 0, 0, 4731, 4729, 1, 0, 0, 0, 4732, 4733, 3, 722, 361, 0, 4733, 417, 1, 0, 0, 0, 4734, 4735, 3, 416, 208, 0, 4735, 4736, 3, 414, 207, 0, 4736, 419, 1, 0, 0, 0, 4737, 4741, 5, 57, 0, 0, 4738, 4742, 3, 810, 405, 0, 4739, 4740, 5, 247, 0, 0, 4740, 4742, 3, 58, 29, 0, 4741, 4738, 1, 0, 0, 0, 4741, 4739, 1, 0, 0, 0, 4742, 4743, 1, 0, 0, 0, 4743, 4741, 1, 0, 0, 0, 4743, 4744, 1, 0, 0, 0, 4744, 421, 1, 0, 0, 0, 4745, 4746, 5, 46, 0, 0, 4746, 4747, 5, 41, 0, 0, 4747, 4748, 5, 2, 0, 0, 4748, 4749, 3, 654, 327, 0, 4749, 4750, 5, 36, 0, 0, 4750, 4751, 3, 654, 327, 0, 4751, 4768, 5, 3, 0, 0, 4752, 4753, 5, 379, 0, 0, 4753, 4756, 5, 211, 0, 0, 4754, 4755, 5, 36, 0, 0, 4755, 4757, 7, 61, 0, 0, 4756, 4754, 1, 0, 0, 0, 4756, 4757, 1, 0, 0, 0, 4757, 4769, 1, 0, 0, 0, 4758, 4762, 5, 105, 0, 0, 4759, 4760, 5, 211, 0, 0, 4760, 4763, 3, 384, 192, 0, 4761, 4763, 5, 400, 0, 0, 4762, 4759, 1, 0, 0, 0, 4762, 4761, 1, 0, 0, 0, 4763, 4766, 1, 0, 0, 0, 4764, 4765, 5, 36, 0, 0, 4765, 4767, 7, 61, 0, 0, 4766, 4764, 1, 0, 0, 0, 4766, 4767, 1, 0, 0, 0, 4767, 4769, 1, 0, 0, 0, 4768, 4752, 1, 0, 0, 0, 4768, 4758, 1, 0, 0, 0, 4769, 423, 1, 0, 0, 0, 4770, 4771, 5, 220, 0, 0, 4771, 4772, 5, 396, 0, 0, 4772, 425, 1, 0, 0, 0, 4773, 4775, 5, 46, 0, 0, 4774, 4776, 3, 368, 184, 0, 4775, 4774, 1, 0, 0, 0, 4775, 4776, 1, 0, 0, 0, 4776, 4777, 1, 0, 0, 0, 4777, 4778, 5, 443, 0, 0, 4778, 4779, 5, 62, 0, 0, 4779, 4780, 3, 654, 327, 0, 4780, 4781, 5, 247, 0, 0, 4781, 4782, 3, 820, 410, 0, 4782, 4797, 5, 2, 0, 0, 4783, 4784, 5, 64, 0, 0, 4784, 4788, 3, 428, 214, 0, 4785, 4786, 5, 6, 0, 0, 4786, 4787, 5, 94, 0, 0, 4787, 4789, 3, 428, 214, 0, 4788, 4785, 1, 0, 0, 0, 4788, 4789, 1, 0, 0, 0, 4789, 4798, 1, 0, 0, 0, 4790, 4791, 5, 94, 0, 0, 4791, 4795, 3, 428, 214, 0, 4792, 4793, 5, 6, 0, 0, 4793, 4794, 5, 64, 0, 0, 4794, 4796, 3, 428, 214, 0, 4795, 4792, 1, 0, 0, 0, 4795, 4796, 1, 0, 0, 0, 4796, 4798, 1, 0, 0, 0, 4797, 4783, 1, 0, 0, 0, 4797, 4790, 1, 0, 0, 0, 4798, 4799, 1, 0, 0, 0, 4799, 4800, 5, 3, 0, 0, 4800, 427, 1, 0, 0, 0, 4801, 4802, 5, 461, 0, 0, 4802, 4803, 5, 105, 0, 0, 4803, 4804, 5, 211, 0, 0, 4804, 4805, 3, 384, 192, 0, 4805, 429, 1, 0, 0, 0, 4806, 4817, 5, 306, 0, 0, 4807, 4808, 5, 2, 0, 0, 4808, 4813, 5, 128, 0, 0, 4809, 4810, 5, 6, 0, 0, 4810, 4812, 5, 128, 0, 0, 4811, 4809, 1, 0, 0, 0, 4812, 4815, 1, 0, 0, 0, 4813, 4811, 1, 0, 0, 0, 4813, 4814, 1, 0, 0, 0, 4814, 4816, 1, 0, 0, 0, 4815, 4813, 1, 0, 0, 0, 4816, 4818, 5, 3, 0, 0, 4817, 4807, 1, 0, 0, 0, 4817, 4818, 1, 0, 0, 0, 4818, 4844, 1, 0, 0, 0, 4819, 4821, 5, 226, 0, 0, 4820, 4822, 5, 109, 0, 0, 4821, 4820, 1, 0, 0, 0, 4821, 4822, 1, 0, 0, 0, 4822, 4823, 1, 0, 0, 0, 4823, 4845, 3, 782, 391, 0, 4824, 4826, 5, 92, 0, 0, 4825, 4827, 5, 109, 0, 0, 4826, 4825, 1, 0, 0, 0, 4826, 4827, 1, 0, 0, 0, 4827, 4828, 1, 0, 0, 0, 4828, 4845, 3, 776, 388, 0, 4829, 4831, 5, 323, 0, 0, 4830, 4832, 5, 109, 0, 0, 4831, 4830, 1, 0, 0, 0, 4831, 4832, 1, 0, 0, 0, 4832, 4833, 1, 0, 0, 0, 4833, 4845, 3, 792, 396, 0, 4834, 4836, 5, 349, 0, 0, 4835, 4837, 5, 109, 0, 0, 4836, 4835, 1, 0, 0, 0, 4836, 4837, 1, 0, 0, 0, 4837, 4838, 1, 0, 0, 0, 4838, 4845, 3, 820, 410, 0, 4839, 4841, 5, 175, 0, 0, 4840, 4842, 5, 109, 0, 0, 4841, 4840, 1, 0, 0, 0, 4841, 4842, 1, 0, 0, 0, 4842, 4843, 1, 0, 0, 0, 4843, 4845, 3, 790, 395, 0, 4844, 4819, 1, 0, 0, 0, 4844, 4824, 1, 0, 0, 0, 4844, 4829, 1, 0, 0, 0, 4844, 4834, 1, 0, 0, 0, 4844, 4839, 1, 0, 0, 0, 4845, 431, 1, 0, 0, 0, 4846, 4847, 5, 138, 0, 0, 4847, 4848, 3, 178, 89, 0, 4848, 4849, 7, 16, 0, 0, 4849, 4850, 3, 100, 50, 0, 4850, 433, 1, 0, 0, 0, 4851, 4856, 5, 138, 0, 0, 4852, 4853, 5, 136, 0, 0, 4853, 4857, 3, 396, 198, 0, 4854, 4855, 5, 442, 0, 0, 4855, 4857, 3, 376, 188, 0, 4856, 4852, 1, 0, 0, 0, 4856, 4854, 1, 0, 0, 0, 4857, 4858, 1, 0, 0, 0, 4858, 4859, 5, 309, 0, 0, 4859, 4860, 5, 94, 0, 0, 4860, 4861, 3, 820, 410, 0, 4861, 5059, 1, 0, 0, 0, 4862, 4863, 5, 138, 0, 0, 4863, 4864, 5, 175, 0, 0, 4864, 4865, 3, 790, 395, 0, 4865, 4866, 5, 309, 0, 0, 4866, 4867, 5, 94, 0, 0, 4867, 4868, 3, 788, 394, 0, 4868, 5059, 1, 0, 0, 0, 4869, 4870, 5, 138, 0, 0, 4870, 4871, 7, 62, 0, 0, 4871, 4872, 3, 318, 159, 0, 4872, 4873, 5, 309, 0, 0, 4873, 4874, 5, 94, 0, 0, 4874, 4875, 3, 820, 410, 0, 4875, 5059, 1, 0, 0, 0, 4876, 4877, 5, 138, 0, 0, 4877, 4878, 5, 211, 0, 0, 4878, 4879, 3, 384, 192, 0, 4879, 4880, 5, 309, 0, 0, 4880, 4881, 5, 94, 0, 0, 4881, 4882, 3, 806, 403, 0, 4882, 5059, 1, 0, 0, 0, 4883, 4884, 5, 138, 0, 0, 4884, 4885, 5, 278, 0, 0, 4885, 4886, 7, 32, 0, 0, 4886, 4887, 3, 318, 159, 0, 4887, 4888, 3, 172, 86, 0, 4888, 4889, 5, 309, 0, 0, 4889, 4890, 5, 94, 0, 0, 4890, 4891, 3, 820, 410, 0, 4891, 5059, 1, 0, 0, 0, 4892, 4893, 5, 138, 0, 0, 4893, 4894, 5, 296, 0, 0, 4894, 4895, 3, 380, 190, 0, 4895, 4896, 5, 309, 0, 0, 4896, 4897, 5, 94, 0, 0, 4897, 4898, 3, 800, 400, 0, 4898, 5059, 1, 0, 0, 0, 4899, 4900, 5, 138, 0, 0, 4900, 4901, 5, 323, 0, 0, 4901, 4902, 3, 792, 396, 0, 4902, 4903, 5, 309, 0, 0, 4903, 4904, 5, 94, 0, 0, 4904, 4905, 3, 32, 16, 0, 4905, 5059, 1, 0, 0, 0, 4906, 4907, 5, 138, 0, 0, 4907, 4909, 7, 63, 0, 0, 4908, 4910, 3, 424, 212, 0, 4909, 4908, 1, 0, 0, 0, 4909, 4910, 1, 0, 0, 0, 4910, 4911, 1, 0, 0, 0, 4911, 4912, 3, 782, 391, 0, 4912, 4913, 5, 309, 0, 0, 4913, 4914, 5, 94, 0, 0, 4914, 4915, 3, 820, 410, 0, 4915, 5059, 1, 0, 0, 0, 4916, 4918, 5, 138, 0, 0, 4917, 4919, 5, 259, 0, 0, 4918, 4917, 1, 0, 0, 0, 4918, 4919, 1, 0, 0, 0, 4919, 4920, 1, 0, 0, 0, 4920, 4922, 5, 376, 0, 0, 4921, 4923, 3, 424, 212, 0, 4922, 4921, 1, 0, 0, 0, 4922, 4923, 1, 0, 0, 0, 4923, 4924, 1, 0, 0, 0, 4924, 4925, 3, 780, 390, 0, 4925, 4926, 5, 309, 0, 0, 4926, 4927, 5, 94, 0, 0, 4927, 4928, 3, 778, 389, 0, 4928, 5059, 1, 0, 0, 0, 4929, 4931, 5, 138, 0, 0, 4930, 4932, 5, 63, 0, 0, 4931, 4930, 1, 0, 0, 0, 4931, 4932, 1, 0, 0, 0, 4932, 4933, 1, 0, 0, 0, 4933, 4935, 5, 92, 0, 0, 4934, 4936, 3, 424, 212, 0, 4935, 4934, 1, 0, 0, 0, 4935, 4936, 1, 0, 0, 0, 4936, 4937, 1, 0, 0, 0, 4937, 4938, 3, 626, 313, 0, 4938, 4939, 5, 309, 0, 0, 4939, 4940, 5, 94, 0, 0, 4940, 4941, 3, 774, 387, 0, 4941, 5059, 1, 0, 0, 0, 4942, 4967, 5, 138, 0, 0, 4943, 4945, 5, 63, 0, 0, 4944, 4943, 1, 0, 0, 0, 4944, 4945, 1, 0, 0, 0, 4945, 4946, 1, 0, 0, 0, 4946, 4948, 5, 92, 0, 0, 4947, 4949, 3, 424, 212, 0, 4948, 4947, 1, 0, 0, 0, 4948, 4949, 1, 0, 0, 0, 4949, 4950, 1, 0, 0, 0, 4950, 4951, 3, 626, 313, 0, 4951, 4953, 5, 309, 0, 0, 4952, 4954, 5, 44, 0, 0, 4953, 4952, 1, 0, 0, 0, 4953, 4954, 1, 0, 0, 0, 4954, 4968, 1, 0, 0, 0, 4955, 4957, 5, 259, 0, 0, 4956, 4955, 1, 0, 0, 0, 4956, 4957, 1, 0, 0, 0, 4957, 4958, 1, 0, 0, 0, 4958, 4960, 5, 376, 0, 0, 4959, 4961, 3, 424, 212, 0, 4960, 4959, 1, 0, 0, 0, 4960, 4961, 1, 0, 0, 0, 4961, 4962, 1, 0, 0, 0, 4962, 4963, 3, 780, 390, 0, 4963, 4965, 5, 309, 0, 0, 4964, 4966, 5, 44, 0, 0, 4965, 4964, 1, 0, 0, 0, 4965, 4966, 1, 0, 0, 0, 4966, 4968, 1, 0, 0, 0, 4967, 4944, 1, 0, 0, 0, 4967, 4956, 1, 0, 0, 0, 4968, 4969, 1, 0, 0, 0, 4969, 4970, 3, 802, 401, 0, 4970, 4971, 5, 94, 0, 0, 4971, 4972, 3, 804, 402, 0, 4972, 5059, 1, 0, 0, 0, 4973, 4981, 5, 138, 0, 0, 4974, 4976, 5, 92, 0, 0, 4975, 4977, 3, 424, 212, 0, 4976, 4975, 1, 0, 0, 0, 4976, 4977, 1, 0, 0, 0, 4977, 4978, 1, 0, 0, 0, 4978, 4982, 3, 626, 313, 0, 4979, 4980, 5, 189, 0, 0, 4980, 4982, 3, 318, 159, 0, 4981, 4974, 1, 0, 0, 0, 4981, 4979, 1, 0, 0, 0, 4982, 4983, 1, 0, 0, 0, 4983, 4984, 5, 309, 0, 0, 4984, 4985, 5, 45, 0, 0, 4985, 4986, 3, 820, 410, 0, 4986, 4987, 5, 94, 0, 0, 4987, 4988, 3, 820, 410, 0, 4988, 5059, 1, 0, 0, 0, 4989, 4996, 5, 138, 0, 0, 4990, 4992, 5, 445, 0, 0, 4991, 4993, 3, 424, 212, 0, 4992, 4991, 1, 0, 0, 0, 4992, 4993, 1, 0, 0, 0, 4993, 4997, 1, 0, 0, 0, 4994, 4997, 5, 321, 0, 0, 4995, 4997, 5, 357, 0, 0, 4996, 4990, 1, 0, 0, 0, 4996, 4994, 1, 0, 0, 0, 4996, 4995, 1, 0, 0, 0, 4997, 4998, 1, 0, 0, 0, 4998, 4999, 3, 820, 410, 0, 4999, 5000, 5, 80, 0, 0, 5000, 5001, 3, 782, 391, 0, 5001, 5002, 5, 309, 0, 0, 5002, 5003, 5, 94, 0, 0, 5003, 5004, 3, 820, 410, 0, 5004, 5059, 1, 0, 0, 0, 5005, 5018, 5, 138, 0, 0, 5006, 5007, 5, 63, 0, 0, 5007, 5008, 5, 174, 0, 0, 5008, 5019, 5, 381, 0, 0, 5009, 5011, 5, 295, 0, 0, 5010, 5009, 1, 0, 0, 0, 5010, 5011, 1, 0, 0, 0, 5011, 5012, 1, 0, 0, 0, 5012, 5019, 5, 247, 0, 0, 5013, 5019, 5, 452, 0, 0, 5014, 5019, 5, 331, 0, 0, 5015, 5019, 5, 451, 0, 0, 5016, 5017, 5, 198, 0, 0, 5017, 5019, 5, 357, 0, 0, 5018, 5006, 1, 0, 0, 0, 5018, 5010, 1, 0, 0, 0, 5018, 5013, 1, 0, 0, 0, 5018, 5014, 1, 0, 0, 0, 5018, 5015, 1, 0, 0, 0, 5018, 5016, 1, 0, 0, 0, 5019, 5020, 1, 0, 0, 0, 5020, 5021, 3, 820, 410, 0, 5021, 5022, 5, 309, 0, 0, 5022, 5023, 5, 94, 0, 0, 5023, 5024, 3, 820, 410, 0, 5024, 5059, 1, 0, 0, 0, 5025, 5026, 5, 138, 0, 0, 5026, 5027, 7, 46, 0, 0, 5027, 5028, 3, 816, 408, 0, 5028, 5029, 5, 309, 0, 0, 5029, 5030, 5, 94, 0, 0, 5030, 5031, 3, 816, 408, 0, 5031, 5059, 1, 0, 0, 0, 5032, 5033, 5, 138, 0, 0, 5033, 5034, 3, 178, 89, 0, 5034, 5035, 5, 309, 0, 0, 5035, 5036, 5, 94, 0, 0, 5036, 5037, 3, 770, 385, 0, 5037, 5059, 1, 0, 0, 0, 5038, 5039, 5, 138, 0, 0, 5039, 5040, 5, 355, 0, 0, 5040, 5041, 5, 325, 0, 0, 5041, 5042, 7, 42, 0, 0, 5042, 5043, 3, 318, 159, 0, 5043, 5044, 5, 309, 0, 0, 5044, 5045, 5, 94, 0, 0, 5045, 5046, 3, 820, 410, 0, 5046, 5059, 1, 0, 0, 0, 5047, 5048, 5, 138, 0, 0, 5048, 5049, 5, 360, 0, 0, 5049, 5050, 3, 318, 159, 0, 5050, 5051, 5, 309, 0, 0, 5051, 5052, 5, 143, 0, 0, 5052, 5053, 3, 820, 410, 0, 5053, 5054, 5, 94, 0, 0, 5054, 5056, 3, 820, 410, 0, 5055, 5057, 3, 96, 48, 0, 5056, 5055, 1, 0, 0, 0, 5056, 5057, 1, 0, 0, 0, 5057, 5059, 1, 0, 0, 0, 5058, 4851, 1, 0, 0, 0, 5058, 4862, 1, 0, 0, 0, 5058, 4869, 1, 0, 0, 0, 5058, 4876, 1, 0, 0, 0, 5058, 4883, 1, 0, 0, 0, 5058, 4892, 1, 0, 0, 0, 5058, 4899, 1, 0, 0, 0, 5058, 4906, 1, 0, 0, 0, 5058, 4916, 1, 0, 0, 0, 5058, 4929, 1, 0, 0, 0, 5058, 4942, 1, 0, 0, 0, 5058, 4973, 1, 0, 0, 0, 5058, 4989, 1, 0, 0, 0, 5058, 5005, 1, 0, 0, 0, 5058, 5025, 1, 0, 0, 0, 5058, 5032, 1, 0, 0, 0, 5058, 5038, 1, 0, 0, 0, 5058, 5047, 1, 0, 0, 0, 5059, 435, 1, 0, 0, 0, 5060, 5077, 5, 138, 0, 0, 5061, 5062, 5, 211, 0, 0, 5062, 5078, 3, 384, 192, 0, 5063, 5064, 5, 296, 0, 0, 5064, 5078, 3, 380, 190, 0, 5065, 5066, 5, 442, 0, 0, 5066, 5078, 3, 376, 188, 0, 5067, 5068, 5, 357, 0, 0, 5068, 5069, 3, 820, 410, 0, 5069, 5070, 5, 80, 0, 0, 5070, 5071, 3, 782, 391, 0, 5071, 5078, 1, 0, 0, 0, 5072, 5073, 5, 259, 0, 0, 5073, 5074, 5, 376, 0, 0, 5074, 5078, 3, 780, 390, 0, 5075, 5076, 5, 226, 0, 0, 5076, 5078, 3, 782, 391, 0, 5077, 5061, 1, 0, 0, 0, 5077, 5063, 1, 0, 0, 0, 5077, 5065, 1, 0, 0, 0, 5077, 5067, 1, 0, 0, 0, 5077, 5072, 1, 0, 0, 0, 5077, 5075, 1, 0, 0, 0, 5078, 5080, 1, 0, 0, 0, 5079, 5081, 5, 269, 0, 0, 5080, 5079, 1, 0, 0, 0, 5080, 5081, 1, 0, 0, 0, 5081, 5082, 1, 0, 0, 0, 5082, 5083, 5, 462, 0, 0, 5083, 5084, 5, 80, 0, 0, 5084, 5085, 5, 204, 0, 0, 5085, 5086, 3, 820, 410, 0, 5086, 437, 1, 0, 0, 0, 5087, 5126, 5, 138, 0, 0, 5088, 5089, 5, 136, 0, 0, 5089, 5127, 3, 396, 198, 0, 5090, 5091, 5, 204, 0, 0, 5091, 5127, 3, 820, 410, 0, 5092, 5093, 5, 211, 0, 0, 5093, 5127, 3, 384, 192, 0, 5094, 5095, 5, 278, 0, 0, 5095, 5127, 3, 418, 209, 0, 5096, 5097, 5, 278, 0, 0, 5097, 5098, 7, 32, 0, 0, 5098, 5099, 3, 318, 159, 0, 5099, 5100, 3, 172, 86, 0, 5100, 5127, 1, 0, 0, 0, 5101, 5102, 5, 296, 0, 0, 5102, 5127, 3, 380, 190, 0, 5103, 5104, 5, 442, 0, 0, 5104, 5127, 3, 376, 188, 0, 5105, 5107, 5, 328, 0, 0, 5106, 5108, 3, 424, 212, 0, 5107, 5106, 1, 0, 0, 0, 5107, 5108, 1, 0, 0, 0, 5108, 5109, 1, 0, 0, 0, 5109, 5127, 3, 782, 391, 0, 5110, 5112, 5, 259, 0, 0, 5111, 5110, 1, 0, 0, 0, 5111, 5112, 1, 0, 0, 0, 5112, 5113, 1, 0, 0, 0, 5113, 5115, 5, 376, 0, 0, 5114, 5116, 3, 424, 212, 0, 5115, 5114, 1, 0, 0, 0, 5115, 5116, 1, 0, 0, 0, 5116, 5117, 1, 0, 0, 0, 5117, 5127, 3, 780, 390, 0, 5118, 5120, 5, 63, 0, 0, 5119, 5118, 1, 0, 0, 0, 5119, 5120, 1, 0, 0, 0, 5120, 5121, 1, 0, 0, 0, 5121, 5123, 5, 92, 0, 0, 5122, 5124, 3, 424, 212, 0, 5123, 5122, 1, 0, 0, 0, 5123, 5124, 1, 0, 0, 0, 5124, 5125, 1, 0, 0, 0, 5125, 5127, 3, 626, 313, 0, 5126, 5088, 1, 0, 0, 0, 5126, 5090, 1, 0, 0, 0, 5126, 5092, 1, 0, 0, 0, 5126, 5094, 1, 0, 0, 0, 5126, 5096, 1, 0, 0, 0, 5126, 5101, 1, 0, 0, 0, 5126, 5103, 1, 0, 0, 0, 5126, 5105, 1, 0, 0, 0, 5126, 5111, 1, 0, 0, 0, 5126, 5119, 1, 0, 0, 0, 5127, 5128, 1, 0, 0, 0, 5128, 5129, 5, 333, 0, 0, 5129, 5130, 5, 323, 0, 0, 5130, 5131, 3, 792, 396, 0, 5131, 5149, 1, 0, 0, 0, 5132, 5141, 5, 138, 0, 0, 5133, 5134, 5, 355, 0, 0, 5134, 5135, 5, 325, 0, 0, 5135, 5142, 7, 42, 0, 0, 5136, 5142, 5, 108, 0, 0, 5137, 5142, 5, 168, 0, 0, 5138, 5142, 5, 189, 0, 0, 5139, 5142, 5, 342, 0, 0, 5140, 5142, 5, 360, 0, 0, 5141, 5133, 1, 0, 0, 0, 5141, 5136, 1, 0, 0, 0, 5141, 5137, 1, 0, 0, 0, 5141, 5138, 1, 0, 0, 0, 5141, 5139, 1, 0, 0, 0, 5141, 5140, 1, 0, 0, 0, 5142, 5143, 1, 0, 0, 0, 5143, 5144, 3, 318, 159, 0, 5144, 5145, 5, 333, 0, 0, 5145, 5146, 5, 323, 0, 0, 5146, 5147, 3, 792, 396, 0, 5147, 5149, 1, 0, 0, 0, 5148, 5087, 1, 0, 0, 0, 5148, 5132, 1, 0, 0, 0, 5149, 439, 1, 0, 0, 0, 5150, 5151, 5, 138, 0, 0, 5151, 5152, 5, 278, 0, 0, 5152, 5153, 3, 418, 209, 0, 5153, 5154, 5, 333, 0, 0, 5154, 5155, 3, 442, 221, 0, 5155, 441, 1, 0, 0, 0, 5156, 5157, 5, 2, 0, 0, 5157, 5162, 3, 444, 222, 0, 5158, 5159, 5, 6, 0, 0, 5159, 5161, 3, 444, 222, 0, 5160, 5158, 1, 0, 0, 0, 5161, 5164, 1, 0, 0, 0, 5162, 5160, 1, 0, 0, 0, 5162, 5163, 1, 0, 0, 0, 5163, 5165, 1, 0, 0, 0, 5164, 5162, 1, 0, 0, 0, 5165, 5166, 5, 3, 0, 0, 5166, 443, 1, 0, 0, 0, 5167, 5168, 3, 826, 413, 0, 5168, 5175, 5, 10, 0, 0, 5169, 5176, 5, 407, 0, 0, 5170, 5176, 3, 390, 195, 0, 5171, 5176, 3, 836, 418, 0, 5172, 5176, 3, 728, 364, 0, 5173, 5176, 3, 204, 102, 0, 5174, 5176, 3, 810, 405, 0, 5175, 5169, 1, 0, 0, 0, 5175, 5170, 1, 0, 0, 0, 5175, 5171, 1, 0, 0, 0, 5175, 5172, 1, 0, 0, 0, 5175, 5173, 1, 0, 0, 0, 5175, 5174, 1, 0, 0, 0, 5176, 445, 1, 0, 0, 0, 5177, 5178, 5, 138, 0, 0, 5178, 5179, 5, 360, 0, 0, 5179, 5180, 3, 318, 159, 0, 5180, 5181, 5, 333, 0, 0, 5181, 5182, 3, 442, 221, 0, 5182, 447, 1, 0, 0, 0, 5183, 5184, 5, 138, 0, 0, 5184, 5185, 5, 278, 0, 0, 5185, 5186, 7, 32, 0, 0, 5186, 5187, 3, 318, 159, 0, 5187, 5188, 3, 172, 86, 0, 5188, 5189, 5, 282, 0, 0, 5189, 5190, 5, 94, 0, 0, 5190, 5191, 3, 816, 408, 0, 5191, 5258, 1, 0, 0, 0, 5192, 5219, 5, 138, 0, 0, 5193, 5194, 5, 136, 0, 0, 5194, 5220, 3, 396, 198, 0, 5195, 5196, 5, 175, 0, 0, 5196, 5220, 3, 790, 395, 0, 5197, 5198, 5, 211, 0, 0, 5198, 5220, 3, 384, 192, 0, 5199, 5201, 5, 295, 0, 0, 5200, 5199, 1, 0, 0, 0, 5200, 5201, 1, 0, 0, 0, 5201, 5202, 1, 0, 0, 0, 5202, 5203, 5, 247, 0, 0, 5203, 5220, 3, 820, 410, 0, 5204, 5205, 5, 248, 0, 0, 5205, 5206, 5, 274, 0, 0, 5206, 5220, 3, 204, 102, 0, 5207, 5208, 5, 248, 0, 0, 5208, 5209, 5, 274, 0, 0, 5209, 5220, 3, 204, 102, 0, 5210, 5211, 5, 278, 0, 0, 5211, 5220, 3, 418, 209, 0, 5212, 5213, 5, 296, 0, 0, 5213, 5220, 3, 380, 190, 0, 5214, 5215, 5, 442, 0, 0, 5215, 5220, 3, 376, 188, 0, 5216, 5217, 5, 323, 0, 0, 5217, 5220, 3, 792, 396, 0, 5218, 5220, 3, 178, 89, 0, 5219, 5193, 1, 0, 0, 0, 5219, 5195, 1, 0, 0, 0, 5219, 5197, 1, 0, 0, 0, 5219, 5200, 1, 0, 0, 0, 5219, 5204, 1, 0, 0, 0, 5219, 5207, 1, 0, 0, 0, 5219, 5210, 1, 0, 0, 0, 5219, 5212, 1, 0, 0, 0, 5219, 5214, 1, 0, 0, 0, 5219, 5216, 1, 0, 0, 0, 5219, 5218, 1, 0, 0, 0, 5220, 5221, 1, 0, 0, 0, 5221, 5222, 5, 282, 0, 0, 5222, 5223, 5, 94, 0, 0, 5223, 5224, 3, 816, 408, 0, 5224, 5258, 1, 0, 0, 0, 5225, 5234, 5, 138, 0, 0, 5226, 5227, 5, 355, 0, 0, 5227, 5228, 5, 325, 0, 0, 5228, 5235, 7, 64, 0, 0, 5229, 5235, 5, 108, 0, 0, 5230, 5235, 5, 168, 0, 0, 5231, 5235, 5, 189, 0, 0, 5232, 5235, 5, 360, 0, 0, 5233, 5235, 5, 342, 0, 0, 5234, 5226, 1, 0, 0, 0, 5234, 5229, 1, 0, 0, 0, 5234, 5230, 1, 0, 0, 0, 5234, 5231, 1, 0, 0, 0, 5234, 5232, 1, 0, 0, 0, 5234, 5233, 1, 0, 0, 0, 5235, 5236, 1, 0, 0, 0, 5236, 5237, 3, 318, 159, 0, 5237, 5238, 5, 282, 0, 0, 5238, 5239, 5, 94, 0, 0, 5239, 5240, 3, 816, 408, 0, 5240, 5258, 1, 0, 0, 0, 5241, 5250, 5, 138, 0, 0, 5242, 5251, 5, 331, 0, 0, 5243, 5244, 5, 63, 0, 0, 5244, 5245, 5, 174, 0, 0, 5245, 5251, 5, 381, 0, 0, 5246, 5247, 5, 198, 0, 0, 5247, 5251, 5, 357, 0, 0, 5248, 5251, 5, 452, 0, 0, 5249, 5251, 5, 451, 0, 0, 5250, 5242, 1, 0, 0, 0, 5250, 5243, 1, 0, 0, 0, 5250, 5246, 1, 0, 0, 0, 5250, 5248, 1, 0, 0, 0, 5250, 5249, 1, 0, 0, 0, 5251, 5252, 1, 0, 0, 0, 5252, 5253, 3, 820, 410, 0, 5253, 5254, 5, 282, 0, 0, 5254, 5255, 5, 94, 0, 0, 5255, 5256, 3, 816, 408, 0, 5256, 5258, 1, 0, 0, 0, 5257, 5183, 1, 0, 0, 0, 5257, 5192, 1, 0, 0, 0, 5257, 5225, 1, 0, 0, 0, 5257, 5241, 1, 0, 0, 0, 5258, 449, 1, 0, 0, 0, 5259, 5260, 5, 46, 0, 0, 5260, 5261, 5, 452, 0, 0, 5261, 5268, 3, 820, 410, 0, 5262, 5263, 5, 62, 0, 0, 5263, 5264, 5, 92, 0, 0, 5264, 5269, 3, 630, 315, 0, 5265, 5266, 5, 62, 0, 0, 5266, 5267, 5, 30, 0, 0, 5267, 5269, 5, 350, 0, 0, 5268, 5262, 1, 0, 0, 0, 5268, 5265, 1, 0, 0, 0, 5268, 5269, 1, 0, 0, 0, 5269, 5271, 1, 0, 0, 0, 5270, 5272, 3, 402, 201, 0, 5271, 5270, 1, 0, 0, 0, 5271, 5272, 1, 0, 0, 0, 5272, 451, 1, 0, 0, 0, 5273, 5274, 5, 138, 0, 0, 5274, 5275, 5, 452, 0, 0, 5275, 5293, 3, 820, 410, 0, 5276, 5277, 5, 282, 0, 0, 5277, 5278, 5, 94, 0, 0, 5278, 5294, 3, 816, 408, 0, 5279, 5280, 5, 333, 0, 0, 5280, 5294, 3, 286, 143, 0, 5281, 5282, 5, 309, 0, 0, 5282, 5283, 5, 94, 0, 0, 5283, 5294, 3, 820, 410, 0, 5284, 5285, 7, 35, 0, 0, 5285, 5290, 3, 628, 314, 0, 5286, 5287, 5, 6, 0, 0, 5287, 5289, 3, 628, 314, 0, 5288, 5286, 1, 0, 0, 0, 5289, 5292, 1, 0, 0, 0, 5290, 5288, 1, 0, 0, 0, 5290, 5291, 1, 0, 0, 0, 5291, 5294, 1, 0, 0, 0, 5292, 5290, 1, 0, 0, 0, 5293, 5276, 1, 0, 0, 0, 5293, 5279, 1, 0, 0, 0, 5293, 5281, 1, 0, 0, 0, 5293, 5284, 1, 0, 0, 0, 5294, 453, 1, 0, 0, 0, 5295, 5296, 5, 46, 0, 0, 5296, 5297, 5, 451, 0, 0, 5297, 5298, 3, 820, 410, 0, 5298, 5299, 5, 164, 0, 0, 5299, 5300, 3, 810, 405, 0, 5300, 5301, 5, 452, 0, 0, 5301, 5306, 3, 826, 413, 0, 5302, 5303, 5, 6, 0, 0, 5303, 5305, 3, 826, 413, 0, 5304, 5302, 1, 0, 0, 0, 5305, 5308, 1, 0, 0, 0, 5306, 5304, 1, 0, 0, 0, 5306, 5307, 1, 0, 0, 0, 5307, 5310, 1, 0, 0, 0, 5308, 5306, 1, 0, 0, 0, 5309, 5311, 3, 402, 201, 0, 5310, 5309, 1, 0, 0, 0, 5310, 5311, 1, 0, 0, 0, 5311, 455, 1, 0, 0, 0, 5312, 5313, 5, 138, 0, 0, 5313, 5314, 5, 451, 0, 0, 5314, 5315, 3, 820, 410, 0, 5315, 5316, 5, 333, 0, 0, 5316, 5317, 3, 286, 143, 0, 5317, 5369, 1, 0, 0, 0, 5318, 5319, 5, 138, 0, 0, 5319, 5320, 5, 451, 0, 0, 5320, 5321, 3, 820, 410, 0, 5321, 5322, 5, 164, 0, 0, 5322, 5323, 3, 810, 405, 0, 5323, 5369, 1, 0, 0, 0, 5324, 5325, 5, 138, 0, 0, 5325, 5326, 5, 451, 0, 0, 5326, 5327, 3, 820, 410, 0, 5327, 5328, 5, 305, 0, 0, 5328, 5330, 5, 452, 0, 0, 5329, 5331, 3, 402, 201, 0, 5330, 5329, 1, 0, 0, 0, 5330, 5331, 1, 0, 0, 0, 5331, 5369, 1, 0, 0, 0, 5332, 5333, 5, 138, 0, 0, 5333, 5334, 5, 451, 0, 0, 5334, 5335, 3, 820, 410, 0, 5335, 5336, 7, 35, 0, 0, 5336, 5337, 5, 452, 0, 0, 5337, 5342, 3, 826, 413, 0, 5338, 5339, 5, 6, 0, 0, 5339, 5341, 3, 826, 413, 0, 5340, 5338, 1, 0, 0, 0, 5341, 5344, 1, 0, 0, 0, 5342, 5340, 1, 0, 0, 0, 5342, 5343, 1, 0, 0, 0, 5343, 5346, 1, 0, 0, 0, 5344, 5342, 1, 0, 0, 0, 5345, 5347, 3, 402, 201, 0, 5346, 5345, 1, 0, 0, 0, 5346, 5347, 1, 0, 0, 0, 5347, 5369, 1, 0, 0, 0, 5348, 5349, 5, 138, 0, 0, 5349, 5350, 5, 451, 0, 0, 5350, 5351, 3, 820, 410, 0, 5351, 5352, 7, 65, 0, 0, 5352, 5369, 1, 0, 0, 0, 5353, 5354, 5, 138, 0, 0, 5354, 5355, 5, 451, 0, 0, 5355, 5356, 3, 820, 410, 0, 5356, 5357, 5, 465, 0, 0, 5357, 5358, 5, 2, 0, 0, 5358, 5359, 3, 292, 146, 0, 5359, 5360, 5, 3, 0, 0, 5360, 5369, 1, 0, 0, 0, 5361, 5362, 5, 138, 0, 0, 5362, 5363, 5, 451, 0, 0, 5363, 5364, 3, 820, 410, 0, 5364, 5365, 5, 282, 0, 0, 5365, 5366, 5, 94, 0, 0, 5366, 5367, 3, 816, 408, 0, 5367, 5369, 1, 0, 0, 0, 5368, 5312, 1, 0, 0, 0, 5368, 5318, 1, 0, 0, 0, 5368, 5324, 1, 0, 0, 0, 5368, 5332, 1, 0, 0, 0, 5368, 5348, 1, 0, 0, 0, 5368, 5353, 1, 0, 0, 0, 5368, 5361, 1, 0, 0, 0, 5369, 457, 1, 0, 0, 0, 5370, 5372, 5, 46, 0, 0, 5371, 5373, 3, 368, 184, 0, 5372, 5371, 1, 0, 0, 0, 5372, 5373, 1, 0, 0, 0, 5373, 5374, 1, 0, 0, 0, 5374, 5375, 5, 321, 0, 0, 5375, 5376, 3, 820, 410, 0, 5376, 5377, 5, 36, 0, 0, 5377, 5378, 5, 80, 0, 0, 5378, 5379, 7, 66, 0, 0, 5379, 5380, 5, 94, 0, 0, 5380, 5382, 3, 782, 391, 0, 5381, 5383, 3, 640, 320, 0, 5382, 5381, 1, 0, 0, 0, 5382, 5383, 1, 0, 0, 0, 5383, 5384, 1, 0, 0, 0, 5384, 5386, 5, 57, 0, 0, 5385, 5387, 7, 67, 0, 0, 5386, 5385, 1, 0, 0, 0, 5386, 5387, 1, 0, 0, 0, 5387, 5404, 1, 0, 0, 0, 5388, 5405, 5, 270, 0, 0, 5389, 5405, 3, 460, 230, 0, 5390, 5392, 5, 2, 0, 0, 5391, 5393, 3, 460, 230, 0, 5392, 5391, 1, 0, 0, 0, 5392, 5393, 1, 0, 0, 0, 5393, 5400, 1, 0, 0, 0, 5394, 5396, 5, 7, 0, 0, 5395, 5397, 3, 460, 230, 0, 5396, 5395, 1, 0, 0, 0, 5396, 5397, 1, 0, 0, 0, 5397, 5399, 1, 0, 0, 0, 5398, 5394, 1, 0, 0, 0, 5399, 5402, 1, 0, 0, 0, 5400, 5398, 1, 0, 0, 0, 5400, 5401, 1, 0, 0, 0, 5401, 5403, 1, 0, 0, 0, 5402, 5400, 1, 0, 0, 0, 5403, 5405, 5, 3, 0, 0, 5404, 5388, 1, 0, 0, 0, 5404, 5389, 1, 0, 0, 0, 5404, 5390, 1, 0, 0, 0, 5405, 459, 1, 0, 0, 0, 5406, 5412, 3, 562, 281, 0, 5407, 5412, 3, 540, 270, 0, 5408, 5412, 3, 554, 277, 0, 5409, 5412, 3, 550, 275, 0, 5410, 5412, 3, 462, 231, 0, 5411, 5406, 1, 0, 0, 0, 5411, 5407, 1, 0, 0, 0, 5411, 5408, 1, 0, 0, 0, 5411, 5409, 1, 0, 0, 0, 5411, 5410, 1, 0, 0, 0, 5412, 461, 1, 0, 0, 0, 5413, 5414, 5, 271, 0, 0, 5414, 5416, 3, 820, 410, 0, 5415, 5417, 3, 464, 232, 0, 5416, 5415, 1, 0, 0, 0, 5416, 5417, 1, 0, 0, 0, 5417, 463, 1, 0, 0, 0, 5418, 5419, 5, 6, 0, 0, 5419, 5420, 3, 810, 405, 0, 5420, 465, 1, 0, 0, 0, 5421, 5422, 5, 252, 0, 0, 5422, 5423, 3, 820, 410, 0, 5423, 467, 1, 0, 0, 0, 5424, 5427, 5, 366, 0, 0, 5425, 5428, 3, 820, 410, 0, 5426, 5428, 5, 9, 0, 0, 5427, 5425, 1, 0, 0, 0, 5427, 5426, 1, 0, 0, 0, 5428, 469, 1, 0, 0, 0, 5429, 5431, 5, 146, 0, 0, 5430, 5432, 3, 472, 236, 0, 5431, 5430, 1, 0, 0, 0, 5431, 5432, 1, 0, 0, 0, 5432, 5434, 1, 0, 0, 0, 5433, 5435, 3, 476, 238, 0, 5434, 5433, 1, 0, 0, 0, 5434, 5435, 1, 0, 0, 0, 5435, 5475, 1, 0, 0, 0, 5436, 5437, 5, 340, 0, 0, 5437, 5439, 5, 356, 0, 0, 5438, 5440, 3, 476, 238, 0, 5439, 5438, 1, 0, 0, 0, 5439, 5440, 1, 0, 0, 0, 5440, 5475, 1, 0, 0, 0, 5441, 5442, 5, 322, 0, 0, 5442, 5475, 3, 820, 410, 0, 5443, 5445, 5, 308, 0, 0, 5444, 5446, 5, 322, 0, 0, 5445, 5444, 1, 0, 0, 0, 5445, 5446, 1, 0, 0, 0, 5446, 5447, 1, 0, 0, 0, 5447, 5475, 3, 820, 410, 0, 5448, 5449, 5, 290, 0, 0, 5449, 5450, 5, 356, 0, 0, 5450, 5475, 3, 810, 405, 0, 5451, 5452, 7, 68, 0, 0, 5452, 5453, 5, 291, 0, 0, 5453, 5475, 3, 810, 405, 0, 5454, 5456, 7, 69, 0, 0, 5455, 5457, 3, 472, 236, 0, 5456, 5455, 1, 0, 0, 0, 5456, 5457, 1, 0, 0, 0, 5457, 5463, 1, 0, 0, 0, 5458, 5460, 5, 33, 0, 0, 5459, 5461, 5, 269, 0, 0, 5460, 5459, 1, 0, 0, 0, 5460, 5461, 1, 0, 0, 0, 5461, 5462, 1, 0, 0, 0, 5462, 5464, 5, 153, 0, 0, 5463, 5458, 1, 0, 0, 0, 5463, 5464, 1, 0, 0, 0, 5464, 5475, 1, 0, 0, 0, 5465, 5467, 5, 319, 0, 0, 5466, 5468, 3, 472, 236, 0, 5467, 5466, 1, 0, 0, 0, 5467, 5468, 1, 0, 0, 0, 5468, 5469, 1, 0, 0, 0, 5469, 5471, 5, 94, 0, 0, 5470, 5472, 5, 322, 0, 0, 5471, 5470, 1, 0, 0, 0, 5471, 5472, 1, 0, 0, 0, 5472, 5473, 1, 0, 0, 0, 5473, 5475, 3, 820, 410, 0, 5474, 5429, 1, 0, 0, 0, 5474, 5436, 1, 0, 0, 0, 5474, 5441, 1, 0, 0, 0, 5474, 5443, 1, 0, 0, 0, 5474, 5448, 1, 0, 0, 0, 5474, 5451, 1, 0, 0, 0, 5474, 5454, 1, 0, 0, 0, 5474, 5465, 1, 0, 0, 0, 5475, 471, 1, 0, 0, 0, 5476, 5477, 7, 70, 0, 0, 5477, 473, 1, 0, 0, 0, 5478, 5479, 5, 244, 0, 0, 5479, 5480, 5, 251, 0, 0, 5480, 5488, 3, 50, 25, 0, 5481, 5482, 5, 300, 0, 0, 5482, 5488, 7, 71, 0, 0, 5483, 5485, 5, 77, 0, 0, 5484, 5483, 1, 0, 0, 0, 5484, 5485, 1, 0, 0, 0, 5485, 5486, 1, 0, 0, 0, 5486, 5488, 5, 54, 0, 0, 5487, 5478, 1, 0, 0, 0, 5487, 5481, 1, 0, 0, 0, 5487, 5484, 1, 0, 0, 0, 5488, 475, 1, 0, 0, 0, 5489, 5496, 3, 474, 237, 0, 5490, 5492, 5, 6, 0, 0, 5491, 5490, 1, 0, 0, 0, 5491, 5492, 1, 0, 0, 0, 5492, 5493, 1, 0, 0, 0, 5493, 5495, 3, 474, 237, 0, 5494, 5491, 1, 0, 0, 0, 5495, 5498, 1, 0, 0, 0, 5496, 5494, 1, 0, 0, 0, 5496, 5497, 1, 0, 0, 0, 5497, 477, 1, 0, 0, 0, 5498, 5496, 1, 0, 0, 0, 5499, 5502, 5, 46, 0, 0, 5500, 5501, 5, 82, 0, 0, 5501, 5503, 5, 311, 0, 0, 5502, 5500, 1, 0, 0, 0, 5502, 5503, 1, 0, 0, 0, 5503, 5505, 1, 0, 0, 0, 5504, 5506, 3, 124, 62, 0, 5505, 5504, 1, 0, 0, 0, 5505, 5506, 1, 0, 0, 0, 5506, 5522, 1, 0, 0, 0, 5507, 5508, 5, 376, 0, 0, 5508, 5510, 3, 778, 389, 0, 5509, 5511, 3, 148, 74, 0, 5510, 5509, 1, 0, 0, 0, 5510, 5511, 1, 0, 0, 0, 5511, 5513, 1, 0, 0, 0, 5512, 5514, 3, 102, 51, 0, 5513, 5512, 1, 0, 0, 0, 5513, 5514, 1, 0, 0, 0, 5514, 5523, 1, 0, 0, 0, 5515, 5516, 5, 303, 0, 0, 5516, 5517, 5, 376, 0, 0, 5517, 5518, 3, 778, 389, 0, 5518, 5520, 3, 146, 73, 0, 5519, 5521, 3, 102, 51, 0, 5520, 5519, 1, 0, 0, 0, 5520, 5521, 1, 0, 0, 0, 5521, 5523, 1, 0, 0, 0, 5522, 5507, 1, 0, 0, 0, 5522, 5515, 1, 0, 0, 0, 5523, 5524, 1, 0, 0, 0, 5524, 5525, 5, 36, 0, 0, 5525, 5532, 3, 562, 281, 0, 5526, 5528, 5, 105, 0, 0, 5527, 5529, 7, 72, 0, 0, 5528, 5527, 1, 0, 0, 0, 5528, 5529, 1, 0, 0, 0, 5529, 5530, 1, 0, 0, 0, 5530, 5531, 5, 42, 0, 0, 5531, 5533, 5, 279, 0, 0, 5532, 5526, 1, 0, 0, 0, 5532, 5533, 1, 0, 0, 0, 5533, 479, 1, 0, 0, 0, 5534, 5535, 5, 253, 0, 0, 5535, 5536, 3, 810, 405, 0, 5536, 481, 1, 0, 0, 0, 5537, 5538, 5, 46, 0, 0, 5538, 5539, 5, 175, 0, 0, 5539, 5541, 3, 788, 394, 0, 5540, 5542, 5, 105, 0, 0, 5541, 5540, 1, 0, 0, 0, 5541, 5542, 1, 0, 0, 0, 5542, 5548, 1, 0, 0, 0, 5543, 5545, 3, 484, 242, 0, 5544, 5543, 1, 0, 0, 0, 5545, 5546, 1, 0, 0, 0, 5546, 5544, 1, 0, 0, 0, 5546, 5547, 1, 0, 0, 0, 5547, 5549, 1, 0, 0, 0, 5548, 5544, 1, 0, 0, 0, 5548, 5549, 1, 0, 0, 0, 5549, 483, 1, 0, 0, 0, 5550, 5551, 5, 164, 0, 0, 5551, 5559, 5, 74, 0, 0, 5552, 5559, 5, 194, 0, 0, 5553, 5559, 5, 255, 0, 0, 5554, 5559, 5, 282, 0, 0, 5555, 5559, 5, 351, 0, 0, 5556, 5559, 5, 353, 0, 0, 5557, 5559, 3, 828, 414, 0, 5558, 5550, 1, 0, 0, 0, 5558, 5552, 1, 0, 0, 0, 5558, 5553, 1, 0, 0, 0, 5558, 5554, 1, 0, 0, 0, 5558, 5555, 1, 0, 0, 0, 5558, 5556, 1, 0, 0, 0, 5558, 5557, 1, 0, 0, 0, 5559, 5561, 1, 0, 0, 0, 5560, 5562, 5, 10, 0, 0, 5561, 5560, 1, 0, 0, 0, 5561, 5562, 1, 0, 0, 0, 5562, 5566, 1, 0, 0, 0, 5563, 5567, 3, 814, 407, 0, 5564, 5567, 3, 54, 27, 0, 5565, 5567, 5, 53, 0, 0, 5566, 5563, 1, 0, 0, 0, 5566, 5564, 1, 0, 0, 0, 5566, 5565, 1, 0, 0, 0, 5567, 485, 1, 0, 0, 0, 5568, 5569, 5, 138, 0, 0, 5569, 5570, 5, 175, 0, 0, 5570, 5586, 3, 790, 395, 0, 5571, 5572, 5, 333, 0, 0, 5572, 5573, 5, 351, 0, 0, 5573, 5575, 3, 770, 385, 0, 5574, 5571, 1, 0, 0, 0, 5574, 5575, 1, 0, 0, 0, 5575, 5587, 1, 0, 0, 0, 5576, 5578, 5, 105, 0, 0, 5577, 5576, 1, 0, 0, 0, 5577, 5578, 1, 0, 0, 0, 5578, 5580, 1, 0, 0, 0, 5579, 5581, 3, 484, 242, 0, 5580, 5579, 1, 0, 0, 0, 5581, 5582, 1, 0, 0, 0, 5582, 5580, 1, 0, 0, 0, 5582, 5583, 1, 0, 0, 0, 5583, 5585, 1, 0, 0, 0, 5584, 5577, 1, 0, 0, 0, 5584, 5585, 1, 0, 0, 0, 5585, 5587, 1, 0, 0, 0, 5586, 5574, 1, 0, 0, 0, 5586, 5584, 1, 0, 0, 0, 5587, 487, 1, 0, 0, 0, 5588, 5589, 5, 138, 0, 0, 5589, 5590, 5, 175, 0, 0, 5590, 5592, 3, 790, 395, 0, 5591, 5593, 3, 64, 32, 0, 5592, 5591, 1, 0, 0, 0, 5592, 5593, 1, 0, 0, 0, 5593, 489, 1, 0, 0, 0, 5594, 5595, 5, 138, 0, 0, 5595, 5596, 5, 108, 0, 0, 5596, 5597, 3, 318, 159, 0, 5597, 5598, 5, 305, 0, 0, 5598, 5599, 5, 375, 0, 0, 5599, 491, 1, 0, 0, 0, 5600, 5601, 5, 138, 0, 0, 5601, 5602, 5, 349, 0, 0, 5602, 5603, 7, 16, 0, 0, 5603, 5604, 3, 40, 20, 0, 5604, 493, 1, 0, 0, 0, 5605, 5606, 5, 46, 0, 0, 5606, 5607, 5, 189, 0, 0, 5607, 5609, 3, 318, 159, 0, 5608, 5610, 5, 36, 0, 0, 5609, 5608, 1, 0, 0, 0, 5609, 5610, 1, 0, 0, 0, 5610, 5611, 1, 0, 0, 0, 5611, 5615, 3, 654, 327, 0, 5612, 5614, 3, 136, 68, 0, 5613, 5612, 1, 0, 0, 0, 5614, 5617, 1, 0, 0, 0, 5615, 5613, 1, 0, 0, 0, 5615, 5616, 1, 0, 0, 0, 5616, 495, 1, 0, 0, 0, 5617, 5615, 1, 0, 0, 0, 5618, 5619, 5, 138, 0, 0, 5619, 5620, 5, 189, 0, 0, 5620, 5643, 3, 318, 159, 0, 5621, 5644, 3, 94, 47, 0, 5622, 5623, 7, 15, 0, 0, 5623, 5624, 5, 77, 0, 0, 5624, 5644, 5, 78, 0, 0, 5625, 5628, 5, 133, 0, 0, 5626, 5627, 5, 45, 0, 0, 5627, 5629, 3, 820, 410, 0, 5628, 5626, 1, 0, 0, 0, 5628, 5629, 1, 0, 0, 0, 5629, 5630, 1, 0, 0, 0, 5630, 5644, 3, 144, 72, 0, 5631, 5632, 5, 191, 0, 0, 5632, 5634, 5, 45, 0, 0, 5633, 5635, 3, 424, 212, 0, 5634, 5633, 1, 0, 0, 0, 5634, 5635, 1, 0, 0, 0, 5635, 5636, 1, 0, 0, 0, 5636, 5638, 3, 820, 410, 0, 5637, 5639, 3, 96, 48, 0, 5638, 5637, 1, 0, 0, 0, 5638, 5639, 1, 0, 0, 0, 5639, 5644, 1, 0, 0, 0, 5640, 5641, 5, 372, 0, 0, 5641, 5642, 5, 45, 0, 0, 5642, 5644, 3, 820, 410, 0, 5643, 5621, 1, 0, 0, 0, 5643, 5622, 1, 0, 0, 0, 5643, 5625, 1, 0, 0, 0, 5643, 5631, 1, 0, 0, 0, 5643, 5640, 1, 0, 0, 0, 5644, 497, 1, 0, 0, 0, 5645, 5646, 5, 138, 0, 0, 5646, 5647, 5, 355, 0, 0, 5647, 5648, 5, 325, 0, 0, 5648, 5649, 5, 185, 0, 0, 5649, 5650, 3, 318, 159, 0, 5650, 5651, 3, 286, 143, 0, 5651, 499, 1, 0, 0, 0, 5652, 5653, 5, 138, 0, 0, 5653, 5654, 5, 355, 0, 0, 5654, 5655, 5, 325, 0, 0, 5655, 5656, 5, 163, 0, 0, 5656, 5657, 3, 318, 159, 0, 5657, 5658, 7, 73, 0, 0, 5658, 5659, 5, 257, 0, 0, 5659, 5660, 5, 62, 0, 0, 5660, 5661, 3, 786, 393, 0, 5661, 5662, 5, 105, 0, 0, 5662, 5663, 3, 316, 158, 0, 5663, 5694, 1, 0, 0, 0, 5664, 5665, 5, 138, 0, 0, 5665, 5666, 5, 355, 0, 0, 5666, 5667, 5, 325, 0, 0, 5667, 5668, 5, 163, 0, 0, 5668, 5669, 3, 318, 159, 0, 5669, 5670, 5, 138, 0, 0, 5670, 5673, 5, 257, 0, 0, 5671, 5672, 5, 62, 0, 0, 5672, 5674, 3, 786, 393, 0, 5673, 5671, 1, 0, 0, 0, 5673, 5674, 1, 0, 0, 0, 5674, 5675, 1, 0, 0, 0, 5675, 5676, 5, 311, 0, 0, 5676, 5677, 3, 318, 159, 0, 5677, 5678, 5, 105, 0, 0, 5678, 5679, 3, 318, 159, 0, 5679, 5694, 1, 0, 0, 0, 5680, 5681, 5, 138, 0, 0, 5681, 5682, 5, 355, 0, 0, 5682, 5683, 5, 325, 0, 0, 5683, 5684, 5, 163, 0, 0, 5684, 5685, 3, 318, 159, 0, 5685, 5686, 5, 191, 0, 0, 5686, 5688, 5, 257, 0, 0, 5687, 5689, 3, 424, 212, 0, 5688, 5687, 1, 0, 0, 0, 5688, 5689, 1, 0, 0, 0, 5689, 5690, 1, 0, 0, 0, 5690, 5691, 5, 62, 0, 0, 5691, 5692, 3, 786, 393, 0, 5692, 5694, 1, 0, 0, 0, 5693, 5652, 1, 0, 0, 0, 5693, 5664, 1, 0, 0, 0, 5693, 5680, 1, 0, 0, 0, 5694, 501, 1, 0, 0, 0, 5695, 5697, 5, 46, 0, 0, 5696, 5698, 5, 53, 0, 0, 5697, 5696, 1, 0, 0, 0, 5697, 5698, 1, 0, 0, 0, 5698, 5699, 1, 0, 0, 0, 5699, 5700, 5, 168, 0, 0, 5700, 5701, 3, 318, 159, 0, 5701, 5702, 5, 62, 0, 0, 5702, 5703, 3, 810, 405, 0, 5703, 5704, 5, 94, 0, 0, 5704, 5705, 3, 810, 405, 0, 5705, 5706, 5, 64, 0, 0, 5706, 5707, 3, 318, 159, 0, 5707, 503, 1, 0, 0, 0, 5708, 5710, 5, 158, 0, 0, 5709, 5711, 3, 516, 258, 0, 5710, 5709, 1, 0, 0, 0, 5710, 5711, 1, 0, 0, 0, 5711, 5716, 1, 0, 0, 0, 5712, 5714, 3, 776, 388, 0, 5713, 5715, 3, 172, 86, 0, 5714, 5713, 1, 0, 0, 0, 5714, 5715, 1, 0, 0, 0, 5715, 5717, 1, 0, 0, 0, 5716, 5712, 1, 0, 0, 0, 5716, 5717, 1, 0, 0, 0, 5717, 5734, 1, 0, 0, 0, 5718, 5719, 5, 158, 0, 0, 5719, 5720, 5, 2, 0, 0, 5720, 5725, 3, 516, 258, 0, 5721, 5722, 5, 6, 0, 0, 5722, 5724, 3, 516, 258, 0, 5723, 5721, 1, 0, 0, 0, 5724, 5727, 1, 0, 0, 0, 5725, 5723, 1, 0, 0, 0, 5725, 5726, 1, 0, 0, 0, 5726, 5728, 1, 0, 0, 0, 5727, 5725, 1, 0, 0, 0, 5728, 5729, 5, 3, 0, 0, 5729, 5731, 3, 776, 388, 0, 5730, 5732, 3, 172, 86, 0, 5731, 5730, 1, 0, 0, 0, 5731, 5732, 1, 0, 0, 0, 5732, 5734, 1, 0, 0, 0, 5733, 5708, 1, 0, 0, 0, 5733, 5718, 1, 0, 0, 0, 5734, 505, 1, 0, 0, 0, 5735, 5751, 5, 370, 0, 0, 5736, 5738, 5, 113, 0, 0, 5737, 5736, 1, 0, 0, 0, 5737, 5738, 1, 0, 0, 0, 5738, 5740, 1, 0, 0, 0, 5739, 5741, 5, 112, 0, 0, 5740, 5739, 1, 0, 0, 0, 5740, 5741, 1, 0, 0, 0, 5741, 5743, 1, 0, 0, 0, 5742, 5744, 3, 516, 258, 0, 5743, 5742, 1, 0, 0, 0, 5743, 5744, 1, 0, 0, 0, 5744, 5746, 1, 0, 0, 0, 5745, 5747, 3, 510, 255, 0, 5746, 5745, 1, 0, 0, 0, 5746, 5747, 1, 0, 0, 0, 5747, 5752, 1, 0, 0, 0, 5748, 5750, 3, 526, 263, 0, 5749, 5748, 1, 0, 0, 0, 5749, 5750, 1, 0, 0, 0, 5750, 5752, 1, 0, 0, 0, 5751, 5737, 1, 0, 0, 0, 5751, 5749, 1, 0, 0, 0, 5752, 5754, 1, 0, 0, 0, 5753, 5755, 3, 520, 260, 0, 5754, 5753, 1, 0, 0, 0, 5754, 5755, 1, 0, 0, 0, 5755, 507, 1, 0, 0, 0, 5756, 5771, 3, 510, 255, 0, 5757, 5759, 3, 516, 258, 0, 5758, 5757, 1, 0, 0, 0, 5758, 5759, 1, 0, 0, 0, 5759, 5772, 1, 0, 0, 0, 5760, 5761, 5, 2, 0, 0, 5761, 5766, 3, 514, 257, 0, 5762, 5763, 5, 6, 0, 0, 5763, 5765, 3, 514, 257, 0, 5764, 5762, 1, 0, 0, 0, 5765, 5768, 1, 0, 0, 0, 5766, 5764, 1, 0, 0, 0, 5766, 5767, 1, 0, 0, 0, 5767, 5769, 1, 0, 0, 0, 5768, 5766, 1, 0, 0, 0, 5769, 5770, 5, 3, 0, 0, 5770, 5772, 1, 0, 0, 0, 5771, 5758, 1, 0, 0, 0, 5771, 5760, 1, 0, 0, 0, 5772, 5774, 1, 0, 0, 0, 5773, 5775, 3, 520, 260, 0, 5774, 5773, 1, 0, 0, 0, 5774, 5775, 1, 0, 0, 0, 5775, 509, 1, 0, 0, 0, 5776, 5777, 7, 74, 0, 0, 5777, 511, 1, 0, 0, 0, 5778, 5781, 3, 824, 412, 0, 5779, 5781, 3, 510, 255, 0, 5780, 5778, 1, 0, 0, 0, 5780, 5779, 1, 0, 0, 0, 5781, 5784, 1, 0, 0, 0, 5782, 5785, 3, 54, 27, 0, 5783, 5785, 3, 204, 102, 0, 5784, 5782, 1, 0, 0, 0, 5784, 5783, 1, 0, 0, 0, 5784, 5785, 1, 0, 0, 0, 5785, 513, 1, 0, 0, 0, 5786, 5788, 7, 75, 0, 0, 5787, 5789, 7, 76, 0, 0, 5788, 5787, 1, 0, 0, 0, 5788, 5789, 1, 0, 0, 0, 5789, 5796, 1, 0, 0, 0, 5790, 5793, 5, 548, 0, 0, 5791, 5794, 3, 204, 102, 0, 5792, 5794, 3, 810, 405, 0, 5793, 5791, 1, 0, 0, 0, 5793, 5792, 1, 0, 0, 0, 5794, 5796, 1, 0, 0, 0, 5795, 5786, 1, 0, 0, 0, 5795, 5790, 1, 0, 0, 0, 5796, 515, 1, 0, 0, 0, 5797, 5799, 5, 128, 0, 0, 5798, 5800, 7, 76, 0, 0, 5799, 5798, 1, 0, 0, 0, 5799, 5800, 1, 0, 0, 0, 5800, 517, 1, 0, 0, 0, 5801, 5803, 3, 776, 388, 0, 5802, 5804, 3, 146, 73, 0, 5803, 5802, 1, 0, 0, 0, 5803, 5804, 1, 0, 0, 0, 5804, 519, 1, 0, 0, 0, 5805, 5810, 3, 518, 259, 0, 5806, 5807, 5, 6, 0, 0, 5807, 5809, 3, 518, 259, 0, 5808, 5806, 1, 0, 0, 0, 5809, 5812, 1, 0, 0, 0, 5810, 5808, 1, 0, 0, 0, 5810, 5811, 1, 0, 0, 0, 5811, 521, 1, 0, 0, 0, 5812, 5810, 1, 0, 0, 0, 5813, 5824, 5, 203, 0, 0, 5814, 5825, 3, 526, 263, 0, 5815, 5817, 5, 128, 0, 0, 5816, 5815, 1, 0, 0, 0, 5816, 5817, 1, 0, 0, 0, 5817, 5825, 1, 0, 0, 0, 5818, 5820, 3, 510, 255, 0, 5819, 5821, 3, 516, 258, 0, 5820, 5819, 1, 0, 0, 0, 5820, 5821, 1, 0, 0, 0, 5821, 5823, 1, 0, 0, 0, 5822, 5818, 1, 0, 0, 0, 5822, 5823, 1, 0, 0, 0, 5823, 5825, 1, 0, 0, 0, 5824, 5814, 1, 0, 0, 0, 5824, 5816, 1, 0, 0, 0, 5824, 5822, 1, 0, 0, 0, 5825, 5826, 1, 0, 0, 0, 5826, 5827, 3, 524, 262, 0, 5827, 523, 1, 0, 0, 0, 5828, 5838, 3, 562, 281, 0, 5829, 5838, 3, 540, 270, 0, 5830, 5838, 3, 554, 277, 0, 5831, 5838, 3, 550, 275, 0, 5832, 5838, 3, 560, 280, 0, 5833, 5838, 3, 188, 94, 0, 5834, 5838, 3, 194, 97, 0, 5835, 5838, 3, 196, 98, 0, 5836, 5838, 3, 534, 267, 0, 5837, 5828, 1, 0, 0, 0, 5837, 5829, 1, 0, 0, 0, 5837, 5830, 1, 0, 0, 0, 5837, 5831, 1, 0, 0, 0, 5837, 5832, 1, 0, 0, 0, 5837, 5833, 1, 0, 0, 0, 5837, 5834, 1, 0, 0, 0, 5837, 5835, 1, 0, 0, 0, 5837, 5836, 1, 0, 0, 0, 5838, 525, 1, 0, 0, 0, 5839, 5840, 5, 2, 0, 0, 5840, 5845, 3, 512, 256, 0, 5841, 5842, 5, 6, 0, 0, 5842, 5844, 3, 512, 256, 0, 5843, 5841, 1, 0, 0, 0, 5844, 5847, 1, 0, 0, 0, 5845, 5843, 1, 0, 0, 0, 5845, 5846, 1, 0, 0, 0, 5846, 5848, 1, 0, 0, 0, 5847, 5845, 1, 0, 0, 0, 5848, 5849, 5, 3, 0, 0, 5849, 527, 1, 0, 0, 0, 5850, 5851, 5, 290, 0, 0, 5851, 5853, 3, 820, 410, 0, 5852, 5854, 3, 530, 265, 0, 5853, 5852, 1, 0, 0, 0, 5853, 5854, 1, 0, 0, 0, 5854, 5855, 1, 0, 0, 0, 5855, 5856, 5, 36, 0, 0, 5856, 5857, 3, 532, 266, 0, 5857, 529, 1, 0, 0, 0, 5858, 5859, 5, 2, 0, 0, 5859, 5864, 3, 654, 327, 0, 5860, 5861, 5, 6, 0, 0, 5861, 5863, 3, 654, 327, 0, 5862, 5860, 1, 0, 0, 0, 5863, 5866, 1, 0, 0, 0, 5864, 5862, 1, 0, 0, 0, 5864, 5865, 1, 0, 0, 0, 5865, 5867, 1, 0, 0, 0, 5866, 5864, 1, 0, 0, 0, 5867, 5868, 5, 3, 0, 0, 5868, 531, 1, 0, 0, 0, 5869, 5875, 3, 562, 281, 0, 5870, 5875, 3, 540, 270, 0, 5871, 5875, 3, 554, 277, 0, 5872, 5875, 3, 550, 275, 0, 5873, 5875, 3, 902, 451, 0, 5874, 5869, 1, 0, 0, 0, 5874, 5870, 1, 0, 0, 0, 5874, 5871, 1, 0, 0, 0, 5874, 5872, 1, 0, 0, 0, 5874, 5873, 1, 0, 0, 0, 5875, 533, 1, 0, 0, 0, 5876, 5877, 5, 202, 0, 0, 5877, 5879, 3, 820, 410, 0, 5878, 5880, 3, 536, 268, 0, 5879, 5878, 1, 0, 0, 0, 5879, 5880, 1, 0, 0, 0, 5880, 5900, 1, 0, 0, 0, 5881, 5883, 5, 46, 0, 0, 5882, 5884, 3, 124, 62, 0, 5883, 5882, 1, 0, 0, 0, 5883, 5884, 1, 0, 0, 0, 5884, 5885, 1, 0, 0, 0, 5885, 5887, 5, 92, 0, 0, 5886, 5888, 3, 296, 148, 0, 5887, 5886, 1, 0, 0, 0, 5887, 5888, 1, 0, 0, 0, 5888, 5889, 1, 0, 0, 0, 5889, 5890, 3, 190, 95, 0, 5890, 5891, 5, 36, 0, 0, 5891, 5892, 5, 202, 0, 0, 5892, 5894, 3, 820, 410, 0, 5893, 5895, 3, 536, 268, 0, 5894, 5893, 1, 0, 0, 0, 5894, 5895, 1, 0, 0, 0, 5895, 5897, 1, 0, 0, 0, 5896, 5898, 3, 192, 96, 0, 5897, 5896, 1, 0, 0, 0, 5897, 5898, 1, 0, 0, 0, 5898, 5900, 1, 0, 0, 0, 5899, 5876, 1, 0, 0, 0, 5899, 5881, 1, 0, 0, 0, 5900, 535, 1, 0, 0, 0, 5901, 5902, 5, 2, 0, 0, 5902, 5903, 3, 732, 366, 0, 5903, 5904, 5, 3, 0, 0, 5904, 537, 1, 0, 0, 0, 5905, 5907, 5, 177, 0, 0, 5906, 5908, 5, 290, 0, 0, 5907, 5906, 1, 0, 0, 0, 5907, 5908, 1, 0, 0, 0, 5908, 5911, 1, 0, 0, 0, 5909, 5912, 3, 820, 410, 0, 5910, 5912, 5, 30, 0, 0, 5911, 5909, 1, 0, 0, 0, 5911, 5910, 1, 0, 0, 0, 5912, 539, 1, 0, 0, 0, 5913, 5915, 3, 574, 287, 0, 5914, 5913, 1, 0, 0, 0, 5914, 5915, 1, 0, 0, 0, 5915, 5916, 1, 0, 0, 0, 5916, 5917, 5, 241, 0, 0, 5917, 5918, 5, 71, 0, 0, 5918, 5921, 3, 776, 388, 0, 5919, 5920, 5, 36, 0, 0, 5920, 5922, 3, 820, 410, 0, 5921, 5919, 1, 0, 0, 0, 5921, 5922, 1, 0, 0, 0, 5922, 5923, 1, 0, 0, 0, 5923, 5945, 3, 542, 271, 0, 5924, 5925, 5, 80, 0, 0, 5925, 5933, 5, 464, 0, 0, 5926, 5928, 3, 362, 181, 0, 5927, 5929, 3, 640, 320, 0, 5928, 5927, 1, 0, 0, 0, 5928, 5929, 1, 0, 0, 0, 5929, 5934, 1, 0, 0, 0, 5930, 5931, 5, 80, 0, 0, 5931, 5932, 5, 45, 0, 0, 5932, 5934, 3, 820, 410, 0, 5933, 5926, 1, 0, 0, 0, 5933, 5930, 1, 0, 0, 0, 5933, 5934, 1, 0, 0, 0, 5934, 5935, 1, 0, 0, 0, 5935, 5943, 5, 57, 0, 0, 5936, 5937, 5, 369, 0, 0, 5937, 5938, 5, 333, 0, 0, 5938, 5940, 3, 556, 278, 0, 5939, 5941, 3, 640, 320, 0, 5940, 5939, 1, 0, 0, 0, 5940, 5941, 1, 0, 0, 0, 5941, 5944, 1, 0, 0, 0, 5942, 5944, 5, 270, 0, 0, 5943, 5936, 1, 0, 0, 0, 5943, 5942, 1, 0, 0, 0, 5944, 5946, 1, 0, 0, 0, 5945, 5924, 1, 0, 0, 0, 5945, 5946, 1, 0, 0, 0, 5946, 5948, 1, 0, 0, 0, 5947, 5949, 3, 548, 274, 0, 5948, 5947, 1, 0, 0, 0, 5948, 5949, 1, 0, 0, 0, 5949, 541, 1, 0, 0, 0, 5950, 5951, 5, 2, 0, 0, 5951, 5952, 3, 544, 272, 0, 5952, 5953, 5, 3, 0, 0, 5953, 5955, 1, 0, 0, 0, 5954, 5950, 1, 0, 0, 0, 5954, 5955, 1, 0, 0, 0, 5955, 5959, 1, 0, 0, 0, 5956, 5957, 5, 463, 0, 0, 5957, 5958, 7, 77, 0, 0, 5958, 5960, 5, 450, 0, 0, 5959, 5956, 1, 0, 0, 0, 5959, 5960, 1, 0, 0, 0, 5960, 5963, 1, 0, 0, 0, 5961, 5964, 3, 912, 456, 0, 5962, 5964, 3, 562, 281, 0, 5963, 5961, 1, 0, 0, 0, 5963, 5962, 1, 0, 0, 0, 5964, 543, 1, 0, 0, 0, 5965, 5970, 3, 546, 273, 0, 5966, 5967, 5, 6, 0, 0, 5967, 5969, 3, 546, 273, 0, 5968, 5966, 1, 0, 0, 0, 5969, 5972, 1, 0, 0, 0, 5970, 5968, 1, 0, 0, 0, 5970, 5971, 1, 0, 0, 0, 5971, 545, 1, 0, 0, 0, 5972, 5970, 1, 0, 0, 0, 5973, 5974, 3, 802, 401, 0, 5974, 5975, 3, 756, 378, 0, 5975, 547, 1, 0, 0, 0, 5976, 5977, 5, 87, 0, 0, 5977, 5978, 3, 758, 379, 0, 5978, 549, 1, 0, 0, 0, 5979, 5981, 3, 574, 287, 0, 5980, 5979, 1, 0, 0, 0, 5980, 5981, 1, 0, 0, 0, 5981, 5982, 1, 0, 0, 0, 5982, 5983, 5, 182, 0, 0, 5983, 5984, 5, 64, 0, 0, 5984, 5987, 3, 632, 316, 0, 5985, 5986, 5, 100, 0, 0, 5986, 5988, 3, 614, 307, 0, 5987, 5985, 1, 0, 0, 0, 5987, 5988, 1, 0, 0, 0, 5988, 5990, 1, 0, 0, 0, 5989, 5991, 3, 642, 321, 0, 5990, 5989, 1, 0, 0, 0, 5990, 5991, 1, 0, 0, 0, 5991, 5993, 1, 0, 0, 0, 5992, 5994, 3, 548, 274, 0, 5993, 5992, 1, 0, 0, 0, 5993, 5994, 1, 0, 0, 0, 5994, 551, 1, 0, 0, 0, 5995, 5997, 5, 256, 0, 0, 5996, 5998, 5, 92, 0, 0, 5997, 5996, 1, 0, 0, 0, 5997, 5998, 1, 0, 0, 0, 5998, 5999, 1, 0, 0, 0, 5999, 6014, 3, 630, 315, 0, 6000, 6011, 5, 68, 0, 0, 6001, 6002, 7, 78, 0, 0, 6002, 6012, 7, 79, 0, 0, 6003, 6008, 5, 334, 0, 0, 6004, 6005, 5, 369, 0, 0, 6005, 6009, 5, 201, 0, 0, 6006, 6007, 5, 414, 0, 0, 6007, 6009, 5, 201, 0, 0, 6008, 6004, 1, 0, 0, 0, 6008, 6006, 1, 0, 0, 0, 6008, 6009, 1, 0, 0, 0, 6009, 6012, 1, 0, 0, 0, 6010, 6012, 5, 201, 0, 0, 6011, 6001, 1, 0, 0, 0, 6011, 6003, 1, 0, 0, 0, 6011, 6010, 1, 0, 0, 0, 6012, 6013, 1, 0, 0, 0, 6013, 6015, 5, 263, 0, 0, 6014, 6000, 1, 0, 0, 0, 6014, 6015, 1, 0, 0, 0, 6015, 6017, 1, 0, 0, 0, 6016, 6018, 5, 272, 0, 0, 6017, 6016, 1, 0, 0, 0, 6017, 6018, 1, 0, 0, 0, 6018, 553, 1, 0, 0, 0, 6019, 6021, 3, 574, 287, 0, 6020, 6019, 1, 0, 0, 0, 6020, 6021, 1, 0, 0, 0, 6021, 6022, 1, 0, 0, 0, 6022, 6023, 5, 369, 0, 0, 6023, 6024, 3, 632, 316, 0, 6024, 6025, 5, 333, 0, 0, 6025, 6027, 3, 556, 278, 0, 6026, 6028, 3, 612, 306, 0, 6027, 6026, 1, 0, 0, 0, 6027, 6028, 1, 0, 0, 0, 6028, 6030, 1, 0, 0, 0, 6029, 6031, 3, 642, 321, 0, 6030, 6029, 1, 0, 0, 0, 6030, 6031, 1, 0, 0, 0, 6031, 6033, 1, 0, 0, 0, 6032, 6034, 3, 548, 274, 0, 6033, 6032, 1, 0, 0, 0, 6033, 6034, 1, 0, 0, 0, 6034, 555, 1, 0, 0, 0, 6035, 6040, 3, 558, 279, 0, 6036, 6037, 5, 6, 0, 0, 6037, 6039, 3, 558, 279, 0, 6038, 6036, 1, 0, 0, 0, 6039, 6042, 1, 0, 0, 0, 6040, 6038, 1, 0, 0, 0, 6040, 6041, 1, 0, 0, 0, 6041, 557, 1, 0, 0, 0, 6042, 6040, 1, 0, 0, 0, 6043, 6044, 3, 546, 273, 0, 6044, 6045, 5, 10, 0, 0, 6045, 6046, 3, 676, 338, 0, 6046, 6062, 1, 0, 0, 0, 6047, 6048, 5, 2, 0, 0, 6048, 6049, 3, 544, 272, 0, 6049, 6050, 5, 3, 0, 0, 6050, 6059, 5, 10, 0, 0, 6051, 6053, 5, 414, 0, 0, 6052, 6051, 1, 0, 0, 0, 6052, 6053, 1, 0, 0, 0, 6053, 6054, 1, 0, 0, 0, 6054, 6060, 3, 676, 338, 0, 6055, 6056, 5, 2, 0, 0, 6056, 6057, 3, 568, 284, 0, 6057, 6058, 5, 3, 0, 0, 6058, 6060, 1, 0, 0, 0, 6059, 6052, 1, 0, 0, 0, 6059, 6055, 1, 0, 0, 0, 6060, 6062, 1, 0, 0, 0, 6061, 6043, 1, 0, 0, 0, 6061, 6047, 1, 0, 0, 0, 6062, 559, 1, 0, 0, 0, 6063, 6064, 5, 178, 0, 0, 6064, 6073, 3, 820, 410, 0, 6065, 6067, 5, 269, 0, 0, 6066, 6065, 1, 0, 0, 0, 6066, 6067, 1, 0, 0, 0, 6067, 6068, 1, 0, 0, 0, 6068, 6072, 5, 324, 0, 0, 6069, 6072, 5, 107, 0, 0, 6070, 6072, 5, 240, 0, 0, 6071, 6066, 1, 0, 0, 0, 6071, 6069, 1, 0, 0, 0, 6071, 6070, 1, 0, 0, 0, 6072, 6075, 1, 0, 0, 0, 6073, 6071, 1, 0, 0, 0, 6073, 6074, 1, 0, 0, 0, 6074, 6076, 1, 0, 0, 0, 6075, 6073, 1, 0, 0, 0, 6076, 6079, 5, 172, 0, 0, 6077, 6078, 7, 27, 0, 0, 6078, 6080, 5, 217, 0, 0, 6079, 6077, 1, 0, 0, 0, 6079, 6080, 1, 0, 0, 0, 6080, 6081, 1, 0, 0, 0, 6081, 6082, 5, 62, 0, 0, 6082, 6083, 3, 562, 281, 0, 6083, 561, 1, 0, 0, 0, 6084, 6087, 3, 566, 283, 0, 6085, 6087, 3, 564, 282, 0, 6086, 6084, 1, 0, 0, 0, 6086, 6085, 1, 0, 0, 0, 6087, 563, 1, 0, 0, 0, 6088, 6091, 5, 2, 0, 0, 6089, 6092, 3, 566, 283, 0, 6090, 6092, 3, 564, 282, 0, 6091, 6089, 1, 0, 0, 0, 6091, 6090, 1, 0, 0, 0, 6092, 6093, 1, 0, 0, 0, 6093, 6094, 5, 3, 0, 0, 6094, 565, 1, 0, 0, 0, 6095, 6097, 3, 574, 287, 0, 6096, 6095, 1, 0, 0, 0, 6096, 6097, 1, 0, 0, 0, 6097, 6098, 1, 0, 0, 0, 6098, 6100, 3, 568, 284, 0, 6099, 6101, 3, 588, 294, 0, 6100, 6099, 1, 0, 0, 0, 6100, 6101, 1, 0, 0, 0, 6101, 6110, 1, 0, 0, 0, 6102, 6104, 3, 608, 304, 0, 6103, 6105, 3, 592, 296, 0, 6104, 6103, 1, 0, 0, 0, 6104, 6105, 1, 0, 0, 0, 6105, 6111, 1, 0, 0, 0, 6106, 6108, 3, 592, 296, 0, 6107, 6109, 3, 608, 304, 0, 6108, 6107, 1, 0, 0, 0, 6108, 6109, 1, 0, 0, 0, 6109, 6111, 1, 0, 0, 0, 6110, 6102, 1, 0, 0, 0, 6110, 6106, 1, 0, 0, 0, 6110, 6111, 1, 0, 0, 0, 6111, 567, 1, 0, 0, 0, 6112, 6115, 3, 570, 285, 0, 6113, 6115, 3, 564, 282, 0, 6114, 6112, 1, 0, 0, 0, 6114, 6113, 1, 0, 0, 0, 6115, 569, 1, 0, 0, 0, 6116, 6126, 5, 88, 0, 0, 6117, 6119, 5, 30, 0, 0, 6118, 6117, 1, 0, 0, 0, 6118, 6119, 1, 0, 0, 0, 6119, 6121, 1, 0, 0, 0, 6120, 6122, 3, 582, 291, 0, 6121, 6120, 1, 0, 0, 0, 6121, 6122, 1, 0, 0, 0, 6122, 6127, 1, 0, 0, 0, 6123, 6125, 3, 586, 293, 0, 6124, 6123, 1, 0, 0, 0, 6124, 6125, 1, 0, 0, 0, 6125, 6127, 1, 0, 0, 0, 6126, 6118, 1, 0, 0, 0, 6126, 6124, 1, 0, 0, 0, 6127, 6128, 1, 0, 0, 0, 6128, 6139, 3, 932, 466, 0, 6129, 6139, 3, 610, 305, 0, 6130, 6131, 5, 92, 0, 0, 6131, 6139, 3, 626, 313, 0, 6132, 6133, 3, 564, 282, 0, 6133, 6136, 3, 572, 286, 0, 6134, 6137, 3, 570, 285, 0, 6135, 6137, 3, 564, 282, 0, 6136, 6134, 1, 0, 0, 0, 6136, 6135, 1, 0, 0, 0, 6137, 6139, 1, 0, 0, 0, 6138, 6116, 1, 0, 0, 0, 6138, 6129, 1, 0, 0, 0, 6138, 6130, 1, 0, 0, 0, 6138, 6132, 1, 0, 0, 0, 6139, 6147, 1, 0, 0, 0, 6140, 6143, 3, 572, 286, 0, 6141, 6144, 3, 570, 285, 0, 6142, 6144, 3, 564, 282, 0, 6143, 6141, 1, 0, 0, 0, 6143, 6142, 1, 0, 0, 0, 6144, 6146, 1, 0, 0, 0, 6145, 6140, 1, 0, 0, 0, 6146, 6149, 1, 0, 0, 0, 6147, 6145, 1, 0, 0, 0, 6147, 6148, 1, 0, 0, 0, 6148, 571, 1, 0, 0, 0, 6149, 6147, 1, 0, 0, 0, 6150, 6152, 7, 80, 0, 0, 6151, 6153, 7, 81, 0, 0, 6152, 6151, 1, 0, 0, 0, 6152, 6153, 1, 0, 0, 0, 6153, 573, 1, 0, 0, 0, 6154, 6156, 5, 105, 0, 0, 6155, 6157, 5, 303, 0, 0, 6156, 6155, 1, 0, 0, 0, 6156, 6157, 1, 0, 0, 0, 6157, 6158, 1, 0, 0, 0, 6158, 6163, 3, 576, 288, 0, 6159, 6160, 5, 6, 0, 0, 6160, 6162, 3, 576, 288, 0, 6161, 6159, 1, 0, 0, 0, 6162, 6165, 1, 0, 0, 0, 6163, 6161, 1, 0, 0, 0, 6163, 6164, 1, 0, 0, 0, 6164, 575, 1, 0, 0, 0, 6165, 6163, 1, 0, 0, 0, 6166, 6168, 3, 820, 410, 0, 6167, 6169, 3, 146, 73, 0, 6168, 6167, 1, 0, 0, 0, 6168, 6169, 1, 0, 0, 0, 6169, 6170, 1, 0, 0, 0, 6170, 6175, 5, 36, 0, 0, 6171, 6173, 5, 77, 0, 0, 6172, 6171, 1, 0, 0, 0, 6172, 6173, 1, 0, 0, 0, 6173, 6174, 1, 0, 0, 0, 6174, 6176, 5, 259, 0, 0, 6175, 6172, 1, 0, 0, 0, 6175, 6176, 1, 0, 0, 0, 6176, 6177, 1, 0, 0, 0, 6177, 6178, 5, 2, 0, 0, 6178, 6179, 3, 532, 266, 0, 6179, 6181, 5, 3, 0, 0, 6180, 6182, 3, 578, 289, 0, 6181, 6180, 1, 0, 0, 0, 6181, 6182, 1, 0, 0, 0, 6182, 6184, 1, 0, 0, 0, 6183, 6185, 3, 580, 290, 0, 6184, 6183, 1, 0, 0, 0, 6184, 6185, 1, 0, 0, 0, 6185, 577, 1, 0, 0, 0, 6186, 6187, 5, 325, 0, 0, 6187, 6188, 7, 82, 0, 0, 6188, 6189, 5, 207, 0, 0, 6189, 6190, 5, 147, 0, 0, 6190, 6191, 3, 150, 75, 0, 6191, 6192, 5, 333, 0, 0, 6192, 6193, 3, 802, 401, 0, 6193, 579, 1, 0, 0, 0, 6194, 6195, 5, 173, 0, 0, 6195, 6196, 3, 150, 75, 0, 6196, 6197, 5, 333, 0, 0, 6197, 6203, 3, 802, 401, 0, 6198, 6199, 5, 94, 0, 0, 6199, 6200, 3, 820, 410, 0, 6200, 6201, 5, 53, 0, 0, 6201, 6202, 3, 820, 410, 0, 6202, 6204, 1, 0, 0, 0, 6203, 6198, 1, 0, 0, 0, 6203, 6204, 1, 0, 0, 0, 6204, 6205, 1, 0, 0, 0, 6205, 6206, 5, 100, 0, 0, 6206, 6207, 3, 802, 401, 0, 6207, 581, 1, 0, 0, 0, 6208, 6214, 5, 71, 0, 0, 6209, 6211, 5, 346, 0, 0, 6210, 6209, 1, 0, 0, 0, 6210, 6211, 1, 0, 0, 0, 6211, 6212, 1, 0, 0, 0, 6212, 6215, 3, 584, 292, 0, 6213, 6215, 3, 732, 366, 0, 6214, 6210, 1, 0, 0, 0, 6214, 6213, 1, 0, 0, 0, 6215, 583, 1, 0, 0, 0, 6216, 6218, 7, 21, 0, 0, 6217, 6216, 1, 0, 0, 0, 6217, 6218, 1, 0, 0, 0, 6218, 6219, 1, 0, 0, 0, 6219, 6221, 7, 22, 0, 0, 6220, 6222, 5, 92, 0, 0, 6221, 6220, 1, 0, 0, 0, 6221, 6222, 1, 0, 0, 0, 6222, 6223, 1, 0, 0, 0, 6223, 6232, 3, 774, 387, 0, 6224, 6226, 5, 367, 0, 0, 6225, 6224, 1, 0, 0, 0, 6225, 6226, 1, 0, 0, 0, 6226, 6228, 1, 0, 0, 0, 6227, 6229, 5, 92, 0, 0, 6228, 6227, 1, 0, 0, 0, 6228, 6229, 1, 0, 0, 0, 6229, 6230, 1, 0, 0, 0, 6230, 6232, 3, 774, 387, 0, 6231, 6217, 1, 0, 0, 0, 6231, 6225, 1, 0, 0, 0, 6232, 585, 1, 0, 0, 0, 6233, 6236, 5, 56, 0, 0, 6234, 6235, 5, 80, 0, 0, 6235, 6237, 3, 536, 268, 0, 6236, 6234, 1, 0, 0, 0, 6236, 6237, 1, 0, 0, 0, 6237, 587, 1, 0, 0, 0, 6238, 6239, 5, 83, 0, 0, 6239, 6240, 5, 147, 0, 0, 6240, 6245, 3, 590, 295, 0, 6241, 6242, 5, 6, 0, 0, 6242, 6244, 3, 590, 295, 0, 6243, 6241, 1, 0, 0, 0, 6244, 6247, 1, 0, 0, 0, 6245, 6243, 1, 0, 0, 0, 6245, 6246, 1, 0, 0, 0, 6246, 589, 1, 0, 0, 0, 6247, 6245, 1, 0, 0, 0, 6248, 6252, 3, 736, 368, 0, 6249, 6250, 5, 100, 0, 0, 6250, 6253, 3, 728, 364, 0, 6251, 6253, 7, 56, 0, 0, 6252, 6249, 1, 0, 0, 0, 6252, 6251, 1, 0, 0, 0, 6252, 6253, 1, 0, 0, 0, 6253, 6256, 1, 0, 0, 0, 6254, 6255, 5, 273, 0, 0, 6255, 6257, 7, 57, 0, 0, 6256, 6254, 1, 0, 0, 0, 6256, 6257, 1, 0, 0, 0, 6257, 591, 1, 0, 0, 0, 6258, 6260, 3, 598, 299, 0, 6259, 6261, 3, 596, 298, 0, 6260, 6259, 1, 0, 0, 0, 6260, 6261, 1, 0, 0, 0, 6261, 6270, 1, 0, 0, 0, 6262, 6265, 3, 594, 297, 0, 6263, 6265, 3, 596, 298, 0, 6264, 6262, 1, 0, 0, 0, 6264, 6263, 1, 0, 0, 0, 6265, 6267, 1, 0, 0, 0, 6266, 6268, 3, 598, 299, 0, 6267, 6266, 1, 0, 0, 0, 6267, 6268, 1, 0, 0, 0, 6268, 6270, 1, 0, 0, 0, 6269, 6258, 1, 0, 0, 0, 6269, 6264, 1, 0, 0, 0, 6270, 593, 1, 0, 0, 0, 6271, 6274, 5, 74, 0, 0, 6272, 6275, 3, 676, 338, 0, 6273, 6275, 5, 30, 0, 0, 6274, 6272, 1, 0, 0, 0, 6274, 6273, 1, 0, 0, 0, 6275, 6278, 1, 0, 0, 0, 6276, 6277, 5, 6, 0, 0, 6277, 6279, 3, 676, 338, 0, 6278, 6276, 1, 0, 0, 0, 6278, 6279, 1, 0, 0, 0, 6279, 595, 1, 0, 0, 0, 6280, 6281, 5, 61, 0, 0, 6281, 6283, 7, 83, 0, 0, 6282, 6284, 3, 600, 300, 0, 6283, 6282, 1, 0, 0, 0, 6283, 6284, 1, 0, 0, 0, 6284, 6285, 1, 0, 0, 0, 6285, 6289, 7, 84, 0, 0, 6286, 6290, 5, 81, 0, 0, 6287, 6288, 5, 105, 0, 0, 6288, 6290, 5, 467, 0, 0, 6289, 6286, 1, 0, 0, 0, 6289, 6287, 1, 0, 0, 0, 6290, 597, 1, 0, 0, 0, 6291, 6296, 5, 79, 0, 0, 6292, 6293, 3, 600, 300, 0, 6293, 6294, 7, 84, 0, 0, 6294, 6297, 1, 0, 0, 0, 6295, 6297, 3, 676, 338, 0, 6296, 6292, 1, 0, 0, 0, 6296, 6295, 1, 0, 0, 0, 6297, 599, 1, 0, 0, 0, 6298, 6299, 7, 30, 0, 0, 6299, 6302, 7, 85, 0, 0, 6300, 6302, 3, 684, 342, 0, 6301, 6298, 1, 0, 0, 0, 6301, 6300, 1, 0, 0, 0, 6302, 601, 1, 0, 0, 0, 6303, 6304, 5, 66, 0, 0, 6304, 6306, 5, 147, 0, 0, 6305, 6307, 7, 81, 0, 0, 6306, 6305, 1, 0, 0, 0, 6306, 6307, 1, 0, 0, 0, 6307, 6308, 1, 0, 0, 0, 6308, 6309, 3, 604, 302, 0, 6309, 603, 1, 0, 0, 0, 6310, 6315, 3, 606, 303, 0, 6311, 6312, 5, 6, 0, 0, 6312, 6314, 3, 606, 303, 0, 6313, 6311, 1, 0, 0, 0, 6314, 6317, 1, 0, 0, 0, 6315, 6313, 1, 0, 0, 0, 6315, 6316, 1, 0, 0, 0, 6316, 605, 1, 0, 0, 0, 6317, 6315, 1, 0, 0, 0, 6318, 6342, 3, 736, 368, 0, 6319, 6320, 5, 2, 0, 0, 6320, 6342, 5, 3, 0, 0, 6321, 6323, 7, 86, 0, 0, 6322, 6321, 1, 0, 0, 0, 6322, 6323, 1, 0, 0, 0, 6323, 6324, 1, 0, 0, 0, 6324, 6325, 5, 2, 0, 0, 6325, 6330, 3, 736, 368, 0, 6326, 6327, 5, 6, 0, 0, 6327, 6329, 3, 736, 368, 0, 6328, 6326, 1, 0, 0, 0, 6329, 6332, 1, 0, 0, 0, 6330, 6328, 1, 0, 0, 0, 6330, 6331, 1, 0, 0, 0, 6331, 6333, 1, 0, 0, 0, 6332, 6330, 1, 0, 0, 0, 6333, 6334, 5, 3, 0, 0, 6334, 6342, 1, 0, 0, 0, 6335, 6336, 5, 470, 0, 0, 6336, 6337, 5, 471, 0, 0, 6337, 6338, 5, 2, 0, 0, 6338, 6339, 3, 604, 302, 0, 6339, 6340, 5, 3, 0, 0, 6340, 6342, 1, 0, 0, 0, 6341, 6318, 1, 0, 0, 0, 6341, 6319, 1, 0, 0, 0, 6341, 6322, 1, 0, 0, 0, 6341, 6335, 1, 0, 0, 0, 6342, 607, 1, 0, 0, 0, 6343, 6353, 5, 62, 0, 0, 6344, 6345, 5, 269, 0, 0, 6345, 6347, 5, 245, 0, 0, 6346, 6344, 1, 0, 0, 0, 6346, 6347, 1, 0, 0, 0, 6347, 6348, 1, 0, 0, 0, 6348, 6354, 5, 369, 0, 0, 6349, 6351, 5, 245, 0, 0, 6350, 6349, 1, 0, 0, 0, 6350, 6351, 1, 0, 0, 0, 6351, 6352, 1, 0, 0, 0, 6352, 6354, 5, 334, 0, 0, 6353, 6346, 1, 0, 0, 0, 6353, 6350, 1, 0, 0, 0, 6354, 6357, 1, 0, 0, 0, 6355, 6356, 5, 275, 0, 0, 6356, 6358, 3, 762, 381, 0, 6357, 6355, 1, 0, 0, 0, 6357, 6358, 1, 0, 0, 0, 6358, 6362, 1, 0, 0, 0, 6359, 6363, 5, 272, 0, 0, 6360, 6361, 5, 465, 0, 0, 6361, 6363, 5, 466, 0, 0, 6362, 6359, 1, 0, 0, 0, 6362, 6360, 1, 0, 0, 0, 6362, 6363, 1, 0, 0, 0, 6363, 6365, 1, 0, 0, 0, 6364, 6343, 1, 0, 0, 0, 6365, 6366, 1, 0, 0, 0, 6366, 6364, 1, 0, 0, 0, 6366, 6367, 1, 0, 0, 0, 6367, 6372, 1, 0, 0, 0, 6368, 6369, 5, 62, 0, 0, 6369, 6370, 5, 300, 0, 0, 6370, 6372, 5, 81, 0, 0, 6371, 6364, 1, 0, 0, 0, 6371, 6368, 1, 0, 0, 0, 6372, 609, 1, 0, 0, 0, 6373, 6374, 5, 422, 0, 0, 6374, 6379, 3, 536, 268, 0, 6375, 6376, 5, 6, 0, 0, 6376, 6378, 3, 536, 268, 0, 6377, 6375, 1, 0, 0, 0, 6378, 6381, 1, 0, 0, 0, 6379, 6377, 1, 0, 0, 0, 6379, 6380, 1, 0, 0, 0, 6380, 611, 1, 0, 0, 0, 6381, 6379, 1, 0, 0, 0, 6382, 6383, 5, 64, 0, 0, 6383, 6384, 3, 614, 307, 0, 6384, 613, 1, 0, 0, 0, 6385, 6390, 3, 616, 308, 0, 6386, 6387, 5, 6, 0, 0, 6387, 6389, 3, 616, 308, 0, 6388, 6386, 1, 0, 0, 0, 6389, 6392, 1, 0, 0, 0, 6390, 6388, 1, 0, 0, 0, 6390, 6391, 1, 0, 0, 0, 6391, 615, 1, 0, 0, 0, 6392, 6390, 1, 0, 0, 0, 6393, 6408, 3, 626, 313, 0, 6394, 6396, 5, 81, 0, 0, 6395, 6394, 1, 0, 0, 0, 6395, 6396, 1, 0, 0, 0, 6396, 6397, 1, 0, 0, 0, 6397, 6399, 3, 780, 390, 0, 6398, 6400, 5, 9, 0, 0, 6399, 6398, 1, 0, 0, 0, 6399, 6400, 1, 0, 0, 0, 6400, 6402, 1, 0, 0, 0, 6401, 6403, 3, 150, 75, 0, 6402, 6401, 1, 0, 0, 0, 6402, 6403, 1, 0, 0, 0, 6403, 6405, 1, 0, 0, 0, 6404, 6406, 3, 640, 320, 0, 6405, 6404, 1, 0, 0, 0, 6405, 6406, 1, 0, 0, 0, 6406, 6408, 1, 0, 0, 0, 6407, 6393, 1, 0, 0, 0, 6407, 6395, 1, 0, 0, 0, 6408, 6410, 1, 0, 0, 0, 6409, 6411, 3, 618, 309, 0, 6410, 6409, 1, 0, 0, 0, 6410, 6411, 1, 0, 0, 0, 6411, 6413, 1, 0, 0, 0, 6412, 6414, 3, 634, 317, 0, 6413, 6412, 1, 0, 0, 0, 6413, 6414, 1, 0, 0, 0, 6414, 6457, 1, 0, 0, 0, 6415, 6417, 5, 72, 0, 0, 6416, 6415, 1, 0, 0, 0, 6416, 6417, 1, 0, 0, 0, 6417, 6430, 1, 0, 0, 0, 6418, 6420, 3, 648, 324, 0, 6419, 6421, 3, 618, 309, 0, 6420, 6419, 1, 0, 0, 0, 6420, 6421, 1, 0, 0, 0, 6421, 6431, 1, 0, 0, 0, 6422, 6424, 3, 636, 318, 0, 6423, 6425, 3, 620, 310, 0, 6424, 6423, 1, 0, 0, 0, 6424, 6425, 1, 0, 0, 0, 6425, 6431, 1, 0, 0, 0, 6426, 6428, 3, 564, 282, 0, 6427, 6429, 3, 618, 309, 0, 6428, 6427, 1, 0, 0, 0, 6428, 6429, 1, 0, 0, 0, 6429, 6431, 1, 0, 0, 0, 6430, 6418, 1, 0, 0, 0, 6430, 6422, 1, 0, 0, 0, 6430, 6426, 1, 0, 0, 0, 6431, 6457, 1, 0, 0, 0, 6432, 6433, 5, 2, 0, 0, 6433, 6450, 3, 616, 308, 0, 6434, 6435, 5, 110, 0, 0, 6435, 6436, 5, 118, 0, 0, 6436, 6451, 3, 616, 308, 0, 6437, 6439, 5, 121, 0, 0, 6438, 6440, 3, 622, 311, 0, 6439, 6438, 1, 0, 0, 0, 6439, 6440, 1, 0, 0, 0, 6440, 6441, 1, 0, 0, 0, 6441, 6442, 5, 118, 0, 0, 6442, 6451, 3, 616, 308, 0, 6443, 6445, 3, 622, 311, 0, 6444, 6443, 1, 0, 0, 0, 6444, 6445, 1, 0, 0, 0, 6445, 6446, 1, 0, 0, 0, 6446, 6447, 5, 118, 0, 0, 6447, 6448, 3, 616, 308, 0, 6448, 6449, 3, 624, 312, 0, 6449, 6451, 1, 0, 0, 0, 6450, 6434, 1, 0, 0, 0, 6450, 6437, 1, 0, 0, 0, 6450, 6444, 1, 0, 0, 0, 6450, 6451, 1, 0, 0, 0, 6451, 6452, 1, 0, 0, 0, 6452, 6454, 5, 3, 0, 0, 6453, 6455, 3, 618, 309, 0, 6454, 6453, 1, 0, 0, 0, 6454, 6455, 1, 0, 0, 0, 6455, 6457, 1, 0, 0, 0, 6456, 6407, 1, 0, 0, 0, 6456, 6416, 1, 0, 0, 0, 6456, 6432, 1, 0, 0, 0, 6457, 6476, 1, 0, 0, 0, 6458, 6459, 5, 110, 0, 0, 6459, 6460, 5, 118, 0, 0, 6460, 6475, 3, 616, 308, 0, 6461, 6463, 5, 121, 0, 0, 6462, 6464, 3, 622, 311, 0, 6463, 6462, 1, 0, 0, 0, 6463, 6464, 1, 0, 0, 0, 6464, 6465, 1, 0, 0, 0, 6465, 6466, 5, 118, 0, 0, 6466, 6475, 3, 616, 308, 0, 6467, 6469, 3, 622, 311, 0, 6468, 6467, 1, 0, 0, 0, 6468, 6469, 1, 0, 0, 0, 6469, 6470, 1, 0, 0, 0, 6470, 6471, 5, 118, 0, 0, 6471, 6472, 3, 616, 308, 0, 6472, 6473, 3, 624, 312, 0, 6473, 6475, 1, 0, 0, 0, 6474, 6458, 1, 0, 0, 0, 6474, 6461, 1, 0, 0, 0, 6474, 6468, 1, 0, 0, 0, 6475, 6478, 1, 0, 0, 0, 6476, 6474, 1, 0, 0, 0, 6476, 6477, 1, 0, 0, 0, 6477, 617, 1, 0, 0, 0, 6478, 6476, 1, 0, 0, 0, 6479, 6481, 5, 36, 0, 0, 6480, 6479, 1, 0, 0, 0, 6480, 6481, 1, 0, 0, 0, 6481, 6482, 1, 0, 0, 0, 6482, 6487, 3, 820, 410, 0, 6483, 6484, 5, 2, 0, 0, 6484, 6485, 3, 786, 393, 0, 6485, 6486, 5, 3, 0, 0, 6486, 6488, 1, 0, 0, 0, 6487, 6483, 1, 0, 0, 0, 6487, 6488, 1, 0, 0, 0, 6488, 619, 1, 0, 0, 0, 6489, 6502, 3, 618, 309, 0, 6490, 6492, 5, 36, 0, 0, 6491, 6493, 3, 820, 410, 0, 6492, 6491, 1, 0, 0, 0, 6492, 6493, 1, 0, 0, 0, 6493, 6496, 1, 0, 0, 0, 6494, 6496, 3, 820, 410, 0, 6495, 6490, 1, 0, 0, 0, 6495, 6494, 1, 0, 0, 0, 6496, 6497, 1, 0, 0, 0, 6497, 6498, 5, 2, 0, 0, 6498, 6499, 3, 644, 322, 0, 6499, 6500, 5, 3, 0, 0, 6500, 6502, 1, 0, 0, 0, 6501, 6489, 1, 0, 0, 0, 6501, 6495, 1, 0, 0, 0, 6502, 621, 1, 0, 0, 0, 6503, 6505, 7, 87, 0, 0, 6504, 6506, 5, 123, 0, 0, 6505, 6504, 1, 0, 0, 0, 6505, 6506, 1, 0, 0, 0, 6506, 623, 1, 0, 0, 0, 6507, 6508, 5, 100, 0, 0, 6508, 6512, 3, 146, 73, 0, 6509, 6510, 5, 80, 0, 0, 6510, 6512, 3, 676, 338, 0, 6511, 6507, 1, 0, 0, 0, 6511, 6509, 1, 0, 0, 0, 6512, 625, 1, 0, 0, 0, 6513, 6529, 3, 324, 162, 0, 6514, 6520, 5, 81, 0, 0, 6515, 6521, 3, 776, 388, 0, 6516, 6517, 5, 2, 0, 0, 6517, 6518, 3, 776, 388, 0, 6518, 6519, 5, 3, 0, 0, 6519, 6521, 1, 0, 0, 0, 6520, 6515, 1, 0, 0, 0, 6520, 6516, 1, 0, 0, 0, 6521, 6529, 1, 0, 0, 0, 6522, 6523, 5, 68, 0, 0, 6523, 6526, 5, 323, 0, 0, 6524, 6527, 3, 792, 396, 0, 6525, 6527, 5, 111, 0, 0, 6526, 6524, 1, 0, 0, 0, 6526, 6525, 1, 0, 0, 0, 6527, 6529, 1, 0, 0, 0, 6528, 6513, 1, 0, 0, 0, 6528, 6514, 1, 0, 0, 0, 6528, 6522, 1, 0, 0, 0, 6529, 627, 1, 0, 0, 0, 6530, 6531, 5, 92, 0, 0, 6531, 6533, 3, 324, 162, 0, 6532, 6534, 3, 146, 73, 0, 6533, 6532, 1, 0, 0, 0, 6533, 6534, 1, 0, 0, 0, 6534, 6536, 1, 0, 0, 0, 6535, 6537, 3, 640, 320, 0, 6536, 6535, 1, 0, 0, 0, 6536, 6537, 1, 0, 0, 0, 6537, 6555, 1, 0, 0, 0, 6538, 6539, 5, 92, 0, 0, 6539, 6545, 5, 81, 0, 0, 6540, 6546, 3, 776, 388, 0, 6541, 6542, 5, 2, 0, 0, 6542, 6543, 3, 776, 388, 0, 6543, 6544, 5, 3, 0, 0, 6544, 6546, 1, 0, 0, 0, 6545, 6540, 1, 0, 0, 0, 6545, 6541, 1, 0, 0, 0, 6546, 6555, 1, 0, 0, 0, 6547, 6548, 5, 350, 0, 0, 6548, 6549, 5, 68, 0, 0, 6549, 6552, 5, 323, 0, 0, 6550, 6553, 3, 792, 396, 0, 6551, 6553, 5, 111, 0, 0, 6552, 6550, 1, 0, 0, 0, 6552, 6551, 1, 0, 0, 0, 6553, 6555, 1, 0, 0, 0, 6554, 6530, 1, 0, 0, 0, 6554, 6538, 1, 0, 0, 0, 6554, 6547, 1, 0, 0, 0, 6555, 629, 1, 0, 0, 0, 6556, 6561, 3, 626, 313, 0, 6557, 6558, 5, 6, 0, 0, 6558, 6560, 3, 626, 313, 0, 6559, 6557, 1, 0, 0, 0, 6560, 6563, 1, 0, 0, 0, 6561, 6559, 1, 0, 0, 0, 6561, 6562, 1, 0, 0, 0, 6562, 631, 1, 0, 0, 0, 6563, 6561, 1, 0, 0, 0, 6564, 6569, 3, 626, 313, 0, 6565, 6567, 5, 36, 0, 0, 6566, 6565, 1, 0, 0, 0, 6566, 6567, 1, 0, 0, 0, 6567, 6568, 1, 0, 0, 0, 6568, 6570, 3, 820, 410, 0, 6569, 6566, 1, 0, 0, 0, 6569, 6570, 1, 0, 0, 0, 6570, 633, 1, 0, 0, 0, 6571, 6572, 5, 472, 0, 0, 6572, 6573, 3, 808, 404, 0, 6573, 6579, 3, 536, 268, 0, 6574, 6575, 5, 310, 0, 0, 6575, 6576, 5, 2, 0, 0, 6576, 6577, 3, 676, 338, 0, 6577, 6578, 5, 3, 0, 0, 6578, 6580, 1, 0, 0, 0, 6579, 6574, 1, 0, 0, 0, 6579, 6580, 1, 0, 0, 0, 6580, 635, 1, 0, 0, 0, 6581, 6596, 3, 690, 345, 0, 6582, 6583, 5, 320, 0, 0, 6583, 6584, 5, 64, 0, 0, 6584, 6585, 5, 2, 0, 0, 6585, 6590, 3, 638, 319, 0, 6586, 6587, 5, 6, 0, 0, 6587, 6589, 3, 638, 319, 0, 6588, 6586, 1, 0, 0, 0, 6589, 6592, 1, 0, 0, 0, 6590, 6588, 1, 0, 0, 0, 6590, 6591, 1, 0, 0, 0, 6591, 6593, 1, 0, 0, 0, 6592, 6590, 1, 0, 0, 0, 6593, 6594, 5, 3, 0, 0, 6594, 6596, 1, 0, 0, 0, 6595, 6581, 1, 0, 0, 0, 6595, 6582, 1, 0, 0, 0, 6596, 6599, 1, 0, 0, 0, 6597, 6598, 5, 105, 0, 0, 6598, 6600, 5, 473, 0, 0, 6599, 6597, 1, 0, 0, 0, 6599, 6600, 1, 0, 0, 0, 6600, 637, 1, 0, 0, 0, 6601, 6607, 3, 690, 345, 0, 6602, 6603, 5, 36, 0, 0, 6603, 6604, 5, 2, 0, 0, 6604, 6605, 3, 644, 322, 0, 6605, 6606, 5, 3, 0, 0, 6606, 6608, 1, 0, 0, 0, 6607, 6602, 1, 0, 0, 0, 6607, 6608, 1, 0, 0, 0, 6608, 639, 1, 0, 0, 0, 6609, 6610, 5, 103, 0, 0, 6610, 6611, 3, 736, 368, 0, 6611, 641, 1, 0, 0, 0, 6612, 6617, 5, 103, 0, 0, 6613, 6614, 5, 434, 0, 0, 6614, 6615, 5, 275, 0, 0, 6615, 6618, 3, 820, 410, 0, 6616, 6618, 3, 676, 338, 0, 6617, 6613, 1, 0, 0, 0, 6617, 6616, 1, 0, 0, 0, 6618, 643, 1, 0, 0, 0, 6619, 6624, 3, 646, 323, 0, 6620, 6621, 5, 6, 0, 0, 6621, 6623, 3, 646, 323, 0, 6622, 6620, 1, 0, 0, 0, 6623, 6626, 1, 0, 0, 0, 6624, 6622, 1, 0, 0, 0, 6624, 6625, 1, 0, 0, 0, 6625, 645, 1, 0, 0, 0, 6626, 6624, 1, 0, 0, 0, 6627, 6628, 3, 820, 410, 0, 6628, 6630, 3, 654, 327, 0, 6629, 6631, 3, 98, 49, 0, 6630, 6629, 1, 0, 0, 0, 6630, 6631, 1, 0, 0, 0, 6631, 647, 1, 0, 0, 0, 6632, 6633, 5, 474, 0, 0, 6633, 6647, 5, 2, 0, 0, 6634, 6635, 5, 476, 0, 0, 6635, 6636, 5, 2, 0, 0, 6636, 6641, 3, 652, 326, 0, 6637, 6638, 5, 6, 0, 0, 6638, 6640, 3, 652, 326, 0, 6639, 6637, 1, 0, 0, 0, 6640, 6643, 1, 0, 0, 0, 6641, 6639, 1, 0, 0, 0, 6641, 6642, 1, 0, 0, 0, 6642, 6644, 1, 0, 0, 0, 6643, 6641, 1, 0, 0, 0, 6644, 6645, 5, 3, 0, 0, 6645, 6646, 5, 6, 0, 0, 6646, 6648, 1, 0, 0, 0, 6647, 6634, 1, 0, 0, 0, 6647, 6648, 1, 0, 0, 0, 6648, 6649, 1, 0, 0, 0, 6649, 6650, 3, 684, 342, 0, 6650, 6651, 3, 700, 350, 0, 6651, 6652, 5, 475, 0, 0, 6652, 6657, 3, 650, 325, 0, 6653, 6654, 5, 6, 0, 0, 6654, 6656, 3, 650, 325, 0, 6655, 6653, 1, 0, 0, 0, 6656, 6659, 1, 0, 0, 0, 6657, 6655, 1, 0, 0, 0, 6657, 6658, 1, 0, 0, 0, 6658, 6660, 1, 0, 0, 0, 6659, 6657, 1, 0, 0, 0, 6660, 6661, 5, 3, 0, 0, 6661, 649, 1, 0, 0, 0, 6662, 6681, 3, 820, 410, 0, 6663, 6677, 3, 654, 327, 0, 6664, 6667, 5, 53, 0, 0, 6665, 6667, 3, 828, 414, 0, 6666, 6664, 1, 0, 0, 0, 6666, 6665, 1, 0, 0, 0, 6667, 6668, 1, 0, 0, 0, 6668, 6674, 3, 676, 338, 0, 6669, 6671, 5, 77, 0, 0, 6670, 6669, 1, 0, 0, 0, 6670, 6671, 1, 0, 0, 0, 6671, 6672, 1, 0, 0, 0, 6672, 6674, 5, 78, 0, 0, 6673, 6666, 1, 0, 0, 0, 6673, 6670, 1, 0, 0, 0, 6674, 6675, 1, 0, 0, 0, 6675, 6673, 1, 0, 0, 0, 6675, 6676, 1, 0, 0, 0, 6676, 6678, 1, 0, 0, 0, 6677, 6673, 1, 0, 0, 0, 6677, 6678, 1, 0, 0, 0, 6678, 6682, 1, 0, 0, 0, 6679, 6680, 5, 62, 0, 0, 6680, 6682, 5, 473, 0, 0, 6681, 6663, 1, 0, 0, 0, 6681, 6679, 1, 0, 0, 0, 6682, 651, 1, 0, 0, 0, 6683, 6684, 3, 684, 342, 0, 6684, 6685, 5, 36, 0, 0, 6685, 6686, 3, 826, 413, 0, 6686, 6690, 1, 0, 0, 0, 6687, 6688, 5, 53, 0, 0, 6688, 6690, 3, 684, 342, 0, 6689, 6683, 1, 0, 0, 0, 6689, 6687, 1, 0, 0, 0, 6690, 653, 1, 0, 0, 0, 6691, 6693, 5, 415, 0, 0, 6692, 6691, 1, 0, 0, 0, 6692, 6693, 1, 0, 0, 0, 6693, 6694, 1, 0, 0, 0, 6694, 6711, 3, 656, 328, 0, 6695, 6697, 5, 4, 0, 0, 6696, 6698, 5, 574, 0, 0, 6697, 6696, 1, 0, 0, 0, 6697, 6698, 1, 0, 0, 0, 6698, 6699, 1, 0, 0, 0, 6699, 6701, 5, 5, 0, 0, 6700, 6695, 1, 0, 0, 0, 6701, 6704, 1, 0, 0, 0, 6702, 6700, 1, 0, 0, 0, 6702, 6703, 1, 0, 0, 0, 6703, 6712, 1, 0, 0, 0, 6704, 6702, 1, 0, 0, 0, 6705, 6709, 5, 35, 0, 0, 6706, 6707, 5, 4, 0, 0, 6707, 6708, 5, 574, 0, 0, 6708, 6710, 5, 5, 0, 0, 6709, 6706, 1, 0, 0, 0, 6709, 6710, 1, 0, 0, 0, 6710, 6712, 1, 0, 0, 0, 6711, 6702, 1, 0, 0, 0, 6711, 6705, 1, 0, 0, 0, 6712, 6718, 1, 0, 0, 0, 6713, 6714, 3, 782, 391, 0, 6714, 6715, 5, 27, 0, 0, 6715, 6716, 7, 88, 0, 0, 6716, 6718, 1, 0, 0, 0, 6717, 6692, 1, 0, 0, 0, 6717, 6713, 1, 0, 0, 0, 6718, 655, 1, 0, 0, 0, 6719, 6721, 3, 822, 411, 0, 6720, 6722, 3, 320, 160, 0, 6721, 6720, 1, 0, 0, 0, 6721, 6722, 1, 0, 0, 0, 6722, 6724, 1, 0, 0, 0, 6723, 6725, 3, 536, 268, 0, 6724, 6723, 1, 0, 0, 0, 6724, 6725, 1, 0, 0, 0, 6725, 6735, 1, 0, 0, 0, 6726, 6735, 3, 658, 329, 0, 6727, 6732, 5, 403, 0, 0, 6728, 6730, 3, 670, 335, 0, 6729, 6728, 1, 0, 0, 0, 6729, 6730, 1, 0, 0, 0, 6730, 6733, 1, 0, 0, 0, 6731, 6733, 3, 662, 331, 0, 6732, 6729, 1, 0, 0, 0, 6732, 6731, 1, 0, 0, 0, 6733, 6735, 1, 0, 0, 0, 6734, 6719, 1, 0, 0, 0, 6734, 6726, 1, 0, 0, 0, 6734, 6727, 1, 0, 0, 0, 6735, 657, 1, 0, 0, 0, 6736, 6741, 3, 660, 330, 0, 6737, 6741, 3, 664, 332, 0, 6738, 6741, 3, 666, 333, 0, 6739, 6741, 3, 668, 334, 0, 6740, 6736, 1, 0, 0, 0, 6740, 6737, 1, 0, 0, 0, 6740, 6738, 1, 0, 0, 0, 6740, 6739, 1, 0, 0, 0, 6741, 659, 1, 0, 0, 0, 6742, 6759, 5, 401, 0, 0, 6743, 6759, 5, 402, 0, 0, 6744, 6759, 5, 416, 0, 0, 6745, 6759, 5, 388, 0, 0, 6746, 6759, 5, 413, 0, 0, 6747, 6749, 5, 398, 0, 0, 6748, 6750, 3, 662, 331, 0, 6749, 6748, 1, 0, 0, 0, 6749, 6750, 1, 0, 0, 0, 6750, 6759, 1, 0, 0, 0, 6751, 6752, 5, 190, 0, 0, 6752, 6759, 5, 412, 0, 0, 6753, 6755, 7, 89, 0, 0, 6754, 6756, 3, 536, 268, 0, 6755, 6754, 1, 0, 0, 0, 6755, 6756, 1, 0, 0, 0, 6756, 6759, 1, 0, 0, 0, 6757, 6759, 5, 390, 0, 0, 6758, 6742, 1, 0, 0, 0, 6758, 6743, 1, 0, 0, 0, 6758, 6744, 1, 0, 0, 0, 6758, 6745, 1, 0, 0, 0, 6758, 6746, 1, 0, 0, 0, 6758, 6747, 1, 0, 0, 0, 6758, 6751, 1, 0, 0, 0, 6758, 6753, 1, 0, 0, 0, 6758, 6757, 1, 0, 0, 0, 6759, 661, 1, 0, 0, 0, 6760, 6761, 5, 2, 0, 0, 6761, 6762, 5, 574, 0, 0, 6762, 6763, 5, 3, 0, 0, 6763, 663, 1, 0, 0, 0, 6764, 6766, 5, 389, 0, 0, 6765, 6767, 5, 374, 0, 0, 6766, 6765, 1, 0, 0, 0, 6766, 6767, 1, 0, 0, 0, 6767, 6769, 1, 0, 0, 0, 6768, 6770, 3, 536, 268, 0, 6769, 6768, 1, 0, 0, 0, 6769, 6770, 1, 0, 0, 0, 6770, 665, 1, 0, 0, 0, 6771, 6773, 7, 90, 0, 0, 6772, 6774, 5, 374, 0, 0, 6773, 6772, 1, 0, 0, 0, 6773, 6774, 1, 0, 0, 0, 6774, 6782, 1, 0, 0, 0, 6775, 6782, 5, 423, 0, 0, 6776, 6777, 5, 405, 0, 0, 6777, 6779, 7, 91, 0, 0, 6778, 6780, 5, 374, 0, 0, 6779, 6778, 1, 0, 0, 0, 6779, 6780, 1, 0, 0, 0, 6780, 6782, 1, 0, 0, 0, 6781, 6771, 1, 0, 0, 0, 6781, 6775, 1, 0, 0, 0, 6781, 6776, 1, 0, 0, 0, 6782, 6784, 1, 0, 0, 0, 6783, 6785, 3, 662, 331, 0, 6784, 6783, 1, 0, 0, 0, 6784, 6785, 1, 0, 0, 0, 6785, 667, 1, 0, 0, 0, 6786, 6788, 7, 92, 0, 0, 6787, 6789, 3, 662, 331, 0, 6788, 6787, 1, 0, 0, 0, 6788, 6789, 1, 0, 0, 0, 6789, 6793, 1, 0, 0, 0, 6790, 6791, 7, 27, 0, 0, 6791, 6792, 5, 418, 0, 0, 6792, 6794, 5, 386, 0, 0, 6793, 6790, 1, 0, 0, 0, 6793, 6794, 1, 0, 0, 0, 6794, 669, 1, 0, 0, 0, 6795, 6825, 5, 264, 0, 0, 6796, 6825, 3, 672, 336, 0, 6797, 6800, 5, 384, 0, 0, 6798, 6799, 5, 94, 0, 0, 6799, 6801, 5, 264, 0, 0, 6800, 6798, 1, 0, 0, 0, 6800, 6801, 1, 0, 0, 0, 6801, 6825, 1, 0, 0, 0, 6802, 6809, 5, 176, 0, 0, 6803, 6807, 5, 94, 0, 0, 6804, 6808, 5, 218, 0, 0, 6805, 6808, 5, 261, 0, 0, 6806, 6808, 3, 672, 336, 0, 6807, 6804, 1, 0, 0, 0, 6807, 6805, 1, 0, 0, 0, 6807, 6806, 1, 0, 0, 0, 6808, 6810, 1, 0, 0, 0, 6809, 6803, 1, 0, 0, 0, 6809, 6810, 1, 0, 0, 0, 6810, 6825, 1, 0, 0, 0, 6811, 6817, 5, 218, 0, 0, 6812, 6815, 5, 94, 0, 0, 6813, 6816, 5, 261, 0, 0, 6814, 6816, 3, 672, 336, 0, 6815, 6813, 1, 0, 0, 0, 6815, 6814, 1, 0, 0, 0, 6816, 6818, 1, 0, 0, 0, 6817, 6812, 1, 0, 0, 0, 6817, 6818, 1, 0, 0, 0, 6818, 6825, 1, 0, 0, 0, 6819, 6822, 5, 261, 0, 0, 6820, 6821, 5, 94, 0, 0, 6821, 6823, 3, 672, 336, 0, 6822, 6820, 1, 0, 0, 0, 6822, 6823, 1, 0, 0, 0, 6823, 6825, 1, 0, 0, 0, 6824, 6795, 1, 0, 0, 0, 6824, 6796, 1, 0, 0, 0, 6824, 6797, 1, 0, 0, 0, 6824, 6802, 1, 0, 0, 0, 6824, 6811, 1, 0, 0, 0, 6824, 6819, 1, 0, 0, 0, 6825, 671, 1, 0, 0, 0, 6826, 6828, 5, 326, 0, 0, 6827, 6829, 3, 662, 331, 0, 6828, 6827, 1, 0, 0, 0, 6828, 6829, 1, 0, 0, 0, 6829, 673, 1, 0, 0, 0, 6830, 6831, 7, 93, 0, 0, 6831, 675, 1, 0, 0, 0, 6832, 6833, 3, 678, 339, 0, 6833, 677, 1, 0, 0, 0, 6834, 6835, 6, 339, -1, 0, 6835, 6837, 3, 682, 341, 0, 6836, 6838, 3, 680, 340, 0, 6837, 6836, 1, 0, 0, 0, 6837, 6838, 1, 0, 0, 0, 6838, 6842, 1, 0, 0, 0, 6839, 6840, 5, 77, 0, 0, 6840, 6842, 3, 678, 339, 3, 6841, 6834, 1, 0, 0, 0, 6841, 6839, 1, 0, 0, 0, 6842, 6851, 1, 0, 0, 0, 6843, 6844, 10, 2, 0, 0, 6844, 6845, 5, 33, 0, 0, 6845, 6850, 3, 678, 339, 3, 6846, 6847, 10, 1, 0, 0, 6847, 6848, 5, 82, 0, 0, 6848, 6850, 3, 678, 339, 2, 6849, 6843, 1, 0, 0, 0, 6849, 6846, 1, 0, 0, 0, 6850, 6853, 1, 0, 0, 0, 6851, 6849, 1, 0, 0, 0, 6851, 6852, 1, 0, 0, 0, 6852, 679, 1, 0, 0, 0, 6853, 6851, 1, 0, 0, 0, 6854, 6855, 3, 674, 337, 0, 6855, 6856, 3, 682, 341, 0, 6856, 6926, 1, 0, 0, 0, 6857, 6858, 3, 674, 337, 0, 6858, 6859, 3, 730, 365, 0, 6859, 6865, 3, 720, 360, 0, 6860, 6866, 3, 564, 282, 0, 6861, 6862, 5, 2, 0, 0, 6862, 6863, 3, 676, 338, 0, 6863, 6864, 5, 3, 0, 0, 6864, 6866, 1, 0, 0, 0, 6865, 6860, 1, 0, 0, 0, 6865, 6861, 1, 0, 0, 0, 6866, 6926, 1, 0, 0, 0, 6867, 6869, 5, 77, 0, 0, 6868, 6867, 1, 0, 0, 0, 6868, 6869, 1, 0, 0, 0, 6869, 6870, 1, 0, 0, 0, 6870, 6871, 5, 387, 0, 0, 6871, 6872, 3, 682, 341, 0, 6872, 6873, 5, 33, 0, 0, 6873, 6874, 3, 682, 341, 0, 6874, 6926, 1, 0, 0, 0, 6875, 6877, 5, 77, 0, 0, 6876, 6875, 1, 0, 0, 0, 6876, 6877, 1, 0, 0, 0, 6877, 6878, 1, 0, 0, 0, 6878, 6879, 5, 68, 0, 0, 6879, 6880, 5, 2, 0, 0, 6880, 6885, 3, 676, 338, 0, 6881, 6882, 5, 6, 0, 0, 6882, 6884, 3, 676, 338, 0, 6883, 6881, 1, 0, 0, 0, 6884, 6887, 1, 0, 0, 0, 6885, 6883, 1, 0, 0, 0, 6885, 6886, 1, 0, 0, 0, 6886, 6888, 1, 0, 0, 0, 6887, 6885, 1, 0, 0, 0, 6888, 6889, 5, 3, 0, 0, 6889, 6926, 1, 0, 0, 0, 6890, 6892, 5, 77, 0, 0, 6891, 6890, 1, 0, 0, 0, 6891, 6892, 1, 0, 0, 0, 6892, 6893, 1, 0, 0, 0, 6893, 6894, 5, 68, 0, 0, 6894, 6926, 3, 564, 282, 0, 6895, 6897, 5, 77, 0, 0, 6896, 6895, 1, 0, 0, 0, 6896, 6897, 1, 0, 0, 0, 6897, 6906, 1, 0, 0, 0, 6898, 6907, 5, 120, 0, 0, 6899, 6907, 5, 114, 0, 0, 6900, 6901, 5, 127, 0, 0, 6901, 6907, 5, 94, 0, 0, 6902, 6904, 5, 387, 0, 0, 6903, 6905, 5, 91, 0, 0, 6904, 6903, 1, 0, 0, 0, 6904, 6905, 1, 0, 0, 0, 6905, 6907, 1, 0, 0, 0, 6906, 6898, 1, 0, 0, 0, 6906, 6899, 1, 0, 0, 0, 6906, 6900, 1, 0, 0, 0, 6906, 6902, 1, 0, 0, 0, 6907, 6908, 1, 0, 0, 0, 6908, 6911, 3, 682, 341, 0, 6909, 6910, 5, 197, 0, 0, 6910, 6912, 3, 682, 341, 0, 6911, 6909, 1, 0, 0, 0, 6911, 6912, 1, 0, 0, 0, 6912, 6926, 1, 0, 0, 0, 6913, 6915, 5, 116, 0, 0, 6914, 6916, 5, 77, 0, 0, 6915, 6914, 1, 0, 0, 0, 6915, 6916, 1, 0, 0, 0, 6916, 6917, 1, 0, 0, 0, 6917, 6926, 5, 78, 0, 0, 6918, 6920, 5, 116, 0, 0, 6919, 6921, 5, 77, 0, 0, 6920, 6919, 1, 0, 0, 0, 6920, 6921, 1, 0, 0, 0, 6921, 6922, 1, 0, 0, 0, 6922, 6923, 5, 56, 0, 0, 6923, 6924, 5, 64, 0, 0, 6924, 6926, 3, 682, 341, 0, 6925, 6854, 1, 0, 0, 0, 6925, 6857, 1, 0, 0, 0, 6925, 6868, 1, 0, 0, 0, 6925, 6876, 1, 0, 0, 0, 6925, 6891, 1, 0, 0, 0, 6925, 6896, 1, 0, 0, 0, 6925, 6913, 1, 0, 0, 0, 6925, 6918, 1, 0, 0, 0, 6926, 681, 1, 0, 0, 0, 6927, 6928, 6, 341, -1, 0, 6928, 6932, 3, 684, 342, 0, 6929, 6930, 7, 30, 0, 0, 6930, 6932, 3, 682, 341, 4, 6931, 6927, 1, 0, 0, 0, 6931, 6929, 1, 0, 0, 0, 6932, 6949, 1, 0, 0, 0, 6933, 6934, 10, 3, 0, 0, 6934, 6935, 7, 94, 0, 0, 6935, 6948, 3, 682, 341, 4, 6936, 6937, 10, 2, 0, 0, 6937, 6938, 7, 30, 0, 0, 6938, 6948, 3, 682, 341, 3, 6939, 6940, 10, 1, 0, 0, 6940, 6941, 5, 15, 0, 0, 6941, 6948, 3, 682, 341, 2, 6942, 6943, 10, 5, 0, 0, 6943, 6944, 5, 142, 0, 0, 6944, 6945, 5, 418, 0, 0, 6945, 6946, 5, 386, 0, 0, 6946, 6948, 3, 676, 338, 0, 6947, 6933, 1, 0, 0, 0, 6947, 6936, 1, 0, 0, 0, 6947, 6939, 1, 0, 0, 0, 6947, 6942, 1, 0, 0, 0, 6948, 6951, 1, 0, 0, 0, 6949, 6947, 1, 0, 0, 0, 6949, 6950, 1, 0, 0, 0, 6950, 683, 1, 0, 0, 0, 6951, 6949, 1, 0, 0, 0, 6952, 6953, 6, 342, -1, 0, 6953, 6954, 7, 95, 0, 0, 6954, 7041, 3, 564, 282, 0, 6955, 6958, 5, 35, 0, 0, 6956, 6959, 3, 564, 282, 0, 6957, 6959, 3, 742, 371, 0, 6958, 6956, 1, 0, 0, 0, 6958, 6957, 1, 0, 0, 0, 6959, 7041, 1, 0, 0, 0, 6960, 6961, 5, 28, 0, 0, 6961, 7041, 3, 756, 378, 0, 6962, 6963, 5, 470, 0, 0, 6963, 7041, 3, 536, 268, 0, 6964, 7041, 5, 574, 0, 0, 6965, 7041, 5, 576, 0, 0, 6966, 7041, 5, 566, 0, 0, 6967, 7041, 5, 570, 0, 0, 6968, 6978, 3, 808, 404, 0, 6969, 6979, 3, 810, 405, 0, 6970, 6971, 5, 2, 0, 0, 6971, 6973, 3, 738, 369, 0, 6972, 6974, 3, 588, 294, 0, 6973, 6972, 1, 0, 0, 0, 6973, 6974, 1, 0, 0, 0, 6974, 6975, 1, 0, 0, 0, 6975, 6976, 5, 3, 0, 0, 6976, 6977, 3, 810, 405, 0, 6977, 6979, 1, 0, 0, 0, 6978, 6969, 1, 0, 0, 0, 6978, 6970, 1, 0, 0, 0, 6979, 7041, 1, 0, 0, 0, 6980, 6982, 3, 658, 329, 0, 6981, 6980, 1, 0, 0, 0, 6981, 6982, 1, 0, 0, 0, 6982, 6983, 1, 0, 0, 0, 6983, 7041, 3, 810, 405, 0, 6984, 6992, 5, 403, 0, 0, 6985, 6987, 3, 810, 405, 0, 6986, 6988, 3, 670, 335, 0, 6987, 6986, 1, 0, 0, 0, 6987, 6988, 1, 0, 0, 0, 6988, 6993, 1, 0, 0, 0, 6989, 6990, 3, 662, 331, 0, 6990, 6991, 3, 810, 405, 0, 6991, 6993, 1, 0, 0, 0, 6992, 6985, 1, 0, 0, 0, 6992, 6989, 1, 0, 0, 0, 6993, 7041, 1, 0, 0, 0, 6994, 7041, 5, 96, 0, 0, 6995, 7041, 5, 60, 0, 0, 6996, 7041, 5, 78, 0, 0, 6997, 7041, 5, 577, 0, 0, 6998, 6999, 5, 2, 0, 0, 6999, 7000, 3, 676, 338, 0, 7000, 7001, 5, 3, 0, 0, 7001, 7002, 3, 756, 378, 0, 7002, 7041, 1, 0, 0, 0, 7003, 7005, 5, 40, 0, 0, 7004, 7006, 3, 676, 338, 0, 7005, 7004, 1, 0, 0, 0, 7005, 7006, 1, 0, 0, 0, 7006, 7008, 1, 0, 0, 0, 7007, 7009, 3, 750, 375, 0, 7008, 7007, 1, 0, 0, 0, 7009, 7010, 1, 0, 0, 0, 7010, 7008, 1, 0, 0, 0, 7010, 7011, 1, 0, 0, 0, 7011, 7014, 1, 0, 0, 0, 7012, 7013, 5, 58, 0, 0, 7013, 7015, 3, 676, 338, 0, 7014, 7012, 1, 0, 0, 0, 7014, 7015, 1, 0, 0, 0, 7015, 7016, 1, 0, 0, 0, 7016, 7017, 5, 454, 0, 0, 7017, 7041, 1, 0, 0, 0, 7018, 7041, 3, 688, 344, 0, 7019, 7021, 3, 564, 282, 0, 7020, 7022, 3, 754, 377, 0, 7021, 7020, 1, 0, 0, 0, 7021, 7022, 1, 0, 0, 0, 7022, 7041, 1, 0, 0, 0, 7023, 7041, 3, 718, 359, 0, 7024, 7025, 5, 2, 0, 0, 7025, 7026, 3, 676, 338, 0, 7026, 7027, 5, 6, 0, 0, 7027, 7028, 3, 732, 366, 0, 7028, 7029, 5, 3, 0, 0, 7029, 7041, 1, 0, 0, 0, 7030, 7031, 3, 716, 358, 0, 7031, 7032, 5, 125, 0, 0, 7032, 7033, 3, 716, 358, 0, 7033, 7041, 1, 0, 0, 0, 7034, 7041, 3, 782, 391, 0, 7035, 7036, 7, 30, 0, 0, 7036, 7041, 3, 684, 342, 5, 7037, 7038, 3, 726, 363, 0, 7038, 7039, 3, 684, 342, 2, 7039, 7041, 1, 0, 0, 0, 7040, 6952, 1, 0, 0, 0, 7040, 6955, 1, 0, 0, 0, 7040, 6960, 1, 0, 0, 0, 7040, 6962, 1, 0, 0, 0, 7040, 6964, 1, 0, 0, 0, 7040, 6965, 1, 0, 0, 0, 7040, 6966, 1, 0, 0, 0, 7040, 6967, 1, 0, 0, 0, 7040, 6968, 1, 0, 0, 0, 7040, 6981, 1, 0, 0, 0, 7040, 6984, 1, 0, 0, 0, 7040, 6994, 1, 0, 0, 0, 7040, 6995, 1, 0, 0, 0, 7040, 6996, 1, 0, 0, 0, 7040, 6997, 1, 0, 0, 0, 7040, 6998, 1, 0, 0, 0, 7040, 7003, 1, 0, 0, 0, 7040, 7018, 1, 0, 0, 0, 7040, 7019, 1, 0, 0, 0, 7040, 7023, 1, 0, 0, 0, 7040, 7024, 1, 0, 0, 0, 7040, 7030, 1, 0, 0, 0, 7040, 7034, 1, 0, 0, 0, 7040, 7035, 1, 0, 0, 0, 7040, 7037, 1, 0, 0, 0, 7041, 7069, 1, 0, 0, 0, 7042, 7043, 10, 3, 0, 0, 7043, 7044, 3, 724, 362, 0, 7044, 7045, 3, 684, 342, 4, 7045, 7068, 1, 0, 0, 0, 7046, 7047, 10, 6, 0, 0, 7047, 7048, 5, 26, 0, 0, 7048, 7068, 3, 654, 327, 0, 7049, 7050, 10, 4, 0, 0, 7050, 7052, 3, 726, 363, 0, 7051, 7053, 3, 684, 342, 0, 7052, 7051, 1, 0, 0, 0, 7052, 7053, 1, 0, 0, 0, 7053, 7068, 1, 0, 0, 0, 7054, 7055, 10, 1, 0, 0, 7055, 7057, 5, 116, 0, 0, 7056, 7058, 5, 77, 0, 0, 7057, 7056, 1, 0, 0, 0, 7057, 7058, 1, 0, 0, 0, 7058, 7065, 1, 0, 0, 0, 7059, 7060, 5, 56, 0, 0, 7060, 7061, 5, 64, 0, 0, 7061, 7066, 3, 684, 342, 0, 7062, 7063, 5, 275, 0, 0, 7063, 7066, 3, 530, 265, 0, 7064, 7066, 5, 188, 0, 0, 7065, 7059, 1, 0, 0, 0, 7065, 7062, 1, 0, 0, 0, 7065, 7064, 1, 0, 0, 0, 7066, 7068, 1, 0, 0, 0, 7067, 7042, 1, 0, 0, 0, 7067, 7046, 1, 0, 0, 0, 7067, 7049, 1, 0, 0, 0, 7067, 7054, 1, 0, 0, 0, 7068, 7071, 1, 0, 0, 0, 7069, 7067, 1, 0, 0, 0, 7069, 7070, 1, 0, 0, 0, 7070, 685, 1, 0, 0, 0, 7071, 7069, 1, 0, 0, 0, 7072, 7073, 3, 808, 404, 0, 7073, 7094, 5, 2, 0, 0, 7074, 7078, 3, 738, 369, 0, 7075, 7076, 5, 6, 0, 0, 7076, 7077, 5, 101, 0, 0, 7077, 7079, 3, 740, 370, 0, 7078, 7075, 1, 0, 0, 0, 7078, 7079, 1, 0, 0, 0, 7079, 7081, 1, 0, 0, 0, 7080, 7082, 3, 588, 294, 0, 7081, 7080, 1, 0, 0, 0, 7081, 7082, 1, 0, 0, 0, 7082, 7095, 1, 0, 0, 0, 7083, 7084, 5, 101, 0, 0, 7084, 7086, 3, 740, 370, 0, 7085, 7087, 3, 588, 294, 0, 7086, 7085, 1, 0, 0, 0, 7086, 7087, 1, 0, 0, 0, 7087, 7095, 1, 0, 0, 0, 7088, 7089, 7, 81, 0, 0, 7089, 7091, 3, 738, 369, 0, 7090, 7092, 3, 588, 294, 0, 7091, 7090, 1, 0, 0, 0, 7091, 7092, 1, 0, 0, 0, 7092, 7095, 1, 0, 0, 0, 7093, 7095, 5, 9, 0, 0, 7094, 7074, 1, 0, 0, 0, 7094, 7083, 1, 0, 0, 0, 7094, 7088, 1, 0, 0, 0, 7094, 7093, 1, 0, 0, 0, 7094, 7095, 1, 0, 0, 0, 7095, 7096, 1, 0, 0, 0, 7096, 7097, 5, 3, 0, 0, 7097, 687, 1, 0, 0, 0, 7098, 7105, 3, 686, 343, 0, 7099, 7100, 5, 479, 0, 0, 7100, 7101, 5, 66, 0, 0, 7101, 7102, 5, 2, 0, 0, 7102, 7103, 3, 588, 294, 0, 7103, 7104, 5, 3, 0, 0, 7104, 7106, 1, 0, 0, 0, 7105, 7099, 1, 0, 0, 0, 7105, 7106, 1, 0, 0, 0, 7106, 7113, 1, 0, 0, 0, 7107, 7108, 5, 480, 0, 0, 7108, 7109, 5, 2, 0, 0, 7109, 7110, 5, 103, 0, 0, 7110, 7111, 3, 676, 338, 0, 7111, 7112, 5, 3, 0, 0, 7112, 7114, 1, 0, 0, 0, 7113, 7107, 1, 0, 0, 0, 7113, 7114, 1, 0, 0, 0, 7114, 7120, 1, 0, 0, 0, 7115, 7118, 5, 124, 0, 0, 7116, 7119, 3, 710, 355, 0, 7117, 7119, 3, 820, 410, 0, 7118, 7116, 1, 0, 0, 0, 7118, 7117, 1, 0, 0, 0, 7119, 7121, 1, 0, 0, 0, 7120, 7115, 1, 0, 0, 0, 7120, 7121, 1, 0, 0, 0, 7121, 7124, 1, 0, 0, 0, 7122, 7124, 3, 692, 346, 0, 7123, 7098, 1, 0, 0, 0, 7123, 7122, 1, 0, 0, 0, 7124, 689, 1, 0, 0, 0, 7125, 7128, 3, 686, 343, 0, 7126, 7128, 3, 692, 346, 0, 7127, 7125, 1, 0, 0, 0, 7127, 7126, 1, 0, 0, 0, 7128, 691, 1, 0, 0, 0, 7129, 7130, 5, 108, 0, 0, 7130, 7131, 5, 62, 0, 0, 7131, 7132, 5, 2, 0, 0, 7132, 7133, 3, 676, 338, 0, 7133, 7134, 5, 3, 0, 0, 7134, 7304, 1, 0, 0, 0, 7135, 7304, 5, 48, 0, 0, 7136, 7138, 7, 96, 0, 0, 7137, 7139, 3, 662, 331, 0, 7138, 7137, 1, 0, 0, 0, 7138, 7139, 1, 0, 0, 0, 7139, 7304, 1, 0, 0, 0, 7140, 7304, 5, 49, 0, 0, 7141, 7304, 5, 52, 0, 0, 7142, 7304, 5, 89, 0, 0, 7143, 7304, 5, 99, 0, 0, 7144, 7304, 5, 47, 0, 0, 7145, 7304, 5, 111, 0, 0, 7146, 7147, 7, 97, 0, 0, 7147, 7148, 5, 2, 0, 0, 7148, 7149, 3, 676, 338, 0, 7149, 7150, 5, 36, 0, 0, 7150, 7151, 3, 654, 327, 0, 7151, 7152, 5, 3, 0, 0, 7152, 7304, 1, 0, 0, 0, 7153, 7154, 5, 397, 0, 0, 7154, 7159, 5, 2, 0, 0, 7155, 7156, 3, 744, 372, 0, 7156, 7157, 5, 64, 0, 0, 7157, 7158, 3, 676, 338, 0, 7158, 7160, 1, 0, 0, 0, 7159, 7155, 1, 0, 0, 0, 7159, 7160, 1, 0, 0, 0, 7160, 7161, 1, 0, 0, 0, 7161, 7304, 5, 3, 0, 0, 7162, 7163, 5, 489, 0, 0, 7163, 7164, 5, 2, 0, 0, 7164, 7167, 3, 676, 338, 0, 7165, 7166, 5, 6, 0, 0, 7166, 7168, 3, 746, 373, 0, 7167, 7165, 1, 0, 0, 0, 7167, 7168, 1, 0, 0, 0, 7168, 7169, 1, 0, 0, 0, 7169, 7170, 5, 3, 0, 0, 7170, 7304, 1, 0, 0, 0, 7171, 7172, 5, 410, 0, 0, 7172, 7173, 5, 2, 0, 0, 7173, 7174, 3, 676, 338, 0, 7174, 7175, 5, 84, 0, 0, 7175, 7176, 3, 676, 338, 0, 7176, 7177, 5, 64, 0, 0, 7177, 7180, 3, 676, 338, 0, 7178, 7179, 5, 62, 0, 0, 7179, 7181, 3, 676, 338, 0, 7180, 7178, 1, 0, 0, 0, 7180, 7181, 1, 0, 0, 0, 7181, 7182, 1, 0, 0, 0, 7182, 7183, 5, 3, 0, 0, 7183, 7304, 1, 0, 0, 0, 7184, 7185, 5, 411, 0, 0, 7185, 7190, 5, 2, 0, 0, 7186, 7187, 3, 684, 342, 0, 7187, 7188, 5, 68, 0, 0, 7188, 7189, 3, 684, 342, 0, 7189, 7191, 1, 0, 0, 0, 7190, 7186, 1, 0, 0, 0, 7190, 7191, 1, 0, 0, 0, 7191, 7192, 1, 0, 0, 0, 7192, 7304, 5, 3, 0, 0, 7193, 7194, 5, 417, 0, 0, 7194, 7196, 5, 2, 0, 0, 7195, 7197, 3, 748, 374, 0, 7196, 7195, 1, 0, 0, 0, 7196, 7197, 1, 0, 0, 0, 7197, 7198, 1, 0, 0, 0, 7198, 7304, 5, 3, 0, 0, 7199, 7200, 5, 421, 0, 0, 7200, 7202, 5, 2, 0, 0, 7201, 7203, 7, 98, 0, 0, 7202, 7201, 1, 0, 0, 0, 7202, 7203, 1, 0, 0, 0, 7203, 7208, 1, 0, 0, 0, 7204, 7206, 3, 676, 338, 0, 7205, 7204, 1, 0, 0, 0, 7205, 7206, 1, 0, 0, 0, 7206, 7207, 1, 0, 0, 0, 7207, 7209, 5, 64, 0, 0, 7208, 7205, 1, 0, 0, 0, 7208, 7209, 1, 0, 0, 0, 7209, 7210, 1, 0, 0, 0, 7210, 7211, 3, 732, 366, 0, 7211, 7212, 1, 0, 0, 0, 7212, 7213, 5, 3, 0, 0, 7213, 7304, 1, 0, 0, 0, 7214, 7215, 5, 408, 0, 0, 7215, 7216, 5, 2, 0, 0, 7216, 7217, 3, 676, 338, 0, 7217, 7218, 5, 6, 0, 0, 7218, 7219, 3, 676, 338, 0, 7219, 7220, 5, 3, 0, 0, 7220, 7304, 1, 0, 0, 0, 7221, 7222, 7, 99, 0, 0, 7222, 7304, 3, 536, 268, 0, 7223, 7224, 5, 426, 0, 0, 7224, 7225, 5, 2, 0, 0, 7225, 7226, 5, 266, 0, 0, 7226, 7236, 3, 826, 413, 0, 7227, 7234, 5, 6, 0, 0, 7228, 7229, 5, 424, 0, 0, 7229, 7230, 5, 2, 0, 0, 7230, 7231, 3, 694, 347, 0, 7231, 7232, 5, 3, 0, 0, 7232, 7235, 1, 0, 0, 0, 7233, 7235, 3, 732, 366, 0, 7234, 7228, 1, 0, 0, 0, 7234, 7233, 1, 0, 0, 0, 7235, 7237, 1, 0, 0, 0, 7236, 7227, 1, 0, 0, 0, 7236, 7237, 1, 0, 0, 0, 7237, 7238, 1, 0, 0, 0, 7238, 7239, 5, 3, 0, 0, 7239, 7304, 1, 0, 0, 0, 7240, 7241, 5, 427, 0, 0, 7241, 7242, 5, 2, 0, 0, 7242, 7243, 3, 684, 342, 0, 7243, 7244, 3, 700, 350, 0, 7244, 7245, 5, 3, 0, 0, 7245, 7304, 1, 0, 0, 0, 7246, 7247, 5, 428, 0, 0, 7247, 7248, 5, 2, 0, 0, 7248, 7249, 3, 694, 347, 0, 7249, 7250, 5, 3, 0, 0, 7250, 7304, 1, 0, 0, 0, 7251, 7252, 5, 429, 0, 0, 7252, 7253, 5, 2, 0, 0, 7253, 7254, 3, 698, 349, 0, 7254, 7257, 3, 676, 338, 0, 7255, 7256, 7, 100, 0, 0, 7256, 7258, 5, 378, 0, 0, 7257, 7255, 1, 0, 0, 0, 7257, 7258, 1, 0, 0, 0, 7258, 7259, 1, 0, 0, 0, 7259, 7260, 5, 3, 0, 0, 7260, 7304, 1, 0, 0, 0, 7261, 7262, 5, 430, 0, 0, 7262, 7263, 5, 2, 0, 0, 7263, 7264, 5, 266, 0, 0, 7264, 7267, 3, 826, 413, 0, 7265, 7266, 5, 6, 0, 0, 7266, 7268, 3, 676, 338, 0, 7267, 7265, 1, 0, 0, 0, 7267, 7268, 1, 0, 0, 0, 7268, 7269, 1, 0, 0, 0, 7269, 7270, 5, 3, 0, 0, 7270, 7304, 1, 0, 0, 0, 7271, 7272, 5, 431, 0, 0, 7272, 7273, 5, 2, 0, 0, 7273, 7274, 5, 383, 0, 0, 7274, 7275, 3, 676, 338, 0, 7275, 7276, 5, 6, 0, 0, 7276, 7280, 5, 375, 0, 0, 7277, 7278, 5, 269, 0, 0, 7278, 7281, 5, 450, 0, 0, 7279, 7281, 3, 676, 338, 0, 7280, 7277, 1, 0, 0, 0, 7280, 7279, 1, 0, 0, 0, 7281, 7291, 1, 0, 0, 0, 7282, 7283, 5, 6, 0, 0, 7283, 7289, 5, 339, 0, 0, 7284, 7286, 5, 269, 0, 0, 7285, 7284, 1, 0, 0, 0, 7285, 7286, 1, 0, 0, 0, 7286, 7287, 1, 0, 0, 0, 7287, 7290, 5, 450, 0, 0, 7288, 7290, 5, 385, 0, 0, 7289, 7285, 1, 0, 0, 0, 7289, 7288, 1, 0, 0, 0, 7290, 7292, 1, 0, 0, 0, 7291, 7282, 1, 0, 0, 0, 7291, 7292, 1, 0, 0, 0, 7292, 7293, 1, 0, 0, 0, 7293, 7294, 5, 3, 0, 0, 7294, 7304, 1, 0, 0, 0, 7295, 7296, 5, 432, 0, 0, 7296, 7297, 5, 2, 0, 0, 7297, 7298, 3, 698, 349, 0, 7298, 7299, 3, 676, 338, 0, 7299, 7300, 5, 36, 0, 0, 7300, 7301, 3, 656, 328, 0, 7301, 7302, 5, 3, 0, 0, 7302, 7304, 1, 0, 0, 0, 7303, 7129, 1, 0, 0, 0, 7303, 7135, 1, 0, 0, 0, 7303, 7136, 1, 0, 0, 0, 7303, 7140, 1, 0, 0, 0, 7303, 7141, 1, 0, 0, 0, 7303, 7142, 1, 0, 0, 0, 7303, 7143, 1, 0, 0, 0, 7303, 7144, 1, 0, 0, 0, 7303, 7145, 1, 0, 0, 0, 7303, 7146, 1, 0, 0, 0, 7303, 7153, 1, 0, 0, 0, 7303, 7162, 1, 0, 0, 0, 7303, 7171, 1, 0, 0, 0, 7303, 7184, 1, 0, 0, 0, 7303, 7193, 1, 0, 0, 0, 7303, 7199, 1, 0, 0, 0, 7303, 7214, 1, 0, 0, 0, 7303, 7221, 1, 0, 0, 0, 7303, 7223, 1, 0, 0, 0, 7303, 7240, 1, 0, 0, 0, 7303, 7246, 1, 0, 0, 0, 7303, 7251, 1, 0, 0, 0, 7303, 7261, 1, 0, 0, 0, 7303, 7271, 1, 0, 0, 0, 7303, 7295, 1, 0, 0, 0, 7304, 693, 1, 0, 0, 0, 7305, 7310, 3, 696, 348, 0, 7306, 7307, 5, 6, 0, 0, 7307, 7309, 3, 696, 348, 0, 7308, 7306, 1, 0, 0, 0, 7309, 7312, 1, 0, 0, 0, 7310, 7308, 1, 0, 0, 0, 7310, 7311, 1, 0, 0, 0, 7311, 695, 1, 0, 0, 0, 7312, 7310, 1, 0, 0, 0, 7313, 7316, 3, 676, 338, 0, 7314, 7315, 5, 36, 0, 0, 7315, 7317, 3, 826, 413, 0, 7316, 7314, 1, 0, 0, 0, 7316, 7317, 1, 0, 0, 0, 7317, 697, 1, 0, 0, 0, 7318, 7319, 7, 101, 0, 0, 7319, 699, 1, 0, 0, 0, 7320, 7322, 5, 286, 0, 0, 7321, 7323, 3, 702, 351, 0, 7322, 7321, 1, 0, 0, 0, 7322, 7323, 1, 0, 0, 0, 7323, 7324, 1, 0, 0, 0, 7324, 7326, 3, 684, 342, 0, 7325, 7327, 3, 702, 351, 0, 7326, 7325, 1, 0, 0, 0, 7326, 7327, 1, 0, 0, 0, 7327, 701, 1, 0, 0, 0, 7328, 7329, 5, 147, 0, 0, 7329, 7330, 7, 102, 0, 0, 7330, 703, 1, 0, 0, 0, 7331, 7332, 5, 104, 0, 0, 7332, 7337, 3, 706, 353, 0, 7333, 7334, 5, 6, 0, 0, 7334, 7336, 3, 706, 353, 0, 7335, 7333, 1, 0, 0, 0, 7336, 7339, 1, 0, 0, 0, 7337, 7335, 1, 0, 0, 0, 7337, 7338, 1, 0, 0, 0, 7338, 705, 1, 0, 0, 0, 7339, 7337, 1, 0, 0, 0, 7340, 7341, 3, 820, 410, 0, 7341, 7342, 5, 36, 0, 0, 7342, 7343, 3, 710, 355, 0, 7343, 707, 1, 0, 0, 0, 7344, 7347, 5, 124, 0, 0, 7345, 7348, 3, 710, 355, 0, 7346, 7348, 3, 820, 410, 0, 7347, 7345, 1, 0, 0, 0, 7347, 7346, 1, 0, 0, 0, 7348, 709, 1, 0, 0, 0, 7349, 7351, 5, 2, 0, 0, 7350, 7352, 3, 820, 410, 0, 7351, 7350, 1, 0, 0, 0, 7351, 7352, 1, 0, 0, 0, 7352, 7356, 1, 0, 0, 0, 7353, 7354, 5, 285, 0, 0, 7354, 7355, 5, 147, 0, 0, 7355, 7357, 3, 732, 366, 0, 7356, 7353, 1, 0, 0, 0, 7356, 7357, 1, 0, 0, 0, 7357, 7359, 1, 0, 0, 0, 7358, 7360, 3, 588, 294, 0, 7359, 7358, 1, 0, 0, 0, 7359, 7360, 1, 0, 0, 0, 7360, 7362, 1, 0, 0, 0, 7361, 7363, 3, 712, 356, 0, 7362, 7361, 1, 0, 0, 0, 7362, 7363, 1, 0, 0, 0, 7363, 7364, 1, 0, 0, 0, 7364, 7365, 5, 3, 0, 0, 7365, 711, 1, 0, 0, 0, 7366, 7371, 7, 103, 0, 0, 7367, 7368, 5, 387, 0, 0, 7368, 7369, 3, 714, 357, 0, 7369, 7370, 5, 33, 0, 0, 7370, 7372, 1, 0, 0, 0, 7371, 7367, 1, 0, 0, 0, 7371, 7372, 1, 0, 0, 0, 7372, 7373, 1, 0, 0, 0, 7373, 7374, 3, 714, 357, 0, 7374, 7384, 1, 0, 0, 0, 7375, 7382, 5, 199, 0, 0, 7376, 7377, 5, 434, 0, 0, 7377, 7383, 5, 414, 0, 0, 7378, 7383, 5, 66, 0, 0, 7379, 7383, 5, 467, 0, 0, 7380, 7381, 5, 269, 0, 0, 7381, 7383, 5, 482, 0, 0, 7382, 7376, 1, 0, 0, 0, 7382, 7378, 1, 0, 0, 0, 7382, 7379, 1, 0, 0, 0, 7382, 7380, 1, 0, 0, 0, 7383, 7385, 1, 0, 0, 0, 7384, 7375, 1, 0, 0, 0, 7384, 7385, 1, 0, 0, 0, 7385, 713, 1, 0, 0, 0, 7386, 7389, 5, 362, 0, 0, 7387, 7389, 3, 676, 338, 0, 7388, 7386, 1, 0, 0, 0, 7388, 7387, 1, 0, 0, 0, 7389, 7390, 1, 0, 0, 0, 7390, 7394, 7, 104, 0, 0, 7391, 7392, 5, 434, 0, 0, 7392, 7394, 5, 414, 0, 0, 7393, 7388, 1, 0, 0, 0, 7393, 7391, 1, 0, 0, 0, 7394, 715, 1, 0, 0, 0, 7395, 7403, 3, 718, 359, 0, 7396, 7397, 5, 2, 0, 0, 7397, 7398, 3, 732, 366, 0, 7398, 7399, 5, 6, 0, 0, 7399, 7400, 3, 676, 338, 0, 7400, 7401, 5, 3, 0, 0, 7401, 7403, 1, 0, 0, 0, 7402, 7395, 1, 0, 0, 0, 7402, 7396, 1, 0, 0, 0, 7403, 717, 1, 0, 0, 0, 7404, 7405, 5, 414, 0, 0, 7405, 7407, 5, 2, 0, 0, 7406, 7408, 3, 732, 366, 0, 7407, 7406, 1, 0, 0, 0, 7407, 7408, 1, 0, 0, 0, 7408, 7409, 1, 0, 0, 0, 7409, 7410, 5, 3, 0, 0, 7410, 719, 1, 0, 0, 0, 7411, 7412, 7, 105, 0, 0, 7412, 721, 1, 0, 0, 0, 7413, 7416, 5, 29, 0, 0, 7414, 7416, 3, 724, 362, 0, 7415, 7413, 1, 0, 0, 0, 7415, 7414, 1, 0, 0, 0, 7416, 723, 1, 0, 0, 0, 7417, 7418, 7, 106, 0, 0, 7418, 725, 1, 0, 0, 0, 7419, 7426, 5, 29, 0, 0, 7420, 7421, 5, 278, 0, 0, 7421, 7422, 5, 2, 0, 0, 7422, 7423, 3, 416, 208, 0, 7423, 7424, 5, 3, 0, 0, 7424, 7426, 1, 0, 0, 0, 7425, 7419, 1, 0, 0, 0, 7425, 7420, 1, 0, 0, 0, 7426, 727, 1, 0, 0, 0, 7427, 7434, 3, 722, 361, 0, 7428, 7429, 5, 278, 0, 0, 7429, 7430, 5, 2, 0, 0, 7430, 7431, 3, 416, 208, 0, 7431, 7432, 5, 3, 0, 0, 7432, 7434, 1, 0, 0, 0, 7433, 7427, 1, 0, 0, 0, 7433, 7428, 1, 0, 0, 0, 7434, 729, 1, 0, 0, 0, 7435, 7441, 3, 728, 364, 0, 7436, 7438, 5, 77, 0, 0, 7437, 7436, 1, 0, 0, 0, 7437, 7438, 1, 0, 0, 0, 7438, 7439, 1, 0, 0, 0, 7439, 7441, 7, 107, 0, 0, 7440, 7435, 1, 0, 0, 0, 7440, 7437, 1, 0, 0, 0, 7441, 731, 1, 0, 0, 0, 7442, 7447, 3, 676, 338, 0, 7443, 7444, 5, 6, 0, 0, 7444, 7446, 3, 676, 338, 0, 7445, 7443, 1, 0, 0, 0, 7446, 7449, 1, 0, 0, 0, 7447, 7445, 1, 0, 0, 0, 7447, 7448, 1, 0, 0, 0, 7448, 733, 1, 0, 0, 0, 7449, 7447, 1, 0, 0, 0, 7450, 7451, 5, 2, 0, 0, 7451, 7452, 3, 676, 338, 0, 7452, 7453, 5, 3, 0, 0, 7453, 7456, 1, 0, 0, 0, 7454, 7456, 3, 802, 401, 0, 7455, 7450, 1, 0, 0, 0, 7455, 7454, 1, 0, 0, 0, 7456, 735, 1, 0, 0, 0, 7457, 7460, 3, 676, 338, 0, 7458, 7460, 3, 802, 401, 0, 7459, 7457, 1, 0, 0, 0, 7459, 7458, 1, 0, 0, 0, 7460, 737, 1, 0, 0, 0, 7461, 7466, 3, 740, 370, 0, 7462, 7463, 5, 6, 0, 0, 7463, 7465, 3, 740, 370, 0, 7464, 7462, 1, 0, 0, 0, 7465, 7468, 1, 0, 0, 0, 7466, 7464, 1, 0, 0, 0, 7466, 7467, 1, 0, 0, 0, 7467, 739, 1, 0, 0, 0, 7468, 7466, 1, 0, 0, 0, 7469, 7477, 3, 802, 401, 0, 7470, 7477, 3, 676, 338, 0, 7471, 7474, 3, 822, 411, 0, 7472, 7473, 7, 108, 0, 0, 7473, 7475, 3, 676, 338, 0, 7474, 7472, 1, 0, 0, 0, 7474, 7475, 1, 0, 0, 0, 7475, 7477, 1, 0, 0, 0, 7476, 7469, 1, 0, 0, 0, 7476, 7470, 1, 0, 0, 0, 7476, 7471, 1, 0, 0, 0, 7477, 741, 1, 0, 0, 0, 7478, 7488, 5, 4, 0, 0, 7479, 7489, 3, 732, 366, 0, 7480, 7485, 3, 742, 371, 0, 7481, 7482, 5, 6, 0, 0, 7482, 7484, 3, 742, 371, 0, 7483, 7481, 1, 0, 0, 0, 7484, 7487, 1, 0, 0, 0, 7485, 7483, 1, 0, 0, 0, 7485, 7486, 1, 0, 0, 0, 7486, 7489, 1, 0, 0, 0, 7487, 7485, 1, 0, 0, 0, 7488, 7479, 1, 0, 0, 0, 7488, 7480, 1, 0, 0, 0, 7488, 7489, 1, 0, 0, 0, 7489, 7490, 1, 0, 0, 0, 7490, 7491, 5, 5, 0, 0, 7491, 743, 1, 0, 0, 0, 7492, 7501, 3, 828, 414, 0, 7493, 7501, 5, 384, 0, 0, 7494, 7501, 5, 264, 0, 0, 7495, 7501, 5, 176, 0, 0, 7496, 7501, 5, 218, 0, 0, 7497, 7501, 5, 261, 0, 0, 7498, 7501, 5, 326, 0, 0, 7499, 7501, 3, 810, 405, 0, 7500, 7492, 1, 0, 0, 0, 7500, 7493, 1, 0, 0, 0, 7500, 7494, 1, 0, 0, 0, 7500, 7495, 1, 0, 0, 0, 7500, 7496, 1, 0, 0, 0, 7500, 7497, 1, 0, 0, 0, 7500, 7498, 1, 0, 0, 0, 7500, 7499, 1, 0, 0, 0, 7501, 745, 1, 0, 0, 0, 7502, 7503, 7, 109, 0, 0, 7503, 747, 1, 0, 0, 0, 7504, 7505, 3, 676, 338, 0, 7505, 7506, 5, 64, 0, 0, 7506, 7509, 3, 676, 338, 0, 7507, 7508, 5, 62, 0, 0, 7508, 7510, 3, 676, 338, 0, 7509, 7507, 1, 0, 0, 0, 7509, 7510, 1, 0, 0, 0, 7510, 7526, 1, 0, 0, 0, 7511, 7512, 3, 676, 338, 0, 7512, 7513, 5, 62, 0, 0, 7513, 7516, 3, 676, 338, 0, 7514, 7515, 5, 64, 0, 0, 7515, 7517, 3, 676, 338, 0, 7516, 7514, 1, 0, 0, 0, 7516, 7517, 1, 0, 0, 0, 7517, 7526, 1, 0, 0, 0, 7518, 7519, 3, 676, 338, 0, 7519, 7520, 5, 127, 0, 0, 7520, 7521, 3, 676, 338, 0, 7521, 7522, 5, 197, 0, 0, 7522, 7523, 3, 676, 338, 0, 7523, 7526, 1, 0, 0, 0, 7524, 7526, 3, 732, 366, 0, 7525, 7504, 1, 0, 0, 0, 7525, 7511, 1, 0, 0, 0, 7525, 7518, 1, 0, 0, 0, 7525, 7524, 1, 0, 0, 0, 7526, 749, 1, 0, 0, 0, 7527, 7528, 5, 102, 0, 0, 7528, 7529, 3, 676, 338, 0, 7529, 7530, 5, 93, 0, 0, 7530, 7531, 3, 676, 338, 0, 7531, 751, 1, 0, 0, 0, 7532, 7535, 5, 11, 0, 0, 7533, 7536, 3, 826, 413, 0, 7534, 7536, 5, 9, 0, 0, 7535, 7533, 1, 0, 0, 0, 7535, 7534, 1, 0, 0, 0, 7536, 7550, 1, 0, 0, 0, 7537, 7546, 5, 4, 0, 0, 7538, 7547, 3, 676, 338, 0, 7539, 7541, 3, 676, 338, 0, 7540, 7539, 1, 0, 0, 0, 7540, 7541, 1, 0, 0, 0, 7541, 7542, 1, 0, 0, 0, 7542, 7544, 5, 8, 0, 0, 7543, 7545, 3, 676, 338, 0, 7544, 7543, 1, 0, 0, 0, 7544, 7545, 1, 0, 0, 0, 7545, 7547, 1, 0, 0, 0, 7546, 7538, 1, 0, 0, 0, 7546, 7540, 1, 0, 0, 0, 7547, 7548, 1, 0, 0, 0, 7548, 7550, 5, 5, 0, 0, 7549, 7532, 1, 0, 0, 0, 7549, 7537, 1, 0, 0, 0, 7550, 753, 1, 0, 0, 0, 7551, 7553, 3, 752, 376, 0, 7552, 7551, 1, 0, 0, 0, 7553, 7554, 1, 0, 0, 0, 7554, 7552, 1, 0, 0, 0, 7554, 7555, 1, 0, 0, 0, 7555, 755, 1, 0, 0, 0, 7556, 7558, 3, 752, 376, 0, 7557, 7556, 1, 0, 0, 0, 7558, 7561, 1, 0, 0, 0, 7559, 7557, 1, 0, 0, 0, 7559, 7560, 1, 0, 0, 0, 7560, 757, 1, 0, 0, 0, 7561, 7559, 1, 0, 0, 0, 7562, 7567, 3, 760, 380, 0, 7563, 7564, 5, 6, 0, 0, 7564, 7566, 3, 760, 380, 0, 7565, 7563, 1, 0, 0, 0, 7566, 7569, 1, 0, 0, 0, 7567, 7565, 1, 0, 0, 0, 7567, 7568, 1, 0, 0, 0, 7568, 759, 1, 0, 0, 0, 7569, 7567, 1, 0, 0, 0, 7570, 7575, 3, 736, 368, 0, 7571, 7572, 5, 36, 0, 0, 7572, 7576, 3, 826, 413, 0, 7573, 7576, 3, 828, 414, 0, 7574, 7576, 1, 0, 0, 0, 7575, 7571, 1, 0, 0, 0, 7575, 7573, 1, 0, 0, 0, 7575, 7574, 1, 0, 0, 0, 7576, 7579, 1, 0, 0, 0, 7577, 7579, 5, 9, 0, 0, 7578, 7570, 1, 0, 0, 0, 7578, 7577, 1, 0, 0, 0, 7579, 761, 1, 0, 0, 0, 7580, 7585, 3, 782, 391, 0, 7581, 7582, 5, 6, 0, 0, 7582, 7584, 3, 782, 391, 0, 7583, 7581, 1, 0, 0, 0, 7584, 7587, 1, 0, 0, 0, 7585, 7583, 1, 0, 0, 0, 7585, 7586, 1, 0, 0, 0, 7586, 763, 1, 0, 0, 0, 7587, 7585, 1, 0, 0, 0, 7588, 7593, 3, 776, 388, 0, 7589, 7590, 5, 6, 0, 0, 7590, 7592, 3, 776, 388, 0, 7591, 7589, 1, 0, 0, 0, 7592, 7595, 1, 0, 0, 0, 7593, 7591, 1, 0, 0, 0, 7593, 7594, 1, 0, 0, 0, 7594, 765, 1, 0, 0, 0, 7595, 7593, 1, 0, 0, 0, 7596, 7601, 3, 792, 396, 0, 7597, 7598, 5, 6, 0, 0, 7598, 7600, 3, 792, 396, 0, 7599, 7597, 1, 0, 0, 0, 7600, 7603, 1, 0, 0, 0, 7601, 7599, 1, 0, 0, 0, 7601, 7602, 1, 0, 0, 0, 7602, 767, 1, 0, 0, 0, 7603, 7601, 1, 0, 0, 0, 7604, 7609, 3, 790, 395, 0, 7605, 7606, 5, 6, 0, 0, 7606, 7608, 3, 790, 395, 0, 7607, 7605, 1, 0, 0, 0, 7608, 7611, 1, 0, 0, 0, 7609, 7607, 1, 0, 0, 0, 7609, 7610, 1, 0, 0, 0, 7610, 769, 1, 0, 0, 0, 7611, 7609, 1, 0, 0, 0, 7612, 7613, 3, 782, 391, 0, 7613, 771, 1, 0, 0, 0, 7614, 7615, 3, 782, 391, 0, 7615, 773, 1, 0, 0, 0, 7616, 7617, 3, 782, 391, 0, 7617, 775, 1, 0, 0, 0, 7618, 7619, 3, 782, 391, 0, 7619, 777, 1, 0, 0, 0, 7620, 7621, 3, 782, 391, 0, 7621, 779, 1, 0, 0, 0, 7622, 7623, 3, 318, 159, 0, 7623, 781, 1, 0, 0, 0, 7624, 7626, 3, 820, 410, 0, 7625, 7627, 3, 754, 377, 0, 7626, 7625, 1, 0, 0, 0, 7626, 7627, 1, 0, 0, 0, 7627, 783, 1, 0, 0, 0, 7628, 7633, 3, 772, 386, 0, 7629, 7630, 5, 6, 0, 0, 7630, 7632, 3, 772, 386, 0, 7631, 7629, 1, 0, 0, 0, 7632, 7635, 1, 0, 0, 0, 7633, 7631, 1, 0, 0, 0, 7633, 7634, 1, 0, 0, 0, 7634, 785, 1, 0, 0, 0, 7635, 7633, 1, 0, 0, 0, 7636, 7641, 3, 820, 410, 0, 7637, 7638, 5, 6, 0, 0, 7638, 7640, 3, 820, 410, 0, 7639, 7637, 1, 0, 0, 0, 7640, 7643, 1, 0, 0, 0, 7641, 7639, 1, 0, 0, 0, 7641, 7642, 1, 0, 0, 0, 7642, 787, 1, 0, 0, 0, 7643, 7641, 1, 0, 0, 0, 7644, 7645, 3, 318, 159, 0, 7645, 789, 1, 0, 0, 0, 7646, 7647, 3, 318, 159, 0, 7647, 791, 1, 0, 0, 0, 7648, 7649, 3, 318, 159, 0, 7649, 793, 1, 0, 0, 0, 7650, 7651, 3, 820, 410, 0, 7651, 795, 1, 0, 0, 0, 7652, 7653, 3, 820, 410, 0, 7653, 797, 1, 0, 0, 0, 7654, 7659, 3, 822, 411, 0, 7655, 7656, 3, 820, 410, 0, 7656, 7657, 3, 754, 377, 0, 7657, 7659, 1, 0, 0, 0, 7658, 7654, 1, 0, 0, 0, 7658, 7655, 1, 0, 0, 0, 7659, 799, 1, 0, 0, 0, 7660, 7665, 3, 822, 411, 0, 7661, 7662, 3, 820, 410, 0, 7662, 7663, 3, 754, 377, 0, 7663, 7665, 1, 0, 0, 0, 7664, 7660, 1, 0, 0, 0, 7664, 7661, 1, 0, 0, 0, 7665, 801, 1, 0, 0, 0, 7666, 7667, 3, 820, 410, 0, 7667, 7668, 3, 756, 378, 0, 7668, 7671, 1, 0, 0, 0, 7669, 7671, 4, 401, 10, 0, 7670, 7666, 1, 0, 0, 0, 7670, 7669, 1, 0, 0, 0, 7671, 803, 1, 0, 0, 0, 7672, 7673, 3, 820, 410, 0, 7673, 805, 1, 0, 0, 0, 7674, 7679, 3, 822, 411, 0, 7675, 7676, 3, 820, 410, 0, 7676, 7677, 3, 754, 377, 0, 7677, 7679, 1, 0, 0, 0, 7678, 7674, 1, 0, 0, 0, 7678, 7675, 1, 0, 0, 0, 7679, 807, 1, 0, 0, 0, 7680, 7685, 3, 822, 411, 0, 7681, 7682, 3, 820, 410, 0, 7682, 7683, 3, 754, 377, 0, 7683, 7685, 1, 0, 0, 0, 7684, 7680, 1, 0, 0, 0, 7684, 7681, 1, 0, 0, 0, 7685, 809, 1, 0, 0, 0, 7686, 7689, 3, 812, 406, 0, 7687, 7688, 5, 487, 0, 0, 7688, 7690, 3, 812, 406, 0, 7689, 7687, 1, 0, 0, 0, 7689, 7690, 1, 0, 0, 0, 7690, 811, 1, 0, 0, 0, 7691, 7703, 5, 561, 0, 0, 7692, 7703, 5, 563, 0, 0, 7693, 7697, 5, 565, 0, 0, 7694, 7696, 5, 591, 0, 0, 7695, 7694, 1, 0, 0, 0, 7696, 7699, 1, 0, 0, 0, 7697, 7695, 1, 0, 0, 0, 7697, 7698, 1, 0, 0, 0, 7698, 7700, 1, 0, 0, 0, 7699, 7697, 1, 0, 0, 0, 7700, 7703, 5, 592, 0, 0, 7701, 7703, 5, 587, 0, 0, 7702, 7691, 1, 0, 0, 0, 7702, 7692, 1, 0, 0, 0, 7702, 7693, 1, 0, 0, 0, 7702, 7701, 1, 0, 0, 0, 7703, 813, 1, 0, 0, 0, 7704, 7706, 7, 30, 0, 0, 7705, 7704, 1, 0, 0, 0, 7705, 7706, 1, 0, 0, 0, 7706, 7707, 1, 0, 0, 0, 7707, 7708, 5, 574, 0, 0, 7708, 815, 1, 0, 0, 0, 7709, 7715, 3, 824, 412, 0, 7710, 7715, 5, 52, 0, 0, 7711, 7715, 5, 49, 0, 0, 7712, 7715, 5, 89, 0, 0, 7713, 7715, 5, 524, 0, 0, 7714, 7709, 1, 0, 0, 0, 7714, 7710, 1, 0, 0, 0, 7714, 7711, 1, 0, 0, 0, 7714, 7712, 1, 0, 0, 0, 7714, 7713, 1, 0, 0, 0, 7715, 817, 1, 0, 0, 0, 7716, 7721, 3, 816, 408, 0, 7717, 7718, 5, 6, 0, 0, 7718, 7720, 3, 816, 408, 0, 7719, 7717, 1, 0, 0, 0, 7720, 7723, 1, 0, 0, 0, 7721, 7719, 1, 0, 0, 0, 7721, 7722, 1, 0, 0, 0, 7722, 819, 1, 0, 0, 0, 7723, 7721, 1, 0, 0, 0, 7724, 7727, 3, 828, 414, 0, 7725, 7727, 3, 832, 416, 0, 7726, 7724, 1, 0, 0, 0, 7726, 7725, 1, 0, 0, 0, 7727, 821, 1, 0, 0, 0, 7728, 7731, 3, 828, 414, 0, 7729, 7731, 3, 834, 417, 0, 7730, 7728, 1, 0, 0, 0, 7730, 7729, 1, 0, 0, 0, 7731, 823, 1, 0, 0, 0, 7732, 7736, 3, 828, 414, 0, 7733, 7736, 3, 832, 416, 0, 7734, 7736, 3, 834, 417, 0, 7735, 7732, 1, 0, 0, 0, 7735, 7733, 1, 0, 0, 0, 7735, 7734, 1, 0, 0, 0, 7736, 825, 1, 0, 0, 0, 7737, 7742, 3, 828, 414, 0, 7738, 7742, 3, 832, 416, 0, 7739, 7742, 3, 834, 417, 0, 7740, 7742, 3, 836, 418, 0, 7741, 7737, 1, 0, 0, 0, 7741, 7738, 1, 0, 0, 0, 7741, 7739, 1, 0, 0, 0, 7741, 7740, 1, 0, 0, 0, 7742, 827, 1, 0, 0, 0, 7743, 7746, 5, 552, 0, 0, 7744, 7745, 5, 487, 0, 0, 7745, 7747, 3, 812, 406, 0, 7746, 7744, 1, 0, 0, 0, 7746, 7747, 1, 0, 0, 0, 7747, 7755, 1, 0, 0, 0, 7748, 7755, 3, 810, 405, 0, 7749, 7755, 5, 553, 0, 0, 7750, 7755, 5, 557, 0, 0, 7751, 7755, 5, 577, 0, 0, 7752, 7755, 5, 578, 0, 0, 7753, 7755, 3, 830, 415, 0, 7754, 7743, 1, 0, 0, 0, 7754, 7748, 1, 0, 0, 0, 7754, 7749, 1, 0, 0, 0, 7754, 7750, 1, 0, 0, 0, 7754, 7751, 1, 0, 0, 0, 7754, 7752, 1, 0, 0, 0, 7754, 7753, 1, 0, 0, 0, 7755, 829, 1, 0, 0, 0, 7756, 7757, 7, 110, 0, 0, 7757, 831, 1, 0, 0, 0, 7758, 7810, 5, 387, 0, 0, 7759, 7810, 5, 388, 0, 0, 7760, 7810, 3, 664, 332, 0, 7761, 7810, 5, 390, 0, 0, 7762, 7810, 5, 391, 0, 0, 7763, 7810, 3, 666, 333, 0, 7764, 7810, 5, 393, 0, 0, 7765, 7810, 5, 394, 0, 0, 7766, 7810, 5, 395, 0, 0, 7767, 7810, 5, 396, 0, 0, 7768, 7810, 5, 397, 0, 0, 7769, 7810, 5, 398, 0, 0, 7770, 7810, 5, 399, 0, 0, 7771, 7810, 5, 470, 0, 0, 7772, 7810, 5, 400, 0, 0, 7773, 7810, 5, 401, 0, 0, 7774, 7810, 5, 402, 0, 0, 7775, 7810, 5, 403, 0, 0, 7776, 7810, 5, 404, 0, 0, 7777, 7810, 5, 405, 0, 0, 7778, 7810, 5, 406, 0, 0, 7779, 7810, 5, 407, 0, 0, 7780, 7810, 5, 489, 0, 0, 7781, 7810, 5, 408, 0, 0, 7782, 7810, 3, 660, 330, 0, 7783, 7810, 5, 453, 0, 0, 7784, 7810, 5, 410, 0, 0, 7785, 7810, 5, 411, 0, 0, 7786, 7810, 5, 412, 0, 0, 7787, 7810, 5, 413, 0, 0, 7788, 7810, 5, 414, 0, 0, 7789, 7810, 5, 415, 0, 0, 7790, 7810, 5, 416, 0, 0, 7791, 7810, 5, 417, 0, 0, 7792, 7810, 5, 418, 0, 0, 7793, 7810, 5, 419, 0, 0, 7794, 7810, 5, 420, 0, 0, 7795, 7810, 5, 421, 0, 0, 7796, 7810, 5, 422, 0, 0, 7797, 7810, 5, 423, 0, 0, 7798, 7810, 5, 424, 0, 0, 7799, 7810, 5, 425, 0, 0, 7800, 7810, 5, 426, 0, 0, 7801, 7810, 5, 427, 0, 0, 7802, 7810, 5, 428, 0, 0, 7803, 7810, 5, 476, 0, 0, 7804, 7810, 5, 429, 0, 0, 7805, 7810, 5, 430, 0, 0, 7806, 7810, 5, 431, 0, 0, 7807, 7810, 5, 432, 0, 0, 7808, 7810, 5, 474, 0, 0, 7809, 7758, 1, 0, 0, 0, 7809, 7759, 1, 0, 0, 0, 7809, 7760, 1, 0, 0, 0, 7809, 7761, 1, 0, 0, 0, 7809, 7762, 1, 0, 0, 0, 7809, 7763, 1, 0, 0, 0, 7809, 7764, 1, 0, 0, 0, 7809, 7765, 1, 0, 0, 0, 7809, 7766, 1, 0, 0, 0, 7809, 7767, 1, 0, 0, 0, 7809, 7768, 1, 0, 0, 0, 7809, 7769, 1, 0, 0, 0, 7809, 7770, 1, 0, 0, 0, 7809, 7771, 1, 0, 0, 0, 7809, 7772, 1, 0, 0, 0, 7809, 7773, 1, 0, 0, 0, 7809, 7774, 1, 0, 0, 0, 7809, 7775, 1, 0, 0, 0, 7809, 7776, 1, 0, 0, 0, 7809, 7777, 1, 0, 0, 0, 7809, 7778, 1, 0, 0, 0, 7809, 7779, 1, 0, 0, 0, 7809, 7780, 1, 0, 0, 0, 7809, 7781, 1, 0, 0, 0, 7809, 7782, 1, 0, 0, 0, 7809, 7783, 1, 0, 0, 0, 7809, 7784, 1, 0, 0, 0, 7809, 7785, 1, 0, 0, 0, 7809, 7786, 1, 0, 0, 0, 7809, 7787, 1, 0, 0, 0, 7809, 7788, 1, 0, 0, 0, 7809, 7789, 1, 0, 0, 0, 7809, 7790, 1, 0, 0, 0, 7809, 7791, 1, 0, 0, 0, 7809, 7792, 1, 0, 0, 0, 7809, 7793, 1, 0, 0, 0, 7809, 7794, 1, 0, 0, 0, 7809, 7795, 1, 0, 0, 0, 7809, 7796, 1, 0, 0, 0, 7809, 7797, 1, 0, 0, 0, 7809, 7798, 1, 0, 0, 0, 7809, 7799, 1, 0, 0, 0, 7809, 7800, 1, 0, 0, 0, 7809, 7801, 1, 0, 0, 0, 7809, 7802, 1, 0, 0, 0, 7809, 7803, 1, 0, 0, 0, 7809, 7804, 1, 0, 0, 0, 7809, 7805, 1, 0, 0, 0, 7809, 7806, 1, 0, 0, 0, 7809, 7807, 1, 0, 0, 0, 7809, 7808, 1, 0, 0, 0, 7810, 833, 1, 0, 0, 0, 7811, 7812, 7, 111, 0, 0, 7812, 835, 1, 0, 0, 0, 7813, 7814, 7, 112, 0, 0, 7814, 837, 1, 0, 0, 0, 7815, 7817, 3, 840, 420, 0, 7816, 7815, 1, 0, 0, 0, 7816, 7817, 1, 0, 0, 0, 7817, 7828, 1, 0, 0, 0, 7818, 7826, 5, 178, 0, 0, 7819, 7823, 3, 842, 421, 0, 7820, 7823, 5, 178, 0, 0, 7821, 7823, 3, 840, 420, 0, 7822, 7819, 1, 0, 0, 0, 7822, 7820, 1, 0, 0, 0, 7822, 7821, 1, 0, 0, 0, 7823, 7824, 1, 0, 0, 0, 7824, 7822, 1, 0, 0, 0, 7824, 7825, 1, 0, 0, 0, 7825, 7827, 1, 0, 0, 0, 7826, 7822, 1, 0, 0, 0, 7826, 7827, 1, 0, 0, 0, 7827, 7829, 1, 0, 0, 0, 7828, 7818, 1, 0, 0, 0, 7828, 7829, 1, 0, 0, 0, 7829, 7830, 1, 0, 0, 0, 7830, 7834, 5, 146, 0, 0, 7831, 7833, 3, 848, 424, 0, 7832, 7831, 1, 0, 0, 0, 7833, 7836, 1, 0, 0, 0, 7834, 7832, 1, 0, 0, 0, 7834, 7835, 1, 0, 0, 0, 7835, 7838, 1, 0, 0, 0, 7836, 7834, 1, 0, 0, 0, 7837, 7839, 3, 926, 463, 0, 7838, 7837, 1, 0, 0, 0, 7838, 7839, 1, 0, 0, 0, 7839, 7840, 1, 0, 0, 0, 7840, 7842, 5, 454, 0, 0, 7841, 7843, 3, 930, 465, 0, 7842, 7841, 1, 0, 0, 0, 7842, 7843, 1, 0, 0, 0, 7843, 839, 1, 0, 0, 0, 7844, 7845, 5, 18, 0, 0, 7845, 7846, 3, 930, 465, 0, 7846, 7847, 5, 19, 0, 0, 7847, 841, 1, 0, 0, 0, 7848, 7895, 3, 930, 465, 0, 7849, 7850, 5, 496, 0, 0, 7850, 7853, 5, 62, 0, 0, 7851, 7854, 5, 28, 0, 0, 7852, 7854, 3, 820, 410, 0, 7853, 7851, 1, 0, 0, 0, 7853, 7852, 1, 0, 0, 0, 7854, 7896, 1, 0, 0, 0, 7855, 7857, 5, 497, 0, 0, 7856, 7855, 1, 0, 0, 0, 7856, 7857, 1, 0, 0, 0, 7857, 7858, 1, 0, 0, 0, 7858, 7860, 3, 654, 327, 0, 7859, 7861, 3, 98, 49, 0, 7860, 7859, 1, 0, 0, 0, 7860, 7861, 1, 0, 0, 0, 7861, 7864, 1, 0, 0, 0, 7862, 7863, 5, 77, 0, 0, 7863, 7865, 5, 78, 0, 0, 7864, 7862, 1, 0, 0, 0, 7864, 7865, 1, 0, 0, 0, 7865, 7871, 1, 0, 0, 0, 7866, 7869, 3, 846, 423, 0, 7867, 7869, 5, 53, 0, 0, 7868, 7866, 1, 0, 0, 0, 7868, 7867, 1, 0, 0, 0, 7869, 7870, 1, 0, 0, 0, 7870, 7872, 3, 932, 466, 0, 7871, 7868, 1, 0, 0, 0, 7871, 7872, 1, 0, 0, 0, 7872, 7896, 1, 0, 0, 0, 7873, 7875, 5, 269, 0, 0, 7874, 7873, 1, 0, 0, 0, 7874, 7875, 1, 0, 0, 0, 7875, 7876, 1, 0, 0, 0, 7876, 7878, 5, 324, 0, 0, 7877, 7874, 1, 0, 0, 0, 7877, 7878, 1, 0, 0, 0, 7878, 7879, 1, 0, 0, 0, 7879, 7891, 5, 172, 0, 0, 7880, 7881, 5, 2, 0, 0, 7881, 7886, 3, 844, 422, 0, 7882, 7883, 5, 6, 0, 0, 7883, 7885, 3, 844, 422, 0, 7884, 7882, 1, 0, 0, 0, 7885, 7888, 1, 0, 0, 0, 7886, 7884, 1, 0, 0, 0, 7886, 7887, 1, 0, 0, 0, 7887, 7889, 1, 0, 0, 0, 7888, 7886, 1, 0, 0, 0, 7889, 7890, 5, 3, 0, 0, 7890, 7892, 1, 0, 0, 0, 7891, 7880, 1, 0, 0, 0, 7891, 7892, 1, 0, 0, 0, 7892, 7893, 1, 0, 0, 0, 7893, 7894, 7, 113, 0, 0, 7894, 7896, 3, 562, 281, 0, 7895, 7849, 1, 0, 0, 0, 7895, 7856, 1, 0, 0, 0, 7895, 7877, 1, 0, 0, 0, 7896, 7897, 1, 0, 0, 0, 7897, 7898, 5, 7, 0, 0, 7898, 843, 1, 0, 0, 0, 7899, 7900, 3, 930, 465, 0, 7900, 7901, 3, 654, 327, 0, 7901, 845, 1, 0, 0, 0, 7902, 7903, 7, 114, 0, 0, 7903, 847, 1, 0, 0, 0, 7904, 7905, 3, 838, 419, 0, 7905, 7906, 5, 7, 0, 0, 7906, 7929, 1, 0, 0, 0, 7907, 7929, 3, 876, 438, 0, 7908, 7929, 3, 878, 439, 0, 7909, 7929, 3, 854, 427, 0, 7910, 7929, 3, 862, 431, 0, 7911, 7929, 3, 866, 433, 0, 7912, 7929, 3, 868, 434, 0, 7913, 7929, 3, 872, 436, 0, 7914, 7929, 3, 874, 437, 0, 7915, 7929, 3, 882, 441, 0, 7916, 7929, 3, 886, 443, 0, 7917, 7929, 3, 888, 444, 0, 7918, 7929, 3, 850, 425, 0, 7919, 7929, 3, 852, 426, 0, 7920, 7929, 3, 856, 428, 0, 7921, 7929, 3, 892, 446, 0, 7922, 7929, 3, 896, 448, 0, 7923, 7929, 3, 900, 450, 0, 7924, 7929, 3, 916, 458, 0, 7925, 7929, 3, 918, 459, 0, 7926, 7929, 3, 920, 460, 0, 7927, 7929, 3, 922, 461, 0, 7928, 7904, 1, 0, 0, 0, 7928, 7907, 1, 0, 0, 0, 7928, 7908, 1, 0, 0, 0, 7928, 7909, 1, 0, 0, 0, 7928, 7910, 1, 0, 0, 0, 7928, 7911, 1, 0, 0, 0, 7928, 7912, 1, 0, 0, 0, 7928, 7913, 1, 0, 0, 0, 7928, 7914, 1, 0, 0, 0, 7928, 7915, 1, 0, 0, 0, 7928, 7916, 1, 0, 0, 0, 7928, 7917, 1, 0, 0, 0, 7928, 7918, 1, 0, 0, 0, 7928, 7919, 1, 0, 0, 0, 7928, 7920, 1, 0, 0, 0, 7928, 7921, 1, 0, 0, 0, 7928, 7922, 1, 0, 0, 0, 7928, 7923, 1, 0, 0, 0, 7928, 7924, 1, 0, 0, 0, 7928, 7925, 1, 0, 0, 0, 7928, 7926, 1, 0, 0, 0, 7928, 7927, 1, 0, 0, 0, 7929, 849, 1, 0, 0, 0, 7930, 7931, 5, 498, 0, 0, 7931, 7932, 3, 932, 466, 0, 7932, 7933, 5, 7, 0, 0, 7933, 851, 1, 0, 0, 0, 7934, 7935, 5, 433, 0, 0, 7935, 7942, 3, 930, 465, 0, 7936, 7938, 5, 2, 0, 0, 7937, 7939, 3, 732, 366, 0, 7938, 7937, 1, 0, 0, 0, 7938, 7939, 1, 0, 0, 0, 7939, 7940, 1, 0, 0, 0, 7940, 7941, 5, 3, 0, 0, 7941, 7943, 5, 7, 0, 0, 7942, 7936, 1, 0, 0, 0, 7942, 7943, 1, 0, 0, 0, 7943, 7954, 1, 0, 0, 0, 7944, 7945, 5, 57, 0, 0, 7945, 7946, 3, 930, 465, 0, 7946, 7948, 5, 2, 0, 0, 7947, 7949, 3, 732, 366, 0, 7948, 7947, 1, 0, 0, 0, 7948, 7949, 1, 0, 0, 0, 7949, 7950, 1, 0, 0, 0, 7950, 7951, 5, 3, 0, 0, 7951, 7952, 5, 7, 0, 0, 7952, 7954, 1, 0, 0, 0, 7953, 7934, 1, 0, 0, 0, 7953, 7944, 1, 0, 0, 0, 7954, 853, 1, 0, 0, 0, 7955, 7956, 3, 860, 430, 0, 7956, 7957, 3, 846, 423, 0, 7957, 7958, 3, 932, 466, 0, 7958, 7959, 5, 7, 0, 0, 7959, 855, 1, 0, 0, 0, 7960, 7962, 5, 499, 0, 0, 7961, 7963, 7, 115, 0, 0, 7962, 7961, 1, 0, 0, 0, 7962, 7963, 1, 0, 0, 0, 7963, 7964, 1, 0, 0, 0, 7964, 7965, 5, 500, 0, 0, 7965, 7970, 3, 858, 429, 0, 7966, 7967, 5, 6, 0, 0, 7967, 7969, 3, 858, 429, 0, 7968, 7966, 1, 0, 0, 0, 7969, 7972, 1, 0, 0, 0, 7970, 7968, 1, 0, 0, 0, 7970, 7971, 1, 0, 0, 0, 7971, 7973, 1, 0, 0, 0, 7972, 7970, 1, 0, 0, 0, 7973, 7974, 5, 7, 0, 0, 7974, 857, 1, 0, 0, 0, 7975, 7976, 3, 860, 430, 0, 7976, 7977, 3, 846, 423, 0, 7977, 7978, 3, 820, 410, 0, 7978, 859, 1, 0, 0, 0, 7979, 7982, 3, 318, 159, 0, 7980, 7982, 5, 28, 0, 0, 7981, 7979, 1, 0, 0, 0, 7981, 7980, 1, 0, 0, 0, 7982, 7989, 1, 0, 0, 0, 7983, 7984, 5, 4, 0, 0, 7984, 7985, 3, 676, 338, 0, 7985, 7986, 5, 5, 0, 0, 7986, 7988, 1, 0, 0, 0, 7987, 7983, 1, 0, 0, 0, 7988, 7991, 1, 0, 0, 0, 7989, 7987, 1, 0, 0, 0, 7989, 7990, 1, 0, 0, 0, 7990, 861, 1, 0, 0, 0, 7991, 7989, 1, 0, 0, 0, 7992, 7993, 5, 220, 0, 0, 7993, 7994, 3, 932, 466, 0, 7994, 7998, 5, 93, 0, 0, 7995, 7997, 3, 848, 424, 0, 7996, 7995, 1, 0, 0, 0, 7997, 8000, 1, 0, 0, 0, 7998, 7996, 1, 0, 0, 0, 7998, 7999, 1, 0, 0, 0, 7999, 8012, 1, 0, 0, 0, 8000, 7998, 1, 0, 0, 0, 8001, 8002, 5, 502, 0, 0, 8002, 8003, 3, 676, 338, 0, 8003, 8007, 5, 93, 0, 0, 8004, 8006, 3, 848, 424, 0, 8005, 8004, 1, 0, 0, 0, 8006, 8009, 1, 0, 0, 0, 8007, 8005, 1, 0, 0, 0, 8007, 8008, 1, 0, 0, 0, 8008, 8011, 1, 0, 0, 0, 8009, 8007, 1, 0, 0, 0, 8010, 8001, 1, 0, 0, 0, 8011, 8014, 1, 0, 0, 0, 8012, 8010, 1, 0, 0, 0, 8012, 8013, 1, 0, 0, 0, 8013, 8016, 1, 0, 0, 0, 8014, 8012, 1, 0, 0, 0, 8015, 8017, 3, 864, 432, 0, 8016, 8015, 1, 0, 0, 0, 8016, 8017, 1, 0, 0, 0, 8017, 8018, 1, 0, 0, 0, 8018, 8019, 5, 454, 0, 0, 8019, 8020, 5, 220, 0, 0, 8020, 8021, 5, 7, 0, 0, 8021, 863, 1, 0, 0, 0, 8022, 8026, 5, 58, 0, 0, 8023, 8025, 3, 848, 424, 0, 8024, 8023, 1, 0, 0, 0, 8025, 8028, 1, 0, 0, 0, 8026, 8024, 1, 0, 0, 0, 8026, 8027, 1, 0, 0, 0, 8027, 865, 1, 0, 0, 0, 8028, 8026, 1, 0, 0, 0, 8029, 8031, 5, 40, 0, 0, 8030, 8032, 3, 932, 466, 0, 8031, 8030, 1, 0, 0, 0, 8031, 8032, 1, 0, 0, 0, 8032, 8042, 1, 0, 0, 0, 8033, 8034, 5, 102, 0, 0, 8034, 8035, 3, 732, 366, 0, 8035, 8039, 5, 93, 0, 0, 8036, 8038, 3, 848, 424, 0, 8037, 8036, 1, 0, 0, 0, 8038, 8041, 1, 0, 0, 0, 8039, 8037, 1, 0, 0, 0, 8039, 8040, 1, 0, 0, 0, 8040, 8043, 1, 0, 0, 0, 8041, 8039, 1, 0, 0, 0, 8042, 8033, 1, 0, 0, 0, 8043, 8044, 1, 0, 0, 0, 8044, 8042, 1, 0, 0, 0, 8044, 8045, 1, 0, 0, 0, 8045, 8047, 1, 0, 0, 0, 8046, 8048, 3, 864, 432, 0, 8047, 8046, 1, 0, 0, 0, 8047, 8048, 1, 0, 0, 0, 8048, 8049, 1, 0, 0, 0, 8049, 8050, 5, 454, 0, 0, 8050, 8051, 5, 40, 0, 0, 8051, 8052, 5, 7, 0, 0, 8052, 867, 1, 0, 0, 0, 8053, 8055, 3, 840, 420, 0, 8054, 8053, 1, 0, 0, 0, 8054, 8055, 1, 0, 0, 0, 8055, 8060, 1, 0, 0, 0, 8056, 8057, 5, 503, 0, 0, 8057, 8061, 3, 676, 338, 0, 8058, 8059, 5, 62, 0, 0, 8059, 8061, 3, 870, 435, 0, 8060, 8056, 1, 0, 0, 0, 8060, 8058, 1, 0, 0, 0, 8060, 8061, 1, 0, 0, 0, 8061, 8062, 1, 0, 0, 0, 8062, 8063, 3, 884, 442, 0, 8063, 869, 1, 0, 0, 0, 8064, 8065, 3, 316, 158, 0, 8065, 8088, 5, 68, 0, 0, 8066, 8068, 3, 820, 410, 0, 8067, 8069, 3, 536, 268, 0, 8068, 8067, 1, 0, 0, 0, 8068, 8069, 1, 0, 0, 0, 8069, 8089, 1, 0, 0, 0, 8070, 8089, 3, 562, 281, 0, 8071, 8089, 3, 522, 261, 0, 8072, 8073, 5, 202, 0, 0, 8073, 8076, 3, 676, 338, 0, 8074, 8075, 5, 100, 0, 0, 8075, 8077, 3, 732, 366, 0, 8076, 8074, 1, 0, 0, 0, 8076, 8077, 1, 0, 0, 0, 8077, 8089, 1, 0, 0, 0, 8078, 8080, 5, 504, 0, 0, 8079, 8078, 1, 0, 0, 0, 8079, 8080, 1, 0, 0, 0, 8080, 8081, 1, 0, 0, 0, 8081, 8082, 3, 676, 338, 0, 8082, 8083, 5, 24, 0, 0, 8083, 8086, 3, 676, 338, 0, 8084, 8085, 5, 147, 0, 0, 8085, 8087, 3, 676, 338, 0, 8086, 8084, 1, 0, 0, 0, 8086, 8087, 1, 0, 0, 0, 8087, 8089, 1, 0, 0, 0, 8088, 8066, 1, 0, 0, 0, 8088, 8070, 1, 0, 0, 0, 8088, 8071, 1, 0, 0, 0, 8088, 8072, 1, 0, 0, 0, 8088, 8079, 1, 0, 0, 0, 8089, 871, 1, 0, 0, 0, 8090, 8092, 3, 840, 420, 0, 8091, 8090, 1, 0, 0, 0, 8091, 8092, 1, 0, 0, 0, 8092, 8093, 1, 0, 0, 0, 8093, 8094, 5, 505, 0, 0, 8094, 8097, 3, 316, 158, 0, 8095, 8096, 5, 506, 0, 0, 8096, 8098, 5, 574, 0, 0, 8097, 8095, 1, 0, 0, 0, 8097, 8098, 1, 0, 0, 0, 8098, 8099, 1, 0, 0, 0, 8099, 8100, 5, 68, 0, 0, 8100, 8101, 5, 35, 0, 0, 8101, 8102, 3, 676, 338, 0, 8102, 8103, 3, 884, 442, 0, 8103, 873, 1, 0, 0, 0, 8104, 8106, 7, 116, 0, 0, 8105, 8107, 3, 930, 465, 0, 8106, 8105, 1, 0, 0, 0, 8106, 8107, 1, 0, 0, 0, 8107, 8110, 1, 0, 0, 0, 8108, 8109, 5, 102, 0, 0, 8109, 8111, 3, 932, 466, 0, 8110, 8108, 1, 0, 0, 0, 8110, 8111, 1, 0, 0, 0, 8111, 8112, 1, 0, 0, 0, 8112, 8113, 5, 7, 0, 0, 8113, 875, 1, 0, 0, 0, 8114, 8129, 5, 508, 0, 0, 8115, 8116, 5, 268, 0, 0, 8116, 8130, 3, 932, 466, 0, 8117, 8124, 5, 509, 0, 0, 8118, 8119, 5, 202, 0, 0, 8119, 8120, 3, 676, 338, 0, 8120, 8121, 5, 100, 0, 0, 8121, 8122, 3, 732, 366, 0, 8122, 8125, 1, 0, 0, 0, 8123, 8125, 3, 562, 281, 0, 8124, 8118, 1, 0, 0, 0, 8124, 8123, 1, 0, 0, 0, 8125, 8130, 1, 0, 0, 0, 8126, 8128, 3, 932, 466, 0, 8127, 8126, 1, 0, 0, 0, 8127, 8128, 1, 0, 0, 0, 8128, 8130, 1, 0, 0, 0, 8129, 8115, 1, 0, 0, 0, 8129, 8117, 1, 0, 0, 0, 8129, 8127, 1, 0, 0, 0, 8130, 8131, 1, 0, 0, 0, 8131, 8132, 5, 7, 0, 0, 8132, 877, 1, 0, 0, 0, 8133, 8163, 5, 510, 0, 0, 8134, 8136, 7, 117, 0, 0, 8135, 8134, 1, 0, 0, 0, 8135, 8136, 1, 0, 0, 0, 8136, 8149, 1, 0, 0, 0, 8137, 8150, 3, 828, 414, 0, 8138, 8139, 5, 511, 0, 0, 8139, 8150, 3, 810, 405, 0, 8140, 8147, 3, 810, 405, 0, 8141, 8142, 5, 6, 0, 0, 8142, 8144, 3, 676, 338, 0, 8143, 8141, 1, 0, 0, 0, 8144, 8145, 1, 0, 0, 0, 8145, 8143, 1, 0, 0, 0, 8145, 8146, 1, 0, 0, 0, 8146, 8148, 1, 0, 0, 0, 8147, 8143, 1, 0, 0, 0, 8147, 8148, 1, 0, 0, 0, 8148, 8150, 1, 0, 0, 0, 8149, 8137, 1, 0, 0, 0, 8149, 8138, 1, 0, 0, 0, 8149, 8140, 1, 0, 0, 0, 8149, 8150, 1, 0, 0, 0, 8150, 8160, 1, 0, 0, 0, 8151, 8152, 5, 100, 0, 0, 8152, 8157, 3, 880, 440, 0, 8153, 8154, 5, 6, 0, 0, 8154, 8156, 3, 880, 440, 0, 8155, 8153, 1, 0, 0, 0, 8156, 8159, 1, 0, 0, 0, 8157, 8155, 1, 0, 0, 0, 8157, 8158, 1, 0, 0, 0, 8158, 8161, 1, 0, 0, 0, 8159, 8157, 1, 0, 0, 0, 8160, 8151, 1, 0, 0, 0, 8160, 8161, 1, 0, 0, 0, 8161, 8162, 1, 0, 0, 0, 8162, 8164, 5, 7, 0, 0, 8163, 8135, 1, 0, 0, 0, 8163, 8164, 1, 0, 0, 0, 8164, 879, 1, 0, 0, 0, 8165, 8166, 3, 828, 414, 0, 8166, 8167, 5, 10, 0, 0, 8167, 8168, 3, 676, 338, 0, 8168, 881, 1, 0, 0, 0, 8169, 8170, 5, 518, 0, 0, 8170, 8173, 3, 932, 466, 0, 8171, 8172, 5, 6, 0, 0, 8172, 8174, 3, 932, 466, 0, 8173, 8171, 1, 0, 0, 0, 8173, 8174, 1, 0, 0, 0, 8174, 8175, 1, 0, 0, 0, 8175, 8176, 5, 7, 0, 0, 8176, 883, 1, 0, 0, 0, 8177, 8181, 5, 519, 0, 0, 8178, 8180, 3, 848, 424, 0, 8179, 8178, 1, 0, 0, 0, 8180, 8183, 1, 0, 0, 0, 8181, 8179, 1, 0, 0, 0, 8181, 8182, 1, 0, 0, 0, 8182, 8184, 1, 0, 0, 0, 8183, 8181, 1, 0, 0, 0, 8184, 8185, 5, 454, 0, 0, 8185, 8187, 5, 519, 0, 0, 8186, 8188, 3, 930, 465, 0, 8187, 8186, 1, 0, 0, 0, 8187, 8188, 1, 0, 0, 0, 8188, 8189, 1, 0, 0, 0, 8189, 8190, 5, 7, 0, 0, 8190, 885, 1, 0, 0, 0, 8191, 8193, 3, 4, 2, 0, 8192, 8194, 3, 890, 445, 0, 8193, 8192, 1, 0, 0, 0, 8193, 8194, 1, 0, 0, 0, 8194, 8195, 1, 0, 0, 0, 8195, 8196, 5, 7, 0, 0, 8196, 887, 1, 0, 0, 0, 8197, 8198, 5, 202, 0, 0, 8198, 8214, 3, 676, 338, 0, 8199, 8201, 3, 890, 445, 0, 8200, 8199, 1, 0, 0, 0, 8200, 8201, 1, 0, 0, 0, 8201, 8204, 1, 0, 0, 0, 8202, 8203, 5, 100, 0, 0, 8203, 8205, 3, 732, 366, 0, 8204, 8202, 1, 0, 0, 0, 8204, 8205, 1, 0, 0, 0, 8205, 8215, 1, 0, 0, 0, 8206, 8207, 5, 100, 0, 0, 8207, 8209, 3, 732, 366, 0, 8208, 8206, 1, 0, 0, 0, 8208, 8209, 1, 0, 0, 0, 8209, 8211, 1, 0, 0, 0, 8210, 8212, 3, 890, 445, 0, 8211, 8210, 1, 0, 0, 0, 8211, 8212, 1, 0, 0, 0, 8212, 8215, 1, 0, 0, 0, 8213, 8215, 1, 0, 0, 0, 8214, 8200, 1, 0, 0, 0, 8214, 8208, 1, 0, 0, 0, 8214, 8213, 1, 0, 0, 0, 8215, 8216, 1, 0, 0, 0, 8216, 8217, 5, 7, 0, 0, 8217, 889, 1, 0, 0, 0, 8218, 8220, 5, 71, 0, 0, 8219, 8221, 5, 346, 0, 0, 8220, 8219, 1, 0, 0, 0, 8220, 8221, 1, 0, 0, 0, 8221, 8222, 1, 0, 0, 0, 8222, 8223, 3, 732, 366, 0, 8223, 891, 1, 0, 0, 0, 8224, 8256, 5, 520, 0, 0, 8225, 8230, 3, 924, 462, 0, 8226, 8228, 5, 269, 0, 0, 8227, 8226, 1, 0, 0, 0, 8227, 8228, 1, 0, 0, 0, 8228, 8229, 1, 0, 0, 0, 8229, 8231, 5, 324, 0, 0, 8230, 8227, 1, 0, 0, 0, 8230, 8231, 1, 0, 0, 0, 8231, 8232, 1, 0, 0, 0, 8232, 8240, 5, 62, 0, 0, 8233, 8241, 3, 562, 281, 0, 8234, 8235, 5, 202, 0, 0, 8235, 8238, 3, 932, 466, 0, 8236, 8237, 5, 100, 0, 0, 8237, 8239, 3, 732, 366, 0, 8238, 8236, 1, 0, 0, 0, 8238, 8239, 1, 0, 0, 0, 8239, 8241, 1, 0, 0, 0, 8240, 8233, 1, 0, 0, 0, 8240, 8234, 1, 0, 0, 0, 8241, 8257, 1, 0, 0, 0, 8242, 8254, 3, 820, 410, 0, 8243, 8244, 5, 2, 0, 0, 8244, 8249, 3, 894, 447, 0, 8245, 8246, 5, 6, 0, 0, 8246, 8248, 3, 894, 447, 0, 8247, 8245, 1, 0, 0, 0, 8248, 8251, 1, 0, 0, 0, 8249, 8247, 1, 0, 0, 0, 8249, 8250, 1, 0, 0, 0, 8250, 8252, 1, 0, 0, 0, 8251, 8249, 1, 0, 0, 0, 8252, 8253, 5, 3, 0, 0, 8253, 8255, 1, 0, 0, 0, 8254, 8243, 1, 0, 0, 0, 8254, 8255, 1, 0, 0, 0, 8255, 8257, 1, 0, 0, 0, 8256, 8225, 1, 0, 0, 0, 8256, 8242, 1, 0, 0, 0, 8257, 8258, 1, 0, 0, 0, 8258, 8259, 5, 7, 0, 0, 8259, 893, 1, 0, 0, 0, 8260, 8261, 3, 820, 410, 0, 8261, 8262, 5, 20, 0, 0, 8262, 8264, 1, 0, 0, 0, 8263, 8260, 1, 0, 0, 0, 8263, 8264, 1, 0, 0, 0, 8264, 8265, 1, 0, 0, 0, 8265, 8266, 3, 676, 338, 0, 8266, 895, 1, 0, 0, 0, 8267, 8269, 5, 61, 0, 0, 8268, 8270, 3, 898, 449, 0, 8269, 8268, 1, 0, 0, 0, 8269, 8270, 1, 0, 0, 0, 8270, 8272, 1, 0, 0, 0, 8271, 8273, 3, 334, 167, 0, 8272, 8271, 1, 0, 0, 0, 8272, 8273, 1, 0, 0, 0, 8273, 8274, 1, 0, 0, 0, 8274, 8275, 3, 924, 462, 0, 8275, 8276, 5, 71, 0, 0, 8276, 8277, 3, 732, 366, 0, 8277, 8278, 5, 7, 0, 0, 8278, 897, 1, 0, 0, 0, 8279, 8294, 5, 268, 0, 0, 8280, 8294, 5, 293, 0, 0, 8281, 8294, 5, 207, 0, 0, 8282, 8294, 5, 249, 0, 0, 8283, 8285, 7, 51, 0, 0, 8284, 8283, 1, 0, 0, 0, 8284, 8285, 1, 0, 0, 0, 8285, 8286, 1, 0, 0, 0, 8286, 8294, 3, 676, 338, 0, 8287, 8294, 5, 30, 0, 0, 8288, 8291, 7, 118, 0, 0, 8289, 8292, 3, 676, 338, 0, 8290, 8292, 5, 30, 0, 0, 8291, 8289, 1, 0, 0, 0, 8291, 8290, 1, 0, 0, 0, 8291, 8292, 1, 0, 0, 0, 8292, 8294, 1, 0, 0, 0, 8293, 8279, 1, 0, 0, 0, 8293, 8280, 1, 0, 0, 0, 8293, 8281, 1, 0, 0, 0, 8293, 8282, 1, 0, 0, 0, 8293, 8284, 1, 0, 0, 0, 8293, 8287, 1, 0, 0, 0, 8293, 8288, 1, 0, 0, 0, 8294, 899, 1, 0, 0, 0, 8295, 8297, 5, 265, 0, 0, 8296, 8298, 3, 898, 449, 0, 8297, 8296, 1, 0, 0, 0, 8297, 8298, 1, 0, 0, 0, 8298, 8299, 1, 0, 0, 0, 8299, 8300, 3, 924, 462, 0, 8300, 8301, 5, 7, 0, 0, 8301, 901, 1, 0, 0, 0, 8302, 8304, 3, 574, 287, 0, 8303, 8302, 1, 0, 0, 0, 8303, 8304, 1, 0, 0, 0, 8304, 8305, 1, 0, 0, 0, 8305, 8306, 5, 525, 0, 0, 8306, 8308, 5, 71, 0, 0, 8307, 8309, 5, 81, 0, 0, 8308, 8307, 1, 0, 0, 0, 8308, 8309, 1, 0, 0, 0, 8309, 8310, 1, 0, 0, 0, 8310, 8312, 3, 776, 388, 0, 8311, 8313, 5, 9, 0, 0, 8312, 8311, 1, 0, 0, 0, 8312, 8313, 1, 0, 0, 0, 8313, 8318, 1, 0, 0, 0, 8314, 8316, 5, 36, 0, 0, 8315, 8314, 1, 0, 0, 0, 8315, 8316, 1, 0, 0, 0, 8316, 8317, 1, 0, 0, 0, 8317, 8319, 3, 820, 410, 0, 8318, 8315, 1, 0, 0, 0, 8318, 8319, 1, 0, 0, 0, 8319, 8320, 1, 0, 0, 0, 8320, 8321, 5, 100, 0, 0, 8321, 8322, 3, 904, 452, 0, 8322, 8323, 5, 80, 0, 0, 8323, 8325, 3, 676, 338, 0, 8324, 8326, 3, 906, 453, 0, 8325, 8324, 1, 0, 0, 0, 8326, 8327, 1, 0, 0, 0, 8327, 8325, 1, 0, 0, 0, 8327, 8328, 1, 0, 0, 0, 8328, 903, 1, 0, 0, 0, 8329, 8331, 5, 81, 0, 0, 8330, 8329, 1, 0, 0, 0, 8330, 8331, 1, 0, 0, 0, 8331, 8332, 1, 0, 0, 0, 8332, 8334, 3, 776, 388, 0, 8333, 8335, 5, 9, 0, 0, 8334, 8333, 1, 0, 0, 0, 8334, 8335, 1, 0, 0, 0, 8335, 8341, 1, 0, 0, 0, 8336, 8339, 3, 566, 283, 0, 8337, 8339, 3, 610, 305, 0, 8338, 8336, 1, 0, 0, 0, 8338, 8337, 1, 0, 0, 0, 8339, 8341, 1, 0, 0, 0, 8340, 8330, 1, 0, 0, 0, 8340, 8338, 1, 0, 0, 0, 8341, 8346, 1, 0, 0, 0, 8342, 8344, 5, 36, 0, 0, 8343, 8342, 1, 0, 0, 0, 8343, 8344, 1, 0, 0, 0, 8344, 8345, 1, 0, 0, 0, 8345, 8347, 3, 820, 410, 0, 8346, 8343, 1, 0, 0, 0, 8346, 8347, 1, 0, 0, 0, 8347, 905, 1, 0, 0, 0, 8348, 8349, 5, 102, 0, 0, 8349, 8352, 5, 526, 0, 0, 8350, 8351, 5, 33, 0, 0, 8351, 8353, 3, 676, 338, 0, 8352, 8350, 1, 0, 0, 0, 8352, 8353, 1, 0, 0, 0, 8353, 8354, 1, 0, 0, 0, 8354, 8359, 5, 93, 0, 0, 8355, 8360, 3, 910, 455, 0, 8356, 8360, 5, 182, 0, 0, 8357, 8358, 5, 57, 0, 0, 8358, 8360, 5, 270, 0, 0, 8359, 8355, 1, 0, 0, 0, 8359, 8356, 1, 0, 0, 0, 8359, 8357, 1, 0, 0, 0, 8360, 8375, 1, 0, 0, 0, 8361, 8362, 5, 102, 0, 0, 8362, 8363, 5, 77, 0, 0, 8363, 8366, 5, 526, 0, 0, 8364, 8365, 5, 33, 0, 0, 8365, 8367, 3, 676, 338, 0, 8366, 8364, 1, 0, 0, 0, 8366, 8367, 1, 0, 0, 0, 8367, 8368, 1, 0, 0, 0, 8368, 8372, 5, 93, 0, 0, 8369, 8373, 3, 908, 454, 0, 8370, 8371, 5, 57, 0, 0, 8371, 8373, 5, 270, 0, 0, 8372, 8369, 1, 0, 0, 0, 8372, 8370, 1, 0, 0, 0, 8373, 8375, 1, 0, 0, 0, 8374, 8348, 1, 0, 0, 0, 8374, 8361, 1, 0, 0, 0, 8375, 907, 1, 0, 0, 0, 8376, 8378, 5, 241, 0, 0, 8377, 8379, 3, 146, 73, 0, 8378, 8377, 1, 0, 0, 0, 8378, 8379, 1, 0, 0, 0, 8379, 8383, 1, 0, 0, 0, 8380, 8381, 5, 463, 0, 0, 8381, 8382, 7, 77, 0, 0, 8382, 8384, 5, 450, 0, 0, 8383, 8380, 1, 0, 0, 0, 8383, 8384, 1, 0, 0, 0, 8384, 8385, 1, 0, 0, 0, 8385, 8386, 3, 912, 456, 0, 8386, 909, 1, 0, 0, 0, 8387, 8388, 5, 369, 0, 0, 8388, 8406, 5, 333, 0, 0, 8389, 8390, 3, 802, 401, 0, 8390, 8391, 5, 10, 0, 0, 8391, 8392, 3, 914, 457, 0, 8392, 8407, 1, 0, 0, 0, 8393, 8394, 3, 146, 73, 0, 8394, 8395, 5, 10, 0, 0, 8395, 8396, 5, 2, 0, 0, 8396, 8401, 3, 914, 457, 0, 8397, 8398, 5, 6, 0, 0, 8398, 8400, 3, 914, 457, 0, 8399, 8397, 1, 0, 0, 0, 8400, 8403, 1, 0, 0, 0, 8401, 8399, 1, 0, 0, 0, 8401, 8402, 1, 0, 0, 0, 8402, 8404, 1, 0, 0, 0, 8403, 8401, 1, 0, 0, 0, 8404, 8405, 5, 3, 0, 0, 8405, 8407, 1, 0, 0, 0, 8406, 8389, 1, 0, 0, 0, 8406, 8393, 1, 0, 0, 0, 8407, 8408, 1, 0, 0, 0, 8408, 8406, 1, 0, 0, 0, 8408, 8409, 1, 0, 0, 0, 8409, 911, 1, 0, 0, 0, 8410, 8411, 5, 422, 0, 0, 8411, 8412, 5, 2, 0, 0, 8412, 8417, 3, 914, 457, 0, 8413, 8414, 5, 6, 0, 0, 8414, 8416, 3, 914, 457, 0, 8415, 8413, 1, 0, 0, 0, 8416, 8419, 1, 0, 0, 0, 8417, 8415, 1, 0, 0, 0, 8417, 8418, 1, 0, 0, 0, 8418, 8420, 1, 0, 0, 0, 8419, 8417, 1, 0, 0, 0, 8420, 8421, 5, 3, 0, 0, 8421, 8425, 1, 0, 0, 0, 8422, 8423, 5, 53, 0, 0, 8423, 8425, 5, 422, 0, 0, 8424, 8410, 1, 0, 0, 0, 8424, 8422, 1, 0, 0, 0, 8425, 913, 1, 0, 0, 0, 8426, 8429, 3, 590, 295, 0, 8427, 8429, 5, 53, 0, 0, 8428, 8426, 1, 0, 0, 0, 8428, 8427, 1, 0, 0, 0, 8429, 915, 1, 0, 0, 0, 8430, 8431, 5, 157, 0, 0, 8431, 8432, 3, 924, 462, 0, 8432, 8433, 5, 7, 0, 0, 8433, 917, 1, 0, 0, 0, 8434, 8435, 5, 78, 0, 0, 8435, 8436, 5, 7, 0, 0, 8436, 919, 1, 0, 0, 0, 8437, 8443, 7, 68, 0, 0, 8438, 8440, 5, 33, 0, 0, 8439, 8441, 5, 269, 0, 0, 8440, 8439, 1, 0, 0, 0, 8440, 8441, 1, 0, 0, 0, 8441, 8442, 1, 0, 0, 0, 8442, 8444, 5, 153, 0, 0, 8443, 8438, 1, 0, 0, 0, 8443, 8444, 1, 0, 0, 0, 8444, 8445, 1, 0, 0, 0, 8445, 8446, 5, 7, 0, 0, 8446, 921, 1, 0, 0, 0, 8447, 8448, 5, 333, 0, 0, 8448, 8449, 3, 318, 159, 0, 8449, 8450, 5, 94, 0, 0, 8450, 8451, 5, 53, 0, 0, 8451, 8452, 5, 7, 0, 0, 8452, 8460, 1, 0, 0, 0, 8453, 8456, 5, 313, 0, 0, 8454, 8457, 3, 318, 159, 0, 8455, 8457, 5, 30, 0, 0, 8456, 8454, 1, 0, 0, 0, 8456, 8455, 1, 0, 0, 0, 8457, 8458, 1, 0, 0, 0, 8458, 8460, 5, 7, 0, 0, 8459, 8447, 1, 0, 0, 0, 8459, 8453, 1, 0, 0, 0, 8460, 923, 1, 0, 0, 0, 8461, 8464, 3, 820, 410, 0, 8462, 8464, 5, 28, 0, 0, 8463, 8461, 1, 0, 0, 0, 8463, 8462, 1, 0, 0, 0, 8464, 925, 1, 0, 0, 0, 8465, 8482, 5, 517, 0, 0, 8466, 8467, 5, 102, 0, 0, 8467, 8472, 3, 928, 464, 0, 8468, 8469, 5, 82, 0, 0, 8469, 8471, 3, 928, 464, 0, 8470, 8468, 1, 0, 0, 0, 8471, 8474, 1, 0, 0, 0, 8472, 8470, 1, 0, 0, 0, 8472, 8473, 1, 0, 0, 0, 8473, 8475, 1, 0, 0, 0, 8474, 8472, 1, 0, 0, 0, 8475, 8479, 5, 93, 0, 0, 8476, 8478, 3, 848, 424, 0, 8477, 8476, 1, 0, 0, 0, 8478, 8481, 1, 0, 0, 0, 8479, 8477, 1, 0, 0, 0, 8479, 8480, 1, 0, 0, 0, 8480, 8483, 1, 0, 0, 0, 8481, 8479, 1, 0, 0, 0, 8482, 8466, 1, 0, 0, 0, 8483, 8484, 1, 0, 0, 0, 8484, 8482, 1, 0, 0, 0, 8484, 8485, 1, 0, 0, 0, 8485, 927, 1, 0, 0, 0, 8486, 8490, 3, 930, 465, 0, 8487, 8488, 5, 511, 0, 0, 8488, 8490, 3, 810, 405, 0, 8489, 8486, 1, 0, 0, 0, 8489, 8487, 1, 0, 0, 0, 8490, 929, 1, 0, 0, 0, 8491, 8494, 3, 820, 410, 0, 8492, 8494, 3, 830, 415, 0, 8493, 8491, 1, 0, 0, 0, 8493, 8492, 1, 0, 0, 0, 8494, 931, 1, 0, 0, 0, 8495, 8497, 3, 758, 379, 0, 8496, 8495, 1, 0, 0, 0, 8496, 8497, 1, 0, 0, 0, 8497, 8499, 1, 0, 0, 0, 8498, 8500, 3, 582, 291, 0, 8499, 8498, 1, 0, 0, 0, 8499, 8500, 1, 0, 0, 0, 8500, 8502, 1, 0, 0, 0, 8501, 8503, 3, 612, 306, 0, 8502, 8501, 1, 0, 0, 0, 8502, 8503, 1, 0, 0, 0, 8503, 8505, 1, 0, 0, 0, 8504, 8506, 3, 640, 320, 0, 8505, 8504, 1, 0, 0, 0, 8505, 8506, 1, 0, 0, 0, 8506, 8508, 1, 0, 0, 0, 8507, 8509, 3, 602, 301, 0, 8508, 8507, 1, 0, 0, 0, 8508, 8509, 1, 0, 0, 0, 8509, 8512, 1, 0, 0, 0, 8510, 8511, 5, 67, 0, 0, 8511, 8513, 3, 676, 338, 0, 8512, 8510, 1, 0, 0, 0, 8512, 8513, 1, 0, 0, 0, 8513, 8515, 1, 0, 0, 0, 8514, 8516, 3, 704, 352, 0, 8515, 8514, 1, 0, 0, 0, 8515, 8516, 1, 0, 0, 0, 8516, 933, 1, 0, 0, 0, 1193, 937, 944, 1064, 1066, 1075, 1080, 1086, 1121, 1131, 1137, 1142, 1149, 1154, 1161, 1172, 1180, 1184, 1196, 1202, 1208, 1212, 1217, 1221, 1234, 1244, 1246, 1252, 1257, 1270, 1273, 1278, 1283, 1294, 1298, 1310, 1314, 1317, 1321, 1333, 1351, 1358, 1366, 1371, 1378, 1386, 1392, 1400, 1408, 1412, 1426, 1431, 1436, 1448, 1454, 1466, 1471, 1481, 1487, 1492, 1500, 1505, 1512, 1517, 1522, 1532, 1537, 1542, 1549, 1553, 1567, 1573, 1579, 1584, 1591, 1603, 1611, 1619, 1635, 1644, 1653, 1662, 1666, 1678, 1686, 1696, 1716, 1721, 1724, 1731, 1734, 1738, 1742, 1745, 1750, 1755, 1759, 1768, 1774, 1778, 1787, 1790, 1796, 1805, 1817, 1821, 1825, 1830, 1833, 1839, 1841, 1843, 1847, 1853, 1857, 1862, 1867, 1871, 1874, 1881, 1894, 1907, 1931, 1941, 1948, 1953, 1957, 1964, 1969, 1972, 1974, 1979, 1983, 1987, 1991, 1996, 1999, 2003, 2006, 2010, 2018, 2023, 2026, 2030, 2036, 2045, 2049, 2059, 2064, 2068, 2072, 2074, 2076, 2083, 2088, 2092, 2097, 2109, 2114, 2118, 2122, 2127, 2131, 2134, 2137, 2140, 2143, 2146, 2151, 2154, 2157, 2160, 2163, 2166, 2172, 2176, 2179, 2182, 2185, 2188, 2190, 2197, 2205, 2215, 2220, 2230, 2233, 2238, 2243, 2248, 2251, 2256, 2265, 2267, 2271, 2274, 2278, 2283, 2288, 2292, 2295, 2299, 2302, 2307, 2310, 2315, 2318, 2322, 2325, 2328, 2333, 2336, 2344, 2356, 2360, 2367, 2372, 2375, 2378, 2381, 2386, 2397, 2403, 2407, 2410, 2413, 2418, 2425, 2428, 2432, 2440, 2445, 2448, 2451, 2458, 2463, 2472, 2475, 2478, 2483, 2486, 2498, 2508, 2525, 2529, 2533, 2535, 2552, 2554, 2570, 2581, 2584, 2587, 2596, 2605, 2621, 2624, 2627, 2635, 2639, 2646, 2655, 2659, 2665, 2669, 2672, 2675, 2678, 2681, 2687, 2691, 2696, 2700, 2703, 2706, 2709, 2714, 2720, 2724, 2728, 2732, 2738, 2740, 2745, 2751, 2757, 2761, 2776, 2781, 2784, 2786, 2789, 2793, 2797, 2800, 2803, 2811, 2817, 2819, 2825, 2830, 2835, 2839, 2846, 2848, 2859, 2898, 2908, 2910, 2913, 2917, 2921, 2931, 2933, 2939, 2941, 2950, 2962, 2976, 2981, 2984, 2991, 2996, 3004, 3006, 3012, 3017, 3021, 3026, 3032, 3039, 3045, 3047, 3056, 3062, 3070, 3076, 3081, 3086, 3094, 3109, 3111, 3115, 3119, 3122, 3125, 3134, 3137, 3140, 3146, 3152, 3156, 3168, 3174, 3177, 3182, 3186, 3193, 3203, 3205, 3229, 3241, 3246, 3248, 3252, 3255, 3258, 3268, 3271, 3281, 3286, 3291, 3294, 3297, 3305, 3311, 3318, 3326, 3329, 3340, 3344, 3350, 3357, 3360, 3369, 3383, 3386, 3400, 3411, 3414, 3426, 3431, 3444, 3449, 3462, 3471, 3474, 3477, 3484, 3487, 3499, 3505, 3507, 3515, 3523, 3531, 3543, 3548, 3559, 3570, 3578, 3586, 3593, 3600, 3602, 3605, 3610, 3615, 3634, 3643, 3646, 3673, 3682, 3685, 3689, 3693, 3697, 3704, 3708, 3712, 3716, 3720, 3725, 3729, 3734, 3740, 3745, 3752, 3756, 3762, 3766, 3771, 3779, 3785, 3790, 3797, 3802, 3806, 3811, 3817, 3824, 3829, 3836, 3841, 3848, 3852, 3860, 3864, 3866, 3869, 3874, 3884, 3899, 3902, 3910, 3917, 3922, 3928, 3932, 3939, 3944, 3947, 3950, 3954, 3963, 3981, 3984, 4016, 4021, 4027, 4047, 4052, 4058, 4061, 4065, 4069, 4075, 4078, 4082, 4086, 4091, 4094, 4097, 4100, 4113, 4119, 4127, 4134, 4139, 4142, 4149, 4152, 4160, 4163, 4168, 4175, 4178, 4198, 4210, 4213, 4219, 4224, 4233, 4241, 4246, 4252, 4259, 4267, 4270, 4281, 4283, 4297, 4303, 4311, 4313, 4319, 4323, 4326, 4329, 4334, 4339, 4343, 4346, 4349, 4352, 4355, 4363, 4374, 4377, 4380, 4385, 4388, 4392, 4396, 4402, 4410, 4413, 4426, 4431, 4433, 4438, 4445, 4452, 4461, 4469, 4477, 4484, 4492, 4499, 4507, 4511, 4515, 4517, 4523, 4528, 4532, 4539, 4544, 4549, 4554, 4556, 4566, 4576, 4592, 4610, 4622, 4629, 4644, 4649, 4652, 4657, 4662, 4667, 4670, 4673, 4678, 4685, 4689, 4694, 4701, 4705, 4711, 4720, 4729, 4741, 4743, 4756, 4762, 4766, 4768, 4775, 4788, 4795, 4797, 4813, 4817, 4821, 4826, 4831, 4836, 4841, 4844, 4856, 4909, 4918, 4922, 4931, 4935, 4944, 4948, 4953, 4956, 4960, 4965, 4967, 4976, 4981, 4992, 4996, 5010, 5018, 5056, 5058, 5077, 5080, 5107, 5111, 5115, 5119, 5123, 5126, 5141, 5148, 5162, 5175, 5200, 5219, 5234, 5250, 5257, 5268, 5271, 5290, 5293, 5306, 5310, 5330, 5342, 5346, 5368, 5372, 5382, 5386, 5392, 5396, 5400, 5404, 5411, 5416, 5427, 5431, 5434, 5439, 5445, 5456, 5460, 5463, 5467, 5471, 5474, 5484, 5487, 5491, 5496, 5502, 5505, 5510, 5513, 5520, 5522, 5528, 5532, 5541, 5546, 5548, 5558, 5561, 5566, 5574, 5577, 5582, 5584, 5586, 5592, 5609, 5615, 5628, 5634, 5638, 5643, 5673, 5688, 5693, 5697, 5710, 5714, 5716, 5725, 5731, 5733, 5737, 5740, 5743, 5746, 5749, 5751, 5754, 5758, 5766, 5771, 5774, 5780, 5784, 5788, 5793, 5795, 5799, 5803, 5810, 5816, 5820, 5822, 5824, 5837, 5845, 5853, 5864, 5874, 5879, 5883, 5887, 5894, 5897, 5899, 5907, 5911, 5914, 5921, 5928, 5933, 5940, 5943, 5945, 5948, 5954, 5959, 5963, 5970, 5980, 5987, 5990, 5993, 5997, 6008, 6011, 6014, 6017, 6020, 6027, 6030, 6033, 6040, 6052, 6059, 6061, 6066, 6071, 6073, 6079, 6086, 6091, 6096, 6100, 6104, 6108, 6110, 6114, 6118, 6121, 6124, 6126, 6136, 6138, 6143, 6147, 6152, 6156, 6163, 6168, 6172, 6175, 6181, 6184, 6203, 6210, 6214, 6217, 6221, 6225, 6228, 6231, 6236, 6245, 6252, 6256, 6260, 6264, 6267, 6269, 6274, 6278, 6283, 6289, 6296, 6301, 6306, 6315, 6322, 6330, 6341, 6346, 6350, 6353, 6357, 6362, 6366, 6371, 6379, 6390, 6395, 6399, 6402, 6405, 6407, 6410, 6413, 6416, 6420, 6424, 6428, 6430, 6439, 6444, 6450, 6454, 6456, 6463, 6468, 6474, 6476, 6480, 6487, 6492, 6495, 6501, 6505, 6511, 6520, 6526, 6528, 6533, 6536, 6545, 6552, 6554, 6561, 6566, 6569, 6579, 6590, 6595, 6599, 6607, 6617, 6624, 6630, 6641, 6647, 6657, 6666, 6670, 6673, 6675, 6677, 6681, 6689, 6692, 6697, 6702, 6709, 6711, 6717, 6721, 6724, 6729, 6732, 6734, 6740, 6749, 6755, 6758, 6766, 6769, 6773, 6779, 6781, 6784, 6788, 6793, 6800, 6807, 6809, 6815, 6817, 6822, 6824, 6828, 6837, 6841, 6849, 6851, 6865, 6868, 6876, 6885, 6891, 6896, 6904, 6906, 6911, 6915, 6920, 6925, 6931, 6947, 6949, 6958, 6973, 6978, 6981, 6987, 6992, 7005, 7010, 7014, 7021, 7040, 7052, 7057, 7065, 7067, 7069, 7078, 7081, 7086, 7091, 7094, 7105, 7113, 7118, 7120, 7123, 7127, 7138, 7159, 7167, 7180, 7190, 7196, 7202, 7205, 7208, 7234, 7236, 7257, 7267, 7280, 7285, 7289, 7291, 7303, 7310, 7316, 7322, 7326, 7337, 7347, 7351, 7356, 7359, 7362, 7371, 7382, 7384, 7388, 7393, 7402, 7407, 7415, 7425, 7433, 7437, 7440, 7447, 7455, 7459, 7466, 7474, 7476, 7485, 7488, 7500, 7509, 7516, 7525, 7535, 7540, 7544, 7546, 7549, 7554, 7559, 7567, 7575, 7578, 7585, 7593, 7601, 7609, 7626, 7633, 7641, 7658, 7664, 7670, 7678, 7684, 7689, 7697, 7702, 7705, 7714, 7721, 7726, 7730, 7735, 7741, 7746, 7754, 7809, 7816, 7822, 7824, 7826, 7828, 7834, 7838, 7842, 7853, 7856, 7860, 7864, 7868, 7871, 7874, 7877, 7886, 7891, 7895, 7928, 7938, 7942, 7948, 7953, 7962, 7970, 7981, 7989, 7998, 8007, 8012, 8016, 8026, 8031, 8039, 8044, 8047, 8054, 8060, 8068, 8076, 8079, 8086, 8088, 8091, 8097, 8106, 8110, 8124, 8127, 8129, 8135, 8145, 8147, 8149, 8157, 8160, 8163, 8173, 8181, 8187, 8193, 8200, 8204, 8208, 8211, 8214, 8220, 8227, 8230, 8238, 8240, 8249, 8254, 8256, 8263, 8269, 8272, 8284, 8291, 8293, 8297, 8303, 8308, 8312, 8315, 8318, 8327, 8330, 8334, 8338, 8340, 8343, 8346, 8352, 8359, 8366, 8372, 8374, 8378, 8383, 8401, 8406, 8408, 8417, 8424, 8428, 8440, 8443, 8456, 8459, 8463, 8472, 8479, 8484, 8489, 8493, 8496, 8499, 8502, 8505, 8508, 8512, 8515] \ No newline at end of file diff --git a/src/lib/postgresql/PostgreSqlParser.ts b/src/lib/postgresql/PostgreSqlParser.ts index 1c9240cc9..ab0898b62 100644 --- a/src/lib/postgresql/PostgreSqlParser.ts +++ b/src/lib/postgresql/PostgreSqlParser.ts @@ -613,22 +613,22 @@ export class PostgreSqlParser extends SQLParserBase { public static readonly RULE_program = 0; public static readonly RULE_singleStmt = 1; public static readonly RULE_stmt = 2; - public static readonly RULE_callstmt = 3; - public static readonly RULE_createrolestmt = 4; - public static readonly RULE_alteroptroleelem = 5; - public static readonly RULE_createoptroleelem = 6; - public static readonly RULE_createuserstmt = 7; - public static readonly RULE_alterrolestmt = 8; - public static readonly RULE_alterrolesetstmt = 9; - public static readonly RULE_alterroutinestmt = 10; - public static readonly RULE_alter_routine_cluase = 11; + public static readonly RULE_callStmt = 3; + public static readonly RULE_createRoleStmt = 4; + public static readonly RULE_alterOperatorRoleElem = 5; + public static readonly RULE_createOperatorRoleElem = 6; + public static readonly RULE_createUserStmt = 7; + public static readonly RULE_alterRoleStmt = 8; + public static readonly RULE_alterRoleSetStmt = 9; + public static readonly RULE_alterRoutineStmt = 10; + public static readonly RULE_alter_routine_clause = 11; public static readonly RULE_routine_action = 12; - public static readonly RULE_creategroupstmt = 13; - public static readonly RULE_altergroupstmt = 14; - public static readonly RULE_createschemastmt = 15; + public static readonly RULE_createGroupStmt = 13; + public static readonly RULE_alterGroupStmt = 14; + public static readonly RULE_createSchemaStmt = 15; public static readonly RULE_schema_name_create = 16; public static readonly RULE_schema_stmt = 17; - public static readonly RULE_variablesetstmt = 18; + public static readonly RULE_variableSetStmt = 18; public static readonly RULE_set_rest = 19; public static readonly RULE_generic_set = 20; public static readonly RULE_set_rest_more = 21; @@ -639,259 +639,259 @@ export class PostgreSqlParser extends SQLParserBase { public static readonly RULE_opt_boolean_or_string_column = 26; public static readonly RULE_opt_boolean_or_string = 27; public static readonly RULE_zone_value = 28; - public static readonly RULE_nonreservedword_or_sconst = 29; - public static readonly RULE_variableresetstmt = 30; + public static readonly RULE_nonReservedWordOrStringConst = 29; + public static readonly RULE_variableResetStmt = 30; public static readonly RULE_reset_rest = 31; - public static readonly RULE_setresetclause = 32; - public static readonly RULE_functionsetresetclause = 33; - public static readonly RULE_variableshowstmt = 34; - public static readonly RULE_constraintssetstmt = 35; - public static readonly RULE_checkpointstmt = 36; - public static readonly RULE_discardstmt = 37; - public static readonly RULE_altertablestmt = 38; + public static readonly RULE_setOrResetClause = 32; + public static readonly RULE_functionSetOrResetClause = 33; + public static readonly RULE_variableShowStmt = 34; + public static readonly RULE_constraintsSetStmt = 35; + public static readonly RULE_checkPointStmt = 36; + public static readonly RULE_discardStmt = 37; + public static readonly RULE_alterTableStmt = 38; public static readonly RULE_alter_table_cmds = 39; public static readonly RULE_partition_bound_spec = 40; - public static readonly RULE_partition_bound_cluase = 41; + public static readonly RULE_partition_bound_clause = 41; public static readonly RULE_partition_bound_choose = 42; - public static readonly RULE_partition_with_cluase = 43; + public static readonly RULE_partition_with_clause = 43; public static readonly RULE_partition_cmd = 44; public static readonly RULE_index_partition_cmd = 45; public static readonly RULE_alter_table_cmd = 46; public static readonly RULE_alter_column_default = 47; public static readonly RULE_opt_drop_behavior = 48; public static readonly RULE_opt_collate_clause = 49; - public static readonly RULE_reloptions = 50; - public static readonly RULE_opt_reloptions = 51; - public static readonly RULE_reloption_elem = 52; - public static readonly RULE_partitionboundspec = 53; - public static readonly RULE_altercompositetypestmt = 54; + public static readonly RULE_relOptions = 50; + public static readonly RULE_optRelOptions = 51; + public static readonly RULE_relOptionElem = 52; + public static readonly RULE_partitionBoundSpec = 53; + public static readonly RULE_alterCompositeTypeStmt = 54; public static readonly RULE_alter_type_cmd = 55; - public static readonly RULE_closeportalstmt = 56; - public static readonly RULE_copystmt = 57; + public static readonly RULE_closePortalStmt = 56; + public static readonly RULE_copyStmt = 57; public static readonly RULE_copyOptionsNoparens = 58; public static readonly RULE_copyOptions = 59; public static readonly RULE_copy_generic_opt_elem = 60; - public static readonly RULE_createstmt = 61; - public static readonly RULE_opttemp = 62; - public static readonly RULE_opttypedtableelementlist = 63; - public static readonly RULE_tableelementlist = 64; - public static readonly RULE_tableelement = 65; - public static readonly RULE_typedtableelement = 66; + public static readonly RULE_createStmt = 61; + public static readonly RULE_optTemp = 62; + public static readonly RULE_optTypedTableElEmentList = 63; + public static readonly RULE_tableElementList = 64; + public static readonly RULE_tableElement = 65; + public static readonly RULE_typedTableElement = 66; public static readonly RULE_column_def = 67; - public static readonly RULE_colconstraint = 68; - public static readonly RULE_colconstraintelem = 69; + public static readonly RULE_colConstraint = 68; + public static readonly RULE_colConstraintElem = 69; public static readonly RULE_generated_when = 70; - public static readonly RULE_tablelikeoption = 71; - public static readonly RULE_constraintelem = 72; + public static readonly RULE_tableLikeOption = 71; + public static readonly RULE_constraintElem = 72; public static readonly RULE_opt_column_list = 73; public static readonly RULE_opt_column_list_create = 74; public static readonly RULE_column_list = 75; public static readonly RULE_opt_c_include = 76; public static readonly RULE_key_match = 77; - public static readonly RULE_exclusionconstraintelem = 78; + public static readonly RULE_exclusionConstraintElem = 78; public static readonly RULE_key_actions = 79; public static readonly RULE_key_update = 80; public static readonly RULE_key_delete = 81; public static readonly RULE_key_action = 82; - public static readonly RULE_optinherit = 83; - public static readonly RULE_partitionspec = 84; + public static readonly RULE_optInherit = 83; + public static readonly RULE_partitionSpec = 84; public static readonly RULE_part_elem = 85; public static readonly RULE_table_access_method_clause = 86; - public static readonly RULE_optwith = 87; - public static readonly RULE_oncommitoption = 88; - public static readonly RULE_opttablespace = 89; - public static readonly RULE_optconstablespace = 90; - public static readonly RULE_existingindex = 91; - public static readonly RULE_createstatsstmt = 92; - public static readonly RULE_alterstatsstmt = 93; - public static readonly RULE_createasstmt = 94; + public static readonly RULE_optWith = 87; + public static readonly RULE_onCommitOption = 88; + public static readonly RULE_optTableSpace = 89; + public static readonly RULE_optConstableSpace = 90; + public static readonly RULE_existingIndex = 91; + public static readonly RULE_createStatsStmt = 92; + public static readonly RULE_alterStatsStmt = 93; + public static readonly RULE_createAsStmt = 94; public static readonly RULE_create_as_target = 95; public static readonly RULE_opt_with_data = 96; - public static readonly RULE_creatematviewstmt = 97; - public static readonly RULE_refreshmatviewstmt = 98; - public static readonly RULE_createseqstmt = 99; - public static readonly RULE_alterseqstmt = 100; - public static readonly RULE_seqoptelem = 101; - public static readonly RULE_numericonly = 102; - public static readonly RULE_createplangstmt = 103; - public static readonly RULE_createtablespacestmt = 104; - public static readonly RULE_createextensionstmt = 105; - public static readonly RULE_alterextensionstmt = 106; - public static readonly RULE_alterextensioncontentsstmt = 107; - public static readonly RULE_createfdwstmt = 108; + public static readonly RULE_createMaterializedViewStmt = 97; + public static readonly RULE_refreshMaterializedViewStmt = 98; + public static readonly RULE_createSeqStmt = 99; + public static readonly RULE_alterSeqStmt = 100; + public static readonly RULE_seqOptElem = 101; + public static readonly RULE_numericOnly = 102; + public static readonly RULE_createProceduralLangStmt = 103; + public static readonly RULE_createTableSpaceStmt = 104; + public static readonly RULE_createExtensionStmt = 105; + public static readonly RULE_alterExtensionStmt = 106; + public static readonly RULE_alterExtensionContentsStmt = 107; + public static readonly RULE_createFdwStmt = 108; public static readonly RULE_fdw_option = 109; - public static readonly RULE_alterfdwstmt = 110; + public static readonly RULE_alterFdwStmt = 110; public static readonly RULE_create_generic_options = 111; public static readonly RULE_alter_generic_options = 112; public static readonly RULE_alter_generic_option_elem = 113; public static readonly RULE_generic_option_elem = 114; - public static readonly RULE_createforeignserverstmt = 115; + public static readonly RULE_createForeignServerStmt = 115; public static readonly RULE_foreign_server_version = 116; - public static readonly RULE_alterforeignserverstmt = 117; - public static readonly RULE_createforeigntablestmt = 118; - public static readonly RULE_importforeignschemastmt = 119; - public static readonly RULE_createusermappingstmt = 120; - public static readonly RULE_alterusermappingstmt = 121; - public static readonly RULE_createpolicystmt = 122; - public static readonly RULE_alterpolicystmt = 123; - public static readonly RULE_alterprocedurestmt = 124; + public static readonly RULE_alterForeignServerStmt = 117; + public static readonly RULE_createForeignTableStmt = 118; + public static readonly RULE_importForeignSchemaStmt = 119; + public static readonly RULE_createUserMappingStmt = 120; + public static readonly RULE_alterUserMappingStmt = 121; + public static readonly RULE_createPolicyStmt = 122; + public static readonly RULE_alterPolicyStmt = 123; + public static readonly RULE_alterProcedureStmt = 124; public static readonly RULE_procedure_action = 125; - public static readonly RULE_rowsecurityoptionalexpr = 126; - public static readonly RULE_rowsecurityoptionalwithcheck = 127; - public static readonly RULE_createamstmt = 128; - public static readonly RULE_createtrigstmt = 129; - public static readonly RULE_triggeractiontime = 130; - public static readonly RULE_triggerevents = 131; - public static readonly RULE_triggeroneevent = 132; - public static readonly RULE_triggerwhen = 133; + public static readonly RULE_rowSecurityOptionalExpr = 126; + public static readonly RULE_rowSecurityOptionalWithCheck = 127; + public static readonly RULE_createAccessMethodStmt = 128; + public static readonly RULE_createTrigStmt = 129; + public static readonly RULE_triggerActionTime = 130; + public static readonly RULE_triggerEvents = 131; + public static readonly RULE_triggerOneEvent = 132; + public static readonly RULE_triggerWhen = 133; public static readonly RULE_function_or_procedure = 134; - public static readonly RULE_triggerfuncargs = 135; - public static readonly RULE_triggerfuncarg = 136; - public static readonly RULE_constraintattributeElem = 137; - public static readonly RULE_createeventtrigstmt = 138; + public static readonly RULE_triggerFuncArgs = 135; + public static readonly RULE_triggerFuncArg = 136; + public static readonly RULE_constraintAttributeElem = 137; + public static readonly RULE_createEventTrigStmt = 138; public static readonly RULE_event_trigger_when_item = 139; - public static readonly RULE_altereventtrigstmt = 140; - public static readonly RULE_createassertionstmt = 141; - public static readonly RULE_definestmt = 142; + public static readonly RULE_alterEventTrigStmt = 140; + public static readonly RULE_createAssertionStmt = 141; + public static readonly RULE_defineStmt = 142; public static readonly RULE_definition = 143; public static readonly RULE_def_elem = 144; public static readonly RULE_def_arg = 145; - public static readonly RULE_old_aggr_elem = 146; - public static readonly RULE_alterenumstmt = 147; + public static readonly RULE_old_aggregate_elem = 146; + public static readonly RULE_alterEnumStmt = 147; public static readonly RULE_opt_if_not_exists = 148; - public static readonly RULE_createopclassstmt = 149; - public static readonly RULE_opclass_item = 150; - public static readonly RULE_createopfamilystmt = 151; - public static readonly RULE_alteropfamilystmt = 152; - public static readonly RULE_opclass_drop = 153; - public static readonly RULE_reassignownedstmt = 154; - public static readonly RULE_dropstmt = 155; + public static readonly RULE_createOperatorClassStmt = 149; + public static readonly RULE_opClassItem = 150; + public static readonly RULE_createOperatorFamilyStmt = 151; + public static readonly RULE_alterOperatorFamilyStmt = 152; + public static readonly RULE_opClassDrop = 153; + public static readonly RULE_reassignOwnedStmt = 154; + public static readonly RULE_dropStmt = 155; public static readonly RULE_object_type_any_name = 156; public static readonly RULE_object_type_name = 157; public static readonly RULE_any_name_list = 158; public static readonly RULE_any_name = 159; public static readonly RULE_attrs = 160; - public static readonly RULE_truncatestmt = 161; + public static readonly RULE_truncateStmt = 161; public static readonly RULE_truncate_table = 162; - public static readonly RULE_commentstmt = 163; - public static readonly RULE_seclabelstmt = 164; - public static readonly RULE_fetchstmt = 165; + public static readonly RULE_commentStmt = 163; + public static readonly RULE_secLabelStmt = 164; + public static readonly RULE_fetchStmt = 165; public static readonly RULE_fetch_args = 166; public static readonly RULE_from_in = 167; - public static readonly RULE_grantstmt = 168; - public static readonly RULE_revokestmt = 169; + public static readonly RULE_grantStmt = 168; + public static readonly RULE_revokeStmt = 169; public static readonly RULE_privileges = 170; - public static readonly RULE_beforeprivilegeselect = 171; + public static readonly RULE_beforePrivilegeSelect = 171; public static readonly RULE_privilege = 172; public static readonly RULE_privilege_target = 173; public static readonly RULE_grantee_list = 174; - public static readonly RULE_grantrolestmt = 175; - public static readonly RULE_revokerolestmt = 176; - public static readonly RULE_alterdefaultprivilegesstmt = 177; + public static readonly RULE_grantRoleStmt = 175; + public static readonly RULE_revokeRoleStmt = 176; + public static readonly RULE_alterDefaultPrivilegesStmt = 177; public static readonly RULE_defaclaction = 178; public static readonly RULE_defacl_privilege_target = 179; - public static readonly RULE_indexstmt = 180; + public static readonly RULE_indexStmt = 180; public static readonly RULE_index_params = 181; public static readonly RULE_index_elem = 182; - public static readonly RULE_createfunctionstmt = 183; + public static readonly RULE_createFunctionStmt = 183; public static readonly RULE_opt_or_replace = 184; public static readonly RULE_func_args = 185; public static readonly RULE_func_args_list = 186; - public static readonly RULE_routine_with_argtypes_list = 187; - public static readonly RULE_routine_with_argtypes = 188; - public static readonly RULE_procedure_with_argtypes_list = 189; - public static readonly RULE_procedure_with_argtypes = 190; - public static readonly RULE_function_with_argtypes_list = 191; - public static readonly RULE_function_with_argtypes = 192; + public static readonly RULE_routineWithArgTypesList = 187; + public static readonly RULE_routineWithArgTypes = 188; + public static readonly RULE_procedureWithArgTypesList = 189; + public static readonly RULE_procedureWithArgTypes = 190; + public static readonly RULE_functionWithArgTypesList = 191; + public static readonly RULE_functionWithArgTypes = 192; public static readonly RULE_func_arg = 193; public static readonly RULE_arg_class = 194; public static readonly RULE_func_type = 195; public static readonly RULE_func_arg_with_default = 196; - public static readonly RULE_aggr_args = 197; - public static readonly RULE_aggregate_with_argtypes = 198; + public static readonly RULE_aggregate_args = 197; + public static readonly RULE_aggregateWithArgTypes = 198; public static readonly RULE_common_func_opt_item = 199; - public static readonly RULE_createfunc_opt_item = 200; + public static readonly RULE_create_func_opt_item = 200; public static readonly RULE_opt_definition = 201; public static readonly RULE_table_func_column = 202; - public static readonly RULE_alterfunctionstmt = 203; - public static readonly RULE_removefuncstmt = 204; - public static readonly RULE_removeaggrstmt = 205; - public static readonly RULE_removeoperstmt = 206; - public static readonly RULE_oper_argtypes = 207; + public static readonly RULE_alterFunctionStmt = 203; + public static readonly RULE_removeFuncStmt = 204; + public static readonly RULE_removeAggregateStmt = 205; + public static readonly RULE_removeOperatorStmt = 206; + public static readonly RULE_operatorArgTypes = 207; public static readonly RULE_any_operator = 208; - public static readonly RULE_operator_with_argtypes = 209; - public static readonly RULE_dostmt = 210; - public static readonly RULE_createcaststmt = 211; + public static readonly RULE_operatorWithArgTypes = 209; + public static readonly RULE_doStmt = 210; + public static readonly RULE_createCastStmt = 211; public static readonly RULE_opt_if_exists = 212; - public static readonly RULE_createtransformstmt = 213; + public static readonly RULE_createTransformStmt = 213; public static readonly RULE_sql_with_function = 214; - public static readonly RULE_reindexstmt = 215; - public static readonly RULE_altertblspcstmt = 216; - public static readonly RULE_renamestmt = 217; - public static readonly RULE_alterobjectdependsstmt = 218; - public static readonly RULE_alterobjectschemastmt = 219; - public static readonly RULE_alteroperatorstmt = 220; + public static readonly RULE_reindexStmt = 215; + public static readonly RULE_alterTblSpcStmt = 216; + public static readonly RULE_renameStmt = 217; + public static readonly RULE_alterObjectDependsStmt = 218; + public static readonly RULE_alterObjectSchemaStmt = 219; + public static readonly RULE_alterOperatorStmt = 220; public static readonly RULE_operator_def_list = 221; public static readonly RULE_operator_def_elem = 222; - public static readonly RULE_altertypestmt = 223; - public static readonly RULE_alterownerstmt = 224; - public static readonly RULE_createpublicationstmt = 225; - public static readonly RULE_alterpublicationstmt = 226; - public static readonly RULE_createsubscriptionstmt = 227; - public static readonly RULE_altersubscriptionstmt = 228; - public static readonly RULE_rulestmt = 229; - public static readonly RULE_ruleactionstmt = 230; - public static readonly RULE_notifystmt = 231; + public static readonly RULE_alterTypeStmt = 223; + public static readonly RULE_alterOwnerStmt = 224; + public static readonly RULE_createPublicationStmt = 225; + public static readonly RULE_alterPublicationStmt = 226; + public static readonly RULE_createSubscriptionStmt = 227; + public static readonly RULE_alterSubscriptionStmt = 228; + public static readonly RULE_ruleStmt = 229; + public static readonly RULE_ruleActionStmt = 230; + public static readonly RULE_notifyStmt = 231; public static readonly RULE_notify_payload = 232; - public static readonly RULE_listenstmt = 233; - public static readonly RULE_unlistenstmt = 234; - public static readonly RULE_transactionstmt = 235; + public static readonly RULE_listenStmt = 233; + public static readonly RULE_unListenStmt = 234; + public static readonly RULE_transactionStmt = 235; public static readonly RULE_opt_transaction = 236; public static readonly RULE_transaction_mode_item = 237; public static readonly RULE_transaction_mode_list = 238; - public static readonly RULE_viewstmt = 239; - public static readonly RULE_loadstmt = 240; - public static readonly RULE_createdbstmt = 241; - public static readonly RULE_createdb_opt_item = 242; - public static readonly RULE_alterdatabasestmt = 243; - public static readonly RULE_alterdatabasesetstmt = 244; - public static readonly RULE_altercollationstmt = 245; - public static readonly RULE_altersystemstmt = 246; - public static readonly RULE_createdomainstmt = 247; - public static readonly RULE_alterdomainstmt = 248; - public static readonly RULE_altertsdictionarystmt = 249; - public static readonly RULE_altertsconfigurationstmt = 250; - public static readonly RULE_createconversionstmt = 251; - public static readonly RULE_clusterstmt = 252; - public static readonly RULE_vacuumstmt = 253; - public static readonly RULE_analyzestmt = 254; + public static readonly RULE_viewStmt = 239; + public static readonly RULE_loadStmt = 240; + public static readonly RULE_createDbStmt = 241; + public static readonly RULE_create_db_opt_item = 242; + public static readonly RULE_alterDatabaseStmt = 243; + public static readonly RULE_alterDatabaseSetStmt = 244; + public static readonly RULE_alterCollationStmt = 245; + public static readonly RULE_alterSystemStmt = 246; + public static readonly RULE_createDomainStmt = 247; + public static readonly RULE_alterDomainStmt = 248; + public static readonly RULE_alterSearchDictionaryStmt = 249; + public static readonly RULE_alterSearchConfigurationStmt = 250; + public static readonly RULE_createConversionStmt = 251; + public static readonly RULE_clusterStmt = 252; + public static readonly RULE_vacuumStmt = 253; + public static readonly RULE_analyzeStmt = 254; public static readonly RULE_analyze_keyword = 255; public static readonly RULE_vac_analyze_option_elem = 256; public static readonly RULE_analyze_option_elem = 257; public static readonly RULE_opt_verbose = 258; public static readonly RULE_vacuum_relation = 259; public static readonly RULE_vacuum_relation_list = 260; - public static readonly RULE_explainstmt = 261; - public static readonly RULE_explainablestmt = 262; + public static readonly RULE_explainStmt = 261; + public static readonly RULE_explainableStmt = 262; public static readonly RULE_explain_option_list = 263; - public static readonly RULE_preparestmt = 264; + public static readonly RULE_prepareStmt = 264; public static readonly RULE_prep_type_clause = 265; - public static readonly RULE_preparablestmt = 266; - public static readonly RULE_executestmt = 267; + public static readonly RULE_preParableStmt = 266; + public static readonly RULE_executeStmt = 267; public static readonly RULE_execute_param_clause = 268; - public static readonly RULE_deallocatestmt = 269; - public static readonly RULE_insertstmt = 270; + public static readonly RULE_dealLocateStmt = 269; + public static readonly RULE_insertStmt = 270; public static readonly RULE_insert_rest = 271; public static readonly RULE_insert_column_list = 272; public static readonly RULE_insert_column_item = 273; public static readonly RULE_returning_clause = 274; - public static readonly RULE_deletestmt = 275; - public static readonly RULE_lockstmt = 276; - public static readonly RULE_updatestmt = 277; + public static readonly RULE_deleteStmt = 275; + public static readonly RULE_lockStmt = 276; + public static readonly RULE_updateStmt = 277; public static readonly RULE_set_clause_list = 278; public static readonly RULE_set_clause = 279; - public static readonly RULE_declarecursorstmt = 280; - public static readonly RULE_selectstmt = 281; + public static readonly RULE_declareCursorStmt = 280; + public static readonly RULE_selectStmt = 281; public static readonly RULE_select_with_parens = 282; public static readonly RULE_select_no_parens = 283; public static readonly RULE_select_clause = 284; @@ -899,13 +899,13 @@ export class PostgreSqlParser extends SQLParserBase { public static readonly RULE_set_operator_with_all_or_distinct = 286; public static readonly RULE_with_clause = 287; public static readonly RULE_common_table_expr = 288; - public static readonly RULE_search_cluase = 289; - public static readonly RULE_cycle_cluase = 290; + public static readonly RULE_search_clause = 289; + public static readonly RULE_cycle_clause = 290; public static readonly RULE_into_clause = 291; - public static readonly RULE_opttempTableName = 292; + public static readonly RULE_optTempTableName = 292; public static readonly RULE_distinct_clause = 293; public static readonly RULE_sort_clause = 294; - public static readonly RULE_sortby = 295; + public static readonly RULE_sortBy = 295; public static readonly RULE_select_limit = 296; public static readonly RULE_limit_clause = 297; public static readonly RULE_fetch_clause = 298; @@ -927,24 +927,24 @@ export class PostgreSqlParser extends SQLParserBase { public static readonly RULE_publication_relation_expr = 314; public static readonly RULE_relation_expr_list = 315; public static readonly RULE_relation_expr_opt_alias = 316; - public static readonly RULE_tablesample_clause = 317; + public static readonly RULE_tableSampleClause = 317; public static readonly RULE_func_table = 318; - public static readonly RULE_rowsfrom_item = 319; + public static readonly RULE_rowsFromItem = 319; public static readonly RULE_where_clause = 320; public static readonly RULE_where_or_current_clause = 321; - public static readonly RULE_tablefuncelementlist = 322; - public static readonly RULE_tablefuncelement = 323; - public static readonly RULE_xmltable = 324; - public static readonly RULE_xmltable_column_el = 325; + public static readonly RULE_tableFuncElementList = 322; + public static readonly RULE_tableFuncElement = 323; + public static readonly RULE_xmlTable = 324; + public static readonly RULE_xmlTableColumnEl = 325; public static readonly RULE_xml_namespace_el = 326; public static readonly RULE_typename = 327; - public static readonly RULE_simpletypename = 328; - public static readonly RULE_consttypename = 329; + public static readonly RULE_simpleTypeName = 328; + public static readonly RULE_constTypeName = 329; public static readonly RULE_numeric = 330; public static readonly RULE_opt_float = 331; public static readonly RULE_bit = 332; public static readonly RULE_character = 333; - public static readonly RULE_constdatetime = 334; + public static readonly RULE_constDatetime = 334; public static readonly RULE_opt_interval = 335; public static readonly RULE_interval_second = 336; public static readonly RULE_comparisonOperator = 337; @@ -960,7 +960,7 @@ export class PostgreSqlParser extends SQLParserBase { public static readonly RULE_xml_attribute_list = 347; public static readonly RULE_xml_attribute_el = 348; public static readonly RULE_document_or_content = 349; - public static readonly RULE_xmlexists_argument = 350; + public static readonly RULE_xmlExistsArgument = 350; public static readonly RULE_xml_passing_mech = 351; public static readonly RULE_window_clause = 352; public static readonly RULE_window_definition = 353; @@ -978,7 +978,7 @@ export class PostgreSqlParser extends SQLParserBase { public static readonly RULE_subquery_Op = 365; public static readonly RULE_expr_list = 366; public static readonly RULE_column_expr = 367; - public static readonly RULE_column_expr_noparen = 368; + public static readonly RULE_column_expr_no_paren = 368; public static readonly RULE_func_arg_list = 369; public static readonly RULE_func_arg_expr = 370; public static readonly RULE_array_expr = 371; @@ -1015,15 +1015,15 @@ export class PostgreSqlParser extends SQLParserBase { public static readonly RULE_column_name_create = 402; public static readonly RULE_function_name_create = 403; public static readonly RULE_function_name = 404; - public static readonly RULE_sconst = 405; + public static readonly RULE_stringConst = 405; public static readonly RULE_anysconst = 406; - public static readonly RULE_signediconst = 407; - public static readonly RULE_rolespec = 408; + public static readonly RULE_signedConst = 407; + public static readonly RULE_roleSpec = 408; public static readonly RULE_role_list = 409; - public static readonly RULE_colid = 410; + public static readonly RULE_colId = 410; public static readonly RULE_type_function_name = 411; - public static readonly RULE_nonreservedword = 412; - public static readonly RULE_collabel = 413; + public static readonly RULE_nonReservedWord = 412; + public static readonly RULE_colLabel = 413; public static readonly RULE_identifier = 414; public static readonly RULE_unreserved_keyword = 415; public static readonly RULE_col_name_keyword = 416; @@ -1061,7 +1061,7 @@ export class PostgreSqlParser extends SQLParserBase { public static readonly RULE_stmt_fetch = 448; public static readonly RULE_opt_fetch_direction = 449; public static readonly RULE_stmt_move = 450; - public static readonly RULE_mergestmt = 451; + public static readonly RULE_mergeStmt = 451; public static readonly RULE_data_source = 452; public static readonly RULE_merge_when_clause = 453; public static readonly RULE_merge_insert = 454; @@ -1308,101 +1308,102 @@ export class PostgreSqlParser extends SQLParserBase { "AfterEscapeStringConstantWithNewlineMode_Continued" ]; public static readonly ruleNames = [ - "program", "singleStmt", "stmt", "callstmt", "createrolestmt", "alteroptroleelem", - "createoptroleelem", "createuserstmt", "alterrolestmt", "alterrolesetstmt", - "alterroutinestmt", "alter_routine_cluase", "routine_action", "creategroupstmt", - "altergroupstmt", "createschemastmt", "schema_name_create", "schema_stmt", - "variablesetstmt", "set_rest", "generic_set", "set_rest_more", "var_name", + "program", "singleStmt", "stmt", "callStmt", "createRoleStmt", "alterOperatorRoleElem", + "createOperatorRoleElem", "createUserStmt", "alterRoleStmt", "alterRoleSetStmt", + "alterRoutineStmt", "alter_routine_clause", "routine_action", "createGroupStmt", + "alterGroupStmt", "createSchemaStmt", "schema_name_create", "schema_stmt", + "variableSetStmt", "set_rest", "generic_set", "set_rest_more", "var_name", "var_list", "var_value", "iso_level", "opt_boolean_or_string_column", - "opt_boolean_or_string", "zone_value", "nonreservedword_or_sconst", - "variableresetstmt", "reset_rest", "setresetclause", "functionsetresetclause", - "variableshowstmt", "constraintssetstmt", "checkpointstmt", "discardstmt", - "altertablestmt", "alter_table_cmds", "partition_bound_spec", "partition_bound_cluase", - "partition_bound_choose", "partition_with_cluase", "partition_cmd", + "opt_boolean_or_string", "zone_value", "nonReservedWordOrStringConst", + "variableResetStmt", "reset_rest", "setOrResetClause", "functionSetOrResetClause", + "variableShowStmt", "constraintsSetStmt", "checkPointStmt", "discardStmt", + "alterTableStmt", "alter_table_cmds", "partition_bound_spec", "partition_bound_clause", + "partition_bound_choose", "partition_with_clause", "partition_cmd", "index_partition_cmd", "alter_table_cmd", "alter_column_default", - "opt_drop_behavior", "opt_collate_clause", "reloptions", "opt_reloptions", - "reloption_elem", "partitionboundspec", "altercompositetypestmt", - "alter_type_cmd", "closeportalstmt", "copystmt", "copyOptionsNoparens", - "copyOptions", "copy_generic_opt_elem", "createstmt", "opttemp", - "opttypedtableelementlist", "tableelementlist", "tableelement", - "typedtableelement", "column_def", "colconstraint", "colconstraintelem", - "generated_when", "tablelikeoption", "constraintelem", "opt_column_list", + "opt_drop_behavior", "opt_collate_clause", "relOptions", "optRelOptions", + "relOptionElem", "partitionBoundSpec", "alterCompositeTypeStmt", + "alter_type_cmd", "closePortalStmt", "copyStmt", "copyOptionsNoparens", + "copyOptions", "copy_generic_opt_elem", "createStmt", "optTemp", + "optTypedTableElEmentList", "tableElementList", "tableElement", + "typedTableElement", "column_def", "colConstraint", "colConstraintElem", + "generated_when", "tableLikeOption", "constraintElem", "opt_column_list", "opt_column_list_create", "column_list", "opt_c_include", "key_match", - "exclusionconstraintelem", "key_actions", "key_update", "key_delete", - "key_action", "optinherit", "partitionspec", "part_elem", "table_access_method_clause", - "optwith", "oncommitoption", "opttablespace", "optconstablespace", - "existingindex", "createstatsstmt", "alterstatsstmt", "createasstmt", - "create_as_target", "opt_with_data", "creatematviewstmt", "refreshmatviewstmt", - "createseqstmt", "alterseqstmt", "seqoptelem", "numericonly", "createplangstmt", - "createtablespacestmt", "createextensionstmt", "alterextensionstmt", - "alterextensioncontentsstmt", "createfdwstmt", "fdw_option", "alterfdwstmt", - "create_generic_options", "alter_generic_options", "alter_generic_option_elem", - "generic_option_elem", "createforeignserverstmt", "foreign_server_version", - "alterforeignserverstmt", "createforeigntablestmt", "importforeignschemastmt", - "createusermappingstmt", "alterusermappingstmt", "createpolicystmt", - "alterpolicystmt", "alterprocedurestmt", "procedure_action", "rowsecurityoptionalexpr", - "rowsecurityoptionalwithcheck", "createamstmt", "createtrigstmt", - "triggeractiontime", "triggerevents", "triggeroneevent", "triggerwhen", - "function_or_procedure", "triggerfuncargs", "triggerfuncarg", "constraintattributeElem", - "createeventtrigstmt", "event_trigger_when_item", "altereventtrigstmt", - "createassertionstmt", "definestmt", "definition", "def_elem", "def_arg", - "old_aggr_elem", "alterenumstmt", "opt_if_not_exists", "createopclassstmt", - "opclass_item", "createopfamilystmt", "alteropfamilystmt", "opclass_drop", - "reassignownedstmt", "dropstmt", "object_type_any_name", "object_type_name", - "any_name_list", "any_name", "attrs", "truncatestmt", "truncate_table", - "commentstmt", "seclabelstmt", "fetchstmt", "fetch_args", "from_in", - "grantstmt", "revokestmt", "privileges", "beforeprivilegeselect", - "privilege", "privilege_target", "grantee_list", "grantrolestmt", - "revokerolestmt", "alterdefaultprivilegesstmt", "defaclaction", - "defacl_privilege_target", "indexstmt", "index_params", "index_elem", - "createfunctionstmt", "opt_or_replace", "func_args", "func_args_list", - "routine_with_argtypes_list", "routine_with_argtypes", "procedure_with_argtypes_list", - "procedure_with_argtypes", "function_with_argtypes_list", "function_with_argtypes", - "func_arg", "arg_class", "func_type", "func_arg_with_default", "aggr_args", - "aggregate_with_argtypes", "common_func_opt_item", "createfunc_opt_item", - "opt_definition", "table_func_column", "alterfunctionstmt", "removefuncstmt", - "removeaggrstmt", "removeoperstmt", "oper_argtypes", "any_operator", - "operator_with_argtypes", "dostmt", "createcaststmt", "opt_if_exists", - "createtransformstmt", "sql_with_function", "reindexstmt", "altertblspcstmt", - "renamestmt", "alterobjectdependsstmt", "alterobjectschemastmt", - "alteroperatorstmt", "operator_def_list", "operator_def_elem", "altertypestmt", - "alterownerstmt", "createpublicationstmt", "alterpublicationstmt", - "createsubscriptionstmt", "altersubscriptionstmt", "rulestmt", "ruleactionstmt", - "notifystmt", "notify_payload", "listenstmt", "unlistenstmt", "transactionstmt", + "exclusionConstraintElem", "key_actions", "key_update", "key_delete", + "key_action", "optInherit", "partitionSpec", "part_elem", "table_access_method_clause", + "optWith", "onCommitOption", "optTableSpace", "optConstableSpace", + "existingIndex", "createStatsStmt", "alterStatsStmt", "createAsStmt", + "create_as_target", "opt_with_data", "createMaterializedViewStmt", + "refreshMaterializedViewStmt", "createSeqStmt", "alterSeqStmt", + "seqOptElem", "numericOnly", "createProceduralLangStmt", "createTableSpaceStmt", + "createExtensionStmt", "alterExtensionStmt", "alterExtensionContentsStmt", + "createFdwStmt", "fdw_option", "alterFdwStmt", "create_generic_options", + "alter_generic_options", "alter_generic_option_elem", "generic_option_elem", + "createForeignServerStmt", "foreign_server_version", "alterForeignServerStmt", + "createForeignTableStmt", "importForeignSchemaStmt", "createUserMappingStmt", + "alterUserMappingStmt", "createPolicyStmt", "alterPolicyStmt", "alterProcedureStmt", + "procedure_action", "rowSecurityOptionalExpr", "rowSecurityOptionalWithCheck", + "createAccessMethodStmt", "createTrigStmt", "triggerActionTime", + "triggerEvents", "triggerOneEvent", "triggerWhen", "function_or_procedure", + "triggerFuncArgs", "triggerFuncArg", "constraintAttributeElem", + "createEventTrigStmt", "event_trigger_when_item", "alterEventTrigStmt", + "createAssertionStmt", "defineStmt", "definition", "def_elem", "def_arg", + "old_aggregate_elem", "alterEnumStmt", "opt_if_not_exists", "createOperatorClassStmt", + "opClassItem", "createOperatorFamilyStmt", "alterOperatorFamilyStmt", + "opClassDrop", "reassignOwnedStmt", "dropStmt", "object_type_any_name", + "object_type_name", "any_name_list", "any_name", "attrs", "truncateStmt", + "truncate_table", "commentStmt", "secLabelStmt", "fetchStmt", "fetch_args", + "from_in", "grantStmt", "revokeStmt", "privileges", "beforePrivilegeSelect", + "privilege", "privilege_target", "grantee_list", "grantRoleStmt", + "revokeRoleStmt", "alterDefaultPrivilegesStmt", "defaclaction", + "defacl_privilege_target", "indexStmt", "index_params", "index_elem", + "createFunctionStmt", "opt_or_replace", "func_args", "func_args_list", + "routineWithArgTypesList", "routineWithArgTypes", "procedureWithArgTypesList", + "procedureWithArgTypes", "functionWithArgTypesList", "functionWithArgTypes", + "func_arg", "arg_class", "func_type", "func_arg_with_default", "aggregate_args", + "aggregateWithArgTypes", "common_func_opt_item", "create_func_opt_item", + "opt_definition", "table_func_column", "alterFunctionStmt", "removeFuncStmt", + "removeAggregateStmt", "removeOperatorStmt", "operatorArgTypes", + "any_operator", "operatorWithArgTypes", "doStmt", "createCastStmt", + "opt_if_exists", "createTransformStmt", "sql_with_function", "reindexStmt", + "alterTblSpcStmt", "renameStmt", "alterObjectDependsStmt", "alterObjectSchemaStmt", + "alterOperatorStmt", "operator_def_list", "operator_def_elem", "alterTypeStmt", + "alterOwnerStmt", "createPublicationStmt", "alterPublicationStmt", + "createSubscriptionStmt", "alterSubscriptionStmt", "ruleStmt", "ruleActionStmt", + "notifyStmt", "notify_payload", "listenStmt", "unListenStmt", "transactionStmt", "opt_transaction", "transaction_mode_item", "transaction_mode_list", - "viewstmt", "loadstmt", "createdbstmt", "createdb_opt_item", "alterdatabasestmt", - "alterdatabasesetstmt", "altercollationstmt", "altersystemstmt", - "createdomainstmt", "alterdomainstmt", "altertsdictionarystmt", - "altertsconfigurationstmt", "createconversionstmt", "clusterstmt", - "vacuumstmt", "analyzestmt", "analyze_keyword", "vac_analyze_option_elem", + "viewStmt", "loadStmt", "createDbStmt", "create_db_opt_item", "alterDatabaseStmt", + "alterDatabaseSetStmt", "alterCollationStmt", "alterSystemStmt", + "createDomainStmt", "alterDomainStmt", "alterSearchDictionaryStmt", + "alterSearchConfigurationStmt", "createConversionStmt", "clusterStmt", + "vacuumStmt", "analyzeStmt", "analyze_keyword", "vac_analyze_option_elem", "analyze_option_elem", "opt_verbose", "vacuum_relation", "vacuum_relation_list", - "explainstmt", "explainablestmt", "explain_option_list", "preparestmt", - "prep_type_clause", "preparablestmt", "executestmt", "execute_param_clause", - "deallocatestmt", "insertstmt", "insert_rest", "insert_column_list", - "insert_column_item", "returning_clause", "deletestmt", "lockstmt", - "updatestmt", "set_clause_list", "set_clause", "declarecursorstmt", - "selectstmt", "select_with_parens", "select_no_parens", "select_clause", + "explainStmt", "explainableStmt", "explain_option_list", "prepareStmt", + "prep_type_clause", "preParableStmt", "executeStmt", "execute_param_clause", + "dealLocateStmt", "insertStmt", "insert_rest", "insert_column_list", + "insert_column_item", "returning_clause", "deleteStmt", "lockStmt", + "updateStmt", "set_clause_list", "set_clause", "declareCursorStmt", + "selectStmt", "select_with_parens", "select_no_parens", "select_clause", "simple_select", "set_operator_with_all_or_distinct", "with_clause", - "common_table_expr", "search_cluase", "cycle_cluase", "into_clause", - "opttempTableName", "distinct_clause", "sort_clause", "sortby", + "common_table_expr", "search_clause", "cycle_clause", "into_clause", + "optTempTableName", "distinct_clause", "sort_clause", "sortBy", "select_limit", "limit_clause", "fetch_clause", "offset_clause", "select_fetch_first_value", "group_clause", "group_by_list", "group_by_item", "for_locking_clause", "values_clause", "from_clause", "from_list", "table_ref", "alias_clause", "func_alias_clause", "join_type", "join_qual", "relation_expr", "publication_relation_expr", "relation_expr_list", - "relation_expr_opt_alias", "tablesample_clause", "func_table", "rowsfrom_item", - "where_clause", "where_or_current_clause", "tablefuncelementlist", - "tablefuncelement", "xmltable", "xmltable_column_el", "xml_namespace_el", - "typename", "simpletypename", "consttypename", "numeric", "opt_float", - "bit", "character", "constdatetime", "opt_interval", "interval_second", + "relation_expr_opt_alias", "tableSampleClause", "func_table", "rowsFromItem", + "where_clause", "where_or_current_clause", "tableFuncElementList", + "tableFuncElement", "xmlTable", "xmlTableColumnEl", "xml_namespace_el", + "typename", "simpleTypeName", "constTypeName", "numeric", "opt_float", + "bit", "character", "constDatetime", "opt_interval", "interval_second", "comparisonOperator", "expression", "booleanExpression", "predicate", "valueExpression", "primaryExpression", "func_application", "func_expr", "func_expr_windowless", "func_expr_common_subexpr", "xml_attribute_list", - "xml_attribute_el", "document_or_content", "xmlexists_argument", + "xml_attribute_el", "document_or_content", "xmlExistsArgument", "xml_passing_mech", "window_clause", "window_definition", "over_clause", "window_specification", "opt_frame_clause", "frame_bound", "row", "explicit_row", "sub_type", "all_op", "mathop", "qual_op", "qual_all_op", - "subquery_Op", "expr_list", "column_expr", "column_expr_noparen", + "subquery_Op", "expr_list", "column_expr", "column_expr_no_paren", "func_arg_list", "func_arg_expr", "array_expr", "extract_arg", "unicode_normal_form", "substr_list", "when_clause", "indirection_el", "indirection", "opt_indirection", "target_list", "target_el", "qualified_name_list", "table_name_list", @@ -1411,9 +1412,9 @@ export class PostgreSqlParser extends SQLParserBase { "view_name", "qualified_name", "tablespace_name_list", "name_list", "database_name_create", "database_name", "schema_name", "routine_name_create", "routine_name", "procedure_name", "procedure_name_create", "column_name", - "column_name_create", "function_name_create", "function_name", "sconst", - "anysconst", "signediconst", "rolespec", "role_list", "colid", "type_function_name", - "nonreservedword", "collabel", "identifier", "unreserved_keyword", + "column_name_create", "function_name_create", "function_name", "stringConst", + "anysconst", "signedConst", "roleSpec", "role_list", "colId", "type_function_name", + "nonReservedWord", "colLabel", "identifier", "unreserved_keyword", "col_name_keyword", "type_func_name_keyword", "reserved_keyword", "pl_block", "label_decl", "decl_statement", "decl_cursor_arg", "assign_operator", "proc_stmt", "stmt_perform", "stmt_call", "stmt_assign", "stmt_getdiag", @@ -1422,7 +1423,7 @@ export class PostgreSqlParser extends SQLParserBase { "stmt_return", "stmt_raise", "opt_raise_using_elem", "stmt_assert", "loop_body", "stmt_execsql", "stmt_dynexecute", "opt_execute_into", "stmt_open", "opt_open_bound_list_item", "stmt_fetch", "opt_fetch_direction", - "stmt_move", "mergestmt", "data_source", "merge_when_clause", "merge_insert", + "stmt_move", "mergeStmt", "data_source", "merge_when_clause", "merge_insert", "merge_update", "default_values_or_values", "exprofdefault", "stmt_close", "stmt_null", "stmt_commit_or_rollback", "stmt_set", "cursor_variable", "exception_sect", "proc_condition", "any_identifier", "sql_expression", @@ -1528,812 +1529,812 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 946; - this.altereventtrigstmt(); + this.alterEventTrigStmt(); } break; case 2: this.enterOuterAlt(localContext, 2); { this.state = 947; - this.altercollationstmt(); + this.alterCollationStmt(); } break; case 3: this.enterOuterAlt(localContext, 3); { this.state = 948; - this.alterdatabasestmt(); + this.alterDatabaseStmt(); } break; case 4: this.enterOuterAlt(localContext, 4); { this.state = 949; - this.alterdatabasesetstmt(); + this.alterDatabaseSetStmt(); } break; case 5: this.enterOuterAlt(localContext, 5); { this.state = 950; - this.alterdefaultprivilegesstmt(); + this.alterDefaultPrivilegesStmt(); } break; case 6: this.enterOuterAlt(localContext, 6); { this.state = 951; - this.alterdomainstmt(); + this.alterDomainStmt(); } break; case 7: this.enterOuterAlt(localContext, 7); { this.state = 952; - this.alterenumstmt(); + this.alterEnumStmt(); } break; case 8: this.enterOuterAlt(localContext, 8); { this.state = 953; - this.alterextensionstmt(); + this.alterExtensionStmt(); } break; case 9: this.enterOuterAlt(localContext, 9); { this.state = 954; - this.alterextensioncontentsstmt(); + this.alterExtensionContentsStmt(); } break; case 10: this.enterOuterAlt(localContext, 10); { this.state = 955; - this.alterfdwstmt(); + this.alterFdwStmt(); } break; case 11: this.enterOuterAlt(localContext, 11); { this.state = 956; - this.alterforeignserverstmt(); + this.alterForeignServerStmt(); } break; case 12: this.enterOuterAlt(localContext, 12); { this.state = 957; - this.alterfunctionstmt(); + this.alterFunctionStmt(); } break; case 13: this.enterOuterAlt(localContext, 13); { this.state = 958; - this.altergroupstmt(); + this.alterGroupStmt(); } break; case 14: this.enterOuterAlt(localContext, 14); { this.state = 959; - this.alterobjectdependsstmt(); + this.alterObjectDependsStmt(); } break; case 15: this.enterOuterAlt(localContext, 15); { this.state = 960; - this.alterobjectschemastmt(); + this.alterObjectSchemaStmt(); } break; case 16: this.enterOuterAlt(localContext, 16); { this.state = 961; - this.alterownerstmt(); + this.alterOwnerStmt(); } break; case 17: this.enterOuterAlt(localContext, 17); { this.state = 962; - this.alteroperatorstmt(); + this.alterOperatorStmt(); } break; case 18: this.enterOuterAlt(localContext, 18); { this.state = 963; - this.altertypestmt(); + this.alterTypeStmt(); } break; case 19: this.enterOuterAlt(localContext, 19); { this.state = 964; - this.alterpolicystmt(); + this.alterPolicyStmt(); } break; case 20: this.enterOuterAlt(localContext, 20); { this.state = 965; - this.alterprocedurestmt(); + this.alterProcedureStmt(); } break; case 21: this.enterOuterAlt(localContext, 21); { this.state = 966; - this.alterseqstmt(); + this.alterSeqStmt(); } break; case 22: this.enterOuterAlt(localContext, 22); { this.state = 967; - this.altersystemstmt(); + this.alterSystemStmt(); } break; case 23: this.enterOuterAlt(localContext, 23); { this.state = 968; - this.altertablestmt(); + this.alterTableStmt(); } break; case 24: this.enterOuterAlt(localContext, 24); { this.state = 969; - this.altertblspcstmt(); + this.alterTblSpcStmt(); } break; case 25: this.enterOuterAlt(localContext, 25); { this.state = 970; - this.altercompositetypestmt(); + this.alterCompositeTypeStmt(); } break; case 26: this.enterOuterAlt(localContext, 26); { this.state = 971; - this.alterpublicationstmt(); + this.alterPublicationStmt(); } break; case 27: this.enterOuterAlt(localContext, 27); { this.state = 972; - this.alterrolesetstmt(); + this.alterRoleSetStmt(); } break; case 28: this.enterOuterAlt(localContext, 28); { this.state = 973; - this.alterroutinestmt(); + this.alterRoutineStmt(); } break; case 29: this.enterOuterAlt(localContext, 29); { this.state = 974; - this.alterrolestmt(); + this.alterRoleStmt(); } break; case 30: this.enterOuterAlt(localContext, 30); { this.state = 975; - this.altersubscriptionstmt(); + this.alterSubscriptionStmt(); } break; case 31: this.enterOuterAlt(localContext, 31); { this.state = 976; - this.alterstatsstmt(); + this.alterStatsStmt(); } break; case 32: this.enterOuterAlt(localContext, 32); { this.state = 977; - this.altertsconfigurationstmt(); + this.alterSearchConfigurationStmt(); } break; case 33: this.enterOuterAlt(localContext, 33); { this.state = 978; - this.altertsdictionarystmt(); + this.alterSearchDictionaryStmt(); } break; case 34: this.enterOuterAlt(localContext, 34); { this.state = 979; - this.alterusermappingstmt(); + this.alterUserMappingStmt(); } break; case 35: this.enterOuterAlt(localContext, 35); { this.state = 980; - this.analyzestmt(); + this.analyzeStmt(); } break; case 36: this.enterOuterAlt(localContext, 36); { this.state = 981; - this.callstmt(); + this.callStmt(); } break; case 37: this.enterOuterAlt(localContext, 37); { this.state = 982; - this.checkpointstmt(); + this.checkPointStmt(); } break; case 38: this.enterOuterAlt(localContext, 38); { this.state = 983; - this.closeportalstmt(); + this.closePortalStmt(); } break; case 39: this.enterOuterAlt(localContext, 39); { this.state = 984; - this.clusterstmt(); + this.clusterStmt(); } break; case 40: this.enterOuterAlt(localContext, 40); { this.state = 985; - this.commentstmt(); + this.commentStmt(); } break; case 41: this.enterOuterAlt(localContext, 41); { this.state = 986; - this.constraintssetstmt(); + this.constraintsSetStmt(); } break; case 42: this.enterOuterAlt(localContext, 42); { this.state = 987; - this.copystmt(); + this.copyStmt(); } break; case 43: this.enterOuterAlt(localContext, 43); { this.state = 988; - this.createamstmt(); + this.createAccessMethodStmt(); } break; case 44: this.enterOuterAlt(localContext, 44); { this.state = 989; - this.createasstmt(); + this.createAsStmt(); } break; case 45: this.enterOuterAlt(localContext, 45); { this.state = 990; - this.createassertionstmt(); + this.createAssertionStmt(); } break; case 46: this.enterOuterAlt(localContext, 46); { this.state = 991; - this.createcaststmt(); + this.createCastStmt(); } break; case 47: this.enterOuterAlt(localContext, 47); { this.state = 992; - this.createconversionstmt(); + this.createConversionStmt(); } break; case 48: this.enterOuterAlt(localContext, 48); { this.state = 993; - this.createdomainstmt(); + this.createDomainStmt(); } break; case 49: this.enterOuterAlt(localContext, 49); { this.state = 994; - this.createextensionstmt(); + this.createExtensionStmt(); } break; case 50: this.enterOuterAlt(localContext, 50); { this.state = 995; - this.createfdwstmt(); + this.createFdwStmt(); } break; case 51: this.enterOuterAlt(localContext, 51); { this.state = 996; - this.createforeignserverstmt(); + this.createForeignServerStmt(); } break; case 52: this.enterOuterAlt(localContext, 52); { this.state = 997; - this.createforeigntablestmt(); + this.createForeignTableStmt(); } break; case 53: this.enterOuterAlt(localContext, 53); { this.state = 998; - this.createfunctionstmt(); + this.createFunctionStmt(); } break; case 54: this.enterOuterAlt(localContext, 54); { this.state = 999; - this.creategroupstmt(); + this.createGroupStmt(); } break; case 55: this.enterOuterAlt(localContext, 55); { this.state = 1000; - this.creatematviewstmt(); + this.createMaterializedViewStmt(); } break; case 56: this.enterOuterAlt(localContext, 56); { this.state = 1001; - this.createopclassstmt(); + this.createOperatorClassStmt(); } break; case 57: this.enterOuterAlt(localContext, 57); { this.state = 1002; - this.createopfamilystmt(); + this.createOperatorFamilyStmt(); } break; case 58: this.enterOuterAlt(localContext, 58); { this.state = 1003; - this.createpublicationstmt(); + this.createPublicationStmt(); } break; case 59: this.enterOuterAlt(localContext, 59); { this.state = 1004; - this.alteropfamilystmt(); + this.alterOperatorFamilyStmt(); } break; case 60: this.enterOuterAlt(localContext, 60); { this.state = 1005; - this.createpolicystmt(); + this.createPolicyStmt(); } break; case 61: this.enterOuterAlt(localContext, 61); { this.state = 1006; - this.createplangstmt(); + this.createProceduralLangStmt(); } break; case 62: this.enterOuterAlt(localContext, 62); { this.state = 1007; - this.createschemastmt(); + this.createSchemaStmt(); } break; case 63: this.enterOuterAlt(localContext, 63); { this.state = 1008; - this.createseqstmt(); + this.createSeqStmt(); } break; case 64: this.enterOuterAlt(localContext, 64); { this.state = 1009; - this.createstmt(); + this.createStmt(); } break; case 65: this.enterOuterAlt(localContext, 65); { this.state = 1010; - this.createsubscriptionstmt(); + this.createSubscriptionStmt(); } break; case 66: this.enterOuterAlt(localContext, 66); { this.state = 1011; - this.createstatsstmt(); + this.createStatsStmt(); } break; case 67: this.enterOuterAlt(localContext, 67); { this.state = 1012; - this.createtablespacestmt(); + this.createTableSpaceStmt(); } break; case 68: this.enterOuterAlt(localContext, 68); { this.state = 1013; - this.createtransformstmt(); + this.createTransformStmt(); } break; case 69: this.enterOuterAlt(localContext, 69); { this.state = 1014; - this.createtrigstmt(); + this.createTrigStmt(); } break; case 70: this.enterOuterAlt(localContext, 70); { this.state = 1015; - this.createeventtrigstmt(); + this.createEventTrigStmt(); } break; case 71: this.enterOuterAlt(localContext, 71); { this.state = 1016; - this.createrolestmt(); + this.createRoleStmt(); } break; case 72: this.enterOuterAlt(localContext, 72); { this.state = 1017; - this.createuserstmt(); + this.createUserStmt(); } break; case 73: this.enterOuterAlt(localContext, 73); { this.state = 1018; - this.createusermappingstmt(); + this.createUserMappingStmt(); } break; case 74: this.enterOuterAlt(localContext, 74); { this.state = 1019; - this.createdbstmt(); + this.createDbStmt(); } break; case 75: this.enterOuterAlt(localContext, 75); { this.state = 1020; - this.deallocatestmt(); + this.dealLocateStmt(); } break; case 76: this.enterOuterAlt(localContext, 76); { this.state = 1021; - this.declarecursorstmt(); + this.declareCursorStmt(); } break; case 77: this.enterOuterAlt(localContext, 77); { this.state = 1022; - this.definestmt(); + this.defineStmt(); } break; case 78: this.enterOuterAlt(localContext, 78); { this.state = 1023; - this.deletestmt(); + this.deleteStmt(); } break; case 79: this.enterOuterAlt(localContext, 79); { this.state = 1024; - this.discardstmt(); + this.discardStmt(); } break; case 80: this.enterOuterAlt(localContext, 80); { this.state = 1025; - this.dostmt(); + this.doStmt(); } break; case 81: this.enterOuterAlt(localContext, 81); { this.state = 1026; - this.dropstmt(); + this.dropStmt(); } break; case 82: this.enterOuterAlt(localContext, 82); { this.state = 1027; - this.executestmt(); + this.executeStmt(); } break; case 83: this.enterOuterAlt(localContext, 83); { this.state = 1028; - this.explainstmt(); + this.explainStmt(); } break; case 84: this.enterOuterAlt(localContext, 84); { this.state = 1029; - this.fetchstmt(); + this.fetchStmt(); } break; case 85: this.enterOuterAlt(localContext, 85); { this.state = 1030; - this.grantstmt(); + this.grantStmt(); } break; case 86: this.enterOuterAlt(localContext, 86); { this.state = 1031; - this.grantrolestmt(); + this.grantRoleStmt(); } break; case 87: this.enterOuterAlt(localContext, 87); { this.state = 1032; - this.mergestmt(); + this.mergeStmt(); } break; case 88: this.enterOuterAlt(localContext, 88); { this.state = 1033; - this.importforeignschemastmt(); + this.importForeignSchemaStmt(); } break; case 89: this.enterOuterAlt(localContext, 89); { this.state = 1034; - this.indexstmt(); + this.indexStmt(); } break; case 90: this.enterOuterAlt(localContext, 90); { this.state = 1035; - this.insertstmt(); + this.insertStmt(); } break; case 91: this.enterOuterAlt(localContext, 91); { this.state = 1036; - this.listenstmt(); + this.listenStmt(); } break; case 92: this.enterOuterAlt(localContext, 92); { this.state = 1037; - this.refreshmatviewstmt(); + this.refreshMaterializedViewStmt(); } break; case 93: this.enterOuterAlt(localContext, 93); { this.state = 1038; - this.loadstmt(); + this.loadStmt(); } break; case 94: this.enterOuterAlt(localContext, 94); { this.state = 1039; - this.lockstmt(); + this.lockStmt(); } break; case 95: this.enterOuterAlt(localContext, 95); { this.state = 1040; - this.notifystmt(); + this.notifyStmt(); } break; case 96: this.enterOuterAlt(localContext, 96); { this.state = 1041; - this.preparestmt(); + this.prepareStmt(); } break; case 97: this.enterOuterAlt(localContext, 97); { this.state = 1042; - this.reassignownedstmt(); + this.reassignOwnedStmt(); } break; case 98: this.enterOuterAlt(localContext, 98); { this.state = 1043; - this.reindexstmt(); + this.reindexStmt(); } break; case 99: this.enterOuterAlt(localContext, 99); { this.state = 1044; - this.removeaggrstmt(); + this.removeAggregateStmt(); } break; case 100: this.enterOuterAlt(localContext, 100); { this.state = 1045; - this.removefuncstmt(); + this.removeFuncStmt(); } break; case 101: this.enterOuterAlt(localContext, 101); { this.state = 1046; - this.removeoperstmt(); + this.removeOperatorStmt(); } break; case 102: this.enterOuterAlt(localContext, 102); { this.state = 1047; - this.renamestmt(); + this.renameStmt(); } break; case 103: this.enterOuterAlt(localContext, 103); { this.state = 1048; - this.revokestmt(); + this.revokeStmt(); } break; case 104: this.enterOuterAlt(localContext, 104); { this.state = 1049; - this.revokerolestmt(); + this.revokeRoleStmt(); } break; case 105: this.enterOuterAlt(localContext, 105); { this.state = 1050; - this.rulestmt(); + this.ruleStmt(); } break; case 106: this.enterOuterAlt(localContext, 106); { this.state = 1051; - this.seclabelstmt(); + this.secLabelStmt(); } break; case 107: this.enterOuterAlt(localContext, 107); { this.state = 1052; - this.selectstmt(); + this.selectStmt(); } break; case 108: this.enterOuterAlt(localContext, 108); { this.state = 1053; - this.transactionstmt(); + this.transactionStmt(); } break; case 109: this.enterOuterAlt(localContext, 109); { this.state = 1054; - this.truncatestmt(); + this.truncateStmt(); } break; case 110: this.enterOuterAlt(localContext, 110); { this.state = 1055; - this.unlistenstmt(); + this.unListenStmt(); } break; case 111: this.enterOuterAlt(localContext, 111); { this.state = 1056; - this.updatestmt(); + this.updateStmt(); } break; case 112: this.enterOuterAlt(localContext, 112); { this.state = 1057; - this.vacuumstmt(); + this.vacuumStmt(); } break; case 113: this.enterOuterAlt(localContext, 113); { this.state = 1058; - this.variableresetstmt(); + this.variableResetStmt(); } break; case 114: this.enterOuterAlt(localContext, 114); { this.state = 1059; - this.variablesetstmt(); + this.variableSetStmt(); } break; case 115: this.enterOuterAlt(localContext, 115); { this.state = 1060; - this.variableshowstmt(); + this.variableShowStmt(); } break; case 116: this.enterOuterAlt(localContext, 116); { this.state = 1061; - this.viewstmt(); + this.viewStmt(); } break; case 117: @@ -2369,9 +2370,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public callstmt(): CallstmtContext { - let localContext = new CallstmtContext(this.context, this.state); - this.enterRule(localContext, 6, PostgreSqlParser.RULE_callstmt); + public callStmt(): CallStmtContext { + let localContext = new CallStmtContext(this.context, this.state); + this.enterRule(localContext, 6, PostgreSqlParser.RULE_callStmt); try { this.enterOuterAlt(localContext, 1); { @@ -2395,9 +2396,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createrolestmt(): CreaterolestmtContext { - let localContext = new CreaterolestmtContext(this.context, this.state); - this.enterRule(localContext, 8, PostgreSqlParser.RULE_createrolestmt); + public createRoleStmt(): CreateRoleStmtContext { + let localContext = new CreateRoleStmtContext(this.context, this.state); + this.enterRule(localContext, 8, PostgreSqlParser.RULE_createRoleStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -2407,7 +2408,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1072; this.match(PostgreSqlParser.KW_ROLE); this.state = 1073; - this.rolespec(); + this.roleSpec(); this.state = 1075; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context) ) { @@ -2426,7 +2427,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 1077; - this.createoptroleelem(); + this.createOperatorRoleElem(); } } } @@ -2450,9 +2451,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alteroptroleelem(): AlteroptroleelemContext { - let localContext = new AlteroptroleelemContext(this.context, this.state); - this.enterRule(localContext, 10, PostgreSqlParser.RULE_alteroptroleelem); + public alterOperatorRoleElem(): AlterOperatorRoleElemContext { + let localContext = new AlterOperatorRoleElemContext(this.context, this.state); + this.enterRule(localContext, 10, PostgreSqlParser.RULE_alterOperatorRoleElem); let _la: number; try { this.state = 1121; @@ -2472,7 +2473,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 1084; - this.sconst(); + this.stringConst(); } break; case PostgreSqlParser.KW_NULL: @@ -2501,7 +2502,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1089; this.match(PostgreSqlParser.KW_PASSWORD); this.state = 1090; - this.sconst(); + this.stringConst(); } break; case 3: @@ -2624,7 +2625,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1108; this.match(PostgreSqlParser.KW_LIMIT); this.state = 1109; - this.signediconst(); + this.signedConst(); } break; case 20: @@ -2635,7 +2636,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1111; this.match(PostgreSqlParser.KW_UNTIL); this.state = 1112; - this.sconst(); + this.stringConst(); } break; case 21: @@ -2704,9 +2705,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createoptroleelem(): CreateoptroleelemContext { - let localContext = new CreateoptroleelemContext(this.context, this.state); - this.enterRule(localContext, 12, PostgreSqlParser.RULE_createoptroleelem); + public createOperatorRoleElem(): CreateOperatorRoleElemContext { + let localContext = new CreateOperatorRoleElemContext(this.context, this.state); + this.enterRule(localContext, 12, PostgreSqlParser.RULE_createOperatorRoleElem); let _la: number; try { this.state = 1131; @@ -2716,7 +2717,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 1123; - this.alteroptroleelem(); + this.alterOperatorRoleElem(); } break; case 2: @@ -2778,9 +2779,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createuserstmt(): CreateuserstmtContext { - let localContext = new CreateuserstmtContext(this.context, this.state); - this.enterRule(localContext, 14, PostgreSqlParser.RULE_createuserstmt); + public createUserStmt(): CreateUserStmtContext { + let localContext = new CreateUserStmtContext(this.context, this.state); + this.enterRule(localContext, 14, PostgreSqlParser.RULE_createUserStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -2790,7 +2791,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1134; this.match(PostgreSqlParser.KW_USER); this.state = 1135; - this.rolespec(); + this.roleSpec(); this.state = 1137; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 9, this.context) ) { @@ -2809,7 +2810,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 1139; - this.createoptroleelem(); + this.createOperatorRoleElem(); } } } @@ -2833,9 +2834,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterrolestmt(): AlterrolestmtContext { - let localContext = new AlterrolestmtContext(this.context, this.state); - this.enterRule(localContext, 16, PostgreSqlParser.RULE_alterrolestmt); + public alterRoleStmt(): AlterRoleStmtContext { + let localContext = new AlterRoleStmtContext(this.context, this.state); + this.enterRule(localContext, 16, PostgreSqlParser.RULE_alterRoleStmt); let _la: number; try { let alternative: number; @@ -2853,7 +2854,7 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } this.state = 1147; - this.rolespec(); + this.roleSpec(); this.state = 1149; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 11, this.context) ) { @@ -2872,7 +2873,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 1151; - this.alteroptroleelem(); + this.alterOperatorRoleElem(); } } } @@ -2896,9 +2897,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterrolesetstmt(): AlterrolesetstmtContext { - let localContext = new AlterrolesetstmtContext(this.context, this.state); - this.enterRule(localContext, 18, PostgreSqlParser.RULE_alterrolesetstmt); + public alterRoleSetStmt(): AlterRoleSetStmtContext { + let localContext = new AlterRoleSetStmtContext(this.context, this.state); + this.enterRule(localContext, 18, PostgreSqlParser.RULE_alterRoleSetStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -3343,7 +3344,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 1160; - this.rolespec(); + this.roleSpec(); } break; default: @@ -3356,7 +3357,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1165; this.database_name(); this.state = 1166; - this.setresetclause(); + this.setOrResetClause(); } } catch (re) { @@ -3373,9 +3374,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterroutinestmt(): AlterroutinestmtContext { - let localContext = new AlterroutinestmtContext(this.context, this.state); - this.enterRule(localContext, 20, PostgreSqlParser.RULE_alterroutinestmt); + public alterRoutineStmt(): AlterRoutineStmtContext { + let localContext = new AlterRoutineStmtContext(this.context, this.state); + this.enterRule(localContext, 20, PostgreSqlParser.RULE_alterRoutineStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -3397,7 +3398,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 1174; - this.alter_routine_cluase(); + this.alter_routine_clause(); } } catch (re) { @@ -3414,9 +3415,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alter_routine_cluase(): Alter_routine_cluaseContext { - let localContext = new Alter_routine_cluaseContext(this.context, this.state); - this.enterRule(localContext, 22, PostgreSqlParser.RULE_alter_routine_cluase); + public alter_routine_clause(): Alter_routine_clauseContext { + let localContext = new Alter_routine_clauseContext(this.context, this.state); + this.enterRule(localContext, 22, PostgreSqlParser.RULE_alter_routine_clause); let _la: number; try { let alternative: number; @@ -3475,7 +3476,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1190; this.match(PostgreSqlParser.KW_TO); this.state = 1191; - this.rolespec(); + this.roleSpec(); } break; case 4: @@ -3509,7 +3510,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1200; this.match(PostgreSqlParser.KW_EXTENSION); this.state = 1201; - this.colid(); + this.colId(); } break; } @@ -3641,7 +3642,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1225; this.match(PostgreSqlParser.KW_COST); this.state = 1226; - this.collabel(); + this.colLabel(); } break; case 8: @@ -3650,7 +3651,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1227; this.match(PostgreSqlParser.KW_ROWS); this.state = 1228; - this.colid(); + this.colId(); } break; case 9: @@ -3659,7 +3660,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1229; this.match(PostgreSqlParser.KW_SET); this.state = 1230; - this.colid(); + this.colId(); this.state = 1231; _la = this.tokenStream.LA(1); if(!(_la === 10 || _la === 94)) { @@ -3675,7 +3676,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 1232; - this.colid(); + this.colId(); } break; case 2: @@ -3693,7 +3694,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1236; this.match(PostgreSqlParser.KW_SET); this.state = 1237; - this.colid(); + this.colId(); this.state = 1238; this.match(PostgreSqlParser.KW_FROM); this.state = 1239; @@ -4104,7 +4105,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 1242; - this.colid(); + this.colId(); } break; case PostgreSqlParser.KW_ALL: @@ -4134,9 +4135,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public creategroupstmt(): CreategroupstmtContext { - let localContext = new CreategroupstmtContext(this.context, this.state); - this.enterRule(localContext, 26, PostgreSqlParser.RULE_creategroupstmt); + public createGroupStmt(): CreateGroupStmtContext { + let localContext = new CreateGroupStmtContext(this.context, this.state); + this.enterRule(localContext, 26, PostgreSqlParser.RULE_createGroupStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -4146,7 +4147,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1249; this.match(PostgreSqlParser.KW_GROUP); this.state = 1250; - this.rolespec(); + this.roleSpec(); this.state = 1252; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 26, this.context) ) { @@ -4165,7 +4166,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 1254; - this.createoptroleelem(); + this.createOperatorRoleElem(); } } } @@ -4189,9 +4190,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public altergroupstmt(): AltergroupstmtContext { - let localContext = new AltergroupstmtContext(this.context, this.state); - this.enterRule(localContext, 28, PostgreSqlParser.RULE_altergroupstmt); + public alterGroupStmt(): AlterGroupStmtContext { + let localContext = new AlterGroupStmtContext(this.context, this.state); + this.enterRule(localContext, 28, PostgreSqlParser.RULE_alterGroupStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -4201,7 +4202,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1261; this.match(PostgreSqlParser.KW_GROUP); this.state = 1262; - this.rolespec(); + this.roleSpec(); this.state = 1263; _la = this.tokenStream.LA(1); if(!(_la === 133 || _la === 191)) { @@ -4231,9 +4232,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createschemastmt(): CreateschemastmtContext { - let localContext = new CreateschemastmtContext(this.context, this.state); - this.enterRule(localContext, 30, PostgreSqlParser.RULE_createschemastmt); + public createSchemaStmt(): CreateSchemaStmtContext { + let localContext = new CreateSchemaStmtContext(this.context, this.state); + this.enterRule(localContext, 30, PostgreSqlParser.RULE_createSchemaStmt); let _la: number; try { let alternative: number; @@ -4271,7 +4272,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1275; this.match(PostgreSqlParser.KW_AUTHORIZATION); this.state = 1276; - this.rolespec(); + this.roleSpec(); } break; case 2: @@ -4349,42 +4350,42 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 1288; - this.createstmt(); + this.createStmt(); } break; case 2: this.enterOuterAlt(localContext, 2); { this.state = 1289; - this.indexstmt(); + this.indexStmt(); } break; case 3: this.enterOuterAlt(localContext, 3); { this.state = 1290; - this.createseqstmt(); + this.createSeqStmt(); } break; case 4: this.enterOuterAlt(localContext, 4); { this.state = 1291; - this.createtrigstmt(); + this.createTrigStmt(); } break; case 5: this.enterOuterAlt(localContext, 5); { this.state = 1292; - this.grantstmt(); + this.grantStmt(); } break; case 6: this.enterOuterAlt(localContext, 6); { this.state = 1293; - this.viewstmt(); + this.viewStmt(); } break; } @@ -4403,9 +4404,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public variablesetstmt(): VariablesetstmtContext { - let localContext = new VariablesetstmtContext(this.context, this.state); - this.enterRule(localContext, 36, PostgreSqlParser.RULE_variablesetstmt); + public variableSetStmt(): VariableSetStmtContext { + let localContext = new VariableSetStmtContext(this.context, this.state); + this.enterRule(localContext, 36, PostgreSqlParser.RULE_variableSetStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -4992,7 +4993,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1326; this.match(PostgreSqlParser.KW_CATALOG); this.state = 1327; - this.sconst(); + this.stringConst(); } break; case 3: @@ -5015,7 +5016,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 1331; - this.sconst(); + this.stringConst(); } break; case 2: @@ -5033,7 +5034,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1335; this.match(PostgreSqlParser.KW_ROLE); this.state = 1336; - this.nonreservedword_or_sconst(); + this.nonReservedWordOrStringConst(); } break; case 6: @@ -5044,7 +5045,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1338; this.match(PostgreSqlParser.KW_AUTHORIZATION); this.state = 1339; - this.nonreservedword_or_sconst(); + this.nonReservedWordOrStringConst(); } break; case 7: @@ -5066,7 +5067,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1344; this.match(PostgreSqlParser.KW_SNAPSHOT); this.state = 1345; - this.sconst(); + this.stringConst(); } break; case 9: @@ -5111,7 +5112,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 1353; - this.colid(); + this.colId(); this.state = 1358; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -5121,7 +5122,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1354; this.match(PostgreSqlParser.DOT); this.state = 1355; - this.colid(); + this.colId(); } } this.state = 1360; @@ -5623,7 +5624,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { this.state = 1370; - this.numericonly(); + this.numericOnly(); } break; default: @@ -5748,7 +5749,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 6); { this.state = 1385; - this.sconst(); + this.stringConst(); } break; } @@ -6213,7 +6214,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 4); { this.state = 1391; - this.nonreservedword_or_sconst(); + this.nonReservedWordOrStringConst(); } break; default: @@ -6245,7 +6246,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 1394; - this.sconst(); + this.stringConst(); } break; case 2: @@ -6268,7 +6269,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1397; this.match(PostgreSqlParser.KW_INTERVAL); this.state = 1398; - this.sconst(); + this.stringConst(); this.state = 1400; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 46, this.context) ) { @@ -6289,14 +6290,14 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1403; this.opt_float(); this.state = 1404; - this.sconst(); + this.stringConst(); } break; case 6: this.enterOuterAlt(localContext, 6); { this.state = 1406; - this.numericonly(); + this.numericOnly(); } break; case 7: @@ -6322,9 +6323,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public nonreservedword_or_sconst(): Nonreservedword_or_sconstContext { - let localContext = new Nonreservedword_or_sconstContext(this.context, this.state); - this.enterRule(localContext, 58, PostgreSqlParser.RULE_nonreservedword_or_sconst); + public nonReservedWordOrStringConst(): NonReservedWordOrStringConstContext { + let localContext = new NonReservedWordOrStringConstContext(this.context, this.state); + this.enterRule(localContext, 58, PostgreSqlParser.RULE_nonReservedWordOrStringConst); try { this.state = 1412; this.errorHandler.sync(this); @@ -6333,14 +6334,14 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 1410; - this.nonreservedword(); + this.nonReservedWord(); } break; case 2: this.enterOuterAlt(localContext, 2); { this.state = 1411; - this.sconst(); + this.stringConst(); } break; } @@ -6359,9 +6360,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public variableresetstmt(): VariableresetstmtContext { - let localContext = new VariableresetstmtContext(this.context, this.state); - this.enterRule(localContext, 60, PostgreSqlParser.RULE_variableresetstmt); + public variableResetStmt(): VariableResetStmtContext { + let localContext = new VariableResetStmtContext(this.context, this.state); + this.enterRule(localContext, 60, PostgreSqlParser.RULE_variableResetStmt); try { this.enterOuterAlt(localContext, 1); { @@ -6451,9 +6452,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public setresetclause(): SetresetclauseContext { - let localContext = new SetresetclauseContext(this.context, this.state); - this.enterRule(localContext, 64, PostgreSqlParser.RULE_setresetclause); + public setOrResetClause(): SetOrResetClauseContext { + let localContext = new SetOrResetClauseContext(this.context, this.state); + this.enterRule(localContext, 64, PostgreSqlParser.RULE_setOrResetClause); try { this.state = 1431; this.errorHandler.sync(this); @@ -6471,7 +6472,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { this.state = 1430; - this.variableresetstmt(); + this.variableResetStmt(); } break; default: @@ -6492,9 +6493,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public functionsetresetclause(): FunctionsetresetclauseContext { - let localContext = new FunctionsetresetclauseContext(this.context, this.state); - this.enterRule(localContext, 66, PostgreSqlParser.RULE_functionsetresetclause); + public functionSetOrResetClause(): FunctionSetOrResetClauseContext { + let localContext = new FunctionSetOrResetClauseContext(this.context, this.state); + this.enterRule(localContext, 66, PostgreSqlParser.RULE_functionSetOrResetClause); try { this.state = 1436; this.errorHandler.sync(this); @@ -6512,7 +6513,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { this.state = 1435; - this.variableresetstmt(); + this.variableResetStmt(); } break; default: @@ -6533,9 +6534,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public variableshowstmt(): VariableshowstmtContext { - let localContext = new VariableshowstmtContext(this.context, this.state); - this.enterRule(localContext, 68, PostgreSqlParser.RULE_variableshowstmt); + public variableShowStmt(): VariableShowStmtContext { + let localContext = new VariableShowStmtContext(this.context, this.state); + this.enterRule(localContext, 68, PostgreSqlParser.RULE_variableShowStmt); try { this.enterOuterAlt(localContext, 1); { @@ -6599,9 +6600,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public constraintssetstmt(): ConstraintssetstmtContext { - let localContext = new ConstraintssetstmtContext(this.context, this.state); - this.enterRule(localContext, 70, PostgreSqlParser.RULE_constraintssetstmt); + public constraintsSetStmt(): ConstraintsSetStmtContext { + let localContext = new ConstraintsSetStmtContext(this.context, this.state); + this.enterRule(localContext, 70, PostgreSqlParser.RULE_constraintsSetStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -7046,9 +7047,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public checkpointstmt(): CheckpointstmtContext { - let localContext = new CheckpointstmtContext(this.context, this.state); - this.enterRule(localContext, 72, PostgreSqlParser.RULE_checkpointstmt); + public checkPointStmt(): CheckPointStmtContext { + let localContext = new CheckPointStmtContext(this.context, this.state); + this.enterRule(localContext, 72, PostgreSqlParser.RULE_checkPointStmt); try { this.enterOuterAlt(localContext, 1); { @@ -7070,9 +7071,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public discardstmt(): DiscardstmtContext { - let localContext = new DiscardstmtContext(this.context, this.state); - this.enterRule(localContext, 74, PostgreSqlParser.RULE_discardstmt); + public discardStmt(): DiscardStmtContext { + let localContext = new DiscardStmtContext(this.context, this.state); + this.enterRule(localContext, 74, PostgreSqlParser.RULE_discardStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -7104,9 +7105,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public altertablestmt(): AltertablestmtContext { - let localContext = new AltertablestmtContext(this.context, this.state); - this.enterRule(localContext, 76, PostgreSqlParser.RULE_altertablestmt); + public alterTableStmt(): AlterTableStmtContext { + let localContext = new AlterTableStmtContext(this.context, this.state); + this.enterRule(localContext, 76, PostgreSqlParser.RULE_alterTableStmt); let _la: number; try { this.state = 1584; @@ -7180,7 +7181,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1476; this.match(PostgreSqlParser.KW_IN); this.state = 1477; - this.opttablespace(); + this.optTableSpace(); this.state = 1481; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -7369,7 +7370,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1527; this.match(PostgreSqlParser.KW_IN); this.state = 1528; - this.opttablespace(); + this.optTableSpace(); this.state = 1532; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -7387,7 +7388,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1534; this.match(PostgreSqlParser.KW_SET); this.state = 1535; - this.opttablespace(); + this.optTableSpace(); this.state = 1537; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 65, this.context) ) { @@ -7470,7 +7471,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1562; this.match(PostgreSqlParser.KW_IN); this.state = 1563; - this.opttablespace(); + this.optTableSpace(); this.state = 1567; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -7607,11 +7608,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1596; this.match(PostgreSqlParser.KW_FROM); this.state = 1597; - this.partition_bound_cluase(); + this.partition_bound_clause(); this.state = 1598; this.match(PostgreSqlParser.KW_TO); this.state = 1599; - this.partition_bound_cluase(); + this.partition_bound_clause(); } break; case PostgreSqlParser.KW_WITH: @@ -7620,7 +7621,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1601; this.match(PostgreSqlParser.KW_WITH); this.state = 1602; - this.partition_with_cluase(); + this.partition_with_clause(); } break; default: @@ -7641,9 +7642,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public partition_bound_cluase(): Partition_bound_cluaseContext { - let localContext = new Partition_bound_cluaseContext(this.context, this.state); - this.enterRule(localContext, 82, PostgreSqlParser.RULE_partition_bound_cluase); + public partition_bound_clause(): Partition_bound_clauseContext { + let localContext = new Partition_bound_clauseContext(this.context, this.state); + this.enterRule(localContext, 82, PostgreSqlParser.RULE_partition_bound_clause); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -7732,9 +7733,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public partition_with_cluase(): Partition_with_cluaseContext { - let localContext = new Partition_with_cluaseContext(this.context, this.state); - this.enterRule(localContext, 86, PostgreSqlParser.RULE_partition_with_cluase); + public partition_with_clause(): Partition_with_clauseContext { + let localContext = new Partition_with_clauseContext(this.context, this.state); + this.enterRule(localContext, 86, PostgreSqlParser.RULE_partition_with_clause); try { this.enterOuterAlt(localContext, 1); { @@ -7743,13 +7744,13 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1622; this.match(PostgreSqlParser.KW_MODULUS); this.state = 1623; - this.numericonly(); + this.numericOnly(); this.state = 1624; this.match(PostgreSqlParser.COMMA); this.state = 1625; this.match(PostgreSqlParser.KW_REMAINDER); this.state = 1626; - this.numericonly(); + this.numericOnly(); this.state = 1627; this.match(PostgreSqlParser.CLOSE_PAREN); } @@ -7781,7 +7782,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1629; this.index_partition_cmd(); this.state = 1630; - this.partitionboundspec(); + this.partitionBoundSpec(); } break; case PostgreSqlParser.KW_DETACH: @@ -7863,12 +7864,12 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1642; this.match(PostgreSqlParser.KW_CONSTRAINT); this.state = 1643; - this.colid(); + this.colId(); } } this.state = 1646; - this.constraintelem(); + this.constraintElem(); } break; case 2: @@ -7879,7 +7880,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1648; this.match(PostgreSqlParser.KW_CONSTRAINT); this.state = 1649; - this.colid(); + this.colId(); this.state = 1653; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 79, this.context); @@ -7888,7 +7889,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 1650; - this.constraintattributeElem(); + this.constraintAttributeElem(); } } } @@ -7906,7 +7907,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1657; this.match(PostgreSqlParser.KW_CONSTRAINT); this.state = 1658; - this.colid(); + this.colId(); } break; case 4: @@ -7927,7 +7928,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 1664; - this.colid(); + this.colId(); this.state = 1666; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 81, this.context) ) { @@ -7966,7 +7967,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1672; this.match(PostgreSqlParser.KW_ON); this.state = 1673; - this.colid(); + this.colId(); } break; case 7: @@ -8429,7 +8430,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 1685; - this.colid(); + this.colId(); } break; default: @@ -8454,7 +8455,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1690; this.match(PostgreSqlParser.KW_RULE); this.state = 1691; - this.colid(); + this.colId(); } break; case 11: @@ -8465,7 +8466,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1693; this.match(PostgreSqlParser.KW_RULE); this.state = 1694; - this.colid(); + this.colId(); } break; case 12: @@ -8513,7 +8514,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1705; this.match(PostgreSqlParser.KW_TO); this.state = 1706; - this.rolespec(); + this.roleSpec(); } break; case 16: @@ -8558,7 +8559,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_USING: { this.state = 1715; - this.existingindex(); + this.existingIndex(); } break; default: @@ -8807,7 +8808,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1782; this.match(PostgreSqlParser.KW_STATISTICS); this.state = 1783; - this.signediconst(); + this.signedConst(); } break; case 25: @@ -8845,7 +8846,7 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } this.state = 1793; - this.reloptions(); + this.relOptions(); } break; case 26: @@ -8870,7 +8871,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1800; this.match(PostgreSqlParser.KW_STORAGE); this.state = 1801; - this.colid(); + this.colId(); } break; case 27: @@ -8914,7 +8915,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 1814; - this.seqoptelem(); + this.seqOptElem(); } } this.state = 1817; @@ -8975,7 +8976,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 1832; - this.numericonly(); + this.numericOnly(); } break; } @@ -9000,7 +9001,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_START: { this.state = 1836; - this.seqoptelem(); + this.seqOptElem(); } break; case PostgreSqlParser.KW_GENERATED: @@ -9246,9 +9247,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public reloptions(): ReloptionsContext { - let localContext = new ReloptionsContext(this.context, this.state); - this.enterRule(localContext, 100, PostgreSqlParser.RULE_reloptions); + public relOptions(): RelOptionsContext { + let localContext = new RelOptionsContext(this.context, this.state); + this.enterRule(localContext, 100, PostgreSqlParser.RULE_relOptions); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -9256,7 +9257,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1888; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 1889; - this.reloption_elem(); + this.relOptionElem(); this.state = 1894; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -9266,7 +9267,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1890; this.match(PostgreSqlParser.COMMA); this.state = 1891; - this.reloption_elem(); + this.relOptionElem(); } } this.state = 1896; @@ -9291,16 +9292,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_reloptions(): Opt_reloptionsContext { - let localContext = new Opt_reloptionsContext(this.context, this.state); - this.enterRule(localContext, 102, PostgreSqlParser.RULE_opt_reloptions); + public optRelOptions(): OptRelOptionsContext { + let localContext = new OptRelOptionsContext(this.context, this.state); + this.enterRule(localContext, 102, PostgreSqlParser.RULE_optRelOptions); try { this.enterOuterAlt(localContext, 1); { this.state = 1899; this.match(PostgreSqlParser.KW_WITH); this.state = 1900; - this.reloptions(); + this.relOptions(); } } catch (re) { @@ -9317,14 +9318,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public reloption_elem(): Reloption_elemContext { - let localContext = new Reloption_elemContext(this.context, this.state); - this.enterRule(localContext, 104, PostgreSqlParser.RULE_reloption_elem); + public relOptionElem(): RelOptionElemContext { + let localContext = new RelOptionElemContext(this.context, this.state); + this.enterRule(localContext, 104, PostgreSqlParser.RULE_relOptionElem); try { this.enterOuterAlt(localContext, 1); { this.state = 1902; - this.collabel(); + this.colLabel(); this.state = 1907; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { @@ -9366,9 +9367,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public partitionboundspec(): PartitionboundspecContext { - let localContext = new PartitionboundspecContext(this.context, this.state); - this.enterRule(localContext, 106, PostgreSqlParser.RULE_partitionboundspec); + public partitionBoundSpec(): PartitionBoundSpecContext { + let localContext = new PartitionBoundSpecContext(this.context, this.state); + this.enterRule(localContext, 106, PostgreSqlParser.RULE_partitionBoundSpec); try { this.state = 1931; this.errorHandler.sync(this); @@ -9451,9 +9452,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public altercompositetypestmt(): AltercompositetypestmtContext { - let localContext = new AltercompositetypestmtContext(this.context, this.state); - this.enterRule(localContext, 108, PostgreSqlParser.RULE_altercompositetypestmt); + public alterCompositeTypeStmt(): AlterCompositeTypeStmtContext { + let localContext = new AlterCompositeTypeStmtContext(this.context, this.state); + this.enterRule(localContext, 108, PostgreSqlParser.RULE_alterCompositeTypeStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -9514,7 +9515,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1945; this.match(PostgreSqlParser.KW_ATTRIBUTE); this.state = 1946; - this.tablefuncelement(); + this.tableFuncElement(); this.state = 1948; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 123, this.context) ) { @@ -9545,7 +9546,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 1955; - this.colid(); + this.colId(); this.state = 1957; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 125, this.context) ) { @@ -9566,7 +9567,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 1960; this.match(PostgreSqlParser.KW_ATTRIBUTE); this.state = 1961; - this.colid(); + this.colId(); this.state = 1964; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -9623,9 +9624,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public closeportalstmt(): CloseportalstmtContext { - let localContext = new CloseportalstmtContext(this.context, this.state); - this.enterRule(localContext, 112, PostgreSqlParser.RULE_closeportalstmt); + public closePortalStmt(): ClosePortalStmtContext { + let localContext = new ClosePortalStmtContext(this.context, this.state); + this.enterRule(localContext, 112, PostgreSqlParser.RULE_closePortalStmt); try { this.enterOuterAlt(localContext, 1); { @@ -10030,7 +10031,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 1977; - this.colid(); + this.colId(); } break; case PostgreSqlParser.KW_ALL: @@ -10058,9 +10059,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public copystmt(): CopystmtContext { - let localContext = new CopystmtContext(this.context, this.state); - this.enterRule(localContext, 114, PostgreSqlParser.RULE_copystmt); + public copyStmt(): CopyStmtContext { + let localContext = new CopyStmtContext(this.context, this.state); + this.enterRule(localContext, 114, PostgreSqlParser.RULE_copyStmt); let _la: number; try { this.state = 2030; @@ -10121,7 +10122,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 1993; - this.sconst(); + this.stringConst(); } break; case PostgreSqlParser.KW_STDIN: @@ -10157,7 +10158,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2001; this.match(PostgreSqlParser.KW_DELIMITERS); this.state = 2002; - this.sconst(); + this.stringConst(); } break; } @@ -10193,7 +10194,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2013; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 2014; - this.preparablestmt(); + this.preParableStmt(); this.state = 2015; this.match(PostgreSqlParser.CLOSE_PAREN); this.state = 2016; @@ -10217,7 +10218,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 2020; - this.sconst(); + this.stringConst(); } break; case PostgreSqlParser.KW_STDIN: @@ -10316,7 +10317,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 2038; - this.sconst(); + this.stringConst(); } break; case 4: @@ -10380,7 +10381,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2053; this.match(PostgreSqlParser.KW_ENCODING); this.state = 2054; - this.sconst(); + this.stringConst(); } break; case 9: @@ -10571,7 +10572,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 2099; - this.collabel(); + this.colLabel(); this.state = 2114; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { @@ -11004,7 +11005,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.Numeric: { this.state = 2101; - this.numericonly(); + this.numericOnly(); } break; case PostgreSqlParser.STAR: @@ -11061,9 +11062,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createstmt(): CreatestmtContext { - let localContext = new CreatestmtContext(this.context, this.state); - this.enterRule(localContext, 122, PostgreSqlParser.RULE_createstmt); + public createStmt(): CreateStmtContext { + let localContext = new CreateStmtContext(this.context, this.state); + this.enterRule(localContext, 122, PostgreSqlParser.RULE_createStmt); let _la: number; try { localContext = new ColumnCreateTableContext(localContext); @@ -11077,7 +11078,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 213 || _la === 254 || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 32773) !== 0)) { { this.state = 2117; - this.opttemp(); + this.optTemp(); } } @@ -11108,7 +11109,7 @@ export class PostgreSqlParser extends SQLParserBase { if (((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 2099209) !== 0) || ((((_la - 85)) & ~0x1F) === 0 && ((1 << (_la - 85)) & 2147491841) !== 0) || ((((_la - 120)) & ~0x1F) === 0 && ((1 << (_la - 120)) & 4294966809) !== 0) || ((((_la - 152)) & ~0x1F) === 0 && ((1 << (_la - 152)) & 4294967295) !== 0) || ((((_la - 184)) & ~0x1F) === 0 && ((1 << (_la - 184)) & 4294967295) !== 0) || ((((_la - 216)) & ~0x1F) === 0 && ((1 << (_la - 216)) & 4290781183) !== 0) || ((((_la - 248)) & ~0x1F) === 0 && ((1 << (_la - 248)) & 4294967295) !== 0) || ((((_la - 280)) & ~0x1F) === 0 && ((1 << (_la - 280)) & 4294967295) !== 0) || ((((_la - 312)) & ~0x1F) === 0 && ((1 << (_la - 312)) & 4294967295) !== 0) || ((((_la - 344)) & ~0x1F) === 0 && ((1 << (_la - 344)) & 4294967295) !== 0) || ((((_la - 376)) & ~0x1F) === 0 && ((1 << (_la - 376)) & 4294967295) !== 0) || ((((_la - 408)) & ~0x1F) === 0 && ((1 << (_la - 408)) & 4294967295) !== 0) || ((((_la - 440)) & ~0x1F) === 0 && ((1 << (_la - 440)) & 4294950911) !== 0) || ((((_la - 473)) & ~0x1F) === 0 && ((1 << (_la - 473)) & 3221225471) !== 0) || ((((_la - 506)) & ~0x1F) === 0 && ((1 << (_la - 506)) & 286719) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { this.state = 2126; - this.tableelementlist(); + this.tableElementList(); } } @@ -11120,7 +11121,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 2130; - this.optinherit(); + this.optInherit(); } break; } @@ -11130,7 +11131,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 2133; - this.partitionspec(); + this.partitionSpec(); } break; } @@ -11150,7 +11151,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 2139; - this.optwith(); + this.optWith(); } break; } @@ -11160,7 +11161,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 80) { { this.state = 2142; - this.oncommitoption(); + this.onCommitOption(); } } @@ -11170,7 +11171,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 2145; - this.opttablespace(); + this.optTableSpace(); } break; } @@ -11188,7 +11189,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 2150; - this.opttypedtableelementlist(); + this.optTypedTableElEmentList(); } break; } @@ -11198,7 +11199,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 2153; - this.partitionspec(); + this.partitionSpec(); } break; } @@ -11218,7 +11219,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 2159; - this.optwith(); + this.optWith(); } break; } @@ -11228,7 +11229,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 80) { { this.state = 2162; - this.oncommitoption(); + this.onCommitOption(); } } @@ -11238,7 +11239,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 2165; - this.opttablespace(); + this.optTableSpace(); } break; } @@ -11258,19 +11259,19 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 2) { { this.state = 2171; - this.opttypedtableelementlist(); + this.optTypedTableElEmentList(); } } this.state = 2174; - this.partitionboundspec(); + this.partitionBoundSpec(); this.state = 2176; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 174, this.context) ) { case 1: { this.state = 2175; - this.partitionspec(); + this.partitionSpec(); } break; } @@ -11290,7 +11291,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 2181; - this.optwith(); + this.optWith(); } break; } @@ -11300,7 +11301,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 80) { { this.state = 2184; - this.oncommitoption(); + this.onCommitOption(); } } @@ -11310,7 +11311,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 2187; - this.opttablespace(); + this.optTableSpace(); } break; } @@ -11335,9 +11336,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opttemp(): OpttempContext { - let localContext = new OpttempContext(this.context, this.state); - this.enterRule(localContext, 124, PostgreSqlParser.RULE_opttemp); + public optTemp(): OptTempContext { + let localContext = new OptTempContext(this.context, this.state); + this.enterRule(localContext, 124, PostgreSqlParser.RULE_optTemp); let _la: number; try { this.state = 2197; @@ -11406,9 +11407,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opttypedtableelementlist(): OpttypedtableelementlistContext { - let localContext = new OpttypedtableelementlistContext(this.context, this.state); - this.enterRule(localContext, 126, PostgreSqlParser.RULE_opttypedtableelementlist); + public optTypedTableElEmentList(): OptTypedTableElEmentListContext { + let localContext = new OptTypedTableElEmentListContext(this.context, this.state); + this.enterRule(localContext, 126, PostgreSqlParser.RULE_optTypedTableElEmentList); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -11416,7 +11417,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2199; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 2200; - this.typedtableelement(); + this.typedTableElement(); this.state = 2205; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -11426,7 +11427,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2201; this.match(PostgreSqlParser.COMMA); this.state = 2202; - this.typedtableelement(); + this.typedTableElement(); } } this.state = 2207; @@ -11451,15 +11452,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public tableelementlist(): TableelementlistContext { - let localContext = new TableelementlistContext(this.context, this.state); - this.enterRule(localContext, 128, PostgreSqlParser.RULE_tableelementlist); + public tableElementList(): TableElementListContext { + let localContext = new TableElementListContext(this.context, this.state); + this.enterRule(localContext, 128, PostgreSqlParser.RULE_tableElementList); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 2210; - this.tableelement(); + this.tableElement(); this.state = 2215; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -11469,7 +11470,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2211; this.match(PostgreSqlParser.COMMA); this.state = 2212; - this.tableelement(); + this.tableElement(); } } this.state = 2217; @@ -11492,9 +11493,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public tableelement(): TableelementContext { - let localContext = new TableelementContext(this.context, this.state); - this.enterRule(localContext, 130, PostgreSqlParser.RULE_tableelement); + public tableElement(): TableElementContext { + let localContext = new TableElementContext(this.context, this.state); + this.enterRule(localContext, 130, PostgreSqlParser.RULE_tableElement); let _la: number; try { this.state = 2233; @@ -11511,12 +11512,12 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2218; this.match(PostgreSqlParser.KW_CONSTRAINT); this.state = 2219; - this.colid(); + this.colId(); } } this.state = 2222; - this.constraintelem(); + this.constraintElem(); } break; case 2: @@ -11549,7 +11550,7 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } this.state = 2227; - this.tablelikeoption(); + this.tableLikeOption(); } } this.state = 2232; @@ -11574,9 +11575,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public typedtableelement(): TypedtableelementContext { - let localContext = new TypedtableelementContext(this.context, this.state); - this.enterRule(localContext, 132, PostgreSqlParser.RULE_typedtableelement); + public typedTableElement(): TypedTableElementContext { + let localContext = new TypedTableElementContext(this.context, this.state); + this.enterRule(localContext, 132, PostgreSqlParser.RULE_typedTableElement); let _la: number; try { this.state = 2251; @@ -11606,7 +11607,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 2240; - this.colconstraint(); + this.colConstraint(); } } this.state = 2245; @@ -11626,12 +11627,12 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2246; this.match(PostgreSqlParser.KW_CONSTRAINT); this.state = 2247; - this.colid(); + this.colId(); } } this.state = 2250; - this.constraintelem(); + this.constraintElem(); } break; } @@ -11715,7 +11716,7 @@ export class PostgreSqlParser extends SQLParserBase { case 6: { this.state = 2264; - this.colid(); + this.colId(); } break; } @@ -11730,7 +11731,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2269; this.match(PostgreSqlParser.KW_COMPRESSION); this.state = 2270; - this.colid(); + this.colId(); } } @@ -11764,7 +11765,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 2280; - this.colconstraint(); + this.colConstraint(); } } } @@ -11788,9 +11789,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public colconstraint(): ColconstraintContext { - let localContext = new ColconstraintContext(this.context, this.state); - this.enterRule(localContext, 136, PostgreSqlParser.RULE_colconstraint); + public colConstraint(): ColConstraintContext { + let localContext = new ColConstraintContext(this.context, this.state); + this.enterRule(localContext, 136, PostgreSqlParser.RULE_colConstraint); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -11803,12 +11804,12 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2286; this.match(PostgreSqlParser.KW_CONSTRAINT); this.state = 2287; - this.colid(); + this.colId(); } } this.state = 2290; - this.colconstraintelem(); + this.colConstraintElem(); this.state = 2295; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 199, this.context) ) { @@ -11864,9 +11865,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public colconstraintelem(): ColconstraintelemContext { - let localContext = new ColconstraintelemContext(this.context, this.state); - this.enterRule(localContext, 138, PostgreSqlParser.RULE_colconstraintelem); + public colConstraintElem(): ColConstraintElemContext { + let localContext = new ColConstraintElemContext(this.context, this.state); + this.enterRule(localContext, 138, PostgreSqlParser.RULE_colConstraintElem); let _la: number; try { this.state = 2381; @@ -11910,7 +11911,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 100) { { this.state = 2309; - this.optconstablespace(); + this.optConstableSpace(); } } @@ -11972,7 +11973,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 100) { { this.state = 2327; - this.optconstablespace(); + this.optConstableSpace(); } } @@ -12002,7 +12003,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 100) { { this.state = 2335; - this.optconstablespace(); + this.optConstableSpace(); } } @@ -12072,7 +12073,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 2353; - this.seqoptelem(); + this.seqOptElem(); } } this.state = 2356; @@ -12206,9 +12207,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public tablelikeoption(): TablelikeoptionContext { - let localContext = new TablelikeoptionContext(this.context, this.state); - this.enterRule(localContext, 142, PostgreSqlParser.RULE_tablelikeoption); + public tableLikeOption(): TableLikeOptionContext { + let localContext = new TableLikeOptionContext(this.context, this.state); + this.enterRule(localContext, 142, PostgreSqlParser.RULE_tableLikeOption); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -12238,9 +12239,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public constraintelem(): ConstraintelemContext { - let localContext = new ConstraintelemContext(this.context, this.state); - this.enterRule(localContext, 144, PostgreSqlParser.RULE_constraintelem); + public constraintElem(): ConstraintElemContext { + let localContext = new ConstraintElemContext(this.context, this.state); + this.enterRule(localContext, 144, PostgreSqlParser.RULE_constraintElem); let _la: number; try { let alternative: number; @@ -12266,7 +12267,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 2394; - this.constraintattributeElem(); + this.constraintAttributeElem(); } } } @@ -12335,7 +12336,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 100) { { this.state = 2412; - this.optconstablespace(); + this.optConstableSpace(); } } @@ -12347,7 +12348,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 2415; - this.constraintattributeElem(); + this.constraintAttributeElem(); } } } @@ -12360,7 +12361,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_USING: { this.state = 2421; - this.existingindex(); + this.existingIndex(); this.state = 2425; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 226, this.context); @@ -12369,7 +12370,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 2422; - this.constraintattributeElem(); + this.constraintAttributeElem(); } } } @@ -12402,7 +12403,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2434; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 2435; - this.exclusionconstraintelem(); + this.exclusionConstraintElem(); this.state = 2440; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -12412,7 +12413,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2436; this.match(PostgreSqlParser.COMMA); this.state = 2437; - this.exclusionconstraintelem(); + this.exclusionConstraintElem(); } } this.state = 2442; @@ -12447,7 +12448,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 100) { { this.state = 2450; - this.optconstablespace(); + this.optConstableSpace(); } } @@ -12475,7 +12476,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 2460; - this.constraintattributeElem(); + this.constraintAttributeElem(); } } } @@ -12536,7 +12537,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 2480; - this.constraintattributeElem(); + this.constraintAttributeElem(); } } } @@ -12740,9 +12741,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public exclusionconstraintelem(): ExclusionconstraintelemContext { - let localContext = new ExclusionconstraintelemContext(this.context, this.state); - this.enterRule(localContext, 156, PostgreSqlParser.RULE_exclusionconstraintelem); + public exclusionConstraintElem(): ExclusionConstraintElemContext { + let localContext = new ExclusionConstraintElemContext(this.context, this.state); + this.enterRule(localContext, 156, PostgreSqlParser.RULE_exclusionConstraintElem); try { this.enterOuterAlt(localContext, 1); { @@ -12977,9 +12978,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public optinherit(): OptinheritContext { - let localContext = new OptinheritContext(this.context, this.state); - this.enterRule(localContext, 166, PostgreSqlParser.RULE_optinherit); + public optInherit(): OptInheritContext { + let localContext = new OptInheritContext(this.context, this.state); + this.enterRule(localContext, 166, PostgreSqlParser.RULE_optInherit); try { this.enterOuterAlt(localContext, 1); { @@ -13007,9 +13008,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public partitionspec(): PartitionspecContext { - let localContext = new PartitionspecContext(this.context, this.state); - this.enterRule(localContext, 168, PostgreSqlParser.RULE_partitionspec); + public partitionSpec(): PartitionSpecContext { + let localContext = new PartitionSpecContext(this.context, this.state); + this.enterRule(localContext, 168, PostgreSqlParser.RULE_partitionSpec); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -13019,7 +13020,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2562; this.match(PostgreSqlParser.KW_BY); this.state = 2563; - this.colid(); + this.colId(); this.state = 2564; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 2565; @@ -13138,7 +13139,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2589; this.match(PostgreSqlParser.KW_USING); this.state = 2590; - this.colid(); + this.colId(); } } catch (re) { @@ -13155,9 +13156,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public optwith(): OptwithContext { - let localContext = new OptwithContext(this.context, this.state); - this.enterRule(localContext, 174, PostgreSqlParser.RULE_optwith); + public optWith(): OptWithContext { + let localContext = new OptWithContext(this.context, this.state); + this.enterRule(localContext, 174, PostgreSqlParser.RULE_optWith); let _la: number; try { this.state = 2596; @@ -13169,7 +13170,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2592; this.match(PostgreSqlParser.KW_WITH); this.state = 2593; - this.reloptions(); + this.relOptions(); } break; case 2: @@ -13204,9 +13205,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public oncommitoption(): OncommitoptionContext { - let localContext = new OncommitoptionContext(this.context, this.state); - this.enterRule(localContext, 176, PostgreSqlParser.RULE_oncommitoption); + public onCommitOption(): OnCommitOptionContext { + let localContext = new OnCommitOptionContext(this.context, this.state); + this.enterRule(localContext, 176, PostgreSqlParser.RULE_onCommitOption); try { this.enterOuterAlt(localContext, 1); { @@ -13258,9 +13259,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opttablespace(): OpttablespaceContext { - let localContext = new OpttablespaceContext(this.context, this.state); - this.enterRule(localContext, 178, PostgreSqlParser.RULE_opttablespace); + public optTableSpace(): OptTableSpaceContext { + let localContext = new OptTableSpaceContext(this.context, this.state); + this.enterRule(localContext, 178, PostgreSqlParser.RULE_optTableSpace); try { this.enterOuterAlt(localContext, 1); { @@ -13284,9 +13285,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public optconstablespace(): OptconstablespaceContext { - let localContext = new OptconstablespaceContext(this.context, this.state); - this.enterRule(localContext, 180, PostgreSqlParser.RULE_optconstablespace); + public optConstableSpace(): OptConstableSpaceContext { + let localContext = new OptConstableSpaceContext(this.context, this.state); + this.enterRule(localContext, 180, PostgreSqlParser.RULE_optConstableSpace); try { this.enterOuterAlt(localContext, 1); { @@ -13295,7 +13296,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2611; this.match(PostgreSqlParser.KW_INDEX); this.state = 2612; - this.opttablespace(); + this.optTableSpace(); } } catch (re) { @@ -13312,9 +13313,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public existingindex(): ExistingindexContext { - let localContext = new ExistingindexContext(this.context, this.state); - this.enterRule(localContext, 182, PostgreSqlParser.RULE_existingindex); + public existingIndex(): ExistingIndexContext { + let localContext = new ExistingIndexContext(this.context, this.state); + this.enterRule(localContext, 182, PostgreSqlParser.RULE_existingIndex); try { this.enterOuterAlt(localContext, 1); { @@ -13323,7 +13324,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2615; this.match(PostgreSqlParser.KW_INDEX); this.state = 2616; - this.colid(); + this.colId(); } } catch (re) { @@ -13340,9 +13341,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createstatsstmt(): CreatestatsstmtContext { - let localContext = new CreatestatsstmtContext(this.context, this.state); - this.enterRule(localContext, 184, PostgreSqlParser.RULE_createstatsstmt); + public createStatsStmt(): CreateStatsStmtContext { + let localContext = new CreateStatsStmtContext(this.context, this.state); + this.enterRule(localContext, 184, PostgreSqlParser.RULE_createStatsStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -13433,9 +13434,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterstatsstmt(): AlterstatsstmtContext { - let localContext = new AlterstatsstmtContext(this.context, this.state); - this.enterRule(localContext, 186, PostgreSqlParser.RULE_alterstatsstmt); + public alterStatsStmt(): AlterStatsStmtContext { + let localContext = new AlterStatsStmtContext(this.context, this.state); + this.enterRule(localContext, 186, PostgreSqlParser.RULE_alterStatsStmt); try { this.enterOuterAlt(localContext, 1); { @@ -13460,7 +13461,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2650; this.match(PostgreSqlParser.KW_STATISTICS); this.state = 2651; - this.signediconst(); + this.signedConst(); } } catch (re) { @@ -13477,9 +13478,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createasstmt(): CreateasstmtContext { - let localContext = new CreateasstmtContext(this.context, this.state); - this.enterRule(localContext, 188, PostgreSqlParser.RULE_createasstmt); + public createAsStmt(): CreateAsStmtContext { + let localContext = new CreateAsStmtContext(this.context, this.state); + this.enterRule(localContext, 188, PostgreSqlParser.RULE_createAsStmt); let _la: number; try { localContext = new QueryCreateTableContext(localContext); @@ -13493,7 +13494,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 213 || _la === 254 || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 32773) !== 0)) { { this.state = 2654; - this.opttemp(); + this.optTemp(); } } @@ -13514,7 +13515,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2662; this.match(PostgreSqlParser.KW_AS); this.state = 2663; - this.selectstmt(); + this.selectStmt(); this.state = 2665; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 262, this.context) ) { @@ -13576,7 +13577,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 105 || _la === 379) { { this.state = 2674; - this.optwith(); + this.optWith(); } } @@ -13586,7 +13587,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 80) { { this.state = 2677; - this.oncommitoption(); + this.onCommitOption(); } } @@ -13596,7 +13597,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 351) { { this.state = 2680; - this.opttablespace(); + this.optTableSpace(); } } @@ -13660,9 +13661,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public creatematviewstmt(): CreatematviewstmtContext { - let localContext = new CreatematviewstmtContext(this.context, this.state); - this.enterRule(localContext, 194, PostgreSqlParser.RULE_creatematviewstmt); + public createMaterializedViewStmt(): CreateMaterializedViewStmtContext { + let localContext = new CreateMaterializedViewStmtContext(this.context, this.state); + this.enterRule(localContext, 194, PostgreSqlParser.RULE_createMaterializedViewStmt); let _la: number; try { localContext = new CreateMaterializedViewContext(localContext); @@ -13722,7 +13723,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 105) { { this.state = 2705; - this.opt_reloptions(); + this.optRelOptions(); } } @@ -13732,14 +13733,14 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 351) { { this.state = 2708; - this.opttablespace(); + this.optTableSpace(); } } this.state = 2711; this.match(PostgreSqlParser.KW_AS); this.state = 2712; - this.selectstmt(); + this.selectStmt(); this.state = 2714; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 275, this.context) ) { @@ -13766,9 +13767,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public refreshmatviewstmt(): RefreshmatviewstmtContext { - let localContext = new RefreshmatviewstmtContext(this.context, this.state); - this.enterRule(localContext, 196, PostgreSqlParser.RULE_refreshmatviewstmt); + public refreshMaterializedViewStmt(): RefreshMaterializedViewStmtContext { + let localContext = new RefreshMaterializedViewStmtContext(this.context, this.state); + this.enterRule(localContext, 196, PostgreSqlParser.RULE_refreshMaterializedViewStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -13817,9 +13818,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createseqstmt(): CreateseqstmtContext { - let localContext = new CreateseqstmtContext(this.context, this.state); - this.enterRule(localContext, 198, PostgreSqlParser.RULE_createseqstmt); + public createSeqStmt(): CreateSeqStmtContext { + let localContext = new CreateSeqStmtContext(this.context, this.state); + this.enterRule(localContext, 198, PostgreSqlParser.RULE_createSeqStmt); let _la: number; try { let alternative: number; @@ -13833,7 +13834,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 213 || _la === 254 || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 32773) !== 0)) { { this.state = 2727; - this.opttemp(); + this.optTemp(); } } @@ -13865,7 +13866,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 2735; - this.seqoptelem(); + this.seqOptElem(); } } break; @@ -13895,9 +13896,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterseqstmt(): AlterseqstmtContext { - let localContext = new AlterseqstmtContext(this.context, this.state); - this.enterRule(localContext, 200, PostgreSqlParser.RULE_alterseqstmt); + public alterSeqStmt(): AlterSeqStmtContext { + let localContext = new AlterSeqStmtContext(this.context, this.state); + this.enterRule(localContext, 200, PostgreSqlParser.RULE_alterSeqStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -13927,7 +13928,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 2748; - this.seqoptelem(); + this.seqOptElem(); } } break; @@ -13954,9 +13955,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public seqoptelem(): SeqoptelemContext { - let localContext = new SeqoptelemContext(this.context, this.state); - this.enterRule(localContext, 202, PostgreSqlParser.RULE_seqoptelem); + public seqOptElem(): SeqOptElemContext { + let localContext = new SeqOptElemContext(this.context, this.state); + this.enterRule(localContext, 202, PostgreSqlParser.RULE_seqOptElem); let _la: number; try { this.state = 2786; @@ -13968,7 +13969,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2753; this.match(PostgreSqlParser.KW_AS); this.state = 2754; - this.simpletypename(); + this.simpleTypeName(); } break; case PostgreSqlParser.KW_CACHE: @@ -13982,7 +13983,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 12 || _la === 13 || _la === 574 || _la === 576) { { this.state = 2756; - this.numericonly(); + this.numericOnly(); } } @@ -14004,7 +14005,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 2763; - this.numericonly(); + this.numericOnly(); } break; case PostgreSqlParser.KW_MAXVALUE: @@ -14021,7 +14022,7 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } this.state = 2765; - this.numericonly(); + this.numericOnly(); } break; case PostgreSqlParser.KW_NO: @@ -14078,7 +14079,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 2778; - this.numericonly(); + this.numericOnly(); } break; case PostgreSqlParser.KW_RESTART: @@ -14102,7 +14103,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 12 || _la === 13 || _la === 574 || _la === 576) { { this.state = 2783; - this.numericonly(); + this.numericOnly(); } } @@ -14126,9 +14127,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public numericonly(): NumericonlyContext { - let localContext = new NumericonlyContext(this.context, this.state); - this.enterRule(localContext, 204, PostgreSqlParser.RULE_numericonly); + public numericOnly(): NumericOnlyContext { + let localContext = new NumericOnlyContext(this.context, this.state); + this.enterRule(localContext, 204, PostgreSqlParser.RULE_numericOnly); let _la: number; try { this.state = 2793; @@ -14162,7 +14163,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { this.state = 2792; - this.signediconst(); + this.signedConst(); } break; } @@ -14181,9 +14182,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createplangstmt(): CreateplangstmtContext { - let localContext = new CreateplangstmtContext(this.context, this.state); - this.enterRule(localContext, 206, PostgreSqlParser.RULE_createplangstmt); + public createProceduralLangStmt(): CreateProceduralLangStmtContext { + let localContext = new CreateProceduralLangStmtContext(this.context, this.state); + this.enterRule(localContext, 206, PostgreSqlParser.RULE_createProceduralLangStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -14223,7 +14224,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2805; this.match(PostgreSqlParser.KW_LANGUAGE); this.state = 2806; - this.colid(); + this.colId(); this.state = 2819; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 297, this.context) ) { @@ -14284,9 +14285,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createtablespacestmt(): CreatetablespacestmtContext { - let localContext = new CreatetablespacestmtContext(this.context, this.state); - this.enterRule(localContext, 208, PostgreSqlParser.RULE_createtablespacestmt); + public createTableSpaceStmt(): CreateTableSpaceStmtContext { + let localContext = new CreateTableSpaceStmtContext(this.context, this.state); + this.enterRule(localContext, 208, PostgreSqlParser.RULE_createTableSpaceStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -14294,7 +14295,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2821; this.match(PostgreSqlParser.KW_CREATE); this.state = 2822; - this.opttablespace(); + this.optTableSpace(); this.state = 2825; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -14303,21 +14304,21 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2823; this.match(PostgreSqlParser.KW_OWNER); this.state = 2824; - this.rolespec(); + this.roleSpec(); } } this.state = 2827; this.match(PostgreSqlParser.KW_LOCATION); this.state = 2828; - this.sconst(); + this.stringConst(); this.state = 2830; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 299, this.context) ) { case 1: { this.state = 2829; - this.opt_reloptions(); + this.optRelOptions(); } break; } @@ -14337,9 +14338,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createextensionstmt(): CreateextensionstmtContext { - let localContext = new CreateextensionstmtContext(this.context, this.state); - this.enterRule(localContext, 210, PostgreSqlParser.RULE_createextensionstmt); + public createExtensionStmt(): CreateExtensionStmtContext { + let localContext = new CreateExtensionStmtContext(this.context, this.state); + this.enterRule(localContext, 210, PostgreSqlParser.RULE_createExtensionStmt); let _la: number; try { let alternative: number; @@ -14360,7 +14361,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 2837; - this.colid(); + this.colId(); this.state = 2839; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 301, this.context) ) { @@ -14401,7 +14402,7 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } this.state = 2844; - this.nonreservedword_or_sconst(); + this.nonReservedWordOrStringConst(); } break; case PostgreSqlParser.KW_CASCADE: @@ -14435,9 +14436,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterextensionstmt(): AlterextensionstmtContext { - let localContext = new AlterextensionstmtContext(this.context, this.state); - this.enterRule(localContext, 212, PostgreSqlParser.RULE_alterextensionstmt); + public alterExtensionStmt(): AlterExtensionStmtContext { + let localContext = new AlterExtensionStmtContext(this.context, this.state); + this.enterRule(localContext, 212, PostgreSqlParser.RULE_alterExtensionStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -14447,7 +14448,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2852; this.match(PostgreSqlParser.KW_EXTENSION); this.state = 2853; - this.colid(); + this.colId(); this.state = 2854; this.match(PostgreSqlParser.KW_UPDATE); this.state = 2859; @@ -14459,7 +14460,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2855; this.match(PostgreSqlParser.KW_TO); this.state = 2856; - this.nonreservedword_or_sconst(); + this.nonReservedWordOrStringConst(); } } this.state = 2861; @@ -14482,9 +14483,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterextensioncontentsstmt(): AlterextensioncontentsstmtContext { - let localContext = new AlterextensioncontentsstmtContext(this.context, this.state); - this.enterRule(localContext, 214, PostgreSqlParser.RULE_alterextensioncontentsstmt); + public alterExtensionContentsStmt(): AlterExtensionContentsStmtContext { + let localContext = new AlterExtensionContentsStmtContext(this.context, this.state); + this.enterRule(localContext, 214, PostgreSqlParser.RULE_alterExtensionContentsStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -14494,7 +14495,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2863; this.match(PostgreSqlParser.KW_EXTENSION); this.state = 2864; - this.colid(); + this.colId(); this.state = 2865; _la = this.tokenStream.LA(1); if(!(_la === 133 || _la === 191)) { @@ -14518,7 +14519,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2869; this.match(PostgreSqlParser.KW_LANGUAGE); this.state = 2870; - this.colid(); + this.colId(); } break; case 2: @@ -14526,7 +14527,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2872; this.match(PostgreSqlParser.KW_ROUTINE); this.state = 2873; - this.routine_with_argtypes(); + this.routineWithArgTypes(); } break; case 3: @@ -14534,7 +14535,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2874; this.match(PostgreSqlParser.KW_PROCEDURE); this.state = 2875; - this.procedure_with_argtypes(); + this.procedureWithArgTypes(); } break; case 4: @@ -14561,7 +14562,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2881; this.match(PostgreSqlParser.KW_OPERATOR); this.state = 2882; - this.operator_with_argtypes(); + this.operatorWithArgTypes(); } break; case 6: @@ -14569,7 +14570,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2883; this.match(PostgreSqlParser.KW_FUNCTION); this.state = 2884; - this.function_with_argtypes(); + this.functionWithArgTypes(); } break; case 7: @@ -14608,7 +14609,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2894; this.match(PostgreSqlParser.KW_AGGREGATE); this.state = 2895; - this.aggregate_with_argtypes(); + this.aggregateWithArgTypes(); } break; case 10: @@ -14640,9 +14641,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createfdwstmt(): CreatefdwstmtContext { - let localContext = new CreatefdwstmtContext(this.context, this.state); - this.enterRule(localContext, 216, PostgreSqlParser.RULE_createfdwstmt); + public createFdwStmt(): CreateFdwStmtContext { + let localContext = new CreateFdwStmtContext(this.context, this.state); + this.enterRule(localContext, 216, PostgreSqlParser.RULE_createFdwStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -14656,7 +14657,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2903; this.match(PostgreSqlParser.KW_WRAPPER); this.state = 2904; - this.colid(); + this.colId(); this.state = 2910; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 307, this.context) ) { @@ -14778,9 +14779,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterfdwstmt(): AlterfdwstmtContext { - let localContext = new AlterfdwstmtContext(this.context, this.state); - this.enterRule(localContext, 220, PostgreSqlParser.RULE_alterfdwstmt); + public alterFdwStmt(): AlterFdwStmtContext { + let localContext = new AlterFdwStmtContext(this.context, this.state); + this.enterRule(localContext, 220, PostgreSqlParser.RULE_alterFdwStmt); let _la: number; try { let alternative: number; @@ -14795,7 +14796,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2926; this.match(PostgreSqlParser.KW_WRAPPER); this.state = 2927; - this.colid(); + this.colId(); this.state = 2941; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 314, this.context) ) { @@ -15003,9 +15004,9 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 2970; - this.collabel(); + this.colLabel(); this.state = 2971; - this.sconst(); + this.stringConst(); } } catch (re) { @@ -15022,9 +15023,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createforeignserverstmt(): CreateforeignserverstmtContext { - let localContext = new CreateforeignserverstmtContext(this.context, this.state); - this.enterRule(localContext, 230, PostgreSqlParser.RULE_createforeignserverstmt); + public createForeignServerStmt(): CreateForeignServerStmtContext { + let localContext = new CreateForeignServerStmtContext(this.context, this.state); + this.enterRule(localContext, 230, PostgreSqlParser.RULE_createForeignServerStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -15044,7 +15045,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 2978; - this.colid(); + this.colId(); this.state = 2981; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -15053,7 +15054,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2979; this.match(PostgreSqlParser.KW_TYPE); this.state = 2980; - this.sconst(); + this.stringConst(); } } @@ -15074,7 +15075,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2988; this.match(PostgreSqlParser.KW_WRAPPER); this.state = 2989; - this.colid(); + this.colId(); this.state = 2991; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 320, this.context) ) { @@ -15118,7 +15119,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 2994; - this.sconst(); + this.stringConst(); } break; case PostgreSqlParser.KW_NULL: @@ -15146,9 +15147,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterforeignserverstmt(): AlterforeignserverstmtContext { - let localContext = new AlterforeignserverstmtContext(this.context, this.state); - this.enterRule(localContext, 234, PostgreSqlParser.RULE_alterforeignserverstmt); + public alterForeignServerStmt(): AlterForeignServerStmtContext { + let localContext = new AlterForeignServerStmtContext(this.context, this.state); + this.enterRule(localContext, 234, PostgreSqlParser.RULE_alterForeignServerStmt); try { this.enterOuterAlt(localContext, 1); { @@ -15157,7 +15158,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 2999; this.match(PostgreSqlParser.KW_SERVER); this.state = 3000; - this.colid(); + this.colId(); this.state = 3006; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { @@ -15202,9 +15203,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createforeigntablestmt(): CreateforeigntablestmtContext { - let localContext = new CreateforeigntablestmtContext(this.context, this.state); - this.enterRule(localContext, 236, PostgreSqlParser.RULE_createforeigntablestmt); + public createForeignTableStmt(): CreateForeignTableStmtContext { + let localContext = new CreateForeignTableStmtContext(this.context, this.state); + this.enterRule(localContext, 236, PostgreSqlParser.RULE_createForeignTableStmt); let _la: number; try { this.state = 3047; @@ -15240,7 +15241,7 @@ export class PostgreSqlParser extends SQLParserBase { if (((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 2099209) !== 0) || ((((_la - 85)) & ~0x1F) === 0 && ((1 << (_la - 85)) & 2147491841) !== 0) || ((((_la - 120)) & ~0x1F) === 0 && ((1 << (_la - 120)) & 4294966809) !== 0) || ((((_la - 152)) & ~0x1F) === 0 && ((1 << (_la - 152)) & 4294967295) !== 0) || ((((_la - 184)) & ~0x1F) === 0 && ((1 << (_la - 184)) & 4294967295) !== 0) || ((((_la - 216)) & ~0x1F) === 0 && ((1 << (_la - 216)) & 4290781183) !== 0) || ((((_la - 248)) & ~0x1F) === 0 && ((1 << (_la - 248)) & 4294967295) !== 0) || ((((_la - 280)) & ~0x1F) === 0 && ((1 << (_la - 280)) & 4294967295) !== 0) || ((((_la - 312)) & ~0x1F) === 0 && ((1 << (_la - 312)) & 4294967295) !== 0) || ((((_la - 344)) & ~0x1F) === 0 && ((1 << (_la - 344)) & 4294967295) !== 0) || ((((_la - 376)) & ~0x1F) === 0 && ((1 << (_la - 376)) & 4294967295) !== 0) || ((((_la - 408)) & ~0x1F) === 0 && ((1 << (_la - 408)) & 4294967295) !== 0) || ((((_la - 440)) & ~0x1F) === 0 && ((1 << (_la - 440)) & 4294950911) !== 0) || ((((_la - 473)) & ~0x1F) === 0 && ((1 << (_la - 473)) & 3221225471) !== 0) || ((((_la - 506)) & ~0x1F) === 0 && ((1 << (_la - 506)) & 286719) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { this.state = 3016; - this.tableelementlist(); + this.tableElementList(); } } @@ -15252,14 +15253,14 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 238) { { this.state = 3020; - this.optinherit(); + this.optInherit(); } } this.state = 3023; this.match(PostgreSqlParser.KW_SERVER); this.state = 3024; - this.colid(); + this.colId(); this.state = 3026; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 327, this.context) ) { @@ -15306,16 +15307,16 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 2) { { this.state = 3038; - this.opttypedtableelementlist(); + this.optTypedTableElEmentList(); } } this.state = 3041; - this.partitionboundspec(); + this.partitionBoundSpec(); this.state = 3042; this.match(PostgreSqlParser.KW_SERVER); this.state = 3043; - this.colid(); + this.colId(); this.state = 3045; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 330, this.context) ) { @@ -15344,9 +15345,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public importforeignschemastmt(): ImportforeignschemastmtContext { - let localContext = new ImportforeignschemastmtContext(this.context, this.state); - this.enterRule(localContext, 238, PostgreSqlParser.RULE_importforeignschemastmt); + public importForeignSchemaStmt(): ImportForeignSchemaStmtContext { + let localContext = new ImportForeignSchemaStmtContext(this.context, this.state); + this.enterRule(localContext, 238, PostgreSqlParser.RULE_importForeignSchemaStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -15398,11 +15399,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3065; this.match(PostgreSqlParser.KW_SERVER); this.state = 3066; - this.colid(); + this.colId(); this.state = 3067; this.match(PostgreSqlParser.KW_INTO); this.state = 3068; - this.colid(); + this.colId(); this.state = 3070; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 334, this.context) ) { @@ -15429,9 +15430,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createusermappingstmt(): CreateusermappingstmtContext { - let localContext = new CreateusermappingstmtContext(this.context, this.state); - this.enterRule(localContext, 240, PostgreSqlParser.RULE_createusermappingstmt); + public createUserMappingStmt(): CreateUserMappingStmtContext { + let localContext = new CreateUserMappingStmtContext(this.context, this.state); + this.enterRule(localContext, 240, PostgreSqlParser.RULE_createUserMappingStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -15877,7 +15878,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 3079; - this.rolespec(); + this.roleSpec(); } break; case PostgreSqlParser.KW_USER: @@ -15892,7 +15893,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3083; this.match(PostgreSqlParser.KW_SERVER); this.state = 3084; - this.colid(); + this.colId(); this.state = 3086; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 337, this.context) ) { @@ -15919,9 +15920,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterusermappingstmt(): AlterusermappingstmtContext { - let localContext = new AlterusermappingstmtContext(this.context, this.state); - this.enterRule(localContext, 242, PostgreSqlParser.RULE_alterusermappingstmt); + public alterUserMappingStmt(): AlterUserMappingStmtContext { + let localContext = new AlterUserMappingStmtContext(this.context, this.state); + this.enterRule(localContext, 242, PostgreSqlParser.RULE_alterUserMappingStmt); try { this.enterOuterAlt(localContext, 1); { @@ -16356,7 +16357,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 3092; - this.rolespec(); + this.roleSpec(); } break; case PostgreSqlParser.KW_USER: @@ -16371,7 +16372,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3096; this.match(PostgreSqlParser.KW_SERVER); this.state = 3097; - this.colid(); + this.colId(); this.state = 3098; this.alter_generic_options(); } @@ -16390,9 +16391,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createpolicystmt(): CreatepolicystmtContext { - let localContext = new CreatepolicystmtContext(this.context, this.state); - this.enterRule(localContext, 244, PostgreSqlParser.RULE_createpolicystmt); + public createPolicyStmt(): CreatePolicyStmtContext { + let localContext = new CreatePolicyStmtContext(this.context, this.state); + this.enterRule(localContext, 244, PostgreSqlParser.RULE_createPolicyStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -16402,7 +16403,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3101; this.match(PostgreSqlParser.KW_POLICY); this.state = 3102; - this.colid(); + this.colId(); this.state = 3103; this.match(PostgreSqlParser.KW_ON); this.state = 3104; @@ -16820,7 +16821,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 100) { { this.state = 3121; - this.rowsecurityoptionalexpr(); + this.rowSecurityOptionalExpr(); } } @@ -16830,7 +16831,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 3124; - this.rowsecurityoptionalwithcheck(); + this.rowSecurityOptionalWithCheck(); } break; } @@ -16850,9 +16851,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterpolicystmt(): AlterpolicystmtContext { - let localContext = new AlterpolicystmtContext(this.context, this.state); - this.enterRule(localContext, 246, PostgreSqlParser.RULE_alterpolicystmt); + public alterPolicyStmt(): AlterPolicyStmtContext { + let localContext = new AlterPolicyStmtContext(this.context, this.state); + this.enterRule(localContext, 246, PostgreSqlParser.RULE_alterPolicyStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -16862,7 +16863,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3128; this.match(PostgreSqlParser.KW_POLICY); this.state = 3129; - this.colid(); + this.colId(); this.state = 3130; this.match(PostgreSqlParser.KW_ON); this.state = 3131; @@ -16885,7 +16886,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 100) { { this.state = 3136; - this.rowsecurityoptionalexpr(); + this.rowSecurityOptionalExpr(); } } @@ -16895,7 +16896,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 3139; - this.rowsecurityoptionalwithcheck(); + this.rowSecurityOptionalWithCheck(); } break; } @@ -16915,9 +16916,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterprocedurestmt(): AlterprocedurestmtContext { - let localContext = new AlterprocedurestmtContext(this.context, this.state); - this.enterRule(localContext, 248, PostgreSqlParser.RULE_alterprocedurestmt); + public alterProcedureStmt(): AlterProcedureStmtContext { + let localContext = new AlterProcedureStmtContext(this.context, this.state); + this.enterRule(localContext, 248, PostgreSqlParser.RULE_alterProcedureStmt); let _la: number; try { let alternative: number; @@ -16991,7 +16992,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3162; this.match(PostgreSqlParser.KW_TO); this.state = 3163; - this.rolespec(); + this.roleSpec(); } break; case 4: @@ -17023,7 +17024,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3172; this.match(PostgreSqlParser.KW_EXTENSION); this.state = 3173; - this.colid(); + this.colId(); } break; } @@ -17102,7 +17103,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3188; this.match(PostgreSqlParser.KW_SET); this.state = 3189; - this.colid(); + this.colId(); this.state = 3190; _la = this.tokenStream.LA(1); if(!(_la === 9 || _la === 94)) { @@ -17118,7 +17119,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 3191; - this.colid(); + this.colId(); } break; case 2: @@ -17136,7 +17137,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3195; this.match(PostgreSqlParser.KW_SET); this.state = 3196; - this.colid(); + this.colId(); this.state = 3197; this.match(PostgreSqlParser.KW_FROM); this.state = 3198; @@ -17547,7 +17548,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 3201; - this.colid(); + this.colId(); } break; case PostgreSqlParser.KW_ALL: @@ -17577,9 +17578,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public rowsecurityoptionalexpr(): RowsecurityoptionalexprContext { - let localContext = new RowsecurityoptionalexprContext(this.context, this.state); - this.enterRule(localContext, 252, PostgreSqlParser.RULE_rowsecurityoptionalexpr); + public rowSecurityOptionalExpr(): RowSecurityOptionalExprContext { + let localContext = new RowSecurityOptionalExprContext(this.context, this.state); + this.enterRule(localContext, 252, PostgreSqlParser.RULE_rowSecurityOptionalExpr); try { this.enterOuterAlt(localContext, 1); { @@ -17607,9 +17608,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public rowsecurityoptionalwithcheck(): RowsecurityoptionalwithcheckContext { - let localContext = new RowsecurityoptionalwithcheckContext(this.context, this.state); - this.enterRule(localContext, 254, PostgreSqlParser.RULE_rowsecurityoptionalwithcheck); + public rowSecurityOptionalWithCheck(): RowSecurityOptionalWithCheckContext { + let localContext = new RowSecurityOptionalWithCheckContext(this.context, this.state); + this.enterRule(localContext, 254, PostgreSqlParser.RULE_rowSecurityOptionalWithCheck); try { this.enterOuterAlt(localContext, 1); { @@ -17639,9 +17640,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createamstmt(): CreateamstmtContext { - let localContext = new CreateamstmtContext(this.context, this.state); - this.enterRule(localContext, 256, PostgreSqlParser.RULE_createamstmt); + public createAccessMethodStmt(): CreateAccessMethodStmtContext { + let localContext = new CreateAccessMethodStmtContext(this.context, this.state); + this.enterRule(localContext, 256, PostgreSqlParser.RULE_createAccessMethodStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -17653,7 +17654,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3220; this.match(PostgreSqlParser.KW_METHOD); this.state = 3221; - this.colid(); + this.colId(); this.state = 3222; this.match(PostgreSqlParser.KW_TYPE); this.state = 3223; @@ -17685,9 +17686,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createtrigstmt(): CreatetrigstmtContext { - let localContext = new CreatetrigstmtContext(this.context, this.state); - this.enterRule(localContext, 258, PostgreSqlParser.RULE_createtrigstmt); + public createTrigStmt(): CreateTrigStmtContext { + let localContext = new CreateTrigStmtContext(this.context, this.state); + this.enterRule(localContext, 258, PostgreSqlParser.RULE_createTrigStmt); let _la: number; try { this.state = 3305; @@ -17711,11 +17712,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3231; this.match(PostgreSqlParser.KW_TRIGGER); this.state = 3232; - this.colid(); + this.colId(); this.state = 3233; - this.triggeractiontime(); + this.triggerActionTime(); this.state = 3234; - this.triggerevents(); + this.triggerEvents(); this.state = 3235; this.match(PostgreSqlParser.KW_ON); this.state = 3236; @@ -17762,7 +17763,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 3243; - this.colid(); + this.colId(); } } this.state = 3246; @@ -17807,7 +17808,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 102) { { this.state = 3257; - this.triggerwhen(); + this.triggerWhen(); } } @@ -17818,7 +17819,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3262; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 3263; - this.triggerfuncargs(); + this.triggerFuncArgs(); this.state = 3264; this.match(PostgreSqlParser.CLOSE_PAREN); } @@ -17851,11 +17852,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3273; this.match(PostgreSqlParser.KW_TRIGGER); this.state = 3274; - this.colid(); + this.colId(); this.state = 3275; - this.triggeractiontime(); + this.triggerActionTime(); this.state = 3276; - this.triggerevents(); + this.triggerEvents(); this.state = 3277; this.match(PostgreSqlParser.KW_ON); this.state = 3278; @@ -17879,7 +17880,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 3283; - this.constraintattributeElem(); + this.constraintAttributeElem(); } } this.state = 3288; @@ -17921,7 +17922,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 102) { { this.state = 3296; - this.triggerwhen(); + this.triggerWhen(); } } @@ -17932,7 +17933,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3301; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 3302; - this.triggerfuncargs(); + this.triggerFuncArgs(); this.state = 3303; this.match(PostgreSqlParser.CLOSE_PAREN); } @@ -17953,9 +17954,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public triggeractiontime(): TriggeractiontimeContext { - let localContext = new TriggeractiontimeContext(this.context, this.state); - this.enterRule(localContext, 260, PostgreSqlParser.RULE_triggeractiontime); + public triggerActionTime(): TriggerActionTimeContext { + let localContext = new TriggerActionTimeContext(this.context, this.state); + this.enterRule(localContext, 260, PostgreSqlParser.RULE_triggerActionTime); try { this.state = 3311; this.errorHandler.sync(this); @@ -18001,15 +18002,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public triggerevents(): TriggereventsContext { - let localContext = new TriggereventsContext(this.context, this.state); - this.enterRule(localContext, 262, PostgreSqlParser.RULE_triggerevents); + public triggerEvents(): TriggerEventsContext { + let localContext = new TriggerEventsContext(this.context, this.state); + this.enterRule(localContext, 262, PostgreSqlParser.RULE_triggerEvents); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 3313; - this.triggeroneevent(); + this.triggerOneEvent(); this.state = 3318; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -18019,7 +18020,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3314; this.match(PostgreSqlParser.KW_OR); this.state = 3315; - this.triggeroneevent(); + this.triggerOneEvent(); } } this.state = 3320; @@ -18042,9 +18043,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public triggeroneevent(): TriggeroneeventContext { - let localContext = new TriggeroneeventContext(this.context, this.state); - this.enterRule(localContext, 264, PostgreSqlParser.RULE_triggeroneevent); + public triggerOneEvent(): TriggerOneEventContext { + let localContext = new TriggerOneEventContext(this.context, this.state); + this.enterRule(localContext, 264, PostgreSqlParser.RULE_triggerOneEvent); let _la: number; try { this.state = 3329; @@ -18108,9 +18109,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public triggerwhen(): TriggerwhenContext { - let localContext = new TriggerwhenContext(this.context, this.state); - this.enterRule(localContext, 266, PostgreSqlParser.RULE_triggerwhen); + public triggerWhen(): TriggerWhenContext { + let localContext = new TriggerWhenContext(this.context, this.state); + this.enterRule(localContext, 266, PostgreSqlParser.RULE_triggerWhen); try { this.enterOuterAlt(localContext, 1); { @@ -18181,9 +18182,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public triggerfuncargs(): TriggerfuncargsContext { - let localContext = new TriggerfuncargsContext(this.context, this.state); - this.enterRule(localContext, 270, PostgreSqlParser.RULE_triggerfuncargs); + public triggerFuncArgs(): TriggerFuncArgsContext { + let localContext = new TriggerFuncArgsContext(this.context, this.state); + this.enterRule(localContext, 270, PostgreSqlParser.RULE_triggerFuncArgs); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -18685,7 +18686,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 3342; - this.triggerfuncarg(); + this.triggerFuncArg(); } break; case PostgreSqlParser.CLOSE_PAREN: @@ -18706,7 +18707,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3346; this.match(PostgreSqlParser.COMMA); this.state = 3347; - this.triggerfuncarg(); + this.triggerFuncArg(); } } this.state = 3352; @@ -18729,9 +18730,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public triggerfuncarg(): TriggerfuncargContext { - let localContext = new TriggerfuncargContext(this.context, this.state); - this.enterRule(localContext, 272, PostgreSqlParser.RULE_triggerfuncarg); + public triggerFuncArg(): TriggerFuncArgContext { + let localContext = new TriggerFuncArgContext(this.context, this.state); + this.enterRule(localContext, 272, PostgreSqlParser.RULE_triggerFuncArg); try { this.state = 3357; this.errorHandler.sync(this); @@ -18754,14 +18755,14 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 3); { this.state = 3355; - this.sconst(); + this.stringConst(); } break; case 4: this.enterOuterAlt(localContext, 4); { this.state = 3356; - this.collabel(); + this.colLabel(); } break; } @@ -18780,9 +18781,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public constraintattributeElem(): ConstraintattributeElemContext { - let localContext = new ConstraintattributeElemContext(this.context, this.state); - this.enterRule(localContext, 274, PostgreSqlParser.RULE_constraintattributeElem); + public constraintAttributeElem(): ConstraintAttributeElemContext { + let localContext = new ConstraintAttributeElemContext(this.context, this.state); + this.enterRule(localContext, 274, PostgreSqlParser.RULE_constraintAttributeElem); let _la: number; try { this.state = 3369; @@ -18855,9 +18856,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createeventtrigstmt(): CreateeventtrigstmtContext { - let localContext = new CreateeventtrigstmtContext(this.context, this.state); - this.enterRule(localContext, 276, PostgreSqlParser.RULE_createeventtrigstmt); + public createEventTrigStmt(): CreateEventTrigStmtContext { + let localContext = new CreateEventTrigStmtContext(this.context, this.state); + this.enterRule(localContext, 276, PostgreSqlParser.RULE_createEventTrigStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -18869,11 +18870,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3373; this.match(PostgreSqlParser.KW_TRIGGER); this.state = 3374; - this.colid(); + this.colId(); this.state = 3375; this.match(PostgreSqlParser.KW_ON); this.state = 3376; - this.collabel(); + this.colLabel(); this.state = 3386; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -18934,13 +18935,13 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 3393; - this.colid(); + this.colId(); this.state = 3394; this.match(PostgreSqlParser.KW_IN); this.state = 3395; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 3396; - this.sconst(); + this.stringConst(); this.state = 3400; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -18973,9 +18974,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public altereventtrigstmt(): AltereventtrigstmtContext { - let localContext = new AltereventtrigstmtContext(this.context, this.state); - this.enterRule(localContext, 280, PostgreSqlParser.RULE_altereventtrigstmt); + public alterEventTrigStmt(): AlterEventTrigStmtContext { + let localContext = new AlterEventTrigStmtContext(this.context, this.state); + this.enterRule(localContext, 280, PostgreSqlParser.RULE_alterEventTrigStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -18987,7 +18988,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3407; this.match(PostgreSqlParser.KW_TRIGGER); this.state = 3408; - this.colid(); + this.colId(); this.state = 3414; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { @@ -19039,9 +19040,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createassertionstmt(): CreateassertionstmtContext { - let localContext = new CreateassertionstmtContext(this.context, this.state); - this.enterRule(localContext, 282, PostgreSqlParser.RULE_createassertionstmt); + public createAssertionStmt(): CreateAssertionStmtContext { + let localContext = new CreateAssertionStmtContext(this.context, this.state); + this.enterRule(localContext, 282, PostgreSqlParser.RULE_createAssertionStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -19068,7 +19069,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 3423; - this.constraintattributeElem(); + this.constraintAttributeElem(); } } } @@ -19092,9 +19093,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public definestmt(): DefinestmtContext { - let localContext = new DefinestmtContext(this.context, this.state); - this.enterRule(localContext, 284, PostgreSqlParser.RULE_definestmt); + public defineStmt(): DefineStmtContext { + let localContext = new DefineStmtContext(this.context, this.state); + this.enterRule(localContext, 284, PostgreSqlParser.RULE_defineStmt); let _la: number; try { this.state = 3507; @@ -19126,7 +19127,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 3435; - this.aggr_args(); + this.aggregate_args(); this.state = 3436; this.definition(); } @@ -19137,7 +19138,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3438; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 3439; - this.old_aggr_elem(); + this.old_aggregate_elem(); this.state = 3444; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -19147,7 +19148,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3440; this.match(PostgreSqlParser.COMMA); this.state = 3441; - this.old_aggr_elem(); + this.old_aggregate_elem(); } } this.state = 3446; @@ -19198,7 +19199,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { this.state = 3461; - this.tablefuncelementlist(); + this.tableFuncElementList(); } } @@ -19218,7 +19219,7 @@ export class PostgreSqlParser extends SQLParserBase { if (((((_la - 561)) & ~0x1F) === 0 && ((1 << (_la - 561)) & 67108885) !== 0)) { { this.state = 3467; - this.sconst(); + this.stringConst(); this.state = 3471; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -19414,7 +19415,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 3520; - this.collabel(); + this.colLabel(); this.state = 3523; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -19475,14 +19476,14 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 4); { this.state = 3528; - this.numericonly(); + this.numericOnly(); } break; case 5: this.enterOuterAlt(localContext, 5); { this.state = 3529; - this.sconst(); + this.stringConst(); } break; case 6: @@ -19508,9 +19509,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public old_aggr_elem(): Old_aggr_elemContext { - let localContext = new Old_aggr_elemContext(this.context, this.state); - this.enterRule(localContext, 292, PostgreSqlParser.RULE_old_aggr_elem); + public old_aggregate_elem(): Old_aggregate_elemContext { + let localContext = new Old_aggregate_elemContext(this.context, this.state); + this.enterRule(localContext, 292, PostgreSqlParser.RULE_old_aggregate_elem); try { this.enterOuterAlt(localContext, 1); { @@ -19536,9 +19537,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterenumstmt(): AlterenumstmtContext { - let localContext = new AlterenumstmtContext(this.context, this.state); - this.enterRule(localContext, 294, PostgreSqlParser.RULE_alterenumstmt); + public alterEnumStmt(): AlterEnumStmtContext { + let localContext = new AlterEnumStmtContext(this.context, this.state); + this.enterRule(localContext, 294, PostgreSqlParser.RULE_alterEnumStmt); let _la: number; try { this.state = 3559; @@ -19568,7 +19569,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 3545; - this.sconst(); + this.stringConst(); this.state = 3548; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 406, this.context) ) { @@ -19584,7 +19585,7 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } this.state = 3547; - this.sconst(); + this.stringConst(); } break; } @@ -19604,11 +19605,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3554; this.match(PostgreSqlParser.KW_VALUE); this.state = 3555; - this.sconst(); + this.stringConst(); this.state = 3556; this.match(PostgreSqlParser.KW_TO); this.state = 3557; - this.sconst(); + this.stringConst(); } break; } @@ -19655,9 +19656,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createopclassstmt(): CreateopclassstmtContext { - let localContext = new CreateopclassstmtContext(this.context, this.state); - this.enterRule(localContext, 298, PostgreSqlParser.RULE_createopclassstmt); + public createOperatorClassStmt(): CreateOperatorClassStmtContext { + let localContext = new CreateOperatorClassStmtContext(this.context, this.state); + this.enterRule(localContext, 298, PostgreSqlParser.RULE_createOperatorClassStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -19703,7 +19704,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3580; this.match(PostgreSqlParser.KW_AS); this.state = 3581; - this.opclass_item(); + this.opClassItem(); this.state = 3586; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -19713,7 +19714,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3582; this.match(PostgreSqlParser.COMMA); this.state = 3583; - this.opclass_item(); + this.opClassItem(); } } this.state = 3588; @@ -19736,9 +19737,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opclass_item(): Opclass_itemContext { - let localContext = new Opclass_itemContext(this.context, this.state); - this.enterRule(localContext, 300, PostgreSqlParser.RULE_opclass_item); + public opClassItem(): OpClassItemContext { + let localContext = new OpClassItemContext(this.context, this.state); + this.enterRule(localContext, 300, PostgreSqlParser.RULE_opClassItem); let _la: number; try { this.state = 3615; @@ -19759,7 +19760,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 3592; - this.oper_argtypes(); + this.operatorArgTypes(); } break; } @@ -19827,7 +19828,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 3612; - this.function_with_argtypes(); + this.functionWithArgTypes(); } break; case PostgreSqlParser.KW_STORAGE: @@ -19857,9 +19858,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createopfamilystmt(): CreateopfamilystmtContext { - let localContext = new CreateopfamilystmtContext(this.context, this.state); - this.enterRule(localContext, 302, PostgreSqlParser.RULE_createopfamilystmt); + public createOperatorFamilyStmt(): CreateOperatorFamilyStmtContext { + let localContext = new CreateOperatorFamilyStmtContext(this.context, this.state); + this.enterRule(localContext, 302, PostgreSqlParser.RULE_createOperatorFamilyStmt); try { this.enterOuterAlt(localContext, 1); { @@ -19889,9 +19890,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alteropfamilystmt(): AlteropfamilystmtContext { - let localContext = new AlteropfamilystmtContext(this.context, this.state); - this.enterRule(localContext, 304, PostgreSqlParser.RULE_alteropfamilystmt); + public alterOperatorFamilyStmt(): AlterOperatorFamilyStmtContext { + let localContext = new AlterOperatorFamilyStmtContext(this.context, this.state); + this.enterRule(localContext, 304, PostgreSqlParser.RULE_alterOperatorFamilyStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -19914,7 +19915,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3628; this.match(PostgreSqlParser.KW_ADD); this.state = 3629; - this.opclass_item(); + this.opClassItem(); this.state = 3634; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -19924,7 +19925,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3630; this.match(PostgreSqlParser.COMMA); this.state = 3631; - this.opclass_item(); + this.opClassItem(); } } this.state = 3636; @@ -19938,7 +19939,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3637; this.match(PostgreSqlParser.KW_DROP); this.state = 3638; - this.opclass_drop(); + this.opClassDrop(); this.state = 3643; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -19948,7 +19949,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3639; this.match(PostgreSqlParser.COMMA); this.state = 3640; - this.opclass_drop(); + this.opClassDrop(); } } this.state = 3645; @@ -19976,9 +19977,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opclass_drop(): Opclass_dropContext { - let localContext = new Opclass_dropContext(this.context, this.state); - this.enterRule(localContext, 306, PostgreSqlParser.RULE_opclass_drop); + public opClassDrop(): OpClassDropContext { + let localContext = new OpClassDropContext(this.context, this.state); + this.enterRule(localContext, 306, PostgreSqlParser.RULE_opClassDrop); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -20012,9 +20013,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public reassignownedstmt(): ReassignownedstmtContext { - let localContext = new ReassignownedstmtContext(this.context, this.state); - this.enterRule(localContext, 308, PostgreSqlParser.RULE_reassignownedstmt); + public reassignOwnedStmt(): ReassignOwnedStmtContext { + let localContext = new ReassignOwnedStmtContext(this.context, this.state); + this.enterRule(localContext, 308, PostgreSqlParser.RULE_reassignOwnedStmt); try { this.enterOuterAlt(localContext, 1); { @@ -20029,7 +20030,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3656; this.match(PostgreSqlParser.KW_TO); this.state = 3657; - this.rolespec(); + this.roleSpec(); } } catch (re) { @@ -20046,9 +20047,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public dropstmt(): DropstmtContext { - let localContext = new DropstmtContext(this.context, this.state); - this.enterRule(localContext, 310, PostgreSqlParser.RULE_dropstmt); + public dropStmt(): DropStmtContext { + let localContext = new DropStmtContext(this.context, this.state); + this.enterRule(localContext, 310, PostgreSqlParser.RULE_dropStmt); let _la: number; try { this.state = 3866; @@ -20351,7 +20352,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 3736; - this.colid(); + this.colId(); this.state = 3737; this.match(PostgreSqlParser.KW_ON); this.state = 3738; @@ -20577,7 +20578,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 3804; - this.colid(); + this.colId(); this.state = 3806; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 446, this.context) ) { @@ -20635,7 +20636,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3821; this.match(PostgreSqlParser.KW_LANGUAGE); this.state = 3822; - this.colid(); + this.colId(); this.state = 3824; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 449, this.context) ) { @@ -21120,7 +21121,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 3839; - this.rolespec(); + this.roleSpec(); } break; case PostgreSqlParser.KW_USER: @@ -21135,7 +21136,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3843; this.match(PostgreSqlParser.KW_SERVER); this.state = 3844; - this.colid(); + this.colId(); } break; case 16: @@ -21423,7 +21424,7 @@ export class PostgreSqlParser extends SQLParserBase { throw new antlr.NoViableAltException(this); } this.state = 3904; - this.colid(); + this.colId(); } break; case PostgreSqlParser.KW_SCHEMA: @@ -21448,7 +21449,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 4); { this.state = 3909; - this.opttablespace(); + this.optTableSpace(); } break; default: @@ -21517,7 +21518,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 3920; - this.colid(); + this.colId(); this.state = 3922; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 465, this.context) ) { @@ -21562,7 +21563,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3924; this.match(PostgreSqlParser.DOT); this.state = 3925; - this.collabel(); + this.colLabel(); } } break; @@ -21589,9 +21590,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public truncatestmt(): TruncatestmtContext { - let localContext = new TruncatestmtContext(this.context, this.state); - this.enterRule(localContext, 322, PostgreSqlParser.RULE_truncatestmt); + public truncateStmt(): TruncateStmtContext { + let localContext = new TruncateStmtContext(this.context, this.state); + this.enterRule(localContext, 322, PostgreSqlParser.RULE_truncateStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -21716,9 +21717,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public commentstmt(): CommentstmtContext { - let localContext = new CommentstmtContext(this.context, this.state); - this.enterRule(localContext, 326, PostgreSqlParser.RULE_commentstmt); + public commentStmt(): CommentStmtContext { + let localContext = new CommentStmtContext(this.context, this.state); + this.enterRule(localContext, 326, PostgreSqlParser.RULE_commentStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -21748,7 +21749,7 @@ export class PostgreSqlParser extends SQLParserBase { this.match(PostgreSqlParser.KW_COLUMN); { this.state = 3961; - this.colid(); + this.colId(); this.state = 3963; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 473, this.context) ) { @@ -21786,7 +21787,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3970; this.match(PostgreSqlParser.KW_AGGREGATE); this.state = 3971; - this.aggregate_with_argtypes(); + this.aggregateWithArgTypes(); } break; case 6: @@ -21794,7 +21795,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3972; this.match(PostgreSqlParser.KW_FUNCTION); this.state = 3973; - this.function_with_argtypes(); + this.functionWithArgTypes(); } break; case 7: @@ -21802,7 +21803,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3974; this.match(PostgreSqlParser.KW_OPERATOR); this.state = 3975; - this.operator_with_argtypes(); + this.operatorWithArgTypes(); } break; case 8: @@ -21810,7 +21811,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3976; this.match(PostgreSqlParser.KW_CONSTRAINT); this.state = 3977; - this.colid(); + this.colId(); this.state = 3978; this.match(PostgreSqlParser.KW_ON); this.state = 3984; @@ -21855,7 +21856,7 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } this.state = 3987; - this.colid(); + this.colId(); this.state = 3988; this.match(PostgreSqlParser.KW_ON); this.state = 3989; @@ -21867,7 +21868,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3991; this.match(PostgreSqlParser.KW_PROCEDURE); this.state = 3992; - this.procedure_with_argtypes(); + this.procedureWithArgTypes(); } break; case 11: @@ -21875,7 +21876,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3993; this.match(PostgreSqlParser.KW_ROUTINE); this.state = 3994; - this.routine_with_argtypes(); + this.routineWithArgTypes(); } break; case 12: @@ -21889,7 +21890,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 3998; this.match(PostgreSqlParser.KW_LANGUAGE); this.state = 3999; - this.colid(); + this.colId(); } break; case 13: @@ -21918,7 +21919,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4007; this.match(PostgreSqlParser.KW_OBJECT); this.state = 4008; - this.numericonly(); + this.numericOnly(); } break; case 15: @@ -21949,7 +21950,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 4019; - this.sconst(); + this.stringConst(); } break; case PostgreSqlParser.KW_NULL: @@ -21977,9 +21978,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public seclabelstmt(): SeclabelstmtContext { - let localContext = new SeclabelstmtContext(this.context, this.state); - this.enterRule(localContext, 328, PostgreSqlParser.RULE_seclabelstmt); + public secLabelStmt(): SecLabelStmtContext { + let localContext = new SecLabelStmtContext(this.context, this.state); + this.enterRule(localContext, 328, PostgreSqlParser.RULE_secLabelStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -21996,7 +21997,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4025; this.match(PostgreSqlParser.KW_FOR); this.state = 4026; - this.nonreservedword_or_sconst(); + this.nonReservedWordOrStringConst(); } } @@ -22025,7 +22026,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4032; this.match(PostgreSqlParser.KW_AGGREGATE); this.state = 4033; - this.aggregate_with_argtypes(); + this.aggregateWithArgTypes(); } break; case 3: @@ -22041,7 +22042,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4036; this.match(PostgreSqlParser.KW_FUNCTION); this.state = 4037; - this.function_with_argtypes(); + this.functionWithArgTypes(); } break; case 5: @@ -22051,7 +22052,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4039; this.match(PostgreSqlParser.KW_OBJECT); this.state = 4040; - this.numericonly(); + this.numericOnly(); } break; case 6: @@ -22059,7 +22060,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4041; this.match(PostgreSqlParser.KW_PROCEDURE); this.state = 4042; - this.procedure_with_argtypes(); + this.procedureWithArgTypes(); } break; case 7: @@ -22067,7 +22068,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4043; this.match(PostgreSqlParser.KW_ROUTINE); this.state = 4044; - this.routine_with_argtypes(); + this.routineWithArgTypes(); } break; case 8: @@ -22094,7 +22095,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 4050; - this.sconst(); + this.stringConst(); } break; case PostgreSqlParser.KW_NULL: @@ -22122,9 +22123,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public fetchstmt(): FetchstmtContext { - let localContext = new FetchstmtContext(this.context, this.state); - this.enterRule(localContext, 330, PostgreSqlParser.RULE_fetchstmt); + public fetchStmt(): FetchStmtContext { + let localContext = new FetchStmtContext(this.context, this.state); + this.enterRule(localContext, 330, PostgreSqlParser.RULE_fetchStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -22195,7 +22196,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 4063; - this.colid(); + this.colId(); } break; case 2: @@ -22219,7 +22220,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 4067; - this.signediconst(); + this.signedConst(); this.state = 4069; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -22231,7 +22232,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 4071; - this.colid(); + this.colId(); } break; case 3: @@ -22245,7 +22246,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 12 || _la === 13 || _la === 574) { { this.state = 4074; - this.signediconst(); + this.signedConst(); } } @@ -22260,7 +22261,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 4080; - this.colid(); + this.colId(); } break; case 4: @@ -22289,7 +22290,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 4088; - this.colid(); + this.colId(); } break; case 5: @@ -22715,7 +22716,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.Integral: { this.state = 4093; - this.signediconst(); + this.signedConst(); } break; default: @@ -22732,7 +22733,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 4099; - this.colid(); + this.colId(); } break; } @@ -22783,9 +22784,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public grantstmt(): GrantstmtContext { - let localContext = new GrantstmtContext(this.context, this.state); - this.enterRule(localContext, 336, PostgreSqlParser.RULE_grantstmt); + public grantStmt(): GrantStmtContext { + let localContext = new GrantStmtContext(this.context, this.state); + this.enterRule(localContext, 336, PostgreSqlParser.RULE_grantStmt); try { this.enterOuterAlt(localContext, 1); { @@ -22831,9 +22832,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public revokestmt(): RevokestmtContext { - let localContext = new RevokestmtContext(this.context, this.state); - this.enterRule(localContext, 338, PostgreSqlParser.RULE_revokestmt); + public revokeStmt(): RevokeStmtContext { + let localContext = new RevokeStmtContext(this.context, this.state); + this.enterRule(localContext, 338, PostgreSqlParser.RULE_revokeStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -22952,7 +22953,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 3); { this.state = 4144; - this.beforeprivilegeselect(); + this.beforePrivilegeSelect(); this.state = 4149; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -22962,7 +22963,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4145; this.match(PostgreSqlParser.COMMA); this.state = 4146; - this.beforeprivilegeselect(); + this.beforePrivilegeSelect(); } } this.state = 4151; @@ -22987,9 +22988,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public beforeprivilegeselect(): BeforeprivilegeselectContext { - let localContext = new BeforeprivilegeselectContext(this.context, this.state); - this.enterRule(localContext, 342, PostgreSqlParser.RULE_beforeprivilegeselect); + public beforePrivilegeSelect(): BeforePrivilegeSelectContext { + let localContext = new BeforePrivilegeSelectContext(this.context, this.state); + this.enterRule(localContext, 342, PostgreSqlParser.RULE_beforePrivilegeSelect); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -23443,7 +23444,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 4159; - this.colid(); + this.colId(); } break; default: @@ -23560,7 +23561,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4181; this.match(PostgreSqlParser.KW_FUNCTION); this.state = 4182; - this.function_with_argtypes_list(); + this.functionWithArgTypesList(); } break; case 5: @@ -23569,7 +23570,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4183; this.match(PostgreSqlParser.KW_PROCEDURE); this.state = 4184; - this.procedure_with_argtypes_list(); + this.procedureWithArgTypesList(); } break; case 6: @@ -23578,7 +23579,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4185; this.match(PostgreSqlParser.KW_ROUTINE); this.state = 4186; - this.routine_with_argtypes_list(); + this.routineWithArgTypesList(); } break; case 7: @@ -23614,7 +23615,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4192; this.match(PostgreSqlParser.KW_OBJECT); this.state = 4193; - this.numericonly(); + this.numericOnly(); this.state = 4198; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -23624,7 +23625,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4194; this.match(PostgreSqlParser.COMMA); this.state = 4195; - this.numericonly(); + this.numericOnly(); } } this.state = 4200; @@ -23708,7 +23709,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 4215; - this.rolespec(); + this.roleSpec(); } this.state = 4224; this.errorHandler.sync(this); @@ -23730,7 +23731,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 4221; - this.rolespec(); + this.roleSpec(); } } } @@ -23754,9 +23755,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public grantrolestmt(): GrantrolestmtContext { - let localContext = new GrantrolestmtContext(this.context, this.state); - this.enterRule(localContext, 350, PostgreSqlParser.RULE_grantrolestmt); + public grantRoleStmt(): GrantRoleStmtContext { + let localContext = new GrantRoleStmtContext(this.context, this.state); + this.enterRule(localContext, 350, PostgreSqlParser.RULE_grantRoleStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -23809,7 +23810,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4244; this.match(PostgreSqlParser.KW_BY); this.state = 4245; - this.rolespec(); + this.roleSpec(); } break; } @@ -23829,9 +23830,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public revokerolestmt(): RevokerolestmtContext { - let localContext = new RevokerolestmtContext(this.context, this.state); - this.enterRule(localContext, 352, PostgreSqlParser.RULE_revokerolestmt); + public revokeRoleStmt(): RevokeRoleStmtContext { + let localContext = new RevokeRoleStmtContext(this.context, this.state); + this.enterRule(localContext, 352, PostgreSqlParser.RULE_revokeRoleStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -23884,7 +23885,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4265; this.match(PostgreSqlParser.KW_BY); this.state = 4266; - this.rolespec(); + this.roleSpec(); } break; } @@ -23914,9 +23915,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterdefaultprivilegesstmt(): AlterdefaultprivilegesstmtContext { - let localContext = new AlterdefaultprivilegesstmtContext(this.context, this.state); - this.enterRule(localContext, 354, PostgreSqlParser.RULE_alterdefaultprivilegesstmt); + public alterDefaultPrivilegesStmt(): AlterDefaultPrivilegesStmtContext { + let localContext = new AlterDefaultPrivilegesStmtContext(this.context, this.state); + this.enterRule(localContext, 354, PostgreSqlParser.RULE_alterDefaultPrivilegesStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -24118,9 +24119,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public indexstmt(): IndexstmtContext { - let localContext = new IndexstmtContext(this.context, this.state); - this.enterRule(localContext, 360, PostgreSqlParser.RULE_indexstmt); + public indexStmt(): IndexStmtContext { + let localContext = new IndexStmtContext(this.context, this.state); + this.enterRule(localContext, 360, PostgreSqlParser.RULE_indexStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -24165,7 +24166,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { this.state = 4328; - this.colid(); + this.colId(); } } @@ -24225,7 +24226,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 4348; - this.opt_reloptions(); + this.optRelOptions(); } break; } @@ -24235,7 +24236,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 4351; - this.opttablespace(); + this.optTableSpace(); } break; } @@ -24375,7 +24376,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4382; this.any_name(); this.state = 4383; - this.reloptions(); + this.relOptions(); } break; } @@ -24431,9 +24432,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createfunctionstmt(): CreatefunctionstmtContext { - let localContext = new CreatefunctionstmtContext(this.context, this.state); - this.enterRule(localContext, 366, PostgreSqlParser.RULE_createfunctionstmt); + public createFunctionStmt(): CreateFunctionStmtContext { + let localContext = new CreateFunctionStmtContext(this.context, this.state); + this.enterRule(localContext, 366, PostgreSqlParser.RULE_createFunctionStmt); let _la: number; try { let alternative: number; @@ -24980,7 +24981,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 4435; - this.createfunc_opt_item(); + this.create_func_opt_item(); } } break; @@ -25127,15 +25128,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public routine_with_argtypes_list(): Routine_with_argtypes_listContext { - let localContext = new Routine_with_argtypes_listContext(this.context, this.state); - this.enterRule(localContext, 374, PostgreSqlParser.RULE_routine_with_argtypes_list); + public routineWithArgTypesList(): RoutineWithArgTypesListContext { + let localContext = new RoutineWithArgTypesListContext(this.context, this.state); + this.enterRule(localContext, 374, PostgreSqlParser.RULE_routineWithArgTypesList); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 4464; - this.routine_with_argtypes(); + this.routineWithArgTypes(); this.state = 4469; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -25145,7 +25146,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4465; this.match(PostgreSqlParser.COMMA); this.state = 4466; - this.routine_with_argtypes(); + this.routineWithArgTypes(); } } this.state = 4471; @@ -25168,9 +25169,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public routine_with_argtypes(): Routine_with_argtypesContext { - let localContext = new Routine_with_argtypesContext(this.context, this.state); - this.enterRule(localContext, 376, PostgreSqlParser.RULE_routine_with_argtypes); + public routineWithArgTypes(): RoutineWithArgTypesContext { + let localContext = new RoutineWithArgTypesContext(this.context, this.state); + this.enterRule(localContext, 376, PostgreSqlParser.RULE_routineWithArgTypes); try { this.state = 4477; this.errorHandler.sync(this); @@ -25214,15 +25215,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public procedure_with_argtypes_list(): Procedure_with_argtypes_listContext { - let localContext = new Procedure_with_argtypes_listContext(this.context, this.state); - this.enterRule(localContext, 378, PostgreSqlParser.RULE_procedure_with_argtypes_list); + public procedureWithArgTypesList(): ProcedureWithArgTypesListContext { + let localContext = new ProcedureWithArgTypesListContext(this.context, this.state); + this.enterRule(localContext, 378, PostgreSqlParser.RULE_procedureWithArgTypesList); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 4479; - this.procedure_with_argtypes(); + this.procedureWithArgTypes(); this.state = 4484; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -25232,7 +25233,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4480; this.match(PostgreSqlParser.COMMA); this.state = 4481; - this.procedure_with_argtypes(); + this.procedureWithArgTypes(); } } this.state = 4486; @@ -25255,9 +25256,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public procedure_with_argtypes(): Procedure_with_argtypesContext { - let localContext = new Procedure_with_argtypesContext(this.context, this.state); - this.enterRule(localContext, 380, PostgreSqlParser.RULE_procedure_with_argtypes); + public procedureWithArgTypes(): ProcedureWithArgTypesContext { + let localContext = new ProcedureWithArgTypesContext(this.context, this.state); + this.enterRule(localContext, 380, PostgreSqlParser.RULE_procedureWithArgTypes); try { this.state = 4492; this.errorHandler.sync(this); @@ -25301,15 +25302,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public function_with_argtypes_list(): Function_with_argtypes_listContext { - let localContext = new Function_with_argtypes_listContext(this.context, this.state); - this.enterRule(localContext, 382, PostgreSqlParser.RULE_function_with_argtypes_list); + public functionWithArgTypesList(): FunctionWithArgTypesListContext { + let localContext = new FunctionWithArgTypesListContext(this.context, this.state); + this.enterRule(localContext, 382, PostgreSqlParser.RULE_functionWithArgTypesList); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 4494; - this.function_with_argtypes(); + this.functionWithArgTypes(); this.state = 4499; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -25319,7 +25320,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4495; this.match(PostgreSqlParser.COMMA); this.state = 4496; - this.function_with_argtypes(); + this.functionWithArgTypes(); } } this.state = 4501; @@ -25342,9 +25343,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public function_with_argtypes(): Function_with_argtypesContext { - let localContext = new Function_with_argtypesContext(this.context, this.state); - this.enterRule(localContext, 384, PostgreSqlParser.RULE_function_with_argtypes); + public functionWithArgTypes(): FunctionWithArgTypesContext { + let localContext = new FunctionWithArgTypesContext(this.context, this.state); + this.enterRule(localContext, 384, PostgreSqlParser.RULE_functionWithArgTypes); try { this.state = 4507; this.errorHandler.sync(this); @@ -25609,9 +25610,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public aggr_args(): Aggr_argsContext { - let localContext = new Aggr_argsContext(this.context, this.state); - this.enterRule(localContext, 394, PostgreSqlParser.RULE_aggr_args); + public aggregate_args(): Aggregate_argsContext { + let localContext = new Aggregate_argsContext(this.context, this.state); + this.enterRule(localContext, 394, PostgreSqlParser.RULE_aggregate_args); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -26094,16 +26095,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public aggregate_with_argtypes(): Aggregate_with_argtypesContext { - let localContext = new Aggregate_with_argtypesContext(this.context, this.state); - this.enterRule(localContext, 396, PostgreSqlParser.RULE_aggregate_with_argtypes); + public aggregateWithArgTypes(): AggregateWithArgTypesContext { + let localContext = new AggregateWithArgTypesContext(this.context, this.state); + this.enterRule(localContext, 396, PostgreSqlParser.RULE_aggregateWithArgTypes); try { this.enterOuterAlt(localContext, 1); { this.state = 4560; this.function_name(); this.state = 4561; - this.aggr_args(); + this.aggregate_args(); } } catch (re) { @@ -26245,7 +26246,7 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } this.state = 4584; - this.numericonly(); + this.numericOnly(); } break; case PostgreSqlParser.KW_SUPPORT: @@ -26270,7 +26271,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 12); { this.state = 4589; - this.variableresetstmt(); + this.variableResetStmt(); } break; case PostgreSqlParser.KW_PARALLEL: @@ -26279,7 +26280,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4590; this.match(PostgreSqlParser.KW_PARALLEL); this.state = 4591; - this.colid(); + this.colId(); } break; default: @@ -26300,9 +26301,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createfunc_opt_item(): Createfunc_opt_itemContext { - let localContext = new Createfunc_opt_itemContext(this.context, this.state); - this.enterRule(localContext, 400, PostgreSqlParser.RULE_createfunc_opt_item); + public create_func_opt_item(): Create_func_opt_itemContext { + let localContext = new Create_func_opt_itemContext(this.context, this.state); + this.enterRule(localContext, 400, PostgreSqlParser.RULE_create_func_opt_item); let _la: number; try { this.state = 4629; @@ -26314,7 +26315,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4594; this.match(PostgreSqlParser.KW_AS); this.state = 4595; - this.sconst(); + this.stringConst(); this.state = 4596; this.notify_payload(); } @@ -26325,7 +26326,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4598; this.match(PostgreSqlParser.KW_LANGUAGE); this.state = 4599; - this.nonreservedword_or_sconst(); + this.nonReservedWordOrStringConst(); } break; case 3: @@ -26374,7 +26375,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4614; this.match(PostgreSqlParser.KW_SET); this.state = 4615; - this.colid(); + this.colId(); this.state = 4622; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { @@ -26383,7 +26384,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4616; this.match(PostgreSqlParser.KW_TO); this.state = 4617; - this.colid(); + this.colId(); } break; case PostgreSqlParser.EQUAL: @@ -26391,7 +26392,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4618; this.match(PostgreSqlParser.EQUAL); this.state = 4619; - this.colid(); + this.colId(); } break; case PostgreSqlParser.KW_FROM: @@ -26413,7 +26414,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4624; this.match(PostgreSqlParser.KW_AS); this.state = 4625; - this.colid(); + this.colId(); } break; case 7: @@ -26434,7 +26435,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 9); { this.state = 4628; - this.colid(); + this.colId(); } break; } @@ -26505,9 +26506,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterfunctionstmt(): AlterfunctionstmtContext { - let localContext = new AlterfunctionstmtContext(this.context, this.state); - this.enterRule(localContext, 406, PostgreSqlParser.RULE_alterfunctionstmt); + public alterFunctionStmt(): AlterFunctionStmtContext { + let localContext = new AlterFunctionStmtContext(this.context, this.state); + this.enterRule(localContext, 406, PostgreSqlParser.RULE_alterFunctionStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -26522,7 +26523,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4638; this.match(PostgreSqlParser.KW_FUNCTION); this.state = 4639; - this.function_with_argtypes(); + this.functionWithArgTypes(); } break; case PostgreSqlParser.KW_PROCEDURE: @@ -26530,7 +26531,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4640; this.match(PostgreSqlParser.KW_PROCEDURE); this.state = 4641; - this.procedure_with_argtypes(); + this.procedureWithArgTypes(); } break; case PostgreSqlParser.KW_ROUTINE: @@ -26538,7 +26539,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4642; this.match(PostgreSqlParser.KW_ROUTINE); this.state = 4643; - this.routine_with_argtypes(); + this.routineWithArgTypes(); } break; default: @@ -26590,9 +26591,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public removefuncstmt(): RemovefuncstmtContext { - let localContext = new RemovefuncstmtContext(this.context, this.state); - this.enterRule(localContext, 408, PostgreSqlParser.RULE_removefuncstmt); + public removeFuncStmt(): RemoveFuncStmtContext { + let localContext = new RemoveFuncStmtContext(this.context, this.state); + this.enterRule(localContext, 408, PostgreSqlParser.RULE_removeFuncStmt); try { this.enterOuterAlt(localContext, 1); { @@ -26616,7 +26617,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 4659; - this.function_with_argtypes_list(); + this.functionWithArgTypesList(); } break; case PostgreSqlParser.KW_PROCEDURE: @@ -26634,7 +26635,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 4664; - this.procedure_with_argtypes_list(); + this.procedureWithArgTypesList(); } break; case PostgreSqlParser.KW_ROUTINE: @@ -26652,7 +26653,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 4669; - this.routine_with_argtypes_list(); + this.routineWithArgTypesList(); } break; default: @@ -26684,9 +26685,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public removeaggrstmt(): RemoveaggrstmtContext { - let localContext = new RemoveaggrstmtContext(this.context, this.state); - this.enterRule(localContext, 410, PostgreSqlParser.RULE_removeaggrstmt); + public removeAggregateStmt(): RemoveAggregateStmtContext { + let localContext = new RemoveAggregateStmtContext(this.context, this.state); + this.enterRule(localContext, 410, PostgreSqlParser.RULE_removeAggregateStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -26707,7 +26708,7 @@ export class PostgreSqlParser extends SQLParserBase { } { this.state = 4680; - this.aggregate_with_argtypes(); + this.aggregateWithArgTypes(); this.state = 4685; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -26717,7 +26718,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4681; this.match(PostgreSqlParser.COMMA); this.state = 4682; - this.aggregate_with_argtypes(); + this.aggregateWithArgTypes(); } } this.state = 4687; @@ -26751,9 +26752,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public removeoperstmt(): RemoveoperstmtContext { - let localContext = new RemoveoperstmtContext(this.context, this.state); - this.enterRule(localContext, 412, PostgreSqlParser.RULE_removeoperstmt); + public removeOperatorStmt(): RemoveOperatorStmtContext { + let localContext = new RemoveOperatorStmtContext(this.context, this.state); + this.enterRule(localContext, 412, PostgreSqlParser.RULE_removeOperatorStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -26774,7 +26775,7 @@ export class PostgreSqlParser extends SQLParserBase { } { this.state = 4696; - this.operator_with_argtypes(); + this.operatorWithArgTypes(); this.state = 4701; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -26784,7 +26785,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4697; this.match(PostgreSqlParser.COMMA); this.state = 4698; - this.operator_with_argtypes(); + this.operatorWithArgTypes(); } } this.state = 4703; @@ -26818,9 +26819,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public oper_argtypes(): Oper_argtypesContext { - let localContext = new Oper_argtypesContext(this.context, this.state); - this.enterRule(localContext, 414, PostgreSqlParser.RULE_oper_argtypes); + public operatorArgTypes(): OperatorArgTypesContext { + let localContext = new OperatorArgTypesContext(this.context, this.state); + this.enterRule(localContext, 414, PostgreSqlParser.RULE_operatorArgTypes); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -26901,7 +26902,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 4724; - this.colid(); + this.colId(); this.state = 4725; this.match(PostgreSqlParser.DOT); } @@ -26928,16 +26929,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public operator_with_argtypes(): Operator_with_argtypesContext { - let localContext = new Operator_with_argtypesContext(this.context, this.state); - this.enterRule(localContext, 418, PostgreSqlParser.RULE_operator_with_argtypes); + public operatorWithArgTypes(): OperatorWithArgTypesContext { + let localContext = new OperatorWithArgTypesContext(this.context, this.state); + this.enterRule(localContext, 418, PostgreSqlParser.RULE_operatorWithArgTypes); try { this.enterOuterAlt(localContext, 1); { this.state = 4734; this.any_operator(); this.state = 4735; - this.oper_argtypes(); + this.operatorArgTypes(); } } catch (re) { @@ -26954,9 +26955,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public dostmt(): DostmtContext { - let localContext = new DostmtContext(this.context, this.state); - this.enterRule(localContext, 420, PostgreSqlParser.RULE_dostmt); + public doStmt(): DoStmtContext { + let localContext = new DoStmtContext(this.context, this.state); + this.enterRule(localContext, 420, PostgreSqlParser.RULE_doStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); @@ -26979,7 +26980,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 4738; - this.sconst(); + this.stringConst(); } break; case PostgreSqlParser.KW_LANGUAGE: @@ -26987,7 +26988,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4739; this.match(PostgreSqlParser.KW_LANGUAGE); this.state = 4740; - this.nonreservedword_or_sconst(); + this.nonReservedWordOrStringConst(); } break; default: @@ -27018,9 +27019,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createcaststmt(): CreatecaststmtContext { - let localContext = new CreatecaststmtContext(this.context, this.state); - this.enterRule(localContext, 422, PostgreSqlParser.RULE_createcaststmt); + public createCastStmt(): CreateCastStmtContext { + let localContext = new CreateCastStmtContext(this.context, this.state); + this.enterRule(localContext, 422, PostgreSqlParser.RULE_createCastStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -27084,7 +27085,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4759; this.match(PostgreSqlParser.KW_FUNCTION); this.state = 4760; - this.function_with_argtypes(); + this.functionWithArgTypes(); } break; case PostgreSqlParser.KW_INOUT: @@ -27163,9 +27164,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createtransformstmt(): CreatetransformstmtContext { - let localContext = new CreatetransformstmtContext(this.context, this.state); - this.enterRule(localContext, 426, PostgreSqlParser.RULE_createtransformstmt); + public createTransformStmt(): CreateTransformStmtContext { + let localContext = new CreateTransformStmtContext(this.context, this.state); + this.enterRule(localContext, 426, PostgreSqlParser.RULE_createTransformStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -27191,7 +27192,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4780; this.match(PostgreSqlParser.KW_LANGUAGE); this.state = 4781; - this.colid(); + this.colId(); this.state = 4782; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 4797; @@ -27275,7 +27276,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4803; this.match(PostgreSqlParser.KW_FUNCTION); this.state = 4804; - this.function_with_argtypes(); + this.functionWithArgTypes(); } } catch (re) { @@ -27292,9 +27293,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public reindexstmt(): ReindexstmtContext { - let localContext = new ReindexstmtContext(this.context, this.state); - this.enterRule(localContext, 430, PostgreSqlParser.RULE_reindexstmt); + public reindexStmt(): ReindexStmtContext { + let localContext = new ReindexStmtContext(this.context, this.state); + this.enterRule(localContext, 430, PostgreSqlParser.RULE_reindexStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -27404,7 +27405,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 4838; - this.colid(); + this.colId(); } break; case PostgreSqlParser.KW_DATABASE: @@ -27445,9 +27446,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public altertblspcstmt(): AltertblspcstmtContext { - let localContext = new AltertblspcstmtContext(this.context, this.state); - this.enterRule(localContext, 432, PostgreSqlParser.RULE_altertblspcstmt); + public alterTblSpcStmt(): AlterTblSpcStmtContext { + let localContext = new AlterTblSpcStmtContext(this.context, this.state); + this.enterRule(localContext, 432, PostgreSqlParser.RULE_alterTblSpcStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -27455,7 +27456,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4846; this.match(PostgreSqlParser.KW_ALTER); this.state = 4847; - this.opttablespace(); + this.optTableSpace(); this.state = 4848; _la = this.tokenStream.LA(1); if(!(_la === 313 || _la === 333)) { @@ -27466,7 +27467,7 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } this.state = 4849; - this.reloptions(); + this.relOptions(); } } catch (re) { @@ -27483,9 +27484,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public renamestmt(): RenamestmtContext { - let localContext = new RenamestmtContext(this.context, this.state); - this.enterRule(localContext, 434, PostgreSqlParser.RULE_renamestmt); + public renameStmt(): RenameStmtContext { + let localContext = new RenameStmtContext(this.context, this.state); + this.enterRule(localContext, 434, PostgreSqlParser.RULE_renameStmt); let _la: number; try { this.state = 5058; @@ -27504,7 +27505,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4852; this.match(PostgreSqlParser.KW_AGGREGATE); this.state = 4853; - this.aggregate_with_argtypes(); + this.aggregateWithArgTypes(); } break; case PostgreSqlParser.KW_ROUTINE: @@ -27512,7 +27513,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4854; this.match(PostgreSqlParser.KW_ROUTINE); this.state = 4855; - this.routine_with_argtypes(); + this.routineWithArgTypes(); } break; default: @@ -27523,7 +27524,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4859; this.match(PostgreSqlParser.KW_TO); this.state = 4860; - this.colid(); + this.colId(); } break; case 2: @@ -27564,7 +27565,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4873; this.match(PostgreSqlParser.KW_TO); this.state = 4874; - this.colid(); + this.colId(); } break; case 4: @@ -27575,7 +27576,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4877; this.match(PostgreSqlParser.KW_FUNCTION); this.state = 4878; - this.function_with_argtypes(); + this.functionWithArgTypes(); this.state = 4879; this.match(PostgreSqlParser.KW_RENAME); this.state = 4880; @@ -27609,7 +27610,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4889; this.match(PostgreSqlParser.KW_TO); this.state = 4890; - this.colid(); + this.colId(); } break; case 6: @@ -27620,7 +27621,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4893; this.match(PostgreSqlParser.KW_PROCEDURE); this.state = 4894; - this.procedure_with_argtypes(); + this.procedureWithArgTypes(); this.state = 4895; this.match(PostgreSqlParser.KW_RENAME); this.state = 4896; @@ -27677,7 +27678,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4913; this.match(PostgreSqlParser.KW_TO); this.state = 4914; - this.colid(); + this.colId(); } break; case 9: @@ -27897,11 +27898,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 4984; this.match(PostgreSqlParser.KW_CONSTRAINT); this.state = 4985; - this.colid(); + this.colId(); this.state = 4986; this.match(PostgreSqlParser.KW_TO); this.state = 4987; - this.colid(); + this.colId(); } break; case 13: @@ -27946,7 +27947,7 @@ export class PostgreSqlParser extends SQLParserBase { throw new antlr.NoViableAltException(this); } this.state = 4998; - this.colid(); + this.colId(); this.state = 4999; this.match(PostgreSqlParser.KW_ON); this.state = 5000; @@ -27956,7 +27957,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5002; this.match(PostgreSqlParser.KW_TO); this.state = 5003; - this.colid(); + this.colId(); } break; case 14: @@ -28024,13 +28025,13 @@ export class PostgreSqlParser extends SQLParserBase { throw new antlr.NoViableAltException(this); } this.state = 5020; - this.colid(); + this.colId(); this.state = 5021; this.match(PostgreSqlParser.KW_RENAME); this.state = 5022; this.match(PostgreSqlParser.KW_TO); this.state = 5023; - this.colid(); + this.colId(); } break; case 15: @@ -28048,13 +28049,13 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } this.state = 5027; - this.rolespec(); + this.roleSpec(); this.state = 5028; this.match(PostgreSqlParser.KW_RENAME); this.state = 5029; this.match(PostgreSqlParser.KW_TO); this.state = 5030; - this.rolespec(); + this.roleSpec(); } break; case 16: @@ -28063,7 +28064,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5032; this.match(PostgreSqlParser.KW_ALTER); this.state = 5033; - this.opttablespace(); + this.optTableSpace(); this.state = 5034; this.match(PostgreSqlParser.KW_RENAME); this.state = 5035; @@ -28097,7 +28098,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5044; this.match(PostgreSqlParser.KW_TO); this.state = 5045; - this.colid(); + this.colId(); } break; case 18: @@ -28114,11 +28115,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5051; this.match(PostgreSqlParser.KW_ATTRIBUTE); this.state = 5052; - this.colid(); + this.colId(); this.state = 5053; this.match(PostgreSqlParser.KW_TO); this.state = 5054; - this.colid(); + this.colId(); this.state = 5056; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 630, this.context) ) { @@ -28147,9 +28148,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterobjectdependsstmt(): AlterobjectdependsstmtContext { - let localContext = new AlterobjectdependsstmtContext(this.context, this.state); - this.enterRule(localContext, 436, PostgreSqlParser.RULE_alterobjectdependsstmt); + public alterObjectDependsStmt(): AlterObjectDependsStmtContext { + let localContext = new AlterObjectDependsStmtContext(this.context, this.state); + this.enterRule(localContext, 436, PostgreSqlParser.RULE_alterObjectDependsStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -28164,7 +28165,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5061; this.match(PostgreSqlParser.KW_FUNCTION); this.state = 5062; - this.function_with_argtypes(); + this.functionWithArgTypes(); } break; case PostgreSqlParser.KW_PROCEDURE: @@ -28172,7 +28173,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5063; this.match(PostgreSqlParser.KW_PROCEDURE); this.state = 5064; - this.procedure_with_argtypes(); + this.procedureWithArgTypes(); } break; case PostgreSqlParser.KW_ROUTINE: @@ -28180,7 +28181,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5065; this.match(PostgreSqlParser.KW_ROUTINE); this.state = 5066; - this.routine_with_argtypes(); + this.routineWithArgTypes(); } break; case PostgreSqlParser.KW_TRIGGER: @@ -28188,7 +28189,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5067; this.match(PostgreSqlParser.KW_TRIGGER); this.state = 5068; - this.colid(); + this.colId(); this.state = 5069; this.match(PostgreSqlParser.KW_ON); this.state = 5070; @@ -28233,7 +28234,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5084; this.match(PostgreSqlParser.KW_EXTENSION); this.state = 5085; - this.colid(); + this.colId(); } } catch (re) { @@ -28250,9 +28251,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterobjectschemastmt(): AlterobjectschemastmtContext { - let localContext = new AlterobjectschemastmtContext(this.context, this.state); - this.enterRule(localContext, 438, PostgreSqlParser.RULE_alterobjectschemastmt); + public alterObjectSchemaStmt(): AlterObjectSchemaStmtContext { + let localContext = new AlterObjectSchemaStmtContext(this.context, this.state); + this.enterRule(localContext, 438, PostgreSqlParser.RULE_alterObjectSchemaStmt); let _la: number; try { this.state = 5148; @@ -28271,7 +28272,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5088; this.match(PostgreSqlParser.KW_AGGREGATE); this.state = 5089; - this.aggregate_with_argtypes(); + this.aggregateWithArgTypes(); } break; case 2: @@ -28279,7 +28280,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5090; this.match(PostgreSqlParser.KW_EXTENSION); this.state = 5091; - this.colid(); + this.colId(); } break; case 3: @@ -28287,7 +28288,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5092; this.match(PostgreSqlParser.KW_FUNCTION); this.state = 5093; - this.function_with_argtypes(); + this.functionWithArgTypes(); } break; case 4: @@ -28295,7 +28296,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5094; this.match(PostgreSqlParser.KW_OPERATOR); this.state = 5095; - this.operator_with_argtypes(); + this.operatorWithArgTypes(); } break; case 5: @@ -28322,7 +28323,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5101; this.match(PostgreSqlParser.KW_PROCEDURE); this.state = 5102; - this.procedure_with_argtypes(); + this.procedureWithArgTypes(); } break; case 7: @@ -28330,7 +28331,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5103; this.match(PostgreSqlParser.KW_ROUTINE); this.state = 5104; - this.routine_with_argtypes(); + this.routineWithArgTypes(); } break; case 8: @@ -28500,9 +28501,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alteroperatorstmt(): AlteroperatorstmtContext { - let localContext = new AlteroperatorstmtContext(this.context, this.state); - this.enterRule(localContext, 440, PostgreSqlParser.RULE_alteroperatorstmt); + public alterOperatorStmt(): AlterOperatorStmtContext { + let localContext = new AlterOperatorStmtContext(this.context, this.state); + this.enterRule(localContext, 440, PostgreSqlParser.RULE_alterOperatorStmt); try { this.enterOuterAlt(localContext, 1); { @@ -28511,7 +28512,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5151; this.match(PostgreSqlParser.KW_OPERATOR); this.state = 5152; - this.operator_with_argtypes(); + this.operatorWithArgTypes(); this.state = 5153; this.match(PostgreSqlParser.KW_SET); this.state = 5154; @@ -28584,7 +28585,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 5167; - this.collabel(); + this.colLabel(); this.state = 5168; this.match(PostgreSqlParser.EQUAL); this.state = 5175; @@ -28617,13 +28618,13 @@ export class PostgreSqlParser extends SQLParserBase { case 5: { this.state = 5173; - this.numericonly(); + this.numericOnly(); } break; case 6: { this.state = 5174; - this.sconst(); + this.stringConst(); } break; } @@ -28643,9 +28644,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public altertypestmt(): AltertypestmtContext { - let localContext = new AltertypestmtContext(this.context, this.state); - this.enterRule(localContext, 446, PostgreSqlParser.RULE_altertypestmt); + public alterTypeStmt(): AlterTypeStmtContext { + let localContext = new AlterTypeStmtContext(this.context, this.state); + this.enterRule(localContext, 446, PostgreSqlParser.RULE_alterTypeStmt); try { this.enterOuterAlt(localContext, 1); { @@ -28675,9 +28676,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterownerstmt(): AlterownerstmtContext { - let localContext = new AlterownerstmtContext(this.context, this.state); - this.enterRule(localContext, 448, PostgreSqlParser.RULE_alterownerstmt); + public alterOwnerStmt(): AlterOwnerStmtContext { + let localContext = new AlterOwnerStmtContext(this.context, this.state); + this.enterRule(localContext, 448, PostgreSqlParser.RULE_alterOwnerStmt); let _la: number; try { this.state = 5257; @@ -28708,7 +28709,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5189; this.match(PostgreSqlParser.KW_TO); this.state = 5190; - this.rolespec(); + this.roleSpec(); } break; case 2: @@ -28724,7 +28725,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5193; this.match(PostgreSqlParser.KW_AGGREGATE); this.state = 5194; - this.aggregate_with_argtypes(); + this.aggregateWithArgTypes(); } break; case 2: @@ -28740,7 +28741,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5197; this.match(PostgreSqlParser.KW_FUNCTION); this.state = 5198; - this.function_with_argtypes(); + this.functionWithArgTypes(); } break; case 4: @@ -28758,7 +28759,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5202; this.match(PostgreSqlParser.KW_LANGUAGE); this.state = 5203; - this.colid(); + this.colId(); } break; case 5: @@ -28768,7 +28769,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5205; this.match(PostgreSqlParser.KW_OBJECT); this.state = 5206; - this.numericonly(); + this.numericOnly(); } break; case 6: @@ -28778,7 +28779,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5208; this.match(PostgreSqlParser.KW_OBJECT); this.state = 5209; - this.numericonly(); + this.numericOnly(); } break; case 7: @@ -28786,7 +28787,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5210; this.match(PostgreSqlParser.KW_OPERATOR); this.state = 5211; - this.operator_with_argtypes(); + this.operatorWithArgTypes(); } break; case 8: @@ -28794,7 +28795,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5212; this.match(PostgreSqlParser.KW_PROCEDURE); this.state = 5213; - this.procedure_with_argtypes(); + this.procedureWithArgTypes(); } break; case 9: @@ -28802,7 +28803,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5214; this.match(PostgreSqlParser.KW_ROUTINE); this.state = 5215; - this.routine_with_argtypes(); + this.routineWithArgTypes(); } break; case 10: @@ -28816,7 +28817,7 @@ export class PostgreSqlParser extends SQLParserBase { case 11: { this.state = 5218; - this.opttablespace(); + this.optTableSpace(); } break; } @@ -28825,7 +28826,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5222; this.match(PostgreSqlParser.KW_TO); this.state = 5223; - this.rolespec(); + this.roleSpec(); } break; case 3: @@ -28893,7 +28894,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5238; this.match(PostgreSqlParser.KW_TO); this.state = 5239; - this.rolespec(); + this.roleSpec(); } break; case 4: @@ -28948,13 +28949,13 @@ export class PostgreSqlParser extends SQLParserBase { throw new antlr.NoViableAltException(this); } this.state = 5252; - this.colid(); + this.colId(); this.state = 5253; this.match(PostgreSqlParser.KW_OWNER); this.state = 5254; this.match(PostgreSqlParser.KW_TO); this.state = 5255; - this.rolespec(); + this.roleSpec(); } break; } @@ -28973,9 +28974,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createpublicationstmt(): CreatepublicationstmtContext { - let localContext = new CreatepublicationstmtContext(this.context, this.state); - this.enterRule(localContext, 450, PostgreSqlParser.RULE_createpublicationstmt); + public createPublicationStmt(): CreatePublicationStmtContext { + let localContext = new CreatePublicationStmtContext(this.context, this.state); + this.enterRule(localContext, 450, PostgreSqlParser.RULE_createPublicationStmt); try { this.enterOuterAlt(localContext, 1); { @@ -28984,7 +28985,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5260; this.match(PostgreSqlParser.KW_PUBLICATION); this.state = 5261; - this.colid(); + this.colId(); this.state = 5268; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 649, this.context) ) { @@ -29035,9 +29036,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterpublicationstmt(): AlterpublicationstmtContext { - let localContext = new AlterpublicationstmtContext(this.context, this.state); - this.enterRule(localContext, 452, PostgreSqlParser.RULE_alterpublicationstmt); + public alterPublicationStmt(): AlterPublicationStmtContext { + let localContext = new AlterPublicationStmtContext(this.context, this.state); + this.enterRule(localContext, 452, PostgreSqlParser.RULE_alterPublicationStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -29047,7 +29048,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5274; this.match(PostgreSqlParser.KW_PUBLICATION); this.state = 5275; - this.colid(); + this.colId(); this.state = 5293; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 652, this.context) ) { @@ -29059,7 +29060,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5277; this.match(PostgreSqlParser.KW_TO); this.state = 5278; - this.rolespec(); + this.roleSpec(); } } break; @@ -29081,7 +29082,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5282; this.match(PostgreSqlParser.KW_TO); this.state = 5283; - this.colid(); + this.colId(); } } break; @@ -29133,9 +29134,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createsubscriptionstmt(): CreatesubscriptionstmtContext { - let localContext = new CreatesubscriptionstmtContext(this.context, this.state); - this.enterRule(localContext, 454, PostgreSqlParser.RULE_createsubscriptionstmt); + public createSubscriptionStmt(): CreateSubscriptionStmtContext { + let localContext = new CreateSubscriptionStmtContext(this.context, this.state); + this.enterRule(localContext, 454, PostgreSqlParser.RULE_createSubscriptionStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -29145,16 +29146,16 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5296; this.match(PostgreSqlParser.KW_SUBSCRIPTION); this.state = 5297; - this.colid(); + this.colId(); this.state = 5298; this.match(PostgreSqlParser.KW_CONNECTION); this.state = 5299; - this.sconst(); + this.stringConst(); this.state = 5300; this.match(PostgreSqlParser.KW_PUBLICATION); { this.state = 5301; - this.collabel(); + this.colLabel(); this.state = 5306; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -29164,7 +29165,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5302; this.match(PostgreSqlParser.COMMA); this.state = 5303; - this.collabel(); + this.colLabel(); } } this.state = 5308; @@ -29198,9 +29199,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public altersubscriptionstmt(): AltersubscriptionstmtContext { - let localContext = new AltersubscriptionstmtContext(this.context, this.state); - this.enterRule(localContext, 456, PostgreSqlParser.RULE_altersubscriptionstmt); + public alterSubscriptionStmt(): AlterSubscriptionStmtContext { + let localContext = new AlterSubscriptionStmtContext(this.context, this.state); + this.enterRule(localContext, 456, PostgreSqlParser.RULE_alterSubscriptionStmt); let _la: number; try { this.state = 5368; @@ -29214,7 +29215,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5313; this.match(PostgreSqlParser.KW_SUBSCRIPTION); this.state = 5314; - this.colid(); + this.colId(); this.state = 5315; this.match(PostgreSqlParser.KW_SET); this.state = 5316; @@ -29229,11 +29230,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5319; this.match(PostgreSqlParser.KW_SUBSCRIPTION); this.state = 5320; - this.colid(); + this.colId(); this.state = 5321; this.match(PostgreSqlParser.KW_CONNECTION); this.state = 5322; - this.sconst(); + this.stringConst(); } break; case 3: @@ -29244,7 +29245,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5325; this.match(PostgreSqlParser.KW_SUBSCRIPTION); this.state = 5326; - this.colid(); + this.colId(); this.state = 5327; this.match(PostgreSqlParser.KW_REFRESH); this.state = 5328; @@ -29269,7 +29270,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5333; this.match(PostgreSqlParser.KW_SUBSCRIPTION); this.state = 5334; - this.colid(); + this.colId(); this.state = 5335; _la = this.tokenStream.LA(1); if(!(_la === 133 || _la === 191 || _la === 333)) { @@ -29283,7 +29284,7 @@ export class PostgreSqlParser extends SQLParserBase { this.match(PostgreSqlParser.KW_PUBLICATION); { this.state = 5337; - this.collabel(); + this.colLabel(); this.state = 5342; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -29293,7 +29294,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5338; this.match(PostgreSqlParser.COMMA); this.state = 5339; - this.collabel(); + this.colLabel(); } } this.state = 5344; @@ -29321,7 +29322,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5349; this.match(PostgreSqlParser.KW_SUBSCRIPTION); this.state = 5350; - this.colid(); + this.colId(); this.state = 5351; _la = this.tokenStream.LA(1); if(!(_la === 186 || _la === 193)) { @@ -29341,13 +29342,13 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5354; this.match(PostgreSqlParser.KW_SUBSCRIPTION); this.state = 5355; - this.colid(); + this.colId(); this.state = 5356; this.match(PostgreSqlParser.KW_SKIP); this.state = 5357; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 5358; - this.old_aggr_elem(); + this.old_aggregate_elem(); this.state = 5359; this.match(PostgreSqlParser.CLOSE_PAREN); } @@ -29360,13 +29361,13 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5362; this.match(PostgreSqlParser.KW_SUBSCRIPTION); this.state = 5363; - this.colid(); + this.colId(); this.state = 5364; this.match(PostgreSqlParser.KW_OWNER); this.state = 5365; this.match(PostgreSqlParser.KW_TO); this.state = 5366; - this.rolespec(); + this.roleSpec(); } break; } @@ -29385,9 +29386,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public rulestmt(): RulestmtContext { - let localContext = new RulestmtContext(this.context, this.state); - this.enterRule(localContext, 458, PostgreSqlParser.RULE_rulestmt); + public ruleStmt(): RuleStmtContext { + let localContext = new RuleStmtContext(this.context, this.state); + this.enterRule(localContext, 458, PostgreSqlParser.RULE_ruleStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -29407,7 +29408,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5374; this.match(PostgreSqlParser.KW_RULE); this.state = 5375; - this.colid(); + this.colId(); this.state = 5376; this.match(PostgreSqlParser.KW_AS); this.state = 5377; @@ -29466,7 +29467,7 @@ export class PostgreSqlParser extends SQLParserBase { case 2: { this.state = 5389; - this.ruleactionstmt(); + this.ruleActionStmt(); } break; case 3: @@ -29480,7 +29481,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 2 || ((((_la - 88)) & ~0x1F) === 0 && ((1 << (_la - 88)) & 131089) !== 0) || _la === 182 || _la === 241 || _la === 271 || _la === 369 || _la === 422) { { this.state = 5391; - this.ruleactionstmt(); + this.ruleActionStmt(); } } @@ -29498,7 +29499,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 2 || ((((_la - 88)) & ~0x1F) === 0 && ((1 << (_la - 88)) & 131089) !== 0) || _la === 182 || _la === 241 || _la === 271 || _la === 369 || _la === 422) { { this.state = 5395; - this.ruleactionstmt(); + this.ruleActionStmt(); } } @@ -29530,9 +29531,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public ruleactionstmt(): RuleactionstmtContext { - let localContext = new RuleactionstmtContext(this.context, this.state); - this.enterRule(localContext, 460, PostgreSqlParser.RULE_ruleactionstmt); + public ruleActionStmt(): RuleActionStmtContext { + let localContext = new RuleActionStmtContext(this.context, this.state); + this.enterRule(localContext, 460, PostgreSqlParser.RULE_ruleActionStmt); try { this.state = 5411; this.errorHandler.sync(this); @@ -29541,35 +29542,35 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 5406; - this.selectstmt(); + this.selectStmt(); } break; case 2: this.enterOuterAlt(localContext, 2); { this.state = 5407; - this.insertstmt(); + this.insertStmt(); } break; case 3: this.enterOuterAlt(localContext, 3); { this.state = 5408; - this.updatestmt(); + this.updateStmt(); } break; case 4: this.enterOuterAlt(localContext, 4); { this.state = 5409; - this.deletestmt(); + this.deleteStmt(); } break; case 5: this.enterOuterAlt(localContext, 5); { this.state = 5410; - this.notifystmt(); + this.notifyStmt(); } break; } @@ -29588,9 +29589,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public notifystmt(): NotifystmtContext { - let localContext = new NotifystmtContext(this.context, this.state); - this.enterRule(localContext, 462, PostgreSqlParser.RULE_notifystmt); + public notifyStmt(): NotifyStmtContext { + let localContext = new NotifyStmtContext(this.context, this.state); + this.enterRule(localContext, 462, PostgreSqlParser.RULE_notifyStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -29598,7 +29599,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5413; this.match(PostgreSqlParser.KW_NOTIFY); this.state = 5414; - this.colid(); + this.colId(); this.state = 5416; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -29634,7 +29635,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5418; this.match(PostgreSqlParser.COMMA); this.state = 5419; - this.sconst(); + this.stringConst(); } } catch (re) { @@ -29651,16 +29652,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public listenstmt(): ListenstmtContext { - let localContext = new ListenstmtContext(this.context, this.state); - this.enterRule(localContext, 466, PostgreSqlParser.RULE_listenstmt); + public listenStmt(): ListenStmtContext { + let localContext = new ListenStmtContext(this.context, this.state); + this.enterRule(localContext, 466, PostgreSqlParser.RULE_listenStmt); try { this.enterOuterAlt(localContext, 1); { this.state = 5421; this.match(PostgreSqlParser.KW_LISTEN); this.state = 5422; - this.colid(); + this.colId(); } } catch (re) { @@ -29677,9 +29678,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public unlistenstmt(): UnlistenstmtContext { - let localContext = new UnlistenstmtContext(this.context, this.state); - this.enterRule(localContext, 468, PostgreSqlParser.RULE_unlistenstmt); + public unListenStmt(): UnListenStmtContext { + let localContext = new UnListenStmtContext(this.context, this.state); + this.enterRule(localContext, 468, PostgreSqlParser.RULE_unListenStmt); try { this.enterOuterAlt(localContext, 1); { @@ -30084,7 +30085,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 5425; - this.colid(); + this.colId(); } break; case PostgreSqlParser.STAR: @@ -30112,9 +30113,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public transactionstmt(): TransactionstmtContext { - let localContext = new TransactionstmtContext(this.context, this.state); - this.enterRule(localContext, 470, PostgreSqlParser.RULE_transactionstmt); + public transactionStmt(): TransactionStmtContext { + let localContext = new TransactionStmtContext(this.context, this.state); + this.enterRule(localContext, 470, PostgreSqlParser.RULE_transactionStmt); let _la: number; try { this.state = 5474; @@ -30172,7 +30173,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5441; this.match(PostgreSqlParser.KW_SAVEPOINT); this.state = 5442; - this.colid(); + this.colId(); } break; case 4: @@ -30191,7 +30192,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 5447; - this.colid(); + this.colId(); } break; case 5: @@ -30202,7 +30203,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5449; this.match(PostgreSqlParser.KW_TRANSACTION); this.state = 5450; - this.sconst(); + this.stringConst(); } break; case 6: @@ -30220,7 +30221,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5452; this.match(PostgreSqlParser.KW_PREPARED); this.state = 5453; - this.sconst(); + this.stringConst(); } break; case 7: @@ -30297,7 +30298,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 5473; - this.colid(); + this.colId(); } break; } @@ -30471,9 +30472,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public viewstmt(): ViewstmtContext { - let localContext = new ViewstmtContext(this.context, this.state); - this.enterRule(localContext, 478, PostgreSqlParser.RULE_viewstmt); + public viewStmt(): ViewStmtContext { + let localContext = new ViewStmtContext(this.context, this.state); + this.enterRule(localContext, 478, PostgreSqlParser.RULE_viewStmt); let _la: number; try { localContext = new CreateViewContext(localContext); @@ -30499,7 +30500,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 213 || _la === 254 || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 32773) !== 0)) { { this.state = 5504; - this.opttemp(); + this.optTemp(); } } @@ -30528,7 +30529,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 105) { { this.state = 5512; - this.opt_reloptions(); + this.optRelOptions(); } } @@ -30550,7 +30551,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 105) { { this.state = 5519; - this.opt_reloptions(); + this.optRelOptions(); } } @@ -30562,7 +30563,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5524; this.match(PostgreSqlParser.KW_AS); this.state = 5525; - this.selectstmt(); + this.selectStmt(); this.state = 5532; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 690, this.context) ) { @@ -30610,16 +30611,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public loadstmt(): LoadstmtContext { - let localContext = new LoadstmtContext(this.context, this.state); - this.enterRule(localContext, 480, PostgreSqlParser.RULE_loadstmt); + public loadStmt(): LoadStmtContext { + let localContext = new LoadStmtContext(this.context, this.state); + this.enterRule(localContext, 480, PostgreSqlParser.RULE_loadStmt); try { this.enterOuterAlt(localContext, 1); { this.state = 5534; this.match(PostgreSqlParser.KW_LOAD); this.state = 5535; - this.sconst(); + this.stringConst(); } } catch (re) { @@ -30636,9 +30637,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createdbstmt(): CreatedbstmtContext { - let localContext = new CreatedbstmtContext(this.context, this.state); - this.enterRule(localContext, 482, PostgreSqlParser.RULE_createdbstmt); + public createDbStmt(): CreateDbStmtContext { + let localContext = new CreateDbStmtContext(this.context, this.state); + this.enterRule(localContext, 482, PostgreSqlParser.RULE_createDbStmt); try { let alternative: number; localContext = new CreateDatabaseContext(localContext); @@ -30674,7 +30675,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 5543; - this.createdb_opt_item(); + this.create_db_opt_item(); } } break; @@ -30704,9 +30705,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createdb_opt_item(): Createdb_opt_itemContext { - let localContext = new Createdb_opt_itemContext(this.context, this.state); - this.enterRule(localContext, 484, PostgreSqlParser.RULE_createdb_opt_item); + public create_db_opt_item(): Create_db_opt_itemContext { + let localContext = new Create_db_opt_itemContext(this.context, this.state); + this.enterRule(localContext, 484, PostgreSqlParser.RULE_create_db_opt_item); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -30775,7 +30776,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 5563; - this.signediconst(); + this.signedConst(); } break; case 2: @@ -30807,9 +30808,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterdatabasestmt(): AlterdatabasestmtContext { - let localContext = new AlterdatabasestmtContext(this.context, this.state); - this.enterRule(localContext, 486, PostgreSqlParser.RULE_alterdatabasestmt); + public alterDatabaseStmt(): AlterDatabaseStmtContext { + let localContext = new AlterDatabaseStmtContext(this.context, this.state); + this.enterRule(localContext, 486, PostgreSqlParser.RULE_alterDatabaseStmt); let _la: number; try { let alternative: number; @@ -30868,7 +30869,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 5579; - this.createdb_opt_item(); + this.create_db_opt_item(); } } break; @@ -30901,9 +30902,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterdatabasesetstmt(): AlterdatabasesetstmtContext { - let localContext = new AlterdatabasesetstmtContext(this.context, this.state); - this.enterRule(localContext, 488, PostgreSqlParser.RULE_alterdatabasesetstmt); + public alterDatabaseSetStmt(): AlterDatabaseSetStmtContext { + let localContext = new AlterDatabaseSetStmtContext(this.context, this.state); + this.enterRule(localContext, 488, PostgreSqlParser.RULE_alterDatabaseSetStmt); try { this.enterOuterAlt(localContext, 1); { @@ -30919,7 +30920,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 5591; - this.setresetclause(); + this.setOrResetClause(); } break; } @@ -30939,9 +30940,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public altercollationstmt(): AltercollationstmtContext { - let localContext = new AltercollationstmtContext(this.context, this.state); - this.enterRule(localContext, 490, PostgreSqlParser.RULE_altercollationstmt); + public alterCollationStmt(): AlterCollationStmtContext { + let localContext = new AlterCollationStmtContext(this.context, this.state); + this.enterRule(localContext, 490, PostgreSqlParser.RULE_alterCollationStmt); try { this.enterOuterAlt(localContext, 1); { @@ -30971,9 +30972,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public altersystemstmt(): AltersystemstmtContext { - let localContext = new AltersystemstmtContext(this.context, this.state); - this.enterRule(localContext, 492, PostgreSqlParser.RULE_altersystemstmt); + public alterSystemStmt(): AlterSystemStmtContext { + let localContext = new AlterSystemStmtContext(this.context, this.state); + this.enterRule(localContext, 492, PostgreSqlParser.RULE_alterSystemStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -31009,9 +31010,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createdomainstmt(): CreatedomainstmtContext { - let localContext = new CreatedomainstmtContext(this.context, this.state); - this.enterRule(localContext, 494, PostgreSqlParser.RULE_createdomainstmt); + public createDomainStmt(): CreateDomainStmtContext { + let localContext = new CreateDomainStmtContext(this.context, this.state); + this.enterRule(localContext, 494, PostgreSqlParser.RULE_createDomainStmt); let _la: number; try { let alternative: number; @@ -31043,7 +31044,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 5612; - this.colconstraint(); + this.colConstraint(); } } } @@ -31067,9 +31068,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alterdomainstmt(): AlterdomainstmtContext { - let localContext = new AlterdomainstmtContext(this.context, this.state); - this.enterRule(localContext, 496, PostgreSqlParser.RULE_alterdomainstmt); + public alterDomainStmt(): AlterDomainStmtContext { + let localContext = new AlterDomainStmtContext(this.context, this.state); + this.enterRule(localContext, 496, PostgreSqlParser.RULE_alterDomainStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -31118,12 +31119,12 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5626; this.match(PostgreSqlParser.KW_CONSTRAINT); this.state = 5627; - this.colid(); + this.colId(); } } this.state = 5630; - this.constraintelem(); + this.constraintElem(); } break; case 4: @@ -31143,7 +31144,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 5636; - this.colid(); + this.colId(); this.state = 5638; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 707, this.context) ) { @@ -31163,7 +31164,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5641; this.match(PostgreSqlParser.KW_CONSTRAINT); this.state = 5642; - this.colid(); + this.colId(); } break; } @@ -31183,9 +31184,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public altertsdictionarystmt(): AltertsdictionarystmtContext { - let localContext = new AltertsdictionarystmtContext(this.context, this.state); - this.enterRule(localContext, 498, PostgreSqlParser.RULE_altertsdictionarystmt); + public alterSearchDictionaryStmt(): AlterSearchDictionaryStmtContext { + let localContext = new AlterSearchDictionaryStmtContext(this.context, this.state); + this.enterRule(localContext, 498, PostgreSqlParser.RULE_alterSearchDictionaryStmt); try { this.enterOuterAlt(localContext, 1); { @@ -31217,9 +31218,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public altertsconfigurationstmt(): AltertsconfigurationstmtContext { - let localContext = new AltertsconfigurationstmtContext(this.context, this.state); - this.enterRule(localContext, 500, PostgreSqlParser.RULE_altertsconfigurationstmt); + public alterSearchConfigurationStmt(): AlterSearchConfigurationStmtContext { + let localContext = new AlterSearchConfigurationStmtContext(this.context, this.state); + this.enterRule(localContext, 500, PostgreSqlParser.RULE_alterSearchConfigurationStmt); let _la: number; try { this.state = 5693; @@ -31347,9 +31348,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public createconversionstmt(): CreateconversionstmtContext { - let localContext = new CreateconversionstmtContext(this.context, this.state); - this.enterRule(localContext, 502, PostgreSqlParser.RULE_createconversionstmt); + public createConversionStmt(): CreateConversionStmtContext { + let localContext = new CreateConversionStmtContext(this.context, this.state); + this.enterRule(localContext, 502, PostgreSqlParser.RULE_createConversionStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -31373,11 +31374,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5701; this.match(PostgreSqlParser.KW_FOR); this.state = 5702; - this.sconst(); + this.stringConst(); this.state = 5703; this.match(PostgreSqlParser.KW_TO); this.state = 5704; - this.sconst(); + this.stringConst(); this.state = 5705; this.match(PostgreSqlParser.KW_FROM); this.state = 5706; @@ -31398,9 +31399,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public clusterstmt(): ClusterstmtContext { - let localContext = new ClusterstmtContext(this.context, this.state); - this.enterRule(localContext, 504, PostgreSqlParser.RULE_clusterstmt); + public clusterStmt(): ClusterStmtContext { + let localContext = new ClusterStmtContext(this.context, this.state); + this.enterRule(localContext, 504, PostgreSqlParser.RULE_clusterStmt); let _la: number; try { this.state = 5733; @@ -31500,9 +31501,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public vacuumstmt(): VacuumstmtContext { - let localContext = new VacuumstmtContext(this.context, this.state); - this.enterRule(localContext, 506, PostgreSqlParser.RULE_vacuumstmt); + public vacuumStmt(): VacuumStmtContext { + let localContext = new VacuumStmtContext(this.context, this.state); + this.enterRule(localContext, 506, PostgreSqlParser.RULE_vacuumStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -31599,9 +31600,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public analyzestmt(): AnalyzestmtContext { - let localContext = new AnalyzestmtContext(this.context, this.state); - this.enterRule(localContext, 508, PostgreSqlParser.RULE_analyzestmt); + public analyzeStmt(): AnalyzeStmtContext { + let localContext = new AnalyzeStmtContext(this.context, this.state); + this.enterRule(localContext, 508, PostgreSqlParser.RULE_analyzeStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -32136,7 +32137,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 5778; - this.nonreservedword(); + this.nonReservedWord(); } break; case PostgreSqlParser.KW_ANALYSE: @@ -32581,7 +32582,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.Numeric: { this.state = 5783; - this.numericonly(); + this.numericOnly(); } break; case PostgreSqlParser.CLOSE_PAREN: @@ -32660,7 +32661,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.Numeric: { this.state = 5791; - this.numericonly(); + this.numericOnly(); } break; case PostgreSqlParser.StringConstant: @@ -32669,7 +32670,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 5792; - this.sconst(); + this.stringConst(); } break; default: @@ -32812,9 +32813,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public explainstmt(): ExplainstmtContext { - let localContext = new ExplainstmtContext(this.context, this.state); - this.enterRule(localContext, 522, PostgreSqlParser.RULE_explainstmt); + public explainStmt(): ExplainStmtContext { + let localContext = new ExplainStmtContext(this.context, this.state); + this.enterRule(localContext, 522, PostgreSqlParser.RULE_explainStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -32870,7 +32871,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 5826; - this.explainablestmt(); + this.explainableStmt(); } } catch (re) { @@ -32887,9 +32888,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public explainablestmt(): ExplainablestmtContext { - let localContext = new ExplainablestmtContext(this.context, this.state); - this.enterRule(localContext, 524, PostgreSqlParser.RULE_explainablestmt); + public explainableStmt(): ExplainableStmtContext { + let localContext = new ExplainableStmtContext(this.context, this.state); + this.enterRule(localContext, 524, PostgreSqlParser.RULE_explainableStmt); try { this.state = 5837; this.errorHandler.sync(this); @@ -32898,63 +32899,63 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 5828; - this.selectstmt(); + this.selectStmt(); } break; case 2: this.enterOuterAlt(localContext, 2); { this.state = 5829; - this.insertstmt(); + this.insertStmt(); } break; case 3: this.enterOuterAlt(localContext, 3); { this.state = 5830; - this.updatestmt(); + this.updateStmt(); } break; case 4: this.enterOuterAlt(localContext, 4); { this.state = 5831; - this.deletestmt(); + this.deleteStmt(); } break; case 5: this.enterOuterAlt(localContext, 5); { this.state = 5832; - this.declarecursorstmt(); + this.declareCursorStmt(); } break; case 6: this.enterOuterAlt(localContext, 6); { this.state = 5833; - this.createasstmt(); + this.createAsStmt(); } break; case 7: this.enterOuterAlt(localContext, 7); { this.state = 5834; - this.creatematviewstmt(); + this.createMaterializedViewStmt(); } break; case 8: this.enterOuterAlt(localContext, 8); { this.state = 5835; - this.refreshmatviewstmt(); + this.refreshMaterializedViewStmt(); } break; case 9: this.enterOuterAlt(localContext, 9); { this.state = 5836; - this.executestmt(); + this.executeStmt(); } break; } @@ -33018,9 +33019,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public preparestmt(): PreparestmtContext { - let localContext = new PreparestmtContext(this.context, this.state); - this.enterRule(localContext, 528, PostgreSqlParser.RULE_preparestmt); + public prepareStmt(): PrepareStmtContext { + let localContext = new PrepareStmtContext(this.context, this.state); + this.enterRule(localContext, 528, PostgreSqlParser.RULE_prepareStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -33028,7 +33029,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5850; this.match(PostgreSqlParser.KW_PREPARE); this.state = 5851; - this.colid(); + this.colId(); this.state = 5853; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -33042,7 +33043,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5855; this.match(PostgreSqlParser.KW_AS); this.state = 5856; - this.preparablestmt(); + this.preParableStmt(); } } catch (re) { @@ -33104,9 +33105,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public preparablestmt(): PreparablestmtContext { - let localContext = new PreparablestmtContext(this.context, this.state); - this.enterRule(localContext, 532, PostgreSqlParser.RULE_preparablestmt); + public preParableStmt(): PreParableStmtContext { + let localContext = new PreParableStmtContext(this.context, this.state); + this.enterRule(localContext, 532, PostgreSqlParser.RULE_preParableStmt); try { this.state = 5874; this.errorHandler.sync(this); @@ -33115,35 +33116,35 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 5869; - this.selectstmt(); + this.selectStmt(); } break; case 2: this.enterOuterAlt(localContext, 2); { this.state = 5870; - this.insertstmt(); + this.insertStmt(); } break; case 3: this.enterOuterAlt(localContext, 3); { this.state = 5871; - this.updatestmt(); + this.updateStmt(); } break; case 4: this.enterOuterAlt(localContext, 4); { this.state = 5872; - this.deletestmt(); + this.deleteStmt(); } break; case 5: this.enterOuterAlt(localContext, 5); { this.state = 5873; - this.mergestmt(); + this.mergeStmt(); } break; } @@ -33162,9 +33163,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public executestmt(): ExecutestmtContext { - let localContext = new ExecutestmtContext(this.context, this.state); - this.enterRule(localContext, 534, PostgreSqlParser.RULE_executestmt); + public executeStmt(): ExecuteStmtContext { + let localContext = new ExecuteStmtContext(this.context, this.state); + this.enterRule(localContext, 534, PostgreSqlParser.RULE_executeStmt); let _la: number; try { this.state = 5899; @@ -33176,7 +33177,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5876; this.match(PostgreSqlParser.KW_EXECUTE); this.state = 5877; - this.colid(); + this.colId(); this.state = 5879; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 747, this.context) ) { @@ -33200,7 +33201,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 213 || _la === 254 || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 32773) !== 0)) { { this.state = 5882; - this.opttemp(); + this.optTemp(); } } @@ -33223,7 +33224,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5891; this.match(PostgreSqlParser.KW_EXECUTE); this.state = 5892; - this.colid(); + this.colId(); this.state = 5894; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 750, this.context) ) { @@ -33292,9 +33293,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public deallocatestmt(): DeallocatestmtContext { - let localContext = new DeallocatestmtContext(this.context, this.state); - this.enterRule(localContext, 538, PostgreSqlParser.RULE_deallocatestmt); + public dealLocateStmt(): DealLocateStmtContext { + let localContext = new DealLocateStmtContext(this.context, this.state); + this.enterRule(localContext, 538, PostgreSqlParser.RULE_dealLocateStmt); try { this.enterOuterAlt(localContext, 1); { @@ -33709,7 +33710,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 5909; - this.colid(); + this.colId(); } break; case PostgreSqlParser.KW_ALL: @@ -33737,9 +33738,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public insertstmt(): InsertstmtContext { - let localContext = new InsertstmtContext(this.context, this.state); - this.enterRule(localContext, 540, PostgreSqlParser.RULE_insertstmt); + public insertStmt(): InsertStmtContext { + let localContext = new InsertStmtContext(this.context, this.state); + this.enterRule(localContext, 540, PostgreSqlParser.RULE_insertStmt); let _la: number; try { localContext = new InsertStatementContext(localContext); @@ -33769,7 +33770,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5919; this.match(PostgreSqlParser.KW_AS); this.state = 5920; - this.colid(); + this.colId(); } } @@ -33810,7 +33811,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 5931; this.match(PostgreSqlParser.KW_CONSTRAINT); this.state = 5932; - this.colid(); + this.colId(); } break; case PostgreSqlParser.KW_DO: @@ -33935,7 +33936,7 @@ export class PostgreSqlParser extends SQLParserBase { case 2: { this.state = 5962; - this.selectstmt(); + this.selectStmt(); } break; } @@ -34048,9 +34049,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public deletestmt(): DeletestmtContext { - let localContext = new DeletestmtContext(this.context, this.state); - this.enterRule(localContext, 550, PostgreSqlParser.RULE_deletestmt); + public deleteStmt(): DeleteStmtContext { + let localContext = new DeleteStmtContext(this.context, this.state); + this.enterRule(localContext, 550, PostgreSqlParser.RULE_deleteStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -34119,9 +34120,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public lockstmt(): LockstmtContext { - let localContext = new LockstmtContext(this.context, this.state); - this.enterRule(localContext, 552, PostgreSqlParser.RULE_lockstmt); + public lockStmt(): LockStmtContext { + let localContext = new LockStmtContext(this.context, this.state); + this.enterRule(localContext, 552, PostgreSqlParser.RULE_lockStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -34243,9 +34244,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public updatestmt(): UpdatestmtContext { - let localContext = new UpdatestmtContext(this.context, this.state); - this.enterRule(localContext, 554, PostgreSqlParser.RULE_updatestmt); + public updateStmt(): UpdateStmtContext { + let localContext = new UpdateStmtContext(this.context, this.state); + this.enterRule(localContext, 554, PostgreSqlParser.RULE_updateStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -34432,9 +34433,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public declarecursorstmt(): DeclarecursorstmtContext { - let localContext = new DeclarecursorstmtContext(this.context, this.state); - this.enterRule(localContext, 560, PostgreSqlParser.RULE_declarecursorstmt); + public declareCursorStmt(): DeclareCursorStmtContext { + let localContext = new DeclareCursorStmtContext(this.context, this.state); + this.enterRule(localContext, 560, PostgreSqlParser.RULE_declareCursorStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -34442,7 +34443,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6063; this.match(PostgreSqlParser.KW_DECLARE); this.state = 6064; - this.colid(); + this.colId(); { this.state = 6073; this.errorHandler.sync(this); @@ -34516,7 +34517,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6081; this.match(PostgreSqlParser.KW_FOR); this.state = 6082; - this.selectstmt(); + this.selectStmt(); } } catch (re) { @@ -34533,9 +34534,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public selectstmt(): SelectstmtContext { - let localContext = new SelectstmtContext(this.context, this.state); - this.enterRule(localContext, 562, PostgreSqlParser.RULE_selectstmt); + public selectStmt(): SelectStmtContext { + let localContext = new SelectStmtContext(this.context, this.state); + this.enterRule(localContext, 562, PostgreSqlParser.RULE_selectStmt); try { this.state = 6086; this.errorHandler.sync(this); @@ -34995,7 +34996,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 6166; - this.colid(); + this.colId(); this.state = 6168; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -35031,7 +35032,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6177; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 6178; - this.preparablestmt(); + this.preParableStmt(); this.state = 6179; this.match(PostgreSqlParser.CLOSE_PAREN); this.state = 6181; @@ -35040,7 +35041,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 6180; - this.search_cluase(); + this.search_clause(); } break; } @@ -35050,7 +35051,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 6183; - this.cycle_cluase(); + this.cycle_clause(); } break; } @@ -35070,9 +35071,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public search_cluase(): Search_cluaseContext { - let localContext = new Search_cluaseContext(this.context, this.state); - this.enterRule(localContext, 578, PostgreSqlParser.RULE_search_cluase); + public search_clause(): Search_clauseContext { + let localContext = new Search_clauseContext(this.context, this.state); + this.enterRule(localContext, 578, PostgreSqlParser.RULE_search_clause); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -35114,9 +35115,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public cycle_cluase(): Cycle_cluaseContext { - let localContext = new Cycle_cluaseContext(this.context, this.state); - this.enterRule(localContext, 580, PostgreSqlParser.RULE_cycle_cluase); + public cycle_clause(): Cycle_clauseContext { + let localContext = new Cycle_clauseContext(this.context, this.state); + this.enterRule(localContext, 580, PostgreSqlParser.RULE_cycle_clause); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -35137,11 +35138,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6198; this.match(PostgreSqlParser.KW_TO); this.state = 6199; - this.colid(); + this.colId(); this.state = 6200; this.match(PostgreSqlParser.KW_DEFAULT); this.state = 6201; - this.colid(); + this.colId(); } } @@ -35189,7 +35190,7 @@ export class PostgreSqlParser extends SQLParserBase { break; } this.state = 6212; - this.opttempTableName(); + this.optTempTableName(); } break; case 2: @@ -35215,9 +35216,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opttempTableName(): OpttempTableNameContext { - let localContext = new OpttempTableNameContext(this.context, this.state); - this.enterRule(localContext, 584, PostgreSqlParser.RULE_opttempTableName); + public optTempTableName(): OptTempTableNameContext { + let localContext = new OptTempTableNameContext(this.context, this.state); + this.enterRule(localContext, 584, PostgreSqlParser.RULE_optTempTableName); let _la: number; try { this.state = 6231; @@ -35357,7 +35358,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6239; this.match(PostgreSqlParser.KW_BY); this.state = 6240; - this.sortby(); + this.sortBy(); this.state = 6245; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -35367,7 +35368,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6241; this.match(PostgreSqlParser.COMMA); this.state = 6242; - this.sortby(); + this.sortBy(); } } this.state = 6247; @@ -35390,15 +35391,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public sortby(): SortbyContext { - let localContext = new SortbyContext(this.context, this.state); - this.enterRule(localContext, 590, PostgreSqlParser.RULE_sortby); + public sortBy(): SortByContext { + let localContext = new SortByContext(this.context, this.state); + this.enterRule(localContext, 590, PostgreSqlParser.RULE_sortBy); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 6248; - this.column_expr_noparen(); + this.column_expr_no_paren(); this.state = 6252; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 822, this.context) ) { @@ -36312,7 +36313,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 6318; - this.column_expr_noparen(); + this.column_expr_no_paren(); } break; case 2: @@ -36348,7 +36349,7 @@ export class PostgreSqlParser extends SQLParserBase { this.match(PostgreSqlParser.OPEN_PAREN); { this.state = 6325; - this.column_expr_noparen(); + this.column_expr_no_paren(); this.state = 6330; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -36358,7 +36359,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6326; this.match(PostgreSqlParser.COMMA); this.state = 6327; - this.column_expr_noparen(); + this.column_expr_no_paren(); } } this.state = 6332; @@ -36726,7 +36727,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 472) { { this.state = 6412; - this.tablesample_clause(); + this.tableSampleClause(); } } @@ -36750,7 +36751,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 6418; - this.xmltable(); + this.xmlTable(); this.state = 6420; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 856, this.context) ) { @@ -36987,7 +36988,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 6482; - localContext._alias = this.colid(); + localContext._alias = this.colId(); this.state = 6487; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 870, this.context) ) { @@ -37049,7 +37050,7 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { this.state = 6491; - localContext._alias = this.colid(); + localContext._alias = this.colId(); } } @@ -37451,7 +37452,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 6494; - localContext._alias = this.colid(); + localContext._alias = this.colId(); } break; default: @@ -37460,7 +37461,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6497; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 6498; - this.tablefuncelementlist(); + this.tableFuncElementList(); this.state = 6499; this.match(PostgreSqlParser.CLOSE_PAREN); } @@ -39403,7 +39404,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 6568; - this.colid(); + this.colId(); } break; } @@ -39423,9 +39424,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public tablesample_clause(): Tablesample_clauseContext { - let localContext = new Tablesample_clauseContext(this.context, this.state); - this.enterRule(localContext, 634, PostgreSqlParser.RULE_tablesample_clause); + public tableSampleClause(): TableSampleClauseContext { + let localContext = new TableSampleClauseContext(this.context, this.state); + this.enterRule(localContext, 634, PostgreSqlParser.RULE_tableSampleClause); try { this.enterOuterAlt(localContext, 1); { @@ -39493,7 +39494,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6584; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 6585; - this.rowsfrom_item(); + this.rowsFromItem(); this.state = 6590; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -39503,7 +39504,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6586; this.match(PostgreSqlParser.COMMA); this.state = 6587; - this.rowsfrom_item(); + this.rowsFromItem(); } } this.state = 6592; @@ -39544,9 +39545,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public rowsfrom_item(): Rowsfrom_itemContext { - let localContext = new Rowsfrom_itemContext(this.context, this.state); - this.enterRule(localContext, 638, PostgreSqlParser.RULE_rowsfrom_item); + public rowsFromItem(): RowsFromItemContext { + let localContext = new RowsFromItemContext(this.context, this.state); + this.enterRule(localContext, 638, PostgreSqlParser.RULE_rowsFromItem); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -39563,7 +39564,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6603; this.match(PostgreSqlParser.OPEN_PAREN); this.state = 6604; - this.tablefuncelementlist(); + this.tableFuncElementList(); this.state = 6605; this.match(PostgreSqlParser.CLOSE_PAREN); } @@ -39594,7 +39595,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6609; this.match(PostgreSqlParser.KW_WHERE); this.state = 6610; - this.column_expr_noparen(); + this.column_expr_no_paren(); } } catch (re) { @@ -39629,7 +39630,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6614; this.match(PostgreSqlParser.KW_OF); this.state = 6615; - this.colid(); + this.colId(); } break; case 2: @@ -39655,15 +39656,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public tablefuncelementlist(): TablefuncelementlistContext { - let localContext = new TablefuncelementlistContext(this.context, this.state); - this.enterRule(localContext, 644, PostgreSqlParser.RULE_tablefuncelementlist); + public tableFuncElementList(): TableFuncElementListContext { + let localContext = new TableFuncElementListContext(this.context, this.state); + this.enterRule(localContext, 644, PostgreSqlParser.RULE_tableFuncElementList); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 6619; - this.tablefuncelement(); + this.tableFuncElement(); this.state = 6624; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -39673,7 +39674,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6620; this.match(PostgreSqlParser.COMMA); this.state = 6621; - this.tablefuncelement(); + this.tableFuncElement(); } } this.state = 6626; @@ -39696,15 +39697,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public tablefuncelement(): TablefuncelementContext { - let localContext = new TablefuncelementContext(this.context, this.state); - this.enterRule(localContext, 646, PostgreSqlParser.RULE_tablefuncelement); + public tableFuncElement(): TableFuncElementContext { + let localContext = new TableFuncElementContext(this.context, this.state); + this.enterRule(localContext, 646, PostgreSqlParser.RULE_tableFuncElement); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 6627; - this.colid(); + this.colId(); this.state = 6628; this.typename(); this.state = 6630; @@ -39733,9 +39734,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public xmltable(): XmltableContext { - let localContext = new XmltableContext(this.context, this.state); - this.enterRule(localContext, 648, PostgreSqlParser.RULE_xmltable); + public xmlTable(): XmlTableContext { + let localContext = new XmlTableContext(this.context, this.state); + this.enterRule(localContext, 648, PostgreSqlParser.RULE_xmlTable); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -39782,11 +39783,11 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6649; this.primaryExpression(0); this.state = 6650; - this.xmlexists_argument(); + this.xmlExistsArgument(); this.state = 6651; this.match(PostgreSqlParser.KW_COLUMNS); this.state = 6652; - this.xmltable_column_el(); + this.xmlTableColumnEl(); this.state = 6657; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -39796,7 +39797,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6653; this.match(PostgreSqlParser.COMMA); this.state = 6654; - this.xmltable_column_el(); + this.xmlTableColumnEl(); } } this.state = 6659; @@ -39822,15 +39823,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public xmltable_column_el(): Xmltable_column_elContext { - let localContext = new Xmltable_column_elContext(this.context, this.state); - this.enterRule(localContext, 650, PostgreSqlParser.RULE_xmltable_column_el); + public xmlTableColumnEl(): XmlTableColumnElContext { + let localContext = new XmlTableColumnElContext(this.context, this.state); + this.enterRule(localContext, 650, PostgreSqlParser.RULE_xmlTableColumnEl); let _la: number; try { this.enterOuterAlt(localContext, 1); { this.state = 6662; - this.colid(); + this.colId(); this.state = 6681; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { @@ -40701,7 +40702,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6684; this.match(PostgreSqlParser.KW_AS); this.state = 6685; - this.collabel(); + this.colLabel(); } break; case 2: @@ -40752,7 +40753,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 6694; - this.simpletypename(); + this.simpleTypeName(); this.state = 6711; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 909, this.context) ) { @@ -40847,9 +40848,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public simpletypename(): SimpletypenameContext { - let localContext = new SimpletypenameContext(this.context, this.state); - this.enterRule(localContext, 656, PostgreSqlParser.RULE_simpletypename); + public simpleTypeName(): SimpleTypeNameContext { + let localContext = new SimpleTypeNameContext(this.context, this.state); + this.enterRule(localContext, 656, PostgreSqlParser.RULE_simpleTypeName); try { this.state = 6734; this.errorHandler.sync(this); @@ -40885,7 +40886,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { this.state = 6726; - this.consttypename(); + this.constTypeName(); } break; case 3: @@ -40935,9 +40936,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public consttypename(): ConsttypenameContext { - let localContext = new ConsttypenameContext(this.context, this.state); - this.enterRule(localContext, 658, PostgreSqlParser.RULE_consttypename); + public constTypeName(): ConstTypeNameContext { + let localContext = new ConstTypeNameContext(this.context, this.state); + this.enterRule(localContext, 658, PostgreSqlParser.RULE_constTypeName); try { this.state = 6740; this.errorHandler.sync(this); @@ -40982,7 +40983,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 4); { this.state = 6739; - this.constdatetime(); + this.constDatetime(); } break; default: @@ -41290,9 +41291,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public constdatetime(): ConstdatetimeContext { - let localContext = new ConstdatetimeContext(this.context, this.state); - this.enterRule(localContext, 668, PostgreSqlParser.RULE_constdatetime); + public constDatetime(): ConstDatetimeContext { + let localContext = new ConstDatetimeContext(this.context, this.state); + this.enterRule(localContext, 668, PostgreSqlParser.RULE_constDatetime); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -42706,7 +42707,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 6969; - this.sconst(); + this.stringConst(); } break; case PostgreSqlParser.OPEN_PAREN: @@ -42728,7 +42729,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6975; this.match(PostgreSqlParser.CLOSE_PAREN); this.state = 6976; - this.sconst(); + this.stringConst(); } break; default: @@ -42744,12 +42745,12 @@ export class PostgreSqlParser extends SQLParserBase { if (_la === 190 || ((((_la - 388)) & ~0x1F) === 0 && ((1 << (_la - 388)) & 3525731551) !== 0) || _la === 423) { { this.state = 6980; - this.consttypename(); + this.constTypeName(); } } this.state = 6983; - this.sconst(); + this.stringConst(); } break; case 11: @@ -42765,7 +42766,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 6985; - this.sconst(); + this.stringConst(); this.state = 6987; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 959, this.context) ) { @@ -42783,7 +42784,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 6989; this.opt_float(); this.state = 6990; - this.sconst(); + this.stringConst(); } break; default: @@ -43664,7 +43665,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 7117; - this.colid(); + this.colId(); } break; default: @@ -44088,7 +44089,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 7225; this.match(PostgreSqlParser.KW_NAME); this.state = 7226; - this.collabel(); + this.colLabel(); this.state = 7236; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -44137,7 +44138,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 7242; this.primaryExpression(0); this.state = 7243; - this.xmlexists_argument(); + this.xmlExistsArgument(); this.state = 7244; this.match(PostgreSqlParser.CLOSE_PAREN); } @@ -44199,7 +44200,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 7263; this.match(PostgreSqlParser.KW_NAME); this.state = 7264; - this.collabel(); + this.colLabel(); this.state = 7267; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -44312,7 +44313,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 7299; this.match(PostgreSqlParser.KW_AS); this.state = 7300; - this.simpletypename(); + this.simpleTypeName(); this.state = 7301; this.match(PostgreSqlParser.CLOSE_PAREN); } @@ -44393,7 +44394,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 7314; this.match(PostgreSqlParser.KW_AS); this.state = 7315; - this.collabel(); + this.colLabel(); } } @@ -44445,9 +44446,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public xmlexists_argument(): Xmlexists_argumentContext { - let localContext = new Xmlexists_argumentContext(this.context, this.state); - this.enterRule(localContext, 700, PostgreSqlParser.RULE_xmlexists_argument); + public xmlExistsArgument(): XmlExistsArgumentContext { + let localContext = new XmlExistsArgumentContext(this.context, this.state); + this.enterRule(localContext, 700, PostgreSqlParser.RULE_xmlExistsArgument); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -44578,7 +44579,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 7340; - this.colid(); + this.colId(); this.state = 7341; this.match(PostgreSqlParser.KW_AS); this.state = 7342; @@ -45012,7 +45013,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 7346; - this.colid(); + this.colId(); } break; default: @@ -45049,7 +45050,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 7350; - this.colid(); + this.colId(); } break; } @@ -45722,9 +45723,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public column_expr_noparen(): Column_expr_noparenContext { - let localContext = new Column_expr_noparenContext(this.context, this.state); - this.enterRule(localContext, 736, PostgreSqlParser.RULE_column_expr_noparen); + public column_expr_no_paren(): Column_expr_no_parenContext { + let localContext = new Column_expr_no_parenContext(this.context, this.state); + this.enterRule(localContext, 736, PostgreSqlParser.RULE_column_expr_no_paren); try { this.state = 7459; this.errorHandler.sync(this); @@ -46432,7 +46433,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 8); { this.state = 7499; - this.sconst(); + this.stringConst(); } break; } @@ -47113,7 +47114,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 7533; - this.collabel(); + this.colLabel(); } break; case PostgreSqlParser.STAR: @@ -47327,7 +47328,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 7570; - this.column_expr_noparen(); + this.column_expr_no_paren(); this.state = 7575; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 1042, this.context) ) { @@ -47336,7 +47337,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 7571; this.match(PostgreSqlParser.KW_AS); this.state = 7572; - this.collabel(); + this.colLabel(); } break; case 2: @@ -47698,7 +47699,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 7624; - this.colid(); + this.colId(); this.state = 7626; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 1048, this.context) ) { @@ -47774,7 +47775,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 7636; - this.colid(); + this.colId(); this.state = 7641; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -47784,7 +47785,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 7637; this.match(PostgreSqlParser.COMMA); this.state = 7638; - this.colid(); + this.colId(); } } this.state = 7643; @@ -47890,7 +47891,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 7650; - this.colid(); + this.colId(); } } catch (re) { @@ -47915,7 +47916,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 7652; - this.colid(); + this.colId(); } } catch (re) { @@ -47952,7 +47953,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { this.state = 7655; - this.colid(); + this.colId(); this.state = 7656; this.indirection(); } @@ -47993,7 +47994,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { this.state = 7661; - this.colid(); + this.colId(); this.state = 7662; this.indirection(); } @@ -48026,7 +48027,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 7666; - this.colid(); + this.colId(); this.state = 7667; this.opt_indirection(); } @@ -48065,7 +48066,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 7672; - this.colid(); + this.colId(); } } catch (re) { @@ -48102,7 +48103,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { this.state = 7675; - this.colid(); + this.colId(); this.state = 7676; this.indirection(); } @@ -48143,7 +48144,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { this.state = 7681; - this.colid(); + this.colId(); this.state = 7682; this.indirection(); } @@ -48164,9 +48165,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public sconst(): SconstContext { - let localContext = new SconstContext(this.context, this.state); - this.enterRule(localContext, 810, PostgreSqlParser.RULE_sconst); + public stringConst(): StringConstContext { + let localContext = new StringConstContext(this.context, this.state); + this.enterRule(localContext, 810, PostgreSqlParser.RULE_stringConst); try { this.enterOuterAlt(localContext, 1); { @@ -48270,9 +48271,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public signediconst(): SignediconstContext { - let localContext = new SignediconstContext(this.context, this.state); - this.enterRule(localContext, 814, PostgreSqlParser.RULE_signediconst); + public signedConst(): SignedConstContext { + let localContext = new SignedConstContext(this.context, this.state); + this.enterRule(localContext, 814, PostgreSqlParser.RULE_signedConst); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -48312,9 +48313,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public rolespec(): RolespecContext { - let localContext = new RolespecContext(this.context, this.state); - this.enterRule(localContext, 816, PostgreSqlParser.RULE_rolespec); + public roleSpec(): RoleSpecContext { + let localContext = new RoleSpecContext(this.context, this.state); + this.enterRule(localContext, 816, PostgreSqlParser.RULE_roleSpec); try { this.state = 7714; this.errorHandler.sync(this); @@ -48323,7 +48324,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 7709; - this.nonreservedword(); + this.nonReservedWord(); } break; case 2: @@ -48378,7 +48379,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 1); { this.state = 7716; - this.rolespec(); + this.roleSpec(); this.state = 7721; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -48388,7 +48389,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 7717; this.match(PostgreSqlParser.COMMA); this.state = 7718; - this.rolespec(); + this.roleSpec(); } } this.state = 7723; @@ -48411,9 +48412,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public colid(): ColidContext { - let localContext = new ColidContext(this.context, this.state); - this.enterRule(localContext, 820, PostgreSqlParser.RULE_colid); + public colId(): ColIdContext { + let localContext = new ColIdContext(this.context, this.state); + this.enterRule(localContext, 820, PostgreSqlParser.RULE_colId); try { this.state = 7726; this.errorHandler.sync(this); @@ -48485,9 +48486,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public nonreservedword(): NonreservedwordContext { - let localContext = new NonreservedwordContext(this.context, this.state); - this.enterRule(localContext, 824, PostgreSqlParser.RULE_nonreservedword); + public nonReservedWord(): NonReservedWordContext { + let localContext = new NonReservedWordContext(this.context, this.state); + this.enterRule(localContext, 824, PostgreSqlParser.RULE_nonReservedWord); try { this.state = 7735; this.errorHandler.sync(this); @@ -48529,9 +48530,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public collabel(): CollabelContext { - let localContext = new CollabelContext(this.context, this.state); - this.enterRule(localContext, 826, PostgreSqlParser.RULE_collabel); + public colLabel(): ColLabelContext { + let localContext = new ColLabelContext(this.context, this.state); + this.enterRule(localContext, 826, PostgreSqlParser.RULE_colLabel); try { this.state = 7741; this.errorHandler.sync(this); @@ -48613,7 +48614,7 @@ export class PostgreSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { this.state = 7748; - this.sconst(); + this.stringConst(); } break; case PostgreSqlParser.QuotedIdentifier: @@ -50061,7 +50062,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: { this.state = 7852; - this.colid(); + this.colId(); } break; default: @@ -50200,7 +50201,7 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } this.state = 7894; - this.selectstmt(); + this.selectStmt(); } break; } @@ -50678,7 +50679,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 7976; this.assign_operator(); this.state = 7977; - this.colid(); + this.colId(); } } catch (re) { @@ -51452,7 +51453,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 8066; - this.colid(); + this.colId(); this.state = 8068; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -51468,13 +51469,13 @@ export class PostgreSqlParser extends SQLParserBase { case 2: { this.state = 8070; - this.selectstmt(); + this.selectStmt(); } break; case 3: { this.state = 8071; - this.explainstmt(); + this.explainStmt(); } break; case 4: @@ -51704,7 +51705,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_VALUES: { this.state = 8123; - this.selectstmt(); + this.selectStmt(); } break; default: @@ -51791,7 +51792,7 @@ export class PostgreSqlParser extends SQLParserBase { this.state = 8138; this.match(PostgreSqlParser.KW_SQLSTATE); this.state = 8139; - this.sconst(); + this.stringConst(); } } break; @@ -51799,7 +51800,7 @@ export class PostgreSqlParser extends SQLParserBase { { { this.state = 8140; - this.sconst(); + this.stringConst(); this.state = 8147; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -52217,7 +52218,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_VALUES: { this.state = 8233; - this.selectstmt(); + this.selectStmt(); } break; case PostgreSqlParser.KW_EXECUTE: @@ -52248,7 +52249,7 @@ export class PostgreSqlParser extends SQLParserBase { case 2: { this.state = 8242; - this.colid(); + this.colId(); this.state = 8254; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); @@ -52314,7 +52315,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { this.state = 8260; - this.colid(); + this.colId(); this.state = 8261; this.match(PostgreSqlParser.COLON_EQUALS); } @@ -52542,9 +52543,9 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public mergestmt(): MergestmtContext { - let localContext = new MergestmtContext(this.context, this.state); - this.enterRule(localContext, 902, PostgreSqlParser.RULE_mergestmt); + public mergeStmt(): MergeStmtContext { + let localContext = new MergeStmtContext(this.context, this.state); + this.enterRule(localContext, 902, PostgreSqlParser.RULE_mergeStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); @@ -52601,7 +52602,7 @@ export class PostgreSqlParser extends SQLParserBase { } this.state = 8317; - this.colid(); + this.colId(); } } @@ -52627,16 +52628,6 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 102); - this.state = 8330; - this.errorHandler.sync(this); - _la = this.tokenStream.LA(1); - if (_la === 87) { - { - this.state = 8329; - this.returning_clause(); - } - } - } } catch (re) { @@ -52660,29 +52651,29 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 8343; + this.state = 8340; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1161, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1160, this.context) ) { case 1: { - this.state = 8333; + this.state = 8330; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 81) { { - this.state = 8332; + this.state = 8329; this.match(PostgreSqlParser.KW_ONLY); } } - this.state = 8335; + this.state = 8332; this.table_name(); - this.state = 8337; + this.state = 8334; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 9) { { - this.state = 8336; + this.state = 8333; this.match(PostgreSqlParser.STAR); } } @@ -52691,18 +52682,18 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 8341; + this.state = 8338; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1160, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1159, this.context) ) { case 1: { - this.state = 8339; + this.state = 8336; this.select_no_parens(); } break; case 2: { - this.state = 8340; + this.state = 8337; this.values_clause(); } break; @@ -52710,23 +52701,23 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 8349; + this.state = 8346; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36 || _la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 8346; + this.state = 8343; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 8345; + this.state = 8342; this.match(PostgreSqlParser.KW_AS); } } - this.state = 8348; - this.colid(); + this.state = 8345; + this.colId(); } } @@ -52751,50 +52742,50 @@ export class PostgreSqlParser extends SQLParserBase { this.enterRule(localContext, 906, PostgreSqlParser.RULE_merge_when_clause); let _la: number; try { - this.state = 8377; + this.state = 8374; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1168, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1167, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 8351; + this.state = 8348; this.match(PostgreSqlParser.KW_WHEN); - this.state = 8352; + this.state = 8349; this.match(PostgreSqlParser.KW_MATCHED); - this.state = 8355; + this.state = 8352; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 33) { { - this.state = 8353; + this.state = 8350; this.match(PostgreSqlParser.KW_AND); - this.state = 8354; + this.state = 8351; this.expression(); } } - this.state = 8357; + this.state = 8354; this.match(PostgreSqlParser.KW_THEN); - this.state = 8362; + this.state = 8359; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_UPDATE: { - this.state = 8358; + this.state = 8355; this.merge_update(); } break; case PostgreSqlParser.KW_DELETE: { - this.state = 8359; + this.state = 8356; this.match(PostgreSqlParser.KW_DELETE); } break; case PostgreSqlParser.KW_DO: { - this.state = 8360; + this.state = 8357; this.match(PostgreSqlParser.KW_DO); - this.state = 8361; + this.state = 8358; this.match(PostgreSqlParser.KW_NOTHING); } break; @@ -52806,40 +52797,40 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 8364; + this.state = 8361; this.match(PostgreSqlParser.KW_WHEN); - this.state = 8365; + this.state = 8362; this.match(PostgreSqlParser.KW_NOT); - this.state = 8366; + this.state = 8363; this.match(PostgreSqlParser.KW_MATCHED); - this.state = 8369; + this.state = 8366; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 33) { { - this.state = 8367; + this.state = 8364; this.match(PostgreSqlParser.KW_AND); - this.state = 8368; + this.state = 8365; this.expression(); } } - this.state = 8371; + this.state = 8368; this.match(PostgreSqlParser.KW_THEN); - this.state = 8375; + this.state = 8372; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_INSERT: { - this.state = 8372; + this.state = 8369; this.merge_insert(); } break; case PostgreSqlParser.KW_DO: { - this.state = 8373; + this.state = 8370; this.match(PostgreSqlParser.KW_DO); - this.state = 8374; + this.state = 8371; this.match(PostgreSqlParser.KW_NOTHING); } break; @@ -52871,26 +52862,26 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 8379; + this.state = 8376; this.match(PostgreSqlParser.KW_INSERT); - this.state = 8381; + this.state = 8378; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 8380; + this.state = 8377; this.opt_column_list(); } } - this.state = 8386; + this.state = 8383; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 463) { { - this.state = 8383; + this.state = 8380; this.match(PostgreSqlParser.KW_OVERRIDING); - this.state = 8384; + this.state = 8381; _la = this.tokenStream.LA(1); if(!(_la === 99 || _la === 349)) { this.errorHandler.recoverInline(this); @@ -52899,12 +52890,12 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 8385; + this.state = 8382; this.match(PostgreSqlParser.KW_VALUE); } } - this.state = 8388; + this.state = 8385; this.default_values_or_values(); } } @@ -52930,57 +52921,57 @@ export class PostgreSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 8390; + this.state = 8387; this.match(PostgreSqlParser.KW_UPDATE); - this.state = 8391; + this.state = 8388; this.match(PostgreSqlParser.KW_SET); - this.state = 8409; + this.state = 8406; this.errorHandler.sync(this); alternative = 1; do { switch (alternative) { case 1: { - this.state = 8409; + this.state = 8406; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1172, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1171, this.context) ) { case 1: { - this.state = 8392; + this.state = 8389; this.column_name(); - this.state = 8393; + this.state = 8390; this.match(PostgreSqlParser.EQUAL); - this.state = 8394; + this.state = 8391; this.exprofdefault(); } break; case 2: { - this.state = 8396; + this.state = 8393; this.opt_column_list(); - this.state = 8397; + this.state = 8394; this.match(PostgreSqlParser.EQUAL); - this.state = 8398; + this.state = 8395; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 8399; + this.state = 8396; this.exprofdefault(); - this.state = 8404; + this.state = 8401; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 8400; + this.state = 8397; this.match(PostgreSqlParser.COMMA); - this.state = 8401; + this.state = 8398; this.exprofdefault(); } } - this.state = 8406; + this.state = 8403; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 8407; + this.state = 8404; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -52990,9 +52981,9 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 8411; + this.state = 8408; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1173, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1172, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } } @@ -53015,44 +53006,44 @@ export class PostgreSqlParser extends SQLParserBase { this.enterRule(localContext, 912, PostgreSqlParser.RULE_default_values_or_values); let _la: number; try { - this.state = 8427; + this.state = 8424; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_VALUES: this.enterOuterAlt(localContext, 1); { - this.state = 8413; + this.state = 8410; this.match(PostgreSqlParser.KW_VALUES); - this.state = 8414; + this.state = 8411; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 8415; + this.state = 8412; this.exprofdefault(); - this.state = 8420; + this.state = 8417; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 8416; + this.state = 8413; this.match(PostgreSqlParser.COMMA); - this.state = 8417; + this.state = 8414; this.exprofdefault(); } } - this.state = 8422; + this.state = 8419; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 8423; + this.state = 8420; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_DEFAULT: this.enterOuterAlt(localContext, 2); { - this.state = 8425; + this.state = 8422; this.match(PostgreSqlParser.KW_DEFAULT); - this.state = 8426; + this.state = 8423; this.match(PostgreSqlParser.KW_VALUES); } break; @@ -53078,20 +53069,20 @@ export class PostgreSqlParser extends SQLParserBase { let localContext = new ExprofdefaultContext(this.context, this.state); this.enterRule(localContext, 914, PostgreSqlParser.RULE_exprofdefault); try { - this.state = 8431; + this.state = 8428; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1176, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1175, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 8429; - this.sortby(); + this.state = 8426; + this.sortBy(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 8430; + this.state = 8427; this.match(PostgreSqlParser.KW_DEFAULT); } break; @@ -53117,11 +53108,11 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 8433; + this.state = 8430; this.match(PostgreSqlParser.KW_CLOSE); - this.state = 8434; + this.state = 8431; this.cursor_variable(); - this.state = 8435; + this.state = 8432; this.match(PostgreSqlParser.SEMI); } } @@ -53145,9 +53136,9 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 8437; + this.state = 8434; this.match(PostgreSqlParser.KW_NULL); - this.state = 8438; + this.state = 8435; this.match(PostgreSqlParser.SEMI); } } @@ -53172,7 +53163,7 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 8440; + this.state = 8437; _la = this.tokenStream.LA(1); if(!(_la === 161 || _la === 319)) { this.errorHandler.recoverInline(this); @@ -53181,29 +53172,29 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 8446; + this.state = 8443; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 33) { { - this.state = 8441; + this.state = 8438; this.match(PostgreSqlParser.KW_AND); - this.state = 8443; + this.state = 8440; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 8442; + this.state = 8439; this.match(PostgreSqlParser.KW_NO); } } - this.state = 8445; + this.state = 8442; this.match(PostgreSqlParser.KW_CHAIN); } } - this.state = 8448; + this.state = 8445; this.match(PostgreSqlParser.SEMI); } } @@ -53225,30 +53216,30 @@ export class PostgreSqlParser extends SQLParserBase { let localContext = new Stmt_setContext(this.context, this.state); this.enterRule(localContext, 922, PostgreSqlParser.RULE_stmt_set); try { - this.state = 8462; + this.state = 8459; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_SET: this.enterOuterAlt(localContext, 1); { - this.state = 8450; + this.state = 8447; this.match(PostgreSqlParser.KW_SET); - this.state = 8451; + this.state = 8448; this.any_name(); - this.state = 8452; + this.state = 8449; this.match(PostgreSqlParser.KW_TO); - this.state = 8453; + this.state = 8450; this.match(PostgreSqlParser.KW_DEFAULT); - this.state = 8454; + this.state = 8451; this.match(PostgreSqlParser.SEMI); } break; case PostgreSqlParser.KW_RESET: this.enterOuterAlt(localContext, 2); { - this.state = 8456; + this.state = 8453; this.match(PostgreSqlParser.KW_RESET); - this.state = 8459; + this.state = 8456; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -53646,20 +53637,20 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 8457; + this.state = 8454; this.any_name(); } break; case PostgreSqlParser.KW_ALL: { - this.state = 8458; + this.state = 8455; this.match(PostgreSqlParser.KW_ALL); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 8461; + this.state = 8458; this.match(PostgreSqlParser.SEMI); } break; @@ -53685,7 +53676,7 @@ export class PostgreSqlParser extends SQLParserBase { let localContext = new Cursor_variableContext(this.context, this.state); this.enterRule(localContext, 924, PostgreSqlParser.RULE_cursor_variable); try { - this.state = 8466; + this.state = 8463; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -54084,14 +54075,14 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: this.enterOuterAlt(localContext, 1); { - this.state = 8464; - this.colid(); + this.state = 8461; + this.colId(); } break; case PostgreSqlParser.PARAM: this.enterOuterAlt(localContext, 2); { - this.state = 8465; + this.state = 8462; this.match(PostgreSqlParser.PARAM); } break; @@ -54121,57 +54112,57 @@ export class PostgreSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 8468; + this.state = 8465; this.match(PostgreSqlParser.KW_EXCEPTION); - this.state = 8485; + this.state = 8482; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 8469; + this.state = 8466; this.match(PostgreSqlParser.KW_WHEN); { - this.state = 8470; + this.state = 8467; this.proc_condition(); - this.state = 8475; + this.state = 8472; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 82) { { { - this.state = 8471; + this.state = 8468; this.match(PostgreSqlParser.KW_OR); - this.state = 8472; + this.state = 8469; this.proc_condition(); } } - this.state = 8477; + this.state = 8474; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 8478; + this.state = 8475; this.match(PostgreSqlParser.KW_THEN); - this.state = 8482; + this.state = 8479; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1183, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1182, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 8479; + this.state = 8476; this.proc_stmt(); } } } - this.state = 8484; + this.state = 8481; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1183, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1182, this.context); } } } - this.state = 8487; + this.state = 8484; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 102); @@ -54195,23 +54186,23 @@ export class PostgreSqlParser extends SQLParserBase { let localContext = new Proc_conditionContext(this.context, this.state); this.enterRule(localContext, 928, PostgreSqlParser.RULE_proc_condition); try { - this.state = 8492; + this.state = 8489; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1185, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1184, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 8489; + this.state = 8486; this.any_identifier(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 8490; + this.state = 8487; this.match(PostgreSqlParser.KW_SQLSTATE); - this.state = 8491; - this.sconst(); + this.state = 8488; + this.stringConst(); } break; } @@ -54234,20 +54225,20 @@ export class PostgreSqlParser extends SQLParserBase { let localContext = new Any_identifierContext(this.context, this.state); this.enterRule(localContext, 930, PostgreSqlParser.RULE_any_identifier); try { - this.state = 8496; + this.state = 8493; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1186, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1185, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 8494; - this.colid(); + this.state = 8491; + this.colId(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 8495; + this.state = 8492; this.unreserved_keyword(); } break; @@ -54274,74 +54265,74 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 8499; + this.state = 8496; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1187, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1186, this.context) ) { case 1: { - this.state = 8498; + this.state = 8495; this.target_list(); } break; } - this.state = 8502; + this.state = 8499; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1188, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1187, this.context) ) { case 1: { - this.state = 8501; + this.state = 8498; this.into_clause(); } break; } - this.state = 8505; + this.state = 8502; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 64) { { - this.state = 8504; + this.state = 8501; this.from_clause(); } } - this.state = 8508; + this.state = 8505; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 103) { { - this.state = 8507; + this.state = 8504; this.where_clause(); } } - this.state = 8511; + this.state = 8508; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 66) { { - this.state = 8510; + this.state = 8507; this.group_clause(); } } - this.state = 8515; + this.state = 8512; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 67) { { - this.state = 8513; + this.state = 8510; this.match(PostgreSqlParser.KW_HAVING); - this.state = 8514; + this.state = 8511; this.expression(); } } - this.state = 8518; + this.state = 8515; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1193, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1192, this.context) ) { case 1: { - this.state = 8517; + this.state = 8514; this.window_clause(); } break; @@ -54420,7 +54411,7 @@ export class PostgreSqlParser extends SQLParserBase { } public static readonly _serializedATN: number[] = [ - 4,1,593,8521,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, + 4,1,593,8518,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, @@ -55258,315 +55249,315 @@ export class PostgreSqlParser extends SQLParserBase { 450,8298,8,450,1,450,1,450,1,450,1,451,3,451,8304,8,451,1,451,1, 451,1,451,3,451,8309,8,451,1,451,1,451,3,451,8313,8,451,1,451,3, 451,8316,8,451,1,451,3,451,8319,8,451,1,451,1,451,1,451,1,451,1, - 451,4,451,8326,8,451,11,451,12,451,8327,1,451,3,451,8331,8,451,1, - 452,3,452,8334,8,452,1,452,1,452,3,452,8338,8,452,1,452,1,452,3, - 452,8342,8,452,3,452,8344,8,452,1,452,3,452,8347,8,452,1,452,3,452, - 8350,8,452,1,453,1,453,1,453,1,453,3,453,8356,8,453,1,453,1,453, - 1,453,1,453,1,453,3,453,8363,8,453,1,453,1,453,1,453,1,453,1,453, - 3,453,8370,8,453,1,453,1,453,1,453,1,453,3,453,8376,8,453,3,453, - 8378,8,453,1,454,1,454,3,454,8382,8,454,1,454,1,454,1,454,3,454, - 8387,8,454,1,454,1,454,1,455,1,455,1,455,1,455,1,455,1,455,1,455, - 1,455,1,455,1,455,1,455,1,455,5,455,8403,8,455,10,455,12,455,8406, - 9,455,1,455,1,455,4,455,8410,8,455,11,455,12,455,8411,1,456,1,456, - 1,456,1,456,1,456,5,456,8419,8,456,10,456,12,456,8422,9,456,1,456, - 1,456,1,456,1,456,3,456,8428,8,456,1,457,1,457,3,457,8432,8,457, - 1,458,1,458,1,458,1,458,1,459,1,459,1,459,1,460,1,460,1,460,3,460, - 8444,8,460,1,460,3,460,8447,8,460,1,460,1,460,1,461,1,461,1,461, - 1,461,1,461,1,461,1,461,1,461,1,461,3,461,8460,8,461,1,461,3,461, - 8463,8,461,1,462,1,462,3,462,8467,8,462,1,463,1,463,1,463,1,463, - 1,463,5,463,8474,8,463,10,463,12,463,8477,9,463,1,463,1,463,5,463, - 8481,8,463,10,463,12,463,8484,9,463,4,463,8486,8,463,11,463,12,463, - 8487,1,464,1,464,1,464,3,464,8493,8,464,1,465,1,465,3,465,8497,8, - 465,1,466,3,466,8500,8,466,1,466,3,466,8503,8,466,1,466,3,466,8506, - 8,466,1,466,3,466,8509,8,466,1,466,3,466,8512,8,466,1,466,1,466, - 3,466,8516,8,466,1,466,3,466,8519,8,466,1,466,0,3,678,682,684,467, - 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44, - 46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88, - 90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124, - 126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156, - 158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188, - 190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220, - 222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252, - 254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284, - 286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316, - 318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348, - 350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380, - 382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412, - 414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444, - 446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476, - 478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508, - 510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540, - 542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572, - 574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604, - 606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636, - 638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668, - 670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700, - 702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732, - 734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764, - 766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796, - 798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828, - 830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860, - 862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892, - 894,896,898,900,902,904,906,908,910,912,914,916,918,920,922,924, - 926,928,930,932,0,119,2,0,195,195,364,364,2,0,66,66,318,318,2,0, - 99,99,318,318,2,0,134,134,318,318,1,0,529,531,2,0,10,10,94,94,2, - 0,133,133,191,191,2,0,254,254,332,332,2,0,162,162,363,363,2,0,180, - 180,221,221,5,0,30,30,288,288,329,329,352,352,354,354,2,0,109,109, - 532,532,2,0,158,158,277,277,2,0,367,367,439,439,2,0,139,139,312, - 312,2,0,191,191,333,333,2,0,313,313,333,333,2,0,150,150,315,315, - 2,0,64,64,94,94,4,0,78,78,183,183,197,197,298,298,1,0,549,551,2, - 0,213,213,254,254,2,0,352,352,354,354,2,0,200,200,224,224,9,0,30, - 30,160,160,165,165,179,179,219,219,227,227,342,342,345,345,438,438, - 3,0,113,113,284,284,336,336,2,0,53,53,78,78,2,0,105,105,379,379, - 2,0,260,260,262,262,3,0,173,173,260,260,262,262,1,0,12,13,2,0,64, - 64,375,375,2,0,156,156,206,206,2,0,189,189,360,360,2,0,215,215,373, - 373,3,0,133,133,191,191,333,333,5,0,30,30,88,88,182,182,241,241, - 369,369,2,0,9,9,94,94,2,0,92,92,226,226,1,0,448,449,2,0,92,92,414, - 414,2,0,341,341,414,414,4,0,163,163,185,185,283,283,353,353,2,0, - 135,135,145,145,2,0,211,211,278,278,3,0,321,321,357,357,445,445, - 3,0,66,66,99,99,318,318,5,0,108,108,168,168,226,226,328,328,342, - 342,2,0,167,167,314,314,2,0,61,61,265,265,4,0,207,207,249,249,268, - 268,293,293,2,0,130,130,307,307,2,0,64,64,68,68,10,0,46,46,88,88, - 182,182,202,202,241,241,352,352,354,354,357,358,369,369,521,523, - 5,0,212,212,329,329,350,350,455,455,457,457,5,0,212,212,329,329, - 350,350,361,361,455,456,2,0,37,37,55,55,2,0,207,207,249,249,2,0, - 10,10,53,53,2,0,181,181,243,243,2,0,170,170,320,320,2,0,141,141, - 223,223,5,0,108,108,168,168,189,189,342,342,360,360,2,0,226,226, - 328,328,2,0,163,163,185,185,2,0,186,186,193,193,4,0,88,88,182,182, - 241,241,369,369,2,0,137,137,242,242,2,0,161,161,319,319,4,0,129, - 129,161,161,319,319,454,454,2,0,356,356,380,380,2,0,81,81,382,382, - 2,0,151,151,254,254,2,0,133,133,138,138,1,0,31,32,2,0,128,128,547, - 547,2,0,60,60,96,96,2,0,99,99,349,349,2,0,131,131,414,414,2,0,201, - 201,334,334,3,0,59,59,70,70,97,97,2,0,30,30,56,56,1,0,527,528,2, - 0,207,207,268,268,2,0,320,320,414,414,2,0,574,574,576,576,1,0,468, - 469,4,0,113,113,115,115,119,119,126,126,2,0,360,360,477,477,2,0, - 394,395,409,409,2,0,391,392,406,406,1,0,391,392,1,0,418,419,5,0, - 10,10,16,17,21,21,23,23,25,25,3,0,9,9,14,14,27,27,2,0,98,98,396, - 396,2,0,50,51,75,76,2,0,41,41,420,420,3,0,39,39,73,73,95,95,4,0, - 393,393,399,399,404,404,425,425,2,0,292,292,347,347,2,0,166,166, - 188,188,2,0,304,304,450,450,3,0,299,299,320,320,481,481,2,0,208, - 208,289,289,3,0,30,30,34,34,90,90,6,0,9,10,12,17,21,21,23,23,25, - 25,27,27,2,0,114,114,120,120,2,0,20,20,22,22,1,0,483,486,17,0,53, - 53,116,116,123,124,129,228,238,386,433,452,455,469,471,471,473,473, - 475,475,477,488,490,502,504,504,506,518,520,520,524,524,547,548, - 3,0,106,123,125,128,472,472,4,0,30,52,54,70,72,105,454,454,2,0,62, - 62,116,116,2,0,10,10,20,20,2,0,434,434,501,501,2,0,167,167,507,507, - 1,0,512,517,2,0,144,144,210,210,9963,0,937,1,0,0,0,2,942,1,0,0,0, - 4,1066,1,0,0,0,6,1068,1,0,0,0,8,1071,1,0,0,0,10,1121,1,0,0,0,12, - 1131,1,0,0,0,14,1133,1,0,0,0,16,1145,1,0,0,0,18,1157,1,0,0,0,20, - 1168,1,0,0,0,22,1202,1,0,0,0,24,1246,1,0,0,0,26,1248,1,0,0,0,28, - 1260,1,0,0,0,30,1267,1,0,0,0,32,1286,1,0,0,0,34,1294,1,0,0,0,36, - 1296,1,0,0,0,38,1310,1,0,0,0,40,1314,1,0,0,0,42,1351,1,0,0,0,44, - 1353,1,0,0,0,46,1361,1,0,0,0,48,1371,1,0,0,0,50,1378,1,0,0,0,52, - 1386,1,0,0,0,54,1392,1,0,0,0,56,1408,1,0,0,0,58,1412,1,0,0,0,60, - 1414,1,0,0,0,62,1426,1,0,0,0,64,1431,1,0,0,0,66,1436,1,0,0,0,68, - 1438,1,0,0,0,70,1450,1,0,0,0,72,1458,1,0,0,0,74,1460,1,0,0,0,76, - 1584,1,0,0,0,78,1586,1,0,0,0,80,1603,1,0,0,0,82,1605,1,0,0,0,84, - 1619,1,0,0,0,86,1621,1,0,0,0,88,1635,1,0,0,0,90,1637,1,0,0,0,92, - 1874,1,0,0,0,94,1881,1,0,0,0,96,1883,1,0,0,0,98,1885,1,0,0,0,100, - 1888,1,0,0,0,102,1899,1,0,0,0,104,1902,1,0,0,0,106,1931,1,0,0,0, - 108,1933,1,0,0,0,110,1974,1,0,0,0,112,1976,1,0,0,0,114,2030,1,0, - 0,0,116,2076,1,0,0,0,118,2097,1,0,0,0,120,2099,1,0,0,0,122,2116, - 1,0,0,0,124,2197,1,0,0,0,126,2199,1,0,0,0,128,2210,1,0,0,0,130,2233, - 1,0,0,0,132,2251,1,0,0,0,134,2253,1,0,0,0,136,2288,1,0,0,0,138,2381, - 1,0,0,0,140,2386,1,0,0,0,142,2388,1,0,0,0,144,2486,1,0,0,0,146,2488, - 1,0,0,0,148,2492,1,0,0,0,150,2503,1,0,0,0,152,2511,1,0,0,0,154,2514, - 1,0,0,0,156,2517,1,0,0,0,158,2535,1,0,0,0,160,2537,1,0,0,0,162,2541, - 1,0,0,0,164,2554,1,0,0,0,166,2556,1,0,0,0,168,2561,1,0,0,0,170,2581, - 1,0,0,0,172,2589,1,0,0,0,174,2596,1,0,0,0,176,2598,1,0,0,0,178,2607, - 1,0,0,0,180,2610,1,0,0,0,182,2614,1,0,0,0,184,2618,1,0,0,0,186,2643, - 1,0,0,0,188,2653,1,0,0,0,190,2667,1,0,0,0,192,2683,1,0,0,0,194,2689, - 1,0,0,0,196,2716,1,0,0,0,198,2726,1,0,0,0,200,2742,1,0,0,0,202,2786, - 1,0,0,0,204,2793,1,0,0,0,206,2795,1,0,0,0,208,2821,1,0,0,0,210,2832, - 1,0,0,0,212,2851,1,0,0,0,214,2862,1,0,0,0,216,2900,1,0,0,0,218,2921, - 1,0,0,0,220,2923,1,0,0,0,222,2943,1,0,0,0,224,2955,1,0,0,0,226,2967, - 1,0,0,0,228,2970,1,0,0,0,230,2973,1,0,0,0,232,2993,1,0,0,0,234,2998, - 1,0,0,0,236,3047,1,0,0,0,238,3049,1,0,0,0,240,3072,1,0,0,0,242,3088, - 1,0,0,0,244,3100,1,0,0,0,246,3127,1,0,0,0,248,3142,1,0,0,0,250,3205, - 1,0,0,0,252,3207,1,0,0,0,254,3212,1,0,0,0,256,3218,1,0,0,0,258,3305, - 1,0,0,0,260,3311,1,0,0,0,262,3313,1,0,0,0,264,3329,1,0,0,0,266,3331, - 1,0,0,0,268,3340,1,0,0,0,270,3344,1,0,0,0,272,3357,1,0,0,0,274,3369, - 1,0,0,0,276,3371,1,0,0,0,278,3393,1,0,0,0,280,3405,1,0,0,0,282,3416, - 1,0,0,0,284,3507,1,0,0,0,286,3509,1,0,0,0,288,3520,1,0,0,0,290,3531, - 1,0,0,0,292,3533,1,0,0,0,294,3559,1,0,0,0,296,3561,1,0,0,0,298,3565, - 1,0,0,0,300,3615,1,0,0,0,302,3617,1,0,0,0,304,3623,1,0,0,0,306,3648, - 1,0,0,0,308,3652,1,0,0,0,310,3866,1,0,0,0,312,3884,1,0,0,0,314,3910, - 1,0,0,0,316,3912,1,0,0,0,318,3920,1,0,0,0,320,3926,1,0,0,0,322,3930, - 1,0,0,0,324,3950,1,0,0,0,326,3956,1,0,0,0,328,4023,1,0,0,0,330,4054, - 1,0,0,0,332,4100,1,0,0,0,334,4102,1,0,0,0,336,4104,1,0,0,0,338,4115, - 1,0,0,0,340,4152,1,0,0,0,342,4154,1,0,0,0,344,4160,1,0,0,0,346,4210, - 1,0,0,0,348,4213,1,0,0,0,350,4227,1,0,0,0,352,4248,1,0,0,0,354,4272, - 1,0,0,0,356,4313,1,0,0,0,358,4315,1,0,0,0,360,4317,1,0,0,0,362,4357, - 1,0,0,0,364,4374,1,0,0,0,366,4394,1,0,0,0,368,4447,1,0,0,0,370,4450, - 1,0,0,0,372,4456,1,0,0,0,374,4464,1,0,0,0,376,4477,1,0,0,0,378,4479, - 1,0,0,0,380,4492,1,0,0,0,382,4494,1,0,0,0,384,4507,1,0,0,0,386,4517, - 1,0,0,0,388,4528,1,0,0,0,390,4539,1,0,0,0,392,4541,1,0,0,0,394,4546, - 1,0,0,0,396,4560,1,0,0,0,398,4592,1,0,0,0,400,4629,1,0,0,0,402,4631, - 1,0,0,0,404,4634,1,0,0,0,406,4637,1,0,0,0,408,4654,1,0,0,0,410,4675, - 1,0,0,0,412,4691,1,0,0,0,414,4707,1,0,0,0,416,4729,1,0,0,0,418,4734, - 1,0,0,0,420,4737,1,0,0,0,422,4745,1,0,0,0,424,4770,1,0,0,0,426,4773, - 1,0,0,0,428,4801,1,0,0,0,430,4806,1,0,0,0,432,4846,1,0,0,0,434,5058, - 1,0,0,0,436,5060,1,0,0,0,438,5148,1,0,0,0,440,5150,1,0,0,0,442,5156, - 1,0,0,0,444,5167,1,0,0,0,446,5177,1,0,0,0,448,5257,1,0,0,0,450,5259, - 1,0,0,0,452,5273,1,0,0,0,454,5295,1,0,0,0,456,5368,1,0,0,0,458,5370, - 1,0,0,0,460,5411,1,0,0,0,462,5413,1,0,0,0,464,5418,1,0,0,0,466,5421, - 1,0,0,0,468,5424,1,0,0,0,470,5474,1,0,0,0,472,5476,1,0,0,0,474,5487, - 1,0,0,0,476,5489,1,0,0,0,478,5499,1,0,0,0,480,5534,1,0,0,0,482,5537, - 1,0,0,0,484,5558,1,0,0,0,486,5568,1,0,0,0,488,5588,1,0,0,0,490,5594, - 1,0,0,0,492,5600,1,0,0,0,494,5605,1,0,0,0,496,5618,1,0,0,0,498,5645, - 1,0,0,0,500,5693,1,0,0,0,502,5695,1,0,0,0,504,5733,1,0,0,0,506,5735, - 1,0,0,0,508,5756,1,0,0,0,510,5776,1,0,0,0,512,5780,1,0,0,0,514,5795, - 1,0,0,0,516,5797,1,0,0,0,518,5801,1,0,0,0,520,5805,1,0,0,0,522,5813, - 1,0,0,0,524,5837,1,0,0,0,526,5839,1,0,0,0,528,5850,1,0,0,0,530,5858, - 1,0,0,0,532,5874,1,0,0,0,534,5899,1,0,0,0,536,5901,1,0,0,0,538,5905, - 1,0,0,0,540,5914,1,0,0,0,542,5954,1,0,0,0,544,5965,1,0,0,0,546,5973, - 1,0,0,0,548,5976,1,0,0,0,550,5980,1,0,0,0,552,5995,1,0,0,0,554,6020, - 1,0,0,0,556,6035,1,0,0,0,558,6061,1,0,0,0,560,6063,1,0,0,0,562,6086, - 1,0,0,0,564,6088,1,0,0,0,566,6096,1,0,0,0,568,6114,1,0,0,0,570,6138, - 1,0,0,0,572,6150,1,0,0,0,574,6154,1,0,0,0,576,6166,1,0,0,0,578,6186, - 1,0,0,0,580,6194,1,0,0,0,582,6208,1,0,0,0,584,6231,1,0,0,0,586,6233, - 1,0,0,0,588,6238,1,0,0,0,590,6248,1,0,0,0,592,6269,1,0,0,0,594,6271, - 1,0,0,0,596,6280,1,0,0,0,598,6291,1,0,0,0,600,6301,1,0,0,0,602,6303, - 1,0,0,0,604,6310,1,0,0,0,606,6341,1,0,0,0,608,6371,1,0,0,0,610,6373, - 1,0,0,0,612,6382,1,0,0,0,614,6385,1,0,0,0,616,6456,1,0,0,0,618,6480, - 1,0,0,0,620,6501,1,0,0,0,622,6503,1,0,0,0,624,6511,1,0,0,0,626,6528, - 1,0,0,0,628,6554,1,0,0,0,630,6556,1,0,0,0,632,6564,1,0,0,0,634,6571, - 1,0,0,0,636,6595,1,0,0,0,638,6601,1,0,0,0,640,6609,1,0,0,0,642,6612, - 1,0,0,0,644,6619,1,0,0,0,646,6627,1,0,0,0,648,6632,1,0,0,0,650,6662, - 1,0,0,0,652,6689,1,0,0,0,654,6717,1,0,0,0,656,6734,1,0,0,0,658,6740, - 1,0,0,0,660,6758,1,0,0,0,662,6760,1,0,0,0,664,6764,1,0,0,0,666,6781, - 1,0,0,0,668,6786,1,0,0,0,670,6824,1,0,0,0,672,6826,1,0,0,0,674,6830, - 1,0,0,0,676,6832,1,0,0,0,678,6841,1,0,0,0,680,6925,1,0,0,0,682,6931, - 1,0,0,0,684,7040,1,0,0,0,686,7072,1,0,0,0,688,7123,1,0,0,0,690,7127, - 1,0,0,0,692,7303,1,0,0,0,694,7305,1,0,0,0,696,7313,1,0,0,0,698,7318, - 1,0,0,0,700,7320,1,0,0,0,702,7328,1,0,0,0,704,7331,1,0,0,0,706,7340, - 1,0,0,0,708,7344,1,0,0,0,710,7349,1,0,0,0,712,7366,1,0,0,0,714,7393, - 1,0,0,0,716,7402,1,0,0,0,718,7404,1,0,0,0,720,7411,1,0,0,0,722,7415, - 1,0,0,0,724,7417,1,0,0,0,726,7425,1,0,0,0,728,7433,1,0,0,0,730,7440, - 1,0,0,0,732,7442,1,0,0,0,734,7455,1,0,0,0,736,7459,1,0,0,0,738,7461, - 1,0,0,0,740,7476,1,0,0,0,742,7478,1,0,0,0,744,7500,1,0,0,0,746,7502, - 1,0,0,0,748,7525,1,0,0,0,750,7527,1,0,0,0,752,7549,1,0,0,0,754,7552, - 1,0,0,0,756,7559,1,0,0,0,758,7562,1,0,0,0,760,7578,1,0,0,0,762,7580, - 1,0,0,0,764,7588,1,0,0,0,766,7596,1,0,0,0,768,7604,1,0,0,0,770,7612, - 1,0,0,0,772,7614,1,0,0,0,774,7616,1,0,0,0,776,7618,1,0,0,0,778,7620, - 1,0,0,0,780,7622,1,0,0,0,782,7624,1,0,0,0,784,7628,1,0,0,0,786,7636, - 1,0,0,0,788,7644,1,0,0,0,790,7646,1,0,0,0,792,7648,1,0,0,0,794,7650, - 1,0,0,0,796,7652,1,0,0,0,798,7658,1,0,0,0,800,7664,1,0,0,0,802,7670, - 1,0,0,0,804,7672,1,0,0,0,806,7678,1,0,0,0,808,7684,1,0,0,0,810,7686, - 1,0,0,0,812,7702,1,0,0,0,814,7705,1,0,0,0,816,7714,1,0,0,0,818,7716, - 1,0,0,0,820,7726,1,0,0,0,822,7730,1,0,0,0,824,7735,1,0,0,0,826,7741, - 1,0,0,0,828,7754,1,0,0,0,830,7756,1,0,0,0,832,7809,1,0,0,0,834,7811, - 1,0,0,0,836,7813,1,0,0,0,838,7816,1,0,0,0,840,7844,1,0,0,0,842,7848, - 1,0,0,0,844,7899,1,0,0,0,846,7902,1,0,0,0,848,7928,1,0,0,0,850,7930, - 1,0,0,0,852,7953,1,0,0,0,854,7955,1,0,0,0,856,7960,1,0,0,0,858,7975, - 1,0,0,0,860,7981,1,0,0,0,862,7992,1,0,0,0,864,8022,1,0,0,0,866,8029, - 1,0,0,0,868,8054,1,0,0,0,870,8064,1,0,0,0,872,8091,1,0,0,0,874,8104, - 1,0,0,0,876,8114,1,0,0,0,878,8133,1,0,0,0,880,8165,1,0,0,0,882,8169, - 1,0,0,0,884,8177,1,0,0,0,886,8191,1,0,0,0,888,8197,1,0,0,0,890,8218, - 1,0,0,0,892,8224,1,0,0,0,894,8263,1,0,0,0,896,8267,1,0,0,0,898,8293, - 1,0,0,0,900,8295,1,0,0,0,902,8303,1,0,0,0,904,8343,1,0,0,0,906,8377, - 1,0,0,0,908,8379,1,0,0,0,910,8390,1,0,0,0,912,8427,1,0,0,0,914,8431, - 1,0,0,0,916,8433,1,0,0,0,918,8437,1,0,0,0,920,8440,1,0,0,0,922,8462, - 1,0,0,0,924,8466,1,0,0,0,926,8468,1,0,0,0,928,8492,1,0,0,0,930,8496, - 1,0,0,0,932,8499,1,0,0,0,934,936,3,2,1,0,935,934,1,0,0,0,936,939, - 1,0,0,0,937,935,1,0,0,0,937,938,1,0,0,0,938,940,1,0,0,0,939,937, - 1,0,0,0,940,941,5,0,0,1,941,1,1,0,0,0,942,944,3,4,2,0,943,945,5, - 7,0,0,944,943,1,0,0,0,944,945,1,0,0,0,945,3,1,0,0,0,946,1067,3,280, - 140,0,947,1067,3,490,245,0,948,1067,3,486,243,0,949,1067,3,488,244, - 0,950,1067,3,354,177,0,951,1067,3,496,248,0,952,1067,3,294,147,0, - 953,1067,3,212,106,0,954,1067,3,214,107,0,955,1067,3,220,110,0,956, - 1067,3,234,117,0,957,1067,3,406,203,0,958,1067,3,28,14,0,959,1067, - 3,436,218,0,960,1067,3,438,219,0,961,1067,3,448,224,0,962,1067,3, - 440,220,0,963,1067,3,446,223,0,964,1067,3,246,123,0,965,1067,3,248, - 124,0,966,1067,3,200,100,0,967,1067,3,492,246,0,968,1067,3,76,38, - 0,969,1067,3,432,216,0,970,1067,3,108,54,0,971,1067,3,452,226,0, - 972,1067,3,18,9,0,973,1067,3,20,10,0,974,1067,3,16,8,0,975,1067, - 3,456,228,0,976,1067,3,186,93,0,977,1067,3,500,250,0,978,1067,3, - 498,249,0,979,1067,3,242,121,0,980,1067,3,508,254,0,981,1067,3,6, - 3,0,982,1067,3,72,36,0,983,1067,3,112,56,0,984,1067,3,504,252,0, - 985,1067,3,326,163,0,986,1067,3,70,35,0,987,1067,3,114,57,0,988, - 1067,3,256,128,0,989,1067,3,188,94,0,990,1067,3,282,141,0,991,1067, - 3,422,211,0,992,1067,3,502,251,0,993,1067,3,494,247,0,994,1067,3, - 210,105,0,995,1067,3,216,108,0,996,1067,3,230,115,0,997,1067,3,236, - 118,0,998,1067,3,366,183,0,999,1067,3,26,13,0,1000,1067,3,194,97, - 0,1001,1067,3,298,149,0,1002,1067,3,302,151,0,1003,1067,3,450,225, - 0,1004,1067,3,304,152,0,1005,1067,3,244,122,0,1006,1067,3,206,103, - 0,1007,1067,3,30,15,0,1008,1067,3,198,99,0,1009,1067,3,122,61,0, - 1010,1067,3,454,227,0,1011,1067,3,184,92,0,1012,1067,3,208,104,0, - 1013,1067,3,426,213,0,1014,1067,3,258,129,0,1015,1067,3,276,138, - 0,1016,1067,3,8,4,0,1017,1067,3,14,7,0,1018,1067,3,240,120,0,1019, - 1067,3,482,241,0,1020,1067,3,538,269,0,1021,1067,3,560,280,0,1022, - 1067,3,284,142,0,1023,1067,3,550,275,0,1024,1067,3,74,37,0,1025, - 1067,3,420,210,0,1026,1067,3,310,155,0,1027,1067,3,534,267,0,1028, - 1067,3,522,261,0,1029,1067,3,330,165,0,1030,1067,3,336,168,0,1031, - 1067,3,350,175,0,1032,1067,3,902,451,0,1033,1067,3,238,119,0,1034, - 1067,3,360,180,0,1035,1067,3,540,270,0,1036,1067,3,466,233,0,1037, - 1067,3,196,98,0,1038,1067,3,480,240,0,1039,1067,3,552,276,0,1040, - 1067,3,462,231,0,1041,1067,3,528,264,0,1042,1067,3,308,154,0,1043, - 1067,3,430,215,0,1044,1067,3,410,205,0,1045,1067,3,408,204,0,1046, - 1067,3,412,206,0,1047,1067,3,434,217,0,1048,1067,3,338,169,0,1049, - 1067,3,352,176,0,1050,1067,3,458,229,0,1051,1067,3,328,164,0,1052, - 1067,3,562,281,0,1053,1067,3,470,235,0,1054,1067,3,322,161,0,1055, - 1067,3,468,234,0,1056,1067,3,554,277,0,1057,1067,3,506,253,0,1058, - 1067,3,60,30,0,1059,1067,3,36,18,0,1060,1067,3,68,34,0,1061,1067, - 3,478,239,0,1062,1064,5,584,0,0,1063,1065,5,585,0,0,1064,1063,1, - 0,0,0,1064,1065,1,0,0,0,1065,1067,1,0,0,0,1066,946,1,0,0,0,1066, - 947,1,0,0,0,1066,948,1,0,0,0,1066,949,1,0,0,0,1066,950,1,0,0,0,1066, - 951,1,0,0,0,1066,952,1,0,0,0,1066,953,1,0,0,0,1066,954,1,0,0,0,1066, - 955,1,0,0,0,1066,956,1,0,0,0,1066,957,1,0,0,0,1066,958,1,0,0,0,1066, - 959,1,0,0,0,1066,960,1,0,0,0,1066,961,1,0,0,0,1066,962,1,0,0,0,1066, - 963,1,0,0,0,1066,964,1,0,0,0,1066,965,1,0,0,0,1066,966,1,0,0,0,1066, - 967,1,0,0,0,1066,968,1,0,0,0,1066,969,1,0,0,0,1066,970,1,0,0,0,1066, - 971,1,0,0,0,1066,972,1,0,0,0,1066,973,1,0,0,0,1066,974,1,0,0,0,1066, - 975,1,0,0,0,1066,976,1,0,0,0,1066,977,1,0,0,0,1066,978,1,0,0,0,1066, - 979,1,0,0,0,1066,980,1,0,0,0,1066,981,1,0,0,0,1066,982,1,0,0,0,1066, - 983,1,0,0,0,1066,984,1,0,0,0,1066,985,1,0,0,0,1066,986,1,0,0,0,1066, - 987,1,0,0,0,1066,988,1,0,0,0,1066,989,1,0,0,0,1066,990,1,0,0,0,1066, - 991,1,0,0,0,1066,992,1,0,0,0,1066,993,1,0,0,0,1066,994,1,0,0,0,1066, - 995,1,0,0,0,1066,996,1,0,0,0,1066,997,1,0,0,0,1066,998,1,0,0,0,1066, - 999,1,0,0,0,1066,1000,1,0,0,0,1066,1001,1,0,0,0,1066,1002,1,0,0, - 0,1066,1003,1,0,0,0,1066,1004,1,0,0,0,1066,1005,1,0,0,0,1066,1006, - 1,0,0,0,1066,1007,1,0,0,0,1066,1008,1,0,0,0,1066,1009,1,0,0,0,1066, - 1010,1,0,0,0,1066,1011,1,0,0,0,1066,1012,1,0,0,0,1066,1013,1,0,0, - 0,1066,1014,1,0,0,0,1066,1015,1,0,0,0,1066,1016,1,0,0,0,1066,1017, - 1,0,0,0,1066,1018,1,0,0,0,1066,1019,1,0,0,0,1066,1020,1,0,0,0,1066, - 1021,1,0,0,0,1066,1022,1,0,0,0,1066,1023,1,0,0,0,1066,1024,1,0,0, - 0,1066,1025,1,0,0,0,1066,1026,1,0,0,0,1066,1027,1,0,0,0,1066,1028, - 1,0,0,0,1066,1029,1,0,0,0,1066,1030,1,0,0,0,1066,1031,1,0,0,0,1066, - 1032,1,0,0,0,1066,1033,1,0,0,0,1066,1034,1,0,0,0,1066,1035,1,0,0, - 0,1066,1036,1,0,0,0,1066,1037,1,0,0,0,1066,1038,1,0,0,0,1066,1039, - 1,0,0,0,1066,1040,1,0,0,0,1066,1041,1,0,0,0,1066,1042,1,0,0,0,1066, - 1043,1,0,0,0,1066,1044,1,0,0,0,1066,1045,1,0,0,0,1066,1046,1,0,0, - 0,1066,1047,1,0,0,0,1066,1048,1,0,0,0,1066,1049,1,0,0,0,1066,1050, - 1,0,0,0,1066,1051,1,0,0,0,1066,1052,1,0,0,0,1066,1053,1,0,0,0,1066, - 1054,1,0,0,0,1066,1055,1,0,0,0,1066,1056,1,0,0,0,1066,1057,1,0,0, - 0,1066,1058,1,0,0,0,1066,1059,1,0,0,0,1066,1060,1,0,0,0,1066,1061, - 1,0,0,0,1066,1062,1,0,0,0,1067,5,1,0,0,0,1068,1069,5,433,0,0,1069, - 1070,3,686,343,0,1070,7,1,0,0,0,1071,1072,5,46,0,0,1072,1073,5,318, - 0,0,1073,1075,3,816,408,0,1074,1076,5,105,0,0,1075,1074,1,0,0,0, - 1075,1076,1,0,0,0,1076,1080,1,0,0,0,1077,1079,3,12,6,0,1078,1077, - 1,0,0,0,1079,1082,1,0,0,0,1080,1078,1,0,0,0,1080,1081,1,0,0,0,1081, - 9,1,0,0,0,1082,1080,1,0,0,0,1083,1086,5,287,0,0,1084,1087,3,810, - 405,0,1085,1087,5,78,0,0,1086,1084,1,0,0,0,1086,1085,1,0,0,0,1087, - 1122,1,0,0,0,1088,1089,7,0,0,0,1089,1090,5,287,0,0,1090,1122,3,810, - 405,0,1091,1122,5,228,0,0,1092,1122,5,229,0,0,1093,1122,5,236,0, - 0,1094,1122,5,237,0,0,1095,1122,5,234,0,0,1096,1122,5,235,0,0,1097, - 1122,5,232,0,0,1098,1122,5,233,0,0,1099,1122,5,230,0,0,1100,1122, - 5,231,0,0,1101,1122,5,535,0,0,1102,1122,5,536,0,0,1103,1122,5,537, - 0,0,1104,1122,5,538,0,0,1105,1122,5,539,0,0,1106,1122,5,540,0,0, - 1107,1108,5,164,0,0,1108,1109,5,74,0,0,1109,1122,3,814,407,0,1110, - 1111,5,371,0,0,1111,1112,5,368,0,0,1112,1122,3,810,405,0,1113,1114, - 5,68,0,0,1114,1115,7,1,0,0,1115,1122,3,786,393,0,1116,1117,7,2,0, - 0,1117,1122,3,818,409,0,1118,1119,5,134,0,0,1119,1122,3,786,393, - 0,1120,1122,3,828,414,0,1121,1083,1,0,0,0,1121,1088,1,0,0,0,1121, - 1091,1,0,0,0,1121,1092,1,0,0,0,1121,1093,1,0,0,0,1121,1094,1,0,0, - 0,1121,1095,1,0,0,0,1121,1096,1,0,0,0,1121,1097,1,0,0,0,1121,1098, - 1,0,0,0,1121,1099,1,0,0,0,1121,1100,1,0,0,0,1121,1101,1,0,0,0,1121, - 1102,1,0,0,0,1121,1103,1,0,0,0,1121,1104,1,0,0,0,1121,1105,1,0,0, - 0,1121,1106,1,0,0,0,1121,1107,1,0,0,0,1121,1110,1,0,0,0,1121,1113, - 1,0,0,0,1121,1116,1,0,0,0,1121,1118,1,0,0,0,1121,1120,1,0,0,0,1122, - 11,1,0,0,0,1123,1132,3,10,5,0,1124,1125,5,348,0,0,1125,1132,5,574, - 0,0,1126,1127,7,3,0,0,1127,1132,3,818,409,0,1128,1129,5,68,0,0,1129, + 451,4,451,8326,8,451,11,451,12,451,8327,1,452,3,452,8331,8,452,1, + 452,1,452,3,452,8335,8,452,1,452,1,452,3,452,8339,8,452,3,452,8341, + 8,452,1,452,3,452,8344,8,452,1,452,3,452,8347,8,452,1,453,1,453, + 1,453,1,453,3,453,8353,8,453,1,453,1,453,1,453,1,453,1,453,3,453, + 8360,8,453,1,453,1,453,1,453,1,453,1,453,3,453,8367,8,453,1,453, + 1,453,1,453,1,453,3,453,8373,8,453,3,453,8375,8,453,1,454,1,454, + 3,454,8379,8,454,1,454,1,454,1,454,3,454,8384,8,454,1,454,1,454, + 1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455, + 1,455,5,455,8400,8,455,10,455,12,455,8403,9,455,1,455,1,455,4,455, + 8407,8,455,11,455,12,455,8408,1,456,1,456,1,456,1,456,1,456,5,456, + 8416,8,456,10,456,12,456,8419,9,456,1,456,1,456,1,456,1,456,3,456, + 8425,8,456,1,457,1,457,3,457,8429,8,457,1,458,1,458,1,458,1,458, + 1,459,1,459,1,459,1,460,1,460,1,460,3,460,8441,8,460,1,460,3,460, + 8444,8,460,1,460,1,460,1,461,1,461,1,461,1,461,1,461,1,461,1,461, + 1,461,1,461,3,461,8457,8,461,1,461,3,461,8460,8,461,1,462,1,462, + 3,462,8464,8,462,1,463,1,463,1,463,1,463,1,463,5,463,8471,8,463, + 10,463,12,463,8474,9,463,1,463,1,463,5,463,8478,8,463,10,463,12, + 463,8481,9,463,4,463,8483,8,463,11,463,12,463,8484,1,464,1,464,1, + 464,3,464,8490,8,464,1,465,1,465,3,465,8494,8,465,1,466,3,466,8497, + 8,466,1,466,3,466,8500,8,466,1,466,3,466,8503,8,466,1,466,3,466, + 8506,8,466,1,466,3,466,8509,8,466,1,466,1,466,3,466,8513,8,466,1, + 466,3,466,8516,8,466,1,466,0,3,678,682,684,467,0,2,4,6,8,10,12,14, + 16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58, + 60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100, + 102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132, + 134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164, + 166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196, + 198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228, + 230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260, + 262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292, + 294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324, + 326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356, + 358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388, + 390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420, + 422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452, + 454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484, + 486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516, + 518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548, + 550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580, + 582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612, + 614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644, + 646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676, + 678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708, + 710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740, + 742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772, + 774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804, + 806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836, + 838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868, + 870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900, + 902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932, + 0,119,2,0,195,195,364,364,2,0,66,66,318,318,2,0,99,99,318,318,2, + 0,134,134,318,318,1,0,529,531,2,0,10,10,94,94,2,0,133,133,191,191, + 2,0,254,254,332,332,2,0,162,162,363,363,2,0,180,180,221,221,5,0, + 30,30,288,288,329,329,352,352,354,354,2,0,109,109,532,532,2,0,158, + 158,277,277,2,0,367,367,439,439,2,0,139,139,312,312,2,0,191,191, + 333,333,2,0,313,313,333,333,2,0,150,150,315,315,2,0,64,64,94,94, + 4,0,78,78,183,183,197,197,298,298,1,0,549,551,2,0,213,213,254,254, + 2,0,352,352,354,354,2,0,200,200,224,224,9,0,30,30,160,160,165,165, + 179,179,219,219,227,227,342,342,345,345,438,438,3,0,113,113,284, + 284,336,336,2,0,53,53,78,78,2,0,105,105,379,379,2,0,260,260,262, + 262,3,0,173,173,260,260,262,262,1,0,12,13,2,0,64,64,375,375,2,0, + 156,156,206,206,2,0,189,189,360,360,2,0,215,215,373,373,3,0,133, + 133,191,191,333,333,5,0,30,30,88,88,182,182,241,241,369,369,2,0, + 9,9,94,94,2,0,92,92,226,226,1,0,448,449,2,0,92,92,414,414,2,0,341, + 341,414,414,4,0,163,163,185,185,283,283,353,353,2,0,135,135,145, + 145,2,0,211,211,278,278,3,0,321,321,357,357,445,445,3,0,66,66,99, + 99,318,318,5,0,108,108,168,168,226,226,328,328,342,342,2,0,167,167, + 314,314,2,0,61,61,265,265,4,0,207,207,249,249,268,268,293,293,2, + 0,130,130,307,307,2,0,64,64,68,68,10,0,46,46,88,88,182,182,202,202, + 241,241,352,352,354,354,357,358,369,369,521,523,5,0,212,212,329, + 329,350,350,455,455,457,457,5,0,212,212,329,329,350,350,361,361, + 455,456,2,0,37,37,55,55,2,0,207,207,249,249,2,0,10,10,53,53,2,0, + 181,181,243,243,2,0,170,170,320,320,2,0,141,141,223,223,5,0,108, + 108,168,168,189,189,342,342,360,360,2,0,226,226,328,328,2,0,163, + 163,185,185,2,0,186,186,193,193,4,0,88,88,182,182,241,241,369,369, + 2,0,137,137,242,242,2,0,161,161,319,319,4,0,129,129,161,161,319, + 319,454,454,2,0,356,356,380,380,2,0,81,81,382,382,2,0,151,151,254, + 254,2,0,133,133,138,138,1,0,31,32,2,0,128,128,547,547,2,0,60,60, + 96,96,2,0,99,99,349,349,2,0,131,131,414,414,2,0,201,201,334,334, + 3,0,59,59,70,70,97,97,2,0,30,30,56,56,1,0,527,528,2,0,207,207,268, + 268,2,0,320,320,414,414,2,0,574,574,576,576,1,0,468,469,4,0,113, + 113,115,115,119,119,126,126,2,0,360,360,477,477,2,0,394,395,409, + 409,2,0,391,392,406,406,1,0,391,392,1,0,418,419,5,0,10,10,16,17, + 21,21,23,23,25,25,3,0,9,9,14,14,27,27,2,0,98,98,396,396,2,0,50,51, + 75,76,2,0,41,41,420,420,3,0,39,39,73,73,95,95,4,0,393,393,399,399, + 404,404,425,425,2,0,292,292,347,347,2,0,166,166,188,188,2,0,304, + 304,450,450,3,0,299,299,320,320,481,481,2,0,208,208,289,289,3,0, + 30,30,34,34,90,90,6,0,9,10,12,17,21,21,23,23,25,25,27,27,2,0,114, + 114,120,120,2,0,20,20,22,22,1,0,483,486,17,0,53,53,116,116,123,124, + 129,228,238,386,433,452,455,469,471,471,473,473,475,475,477,488, + 490,502,504,504,506,518,520,520,524,524,547,548,3,0,106,123,125, + 128,472,472,4,0,30,52,54,70,72,105,454,454,2,0,62,62,116,116,2,0, + 10,10,20,20,2,0,434,434,501,501,2,0,167,167,507,507,1,0,512,517, + 2,0,144,144,210,210,9959,0,937,1,0,0,0,2,942,1,0,0,0,4,1066,1,0, + 0,0,6,1068,1,0,0,0,8,1071,1,0,0,0,10,1121,1,0,0,0,12,1131,1,0,0, + 0,14,1133,1,0,0,0,16,1145,1,0,0,0,18,1157,1,0,0,0,20,1168,1,0,0, + 0,22,1202,1,0,0,0,24,1246,1,0,0,0,26,1248,1,0,0,0,28,1260,1,0,0, + 0,30,1267,1,0,0,0,32,1286,1,0,0,0,34,1294,1,0,0,0,36,1296,1,0,0, + 0,38,1310,1,0,0,0,40,1314,1,0,0,0,42,1351,1,0,0,0,44,1353,1,0,0, + 0,46,1361,1,0,0,0,48,1371,1,0,0,0,50,1378,1,0,0,0,52,1386,1,0,0, + 0,54,1392,1,0,0,0,56,1408,1,0,0,0,58,1412,1,0,0,0,60,1414,1,0,0, + 0,62,1426,1,0,0,0,64,1431,1,0,0,0,66,1436,1,0,0,0,68,1438,1,0,0, + 0,70,1450,1,0,0,0,72,1458,1,0,0,0,74,1460,1,0,0,0,76,1584,1,0,0, + 0,78,1586,1,0,0,0,80,1603,1,0,0,0,82,1605,1,0,0,0,84,1619,1,0,0, + 0,86,1621,1,0,0,0,88,1635,1,0,0,0,90,1637,1,0,0,0,92,1874,1,0,0, + 0,94,1881,1,0,0,0,96,1883,1,0,0,0,98,1885,1,0,0,0,100,1888,1,0,0, + 0,102,1899,1,0,0,0,104,1902,1,0,0,0,106,1931,1,0,0,0,108,1933,1, + 0,0,0,110,1974,1,0,0,0,112,1976,1,0,0,0,114,2030,1,0,0,0,116,2076, + 1,0,0,0,118,2097,1,0,0,0,120,2099,1,0,0,0,122,2116,1,0,0,0,124,2197, + 1,0,0,0,126,2199,1,0,0,0,128,2210,1,0,0,0,130,2233,1,0,0,0,132,2251, + 1,0,0,0,134,2253,1,0,0,0,136,2288,1,0,0,0,138,2381,1,0,0,0,140,2386, + 1,0,0,0,142,2388,1,0,0,0,144,2486,1,0,0,0,146,2488,1,0,0,0,148,2492, + 1,0,0,0,150,2503,1,0,0,0,152,2511,1,0,0,0,154,2514,1,0,0,0,156,2517, + 1,0,0,0,158,2535,1,0,0,0,160,2537,1,0,0,0,162,2541,1,0,0,0,164,2554, + 1,0,0,0,166,2556,1,0,0,0,168,2561,1,0,0,0,170,2581,1,0,0,0,172,2589, + 1,0,0,0,174,2596,1,0,0,0,176,2598,1,0,0,0,178,2607,1,0,0,0,180,2610, + 1,0,0,0,182,2614,1,0,0,0,184,2618,1,0,0,0,186,2643,1,0,0,0,188,2653, + 1,0,0,0,190,2667,1,0,0,0,192,2683,1,0,0,0,194,2689,1,0,0,0,196,2716, + 1,0,0,0,198,2726,1,0,0,0,200,2742,1,0,0,0,202,2786,1,0,0,0,204,2793, + 1,0,0,0,206,2795,1,0,0,0,208,2821,1,0,0,0,210,2832,1,0,0,0,212,2851, + 1,0,0,0,214,2862,1,0,0,0,216,2900,1,0,0,0,218,2921,1,0,0,0,220,2923, + 1,0,0,0,222,2943,1,0,0,0,224,2955,1,0,0,0,226,2967,1,0,0,0,228,2970, + 1,0,0,0,230,2973,1,0,0,0,232,2993,1,0,0,0,234,2998,1,0,0,0,236,3047, + 1,0,0,0,238,3049,1,0,0,0,240,3072,1,0,0,0,242,3088,1,0,0,0,244,3100, + 1,0,0,0,246,3127,1,0,0,0,248,3142,1,0,0,0,250,3205,1,0,0,0,252,3207, + 1,0,0,0,254,3212,1,0,0,0,256,3218,1,0,0,0,258,3305,1,0,0,0,260,3311, + 1,0,0,0,262,3313,1,0,0,0,264,3329,1,0,0,0,266,3331,1,0,0,0,268,3340, + 1,0,0,0,270,3344,1,0,0,0,272,3357,1,0,0,0,274,3369,1,0,0,0,276,3371, + 1,0,0,0,278,3393,1,0,0,0,280,3405,1,0,0,0,282,3416,1,0,0,0,284,3507, + 1,0,0,0,286,3509,1,0,0,0,288,3520,1,0,0,0,290,3531,1,0,0,0,292,3533, + 1,0,0,0,294,3559,1,0,0,0,296,3561,1,0,0,0,298,3565,1,0,0,0,300,3615, + 1,0,0,0,302,3617,1,0,0,0,304,3623,1,0,0,0,306,3648,1,0,0,0,308,3652, + 1,0,0,0,310,3866,1,0,0,0,312,3884,1,0,0,0,314,3910,1,0,0,0,316,3912, + 1,0,0,0,318,3920,1,0,0,0,320,3926,1,0,0,0,322,3930,1,0,0,0,324,3950, + 1,0,0,0,326,3956,1,0,0,0,328,4023,1,0,0,0,330,4054,1,0,0,0,332,4100, + 1,0,0,0,334,4102,1,0,0,0,336,4104,1,0,0,0,338,4115,1,0,0,0,340,4152, + 1,0,0,0,342,4154,1,0,0,0,344,4160,1,0,0,0,346,4210,1,0,0,0,348,4213, + 1,0,0,0,350,4227,1,0,0,0,352,4248,1,0,0,0,354,4272,1,0,0,0,356,4313, + 1,0,0,0,358,4315,1,0,0,0,360,4317,1,0,0,0,362,4357,1,0,0,0,364,4374, + 1,0,0,0,366,4394,1,0,0,0,368,4447,1,0,0,0,370,4450,1,0,0,0,372,4456, + 1,0,0,0,374,4464,1,0,0,0,376,4477,1,0,0,0,378,4479,1,0,0,0,380,4492, + 1,0,0,0,382,4494,1,0,0,0,384,4507,1,0,0,0,386,4517,1,0,0,0,388,4528, + 1,0,0,0,390,4539,1,0,0,0,392,4541,1,0,0,0,394,4546,1,0,0,0,396,4560, + 1,0,0,0,398,4592,1,0,0,0,400,4629,1,0,0,0,402,4631,1,0,0,0,404,4634, + 1,0,0,0,406,4637,1,0,0,0,408,4654,1,0,0,0,410,4675,1,0,0,0,412,4691, + 1,0,0,0,414,4707,1,0,0,0,416,4729,1,0,0,0,418,4734,1,0,0,0,420,4737, + 1,0,0,0,422,4745,1,0,0,0,424,4770,1,0,0,0,426,4773,1,0,0,0,428,4801, + 1,0,0,0,430,4806,1,0,0,0,432,4846,1,0,0,0,434,5058,1,0,0,0,436,5060, + 1,0,0,0,438,5148,1,0,0,0,440,5150,1,0,0,0,442,5156,1,0,0,0,444,5167, + 1,0,0,0,446,5177,1,0,0,0,448,5257,1,0,0,0,450,5259,1,0,0,0,452,5273, + 1,0,0,0,454,5295,1,0,0,0,456,5368,1,0,0,0,458,5370,1,0,0,0,460,5411, + 1,0,0,0,462,5413,1,0,0,0,464,5418,1,0,0,0,466,5421,1,0,0,0,468,5424, + 1,0,0,0,470,5474,1,0,0,0,472,5476,1,0,0,0,474,5487,1,0,0,0,476,5489, + 1,0,0,0,478,5499,1,0,0,0,480,5534,1,0,0,0,482,5537,1,0,0,0,484,5558, + 1,0,0,0,486,5568,1,0,0,0,488,5588,1,0,0,0,490,5594,1,0,0,0,492,5600, + 1,0,0,0,494,5605,1,0,0,0,496,5618,1,0,0,0,498,5645,1,0,0,0,500,5693, + 1,0,0,0,502,5695,1,0,0,0,504,5733,1,0,0,0,506,5735,1,0,0,0,508,5756, + 1,0,0,0,510,5776,1,0,0,0,512,5780,1,0,0,0,514,5795,1,0,0,0,516,5797, + 1,0,0,0,518,5801,1,0,0,0,520,5805,1,0,0,0,522,5813,1,0,0,0,524,5837, + 1,0,0,0,526,5839,1,0,0,0,528,5850,1,0,0,0,530,5858,1,0,0,0,532,5874, + 1,0,0,0,534,5899,1,0,0,0,536,5901,1,0,0,0,538,5905,1,0,0,0,540,5914, + 1,0,0,0,542,5954,1,0,0,0,544,5965,1,0,0,0,546,5973,1,0,0,0,548,5976, + 1,0,0,0,550,5980,1,0,0,0,552,5995,1,0,0,0,554,6020,1,0,0,0,556,6035, + 1,0,0,0,558,6061,1,0,0,0,560,6063,1,0,0,0,562,6086,1,0,0,0,564,6088, + 1,0,0,0,566,6096,1,0,0,0,568,6114,1,0,0,0,570,6138,1,0,0,0,572,6150, + 1,0,0,0,574,6154,1,0,0,0,576,6166,1,0,0,0,578,6186,1,0,0,0,580,6194, + 1,0,0,0,582,6208,1,0,0,0,584,6231,1,0,0,0,586,6233,1,0,0,0,588,6238, + 1,0,0,0,590,6248,1,0,0,0,592,6269,1,0,0,0,594,6271,1,0,0,0,596,6280, + 1,0,0,0,598,6291,1,0,0,0,600,6301,1,0,0,0,602,6303,1,0,0,0,604,6310, + 1,0,0,0,606,6341,1,0,0,0,608,6371,1,0,0,0,610,6373,1,0,0,0,612,6382, + 1,0,0,0,614,6385,1,0,0,0,616,6456,1,0,0,0,618,6480,1,0,0,0,620,6501, + 1,0,0,0,622,6503,1,0,0,0,624,6511,1,0,0,0,626,6528,1,0,0,0,628,6554, + 1,0,0,0,630,6556,1,0,0,0,632,6564,1,0,0,0,634,6571,1,0,0,0,636,6595, + 1,0,0,0,638,6601,1,0,0,0,640,6609,1,0,0,0,642,6612,1,0,0,0,644,6619, + 1,0,0,0,646,6627,1,0,0,0,648,6632,1,0,0,0,650,6662,1,0,0,0,652,6689, + 1,0,0,0,654,6717,1,0,0,0,656,6734,1,0,0,0,658,6740,1,0,0,0,660,6758, + 1,0,0,0,662,6760,1,0,0,0,664,6764,1,0,0,0,666,6781,1,0,0,0,668,6786, + 1,0,0,0,670,6824,1,0,0,0,672,6826,1,0,0,0,674,6830,1,0,0,0,676,6832, + 1,0,0,0,678,6841,1,0,0,0,680,6925,1,0,0,0,682,6931,1,0,0,0,684,7040, + 1,0,0,0,686,7072,1,0,0,0,688,7123,1,0,0,0,690,7127,1,0,0,0,692,7303, + 1,0,0,0,694,7305,1,0,0,0,696,7313,1,0,0,0,698,7318,1,0,0,0,700,7320, + 1,0,0,0,702,7328,1,0,0,0,704,7331,1,0,0,0,706,7340,1,0,0,0,708,7344, + 1,0,0,0,710,7349,1,0,0,0,712,7366,1,0,0,0,714,7393,1,0,0,0,716,7402, + 1,0,0,0,718,7404,1,0,0,0,720,7411,1,0,0,0,722,7415,1,0,0,0,724,7417, + 1,0,0,0,726,7425,1,0,0,0,728,7433,1,0,0,0,730,7440,1,0,0,0,732,7442, + 1,0,0,0,734,7455,1,0,0,0,736,7459,1,0,0,0,738,7461,1,0,0,0,740,7476, + 1,0,0,0,742,7478,1,0,0,0,744,7500,1,0,0,0,746,7502,1,0,0,0,748,7525, + 1,0,0,0,750,7527,1,0,0,0,752,7549,1,0,0,0,754,7552,1,0,0,0,756,7559, + 1,0,0,0,758,7562,1,0,0,0,760,7578,1,0,0,0,762,7580,1,0,0,0,764,7588, + 1,0,0,0,766,7596,1,0,0,0,768,7604,1,0,0,0,770,7612,1,0,0,0,772,7614, + 1,0,0,0,774,7616,1,0,0,0,776,7618,1,0,0,0,778,7620,1,0,0,0,780,7622, + 1,0,0,0,782,7624,1,0,0,0,784,7628,1,0,0,0,786,7636,1,0,0,0,788,7644, + 1,0,0,0,790,7646,1,0,0,0,792,7648,1,0,0,0,794,7650,1,0,0,0,796,7652, + 1,0,0,0,798,7658,1,0,0,0,800,7664,1,0,0,0,802,7670,1,0,0,0,804,7672, + 1,0,0,0,806,7678,1,0,0,0,808,7684,1,0,0,0,810,7686,1,0,0,0,812,7702, + 1,0,0,0,814,7705,1,0,0,0,816,7714,1,0,0,0,818,7716,1,0,0,0,820,7726, + 1,0,0,0,822,7730,1,0,0,0,824,7735,1,0,0,0,826,7741,1,0,0,0,828,7754, + 1,0,0,0,830,7756,1,0,0,0,832,7809,1,0,0,0,834,7811,1,0,0,0,836,7813, + 1,0,0,0,838,7816,1,0,0,0,840,7844,1,0,0,0,842,7848,1,0,0,0,844,7899, + 1,0,0,0,846,7902,1,0,0,0,848,7928,1,0,0,0,850,7930,1,0,0,0,852,7953, + 1,0,0,0,854,7955,1,0,0,0,856,7960,1,0,0,0,858,7975,1,0,0,0,860,7981, + 1,0,0,0,862,7992,1,0,0,0,864,8022,1,0,0,0,866,8029,1,0,0,0,868,8054, + 1,0,0,0,870,8064,1,0,0,0,872,8091,1,0,0,0,874,8104,1,0,0,0,876,8114, + 1,0,0,0,878,8133,1,0,0,0,880,8165,1,0,0,0,882,8169,1,0,0,0,884,8177, + 1,0,0,0,886,8191,1,0,0,0,888,8197,1,0,0,0,890,8218,1,0,0,0,892,8224, + 1,0,0,0,894,8263,1,0,0,0,896,8267,1,0,0,0,898,8293,1,0,0,0,900,8295, + 1,0,0,0,902,8303,1,0,0,0,904,8340,1,0,0,0,906,8374,1,0,0,0,908,8376, + 1,0,0,0,910,8387,1,0,0,0,912,8424,1,0,0,0,914,8428,1,0,0,0,916,8430, + 1,0,0,0,918,8434,1,0,0,0,920,8437,1,0,0,0,922,8459,1,0,0,0,924,8463, + 1,0,0,0,926,8465,1,0,0,0,928,8489,1,0,0,0,930,8493,1,0,0,0,932,8496, + 1,0,0,0,934,936,3,2,1,0,935,934,1,0,0,0,936,939,1,0,0,0,937,935, + 1,0,0,0,937,938,1,0,0,0,938,940,1,0,0,0,939,937,1,0,0,0,940,941, + 5,0,0,1,941,1,1,0,0,0,942,944,3,4,2,0,943,945,5,7,0,0,944,943,1, + 0,0,0,944,945,1,0,0,0,945,3,1,0,0,0,946,1067,3,280,140,0,947,1067, + 3,490,245,0,948,1067,3,486,243,0,949,1067,3,488,244,0,950,1067,3, + 354,177,0,951,1067,3,496,248,0,952,1067,3,294,147,0,953,1067,3,212, + 106,0,954,1067,3,214,107,0,955,1067,3,220,110,0,956,1067,3,234,117, + 0,957,1067,3,406,203,0,958,1067,3,28,14,0,959,1067,3,436,218,0,960, + 1067,3,438,219,0,961,1067,3,448,224,0,962,1067,3,440,220,0,963,1067, + 3,446,223,0,964,1067,3,246,123,0,965,1067,3,248,124,0,966,1067,3, + 200,100,0,967,1067,3,492,246,0,968,1067,3,76,38,0,969,1067,3,432, + 216,0,970,1067,3,108,54,0,971,1067,3,452,226,0,972,1067,3,18,9,0, + 973,1067,3,20,10,0,974,1067,3,16,8,0,975,1067,3,456,228,0,976,1067, + 3,186,93,0,977,1067,3,500,250,0,978,1067,3,498,249,0,979,1067,3, + 242,121,0,980,1067,3,508,254,0,981,1067,3,6,3,0,982,1067,3,72,36, + 0,983,1067,3,112,56,0,984,1067,3,504,252,0,985,1067,3,326,163,0, + 986,1067,3,70,35,0,987,1067,3,114,57,0,988,1067,3,256,128,0,989, + 1067,3,188,94,0,990,1067,3,282,141,0,991,1067,3,422,211,0,992,1067, + 3,502,251,0,993,1067,3,494,247,0,994,1067,3,210,105,0,995,1067,3, + 216,108,0,996,1067,3,230,115,0,997,1067,3,236,118,0,998,1067,3,366, + 183,0,999,1067,3,26,13,0,1000,1067,3,194,97,0,1001,1067,3,298,149, + 0,1002,1067,3,302,151,0,1003,1067,3,450,225,0,1004,1067,3,304,152, + 0,1005,1067,3,244,122,0,1006,1067,3,206,103,0,1007,1067,3,30,15, + 0,1008,1067,3,198,99,0,1009,1067,3,122,61,0,1010,1067,3,454,227, + 0,1011,1067,3,184,92,0,1012,1067,3,208,104,0,1013,1067,3,426,213, + 0,1014,1067,3,258,129,0,1015,1067,3,276,138,0,1016,1067,3,8,4,0, + 1017,1067,3,14,7,0,1018,1067,3,240,120,0,1019,1067,3,482,241,0,1020, + 1067,3,538,269,0,1021,1067,3,560,280,0,1022,1067,3,284,142,0,1023, + 1067,3,550,275,0,1024,1067,3,74,37,0,1025,1067,3,420,210,0,1026, + 1067,3,310,155,0,1027,1067,3,534,267,0,1028,1067,3,522,261,0,1029, + 1067,3,330,165,0,1030,1067,3,336,168,0,1031,1067,3,350,175,0,1032, + 1067,3,902,451,0,1033,1067,3,238,119,0,1034,1067,3,360,180,0,1035, + 1067,3,540,270,0,1036,1067,3,466,233,0,1037,1067,3,196,98,0,1038, + 1067,3,480,240,0,1039,1067,3,552,276,0,1040,1067,3,462,231,0,1041, + 1067,3,528,264,0,1042,1067,3,308,154,0,1043,1067,3,430,215,0,1044, + 1067,3,410,205,0,1045,1067,3,408,204,0,1046,1067,3,412,206,0,1047, + 1067,3,434,217,0,1048,1067,3,338,169,0,1049,1067,3,352,176,0,1050, + 1067,3,458,229,0,1051,1067,3,328,164,0,1052,1067,3,562,281,0,1053, + 1067,3,470,235,0,1054,1067,3,322,161,0,1055,1067,3,468,234,0,1056, + 1067,3,554,277,0,1057,1067,3,506,253,0,1058,1067,3,60,30,0,1059, + 1067,3,36,18,0,1060,1067,3,68,34,0,1061,1067,3,478,239,0,1062,1064, + 5,584,0,0,1063,1065,5,585,0,0,1064,1063,1,0,0,0,1064,1065,1,0,0, + 0,1065,1067,1,0,0,0,1066,946,1,0,0,0,1066,947,1,0,0,0,1066,948,1, + 0,0,0,1066,949,1,0,0,0,1066,950,1,0,0,0,1066,951,1,0,0,0,1066,952, + 1,0,0,0,1066,953,1,0,0,0,1066,954,1,0,0,0,1066,955,1,0,0,0,1066, + 956,1,0,0,0,1066,957,1,0,0,0,1066,958,1,0,0,0,1066,959,1,0,0,0,1066, + 960,1,0,0,0,1066,961,1,0,0,0,1066,962,1,0,0,0,1066,963,1,0,0,0,1066, + 964,1,0,0,0,1066,965,1,0,0,0,1066,966,1,0,0,0,1066,967,1,0,0,0,1066, + 968,1,0,0,0,1066,969,1,0,0,0,1066,970,1,0,0,0,1066,971,1,0,0,0,1066, + 972,1,0,0,0,1066,973,1,0,0,0,1066,974,1,0,0,0,1066,975,1,0,0,0,1066, + 976,1,0,0,0,1066,977,1,0,0,0,1066,978,1,0,0,0,1066,979,1,0,0,0,1066, + 980,1,0,0,0,1066,981,1,0,0,0,1066,982,1,0,0,0,1066,983,1,0,0,0,1066, + 984,1,0,0,0,1066,985,1,0,0,0,1066,986,1,0,0,0,1066,987,1,0,0,0,1066, + 988,1,0,0,0,1066,989,1,0,0,0,1066,990,1,0,0,0,1066,991,1,0,0,0,1066, + 992,1,0,0,0,1066,993,1,0,0,0,1066,994,1,0,0,0,1066,995,1,0,0,0,1066, + 996,1,0,0,0,1066,997,1,0,0,0,1066,998,1,0,0,0,1066,999,1,0,0,0,1066, + 1000,1,0,0,0,1066,1001,1,0,0,0,1066,1002,1,0,0,0,1066,1003,1,0,0, + 0,1066,1004,1,0,0,0,1066,1005,1,0,0,0,1066,1006,1,0,0,0,1066,1007, + 1,0,0,0,1066,1008,1,0,0,0,1066,1009,1,0,0,0,1066,1010,1,0,0,0,1066, + 1011,1,0,0,0,1066,1012,1,0,0,0,1066,1013,1,0,0,0,1066,1014,1,0,0, + 0,1066,1015,1,0,0,0,1066,1016,1,0,0,0,1066,1017,1,0,0,0,1066,1018, + 1,0,0,0,1066,1019,1,0,0,0,1066,1020,1,0,0,0,1066,1021,1,0,0,0,1066, + 1022,1,0,0,0,1066,1023,1,0,0,0,1066,1024,1,0,0,0,1066,1025,1,0,0, + 0,1066,1026,1,0,0,0,1066,1027,1,0,0,0,1066,1028,1,0,0,0,1066,1029, + 1,0,0,0,1066,1030,1,0,0,0,1066,1031,1,0,0,0,1066,1032,1,0,0,0,1066, + 1033,1,0,0,0,1066,1034,1,0,0,0,1066,1035,1,0,0,0,1066,1036,1,0,0, + 0,1066,1037,1,0,0,0,1066,1038,1,0,0,0,1066,1039,1,0,0,0,1066,1040, + 1,0,0,0,1066,1041,1,0,0,0,1066,1042,1,0,0,0,1066,1043,1,0,0,0,1066, + 1044,1,0,0,0,1066,1045,1,0,0,0,1066,1046,1,0,0,0,1066,1047,1,0,0, + 0,1066,1048,1,0,0,0,1066,1049,1,0,0,0,1066,1050,1,0,0,0,1066,1051, + 1,0,0,0,1066,1052,1,0,0,0,1066,1053,1,0,0,0,1066,1054,1,0,0,0,1066, + 1055,1,0,0,0,1066,1056,1,0,0,0,1066,1057,1,0,0,0,1066,1058,1,0,0, + 0,1066,1059,1,0,0,0,1066,1060,1,0,0,0,1066,1061,1,0,0,0,1066,1062, + 1,0,0,0,1067,5,1,0,0,0,1068,1069,5,433,0,0,1069,1070,3,686,343,0, + 1070,7,1,0,0,0,1071,1072,5,46,0,0,1072,1073,5,318,0,0,1073,1075, + 3,816,408,0,1074,1076,5,105,0,0,1075,1074,1,0,0,0,1075,1076,1,0, + 0,0,1076,1080,1,0,0,0,1077,1079,3,12,6,0,1078,1077,1,0,0,0,1079, + 1082,1,0,0,0,1080,1078,1,0,0,0,1080,1081,1,0,0,0,1081,9,1,0,0,0, + 1082,1080,1,0,0,0,1083,1086,5,287,0,0,1084,1087,3,810,405,0,1085, + 1087,5,78,0,0,1086,1084,1,0,0,0,1086,1085,1,0,0,0,1087,1122,1,0, + 0,0,1088,1089,7,0,0,0,1089,1090,5,287,0,0,1090,1122,3,810,405,0, + 1091,1122,5,228,0,0,1092,1122,5,229,0,0,1093,1122,5,236,0,0,1094, + 1122,5,237,0,0,1095,1122,5,234,0,0,1096,1122,5,235,0,0,1097,1122, + 5,232,0,0,1098,1122,5,233,0,0,1099,1122,5,230,0,0,1100,1122,5,231, + 0,0,1101,1122,5,535,0,0,1102,1122,5,536,0,0,1103,1122,5,537,0,0, + 1104,1122,5,538,0,0,1105,1122,5,539,0,0,1106,1122,5,540,0,0,1107, + 1108,5,164,0,0,1108,1109,5,74,0,0,1109,1122,3,814,407,0,1110,1111, + 5,371,0,0,1111,1112,5,368,0,0,1112,1122,3,810,405,0,1113,1114,5, + 68,0,0,1114,1115,7,1,0,0,1115,1122,3,786,393,0,1116,1117,7,2,0,0, + 1117,1122,3,818,409,0,1118,1119,5,134,0,0,1119,1122,3,786,393,0, + 1120,1122,3,828,414,0,1121,1083,1,0,0,0,1121,1088,1,0,0,0,1121,1091, + 1,0,0,0,1121,1092,1,0,0,0,1121,1093,1,0,0,0,1121,1094,1,0,0,0,1121, + 1095,1,0,0,0,1121,1096,1,0,0,0,1121,1097,1,0,0,0,1121,1098,1,0,0, + 0,1121,1099,1,0,0,0,1121,1100,1,0,0,0,1121,1101,1,0,0,0,1121,1102, + 1,0,0,0,1121,1103,1,0,0,0,1121,1104,1,0,0,0,1121,1105,1,0,0,0,1121, + 1106,1,0,0,0,1121,1107,1,0,0,0,1121,1110,1,0,0,0,1121,1113,1,0,0, + 0,1121,1116,1,0,0,0,1121,1118,1,0,0,0,1121,1120,1,0,0,0,1122,11, + 1,0,0,0,1123,1132,3,10,5,0,1124,1125,5,348,0,0,1125,1132,5,574,0, + 0,1126,1127,7,3,0,0,1127,1132,3,818,409,0,1128,1129,5,68,0,0,1129, 1130,7,1,0,0,1130,1132,3,818,409,0,1131,1123,1,0,0,0,1131,1124,1, 0,0,0,1131,1126,1,0,0,0,1131,1128,1,0,0,0,1132,13,1,0,0,0,1133,1134, 5,46,0,0,1134,1135,5,99,0,0,1135,1137,3,816,408,0,1136,1138,5,105, @@ -58170,165 +58161,164 @@ export class PostgreSqlParser extends SQLParserBase { 410,0,8318,8315,1,0,0,0,8318,8319,1,0,0,0,8319,8320,1,0,0,0,8320, 8321,5,100,0,0,8321,8322,3,904,452,0,8322,8323,5,80,0,0,8323,8325, 3,676,338,0,8324,8326,3,906,453,0,8325,8324,1,0,0,0,8326,8327,1, - 0,0,0,8327,8325,1,0,0,0,8327,8328,1,0,0,0,8328,8330,1,0,0,0,8329, - 8331,3,548,274,0,8330,8329,1,0,0,0,8330,8331,1,0,0,0,8331,903,1, - 0,0,0,8332,8334,5,81,0,0,8333,8332,1,0,0,0,8333,8334,1,0,0,0,8334, - 8335,1,0,0,0,8335,8337,3,776,388,0,8336,8338,5,9,0,0,8337,8336,1, - 0,0,0,8337,8338,1,0,0,0,8338,8344,1,0,0,0,8339,8342,3,566,283,0, - 8340,8342,3,610,305,0,8341,8339,1,0,0,0,8341,8340,1,0,0,0,8342,8344, - 1,0,0,0,8343,8333,1,0,0,0,8343,8341,1,0,0,0,8344,8349,1,0,0,0,8345, - 8347,5,36,0,0,8346,8345,1,0,0,0,8346,8347,1,0,0,0,8347,8348,1,0, - 0,0,8348,8350,3,820,410,0,8349,8346,1,0,0,0,8349,8350,1,0,0,0,8350, - 905,1,0,0,0,8351,8352,5,102,0,0,8352,8355,5,526,0,0,8353,8354,5, - 33,0,0,8354,8356,3,676,338,0,8355,8353,1,0,0,0,8355,8356,1,0,0,0, - 8356,8357,1,0,0,0,8357,8362,5,93,0,0,8358,8363,3,910,455,0,8359, - 8363,5,182,0,0,8360,8361,5,57,0,0,8361,8363,5,270,0,0,8362,8358, - 1,0,0,0,8362,8359,1,0,0,0,8362,8360,1,0,0,0,8363,8378,1,0,0,0,8364, - 8365,5,102,0,0,8365,8366,5,77,0,0,8366,8369,5,526,0,0,8367,8368, - 5,33,0,0,8368,8370,3,676,338,0,8369,8367,1,0,0,0,8369,8370,1,0,0, - 0,8370,8371,1,0,0,0,8371,8375,5,93,0,0,8372,8376,3,908,454,0,8373, - 8374,5,57,0,0,8374,8376,5,270,0,0,8375,8372,1,0,0,0,8375,8373,1, - 0,0,0,8376,8378,1,0,0,0,8377,8351,1,0,0,0,8377,8364,1,0,0,0,8378, - 907,1,0,0,0,8379,8381,5,241,0,0,8380,8382,3,146,73,0,8381,8380,1, - 0,0,0,8381,8382,1,0,0,0,8382,8386,1,0,0,0,8383,8384,5,463,0,0,8384, - 8385,7,77,0,0,8385,8387,5,450,0,0,8386,8383,1,0,0,0,8386,8387,1, - 0,0,0,8387,8388,1,0,0,0,8388,8389,3,912,456,0,8389,909,1,0,0,0,8390, - 8391,5,369,0,0,8391,8409,5,333,0,0,8392,8393,3,802,401,0,8393,8394, - 5,10,0,0,8394,8395,3,914,457,0,8395,8410,1,0,0,0,8396,8397,3,146, - 73,0,8397,8398,5,10,0,0,8398,8399,5,2,0,0,8399,8404,3,914,457,0, - 8400,8401,5,6,0,0,8401,8403,3,914,457,0,8402,8400,1,0,0,0,8403,8406, - 1,0,0,0,8404,8402,1,0,0,0,8404,8405,1,0,0,0,8405,8407,1,0,0,0,8406, - 8404,1,0,0,0,8407,8408,5,3,0,0,8408,8410,1,0,0,0,8409,8392,1,0,0, - 0,8409,8396,1,0,0,0,8410,8411,1,0,0,0,8411,8409,1,0,0,0,8411,8412, - 1,0,0,0,8412,911,1,0,0,0,8413,8414,5,422,0,0,8414,8415,5,2,0,0,8415, - 8420,3,914,457,0,8416,8417,5,6,0,0,8417,8419,3,914,457,0,8418,8416, - 1,0,0,0,8419,8422,1,0,0,0,8420,8418,1,0,0,0,8420,8421,1,0,0,0,8421, - 8423,1,0,0,0,8422,8420,1,0,0,0,8423,8424,5,3,0,0,8424,8428,1,0,0, - 0,8425,8426,5,53,0,0,8426,8428,5,422,0,0,8427,8413,1,0,0,0,8427, - 8425,1,0,0,0,8428,913,1,0,0,0,8429,8432,3,590,295,0,8430,8432,5, - 53,0,0,8431,8429,1,0,0,0,8431,8430,1,0,0,0,8432,915,1,0,0,0,8433, - 8434,5,157,0,0,8434,8435,3,924,462,0,8435,8436,5,7,0,0,8436,917, - 1,0,0,0,8437,8438,5,78,0,0,8438,8439,5,7,0,0,8439,919,1,0,0,0,8440, - 8446,7,68,0,0,8441,8443,5,33,0,0,8442,8444,5,269,0,0,8443,8442,1, - 0,0,0,8443,8444,1,0,0,0,8444,8445,1,0,0,0,8445,8447,5,153,0,0,8446, - 8441,1,0,0,0,8446,8447,1,0,0,0,8447,8448,1,0,0,0,8448,8449,5,7,0, - 0,8449,921,1,0,0,0,8450,8451,5,333,0,0,8451,8452,3,318,159,0,8452, - 8453,5,94,0,0,8453,8454,5,53,0,0,8454,8455,5,7,0,0,8455,8463,1,0, - 0,0,8456,8459,5,313,0,0,8457,8460,3,318,159,0,8458,8460,5,30,0,0, - 8459,8457,1,0,0,0,8459,8458,1,0,0,0,8460,8461,1,0,0,0,8461,8463, - 5,7,0,0,8462,8450,1,0,0,0,8462,8456,1,0,0,0,8463,923,1,0,0,0,8464, - 8467,3,820,410,0,8465,8467,5,28,0,0,8466,8464,1,0,0,0,8466,8465, - 1,0,0,0,8467,925,1,0,0,0,8468,8485,5,517,0,0,8469,8470,5,102,0,0, - 8470,8475,3,928,464,0,8471,8472,5,82,0,0,8472,8474,3,928,464,0,8473, - 8471,1,0,0,0,8474,8477,1,0,0,0,8475,8473,1,0,0,0,8475,8476,1,0,0, - 0,8476,8478,1,0,0,0,8477,8475,1,0,0,0,8478,8482,5,93,0,0,8479,8481, - 3,848,424,0,8480,8479,1,0,0,0,8481,8484,1,0,0,0,8482,8480,1,0,0, - 0,8482,8483,1,0,0,0,8483,8486,1,0,0,0,8484,8482,1,0,0,0,8485,8469, - 1,0,0,0,8486,8487,1,0,0,0,8487,8485,1,0,0,0,8487,8488,1,0,0,0,8488, - 927,1,0,0,0,8489,8493,3,930,465,0,8490,8491,5,511,0,0,8491,8493, - 3,810,405,0,8492,8489,1,0,0,0,8492,8490,1,0,0,0,8493,929,1,0,0,0, - 8494,8497,3,820,410,0,8495,8497,3,830,415,0,8496,8494,1,0,0,0,8496, - 8495,1,0,0,0,8497,931,1,0,0,0,8498,8500,3,758,379,0,8499,8498,1, - 0,0,0,8499,8500,1,0,0,0,8500,8502,1,0,0,0,8501,8503,3,582,291,0, - 8502,8501,1,0,0,0,8502,8503,1,0,0,0,8503,8505,1,0,0,0,8504,8506, - 3,612,306,0,8505,8504,1,0,0,0,8505,8506,1,0,0,0,8506,8508,1,0,0, - 0,8507,8509,3,640,320,0,8508,8507,1,0,0,0,8508,8509,1,0,0,0,8509, - 8511,1,0,0,0,8510,8512,3,602,301,0,8511,8510,1,0,0,0,8511,8512,1, - 0,0,0,8512,8515,1,0,0,0,8513,8514,5,67,0,0,8514,8516,3,676,338,0, - 8515,8513,1,0,0,0,8515,8516,1,0,0,0,8516,8518,1,0,0,0,8517,8519, - 3,704,352,0,8518,8517,1,0,0,0,8518,8519,1,0,0,0,8519,933,1,0,0,0, - 1194,937,944,1064,1066,1075,1080,1086,1121,1131,1137,1142,1149,1154, - 1161,1172,1180,1184,1196,1202,1208,1212,1217,1221,1234,1244,1246, - 1252,1257,1270,1273,1278,1283,1294,1298,1310,1314,1317,1321,1333, - 1351,1358,1366,1371,1378,1386,1392,1400,1408,1412,1426,1431,1436, - 1448,1454,1466,1471,1481,1487,1492,1500,1505,1512,1517,1522,1532, - 1537,1542,1549,1553,1567,1573,1579,1584,1591,1603,1611,1619,1635, - 1644,1653,1662,1666,1678,1686,1696,1716,1721,1724,1731,1734,1738, - 1742,1745,1750,1755,1759,1768,1774,1778,1787,1790,1796,1805,1817, - 1821,1825,1830,1833,1839,1841,1843,1847,1853,1857,1862,1867,1871, - 1874,1881,1894,1907,1931,1941,1948,1953,1957,1964,1969,1972,1974, - 1979,1983,1987,1991,1996,1999,2003,2006,2010,2018,2023,2026,2030, - 2036,2045,2049,2059,2064,2068,2072,2074,2076,2083,2088,2092,2097, - 2109,2114,2118,2122,2127,2131,2134,2137,2140,2143,2146,2151,2154, - 2157,2160,2163,2166,2172,2176,2179,2182,2185,2188,2190,2197,2205, - 2215,2220,2230,2233,2238,2243,2248,2251,2256,2265,2267,2271,2274, - 2278,2283,2288,2292,2295,2299,2302,2307,2310,2315,2318,2322,2325, - 2328,2333,2336,2344,2356,2360,2367,2372,2375,2378,2381,2386,2397, - 2403,2407,2410,2413,2418,2425,2428,2432,2440,2445,2448,2451,2458, - 2463,2472,2475,2478,2483,2486,2498,2508,2525,2529,2533,2535,2552, - 2554,2570,2581,2584,2587,2596,2605,2621,2624,2627,2635,2639,2646, - 2655,2659,2665,2669,2672,2675,2678,2681,2687,2691,2696,2700,2703, - 2706,2709,2714,2720,2724,2728,2732,2738,2740,2745,2751,2757,2761, - 2776,2781,2784,2786,2789,2793,2797,2800,2803,2811,2817,2819,2825, - 2830,2835,2839,2846,2848,2859,2898,2908,2910,2913,2917,2921,2931, - 2933,2939,2941,2950,2962,2976,2981,2984,2991,2996,3004,3006,3012, - 3017,3021,3026,3032,3039,3045,3047,3056,3062,3070,3076,3081,3086, - 3094,3109,3111,3115,3119,3122,3125,3134,3137,3140,3146,3152,3156, - 3168,3174,3177,3182,3186,3193,3203,3205,3229,3241,3246,3248,3252, - 3255,3258,3268,3271,3281,3286,3291,3294,3297,3305,3311,3318,3326, - 3329,3340,3344,3350,3357,3360,3369,3383,3386,3400,3411,3414,3426, - 3431,3444,3449,3462,3471,3474,3477,3484,3487,3499,3505,3507,3515, - 3523,3531,3543,3548,3559,3570,3578,3586,3593,3600,3602,3605,3610, - 3615,3634,3643,3646,3673,3682,3685,3689,3693,3697,3704,3708,3712, - 3716,3720,3725,3729,3734,3740,3745,3752,3756,3762,3766,3771,3779, - 3785,3790,3797,3802,3806,3811,3817,3824,3829,3836,3841,3848,3852, - 3860,3864,3866,3869,3874,3884,3899,3902,3910,3917,3922,3928,3932, - 3939,3944,3947,3950,3954,3963,3981,3984,4016,4021,4027,4047,4052, - 4058,4061,4065,4069,4075,4078,4082,4086,4091,4094,4097,4100,4113, - 4119,4127,4134,4139,4142,4149,4152,4160,4163,4168,4175,4178,4198, - 4210,4213,4219,4224,4233,4241,4246,4252,4259,4267,4270,4281,4283, - 4297,4303,4311,4313,4319,4323,4326,4329,4334,4339,4343,4346,4349, - 4352,4355,4363,4374,4377,4380,4385,4388,4392,4396,4402,4410,4413, - 4426,4431,4433,4438,4445,4452,4461,4469,4477,4484,4492,4499,4507, - 4511,4515,4517,4523,4528,4532,4539,4544,4549,4554,4556,4566,4576, - 4592,4610,4622,4629,4644,4649,4652,4657,4662,4667,4670,4673,4678, - 4685,4689,4694,4701,4705,4711,4720,4729,4741,4743,4756,4762,4766, - 4768,4775,4788,4795,4797,4813,4817,4821,4826,4831,4836,4841,4844, - 4856,4909,4918,4922,4931,4935,4944,4948,4953,4956,4960,4965,4967, - 4976,4981,4992,4996,5010,5018,5056,5058,5077,5080,5107,5111,5115, - 5119,5123,5126,5141,5148,5162,5175,5200,5219,5234,5250,5257,5268, - 5271,5290,5293,5306,5310,5330,5342,5346,5368,5372,5382,5386,5392, - 5396,5400,5404,5411,5416,5427,5431,5434,5439,5445,5456,5460,5463, - 5467,5471,5474,5484,5487,5491,5496,5502,5505,5510,5513,5520,5522, - 5528,5532,5541,5546,5548,5558,5561,5566,5574,5577,5582,5584,5586, - 5592,5609,5615,5628,5634,5638,5643,5673,5688,5693,5697,5710,5714, - 5716,5725,5731,5733,5737,5740,5743,5746,5749,5751,5754,5758,5766, - 5771,5774,5780,5784,5788,5793,5795,5799,5803,5810,5816,5820,5822, - 5824,5837,5845,5853,5864,5874,5879,5883,5887,5894,5897,5899,5907, - 5911,5914,5921,5928,5933,5940,5943,5945,5948,5954,5959,5963,5970, - 5980,5987,5990,5993,5997,6008,6011,6014,6017,6020,6027,6030,6033, - 6040,6052,6059,6061,6066,6071,6073,6079,6086,6091,6096,6100,6104, - 6108,6110,6114,6118,6121,6124,6126,6136,6138,6143,6147,6152,6156, - 6163,6168,6172,6175,6181,6184,6203,6210,6214,6217,6221,6225,6228, - 6231,6236,6245,6252,6256,6260,6264,6267,6269,6274,6278,6283,6289, - 6296,6301,6306,6315,6322,6330,6341,6346,6350,6353,6357,6362,6366, - 6371,6379,6390,6395,6399,6402,6405,6407,6410,6413,6416,6420,6424, - 6428,6430,6439,6444,6450,6454,6456,6463,6468,6474,6476,6480,6487, - 6492,6495,6501,6505,6511,6520,6526,6528,6533,6536,6545,6552,6554, - 6561,6566,6569,6579,6590,6595,6599,6607,6617,6624,6630,6641,6647, - 6657,6666,6670,6673,6675,6677,6681,6689,6692,6697,6702,6709,6711, - 6717,6721,6724,6729,6732,6734,6740,6749,6755,6758,6766,6769,6773, - 6779,6781,6784,6788,6793,6800,6807,6809,6815,6817,6822,6824,6828, - 6837,6841,6849,6851,6865,6868,6876,6885,6891,6896,6904,6906,6911, - 6915,6920,6925,6931,6947,6949,6958,6973,6978,6981,6987,6992,7005, - 7010,7014,7021,7040,7052,7057,7065,7067,7069,7078,7081,7086,7091, - 7094,7105,7113,7118,7120,7123,7127,7138,7159,7167,7180,7190,7196, - 7202,7205,7208,7234,7236,7257,7267,7280,7285,7289,7291,7303,7310, - 7316,7322,7326,7337,7347,7351,7356,7359,7362,7371,7382,7384,7388, - 7393,7402,7407,7415,7425,7433,7437,7440,7447,7455,7459,7466,7474, - 7476,7485,7488,7500,7509,7516,7525,7535,7540,7544,7546,7549,7554, - 7559,7567,7575,7578,7585,7593,7601,7609,7626,7633,7641,7658,7664, - 7670,7678,7684,7689,7697,7702,7705,7714,7721,7726,7730,7735,7741, - 7746,7754,7809,7816,7822,7824,7826,7828,7834,7838,7842,7853,7856, - 7860,7864,7868,7871,7874,7877,7886,7891,7895,7928,7938,7942,7948, - 7953,7962,7970,7981,7989,7998,8007,8012,8016,8026,8031,8039,8044, - 8047,8054,8060,8068,8076,8079,8086,8088,8091,8097,8106,8110,8124, - 8127,8129,8135,8145,8147,8149,8157,8160,8163,8173,8181,8187,8193, - 8200,8204,8208,8211,8214,8220,8227,8230,8238,8240,8249,8254,8256, - 8263,8269,8272,8284,8291,8293,8297,8303,8308,8312,8315,8318,8327, - 8330,8333,8337,8341,8343,8346,8349,8355,8362,8369,8375,8377,8381, - 8386,8404,8409,8411,8420,8427,8431,8443,8446,8459,8462,8466,8475, - 8482,8487,8492,8496,8499,8502,8505,8508,8511,8515,8518 + 0,0,0,8327,8325,1,0,0,0,8327,8328,1,0,0,0,8328,903,1,0,0,0,8329, + 8331,5,81,0,0,8330,8329,1,0,0,0,8330,8331,1,0,0,0,8331,8332,1,0, + 0,0,8332,8334,3,776,388,0,8333,8335,5,9,0,0,8334,8333,1,0,0,0,8334, + 8335,1,0,0,0,8335,8341,1,0,0,0,8336,8339,3,566,283,0,8337,8339,3, + 610,305,0,8338,8336,1,0,0,0,8338,8337,1,0,0,0,8339,8341,1,0,0,0, + 8340,8330,1,0,0,0,8340,8338,1,0,0,0,8341,8346,1,0,0,0,8342,8344, + 5,36,0,0,8343,8342,1,0,0,0,8343,8344,1,0,0,0,8344,8345,1,0,0,0,8345, + 8347,3,820,410,0,8346,8343,1,0,0,0,8346,8347,1,0,0,0,8347,905,1, + 0,0,0,8348,8349,5,102,0,0,8349,8352,5,526,0,0,8350,8351,5,33,0,0, + 8351,8353,3,676,338,0,8352,8350,1,0,0,0,8352,8353,1,0,0,0,8353,8354, + 1,0,0,0,8354,8359,5,93,0,0,8355,8360,3,910,455,0,8356,8360,5,182, + 0,0,8357,8358,5,57,0,0,8358,8360,5,270,0,0,8359,8355,1,0,0,0,8359, + 8356,1,0,0,0,8359,8357,1,0,0,0,8360,8375,1,0,0,0,8361,8362,5,102, + 0,0,8362,8363,5,77,0,0,8363,8366,5,526,0,0,8364,8365,5,33,0,0,8365, + 8367,3,676,338,0,8366,8364,1,0,0,0,8366,8367,1,0,0,0,8367,8368,1, + 0,0,0,8368,8372,5,93,0,0,8369,8373,3,908,454,0,8370,8371,5,57,0, + 0,8371,8373,5,270,0,0,8372,8369,1,0,0,0,8372,8370,1,0,0,0,8373,8375, + 1,0,0,0,8374,8348,1,0,0,0,8374,8361,1,0,0,0,8375,907,1,0,0,0,8376, + 8378,5,241,0,0,8377,8379,3,146,73,0,8378,8377,1,0,0,0,8378,8379, + 1,0,0,0,8379,8383,1,0,0,0,8380,8381,5,463,0,0,8381,8382,7,77,0,0, + 8382,8384,5,450,0,0,8383,8380,1,0,0,0,8383,8384,1,0,0,0,8384,8385, + 1,0,0,0,8385,8386,3,912,456,0,8386,909,1,0,0,0,8387,8388,5,369,0, + 0,8388,8406,5,333,0,0,8389,8390,3,802,401,0,8390,8391,5,10,0,0,8391, + 8392,3,914,457,0,8392,8407,1,0,0,0,8393,8394,3,146,73,0,8394,8395, + 5,10,0,0,8395,8396,5,2,0,0,8396,8401,3,914,457,0,8397,8398,5,6,0, + 0,8398,8400,3,914,457,0,8399,8397,1,0,0,0,8400,8403,1,0,0,0,8401, + 8399,1,0,0,0,8401,8402,1,0,0,0,8402,8404,1,0,0,0,8403,8401,1,0,0, + 0,8404,8405,5,3,0,0,8405,8407,1,0,0,0,8406,8389,1,0,0,0,8406,8393, + 1,0,0,0,8407,8408,1,0,0,0,8408,8406,1,0,0,0,8408,8409,1,0,0,0,8409, + 911,1,0,0,0,8410,8411,5,422,0,0,8411,8412,5,2,0,0,8412,8417,3,914, + 457,0,8413,8414,5,6,0,0,8414,8416,3,914,457,0,8415,8413,1,0,0,0, + 8416,8419,1,0,0,0,8417,8415,1,0,0,0,8417,8418,1,0,0,0,8418,8420, + 1,0,0,0,8419,8417,1,0,0,0,8420,8421,5,3,0,0,8421,8425,1,0,0,0,8422, + 8423,5,53,0,0,8423,8425,5,422,0,0,8424,8410,1,0,0,0,8424,8422,1, + 0,0,0,8425,913,1,0,0,0,8426,8429,3,590,295,0,8427,8429,5,53,0,0, + 8428,8426,1,0,0,0,8428,8427,1,0,0,0,8429,915,1,0,0,0,8430,8431,5, + 157,0,0,8431,8432,3,924,462,0,8432,8433,5,7,0,0,8433,917,1,0,0,0, + 8434,8435,5,78,0,0,8435,8436,5,7,0,0,8436,919,1,0,0,0,8437,8443, + 7,68,0,0,8438,8440,5,33,0,0,8439,8441,5,269,0,0,8440,8439,1,0,0, + 0,8440,8441,1,0,0,0,8441,8442,1,0,0,0,8442,8444,5,153,0,0,8443,8438, + 1,0,0,0,8443,8444,1,0,0,0,8444,8445,1,0,0,0,8445,8446,5,7,0,0,8446, + 921,1,0,0,0,8447,8448,5,333,0,0,8448,8449,3,318,159,0,8449,8450, + 5,94,0,0,8450,8451,5,53,0,0,8451,8452,5,7,0,0,8452,8460,1,0,0,0, + 8453,8456,5,313,0,0,8454,8457,3,318,159,0,8455,8457,5,30,0,0,8456, + 8454,1,0,0,0,8456,8455,1,0,0,0,8457,8458,1,0,0,0,8458,8460,5,7,0, + 0,8459,8447,1,0,0,0,8459,8453,1,0,0,0,8460,923,1,0,0,0,8461,8464, + 3,820,410,0,8462,8464,5,28,0,0,8463,8461,1,0,0,0,8463,8462,1,0,0, + 0,8464,925,1,0,0,0,8465,8482,5,517,0,0,8466,8467,5,102,0,0,8467, + 8472,3,928,464,0,8468,8469,5,82,0,0,8469,8471,3,928,464,0,8470,8468, + 1,0,0,0,8471,8474,1,0,0,0,8472,8470,1,0,0,0,8472,8473,1,0,0,0,8473, + 8475,1,0,0,0,8474,8472,1,0,0,0,8475,8479,5,93,0,0,8476,8478,3,848, + 424,0,8477,8476,1,0,0,0,8478,8481,1,0,0,0,8479,8477,1,0,0,0,8479, + 8480,1,0,0,0,8480,8483,1,0,0,0,8481,8479,1,0,0,0,8482,8466,1,0,0, + 0,8483,8484,1,0,0,0,8484,8482,1,0,0,0,8484,8485,1,0,0,0,8485,927, + 1,0,0,0,8486,8490,3,930,465,0,8487,8488,5,511,0,0,8488,8490,3,810, + 405,0,8489,8486,1,0,0,0,8489,8487,1,0,0,0,8490,929,1,0,0,0,8491, + 8494,3,820,410,0,8492,8494,3,830,415,0,8493,8491,1,0,0,0,8493,8492, + 1,0,0,0,8494,931,1,0,0,0,8495,8497,3,758,379,0,8496,8495,1,0,0,0, + 8496,8497,1,0,0,0,8497,8499,1,0,0,0,8498,8500,3,582,291,0,8499,8498, + 1,0,0,0,8499,8500,1,0,0,0,8500,8502,1,0,0,0,8501,8503,3,612,306, + 0,8502,8501,1,0,0,0,8502,8503,1,0,0,0,8503,8505,1,0,0,0,8504,8506, + 3,640,320,0,8505,8504,1,0,0,0,8505,8506,1,0,0,0,8506,8508,1,0,0, + 0,8507,8509,3,602,301,0,8508,8507,1,0,0,0,8508,8509,1,0,0,0,8509, + 8512,1,0,0,0,8510,8511,5,67,0,0,8511,8513,3,676,338,0,8512,8510, + 1,0,0,0,8512,8513,1,0,0,0,8513,8515,1,0,0,0,8514,8516,3,704,352, + 0,8515,8514,1,0,0,0,8515,8516,1,0,0,0,8516,933,1,0,0,0,1193,937, + 944,1064,1066,1075,1080,1086,1121,1131,1137,1142,1149,1154,1161, + 1172,1180,1184,1196,1202,1208,1212,1217,1221,1234,1244,1246,1252, + 1257,1270,1273,1278,1283,1294,1298,1310,1314,1317,1321,1333,1351, + 1358,1366,1371,1378,1386,1392,1400,1408,1412,1426,1431,1436,1448, + 1454,1466,1471,1481,1487,1492,1500,1505,1512,1517,1522,1532,1537, + 1542,1549,1553,1567,1573,1579,1584,1591,1603,1611,1619,1635,1644, + 1653,1662,1666,1678,1686,1696,1716,1721,1724,1731,1734,1738,1742, + 1745,1750,1755,1759,1768,1774,1778,1787,1790,1796,1805,1817,1821, + 1825,1830,1833,1839,1841,1843,1847,1853,1857,1862,1867,1871,1874, + 1881,1894,1907,1931,1941,1948,1953,1957,1964,1969,1972,1974,1979, + 1983,1987,1991,1996,1999,2003,2006,2010,2018,2023,2026,2030,2036, + 2045,2049,2059,2064,2068,2072,2074,2076,2083,2088,2092,2097,2109, + 2114,2118,2122,2127,2131,2134,2137,2140,2143,2146,2151,2154,2157, + 2160,2163,2166,2172,2176,2179,2182,2185,2188,2190,2197,2205,2215, + 2220,2230,2233,2238,2243,2248,2251,2256,2265,2267,2271,2274,2278, + 2283,2288,2292,2295,2299,2302,2307,2310,2315,2318,2322,2325,2328, + 2333,2336,2344,2356,2360,2367,2372,2375,2378,2381,2386,2397,2403, + 2407,2410,2413,2418,2425,2428,2432,2440,2445,2448,2451,2458,2463, + 2472,2475,2478,2483,2486,2498,2508,2525,2529,2533,2535,2552,2554, + 2570,2581,2584,2587,2596,2605,2621,2624,2627,2635,2639,2646,2655, + 2659,2665,2669,2672,2675,2678,2681,2687,2691,2696,2700,2703,2706, + 2709,2714,2720,2724,2728,2732,2738,2740,2745,2751,2757,2761,2776, + 2781,2784,2786,2789,2793,2797,2800,2803,2811,2817,2819,2825,2830, + 2835,2839,2846,2848,2859,2898,2908,2910,2913,2917,2921,2931,2933, + 2939,2941,2950,2962,2976,2981,2984,2991,2996,3004,3006,3012,3017, + 3021,3026,3032,3039,3045,3047,3056,3062,3070,3076,3081,3086,3094, + 3109,3111,3115,3119,3122,3125,3134,3137,3140,3146,3152,3156,3168, + 3174,3177,3182,3186,3193,3203,3205,3229,3241,3246,3248,3252,3255, + 3258,3268,3271,3281,3286,3291,3294,3297,3305,3311,3318,3326,3329, + 3340,3344,3350,3357,3360,3369,3383,3386,3400,3411,3414,3426,3431, + 3444,3449,3462,3471,3474,3477,3484,3487,3499,3505,3507,3515,3523, + 3531,3543,3548,3559,3570,3578,3586,3593,3600,3602,3605,3610,3615, + 3634,3643,3646,3673,3682,3685,3689,3693,3697,3704,3708,3712,3716, + 3720,3725,3729,3734,3740,3745,3752,3756,3762,3766,3771,3779,3785, + 3790,3797,3802,3806,3811,3817,3824,3829,3836,3841,3848,3852,3860, + 3864,3866,3869,3874,3884,3899,3902,3910,3917,3922,3928,3932,3939, + 3944,3947,3950,3954,3963,3981,3984,4016,4021,4027,4047,4052,4058, + 4061,4065,4069,4075,4078,4082,4086,4091,4094,4097,4100,4113,4119, + 4127,4134,4139,4142,4149,4152,4160,4163,4168,4175,4178,4198,4210, + 4213,4219,4224,4233,4241,4246,4252,4259,4267,4270,4281,4283,4297, + 4303,4311,4313,4319,4323,4326,4329,4334,4339,4343,4346,4349,4352, + 4355,4363,4374,4377,4380,4385,4388,4392,4396,4402,4410,4413,4426, + 4431,4433,4438,4445,4452,4461,4469,4477,4484,4492,4499,4507,4511, + 4515,4517,4523,4528,4532,4539,4544,4549,4554,4556,4566,4576,4592, + 4610,4622,4629,4644,4649,4652,4657,4662,4667,4670,4673,4678,4685, + 4689,4694,4701,4705,4711,4720,4729,4741,4743,4756,4762,4766,4768, + 4775,4788,4795,4797,4813,4817,4821,4826,4831,4836,4841,4844,4856, + 4909,4918,4922,4931,4935,4944,4948,4953,4956,4960,4965,4967,4976, + 4981,4992,4996,5010,5018,5056,5058,5077,5080,5107,5111,5115,5119, + 5123,5126,5141,5148,5162,5175,5200,5219,5234,5250,5257,5268,5271, + 5290,5293,5306,5310,5330,5342,5346,5368,5372,5382,5386,5392,5396, + 5400,5404,5411,5416,5427,5431,5434,5439,5445,5456,5460,5463,5467, + 5471,5474,5484,5487,5491,5496,5502,5505,5510,5513,5520,5522,5528, + 5532,5541,5546,5548,5558,5561,5566,5574,5577,5582,5584,5586,5592, + 5609,5615,5628,5634,5638,5643,5673,5688,5693,5697,5710,5714,5716, + 5725,5731,5733,5737,5740,5743,5746,5749,5751,5754,5758,5766,5771, + 5774,5780,5784,5788,5793,5795,5799,5803,5810,5816,5820,5822,5824, + 5837,5845,5853,5864,5874,5879,5883,5887,5894,5897,5899,5907,5911, + 5914,5921,5928,5933,5940,5943,5945,5948,5954,5959,5963,5970,5980, + 5987,5990,5993,5997,6008,6011,6014,6017,6020,6027,6030,6033,6040, + 6052,6059,6061,6066,6071,6073,6079,6086,6091,6096,6100,6104,6108, + 6110,6114,6118,6121,6124,6126,6136,6138,6143,6147,6152,6156,6163, + 6168,6172,6175,6181,6184,6203,6210,6214,6217,6221,6225,6228,6231, + 6236,6245,6252,6256,6260,6264,6267,6269,6274,6278,6283,6289,6296, + 6301,6306,6315,6322,6330,6341,6346,6350,6353,6357,6362,6366,6371, + 6379,6390,6395,6399,6402,6405,6407,6410,6413,6416,6420,6424,6428, + 6430,6439,6444,6450,6454,6456,6463,6468,6474,6476,6480,6487,6492, + 6495,6501,6505,6511,6520,6526,6528,6533,6536,6545,6552,6554,6561, + 6566,6569,6579,6590,6595,6599,6607,6617,6624,6630,6641,6647,6657, + 6666,6670,6673,6675,6677,6681,6689,6692,6697,6702,6709,6711,6717, + 6721,6724,6729,6732,6734,6740,6749,6755,6758,6766,6769,6773,6779, + 6781,6784,6788,6793,6800,6807,6809,6815,6817,6822,6824,6828,6837, + 6841,6849,6851,6865,6868,6876,6885,6891,6896,6904,6906,6911,6915, + 6920,6925,6931,6947,6949,6958,6973,6978,6981,6987,6992,7005,7010, + 7014,7021,7040,7052,7057,7065,7067,7069,7078,7081,7086,7091,7094, + 7105,7113,7118,7120,7123,7127,7138,7159,7167,7180,7190,7196,7202, + 7205,7208,7234,7236,7257,7267,7280,7285,7289,7291,7303,7310,7316, + 7322,7326,7337,7347,7351,7356,7359,7362,7371,7382,7384,7388,7393, + 7402,7407,7415,7425,7433,7437,7440,7447,7455,7459,7466,7474,7476, + 7485,7488,7500,7509,7516,7525,7535,7540,7544,7546,7549,7554,7559, + 7567,7575,7578,7585,7593,7601,7609,7626,7633,7641,7658,7664,7670, + 7678,7684,7689,7697,7702,7705,7714,7721,7726,7730,7735,7741,7746, + 7754,7809,7816,7822,7824,7826,7828,7834,7838,7842,7853,7856,7860, + 7864,7868,7871,7874,7877,7886,7891,7895,7928,7938,7942,7948,7953, + 7962,7970,7981,7989,7998,8007,8012,8016,8026,8031,8039,8044,8047, + 8054,8060,8068,8076,8079,8086,8088,8091,8097,8106,8110,8124,8127, + 8129,8135,8145,8147,8149,8157,8160,8163,8173,8181,8187,8193,8200, + 8204,8208,8211,8214,8220,8227,8230,8238,8240,8249,8254,8256,8263, + 8269,8272,8284,8291,8293,8297,8303,8308,8312,8315,8318,8327,8330, + 8334,8338,8340,8343,8346,8352,8359,8366,8372,8374,8378,8383,8401, + 8406,8408,8417,8424,8428,8440,8443,8456,8459,8463,8472,8479,8484, + 8489,8493,8496,8499,8502,8505,8508,8512,8515 ]; private static __ATN: antlr.ATN; @@ -58426,353 +58416,353 @@ export class StmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public altereventtrigstmt(): AltereventtrigstmtContext | null { - return this.getRuleContext(0, AltereventtrigstmtContext); + public alterEventTrigStmt(): AlterEventTrigStmtContext | null { + return this.getRuleContext(0, AlterEventTrigStmtContext); } - public altercollationstmt(): AltercollationstmtContext | null { - return this.getRuleContext(0, AltercollationstmtContext); + public alterCollationStmt(): AlterCollationStmtContext | null { + return this.getRuleContext(0, AlterCollationStmtContext); } - public alterdatabasestmt(): AlterdatabasestmtContext | null { - return this.getRuleContext(0, AlterdatabasestmtContext); + public alterDatabaseStmt(): AlterDatabaseStmtContext | null { + return this.getRuleContext(0, AlterDatabaseStmtContext); } - public alterdatabasesetstmt(): AlterdatabasesetstmtContext | null { - return this.getRuleContext(0, AlterdatabasesetstmtContext); + public alterDatabaseSetStmt(): AlterDatabaseSetStmtContext | null { + return this.getRuleContext(0, AlterDatabaseSetStmtContext); } - public alterdefaultprivilegesstmt(): AlterdefaultprivilegesstmtContext | null { - return this.getRuleContext(0, AlterdefaultprivilegesstmtContext); + public alterDefaultPrivilegesStmt(): AlterDefaultPrivilegesStmtContext | null { + return this.getRuleContext(0, AlterDefaultPrivilegesStmtContext); } - public alterdomainstmt(): AlterdomainstmtContext | null { - return this.getRuleContext(0, AlterdomainstmtContext); + public alterDomainStmt(): AlterDomainStmtContext | null { + return this.getRuleContext(0, AlterDomainStmtContext); } - public alterenumstmt(): AlterenumstmtContext | null { - return this.getRuleContext(0, AlterenumstmtContext); + public alterEnumStmt(): AlterEnumStmtContext | null { + return this.getRuleContext(0, AlterEnumStmtContext); } - public alterextensionstmt(): AlterextensionstmtContext | null { - return this.getRuleContext(0, AlterextensionstmtContext); + public alterExtensionStmt(): AlterExtensionStmtContext | null { + return this.getRuleContext(0, AlterExtensionStmtContext); } - public alterextensioncontentsstmt(): AlterextensioncontentsstmtContext | null { - return this.getRuleContext(0, AlterextensioncontentsstmtContext); + public alterExtensionContentsStmt(): AlterExtensionContentsStmtContext | null { + return this.getRuleContext(0, AlterExtensionContentsStmtContext); } - public alterfdwstmt(): AlterfdwstmtContext | null { - return this.getRuleContext(0, AlterfdwstmtContext); + public alterFdwStmt(): AlterFdwStmtContext | null { + return this.getRuleContext(0, AlterFdwStmtContext); } - public alterforeignserverstmt(): AlterforeignserverstmtContext | null { - return this.getRuleContext(0, AlterforeignserverstmtContext); + public alterForeignServerStmt(): AlterForeignServerStmtContext | null { + return this.getRuleContext(0, AlterForeignServerStmtContext); } - public alterfunctionstmt(): AlterfunctionstmtContext | null { - return this.getRuleContext(0, AlterfunctionstmtContext); + public alterFunctionStmt(): AlterFunctionStmtContext | null { + return this.getRuleContext(0, AlterFunctionStmtContext); } - public altergroupstmt(): AltergroupstmtContext | null { - return this.getRuleContext(0, AltergroupstmtContext); + public alterGroupStmt(): AlterGroupStmtContext | null { + return this.getRuleContext(0, AlterGroupStmtContext); } - public alterobjectdependsstmt(): AlterobjectdependsstmtContext | null { - return this.getRuleContext(0, AlterobjectdependsstmtContext); + public alterObjectDependsStmt(): AlterObjectDependsStmtContext | null { + return this.getRuleContext(0, AlterObjectDependsStmtContext); } - public alterobjectschemastmt(): AlterobjectschemastmtContext | null { - return this.getRuleContext(0, AlterobjectschemastmtContext); + public alterObjectSchemaStmt(): AlterObjectSchemaStmtContext | null { + return this.getRuleContext(0, AlterObjectSchemaStmtContext); } - public alterownerstmt(): AlterownerstmtContext | null { - return this.getRuleContext(0, AlterownerstmtContext); + public alterOwnerStmt(): AlterOwnerStmtContext | null { + return this.getRuleContext(0, AlterOwnerStmtContext); } - public alteroperatorstmt(): AlteroperatorstmtContext | null { - return this.getRuleContext(0, AlteroperatorstmtContext); + public alterOperatorStmt(): AlterOperatorStmtContext | null { + return this.getRuleContext(0, AlterOperatorStmtContext); } - public altertypestmt(): AltertypestmtContext | null { - return this.getRuleContext(0, AltertypestmtContext); + public alterTypeStmt(): AlterTypeStmtContext | null { + return this.getRuleContext(0, AlterTypeStmtContext); } - public alterpolicystmt(): AlterpolicystmtContext | null { - return this.getRuleContext(0, AlterpolicystmtContext); + public alterPolicyStmt(): AlterPolicyStmtContext | null { + return this.getRuleContext(0, AlterPolicyStmtContext); } - public alterprocedurestmt(): AlterprocedurestmtContext | null { - return this.getRuleContext(0, AlterprocedurestmtContext); + public alterProcedureStmt(): AlterProcedureStmtContext | null { + return this.getRuleContext(0, AlterProcedureStmtContext); } - public alterseqstmt(): AlterseqstmtContext | null { - return this.getRuleContext(0, AlterseqstmtContext); + public alterSeqStmt(): AlterSeqStmtContext | null { + return this.getRuleContext(0, AlterSeqStmtContext); } - public altersystemstmt(): AltersystemstmtContext | null { - return this.getRuleContext(0, AltersystemstmtContext); + public alterSystemStmt(): AlterSystemStmtContext | null { + return this.getRuleContext(0, AlterSystemStmtContext); } - public altertablestmt(): AltertablestmtContext | null { - return this.getRuleContext(0, AltertablestmtContext); + public alterTableStmt(): AlterTableStmtContext | null { + return this.getRuleContext(0, AlterTableStmtContext); } - public altertblspcstmt(): AltertblspcstmtContext | null { - return this.getRuleContext(0, AltertblspcstmtContext); + public alterTblSpcStmt(): AlterTblSpcStmtContext | null { + return this.getRuleContext(0, AlterTblSpcStmtContext); } - public altercompositetypestmt(): AltercompositetypestmtContext | null { - return this.getRuleContext(0, AltercompositetypestmtContext); + public alterCompositeTypeStmt(): AlterCompositeTypeStmtContext | null { + return this.getRuleContext(0, AlterCompositeTypeStmtContext); } - public alterpublicationstmt(): AlterpublicationstmtContext | null { - return this.getRuleContext(0, AlterpublicationstmtContext); + public alterPublicationStmt(): AlterPublicationStmtContext | null { + return this.getRuleContext(0, AlterPublicationStmtContext); } - public alterrolesetstmt(): AlterrolesetstmtContext | null { - return this.getRuleContext(0, AlterrolesetstmtContext); + public alterRoleSetStmt(): AlterRoleSetStmtContext | null { + return this.getRuleContext(0, AlterRoleSetStmtContext); } - public alterroutinestmt(): AlterroutinestmtContext | null { - return this.getRuleContext(0, AlterroutinestmtContext); + public alterRoutineStmt(): AlterRoutineStmtContext | null { + return this.getRuleContext(0, AlterRoutineStmtContext); } - public alterrolestmt(): AlterrolestmtContext | null { - return this.getRuleContext(0, AlterrolestmtContext); + public alterRoleStmt(): AlterRoleStmtContext | null { + return this.getRuleContext(0, AlterRoleStmtContext); } - public altersubscriptionstmt(): AltersubscriptionstmtContext | null { - return this.getRuleContext(0, AltersubscriptionstmtContext); + public alterSubscriptionStmt(): AlterSubscriptionStmtContext | null { + return this.getRuleContext(0, AlterSubscriptionStmtContext); } - public alterstatsstmt(): AlterstatsstmtContext | null { - return this.getRuleContext(0, AlterstatsstmtContext); + public alterStatsStmt(): AlterStatsStmtContext | null { + return this.getRuleContext(0, AlterStatsStmtContext); } - public altertsconfigurationstmt(): AltertsconfigurationstmtContext | null { - return this.getRuleContext(0, AltertsconfigurationstmtContext); + public alterSearchConfigurationStmt(): AlterSearchConfigurationStmtContext | null { + return this.getRuleContext(0, AlterSearchConfigurationStmtContext); } - public altertsdictionarystmt(): AltertsdictionarystmtContext | null { - return this.getRuleContext(0, AltertsdictionarystmtContext); + public alterSearchDictionaryStmt(): AlterSearchDictionaryStmtContext | null { + return this.getRuleContext(0, AlterSearchDictionaryStmtContext); } - public alterusermappingstmt(): AlterusermappingstmtContext | null { - return this.getRuleContext(0, AlterusermappingstmtContext); + public alterUserMappingStmt(): AlterUserMappingStmtContext | null { + return this.getRuleContext(0, AlterUserMappingStmtContext); } - public analyzestmt(): AnalyzestmtContext | null { - return this.getRuleContext(0, AnalyzestmtContext); + public analyzeStmt(): AnalyzeStmtContext | null { + return this.getRuleContext(0, AnalyzeStmtContext); } - public callstmt(): CallstmtContext | null { - return this.getRuleContext(0, CallstmtContext); + public callStmt(): CallStmtContext | null { + return this.getRuleContext(0, CallStmtContext); } - public checkpointstmt(): CheckpointstmtContext | null { - return this.getRuleContext(0, CheckpointstmtContext); + public checkPointStmt(): CheckPointStmtContext | null { + return this.getRuleContext(0, CheckPointStmtContext); } - public closeportalstmt(): CloseportalstmtContext | null { - return this.getRuleContext(0, CloseportalstmtContext); + public closePortalStmt(): ClosePortalStmtContext | null { + return this.getRuleContext(0, ClosePortalStmtContext); } - public clusterstmt(): ClusterstmtContext | null { - return this.getRuleContext(0, ClusterstmtContext); + public clusterStmt(): ClusterStmtContext | null { + return this.getRuleContext(0, ClusterStmtContext); } - public commentstmt(): CommentstmtContext | null { - return this.getRuleContext(0, CommentstmtContext); + public commentStmt(): CommentStmtContext | null { + return this.getRuleContext(0, CommentStmtContext); } - public constraintssetstmt(): ConstraintssetstmtContext | null { - return this.getRuleContext(0, ConstraintssetstmtContext); + public constraintsSetStmt(): ConstraintsSetStmtContext | null { + return this.getRuleContext(0, ConstraintsSetStmtContext); } - public copystmt(): CopystmtContext | null { - return this.getRuleContext(0, CopystmtContext); + public copyStmt(): CopyStmtContext | null { + return this.getRuleContext(0, CopyStmtContext); } - public createamstmt(): CreateamstmtContext | null { - return this.getRuleContext(0, CreateamstmtContext); + public createAccessMethodStmt(): CreateAccessMethodStmtContext | null { + return this.getRuleContext(0, CreateAccessMethodStmtContext); } - public createasstmt(): CreateasstmtContext | null { - return this.getRuleContext(0, CreateasstmtContext); + public createAsStmt(): CreateAsStmtContext | null { + return this.getRuleContext(0, CreateAsStmtContext); } - public createassertionstmt(): CreateassertionstmtContext | null { - return this.getRuleContext(0, CreateassertionstmtContext); + public createAssertionStmt(): CreateAssertionStmtContext | null { + return this.getRuleContext(0, CreateAssertionStmtContext); } - public createcaststmt(): CreatecaststmtContext | null { - return this.getRuleContext(0, CreatecaststmtContext); + public createCastStmt(): CreateCastStmtContext | null { + return this.getRuleContext(0, CreateCastStmtContext); } - public createconversionstmt(): CreateconversionstmtContext | null { - return this.getRuleContext(0, CreateconversionstmtContext); + public createConversionStmt(): CreateConversionStmtContext | null { + return this.getRuleContext(0, CreateConversionStmtContext); } - public createdomainstmt(): CreatedomainstmtContext | null { - return this.getRuleContext(0, CreatedomainstmtContext); + public createDomainStmt(): CreateDomainStmtContext | null { + return this.getRuleContext(0, CreateDomainStmtContext); } - public createextensionstmt(): CreateextensionstmtContext | null { - return this.getRuleContext(0, CreateextensionstmtContext); + public createExtensionStmt(): CreateExtensionStmtContext | null { + return this.getRuleContext(0, CreateExtensionStmtContext); } - public createfdwstmt(): CreatefdwstmtContext | null { - return this.getRuleContext(0, CreatefdwstmtContext); + public createFdwStmt(): CreateFdwStmtContext | null { + return this.getRuleContext(0, CreateFdwStmtContext); } - public createforeignserverstmt(): CreateforeignserverstmtContext | null { - return this.getRuleContext(0, CreateforeignserverstmtContext); + public createForeignServerStmt(): CreateForeignServerStmtContext | null { + return this.getRuleContext(0, CreateForeignServerStmtContext); } - public createforeigntablestmt(): CreateforeigntablestmtContext | null { - return this.getRuleContext(0, CreateforeigntablestmtContext); + public createForeignTableStmt(): CreateForeignTableStmtContext | null { + return this.getRuleContext(0, CreateForeignTableStmtContext); } - public createfunctionstmt(): CreatefunctionstmtContext | null { - return this.getRuleContext(0, CreatefunctionstmtContext); + public createFunctionStmt(): CreateFunctionStmtContext | null { + return this.getRuleContext(0, CreateFunctionStmtContext); } - public creategroupstmt(): CreategroupstmtContext | null { - return this.getRuleContext(0, CreategroupstmtContext); + public createGroupStmt(): CreateGroupStmtContext | null { + return this.getRuleContext(0, CreateGroupStmtContext); } - public creatematviewstmt(): CreatematviewstmtContext | null { - return this.getRuleContext(0, CreatematviewstmtContext); + public createMaterializedViewStmt(): CreateMaterializedViewStmtContext | null { + return this.getRuleContext(0, CreateMaterializedViewStmtContext); } - public createopclassstmt(): CreateopclassstmtContext | null { - return this.getRuleContext(0, CreateopclassstmtContext); + public createOperatorClassStmt(): CreateOperatorClassStmtContext | null { + return this.getRuleContext(0, CreateOperatorClassStmtContext); } - public createopfamilystmt(): CreateopfamilystmtContext | null { - return this.getRuleContext(0, CreateopfamilystmtContext); + public createOperatorFamilyStmt(): CreateOperatorFamilyStmtContext | null { + return this.getRuleContext(0, CreateOperatorFamilyStmtContext); } - public createpublicationstmt(): CreatepublicationstmtContext | null { - return this.getRuleContext(0, CreatepublicationstmtContext); + public createPublicationStmt(): CreatePublicationStmtContext | null { + return this.getRuleContext(0, CreatePublicationStmtContext); } - public alteropfamilystmt(): AlteropfamilystmtContext | null { - return this.getRuleContext(0, AlteropfamilystmtContext); + public alterOperatorFamilyStmt(): AlterOperatorFamilyStmtContext | null { + return this.getRuleContext(0, AlterOperatorFamilyStmtContext); } - public createpolicystmt(): CreatepolicystmtContext | null { - return this.getRuleContext(0, CreatepolicystmtContext); + public createPolicyStmt(): CreatePolicyStmtContext | null { + return this.getRuleContext(0, CreatePolicyStmtContext); } - public createplangstmt(): CreateplangstmtContext | null { - return this.getRuleContext(0, CreateplangstmtContext); + public createProceduralLangStmt(): CreateProceduralLangStmtContext | null { + return this.getRuleContext(0, CreateProceduralLangStmtContext); } - public createschemastmt(): CreateschemastmtContext | null { - return this.getRuleContext(0, CreateschemastmtContext); + public createSchemaStmt(): CreateSchemaStmtContext | null { + return this.getRuleContext(0, CreateSchemaStmtContext); } - public createseqstmt(): CreateseqstmtContext | null { - return this.getRuleContext(0, CreateseqstmtContext); + public createSeqStmt(): CreateSeqStmtContext | null { + return this.getRuleContext(0, CreateSeqStmtContext); } - public createstmt(): CreatestmtContext | null { - return this.getRuleContext(0, CreatestmtContext); + public createStmt(): CreateStmtContext | null { + return this.getRuleContext(0, CreateStmtContext); } - public createsubscriptionstmt(): CreatesubscriptionstmtContext | null { - return this.getRuleContext(0, CreatesubscriptionstmtContext); + public createSubscriptionStmt(): CreateSubscriptionStmtContext | null { + return this.getRuleContext(0, CreateSubscriptionStmtContext); } - public createstatsstmt(): CreatestatsstmtContext | null { - return this.getRuleContext(0, CreatestatsstmtContext); + public createStatsStmt(): CreateStatsStmtContext | null { + return this.getRuleContext(0, CreateStatsStmtContext); } - public createtablespacestmt(): CreatetablespacestmtContext | null { - return this.getRuleContext(0, CreatetablespacestmtContext); + public createTableSpaceStmt(): CreateTableSpaceStmtContext | null { + return this.getRuleContext(0, CreateTableSpaceStmtContext); } - public createtransformstmt(): CreatetransformstmtContext | null { - return this.getRuleContext(0, CreatetransformstmtContext); + public createTransformStmt(): CreateTransformStmtContext | null { + return this.getRuleContext(0, CreateTransformStmtContext); } - public createtrigstmt(): CreatetrigstmtContext | null { - return this.getRuleContext(0, CreatetrigstmtContext); + public createTrigStmt(): CreateTrigStmtContext | null { + return this.getRuleContext(0, CreateTrigStmtContext); } - public createeventtrigstmt(): CreateeventtrigstmtContext | null { - return this.getRuleContext(0, CreateeventtrigstmtContext); + public createEventTrigStmt(): CreateEventTrigStmtContext | null { + return this.getRuleContext(0, CreateEventTrigStmtContext); } - public createrolestmt(): CreaterolestmtContext | null { - return this.getRuleContext(0, CreaterolestmtContext); + public createRoleStmt(): CreateRoleStmtContext | null { + return this.getRuleContext(0, CreateRoleStmtContext); } - public createuserstmt(): CreateuserstmtContext | null { - return this.getRuleContext(0, CreateuserstmtContext); + public createUserStmt(): CreateUserStmtContext | null { + return this.getRuleContext(0, CreateUserStmtContext); } - public createusermappingstmt(): CreateusermappingstmtContext | null { - return this.getRuleContext(0, CreateusermappingstmtContext); + public createUserMappingStmt(): CreateUserMappingStmtContext | null { + return this.getRuleContext(0, CreateUserMappingStmtContext); } - public createdbstmt(): CreatedbstmtContext | null { - return this.getRuleContext(0, CreatedbstmtContext); + public createDbStmt(): CreateDbStmtContext | null { + return this.getRuleContext(0, CreateDbStmtContext); } - public deallocatestmt(): DeallocatestmtContext | null { - return this.getRuleContext(0, DeallocatestmtContext); + public dealLocateStmt(): DealLocateStmtContext | null { + return this.getRuleContext(0, DealLocateStmtContext); } - public declarecursorstmt(): DeclarecursorstmtContext | null { - return this.getRuleContext(0, DeclarecursorstmtContext); + public declareCursorStmt(): DeclareCursorStmtContext | null { + return this.getRuleContext(0, DeclareCursorStmtContext); } - public definestmt(): DefinestmtContext | null { - return this.getRuleContext(0, DefinestmtContext); + public defineStmt(): DefineStmtContext | null { + return this.getRuleContext(0, DefineStmtContext); } - public deletestmt(): DeletestmtContext | null { - return this.getRuleContext(0, DeletestmtContext); + public deleteStmt(): DeleteStmtContext | null { + return this.getRuleContext(0, DeleteStmtContext); } - public discardstmt(): DiscardstmtContext | null { - return this.getRuleContext(0, DiscardstmtContext); + public discardStmt(): DiscardStmtContext | null { + return this.getRuleContext(0, DiscardStmtContext); } - public dostmt(): DostmtContext | null { - return this.getRuleContext(0, DostmtContext); + public doStmt(): DoStmtContext | null { + return this.getRuleContext(0, DoStmtContext); } - public dropstmt(): DropstmtContext | null { - return this.getRuleContext(0, DropstmtContext); + public dropStmt(): DropStmtContext | null { + return this.getRuleContext(0, DropStmtContext); } - public executestmt(): ExecutestmtContext | null { - return this.getRuleContext(0, ExecutestmtContext); + public executeStmt(): ExecuteStmtContext | null { + return this.getRuleContext(0, ExecuteStmtContext); } - public explainstmt(): ExplainstmtContext | null { - return this.getRuleContext(0, ExplainstmtContext); + public explainStmt(): ExplainStmtContext | null { + return this.getRuleContext(0, ExplainStmtContext); } - public fetchstmt(): FetchstmtContext | null { - return this.getRuleContext(0, FetchstmtContext); + public fetchStmt(): FetchStmtContext | null { + return this.getRuleContext(0, FetchStmtContext); } - public grantstmt(): GrantstmtContext | null { - return this.getRuleContext(0, GrantstmtContext); + public grantStmt(): GrantStmtContext | null { + return this.getRuleContext(0, GrantStmtContext); } - public grantrolestmt(): GrantrolestmtContext | null { - return this.getRuleContext(0, GrantrolestmtContext); + public grantRoleStmt(): GrantRoleStmtContext | null { + return this.getRuleContext(0, GrantRoleStmtContext); } - public mergestmt(): MergestmtContext | null { - return this.getRuleContext(0, MergestmtContext); + public mergeStmt(): MergeStmtContext | null { + return this.getRuleContext(0, MergeStmtContext); } - public importforeignschemastmt(): ImportforeignschemastmtContext | null { - return this.getRuleContext(0, ImportforeignschemastmtContext); + public importForeignSchemaStmt(): ImportForeignSchemaStmtContext | null { + return this.getRuleContext(0, ImportForeignSchemaStmtContext); } - public indexstmt(): IndexstmtContext | null { - return this.getRuleContext(0, IndexstmtContext); + public indexStmt(): IndexStmtContext | null { + return this.getRuleContext(0, IndexStmtContext); } - public insertstmt(): InsertstmtContext | null { - return this.getRuleContext(0, InsertstmtContext); + public insertStmt(): InsertStmtContext | null { + return this.getRuleContext(0, InsertStmtContext); } - public listenstmt(): ListenstmtContext | null { - return this.getRuleContext(0, ListenstmtContext); + public listenStmt(): ListenStmtContext | null { + return this.getRuleContext(0, ListenStmtContext); } - public refreshmatviewstmt(): RefreshmatviewstmtContext | null { - return this.getRuleContext(0, RefreshmatviewstmtContext); + public refreshMaterializedViewStmt(): RefreshMaterializedViewStmtContext | null { + return this.getRuleContext(0, RefreshMaterializedViewStmtContext); } - public loadstmt(): LoadstmtContext | null { - return this.getRuleContext(0, LoadstmtContext); + public loadStmt(): LoadStmtContext | null { + return this.getRuleContext(0, LoadStmtContext); } - public lockstmt(): LockstmtContext | null { - return this.getRuleContext(0, LockstmtContext); + public lockStmt(): LockStmtContext | null { + return this.getRuleContext(0, LockStmtContext); } - public notifystmt(): NotifystmtContext | null { - return this.getRuleContext(0, NotifystmtContext); + public notifyStmt(): NotifyStmtContext | null { + return this.getRuleContext(0, NotifyStmtContext); } - public preparestmt(): PreparestmtContext | null { - return this.getRuleContext(0, PreparestmtContext); + public prepareStmt(): PrepareStmtContext | null { + return this.getRuleContext(0, PrepareStmtContext); } - public reassignownedstmt(): ReassignownedstmtContext | null { - return this.getRuleContext(0, ReassignownedstmtContext); + public reassignOwnedStmt(): ReassignOwnedStmtContext | null { + return this.getRuleContext(0, ReassignOwnedStmtContext); } - public reindexstmt(): ReindexstmtContext | null { - return this.getRuleContext(0, ReindexstmtContext); + public reindexStmt(): ReindexStmtContext | null { + return this.getRuleContext(0, ReindexStmtContext); } - public removeaggrstmt(): RemoveaggrstmtContext | null { - return this.getRuleContext(0, RemoveaggrstmtContext); + public removeAggregateStmt(): RemoveAggregateStmtContext | null { + return this.getRuleContext(0, RemoveAggregateStmtContext); } - public removefuncstmt(): RemovefuncstmtContext | null { - return this.getRuleContext(0, RemovefuncstmtContext); + public removeFuncStmt(): RemoveFuncStmtContext | null { + return this.getRuleContext(0, RemoveFuncStmtContext); } - public removeoperstmt(): RemoveoperstmtContext | null { - return this.getRuleContext(0, RemoveoperstmtContext); + public removeOperatorStmt(): RemoveOperatorStmtContext | null { + return this.getRuleContext(0, RemoveOperatorStmtContext); } - public renamestmt(): RenamestmtContext | null { - return this.getRuleContext(0, RenamestmtContext); + public renameStmt(): RenameStmtContext | null { + return this.getRuleContext(0, RenameStmtContext); } - public revokestmt(): RevokestmtContext | null { - return this.getRuleContext(0, RevokestmtContext); + public revokeStmt(): RevokeStmtContext | null { + return this.getRuleContext(0, RevokeStmtContext); } - public revokerolestmt(): RevokerolestmtContext | null { - return this.getRuleContext(0, RevokerolestmtContext); + public revokeRoleStmt(): RevokeRoleStmtContext | null { + return this.getRuleContext(0, RevokeRoleStmtContext); } - public rulestmt(): RulestmtContext | null { - return this.getRuleContext(0, RulestmtContext); + public ruleStmt(): RuleStmtContext | null { + return this.getRuleContext(0, RuleStmtContext); } - public seclabelstmt(): SeclabelstmtContext | null { - return this.getRuleContext(0, SeclabelstmtContext); + public secLabelStmt(): SecLabelStmtContext | null { + return this.getRuleContext(0, SecLabelStmtContext); } - public selectstmt(): SelectstmtContext | null { - return this.getRuleContext(0, SelectstmtContext); + public selectStmt(): SelectStmtContext | null { + return this.getRuleContext(0, SelectStmtContext); } - public transactionstmt(): TransactionstmtContext | null { - return this.getRuleContext(0, TransactionstmtContext); + public transactionStmt(): TransactionStmtContext | null { + return this.getRuleContext(0, TransactionStmtContext); } - public truncatestmt(): TruncatestmtContext | null { - return this.getRuleContext(0, TruncatestmtContext); + public truncateStmt(): TruncateStmtContext | null { + return this.getRuleContext(0, TruncateStmtContext); } - public unlistenstmt(): UnlistenstmtContext | null { - return this.getRuleContext(0, UnlistenstmtContext); + public unListenStmt(): UnListenStmtContext | null { + return this.getRuleContext(0, UnListenStmtContext); } - public updatestmt(): UpdatestmtContext | null { - return this.getRuleContext(0, UpdatestmtContext); + public updateStmt(): UpdateStmtContext | null { + return this.getRuleContext(0, UpdateStmtContext); } - public vacuumstmt(): VacuumstmtContext | null { - return this.getRuleContext(0, VacuumstmtContext); + public vacuumStmt(): VacuumStmtContext | null { + return this.getRuleContext(0, VacuumStmtContext); } - public variableresetstmt(): VariableresetstmtContext | null { - return this.getRuleContext(0, VariableresetstmtContext); + public variableResetStmt(): VariableResetStmtContext | null { + return this.getRuleContext(0, VariableResetStmtContext); } - public variablesetstmt(): VariablesetstmtContext | null { - return this.getRuleContext(0, VariablesetstmtContext); + public variableSetStmt(): VariableSetStmtContext | null { + return this.getRuleContext(0, VariableSetStmtContext); } - public variableshowstmt(): VariableshowstmtContext | null { - return this.getRuleContext(0, VariableshowstmtContext); + public variableShowStmt(): VariableShowStmtContext | null { + return this.getRuleContext(0, VariableShowStmtContext); } - public viewstmt(): ViewstmtContext | null { - return this.getRuleContext(0, ViewstmtContext); + public viewStmt(): ViewStmtContext | null { + return this.getRuleContext(0, ViewStmtContext); } public MetaCommand(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.MetaCommand, 0); @@ -58803,7 +58793,7 @@ export class StmtContext extends antlr.ParserRuleContext { } -export class CallstmtContext extends antlr.ParserRuleContext { +export class CallStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -58814,21 +58804,21 @@ export class CallstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Func_applicationContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_callstmt; + return PostgreSqlParser.RULE_callStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCallstmt) { - listener.enterCallstmt(this); + if(listener.enterCallStmt) { + listener.enterCallStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCallstmt) { - listener.exitCallstmt(this); + if(listener.exitCallStmt) { + listener.exitCallStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCallstmt) { - return visitor.visitCallstmt(this); + if (visitor.visitCallStmt) { + return visitor.visitCallStmt(this); } else { return visitor.visitChildren(this); } @@ -58836,7 +58826,7 @@ export class CallstmtContext extends antlr.ParserRuleContext { } -export class CreaterolestmtContext extends antlr.ParserRuleContext { +export class CreateRoleStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -58846,37 +58836,37 @@ export class CreaterolestmtContext extends antlr.ParserRuleContext { public KW_ROLE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ROLE, 0)!; } - public rolespec(): RolespecContext { - return this.getRuleContext(0, RolespecContext)!; + public roleSpec(): RoleSpecContext { + return this.getRuleContext(0, RoleSpecContext)!; } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public createoptroleelem(): CreateoptroleelemContext[]; - public createoptroleelem(i: number): CreateoptroleelemContext | null; - public createoptroleelem(i?: number): CreateoptroleelemContext[] | CreateoptroleelemContext | null { + public createOperatorRoleElem(): CreateOperatorRoleElemContext[]; + public createOperatorRoleElem(i: number): CreateOperatorRoleElemContext | null; + public createOperatorRoleElem(i?: number): CreateOperatorRoleElemContext[] | CreateOperatorRoleElemContext | null { if (i === undefined) { - return this.getRuleContexts(CreateoptroleelemContext); + return this.getRuleContexts(CreateOperatorRoleElemContext); } - return this.getRuleContext(i, CreateoptroleelemContext); + return this.getRuleContext(i, CreateOperatorRoleElemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createrolestmt; + return PostgreSqlParser.RULE_createRoleStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreaterolestmt) { - listener.enterCreaterolestmt(this); + if(listener.enterCreateRoleStmt) { + listener.enterCreateRoleStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreaterolestmt) { - listener.exitCreaterolestmt(this); + if(listener.exitCreateRoleStmt) { + listener.exitCreateRoleStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreaterolestmt) { - return visitor.visitCreaterolestmt(this); + if (visitor.visitCreateRoleStmt) { + return visitor.visitCreateRoleStmt(this); } else { return visitor.visitChildren(this); } @@ -58884,15 +58874,15 @@ export class CreaterolestmtContext extends antlr.ParserRuleContext { } -export class AlteroptroleelemContext extends antlr.ParserRuleContext { +export class AlterOperatorRoleElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_PASSWORD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PASSWORD, 0); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public KW_NULL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NULL, 0); @@ -58957,8 +58947,8 @@ export class AlteroptroleelemContext extends antlr.ParserRuleContext { public KW_LIMIT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LIMIT, 0); } - public signediconst(): SignediconstContext | null { - return this.getRuleContext(0, SignediconstContext); + public signedConst(): SignedConstContext | null { + return this.getRuleContext(0, SignedConstContext); } public KW_VALID(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VALID, 0); @@ -58991,21 +58981,21 @@ export class AlteroptroleelemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, IdentifierContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alteroptroleelem; + return PostgreSqlParser.RULE_alterOperatorRoleElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlteroptroleelem) { - listener.enterAlteroptroleelem(this); + if(listener.enterAlterOperatorRoleElem) { + listener.enterAlterOperatorRoleElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlteroptroleelem) { - listener.exitAlteroptroleelem(this); + if(listener.exitAlterOperatorRoleElem) { + listener.exitAlterOperatorRoleElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlteroptroleelem) { - return visitor.visitAlteroptroleelem(this); + if (visitor.visitAlterOperatorRoleElem) { + return visitor.visitAlterOperatorRoleElem(this); } else { return visitor.visitChildren(this); } @@ -59013,12 +59003,12 @@ export class AlteroptroleelemContext extends antlr.ParserRuleContext { } -export class CreateoptroleelemContext extends antlr.ParserRuleContext { +export class CreateOperatorRoleElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public alteroptroleelem(): AlteroptroleelemContext | null { - return this.getRuleContext(0, AlteroptroleelemContext); + public alterOperatorRoleElem(): AlterOperatorRoleElemContext | null { + return this.getRuleContext(0, AlterOperatorRoleElemContext); } public KW_SYSID(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SYSID, 0); @@ -59042,21 +59032,21 @@ export class CreateoptroleelemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_GROUP, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createoptroleelem; + return PostgreSqlParser.RULE_createOperatorRoleElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateoptroleelem) { - listener.enterCreateoptroleelem(this); + if(listener.enterCreateOperatorRoleElem) { + listener.enterCreateOperatorRoleElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateoptroleelem) { - listener.exitCreateoptroleelem(this); + if(listener.exitCreateOperatorRoleElem) { + listener.exitCreateOperatorRoleElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateoptroleelem) { - return visitor.visitCreateoptroleelem(this); + if (visitor.visitCreateOperatorRoleElem) { + return visitor.visitCreateOperatorRoleElem(this); } else { return visitor.visitChildren(this); } @@ -59064,7 +59054,7 @@ export class CreateoptroleelemContext extends antlr.ParserRuleContext { } -export class CreateuserstmtContext extends antlr.ParserRuleContext { +export class CreateUserStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59074,37 +59064,37 @@ export class CreateuserstmtContext extends antlr.ParserRuleContext { public KW_USER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_USER, 0)!; } - public rolespec(): RolespecContext { - return this.getRuleContext(0, RolespecContext)!; + public roleSpec(): RoleSpecContext { + return this.getRuleContext(0, RoleSpecContext)!; } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public createoptroleelem(): CreateoptroleelemContext[]; - public createoptroleelem(i: number): CreateoptroleelemContext | null; - public createoptroleelem(i?: number): CreateoptroleelemContext[] | CreateoptroleelemContext | null { + public createOperatorRoleElem(): CreateOperatorRoleElemContext[]; + public createOperatorRoleElem(i: number): CreateOperatorRoleElemContext | null; + public createOperatorRoleElem(i?: number): CreateOperatorRoleElemContext[] | CreateOperatorRoleElemContext | null { if (i === undefined) { - return this.getRuleContexts(CreateoptroleelemContext); + return this.getRuleContexts(CreateOperatorRoleElemContext); } - return this.getRuleContext(i, CreateoptroleelemContext); + return this.getRuleContext(i, CreateOperatorRoleElemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createuserstmt; + return PostgreSqlParser.RULE_createUserStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateuserstmt) { - listener.enterCreateuserstmt(this); + if(listener.enterCreateUserStmt) { + listener.enterCreateUserStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateuserstmt) { - listener.exitCreateuserstmt(this); + if(listener.exitCreateUserStmt) { + listener.exitCreateUserStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateuserstmt) { - return visitor.visitCreateuserstmt(this); + if (visitor.visitCreateUserStmt) { + return visitor.visitCreateUserStmt(this); } else { return visitor.visitChildren(this); } @@ -59112,15 +59102,15 @@ export class CreateuserstmtContext extends antlr.ParserRuleContext { } -export class AlterrolestmtContext extends antlr.ParserRuleContext { +export class AlterRoleStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_ALTER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ALTER, 0)!; } - public rolespec(): RolespecContext { - return this.getRuleContext(0, RolespecContext)!; + public roleSpec(): RoleSpecContext { + return this.getRuleContext(0, RoleSpecContext)!; } public KW_ROLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROLE, 0); @@ -59131,31 +59121,31 @@ export class AlterrolestmtContext extends antlr.ParserRuleContext { public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public alteroptroleelem(): AlteroptroleelemContext[]; - public alteroptroleelem(i: number): AlteroptroleelemContext | null; - public alteroptroleelem(i?: number): AlteroptroleelemContext[] | AlteroptroleelemContext | null { + public alterOperatorRoleElem(): AlterOperatorRoleElemContext[]; + public alterOperatorRoleElem(i: number): AlterOperatorRoleElemContext | null; + public alterOperatorRoleElem(i?: number): AlterOperatorRoleElemContext[] | AlterOperatorRoleElemContext | null { if (i === undefined) { - return this.getRuleContexts(AlteroptroleelemContext); + return this.getRuleContexts(AlterOperatorRoleElemContext); } - return this.getRuleContext(i, AlteroptroleelemContext); + return this.getRuleContext(i, AlterOperatorRoleElemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterrolestmt; + return PostgreSqlParser.RULE_alterRoleStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterrolestmt) { - listener.enterAlterrolestmt(this); + if(listener.enterAlterRoleStmt) { + listener.enterAlterRoleStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterrolestmt) { - listener.exitAlterrolestmt(this); + if(listener.exitAlterRoleStmt) { + listener.exitAlterRoleStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterrolestmt) { - return visitor.visitAlterrolestmt(this); + if (visitor.visitAlterRoleStmt) { + return visitor.visitAlterRoleStmt(this); } else { return visitor.visitChildren(this); } @@ -59163,7 +59153,7 @@ export class AlterrolestmtContext extends antlr.ParserRuleContext { } -export class AlterrolesetstmtContext extends antlr.ParserRuleContext { +export class AlterRoleSetStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59179,8 +59169,8 @@ export class AlterrolesetstmtContext extends antlr.ParserRuleContext { public database_name(): Database_nameContext { return this.getRuleContext(0, Database_nameContext)!; } - public setresetclause(): SetresetclauseContext { - return this.getRuleContext(0, SetresetclauseContext)!; + public setOrResetClause(): SetOrResetClauseContext { + return this.getRuleContext(0, SetOrResetClauseContext)!; } public KW_ROLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROLE, 0); @@ -59191,25 +59181,25 @@ export class AlterrolesetstmtContext extends antlr.ParserRuleContext { public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterrolesetstmt; + return PostgreSqlParser.RULE_alterRoleSetStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterrolesetstmt) { - listener.enterAlterrolesetstmt(this); + if(listener.enterAlterRoleSetStmt) { + listener.enterAlterRoleSetStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterrolesetstmt) { - listener.exitAlterrolesetstmt(this); + if(listener.exitAlterRoleSetStmt) { + listener.exitAlterRoleSetStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterrolesetstmt) { - return visitor.visitAlterrolesetstmt(this); + if (visitor.visitAlterRoleSetStmt) { + return visitor.visitAlterRoleSetStmt(this); } else { return visitor.visitChildren(this); } @@ -59217,7 +59207,7 @@ export class AlterrolesetstmtContext extends antlr.ParserRuleContext { } -export class AlterroutinestmtContext extends antlr.ParserRuleContext { +export class AlterRoutineStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59230,28 +59220,28 @@ export class AlterroutinestmtContext extends antlr.ParserRuleContext { public routine_name(): Routine_nameContext { return this.getRuleContext(0, Routine_nameContext)!; } - public alter_routine_cluase(): Alter_routine_cluaseContext { - return this.getRuleContext(0, Alter_routine_cluaseContext)!; + public alter_routine_clause(): Alter_routine_clauseContext { + return this.getRuleContext(0, Alter_routine_clauseContext)!; } public func_args(): Func_argsContext | null { return this.getRuleContext(0, Func_argsContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterroutinestmt; + return PostgreSqlParser.RULE_alterRoutineStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterroutinestmt) { - listener.enterAlterroutinestmt(this); + if(listener.enterAlterRoutineStmt) { + listener.enterAlterRoutineStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterroutinestmt) { - listener.exitAlterroutinestmt(this); + if(listener.exitAlterRoutineStmt) { + listener.exitAlterRoutineStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterroutinestmt) { - return visitor.visitAlterroutinestmt(this); + if (visitor.visitAlterRoutineStmt) { + return visitor.visitAlterRoutineStmt(this); } else { return visitor.visitChildren(this); } @@ -59259,7 +59249,7 @@ export class AlterroutinestmtContext extends antlr.ParserRuleContext { } -export class Alter_routine_cluaseContext extends antlr.ParserRuleContext { +export class Alter_routine_clauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59287,8 +59277,8 @@ export class Alter_routine_cluaseContext extends antlr.ParserRuleContext { public KW_OWNER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OWNER, 0); } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); @@ -59308,28 +59298,28 @@ export class Alter_routine_cluaseContext extends antlr.ParserRuleContext { public KW_EXTENSION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_EXTENSION, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_NO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NO, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alter_routine_cluase; + return PostgreSqlParser.RULE_alter_routine_clause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlter_routine_cluase) { - listener.enterAlter_routine_cluase(this); + if(listener.enterAlter_routine_clause) { + listener.enterAlter_routine_clause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlter_routine_cluase) { - listener.exitAlter_routine_cluase(this); + if(listener.exitAlter_routine_clause) { + listener.exitAlter_routine_clause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlter_routine_cluase) { - return visitor.visitAlter_routine_cluase(this); + if (visitor.visitAlter_routine_clause) { + return visitor.visitAlter_routine_clause(this); } else { return visitor.visitChildren(this); } @@ -59383,20 +59373,20 @@ export class Routine_actionContext extends antlr.ParserRuleContext { public KW_COST(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_COST, 0); } - public collabel(): CollabelContext | null { - return this.getRuleContext(0, CollabelContext); + public colLabel(): ColLabelContext | null { + return this.getRuleContext(0, ColLabelContext); } public KW_ROWS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROWS, 0); } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); @@ -59445,7 +59435,7 @@ export class Routine_actionContext extends antlr.ParserRuleContext { } -export class CreategroupstmtContext extends antlr.ParserRuleContext { +export class CreateGroupStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59455,37 +59445,37 @@ export class CreategroupstmtContext extends antlr.ParserRuleContext { public KW_GROUP(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_GROUP, 0)!; } - public rolespec(): RolespecContext { - return this.getRuleContext(0, RolespecContext)!; + public roleSpec(): RoleSpecContext { + return this.getRuleContext(0, RoleSpecContext)!; } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public createoptroleelem(): CreateoptroleelemContext[]; - public createoptroleelem(i: number): CreateoptroleelemContext | null; - public createoptroleelem(i?: number): CreateoptroleelemContext[] | CreateoptroleelemContext | null { + public createOperatorRoleElem(): CreateOperatorRoleElemContext[]; + public createOperatorRoleElem(i: number): CreateOperatorRoleElemContext | null; + public createOperatorRoleElem(i?: number): CreateOperatorRoleElemContext[] | CreateOperatorRoleElemContext | null { if (i === undefined) { - return this.getRuleContexts(CreateoptroleelemContext); + return this.getRuleContexts(CreateOperatorRoleElemContext); } - return this.getRuleContext(i, CreateoptroleelemContext); + return this.getRuleContext(i, CreateOperatorRoleElemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_creategroupstmt; + return PostgreSqlParser.RULE_createGroupStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreategroupstmt) { - listener.enterCreategroupstmt(this); + if(listener.enterCreateGroupStmt) { + listener.enterCreateGroupStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreategroupstmt) { - listener.exitCreategroupstmt(this); + if(listener.exitCreateGroupStmt) { + listener.exitCreateGroupStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreategroupstmt) { - return visitor.visitCreategroupstmt(this); + if (visitor.visitCreateGroupStmt) { + return visitor.visitCreateGroupStmt(this); } else { return visitor.visitChildren(this); } @@ -59493,7 +59483,7 @@ export class CreategroupstmtContext extends antlr.ParserRuleContext { } -export class AltergroupstmtContext extends antlr.ParserRuleContext { +export class AlterGroupStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59503,8 +59493,8 @@ export class AltergroupstmtContext extends antlr.ParserRuleContext { public KW_GROUP(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_GROUP, 0)!; } - public rolespec(): RolespecContext { - return this.getRuleContext(0, RolespecContext)!; + public roleSpec(): RoleSpecContext { + return this.getRuleContext(0, RoleSpecContext)!; } public KW_USER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_USER, 0)!; @@ -59519,21 +59509,21 @@ export class AltergroupstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DROP, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_altergroupstmt; + return PostgreSqlParser.RULE_alterGroupStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAltergroupstmt) { - listener.enterAltergroupstmt(this); + if(listener.enterAlterGroupStmt) { + listener.enterAlterGroupStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAltergroupstmt) { - listener.exitAltergroupstmt(this); + if(listener.exitAlterGroupStmt) { + listener.exitAlterGroupStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAltergroupstmt) { - return visitor.visitAltergroupstmt(this); + if (visitor.visitAlterGroupStmt) { + return visitor.visitAlterGroupStmt(this); } else { return visitor.visitChildren(this); } @@ -59541,7 +59531,7 @@ export class AltergroupstmtContext extends antlr.ParserRuleContext { } -export class CreateschemastmtContext extends antlr.ParserRuleContext { +export class CreateSchemaStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59554,8 +59544,8 @@ export class CreateschemastmtContext extends antlr.ParserRuleContext { public KW_AUTHORIZATION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AUTHORIZATION, 0); } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public schema_name_create(): Schema_name_createContext | null { return this.getRuleContext(0, Schema_name_createContext); @@ -59573,21 +59563,21 @@ export class CreateschemastmtContext extends antlr.ParserRuleContext { return this.getRuleContext(i, Schema_stmtContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createschemastmt; + return PostgreSqlParser.RULE_createSchemaStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateschemastmt) { - listener.enterCreateschemastmt(this); + if(listener.enterCreateSchemaStmt) { + listener.enterCreateSchemaStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateschemastmt) { - listener.exitCreateschemastmt(this); + if(listener.exitCreateSchemaStmt) { + listener.exitCreateSchemaStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateschemastmt) { - return visitor.visitCreateschemastmt(this); + if (visitor.visitCreateSchemaStmt) { + return visitor.visitCreateSchemaStmt(this); } else { return visitor.visitChildren(this); } @@ -59638,23 +59628,23 @@ export class Schema_stmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public createstmt(): CreatestmtContext | null { - return this.getRuleContext(0, CreatestmtContext); + public createStmt(): CreateStmtContext | null { + return this.getRuleContext(0, CreateStmtContext); } - public indexstmt(): IndexstmtContext | null { - return this.getRuleContext(0, IndexstmtContext); + public indexStmt(): IndexStmtContext | null { + return this.getRuleContext(0, IndexStmtContext); } - public createseqstmt(): CreateseqstmtContext | null { - return this.getRuleContext(0, CreateseqstmtContext); + public createSeqStmt(): CreateSeqStmtContext | null { + return this.getRuleContext(0, CreateSeqStmtContext); } - public createtrigstmt(): CreatetrigstmtContext | null { - return this.getRuleContext(0, CreatetrigstmtContext); + public createTrigStmt(): CreateTrigStmtContext | null { + return this.getRuleContext(0, CreateTrigStmtContext); } - public grantstmt(): GrantstmtContext | null { - return this.getRuleContext(0, GrantstmtContext); + public grantStmt(): GrantStmtContext | null { + return this.getRuleContext(0, GrantStmtContext); } - public viewstmt(): ViewstmtContext | null { - return this.getRuleContext(0, ViewstmtContext); + public viewStmt(): ViewStmtContext | null { + return this.getRuleContext(0, ViewStmtContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_schema_stmt; @@ -59679,7 +59669,7 @@ export class Schema_stmtContext extends antlr.ParserRuleContext { } -export class VariablesetstmtContext extends antlr.ParserRuleContext { +export class VariableSetStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59696,21 +59686,21 @@ export class VariablesetstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_SESSION, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_variablesetstmt; + return PostgreSqlParser.RULE_variableSetStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterVariablesetstmt) { - listener.enterVariablesetstmt(this); + if(listener.enterVariableSetStmt) { + listener.enterVariableSetStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitVariablesetstmt) { - listener.exitVariablesetstmt(this); + if(listener.exitVariableSetStmt) { + listener.exitVariableSetStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitVariablesetstmt) { - return visitor.visitVariablesetstmt(this); + if (visitor.visitVariableSetStmt) { + return visitor.visitVariableSetStmt(this); } else { return visitor.visitChildren(this); } @@ -59824,8 +59814,8 @@ export class Set_rest_moreContext extends antlr.ParserRuleContext { public KW_CATALOG(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CATALOG, 0); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); @@ -59842,8 +59832,8 @@ export class Set_rest_moreContext extends antlr.ParserRuleContext { public KW_ROLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROLE, 0); } - public nonreservedword_or_sconst(): Nonreservedword_or_sconstContext | null { - return this.getRuleContext(0, Nonreservedword_or_sconstContext); + public nonReservedWordOrStringConst(): NonReservedWordOrStringConstContext | null { + return this.getRuleContext(0, NonReservedWordOrStringConstContext); } public KW_SESSION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SESSION, 0); @@ -59905,14 +59895,14 @@ export class Var_nameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public DOT(): antlr.TerminalNode[]; public DOT(i: number): antlr.TerminalNode | null; @@ -59998,8 +59988,8 @@ export class Var_valueContext extends antlr.ParserRuleContext { public opt_boolean_or_string(): Opt_boolean_or_stringContext | null { return this.getRuleContext(0, Opt_boolean_or_stringContext); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_var_value; @@ -60085,8 +60075,8 @@ export class Opt_boolean_or_string_columnContext extends antlr.ParserRuleContext public type_func_name_keyword(): Type_func_name_keywordContext | null { return this.getRuleContext(0, Type_func_name_keywordContext); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_opt_boolean_or_string_column; @@ -60124,8 +60114,8 @@ export class Opt_boolean_or_stringContext extends antlr.ParserRuleContext { public KW_ON(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ON, 0); } - public nonreservedword_or_sconst(): Nonreservedword_or_sconstContext | null { - return this.getRuleContext(0, Nonreservedword_or_sconstContext); + public nonReservedWordOrStringConst(): NonReservedWordOrStringConstContext | null { + return this.getRuleContext(0, NonReservedWordOrStringConstContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_opt_boolean_or_string; @@ -60154,8 +60144,8 @@ export class Zone_valueContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public KW_DEFAULT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); @@ -60172,8 +60162,8 @@ export class Zone_valueContext extends antlr.ParserRuleContext { public opt_float(): Opt_floatContext | null { return this.getRuleContext(0, Opt_floatContext); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } public KW_LOCAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LOCAL, 0); @@ -60201,32 +60191,32 @@ export class Zone_valueContext extends antlr.ParserRuleContext { } -export class Nonreservedword_or_sconstContext extends antlr.ParserRuleContext { +export class NonReservedWordOrStringConstContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public nonreservedword(): NonreservedwordContext | null { - return this.getRuleContext(0, NonreservedwordContext); + public nonReservedWord(): NonReservedWordContext | null { + return this.getRuleContext(0, NonReservedWordContext); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_nonreservedword_or_sconst; + return PostgreSqlParser.RULE_nonReservedWordOrStringConst; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterNonreservedword_or_sconst) { - listener.enterNonreservedword_or_sconst(this); + if(listener.enterNonReservedWordOrStringConst) { + listener.enterNonReservedWordOrStringConst(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitNonreservedword_or_sconst) { - listener.exitNonreservedword_or_sconst(this); + if(listener.exitNonReservedWordOrStringConst) { + listener.exitNonReservedWordOrStringConst(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitNonreservedword_or_sconst) { - return visitor.visitNonreservedword_or_sconst(this); + if (visitor.visitNonReservedWordOrStringConst) { + return visitor.visitNonReservedWordOrStringConst(this); } else { return visitor.visitChildren(this); } @@ -60234,7 +60224,7 @@ export class Nonreservedword_or_sconstContext extends antlr.ParserRuleContext { } -export class VariableresetstmtContext extends antlr.ParserRuleContext { +export class VariableResetStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60245,21 +60235,21 @@ export class VariableresetstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Reset_restContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_variableresetstmt; + return PostgreSqlParser.RULE_variableResetStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterVariableresetstmt) { - listener.enterVariableresetstmt(this); + if(listener.enterVariableResetStmt) { + listener.enterVariableResetStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitVariableresetstmt) { - listener.exitVariableresetstmt(this); + if(listener.exitVariableResetStmt) { + listener.exitVariableResetStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitVariableresetstmt) { - return visitor.visitVariableresetstmt(this); + if (visitor.visitVariableResetStmt) { + return visitor.visitVariableResetStmt(this); } else { return visitor.visitChildren(this); } @@ -60321,7 +60311,7 @@ export class Reset_restContext extends antlr.ParserRuleContext { } -export class SetresetclauseContext extends antlr.ParserRuleContext { +export class SetOrResetClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60331,25 +60321,25 @@ export class SetresetclauseContext extends antlr.ParserRuleContext { public set_rest(): Set_restContext | null { return this.getRuleContext(0, Set_restContext); } - public variableresetstmt(): VariableresetstmtContext | null { - return this.getRuleContext(0, VariableresetstmtContext); + public variableResetStmt(): VariableResetStmtContext | null { + return this.getRuleContext(0, VariableResetStmtContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_setresetclause; + return PostgreSqlParser.RULE_setOrResetClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSetresetclause) { - listener.enterSetresetclause(this); + if(listener.enterSetOrResetClause) { + listener.enterSetOrResetClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSetresetclause) { - listener.exitSetresetclause(this); + if(listener.exitSetOrResetClause) { + listener.exitSetOrResetClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSetresetclause) { - return visitor.visitSetresetclause(this); + if (visitor.visitSetOrResetClause) { + return visitor.visitSetOrResetClause(this); } else { return visitor.visitChildren(this); } @@ -60357,7 +60347,7 @@ export class SetresetclauseContext extends antlr.ParserRuleContext { } -export class FunctionsetresetclauseContext extends antlr.ParserRuleContext { +export class FunctionSetOrResetClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60367,25 +60357,25 @@ export class FunctionsetresetclauseContext extends antlr.ParserRuleContext { public set_rest_more(): Set_rest_moreContext | null { return this.getRuleContext(0, Set_rest_moreContext); } - public variableresetstmt(): VariableresetstmtContext | null { - return this.getRuleContext(0, VariableresetstmtContext); + public variableResetStmt(): VariableResetStmtContext | null { + return this.getRuleContext(0, VariableResetStmtContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_functionsetresetclause; + return PostgreSqlParser.RULE_functionSetOrResetClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunctionsetresetclause) { - listener.enterFunctionsetresetclause(this); + if(listener.enterFunctionSetOrResetClause) { + listener.enterFunctionSetOrResetClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunctionsetresetclause) { - listener.exitFunctionsetresetclause(this); + if(listener.exitFunctionSetOrResetClause) { + listener.exitFunctionSetOrResetClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunctionsetresetclause) { - return visitor.visitFunctionsetresetclause(this); + if (visitor.visitFunctionSetOrResetClause) { + return visitor.visitFunctionSetOrResetClause(this); } else { return visitor.visitChildren(this); } @@ -60393,7 +60383,7 @@ export class FunctionsetresetclauseContext extends antlr.ParserRuleContext { } -export class VariableshowstmtContext extends antlr.ParserRuleContext { +export class VariableShowStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60428,21 +60418,21 @@ export class VariableshowstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ALL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_variableshowstmt; + return PostgreSqlParser.RULE_variableShowStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterVariableshowstmt) { - listener.enterVariableshowstmt(this); + if(listener.enterVariableShowStmt) { + listener.enterVariableShowStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitVariableshowstmt) { - listener.exitVariableshowstmt(this); + if(listener.exitVariableShowStmt) { + listener.exitVariableShowStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitVariableshowstmt) { - return visitor.visitVariableshowstmt(this); + if (visitor.visitVariableShowStmt) { + return visitor.visitVariableShowStmt(this); } else { return visitor.visitChildren(this); } @@ -60450,7 +60440,7 @@ export class VariableshowstmtContext extends antlr.ParserRuleContext { } -export class ConstraintssetstmtContext extends antlr.ParserRuleContext { +export class ConstraintsSetStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60473,21 +60463,21 @@ export class ConstraintssetstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Qualified_name_listContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_constraintssetstmt; + return PostgreSqlParser.RULE_constraintsSetStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterConstraintssetstmt) { - listener.enterConstraintssetstmt(this); + if(listener.enterConstraintsSetStmt) { + listener.enterConstraintsSetStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitConstraintssetstmt) { - listener.exitConstraintssetstmt(this); + if(listener.exitConstraintsSetStmt) { + listener.exitConstraintsSetStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitConstraintssetstmt) { - return visitor.visitConstraintssetstmt(this); + if (visitor.visitConstraintsSetStmt) { + return visitor.visitConstraintsSetStmt(this); } else { return visitor.visitChildren(this); } @@ -60495,7 +60485,7 @@ export class ConstraintssetstmtContext extends antlr.ParserRuleContext { } -export class CheckpointstmtContext extends antlr.ParserRuleContext { +export class CheckPointStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60503,21 +60493,21 @@ export class CheckpointstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_CHECKPOINT, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_checkpointstmt; + return PostgreSqlParser.RULE_checkPointStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCheckpointstmt) { - listener.enterCheckpointstmt(this); + if(listener.enterCheckPointStmt) { + listener.enterCheckPointStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCheckpointstmt) { - listener.exitCheckpointstmt(this); + if(listener.exitCheckPointStmt) { + listener.exitCheckPointStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCheckpointstmt) { - return visitor.visitCheckpointstmt(this); + if (visitor.visitCheckPointStmt) { + return visitor.visitCheckPointStmt(this); } else { return visitor.visitChildren(this); } @@ -60525,7 +60515,7 @@ export class CheckpointstmtContext extends antlr.ParserRuleContext { } -export class DiscardstmtContext extends antlr.ParserRuleContext { +export class DiscardStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60548,21 +60538,21 @@ export class DiscardstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_SEQUENCES, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_discardstmt; + return PostgreSqlParser.RULE_discardStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDiscardstmt) { - listener.enterDiscardstmt(this); + if(listener.enterDiscardStmt) { + listener.enterDiscardStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDiscardstmt) { - listener.exitDiscardstmt(this); + if(listener.exitDiscardStmt) { + listener.exitDiscardStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDiscardstmt) { - return visitor.visitDiscardstmt(this); + if (visitor.visitDiscardStmt) { + return visitor.visitDiscardStmt(this); } else { return visitor.visitChildren(this); } @@ -60570,7 +60560,7 @@ export class DiscardstmtContext extends antlr.ParserRuleContext { } -export class AltertablestmtContext extends antlr.ParserRuleContext { +export class AlterTableStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60598,14 +60588,14 @@ export class AltertablestmtContext extends antlr.ParserRuleContext { public KW_IN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_IN, 0); } - public opttablespace(): OpttablespaceContext[]; - public opttablespace(i: number): OpttablespaceContext | null; - public opttablespace(i?: number): OpttablespaceContext[] | OpttablespaceContext | null { + public optTableSpace(): OptTableSpaceContext[]; + public optTableSpace(i: number): OptTableSpaceContext | null; + public optTableSpace(i?: number): OptTableSpaceContext[] | OptTableSpaceContext | null { if (i === undefined) { - return this.getRuleContexts(OpttablespaceContext); + return this.getRuleContexts(OptTableSpaceContext); } - return this.getRuleContext(i, OpttablespaceContext); + return this.getRuleContext(i, OptTableSpaceContext); } public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); @@ -60680,21 +60670,21 @@ export class AltertablestmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_FOREIGN, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_altertablestmt; + return PostgreSqlParser.RULE_alterTableStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAltertablestmt) { - listener.enterAltertablestmt(this); + if(listener.enterAlterTableStmt) { + listener.enterAlterTableStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAltertablestmt) { - listener.exitAltertablestmt(this); + if(listener.exitAlterTableStmt) { + listener.exitAlterTableStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAltertablestmt) { - return visitor.visitAltertablestmt(this); + if (visitor.visitAlterTableStmt) { + return visitor.visitAlterTableStmt(this); } else { return visitor.visitChildren(this); } @@ -60760,14 +60750,14 @@ export class Partition_bound_specContext extends antlr.ParserRuleContext { public KW_FROM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FROM, 0); } - public partition_bound_cluase(): Partition_bound_cluaseContext[]; - public partition_bound_cluase(i: number): Partition_bound_cluaseContext | null; - public partition_bound_cluase(i?: number): Partition_bound_cluaseContext[] | Partition_bound_cluaseContext | null { + public partition_bound_clause(): Partition_bound_clauseContext[]; + public partition_bound_clause(i: number): Partition_bound_clauseContext | null; + public partition_bound_clause(i?: number): Partition_bound_clauseContext[] | Partition_bound_clauseContext | null { if (i === undefined) { - return this.getRuleContexts(Partition_bound_cluaseContext); + return this.getRuleContexts(Partition_bound_clauseContext); } - return this.getRuleContext(i, Partition_bound_cluaseContext); + return this.getRuleContext(i, Partition_bound_clauseContext); } public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); @@ -60775,8 +60765,8 @@ export class Partition_bound_specContext extends antlr.ParserRuleContext { public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public partition_with_cluase(): Partition_with_cluaseContext | null { - return this.getRuleContext(0, Partition_with_cluaseContext); + public partition_with_clause(): Partition_with_clauseContext | null { + return this.getRuleContext(0, Partition_with_clauseContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_partition_bound_spec; @@ -60801,7 +60791,7 @@ export class Partition_bound_specContext extends antlr.ParserRuleContext { } -export class Partition_bound_cluaseContext extends antlr.ParserRuleContext { +export class Partition_bound_clauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60830,21 +60820,21 @@ export class Partition_bound_cluaseContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_partition_bound_cluase; + return PostgreSqlParser.RULE_partition_bound_clause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPartition_bound_cluase) { - listener.enterPartition_bound_cluase(this); + if(listener.enterPartition_bound_clause) { + listener.enterPartition_bound_clause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPartition_bound_cluase) { - listener.exitPartition_bound_cluase(this); + if(listener.exitPartition_bound_clause) { + listener.exitPartition_bound_clause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPartition_bound_cluase) { - return visitor.visitPartition_bound_cluase(this); + if (visitor.visitPartition_bound_clause) { + return visitor.visitPartition_bound_clause(this); } else { return visitor.visitChildren(this); } @@ -60888,7 +60878,7 @@ export class Partition_bound_chooseContext extends antlr.ParserRuleContext { } -export class Partition_with_cluaseContext extends antlr.ParserRuleContext { +export class Partition_with_clauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60898,14 +60888,14 @@ export class Partition_with_cluaseContext extends antlr.ParserRuleContext { public KW_MODULUS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_MODULUS, 0)!; } - public numericonly(): NumericonlyContext[]; - public numericonly(i: number): NumericonlyContext | null; - public numericonly(i?: number): NumericonlyContext[] | NumericonlyContext | null { + public numericOnly(): NumericOnlyContext[]; + public numericOnly(i: number): NumericOnlyContext | null; + public numericOnly(i?: number): NumericOnlyContext[] | NumericOnlyContext | null { if (i === undefined) { - return this.getRuleContexts(NumericonlyContext); + return this.getRuleContexts(NumericOnlyContext); } - return this.getRuleContext(i, NumericonlyContext); + return this.getRuleContext(i, NumericOnlyContext); } public COMMA(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.COMMA, 0)!; @@ -60917,21 +60907,21 @@ export class Partition_with_cluaseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_partition_with_cluase; + return PostgreSqlParser.RULE_partition_with_clause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPartition_with_cluase) { - listener.enterPartition_with_cluase(this); + if(listener.enterPartition_with_clause) { + listener.enterPartition_with_clause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPartition_with_cluase) { - listener.exitPartition_with_cluase(this); + if(listener.exitPartition_with_clause) { + listener.exitPartition_with_clause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPartition_with_cluase) { - return visitor.visitPartition_with_cluase(this); + if (visitor.visitPartition_with_clause) { + return visitor.visitPartition_with_clause(this); } else { return visitor.visitChildren(this); } @@ -60946,8 +60936,8 @@ export class Partition_cmdContext extends antlr.ParserRuleContext { public index_partition_cmd(): Index_partition_cmdContext | null { return this.getRuleContext(0, Index_partition_cmdContext); } - public partitionboundspec(): PartitionboundspecContext | null { - return this.getRuleContext(0, PartitionboundspecContext); + public partitionBoundSpec(): PartitionBoundSpecContext | null { + return this.getRuleContext(0, PartitionBoundSpecContext); } public KW_DETACH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DETACH, 0); @@ -61024,26 +61014,26 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public KW_ADD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADD, 0); } - public constraintelem(): ConstraintelemContext | null { - return this.getRuleContext(0, ConstraintelemContext); + public constraintElem(): ConstraintElemContext | null { + return this.getRuleContext(0, ConstraintElemContext); } public KW_CONSTRAINT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONSTRAINT, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_ALTER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALTER, 0); } - public constraintattributeElem(): ConstraintattributeElemContext[]; - public constraintattributeElem(i: number): ConstraintattributeElemContext | null; - public constraintattributeElem(i?: number): ConstraintattributeElemContext[] | ConstraintattributeElemContext | null { + public constraintAttributeElem(): ConstraintAttributeElemContext[]; + public constraintAttributeElem(i: number): ConstraintAttributeElemContext | null; + public constraintAttributeElem(i?: number): ConstraintAttributeElemContext[] | ConstraintAttributeElemContext | null { if (i === undefined) { - return this.getRuleContexts(ConstraintattributeElemContext); + return this.getRuleContexts(ConstraintAttributeElemContext); } - return this.getRuleContext(i, ConstraintattributeElemContext); + return this.getRuleContext(i, ConstraintAttributeElemContext); } public KW_VALIDATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VALIDATE, 0); @@ -61132,8 +61122,8 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public KW_TABLESPACE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLESPACE, 0); @@ -61153,8 +61143,8 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public KW_DEFAULT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); } - public existingindex(): ExistingindexContext | null { - return this.getRuleContext(0, ExistingindexContext); + public existingIndex(): ExistingIndexContext | null { + return this.getRuleContext(0, ExistingIndexContext); } public KW_ROW(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROW, 0); @@ -61195,11 +61185,11 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public KW_STATISTICS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_STATISTICS, 0); } - public signediconst(): SignediconstContext | null { - return this.getRuleContext(0, SignediconstContext); + public signedConst(): SignedConstContext | null { + return this.getRuleContext(0, SignedConstContext); } - public reloptions(): ReloptionsContext | null { - return this.getRuleContext(0, ReloptionsContext); + public relOptions(): RelOptionsContext | null { + return this.getRuleContext(0, RelOptionsContext); } public KW_RESET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_RESET, 0); @@ -61234,14 +61224,14 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } - public seqoptelem(): SeqoptelemContext[]; - public seqoptelem(i: number): SeqoptelemContext | null; - public seqoptelem(i?: number): SeqoptelemContext[] | SeqoptelemContext | null { + public seqOptElem(): SeqOptElemContext[]; + public seqOptElem(i: number): SeqOptElemContext | null; + public seqOptElem(i?: number): SeqOptElemContext[] | SeqOptElemContext | null { if (i === undefined) { - return this.getRuleContexts(SeqoptelemContext); + return this.getRuleContexts(SeqOptElemContext); } - return this.getRuleContext(i, SeqoptelemContext); + return this.getRuleContext(i, SeqOptElemContext); } public KW_RESTART(): antlr.TerminalNode[]; public KW_RESTART(i: number): antlr.TerminalNode | null; @@ -61252,14 +61242,14 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_RESTART, i); } } - public numericonly(): NumericonlyContext[]; - public numericonly(i: number): NumericonlyContext | null; - public numericonly(i?: number): NumericonlyContext[] | NumericonlyContext | null { + public numericOnly(): NumericOnlyContext[]; + public numericOnly(i: number): NumericOnlyContext | null; + public numericOnly(i?: number): NumericOnlyContext[] | NumericOnlyContext | null { if (i === undefined) { - return this.getRuleContexts(NumericonlyContext); + return this.getRuleContexts(NumericOnlyContext); } - return this.getRuleContext(i, NumericonlyContext); + return this.getRuleContext(i, NumericOnlyContext); } public KW_WITH(): antlr.TerminalNode[]; public KW_WITH(i: number): antlr.TerminalNode | null; @@ -61416,21 +61406,21 @@ export class Opt_collate_clauseContext extends antlr.ParserRuleContext { } -export class ReloptionsContext extends antlr.ParserRuleContext { +export class RelOptionsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public reloption_elem(): Reloption_elemContext[]; - public reloption_elem(i: number): Reloption_elemContext | null; - public reloption_elem(i?: number): Reloption_elemContext[] | Reloption_elemContext | null { + public relOptionElem(): RelOptionElemContext[]; + public relOptionElem(i: number): RelOptionElemContext | null; + public relOptionElem(i?: number): RelOptionElemContext[] | RelOptionElemContext | null { if (i === undefined) { - return this.getRuleContexts(Reloption_elemContext); + return this.getRuleContexts(RelOptionElemContext); } - return this.getRuleContext(i, Reloption_elemContext); + return this.getRuleContext(i, RelOptionElemContext); } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -61445,21 +61435,21 @@ export class ReloptionsContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_reloptions; + return PostgreSqlParser.RULE_relOptions; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterReloptions) { - listener.enterReloptions(this); + if(listener.enterRelOptions) { + listener.enterRelOptions(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitReloptions) { - listener.exitReloptions(this); + if(listener.exitRelOptions) { + listener.exitRelOptions(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitReloptions) { - return visitor.visitReloptions(this); + if (visitor.visitRelOptions) { + return visitor.visitRelOptions(this); } else { return visitor.visitChildren(this); } @@ -61467,32 +61457,32 @@ export class ReloptionsContext extends antlr.ParserRuleContext { } -export class Opt_reloptionsContext extends antlr.ParserRuleContext { +export class OptRelOptionsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_WITH(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_WITH, 0)!; } - public reloptions(): ReloptionsContext { - return this.getRuleContext(0, ReloptionsContext)!; + public relOptions(): RelOptionsContext { + return this.getRuleContext(0, RelOptionsContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_reloptions; + return PostgreSqlParser.RULE_optRelOptions; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_reloptions) { - listener.enterOpt_reloptions(this); + if(listener.enterOptRelOptions) { + listener.enterOptRelOptions(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_reloptions) { - listener.exitOpt_reloptions(this); + if(listener.exitOptRelOptions) { + listener.exitOptRelOptions(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_reloptions) { - return visitor.visitOpt_reloptions(this); + if (visitor.visitOptRelOptions) { + return visitor.visitOptRelOptions(this); } else { return visitor.visitChildren(this); } @@ -61500,12 +61490,12 @@ export class Opt_reloptionsContext extends antlr.ParserRuleContext { } -export class Reloption_elemContext extends antlr.ParserRuleContext { +export class RelOptionElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public collabel(): CollabelContext { - return this.getRuleContext(0, CollabelContext)!; + public colLabel(): ColLabelContext { + return this.getRuleContext(0, ColLabelContext)!; } public EQUAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.EQUAL, 0); @@ -61520,21 +61510,21 @@ export class Reloption_elemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Def_elemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_reloption_elem; + return PostgreSqlParser.RULE_relOptionElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterReloption_elem) { - listener.enterReloption_elem(this); + if(listener.enterRelOptionElem) { + listener.enterRelOptionElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitReloption_elem) { - listener.exitReloption_elem(this); + if(listener.exitRelOptionElem) { + listener.exitRelOptionElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitReloption_elem) { - return visitor.visitReloption_elem(this); + if (visitor.visitRelOptionElem) { + return visitor.visitRelOptionElem(this); } else { return visitor.visitChildren(this); } @@ -61542,7 +61532,7 @@ export class Reloption_elemContext extends antlr.ParserRuleContext { } -export class PartitionboundspecContext extends antlr.ParserRuleContext { +export class PartitionBoundSpecContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -61601,21 +61591,21 @@ export class PartitionboundspecContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_partitionboundspec; + return PostgreSqlParser.RULE_partitionBoundSpec; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPartitionboundspec) { - listener.enterPartitionboundspec(this); + if(listener.enterPartitionBoundSpec) { + listener.enterPartitionBoundSpec(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPartitionboundspec) { - listener.exitPartitionboundspec(this); + if(listener.exitPartitionBoundSpec) { + listener.exitPartitionBoundSpec(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPartitionboundspec) { - return visitor.visitPartitionboundspec(this); + if (visitor.visitPartitionBoundSpec) { + return visitor.visitPartitionBoundSpec(this); } else { return visitor.visitChildren(this); } @@ -61623,7 +61613,7 @@ export class PartitionboundspecContext extends antlr.ParserRuleContext { } -export class AltercompositetypestmtContext extends antlr.ParserRuleContext { +export class AlterCompositeTypeStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -61655,21 +61645,21 @@ export class AltercompositetypestmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_altercompositetypestmt; + return PostgreSqlParser.RULE_alterCompositeTypeStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAltercompositetypestmt) { - listener.enterAltercompositetypestmt(this); + if(listener.enterAlterCompositeTypeStmt) { + listener.enterAlterCompositeTypeStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAltercompositetypestmt) { - listener.exitAltercompositetypestmt(this); + if(listener.exitAlterCompositeTypeStmt) { + listener.exitAlterCompositeTypeStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAltercompositetypestmt) { - return visitor.visitAltercompositetypestmt(this); + if (visitor.visitAlterCompositeTypeStmt) { + return visitor.visitAlterCompositeTypeStmt(this); } else { return visitor.visitChildren(this); } @@ -61687,8 +61677,8 @@ export class Alter_type_cmdContext extends antlr.ParserRuleContext { public KW_ATTRIBUTE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ATTRIBUTE, 0)!; } - public tablefuncelement(): TablefuncelementContext | null { - return this.getRuleContext(0, TablefuncelementContext); + public tableFuncElement(): TableFuncElementContext | null { + return this.getRuleContext(0, TableFuncElementContext); } public opt_drop_behavior(): Opt_drop_behaviorContext | null { return this.getRuleContext(0, Opt_drop_behaviorContext); @@ -61696,8 +61686,8 @@ export class Alter_type_cmdContext extends antlr.ParserRuleContext { public KW_DROP(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DROP, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public opt_if_exists(): Opt_if_existsContext | null { return this.getRuleContext(0, Opt_if_existsContext); @@ -61743,35 +61733,35 @@ export class Alter_type_cmdContext extends antlr.ParserRuleContext { } -export class CloseportalstmtContext extends antlr.ParserRuleContext { +export class ClosePortalStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_CLOSE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CLOSE, 0)!; } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_closeportalstmt; + return PostgreSqlParser.RULE_closePortalStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCloseportalstmt) { - listener.enterCloseportalstmt(this); + if(listener.enterClosePortalStmt) { + listener.enterClosePortalStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCloseportalstmt) { - listener.exitCloseportalstmt(this); + if(listener.exitClosePortalStmt) { + listener.exitClosePortalStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCloseportalstmt) { - return visitor.visitCloseportalstmt(this); + if (visitor.visitClosePortalStmt) { + return visitor.visitClosePortalStmt(this); } else { return visitor.visitChildren(this); } @@ -61779,7 +61769,7 @@ export class CloseportalstmtContext extends antlr.ParserRuleContext { } -export class CopystmtContext extends antlr.ParserRuleContext { +export class CopyStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -61798,14 +61788,14 @@ export class CopystmtContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); } - public sconst(): SconstContext[]; - public sconst(i: number): SconstContext | null; - public sconst(i?: number): SconstContext[] | SconstContext | null { + public stringConst(): StringConstContext[]; + public stringConst(i: number): StringConstContext | null; + public stringConst(i?: number): StringConstContext[] | StringConstContext | null { if (i === undefined) { - return this.getRuleContexts(SconstContext); + return this.getRuleContexts(StringConstContext); } - return this.getRuleContext(i, SconstContext); + return this.getRuleContext(i, StringConstContext); } public KW_STDIN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_STDIN, 0); @@ -61837,28 +61827,28 @@ export class CopystmtContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public preparablestmt(): PreparablestmtContext | null { - return this.getRuleContext(0, PreparablestmtContext); + public preParableStmt(): PreParableStmtContext | null { + return this.getRuleContext(0, PreParableStmtContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_copystmt; + return PostgreSqlParser.RULE_copyStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCopystmt) { - listener.enterCopystmt(this); + if(listener.enterCopyStmt) { + listener.enterCopyStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCopystmt) { - listener.exitCopystmt(this); + if(listener.exitCopyStmt) { + listener.exitCopyStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCopystmt) { - return visitor.visitCopystmt(this); + if (visitor.visitCopyStmt) { + return visitor.visitCopyStmt(this); } else { return visitor.visitChildren(this); } @@ -61888,14 +61878,14 @@ export class CopyOptionsNoparensContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_FREEZE, i); } } - public sconst(): SconstContext[]; - public sconst(i: number): SconstContext | null; - public sconst(i?: number): SconstContext[] | SconstContext | null { + public stringConst(): StringConstContext[]; + public stringConst(i: number): StringConstContext | null; + public stringConst(i?: number): StringConstContext[] | StringConstContext | null { if (i === undefined) { - return this.getRuleContexts(SconstContext); + return this.getRuleContexts(StringConstContext); } - return this.getRuleContext(i, SconstContext); + return this.getRuleContext(i, StringConstContext); } public KW_CSV(): antlr.TerminalNode[]; public KW_CSV(i: number): antlr.TerminalNode | null; @@ -62146,14 +62136,14 @@ export class Copy_generic_opt_elemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public collabel(): CollabelContext { - return this.getRuleContext(0, CollabelContext)!; + public colLabel(): ColLabelContext { + return this.getRuleContext(0, ColLabelContext)!; } public opt_boolean_or_string(): Opt_boolean_or_stringContext | null { return this.getRuleContext(0, Opt_boolean_or_stringContext); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } public STAR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.STAR, 0); @@ -62205,19 +62195,19 @@ export class Copy_generic_opt_elemContext extends antlr.ParserRuleContext { } -export class CreatestmtContext extends antlr.ParserRuleContext { +export class CreateStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createstmt; + return PostgreSqlParser.RULE_createStmt; } - public override copyFrom(ctx: CreatestmtContext): void { + public override copyFrom(ctx: CreateStmtContext): void { super.copyFrom(ctx); } } -export class ColumnCreateTableContext extends CreatestmtContext { - public constructor(ctx: CreatestmtContext) { +export class ColumnCreateTableContext extends CreateStmtContext { + public constructor(ctx: CreateStmtContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } @@ -62248,38 +62238,38 @@ export class ColumnCreateTableContext extends CreatestmtContext { public qualified_name(): Qualified_nameContext | null { return this.getRuleContext(0, Qualified_nameContext); } - public partitionboundspec(): PartitionboundspecContext | null { - return this.getRuleContext(0, PartitionboundspecContext); + public partitionBoundSpec(): PartitionBoundSpecContext | null { + return this.getRuleContext(0, PartitionBoundSpecContext); } - public opttemp(): OpttempContext | null { - return this.getRuleContext(0, OpttempContext); + public optTemp(): OptTempContext | null { + return this.getRuleContext(0, OptTempContext); } public opt_if_not_exists(): Opt_if_not_existsContext | null { return this.getRuleContext(0, Opt_if_not_existsContext); } - public tableelementlist(): TableelementlistContext | null { - return this.getRuleContext(0, TableelementlistContext); + public tableElementList(): TableElementListContext | null { + return this.getRuleContext(0, TableElementListContext); } - public optinherit(): OptinheritContext | null { - return this.getRuleContext(0, OptinheritContext); + public optInherit(): OptInheritContext | null { + return this.getRuleContext(0, OptInheritContext); } - public partitionspec(): PartitionspecContext | null { - return this.getRuleContext(0, PartitionspecContext); + public partitionSpec(): PartitionSpecContext | null { + return this.getRuleContext(0, PartitionSpecContext); } public table_access_method_clause(): Table_access_method_clauseContext | null { return this.getRuleContext(0, Table_access_method_clauseContext); } - public optwith(): OptwithContext | null { - return this.getRuleContext(0, OptwithContext); + public optWith(): OptWithContext | null { + return this.getRuleContext(0, OptWithContext); } - public oncommitoption(): OncommitoptionContext | null { - return this.getRuleContext(0, OncommitoptionContext); + public onCommitOption(): OnCommitOptionContext | null { + return this.getRuleContext(0, OnCommitOptionContext); } - public opttablespace(): OpttablespaceContext | null { - return this.getRuleContext(0, OpttablespaceContext); + public optTableSpace(): OptTableSpaceContext | null { + return this.getRuleContext(0, OptTableSpaceContext); } - public opttypedtableelementlist(): OpttypedtableelementlistContext | null { - return this.getRuleContext(0, OpttypedtableelementlistContext); + public optTypedTableElEmentList(): OptTypedTableElEmentListContext | null { + return this.getRuleContext(0, OptTypedTableElEmentListContext); } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterColumnCreateTable) { @@ -62301,7 +62291,7 @@ export class ColumnCreateTableContext extends CreatestmtContext { } -export class OpttempContext extends antlr.ParserRuleContext { +export class OptTempContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -62321,21 +62311,21 @@ export class OpttempContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_UNLOGGED, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opttemp; + return PostgreSqlParser.RULE_optTemp; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpttemp) { - listener.enterOpttemp(this); + if(listener.enterOptTemp) { + listener.enterOptTemp(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpttemp) { - listener.exitOpttemp(this); + if(listener.exitOptTemp) { + listener.exitOptTemp(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpttemp) { - return visitor.visitOpttemp(this); + if (visitor.visitOptTemp) { + return visitor.visitOptTemp(this); } else { return visitor.visitChildren(this); } @@ -62343,21 +62333,21 @@ export class OpttempContext extends antlr.ParserRuleContext { } -export class OpttypedtableelementlistContext extends antlr.ParserRuleContext { +export class OptTypedTableElEmentListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public typedtableelement(): TypedtableelementContext[]; - public typedtableelement(i: number): TypedtableelementContext | null; - public typedtableelement(i?: number): TypedtableelementContext[] | TypedtableelementContext | null { + public typedTableElement(): TypedTableElementContext[]; + public typedTableElement(i: number): TypedTableElementContext | null; + public typedTableElement(i?: number): TypedTableElementContext[] | TypedTableElementContext | null { if (i === undefined) { - return this.getRuleContexts(TypedtableelementContext); + return this.getRuleContexts(TypedTableElementContext); } - return this.getRuleContext(i, TypedtableelementContext); + return this.getRuleContext(i, TypedTableElementContext); } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -62372,21 +62362,21 @@ export class OpttypedtableelementlistContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opttypedtableelementlist; + return PostgreSqlParser.RULE_optTypedTableElEmentList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpttypedtableelementlist) { - listener.enterOpttypedtableelementlist(this); + if(listener.enterOptTypedTableElEmentList) { + listener.enterOptTypedTableElEmentList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpttypedtableelementlist) { - listener.exitOpttypedtableelementlist(this); + if(listener.exitOptTypedTableElEmentList) { + listener.exitOptTypedTableElEmentList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpttypedtableelementlist) { - return visitor.visitOpttypedtableelementlist(this); + if (visitor.visitOptTypedTableElEmentList) { + return visitor.visitOptTypedTableElEmentList(this); } else { return visitor.visitChildren(this); } @@ -62394,18 +62384,18 @@ export class OpttypedtableelementlistContext extends antlr.ParserRuleContext { } -export class TableelementlistContext extends antlr.ParserRuleContext { +export class TableElementListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public tableelement(): TableelementContext[]; - public tableelement(i: number): TableelementContext | null; - public tableelement(i?: number): TableelementContext[] | TableelementContext | null { + public tableElement(): TableElementContext[]; + public tableElement(i: number): TableElementContext | null; + public tableElement(i?: number): TableElementContext[] | TableElementContext | null { if (i === undefined) { - return this.getRuleContexts(TableelementContext); + return this.getRuleContexts(TableElementContext); } - return this.getRuleContext(i, TableelementContext); + return this.getRuleContext(i, TableElementContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -62417,21 +62407,21 @@ export class TableelementlistContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_tableelementlist; + return PostgreSqlParser.RULE_tableElementList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTableelementlist) { - listener.enterTableelementlist(this); + if(listener.enterTableElementList) { + listener.enterTableElementList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTableelementlist) { - listener.exitTableelementlist(this); + if(listener.exitTableElementList) { + listener.exitTableElementList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTableelementlist) { - return visitor.visitTableelementlist(this); + if (visitor.visitTableElementList) { + return visitor.visitTableElementList(this); } else { return visitor.visitChildren(this); } @@ -62439,18 +62429,18 @@ export class TableelementlistContext extends antlr.ParserRuleContext { } -export class TableelementContext extends antlr.ParserRuleContext { +export class TableElementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public constraintelem(): ConstraintelemContext | null { - return this.getRuleContext(0, ConstraintelemContext); + public constraintElem(): ConstraintElemContext | null { + return this.getRuleContext(0, ConstraintElemContext); } public KW_CONSTRAINT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONSTRAINT, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public column_def(): Column_defContext | null { return this.getRuleContext(0, Column_defContext); @@ -62461,14 +62451,14 @@ export class TableelementContext extends antlr.ParserRuleContext { public qualified_name(): Qualified_nameContext | null { return this.getRuleContext(0, Qualified_nameContext); } - public tablelikeoption(): TablelikeoptionContext[]; - public tablelikeoption(i: number): TablelikeoptionContext | null; - public tablelikeoption(i?: number): TablelikeoptionContext[] | TablelikeoptionContext | null { + public tableLikeOption(): TableLikeOptionContext[]; + public tableLikeOption(i: number): TableLikeOptionContext | null; + public tableLikeOption(i?: number): TableLikeOptionContext[] | TableLikeOptionContext | null { if (i === undefined) { - return this.getRuleContexts(TablelikeoptionContext); + return this.getRuleContexts(TableLikeOptionContext); } - return this.getRuleContext(i, TablelikeoptionContext); + return this.getRuleContext(i, TableLikeOptionContext); } public KW_INCLUDING(): antlr.TerminalNode[]; public KW_INCLUDING(i: number): antlr.TerminalNode | null; @@ -62489,21 +62479,21 @@ export class TableelementContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_tableelement; + return PostgreSqlParser.RULE_tableElement; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTableelement) { - listener.enterTableelement(this); + if(listener.enterTableElement) { + listener.enterTableElement(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTableelement) { - listener.exitTableelement(this); + if(listener.exitTableElement) { + listener.exitTableElement(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTableelement) { - return visitor.visitTableelement(this); + if (visitor.visitTableElement) { + return visitor.visitTableElement(this); } else { return visitor.visitChildren(this); } @@ -62511,7 +62501,7 @@ export class TableelementContext extends antlr.ParserRuleContext { } -export class TypedtableelementContext extends antlr.ParserRuleContext { +export class TypedTableElementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -62524,40 +62514,40 @@ export class TypedtableelementContext extends antlr.ParserRuleContext { public KW_OPTIONS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPTIONS, 0); } - public colconstraint(): ColconstraintContext[]; - public colconstraint(i: number): ColconstraintContext | null; - public colconstraint(i?: number): ColconstraintContext[] | ColconstraintContext | null { + public colConstraint(): ColConstraintContext[]; + public colConstraint(i: number): ColConstraintContext | null; + public colConstraint(i?: number): ColConstraintContext[] | ColConstraintContext | null { if (i === undefined) { - return this.getRuleContexts(ColconstraintContext); + return this.getRuleContexts(ColConstraintContext); } - return this.getRuleContext(i, ColconstraintContext); + return this.getRuleContext(i, ColConstraintContext); } - public constraintelem(): ConstraintelemContext | null { - return this.getRuleContext(0, ConstraintelemContext); + public constraintElem(): ConstraintElemContext | null { + return this.getRuleContext(0, ConstraintElemContext); } public KW_CONSTRAINT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONSTRAINT, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_typedtableelement; + return PostgreSqlParser.RULE_typedTableElement; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTypedtableelement) { - listener.enterTypedtableelement(this); + if(listener.enterTypedTableElement) { + listener.enterTypedTableElement(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTypedtableelement) { - listener.exitTypedtableelement(this); + if(listener.exitTypedTableElement) { + listener.exitTypedTableElement(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTypedtableelement) { - return visitor.visitTypedtableelement(this); + if (visitor.visitTypedTableElement) { + return visitor.visitTypedTableElement(this); } else { return visitor.visitChildren(this); } @@ -62585,14 +62575,14 @@ export class Column_defContext extends antlr.ParserRuleContext { public KW_COMPRESSION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_COMPRESSION, 0); } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public opt_collate_clause(): Opt_collate_clauseContext | null { return this.getRuleContext(0, Opt_collate_clauseContext); @@ -62603,14 +62593,14 @@ export class Column_defContext extends antlr.ParserRuleContext { public KW_OPTIONS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPTIONS, 0); } - public colconstraint(): ColconstraintContext[]; - public colconstraint(i: number): ColconstraintContext | null; - public colconstraint(i?: number): ColconstraintContext[] | ColconstraintContext | null { + public colConstraint(): ColConstraintContext[]; + public colConstraint(i: number): ColConstraintContext | null; + public colConstraint(i?: number): ColConstraintContext[] | ColConstraintContext | null { if (i === undefined) { - return this.getRuleContexts(ColconstraintContext); + return this.getRuleContexts(ColConstraintContext); } - return this.getRuleContext(i, ColconstraintContext); + return this.getRuleContext(i, ColConstraintContext); } public KW_PLAIN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PLAIN, 0); @@ -62650,18 +62640,18 @@ export class Column_defContext extends antlr.ParserRuleContext { } -export class ColconstraintContext extends antlr.ParserRuleContext { +export class ColConstraintContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colconstraintelem(): ColconstraintelemContext { - return this.getRuleContext(0, ColconstraintelemContext)!; + public colConstraintElem(): ColConstraintElemContext { + return this.getRuleContext(0, ColConstraintElemContext)!; } public KW_CONSTRAINT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONSTRAINT, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_DEFERRABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEFERRABLE, 0); @@ -62679,21 +62669,21 @@ export class ColconstraintContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NOT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_colconstraint; + return PostgreSqlParser.RULE_colConstraint; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterColconstraint) { - listener.enterColconstraint(this); + if(listener.enterColConstraint) { + listener.enterColConstraint(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitColconstraint) { - listener.exitColconstraint(this); + if(listener.exitColConstraint) { + listener.exitColConstraint(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitColconstraint) { - return visitor.visitColconstraint(this); + if (visitor.visitColConstraint) { + return visitor.visitColConstraint(this); } else { return visitor.visitChildren(this); } @@ -62701,7 +62691,7 @@ export class ColconstraintContext extends antlr.ParserRuleContext { } -export class ColconstraintelemContext extends antlr.ParserRuleContext { +export class ColConstraintElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -62717,8 +62707,8 @@ export class ColconstraintelemContext extends antlr.ParserRuleContext { public opt_definition(): Opt_definitionContext | null { return this.getRuleContext(0, Opt_definitionContext); } - public optconstablespace(): OptconstablespaceContext | null { - return this.getRuleContext(0, OptconstablespaceContext); + public optConstableSpace(): OptConstableSpaceContext | null { + return this.getRuleContext(0, OptConstableSpaceContext); } public KW_NULLS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NULLS, 0); @@ -62780,14 +62770,14 @@ export class ColconstraintelemContext extends antlr.ParserRuleContext { public KW_STORED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_STORED, 0); } - public seqoptelem(): SeqoptelemContext[]; - public seqoptelem(i: number): SeqoptelemContext | null; - public seqoptelem(i?: number): SeqoptelemContext[] | SeqoptelemContext | null { + public seqOptElem(): SeqOptElemContext[]; + public seqOptElem(i: number): SeqOptElemContext | null; + public seqOptElem(i?: number): SeqOptElemContext[] | SeqOptElemContext | null { if (i === undefined) { - return this.getRuleContexts(SeqoptelemContext); + return this.getRuleContexts(SeqOptElemContext); } - return this.getRuleContext(i, SeqoptelemContext); + return this.getRuleContext(i, SeqOptElemContext); } public KW_REFERENCES(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_REFERENCES, 0); @@ -62808,21 +62798,21 @@ export class ColconstraintelemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_collate_clauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_colconstraintelem; + return PostgreSqlParser.RULE_colConstraintElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterColconstraintelem) { - listener.enterColconstraintelem(this); + if(listener.enterColConstraintElem) { + listener.enterColConstraintElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitColconstraintelem) { - listener.exitColconstraintelem(this); + if(listener.exitColConstraintElem) { + listener.exitColConstraintElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitColconstraintelem) { - return visitor.visitColconstraintelem(this); + if (visitor.visitColConstraintElem) { + return visitor.visitColConstraintElem(this); } else { return visitor.visitChildren(this); } @@ -62866,7 +62856,7 @@ export class Generated_whenContext extends antlr.ParserRuleContext { } -export class TablelikeoptionContext extends antlr.ParserRuleContext { +export class TableLikeOptionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -62898,21 +62888,21 @@ export class TablelikeoptionContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ALL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_tablelikeoption; + return PostgreSqlParser.RULE_tableLikeOption; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTablelikeoption) { - listener.enterTablelikeoption(this); + if(listener.enterTableLikeOption) { + listener.enterTableLikeOption(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTablelikeoption) { - listener.exitTablelikeoption(this); + if(listener.exitTableLikeOption) { + listener.exitTableLikeOption(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTablelikeoption) { - return visitor.visitTablelikeoption(this); + if (visitor.visitTableLikeOption) { + return visitor.visitTableLikeOption(this); } else { return visitor.visitChildren(this); } @@ -62920,7 +62910,7 @@ export class TablelikeoptionContext extends antlr.ParserRuleContext { } -export class ConstraintelemContext extends antlr.ParserRuleContext { +export class ConstraintElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -62948,14 +62938,14 @@ export class ConstraintelemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_PAREN, i); } } - public constraintattributeElem(): ConstraintattributeElemContext[]; - public constraintattributeElem(i: number): ConstraintattributeElemContext | null; - public constraintattributeElem(i?: number): ConstraintattributeElemContext[] | ConstraintattributeElemContext | null { + public constraintAttributeElem(): ConstraintAttributeElemContext[]; + public constraintAttributeElem(i: number): ConstraintAttributeElemContext | null; + public constraintAttributeElem(i?: number): ConstraintAttributeElemContext[] | ConstraintAttributeElemContext | null { if (i === undefined) { - return this.getRuleContexts(ConstraintattributeElemContext); + return this.getRuleContexts(ConstraintAttributeElemContext); } - return this.getRuleContext(i, ConstraintattributeElemContext); + return this.getRuleContext(i, ConstraintAttributeElemContext); } public KW_UNIQUE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_UNIQUE, 0); @@ -62969,8 +62959,8 @@ export class ConstraintelemContext extends antlr.ParserRuleContext { return this.getRuleContext(i, Opt_column_listContext); } - public existingindex(): ExistingindexContext | null { - return this.getRuleContext(0, ExistingindexContext); + public existingIndex(): ExistingIndexContext | null { + return this.getRuleContext(0, ExistingIndexContext); } public KW_PRIMARY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PRIMARY, 0); @@ -62984,20 +62974,20 @@ export class ConstraintelemContext extends antlr.ParserRuleContext { public opt_definition(): Opt_definitionContext | null { return this.getRuleContext(0, Opt_definitionContext); } - public optconstablespace(): OptconstablespaceContext | null { - return this.getRuleContext(0, OptconstablespaceContext); + public optConstableSpace(): OptConstableSpaceContext | null { + return this.getRuleContext(0, OptConstableSpaceContext); } public KW_EXCLUDE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_EXCLUDE, 0); } - public exclusionconstraintelem(): ExclusionconstraintelemContext[]; - public exclusionconstraintelem(i: number): ExclusionconstraintelemContext | null; - public exclusionconstraintelem(i?: number): ExclusionconstraintelemContext[] | ExclusionconstraintelemContext | null { + public exclusionConstraintElem(): ExclusionConstraintElemContext[]; + public exclusionConstraintElem(i: number): ExclusionConstraintElemContext | null; + public exclusionConstraintElem(i?: number): ExclusionConstraintElemContext[] | ExclusionConstraintElemContext | null { if (i === undefined) { - return this.getRuleContexts(ExclusionconstraintelemContext); + return this.getRuleContexts(ExclusionConstraintElemContext); } - return this.getRuleContext(i, ExclusionconstraintelemContext); + return this.getRuleContext(i, ExclusionConstraintElemContext); } public table_access_method_clause(): Table_access_method_clauseContext | null { return this.getRuleContext(0, Table_access_method_clauseContext); @@ -63030,21 +63020,21 @@ export class ConstraintelemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Key_actionsContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_constraintelem; + return PostgreSqlParser.RULE_constraintElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterConstraintelem) { - listener.enterConstraintelem(this); + if(listener.enterConstraintElem) { + listener.enterConstraintElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitConstraintelem) { - listener.exitConstraintelem(this); + if(listener.exitConstraintElem) { + listener.exitConstraintElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitConstraintelem) { - return visitor.visitConstraintelem(this); + if (visitor.visitConstraintElem) { + return visitor.visitConstraintElem(this); } else { return visitor.visitChildren(this); } @@ -63256,7 +63246,7 @@ export class Key_matchContext extends antlr.ParserRuleContext { } -export class ExclusionconstraintelemContext extends antlr.ParserRuleContext { +export class ExclusionConstraintElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63279,21 +63269,21 @@ export class ExclusionconstraintelemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_exclusionconstraintelem; + return PostgreSqlParser.RULE_exclusionConstraintElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterExclusionconstraintelem) { - listener.enterExclusionconstraintelem(this); + if(listener.enterExclusionConstraintElem) { + listener.enterExclusionConstraintElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitExclusionconstraintelem) { - listener.exitExclusionconstraintelem(this); + if(listener.exitExclusionConstraintElem) { + listener.exitExclusionConstraintElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitExclusionconstraintelem) { - return visitor.visitExclusionconstraintelem(this); + if (visitor.visitExclusionConstraintElem) { + return visitor.visitExclusionConstraintElem(this); } else { return visitor.visitChildren(this); } @@ -63457,7 +63447,7 @@ export class Key_actionContext extends antlr.ParserRuleContext { } -export class OptinheritContext extends antlr.ParserRuleContext { +export class OptInheritContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63474,21 +63464,21 @@ export class OptinheritContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_optinherit; + return PostgreSqlParser.RULE_optInherit; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOptinherit) { - listener.enterOptinherit(this); + if(listener.enterOptInherit) { + listener.enterOptInherit(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOptinherit) { - listener.exitOptinherit(this); + if(listener.exitOptInherit) { + listener.exitOptInherit(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOptinherit) { - return visitor.visitOptinherit(this); + if (visitor.visitOptInherit) { + return visitor.visitOptInherit(this); } else { return visitor.visitChildren(this); } @@ -63496,7 +63486,7 @@ export class OptinheritContext extends antlr.ParserRuleContext { } -export class PartitionspecContext extends antlr.ParserRuleContext { +export class PartitionSpecContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63506,8 +63496,8 @@ export class PartitionspecContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_BY, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; @@ -63534,21 +63524,21 @@ export class PartitionspecContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_partitionspec; + return PostgreSqlParser.RULE_partitionSpec; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPartitionspec) { - listener.enterPartitionspec(this); + if(listener.enterPartitionSpec) { + listener.enterPartitionSpec(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPartitionspec) { - listener.exitPartitionspec(this); + if(listener.exitPartitionSpec) { + listener.exitPartitionSpec(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPartitionspec) { - return visitor.visitPartitionspec(this); + if (visitor.visitPartitionSpec) { + return visitor.visitPartitionSpec(this); } else { return visitor.visitChildren(this); } @@ -63611,8 +63601,8 @@ export class Table_access_method_clauseContext extends antlr.ParserRuleContext { public KW_USING(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_USING, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_table_access_method_clause; @@ -63637,15 +63627,15 @@ export class Table_access_method_clauseContext extends antlr.ParserRuleContext { } -export class OptwithContext extends antlr.ParserRuleContext { +export class OptWithContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public reloptions(): ReloptionsContext | null { - return this.getRuleContext(0, ReloptionsContext); + public relOptions(): RelOptionsContext | null { + return this.getRuleContext(0, RelOptionsContext); } public KW_OIDS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OIDS, 0); @@ -63654,21 +63644,21 @@ export class OptwithContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_WITHOUT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_optwith; + return PostgreSqlParser.RULE_optWith; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOptwith) { - listener.enterOptwith(this); + if(listener.enterOptWith) { + listener.enterOptWith(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOptwith) { - listener.exitOptwith(this); + if(listener.exitOptWith) { + listener.exitOptWith(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOptwith) { - return visitor.visitOptwith(this); + if (visitor.visitOptWith) { + return visitor.visitOptWith(this); } else { return visitor.visitChildren(this); } @@ -63676,7 +63666,7 @@ export class OptwithContext extends antlr.ParserRuleContext { } -export class OncommitoptionContext extends antlr.ParserRuleContext { +export class OnCommitOptionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63699,21 +63689,21 @@ export class OncommitoptionContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_PRESERVE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_oncommitoption; + return PostgreSqlParser.RULE_onCommitOption; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOncommitoption) { - listener.enterOncommitoption(this); + if(listener.enterOnCommitOption) { + listener.enterOnCommitOption(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOncommitoption) { - listener.exitOncommitoption(this); + if(listener.exitOnCommitOption) { + listener.exitOnCommitOption(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOncommitoption) { - return visitor.visitOncommitoption(this); + if (visitor.visitOnCommitOption) { + return visitor.visitOnCommitOption(this); } else { return visitor.visitChildren(this); } @@ -63721,7 +63711,7 @@ export class OncommitoptionContext extends antlr.ParserRuleContext { } -export class OpttablespaceContext extends antlr.ParserRuleContext { +export class OptTableSpaceContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63732,21 +63722,21 @@ export class OpttablespaceContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Tablespace_nameContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opttablespace; + return PostgreSqlParser.RULE_optTableSpace; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpttablespace) { - listener.enterOpttablespace(this); + if(listener.enterOptTableSpace) { + listener.enterOptTableSpace(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpttablespace) { - listener.exitOpttablespace(this); + if(listener.exitOptTableSpace) { + listener.exitOptTableSpace(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpttablespace) { - return visitor.visitOpttablespace(this); + if (visitor.visitOptTableSpace) { + return visitor.visitOptTableSpace(this); } else { return visitor.visitChildren(this); } @@ -63754,7 +63744,7 @@ export class OpttablespaceContext extends antlr.ParserRuleContext { } -export class OptconstablespaceContext extends antlr.ParserRuleContext { +export class OptConstableSpaceContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63764,25 +63754,25 @@ export class OptconstablespaceContext extends antlr.ParserRuleContext { public KW_INDEX(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_INDEX, 0)!; } - public opttablespace(): OpttablespaceContext { - return this.getRuleContext(0, OpttablespaceContext)!; + public optTableSpace(): OptTableSpaceContext { + return this.getRuleContext(0, OptTableSpaceContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_optconstablespace; + return PostgreSqlParser.RULE_optConstableSpace; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOptconstablespace) { - listener.enterOptconstablespace(this); + if(listener.enterOptConstableSpace) { + listener.enterOptConstableSpace(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOptconstablespace) { - listener.exitOptconstablespace(this); + if(listener.exitOptConstableSpace) { + listener.exitOptConstableSpace(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOptconstablespace) { - return visitor.visitOptconstablespace(this); + if (visitor.visitOptConstableSpace) { + return visitor.visitOptConstableSpace(this); } else { return visitor.visitChildren(this); } @@ -63790,7 +63780,7 @@ export class OptconstablespaceContext extends antlr.ParserRuleContext { } -export class ExistingindexContext extends antlr.ParserRuleContext { +export class ExistingIndexContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63800,25 +63790,25 @@ export class ExistingindexContext extends antlr.ParserRuleContext { public KW_INDEX(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_INDEX, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_existingindex; + return PostgreSqlParser.RULE_existingIndex; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterExistingindex) { - listener.enterExistingindex(this); + if(listener.enterExistingIndex) { + listener.enterExistingIndex(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitExistingindex) { - listener.exitExistingindex(this); + if(listener.exitExistingIndex) { + listener.exitExistingIndex(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitExistingindex) { - return visitor.visitExistingindex(this); + if (visitor.visitExistingIndex) { + return visitor.visitExistingIndex(this); } else { return visitor.visitChildren(this); } @@ -63826,7 +63816,7 @@ export class ExistingindexContext extends antlr.ParserRuleContext { } -export class CreatestatsstmtContext extends antlr.ParserRuleContext { +export class CreateStatsStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63873,21 +63863,21 @@ export class CreatestatsstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_if_not_existsContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createstatsstmt; + return PostgreSqlParser.RULE_createStatsStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatestatsstmt) { - listener.enterCreatestatsstmt(this); + if(listener.enterCreateStatsStmt) { + listener.enterCreateStatsStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatestatsstmt) { - listener.exitCreatestatsstmt(this); + if(listener.exitCreateStatsStmt) { + listener.exitCreateStatsStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatestatsstmt) { - return visitor.visitCreatestatsstmt(this); + if (visitor.visitCreateStatsStmt) { + return visitor.visitCreateStatsStmt(this); } else { return visitor.visitChildren(this); } @@ -63895,7 +63885,7 @@ export class CreatestatsstmtContext extends antlr.ParserRuleContext { } -export class AlterstatsstmtContext extends antlr.ParserRuleContext { +export class AlterStatsStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63917,28 +63907,28 @@ export class AlterstatsstmtContext extends antlr.ParserRuleContext { public KW_SET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SET, 0)!; } - public signediconst(): SignediconstContext { - return this.getRuleContext(0, SignediconstContext)!; + public signedConst(): SignedConstContext { + return this.getRuleContext(0, SignedConstContext)!; } public opt_if_exists(): Opt_if_existsContext | null { return this.getRuleContext(0, Opt_if_existsContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterstatsstmt; + return PostgreSqlParser.RULE_alterStatsStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterstatsstmt) { - listener.enterAlterstatsstmt(this); + if(listener.enterAlterStatsStmt) { + listener.enterAlterStatsStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterstatsstmt) { - listener.exitAlterstatsstmt(this); + if(listener.exitAlterStatsStmt) { + listener.exitAlterStatsStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterstatsstmt) { - return visitor.visitAlterstatsstmt(this); + if (visitor.visitAlterStatsStmt) { + return visitor.visitAlterStatsStmt(this); } else { return visitor.visitChildren(this); } @@ -63946,19 +63936,19 @@ export class AlterstatsstmtContext extends antlr.ParserRuleContext { } -export class CreateasstmtContext extends antlr.ParserRuleContext { +export class CreateAsStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createasstmt; + return PostgreSqlParser.RULE_createAsStmt; } - public override copyFrom(ctx: CreateasstmtContext): void { + public override copyFrom(ctx: CreateAsStmtContext): void { super.copyFrom(ctx); } } -export class QueryCreateTableContext extends CreateasstmtContext { - public constructor(ctx: CreateasstmtContext) { +export class QueryCreateTableContext extends CreateAsStmtContext { + public constructor(ctx: CreateAsStmtContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } @@ -63974,11 +63964,11 @@ export class QueryCreateTableContext extends CreateasstmtContext { public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; } - public selectstmt(): SelectstmtContext { - return this.getRuleContext(0, SelectstmtContext)!; + public selectStmt(): SelectStmtContext { + return this.getRuleContext(0, SelectStmtContext)!; } - public opttemp(): OpttempContext | null { - return this.getRuleContext(0, OpttempContext); + public optTemp(): OptTempContext | null { + return this.getRuleContext(0, OptTempContext); } public opt_if_not_exists(): Opt_if_not_existsContext | null { return this.getRuleContext(0, Opt_if_not_existsContext); @@ -64019,14 +64009,14 @@ export class Create_as_targetContext extends antlr.ParserRuleContext { public table_access_method_clause(): Table_access_method_clauseContext | null { return this.getRuleContext(0, Table_access_method_clauseContext); } - public optwith(): OptwithContext | null { - return this.getRuleContext(0, OptwithContext); + public optWith(): OptWithContext | null { + return this.getRuleContext(0, OptWithContext); } - public oncommitoption(): OncommitoptionContext | null { - return this.getRuleContext(0, OncommitoptionContext); + public onCommitOption(): OnCommitOptionContext | null { + return this.getRuleContext(0, OnCommitOptionContext); } - public opttablespace(): OpttablespaceContext | null { - return this.getRuleContext(0, OpttablespaceContext); + public optTableSpace(): OptTableSpaceContext | null { + return this.getRuleContext(0, OptTableSpaceContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_create_as_target; @@ -64087,19 +64077,19 @@ export class Opt_with_dataContext extends antlr.ParserRuleContext { } -export class CreatematviewstmtContext extends antlr.ParserRuleContext { +export class CreateMaterializedViewStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_creatematviewstmt; + return PostgreSqlParser.RULE_createMaterializedViewStmt; } - public override copyFrom(ctx: CreatematviewstmtContext): void { + public override copyFrom(ctx: CreateMaterializedViewStmtContext): void { super.copyFrom(ctx); } } -export class CreateMaterializedViewContext extends CreatematviewstmtContext { - public constructor(ctx: CreatematviewstmtContext) { +export class CreateMaterializedViewContext extends CreateMaterializedViewStmtContext { + public constructor(ctx: CreateMaterializedViewStmtContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } @@ -64118,8 +64108,8 @@ export class CreateMaterializedViewContext extends CreatematviewstmtContext { public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; } - public selectstmt(): SelectstmtContext { - return this.getRuleContext(0, SelectstmtContext)!; + public selectStmt(): SelectStmtContext { + return this.getRuleContext(0, SelectStmtContext)!; } public KW_UNLOGGED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_UNLOGGED, 0); @@ -64133,11 +64123,11 @@ export class CreateMaterializedViewContext extends CreatematviewstmtContext { public table_access_method_clause(): Table_access_method_clauseContext | null { return this.getRuleContext(0, Table_access_method_clauseContext); } - public opt_reloptions(): Opt_reloptionsContext | null { - return this.getRuleContext(0, Opt_reloptionsContext); + public optRelOptions(): OptRelOptionsContext | null { + return this.getRuleContext(0, OptRelOptionsContext); } - public opttablespace(): OpttablespaceContext | null { - return this.getRuleContext(0, OpttablespaceContext); + public optTableSpace(): OptTableSpaceContext | null { + return this.getRuleContext(0, OptTableSpaceContext); } public opt_with_data(): Opt_with_dataContext | null { return this.getRuleContext(0, Opt_with_dataContext); @@ -64162,7 +64152,7 @@ export class CreateMaterializedViewContext extends CreatematviewstmtContext { } -export class RefreshmatviewstmtContext extends antlr.ParserRuleContext { +export class RefreshMaterializedViewStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64185,21 +64175,21 @@ export class RefreshmatviewstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_with_dataContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_refreshmatviewstmt; + return PostgreSqlParser.RULE_refreshMaterializedViewStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRefreshmatviewstmt) { - listener.enterRefreshmatviewstmt(this); + if(listener.enterRefreshMaterializedViewStmt) { + listener.enterRefreshMaterializedViewStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRefreshmatviewstmt) { - listener.exitRefreshmatviewstmt(this); + if(listener.exitRefreshMaterializedViewStmt) { + listener.exitRefreshMaterializedViewStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRefreshmatviewstmt) { - return visitor.visitRefreshmatviewstmt(this); + if (visitor.visitRefreshMaterializedViewStmt) { + return visitor.visitRefreshMaterializedViewStmt(this); } else { return visitor.visitChildren(this); } @@ -64207,7 +64197,7 @@ export class RefreshmatviewstmtContext extends antlr.ParserRuleContext { } -export class CreateseqstmtContext extends antlr.ParserRuleContext { +export class CreateSeqStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64220,37 +64210,37 @@ export class CreateseqstmtContext extends antlr.ParserRuleContext { public qualified_name(): Qualified_nameContext { return this.getRuleContext(0, Qualified_nameContext)!; } - public opttemp(): OpttempContext | null { - return this.getRuleContext(0, OpttempContext); + public optTemp(): OptTempContext | null { + return this.getRuleContext(0, OptTempContext); } public opt_if_not_exists(): Opt_if_not_existsContext | null { return this.getRuleContext(0, Opt_if_not_existsContext); } - public seqoptelem(): SeqoptelemContext[]; - public seqoptelem(i: number): SeqoptelemContext | null; - public seqoptelem(i?: number): SeqoptelemContext[] | SeqoptelemContext | null { + public seqOptElem(): SeqOptElemContext[]; + public seqOptElem(i: number): SeqOptElemContext | null; + public seqOptElem(i?: number): SeqOptElemContext[] | SeqOptElemContext | null { if (i === undefined) { - return this.getRuleContexts(SeqoptelemContext); + return this.getRuleContexts(SeqOptElemContext); } - return this.getRuleContext(i, SeqoptelemContext); + return this.getRuleContext(i, SeqOptElemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createseqstmt; + return PostgreSqlParser.RULE_createSeqStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateseqstmt) { - listener.enterCreateseqstmt(this); + if(listener.enterCreateSeqStmt) { + listener.enterCreateSeqStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateseqstmt) { - listener.exitCreateseqstmt(this); + if(listener.exitCreateSeqStmt) { + listener.exitCreateSeqStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateseqstmt) { - return visitor.visitCreateseqstmt(this); + if (visitor.visitCreateSeqStmt) { + return visitor.visitCreateSeqStmt(this); } else { return visitor.visitChildren(this); } @@ -64258,7 +64248,7 @@ export class CreateseqstmtContext extends antlr.ParserRuleContext { } -export class AlterseqstmtContext extends antlr.ParserRuleContext { +export class AlterSeqStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64274,31 +64264,31 @@ export class AlterseqstmtContext extends antlr.ParserRuleContext { public opt_if_exists(): Opt_if_existsContext | null { return this.getRuleContext(0, Opt_if_existsContext); } - public seqoptelem(): SeqoptelemContext[]; - public seqoptelem(i: number): SeqoptelemContext | null; - public seqoptelem(i?: number): SeqoptelemContext[] | SeqoptelemContext | null { + public seqOptElem(): SeqOptElemContext[]; + public seqOptElem(i: number): SeqOptElemContext | null; + public seqOptElem(i?: number): SeqOptElemContext[] | SeqOptElemContext | null { if (i === undefined) { - return this.getRuleContexts(SeqoptelemContext); + return this.getRuleContexts(SeqOptElemContext); } - return this.getRuleContext(i, SeqoptelemContext); + return this.getRuleContext(i, SeqOptElemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterseqstmt; + return PostgreSqlParser.RULE_alterSeqStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterseqstmt) { - listener.enterAlterseqstmt(this); + if(listener.enterAlterSeqStmt) { + listener.enterAlterSeqStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterseqstmt) { - listener.exitAlterseqstmt(this); + if(listener.exitAlterSeqStmt) { + listener.exitAlterSeqStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterseqstmt) { - return visitor.visitAlterseqstmt(this); + if (visitor.visitAlterSeqStmt) { + return visitor.visitAlterSeqStmt(this); } else { return visitor.visitChildren(this); } @@ -64306,21 +64296,21 @@ export class AlterseqstmtContext extends antlr.ParserRuleContext { } -export class SeqoptelemContext extends antlr.ParserRuleContext { +export class SeqOptElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); } - public simpletypename(): SimpletypenameContext | null { - return this.getRuleContext(0, SimpletypenameContext); + public simpleTypeName(): SimpleTypeNameContext | null { + return this.getRuleContext(0, SimpleTypeNameContext); } public KW_CACHE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CACHE, 0); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } public KW_INCREMENT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INCREMENT, 0); @@ -64365,21 +64355,21 @@ export class SeqoptelemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_RESTART, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_seqoptelem; + return PostgreSqlParser.RULE_seqOptElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSeqoptelem) { - listener.enterSeqoptelem(this); + if(listener.enterSeqOptElem) { + listener.enterSeqOptElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSeqoptelem) { - listener.exitSeqoptelem(this); + if(listener.exitSeqOptElem) { + listener.exitSeqOptElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSeqoptelem) { - return visitor.visitSeqoptelem(this); + if (visitor.visitSeqOptElem) { + return visitor.visitSeqOptElem(this); } else { return visitor.visitChildren(this); } @@ -64387,7 +64377,7 @@ export class SeqoptelemContext extends antlr.ParserRuleContext { } -export class NumericonlyContext extends antlr.ParserRuleContext { +export class NumericOnlyContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64400,25 +64390,25 @@ export class NumericonlyContext extends antlr.ParserRuleContext { public MINUS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.MINUS, 0); } - public signediconst(): SignediconstContext | null { - return this.getRuleContext(0, SignediconstContext); + public signedConst(): SignedConstContext | null { + return this.getRuleContext(0, SignedConstContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_numericonly; + return PostgreSqlParser.RULE_numericOnly; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterNumericonly) { - listener.enterNumericonly(this); + if(listener.enterNumericOnly) { + listener.enterNumericOnly(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitNumericonly) { - listener.exitNumericonly(this); + if(listener.exitNumericOnly) { + listener.exitNumericOnly(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitNumericonly) { - return visitor.visitNumericonly(this); + if (visitor.visitNumericOnly) { + return visitor.visitNumericOnly(this); } else { return visitor.visitChildren(this); } @@ -64426,7 +64416,7 @@ export class NumericonlyContext extends antlr.ParserRuleContext { } -export class CreateplangstmtContext extends antlr.ParserRuleContext { +export class CreateProceduralLangStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64436,8 +64426,8 @@ export class CreateplangstmtContext extends antlr.ParserRuleContext { public KW_LANGUAGE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_LANGUAGE, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public opt_or_replace(): Opt_or_replaceContext | null { return this.getRuleContext(0, Opt_or_replaceContext); @@ -64470,21 +64460,21 @@ export class CreateplangstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NO, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createplangstmt; + return PostgreSqlParser.RULE_createProceduralLangStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateplangstmt) { - listener.enterCreateplangstmt(this); + if(listener.enterCreateProceduralLangStmt) { + listener.enterCreateProceduralLangStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateplangstmt) { - listener.exitCreateplangstmt(this); + if(listener.exitCreateProceduralLangStmt) { + listener.exitCreateProceduralLangStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateplangstmt) { - return visitor.visitCreateplangstmt(this); + if (visitor.visitCreateProceduralLangStmt) { + return visitor.visitCreateProceduralLangStmt(this); } else { return visitor.visitChildren(this); } @@ -64492,47 +64482,47 @@ export class CreateplangstmtContext extends antlr.ParserRuleContext { } -export class CreatetablespacestmtContext extends antlr.ParserRuleContext { +export class CreateTableSpaceStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_CREATE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CREATE, 0)!; } - public opttablespace(): OpttablespaceContext { - return this.getRuleContext(0, OpttablespaceContext)!; + public optTableSpace(): OptTableSpaceContext { + return this.getRuleContext(0, OptTableSpaceContext)!; } public KW_LOCATION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_LOCATION, 0)!; } - public sconst(): SconstContext { - return this.getRuleContext(0, SconstContext)!; + public stringConst(): StringConstContext { + return this.getRuleContext(0, StringConstContext)!; } public KW_OWNER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OWNER, 0); } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } - public opt_reloptions(): Opt_reloptionsContext | null { - return this.getRuleContext(0, Opt_reloptionsContext); + public optRelOptions(): OptRelOptionsContext | null { + return this.getRuleContext(0, OptRelOptionsContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createtablespacestmt; + return PostgreSqlParser.RULE_createTableSpaceStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatetablespacestmt) { - listener.enterCreatetablespacestmt(this); + if(listener.enterCreateTableSpaceStmt) { + listener.enterCreateTableSpaceStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatetablespacestmt) { - listener.exitCreatetablespacestmt(this); + if(listener.exitCreateTableSpaceStmt) { + listener.exitCreateTableSpaceStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatetablespacestmt) { - return visitor.visitCreatetablespacestmt(this); + if (visitor.visitCreateTableSpaceStmt) { + return visitor.visitCreateTableSpaceStmt(this); } else { return visitor.visitChildren(this); } @@ -64540,7 +64530,7 @@ export class CreatetablespacestmtContext extends antlr.ParserRuleContext { } -export class CreateextensionstmtContext extends antlr.ParserRuleContext { +export class CreateExtensionStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64550,8 +64540,8 @@ export class CreateextensionstmtContext extends antlr.ParserRuleContext { public KW_EXTENSION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_EXTENSION, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public opt_if_not_exists(): Opt_if_not_existsContext | null { return this.getRuleContext(0, Opt_if_not_existsContext); @@ -64577,14 +64567,14 @@ export class CreateextensionstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(i, Schema_nameContext); } - public nonreservedword_or_sconst(): Nonreservedword_or_sconstContext[]; - public nonreservedword_or_sconst(i: number): Nonreservedword_or_sconstContext | null; - public nonreservedword_or_sconst(i?: number): Nonreservedword_or_sconstContext[] | Nonreservedword_or_sconstContext | null { + public nonReservedWordOrStringConst(): NonReservedWordOrStringConstContext[]; + public nonReservedWordOrStringConst(i: number): NonReservedWordOrStringConstContext | null; + public nonReservedWordOrStringConst(i?: number): NonReservedWordOrStringConstContext[] | NonReservedWordOrStringConstContext | null { if (i === undefined) { - return this.getRuleContexts(Nonreservedword_or_sconstContext); + return this.getRuleContexts(NonReservedWordOrStringConstContext); } - return this.getRuleContext(i, Nonreservedword_or_sconstContext); + return this.getRuleContext(i, NonReservedWordOrStringConstContext); } public KW_CASCADE(): antlr.TerminalNode[]; public KW_CASCADE(i: number): antlr.TerminalNode | null; @@ -64614,21 +64604,21 @@ export class CreateextensionstmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createextensionstmt; + return PostgreSqlParser.RULE_createExtensionStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateextensionstmt) { - listener.enterCreateextensionstmt(this); + if(listener.enterCreateExtensionStmt) { + listener.enterCreateExtensionStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateextensionstmt) { - listener.exitCreateextensionstmt(this); + if(listener.exitCreateExtensionStmt) { + listener.exitCreateExtensionStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateextensionstmt) { - return visitor.visitCreateextensionstmt(this); + if (visitor.visitCreateExtensionStmt) { + return visitor.visitCreateExtensionStmt(this); } else { return visitor.visitChildren(this); } @@ -64636,7 +64626,7 @@ export class CreateextensionstmtContext extends antlr.ParserRuleContext { } -export class AlterextensionstmtContext extends antlr.ParserRuleContext { +export class AlterExtensionStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64646,8 +64636,8 @@ export class AlterextensionstmtContext extends antlr.ParserRuleContext { public KW_EXTENSION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_EXTENSION, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_UPDATE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_UPDATE, 0)!; @@ -64661,31 +64651,31 @@ export class AlterextensionstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_TO, i); } } - public nonreservedword_or_sconst(): Nonreservedword_or_sconstContext[]; - public nonreservedword_or_sconst(i: number): Nonreservedword_or_sconstContext | null; - public nonreservedword_or_sconst(i?: number): Nonreservedword_or_sconstContext[] | Nonreservedword_or_sconstContext | null { + public nonReservedWordOrStringConst(): NonReservedWordOrStringConstContext[]; + public nonReservedWordOrStringConst(i: number): NonReservedWordOrStringConstContext | null; + public nonReservedWordOrStringConst(i?: number): NonReservedWordOrStringConstContext[] | NonReservedWordOrStringConstContext | null { if (i === undefined) { - return this.getRuleContexts(Nonreservedword_or_sconstContext); + return this.getRuleContexts(NonReservedWordOrStringConstContext); } - return this.getRuleContext(i, Nonreservedword_or_sconstContext); + return this.getRuleContext(i, NonReservedWordOrStringConstContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterextensionstmt; + return PostgreSqlParser.RULE_alterExtensionStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterextensionstmt) { - listener.enterAlterextensionstmt(this); + if(listener.enterAlterExtensionStmt) { + listener.enterAlterExtensionStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterextensionstmt) { - listener.exitAlterextensionstmt(this); + if(listener.exitAlterExtensionStmt) { + listener.exitAlterExtensionStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterextensionstmt) { - return visitor.visitAlterextensionstmt(this); + if (visitor.visitAlterExtensionStmt) { + return visitor.visitAlterExtensionStmt(this); } else { return visitor.visitChildren(this); } @@ -64693,7 +64683,7 @@ export class AlterextensionstmtContext extends antlr.ParserRuleContext { } -export class AlterextensioncontentsstmtContext extends antlr.ParserRuleContext { +export class AlterExtensionContentsStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64703,14 +64693,14 @@ export class AlterextensioncontentsstmtContext extends antlr.ParserRuleContext { public KW_EXTENSION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_EXTENSION, 0)!; } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public KW_ADD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADD, 0); @@ -64739,14 +64729,14 @@ export class AlterextensioncontentsstmtContext extends antlr.ParserRuleContext { public KW_ROUTINE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROUTINE, 0); } - public routine_with_argtypes(): Routine_with_argtypesContext | null { - return this.getRuleContext(0, Routine_with_argtypesContext); + public routineWithArgTypes(): RoutineWithArgTypesContext | null { + return this.getRuleContext(0, RoutineWithArgTypesContext); } public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_with_argtypes(): Procedure_with_argtypesContext | null { - return this.getRuleContext(0, Procedure_with_argtypesContext); + public procedureWithArgTypes(): ProcedureWithArgTypesContext | null { + return this.getRuleContext(0, ProcedureWithArgTypesContext); } public KW_OPERATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0); @@ -64757,14 +64747,14 @@ export class AlterextensioncontentsstmtContext extends antlr.ParserRuleContext { public table_access_method_clause(): Table_access_method_clauseContext | null { return this.getRuleContext(0, Table_access_method_clauseContext); } - public operator_with_argtypes(): Operator_with_argtypesContext | null { - return this.getRuleContext(0, Operator_with_argtypesContext); + public operatorWithArgTypes(): OperatorWithArgTypesContext | null { + return this.getRuleContext(0, OperatorWithArgTypesContext); } public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_with_argtypes(): Function_with_argtypesContext | null { - return this.getRuleContext(0, Function_with_argtypesContext); + public functionWithArgTypes(): FunctionWithArgTypesContext | null { + return this.getRuleContext(0, FunctionWithArgTypesContext); } public KW_CAST(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CAST, 0); @@ -64781,8 +64771,8 @@ export class AlterextensioncontentsstmtContext extends antlr.ParserRuleContext { public KW_AGGREGATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AGGREGATE, 0); } - public aggregate_with_argtypes(): Aggregate_with_argtypesContext | null { - return this.getRuleContext(0, Aggregate_with_argtypesContext); + public aggregateWithArgTypes(): AggregateWithArgTypesContext | null { + return this.getRuleContext(0, AggregateWithArgTypesContext); } public object_type_name(): Object_type_nameContext | null { return this.getRuleContext(0, Object_type_nameContext); @@ -64803,21 +64793,21 @@ export class AlterextensioncontentsstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_TYPE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterextensioncontentsstmt; + return PostgreSqlParser.RULE_alterExtensionContentsStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterextensioncontentsstmt) { - listener.enterAlterextensioncontentsstmt(this); + if(listener.enterAlterExtensionContentsStmt) { + listener.enterAlterExtensionContentsStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterextensioncontentsstmt) { - listener.exitAlterextensioncontentsstmt(this); + if(listener.exitAlterExtensionContentsStmt) { + listener.exitAlterExtensionContentsStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterextensioncontentsstmt) { - return visitor.visitAlterextensioncontentsstmt(this); + if (visitor.visitAlterExtensionContentsStmt) { + return visitor.visitAlterExtensionContentsStmt(this); } else { return visitor.visitChildren(this); } @@ -64825,7 +64815,7 @@ export class AlterextensioncontentsstmtContext extends antlr.ParserRuleContext { } -export class CreatefdwstmtContext extends antlr.ParserRuleContext { +export class CreateFdwStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64841,8 +64831,8 @@ export class CreatefdwstmtContext extends antlr.ParserRuleContext { public KW_WRAPPER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_WRAPPER, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public create_generic_options(): Create_generic_optionsContext | null { return this.getRuleContext(0, Create_generic_optionsContext); @@ -64857,21 +64847,21 @@ export class CreatefdwstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(i, Fdw_optionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createfdwstmt; + return PostgreSqlParser.RULE_createFdwStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatefdwstmt) { - listener.enterCreatefdwstmt(this); + if(listener.enterCreateFdwStmt) { + listener.enterCreateFdwStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatefdwstmt) { - listener.exitCreatefdwstmt(this); + if(listener.exitCreateFdwStmt) { + listener.exitCreateFdwStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatefdwstmt) { - return visitor.visitCreatefdwstmt(this); + if (visitor.visitCreateFdwStmt) { + return visitor.visitCreateFdwStmt(this); } else { return visitor.visitChildren(this); } @@ -64918,7 +64908,7 @@ export class Fdw_optionContext extends antlr.ParserRuleContext { } -export class AlterfdwstmtContext extends antlr.ParserRuleContext { +export class AlterFdwStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64934,8 +64924,8 @@ export class AlterfdwstmtContext extends antlr.ParserRuleContext { public KW_WRAPPER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_WRAPPER, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public alter_generic_options(): Alter_generic_optionsContext | null { return this.getRuleContext(0, Alter_generic_optionsContext); @@ -64950,21 +64940,21 @@ export class AlterfdwstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(i, Fdw_optionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterfdwstmt; + return PostgreSqlParser.RULE_alterFdwStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterfdwstmt) { - listener.enterAlterfdwstmt(this); + if(listener.enterAlterFdwStmt) { + listener.enterAlterFdwStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterfdwstmt) { - listener.exitAlterfdwstmt(this); + if(listener.exitAlterFdwStmt) { + listener.exitAlterFdwStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterfdwstmt) { - return visitor.visitAlterfdwstmt(this); + if (visitor.visitAlterFdwStmt) { + return visitor.visitAlterFdwStmt(this); } else { return visitor.visitChildren(this); } @@ -65123,11 +65113,11 @@ export class Generic_option_elemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public collabel(): CollabelContext { - return this.getRuleContext(0, CollabelContext)!; + public colLabel(): ColLabelContext { + return this.getRuleContext(0, ColLabelContext)!; } - public sconst(): SconstContext { - return this.getRuleContext(0, SconstContext)!; + public stringConst(): StringConstContext { + return this.getRuleContext(0, StringConstContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_generic_option_elem; @@ -65152,7 +65142,7 @@ export class Generic_option_elemContext extends antlr.ParserRuleContext { } -export class CreateforeignserverstmtContext extends antlr.ParserRuleContext { +export class CreateForeignServerStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65162,14 +65152,14 @@ export class CreateforeignserverstmtContext extends antlr.ParserRuleContext { public KW_SERVER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SERVER, 0)!; } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public KW_FOREIGN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FOREIGN, 0)!; @@ -65186,8 +65176,8 @@ export class CreateforeignserverstmtContext extends antlr.ParserRuleContext { public KW_TYPE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TYPE, 0); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public foreign_server_version(): Foreign_server_versionContext | null { return this.getRuleContext(0, Foreign_server_versionContext); @@ -65196,21 +65186,21 @@ export class CreateforeignserverstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Create_generic_optionsContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createforeignserverstmt; + return PostgreSqlParser.RULE_createForeignServerStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateforeignserverstmt) { - listener.enterCreateforeignserverstmt(this); + if(listener.enterCreateForeignServerStmt) { + listener.enterCreateForeignServerStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateforeignserverstmt) { - listener.exitCreateforeignserverstmt(this); + if(listener.exitCreateForeignServerStmt) { + listener.exitCreateForeignServerStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateforeignserverstmt) { - return visitor.visitCreateforeignserverstmt(this); + if (visitor.visitCreateForeignServerStmt) { + return visitor.visitCreateForeignServerStmt(this); } else { return visitor.visitChildren(this); } @@ -65225,8 +65215,8 @@ export class Foreign_server_versionContext extends antlr.ParserRuleContext { public KW_VERSION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_VERSION, 0)!; } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public KW_NULL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NULL, 0); @@ -65254,7 +65244,7 @@ export class Foreign_server_versionContext extends antlr.ParserRuleContext { } -export class AlterforeignserverstmtContext extends antlr.ParserRuleContext { +export class AlterForeignServerStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65264,8 +65254,8 @@ export class AlterforeignserverstmtContext extends antlr.ParserRuleContext { public KW_SERVER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SERVER, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public alter_generic_options(): Alter_generic_optionsContext | null { return this.getRuleContext(0, Alter_generic_optionsContext); @@ -65274,21 +65264,21 @@ export class AlterforeignserverstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Foreign_server_versionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterforeignserverstmt; + return PostgreSqlParser.RULE_alterForeignServerStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterforeignserverstmt) { - listener.enterAlterforeignserverstmt(this); + if(listener.enterAlterForeignServerStmt) { + listener.enterAlterForeignServerStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterforeignserverstmt) { - listener.exitAlterforeignserverstmt(this); + if(listener.exitAlterForeignServerStmt) { + listener.exitAlterForeignServerStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterforeignserverstmt) { - return visitor.visitAlterforeignserverstmt(this); + if (visitor.visitAlterForeignServerStmt) { + return visitor.visitAlterForeignServerStmt(this); } else { return visitor.visitChildren(this); } @@ -65296,19 +65286,19 @@ export class AlterforeignserverstmtContext extends antlr.ParserRuleContext { } -export class CreateforeigntablestmtContext extends antlr.ParserRuleContext { +export class CreateForeignTableStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createforeigntablestmt; + return PostgreSqlParser.RULE_createForeignTableStmt; } - public override copyFrom(ctx: CreateforeigntablestmtContext): void { + public override copyFrom(ctx: CreateForeignTableStmtContext): void { super.copyFrom(ctx); } } -export class CreateForeignTableContext extends CreateforeigntablestmtContext { - public constructor(ctx: CreateforeigntablestmtContext) { +export class CreateForeignTableContext extends CreateForeignTableStmtContext { + public constructor(ctx: CreateForeignTableStmtContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } @@ -65333,17 +65323,17 @@ export class CreateForeignTableContext extends CreateforeigntablestmtContext { public KW_SERVER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SERVER, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public opt_if_not_exists(): Opt_if_not_existsContext | null { return this.getRuleContext(0, Opt_if_not_existsContext); } - public tableelementlist(): TableelementlistContext | null { - return this.getRuleContext(0, TableelementlistContext); + public tableElementList(): TableElementListContext | null { + return this.getRuleContext(0, TableElementListContext); } - public optinherit(): OptinheritContext | null { - return this.getRuleContext(0, OptinheritContext); + public optInherit(): OptInheritContext | null { + return this.getRuleContext(0, OptInheritContext); } public create_generic_options(): Create_generic_optionsContext | null { return this.getRuleContext(0, Create_generic_optionsContext); @@ -65366,8 +65356,8 @@ export class CreateForeignTableContext extends CreateforeigntablestmtContext { } } } -export class CreatePartitionForeignTableContext extends CreateforeigntablestmtContext { - public constructor(ctx: CreateforeigntablestmtContext) { +export class CreatePartitionForeignTableContext extends CreateForeignTableStmtContext { + public constructor(ctx: CreateForeignTableStmtContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } @@ -65392,20 +65382,20 @@ export class CreatePartitionForeignTableContext extends CreateforeigntablestmtCo public table_name(): Table_nameContext { return this.getRuleContext(0, Table_nameContext)!; } - public partitionboundspec(): PartitionboundspecContext { - return this.getRuleContext(0, PartitionboundspecContext)!; + public partitionBoundSpec(): PartitionBoundSpecContext { + return this.getRuleContext(0, PartitionBoundSpecContext)!; } public KW_SERVER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SERVER, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public opt_if_not_exists(): Opt_if_not_existsContext | null { return this.getRuleContext(0, Opt_if_not_existsContext); } - public opttypedtableelementlist(): OpttypedtableelementlistContext | null { - return this.getRuleContext(0, OpttypedtableelementlistContext); + public optTypedTableElEmentList(): OptTypedTableElEmentListContext | null { + return this.getRuleContext(0, OptTypedTableElEmentListContext); } public create_generic_options(): Create_generic_optionsContext | null { return this.getRuleContext(0, Create_generic_optionsContext); @@ -65430,7 +65420,7 @@ export class CreatePartitionForeignTableContext extends CreateforeigntablestmtCo } -export class ImportforeignschemastmtContext extends antlr.ParserRuleContext { +export class ImportForeignSchemaStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65452,14 +65442,14 @@ export class ImportforeignschemastmtContext extends antlr.ParserRuleContext { public KW_SERVER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SERVER, 0)!; } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public KW_INTO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_INTO, 0)!; @@ -65486,21 +65476,21 @@ export class ImportforeignschemastmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_EXCEPT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_importforeignschemastmt; + return PostgreSqlParser.RULE_importForeignSchemaStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterImportforeignschemastmt) { - listener.enterImportforeignschemastmt(this); + if(listener.enterImportForeignSchemaStmt) { + listener.enterImportForeignSchemaStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitImportforeignschemastmt) { - listener.exitImportforeignschemastmt(this); + if(listener.exitImportForeignSchemaStmt) { + listener.exitImportForeignSchemaStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitImportforeignschemastmt) { - return visitor.visitImportforeignschemastmt(this); + if (visitor.visitImportForeignSchemaStmt) { + return visitor.visitImportForeignSchemaStmt(this); } else { return visitor.visitChildren(this); } @@ -65508,7 +65498,7 @@ export class ImportforeignschemastmtContext extends antlr.ParserRuleContext { } -export class CreateusermappingstmtContext extends antlr.ParserRuleContext { +export class CreateUserMappingStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65533,11 +65523,11 @@ export class CreateusermappingstmtContext extends antlr.ParserRuleContext { public KW_SERVER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SERVER, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public opt_if_not_exists(): Opt_if_not_existsContext | null { return this.getRuleContext(0, Opt_if_not_existsContext); @@ -65546,21 +65536,21 @@ export class CreateusermappingstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Create_generic_optionsContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createusermappingstmt; + return PostgreSqlParser.RULE_createUserMappingStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateusermappingstmt) { - listener.enterCreateusermappingstmt(this); + if(listener.enterCreateUserMappingStmt) { + listener.enterCreateUserMappingStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateusermappingstmt) { - listener.exitCreateusermappingstmt(this); + if(listener.exitCreateUserMappingStmt) { + listener.exitCreateUserMappingStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateusermappingstmt) { - return visitor.visitCreateusermappingstmt(this); + if (visitor.visitCreateUserMappingStmt) { + return visitor.visitCreateUserMappingStmt(this); } else { return visitor.visitChildren(this); } @@ -65568,7 +65558,7 @@ export class CreateusermappingstmtContext extends antlr.ParserRuleContext { } -export class AlterusermappingstmtContext extends antlr.ParserRuleContext { +export class AlterUserMappingStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65593,31 +65583,31 @@ export class AlterusermappingstmtContext extends antlr.ParserRuleContext { public KW_SERVER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SERVER, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public alter_generic_options(): Alter_generic_optionsContext { return this.getRuleContext(0, Alter_generic_optionsContext)!; } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterusermappingstmt; + return PostgreSqlParser.RULE_alterUserMappingStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterusermappingstmt) { - listener.enterAlterusermappingstmt(this); + if(listener.enterAlterUserMappingStmt) { + listener.enterAlterUserMappingStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterusermappingstmt) { - listener.exitAlterusermappingstmt(this); + if(listener.exitAlterUserMappingStmt) { + listener.exitAlterUserMappingStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterusermappingstmt) { - return visitor.visitAlterusermappingstmt(this); + if (visitor.visitAlterUserMappingStmt) { + return visitor.visitAlterUserMappingStmt(this); } else { return visitor.visitChildren(this); } @@ -65625,7 +65615,7 @@ export class AlterusermappingstmtContext extends antlr.ParserRuleContext { } -export class CreatepolicystmtContext extends antlr.ParserRuleContext { +export class CreatePolicyStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65635,8 +65625,8 @@ export class CreatepolicystmtContext extends antlr.ParserRuleContext { public KW_POLICY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_POLICY, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; @@ -65656,11 +65646,11 @@ export class CreatepolicystmtContext extends antlr.ParserRuleContext { public role_list(): Role_listContext | null { return this.getRuleContext(0, Role_listContext); } - public rowsecurityoptionalexpr(): RowsecurityoptionalexprContext | null { - return this.getRuleContext(0, RowsecurityoptionalexprContext); + public rowSecurityOptionalExpr(): RowSecurityOptionalExprContext | null { + return this.getRuleContext(0, RowSecurityOptionalExprContext); } - public rowsecurityoptionalwithcheck(): RowsecurityoptionalwithcheckContext | null { - return this.getRuleContext(0, RowsecurityoptionalwithcheckContext); + public rowSecurityOptionalWithCheck(): RowSecurityOptionalWithCheckContext | null { + return this.getRuleContext(0, RowSecurityOptionalWithCheckContext); } public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); @@ -65687,21 +65677,21 @@ export class CreatepolicystmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, IdentifierContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createpolicystmt; + return PostgreSqlParser.RULE_createPolicyStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatepolicystmt) { - listener.enterCreatepolicystmt(this); + if(listener.enterCreatePolicyStmt) { + listener.enterCreatePolicyStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatepolicystmt) { - listener.exitCreatepolicystmt(this); + if(listener.exitCreatePolicyStmt) { + listener.exitCreatePolicyStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatepolicystmt) { - return visitor.visitCreatepolicystmt(this); + if (visitor.visitCreatePolicyStmt) { + return visitor.visitCreatePolicyStmt(this); } else { return visitor.visitChildren(this); } @@ -65709,7 +65699,7 @@ export class CreatepolicystmtContext extends antlr.ParserRuleContext { } -export class AlterpolicystmtContext extends antlr.ParserRuleContext { +export class AlterPolicyStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65719,8 +65709,8 @@ export class AlterpolicystmtContext extends antlr.ParserRuleContext { public KW_POLICY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_POLICY, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; @@ -65734,28 +65724,28 @@ export class AlterpolicystmtContext extends antlr.ParserRuleContext { public role_list(): Role_listContext | null { return this.getRuleContext(0, Role_listContext); } - public rowsecurityoptionalexpr(): RowsecurityoptionalexprContext | null { - return this.getRuleContext(0, RowsecurityoptionalexprContext); + public rowSecurityOptionalExpr(): RowSecurityOptionalExprContext | null { + return this.getRuleContext(0, RowSecurityOptionalExprContext); } - public rowsecurityoptionalwithcheck(): RowsecurityoptionalwithcheckContext | null { - return this.getRuleContext(0, RowsecurityoptionalwithcheckContext); + public rowSecurityOptionalWithCheck(): RowSecurityOptionalWithCheckContext | null { + return this.getRuleContext(0, RowSecurityOptionalWithCheckContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterpolicystmt; + return PostgreSqlParser.RULE_alterPolicyStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterpolicystmt) { - listener.enterAlterpolicystmt(this); + if(listener.enterAlterPolicyStmt) { + listener.enterAlterPolicyStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterpolicystmt) { - listener.exitAlterpolicystmt(this); + if(listener.exitAlterPolicyStmt) { + listener.exitAlterPolicyStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterpolicystmt) { - return visitor.visitAlterpolicystmt(this); + if (visitor.visitAlterPolicyStmt) { + return visitor.visitAlterPolicyStmt(this); } else { return visitor.visitChildren(this); } @@ -65763,7 +65753,7 @@ export class AlterpolicystmtContext extends antlr.ParserRuleContext { } -export class AlterprocedurestmtContext extends antlr.ParserRuleContext { +export class AlterProcedureStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65797,8 +65787,8 @@ export class AlterprocedurestmtContext extends antlr.ParserRuleContext { public KW_OWNER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OWNER, 0); } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); @@ -65818,8 +65808,8 @@ export class AlterprocedurestmtContext extends antlr.ParserRuleContext { public KW_EXTENSION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_EXTENSION, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public func_args(): Func_argsContext | null { return this.getRuleContext(0, Func_argsContext); @@ -65831,21 +65821,21 @@ export class AlterprocedurestmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NO, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterprocedurestmt; + return PostgreSqlParser.RULE_alterProcedureStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterprocedurestmt) { - listener.enterAlterprocedurestmt(this); + if(listener.enterAlterProcedureStmt) { + listener.enterAlterProcedureStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterprocedurestmt) { - listener.exitAlterprocedurestmt(this); + if(listener.exitAlterProcedureStmt) { + listener.exitAlterProcedureStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterprocedurestmt) { - return visitor.visitAlterprocedurestmt(this); + if (visitor.visitAlterProcedureStmt) { + return visitor.visitAlterProcedureStmt(this); } else { return visitor.visitChildren(this); } @@ -65872,14 +65862,14 @@ export class Procedure_actionContext extends antlr.ParserRuleContext { public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); @@ -65925,7 +65915,7 @@ export class Procedure_actionContext extends antlr.ParserRuleContext { } -export class RowsecurityoptionalexprContext extends antlr.ParserRuleContext { +export class RowSecurityOptionalExprContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65942,21 +65932,21 @@ export class RowsecurityoptionalexprContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_rowsecurityoptionalexpr; + return PostgreSqlParser.RULE_rowSecurityOptionalExpr; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRowsecurityoptionalexpr) { - listener.enterRowsecurityoptionalexpr(this); + if(listener.enterRowSecurityOptionalExpr) { + listener.enterRowSecurityOptionalExpr(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRowsecurityoptionalexpr) { - listener.exitRowsecurityoptionalexpr(this); + if(listener.exitRowSecurityOptionalExpr) { + listener.exitRowSecurityOptionalExpr(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRowsecurityoptionalexpr) { - return visitor.visitRowsecurityoptionalexpr(this); + if (visitor.visitRowSecurityOptionalExpr) { + return visitor.visitRowSecurityOptionalExpr(this); } else { return visitor.visitChildren(this); } @@ -65964,7 +65954,7 @@ export class RowsecurityoptionalexprContext extends antlr.ParserRuleContext { } -export class RowsecurityoptionalwithcheckContext extends antlr.ParserRuleContext { +export class RowSecurityOptionalWithCheckContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65984,21 +65974,21 @@ export class RowsecurityoptionalwithcheckContext extends antlr.ParserRuleContext return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_rowsecurityoptionalwithcheck; + return PostgreSqlParser.RULE_rowSecurityOptionalWithCheck; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRowsecurityoptionalwithcheck) { - listener.enterRowsecurityoptionalwithcheck(this); + if(listener.enterRowSecurityOptionalWithCheck) { + listener.enterRowSecurityOptionalWithCheck(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRowsecurityoptionalwithcheck) { - listener.exitRowsecurityoptionalwithcheck(this); + if(listener.exitRowSecurityOptionalWithCheck) { + listener.exitRowSecurityOptionalWithCheck(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRowsecurityoptionalwithcheck) { - return visitor.visitRowsecurityoptionalwithcheck(this); + if (visitor.visitRowSecurityOptionalWithCheck) { + return visitor.visitRowSecurityOptionalWithCheck(this); } else { return visitor.visitChildren(this); } @@ -66006,7 +65996,7 @@ export class RowsecurityoptionalwithcheckContext extends antlr.ParserRuleContext } -export class CreateamstmtContext extends antlr.ParserRuleContext { +export class CreateAccessMethodStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66019,8 +66009,8 @@ export class CreateamstmtContext extends antlr.ParserRuleContext { public KW_METHOD(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_METHOD, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_TYPE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TYPE, 0)!; @@ -66038,21 +66028,21 @@ export class CreateamstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createamstmt; + return PostgreSqlParser.RULE_createAccessMethodStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateamstmt) { - listener.enterCreateamstmt(this); + if(listener.enterCreateAccessMethodStmt) { + listener.enterCreateAccessMethodStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateamstmt) { - listener.exitCreateamstmt(this); + if(listener.exitCreateAccessMethodStmt) { + listener.exitCreateAccessMethodStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateamstmt) { - return visitor.visitCreateamstmt(this); + if (visitor.visitCreateAccessMethodStmt) { + return visitor.visitCreateAccessMethodStmt(this); } else { return visitor.visitChildren(this); } @@ -66060,7 +66050,7 @@ export class CreateamstmtContext extends antlr.ParserRuleContext { } -export class CreatetrigstmtContext extends antlr.ParserRuleContext { +export class CreateTrigStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66070,20 +66060,20 @@ export class CreatetrigstmtContext extends antlr.ParserRuleContext { public KW_TRIGGER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TRIGGER, 0)!; } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } - public triggeractiontime(): TriggeractiontimeContext { - return this.getRuleContext(0, TriggeractiontimeContext)!; + public triggerActionTime(): TriggerActionTimeContext { + return this.getRuleContext(0, TriggerActionTimeContext)!; } - public triggerevents(): TriggereventsContext { - return this.getRuleContext(0, TriggereventsContext)!; + public triggerEvents(): TriggerEventsContext { + return this.getRuleContext(0, TriggerEventsContext)!; } public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; @@ -66100,8 +66090,8 @@ export class CreatetrigstmtContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public triggerfuncargs(): TriggerfuncargsContext { - return this.getRuleContext(0, TriggerfuncargsContext)!; + public triggerFuncArgs(): TriggerFuncArgsContext { + return this.getRuleContext(0, TriggerFuncArgsContext)!; } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -66115,8 +66105,8 @@ export class CreatetrigstmtContext extends antlr.ParserRuleContext { public KW_FOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOR, 0); } - public triggerwhen(): TriggerwhenContext | null { - return this.getRuleContext(0, TriggerwhenContext); + public triggerWhen(): TriggerWhenContext | null { + return this.getRuleContext(0, TriggerWhenContext); } public KW_ROW(): antlr.TerminalNode[]; public KW_ROW(i: number): antlr.TerminalNode | null; @@ -66178,31 +66168,31 @@ export class CreatetrigstmtContext extends antlr.ParserRuleContext { public qualified_name(): Qualified_nameContext | null { return this.getRuleContext(0, Qualified_nameContext); } - public constraintattributeElem(): ConstraintattributeElemContext[]; - public constraintattributeElem(i: number): ConstraintattributeElemContext | null; - public constraintattributeElem(i?: number): ConstraintattributeElemContext[] | ConstraintattributeElemContext | null { + public constraintAttributeElem(): ConstraintAttributeElemContext[]; + public constraintAttributeElem(i: number): ConstraintAttributeElemContext | null; + public constraintAttributeElem(i?: number): ConstraintAttributeElemContext[] | ConstraintAttributeElemContext | null { if (i === undefined) { - return this.getRuleContexts(ConstraintattributeElemContext); + return this.getRuleContexts(ConstraintAttributeElemContext); } - return this.getRuleContext(i, ConstraintattributeElemContext); + return this.getRuleContext(i, ConstraintAttributeElemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createtrigstmt; + return PostgreSqlParser.RULE_createTrigStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatetrigstmt) { - listener.enterCreatetrigstmt(this); + if(listener.enterCreateTrigStmt) { + listener.enterCreateTrigStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatetrigstmt) { - listener.exitCreatetrigstmt(this); + if(listener.exitCreateTrigStmt) { + listener.exitCreateTrigStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatetrigstmt) { - return visitor.visitCreatetrigstmt(this); + if (visitor.visitCreateTrigStmt) { + return visitor.visitCreateTrigStmt(this); } else { return visitor.visitChildren(this); } @@ -66210,7 +66200,7 @@ export class CreatetrigstmtContext extends antlr.ParserRuleContext { } -export class TriggeractiontimeContext extends antlr.ParserRuleContext { +export class TriggerActionTimeContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66227,21 +66217,21 @@ export class TriggeractiontimeContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_OF, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_triggeractiontime; + return PostgreSqlParser.RULE_triggerActionTime; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTriggeractiontime) { - listener.enterTriggeractiontime(this); + if(listener.enterTriggerActionTime) { + listener.enterTriggerActionTime(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTriggeractiontime) { - listener.exitTriggeractiontime(this); + if(listener.exitTriggerActionTime) { + listener.exitTriggerActionTime(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTriggeractiontime) { - return visitor.visitTriggeractiontime(this); + if (visitor.visitTriggerActionTime) { + return visitor.visitTriggerActionTime(this); } else { return visitor.visitChildren(this); } @@ -66249,18 +66239,18 @@ export class TriggeractiontimeContext extends antlr.ParserRuleContext { } -export class TriggereventsContext extends antlr.ParserRuleContext { +export class TriggerEventsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public triggeroneevent(): TriggeroneeventContext[]; - public triggeroneevent(i: number): TriggeroneeventContext | null; - public triggeroneevent(i?: number): TriggeroneeventContext[] | TriggeroneeventContext | null { + public triggerOneEvent(): TriggerOneEventContext[]; + public triggerOneEvent(i: number): TriggerOneEventContext | null; + public triggerOneEvent(i?: number): TriggerOneEventContext[] | TriggerOneEventContext | null { if (i === undefined) { - return this.getRuleContexts(TriggeroneeventContext); + return this.getRuleContexts(TriggerOneEventContext); } - return this.getRuleContext(i, TriggeroneeventContext); + return this.getRuleContext(i, TriggerOneEventContext); } public KW_OR(): antlr.TerminalNode[]; public KW_OR(i: number): antlr.TerminalNode | null; @@ -66272,21 +66262,21 @@ export class TriggereventsContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_triggerevents; + return PostgreSqlParser.RULE_triggerEvents; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTriggerevents) { - listener.enterTriggerevents(this); + if(listener.enterTriggerEvents) { + listener.enterTriggerEvents(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTriggerevents) { - listener.exitTriggerevents(this); + if(listener.exitTriggerEvents) { + listener.exitTriggerEvents(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTriggerevents) { - return visitor.visitTriggerevents(this); + if (visitor.visitTriggerEvents) { + return visitor.visitTriggerEvents(this); } else { return visitor.visitChildren(this); } @@ -66294,7 +66284,7 @@ export class TriggereventsContext extends antlr.ParserRuleContext { } -export class TriggeroneeventContext extends antlr.ParserRuleContext { +export class TriggerOneEventContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66317,21 +66307,21 @@ export class TriggeroneeventContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_TRUNCATE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_triggeroneevent; + return PostgreSqlParser.RULE_triggerOneEvent; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTriggeroneevent) { - listener.enterTriggeroneevent(this); + if(listener.enterTriggerOneEvent) { + listener.enterTriggerOneEvent(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTriggeroneevent) { - listener.exitTriggeroneevent(this); + if(listener.exitTriggerOneEvent) { + listener.exitTriggerOneEvent(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTriggeroneevent) { - return visitor.visitTriggeroneevent(this); + if (visitor.visitTriggerOneEvent) { + return visitor.visitTriggerOneEvent(this); } else { return visitor.visitChildren(this); } @@ -66339,7 +66329,7 @@ export class TriggeroneeventContext extends antlr.ParserRuleContext { } -export class TriggerwhenContext extends antlr.ParserRuleContext { +export class TriggerWhenContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66356,21 +66346,21 @@ export class TriggerwhenContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_triggerwhen; + return PostgreSqlParser.RULE_triggerWhen; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTriggerwhen) { - listener.enterTriggerwhen(this); + if(listener.enterTriggerWhen) { + listener.enterTriggerWhen(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTriggerwhen) { - listener.exitTriggerwhen(this); + if(listener.exitTriggerWhen) { + listener.exitTriggerWhen(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTriggerwhen) { - return visitor.visitTriggerwhen(this); + if (visitor.visitTriggerWhen) { + return visitor.visitTriggerWhen(this); } else { return visitor.visitChildren(this); } @@ -66417,18 +66407,18 @@ export class Function_or_procedureContext extends antlr.ParserRuleContext { } -export class TriggerfuncargsContext extends antlr.ParserRuleContext { +export class TriggerFuncArgsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public triggerfuncarg(): TriggerfuncargContext[]; - public triggerfuncarg(i: number): TriggerfuncargContext | null; - public triggerfuncarg(i?: number): TriggerfuncargContext[] | TriggerfuncargContext | null { + public triggerFuncArg(): TriggerFuncArgContext[]; + public triggerFuncArg(i: number): TriggerFuncArgContext | null; + public triggerFuncArg(i?: number): TriggerFuncArgContext[] | TriggerFuncArgContext | null { if (i === undefined) { - return this.getRuleContexts(TriggerfuncargContext); + return this.getRuleContexts(TriggerFuncArgContext); } - return this.getRuleContext(i, TriggerfuncargContext); + return this.getRuleContext(i, TriggerFuncArgContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -66440,21 +66430,21 @@ export class TriggerfuncargsContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_triggerfuncargs; + return PostgreSqlParser.RULE_triggerFuncArgs; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTriggerfuncargs) { - listener.enterTriggerfuncargs(this); + if(listener.enterTriggerFuncArgs) { + listener.enterTriggerFuncArgs(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTriggerfuncargs) { - listener.exitTriggerfuncargs(this); + if(listener.exitTriggerFuncArgs) { + listener.exitTriggerFuncArgs(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTriggerfuncargs) { - return visitor.visitTriggerfuncargs(this); + if (visitor.visitTriggerFuncArgs) { + return visitor.visitTriggerFuncArgs(this); } else { return visitor.visitChildren(this); } @@ -66462,7 +66452,7 @@ export class TriggerfuncargsContext extends antlr.ParserRuleContext { } -export class TriggerfuncargContext extends antlr.ParserRuleContext { +export class TriggerFuncArgContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66472,28 +66462,28 @@ export class TriggerfuncargContext extends antlr.ParserRuleContext { public Numeric(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.Numeric, 0); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } - public collabel(): CollabelContext | null { - return this.getRuleContext(0, CollabelContext); + public colLabel(): ColLabelContext | null { + return this.getRuleContext(0, ColLabelContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_triggerfuncarg; + return PostgreSqlParser.RULE_triggerFuncArg; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTriggerfuncarg) { - listener.enterTriggerfuncarg(this); + if(listener.enterTriggerFuncArg) { + listener.enterTriggerFuncArg(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTriggerfuncarg) { - listener.exitTriggerfuncarg(this); + if(listener.exitTriggerFuncArg) { + listener.exitTriggerFuncArg(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTriggerfuncarg) { - return visitor.visitTriggerfuncarg(this); + if (visitor.visitTriggerFuncArg) { + return visitor.visitTriggerFuncArg(this); } else { return visitor.visitChildren(this); } @@ -66501,7 +66491,7 @@ export class TriggerfuncargContext extends antlr.ParserRuleContext { } -export class ConstraintattributeElemContext extends antlr.ParserRuleContext { +export class ConstraintAttributeElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66530,21 +66520,21 @@ export class ConstraintattributeElemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_INHERIT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_constraintattributeElem; + return PostgreSqlParser.RULE_constraintAttributeElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterConstraintattributeElem) { - listener.enterConstraintattributeElem(this); + if(listener.enterConstraintAttributeElem) { + listener.enterConstraintAttributeElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitConstraintattributeElem) { - listener.exitConstraintattributeElem(this); + if(listener.exitConstraintAttributeElem) { + listener.exitConstraintAttributeElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitConstraintattributeElem) { - return visitor.visitConstraintattributeElem(this); + if (visitor.visitConstraintAttributeElem) { + return visitor.visitConstraintAttributeElem(this); } else { return visitor.visitChildren(this); } @@ -66552,7 +66542,7 @@ export class ConstraintattributeElemContext extends antlr.ParserRuleContext { } -export class CreateeventtrigstmtContext extends antlr.ParserRuleContext { +export class CreateEventTrigStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66565,14 +66555,14 @@ export class CreateeventtrigstmtContext extends antlr.ParserRuleContext { public KW_TRIGGER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TRIGGER, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; } - public collabel(): CollabelContext { - return this.getRuleContext(0, CollabelContext)!; + public colLabel(): ColLabelContext { + return this.getRuleContext(0, ColLabelContext)!; } public KW_EXECUTE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_EXECUTE, 0)!; @@ -66608,21 +66598,21 @@ export class CreateeventtrigstmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createeventtrigstmt; + return PostgreSqlParser.RULE_createEventTrigStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateeventtrigstmt) { - listener.enterCreateeventtrigstmt(this); + if(listener.enterCreateEventTrigStmt) { + listener.enterCreateEventTrigStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateeventtrigstmt) { - listener.exitCreateeventtrigstmt(this); + if(listener.exitCreateEventTrigStmt) { + listener.exitCreateEventTrigStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateeventtrigstmt) { - return visitor.visitCreateeventtrigstmt(this); + if (visitor.visitCreateEventTrigStmt) { + return visitor.visitCreateEventTrigStmt(this); } else { return visitor.visitChildren(this); } @@ -66634,8 +66624,8 @@ export class Event_trigger_when_itemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_IN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_IN, 0)!; @@ -66643,8 +66633,8 @@ export class Event_trigger_when_itemContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public sconst(): SconstContext { - return this.getRuleContext(0, SconstContext)!; + public stringConst(): StringConstContext { + return this.getRuleContext(0, StringConstContext)!; } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -66681,7 +66671,7 @@ export class Event_trigger_when_itemContext extends antlr.ParserRuleContext { } -export class AltereventtrigstmtContext extends antlr.ParserRuleContext { +export class AlterEventTrigStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66694,8 +66684,8 @@ export class AltereventtrigstmtContext extends antlr.ParserRuleContext { public KW_TRIGGER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TRIGGER, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_ENABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ENABLE, 0); @@ -66710,21 +66700,21 @@ export class AltereventtrigstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ALWAYS, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_altereventtrigstmt; + return PostgreSqlParser.RULE_alterEventTrigStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAltereventtrigstmt) { - listener.enterAltereventtrigstmt(this); + if(listener.enterAlterEventTrigStmt) { + listener.enterAlterEventTrigStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAltereventtrigstmt) { - listener.exitAltereventtrigstmt(this); + if(listener.exitAlterEventTrigStmt) { + listener.exitAlterEventTrigStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAltereventtrigstmt) { - return visitor.visitAltereventtrigstmt(this); + if (visitor.visitAlterEventTrigStmt) { + return visitor.visitAlterEventTrigStmt(this); } else { return visitor.visitChildren(this); } @@ -66732,7 +66722,7 @@ export class AltereventtrigstmtContext extends antlr.ParserRuleContext { } -export class CreateassertionstmtContext extends antlr.ParserRuleContext { +export class CreateAssertionStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66757,31 +66747,31 @@ export class CreateassertionstmtContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } - public constraintattributeElem(): ConstraintattributeElemContext[]; - public constraintattributeElem(i: number): ConstraintattributeElemContext | null; - public constraintattributeElem(i?: number): ConstraintattributeElemContext[] | ConstraintattributeElemContext | null { + public constraintAttributeElem(): ConstraintAttributeElemContext[]; + public constraintAttributeElem(i: number): ConstraintAttributeElemContext | null; + public constraintAttributeElem(i?: number): ConstraintAttributeElemContext[] | ConstraintAttributeElemContext | null { if (i === undefined) { - return this.getRuleContexts(ConstraintattributeElemContext); + return this.getRuleContexts(ConstraintAttributeElemContext); } - return this.getRuleContext(i, ConstraintattributeElemContext); + return this.getRuleContext(i, ConstraintAttributeElemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createassertionstmt; + return PostgreSqlParser.RULE_createAssertionStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateassertionstmt) { - listener.enterCreateassertionstmt(this); + if(listener.enterCreateAssertionStmt) { + listener.enterCreateAssertionStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateassertionstmt) { - listener.exitCreateassertionstmt(this); + if(listener.exitCreateAssertionStmt) { + listener.exitCreateAssertionStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateassertionstmt) { - return visitor.visitCreateassertionstmt(this); + if (visitor.visitCreateAssertionStmt) { + return visitor.visitCreateAssertionStmt(this); } else { return visitor.visitChildren(this); } @@ -66789,7 +66779,7 @@ export class CreateassertionstmtContext extends antlr.ParserRuleContext { } -export class DefinestmtContext extends antlr.ParserRuleContext { +export class DefineStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66805,14 +66795,14 @@ export class DefinestmtContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public old_aggr_elem(): Old_aggr_elemContext[]; - public old_aggr_elem(i: number): Old_aggr_elemContext | null; - public old_aggr_elem(i?: number): Old_aggr_elemContext[] | Old_aggr_elemContext | null { + public old_aggregate_elem(): Old_aggregate_elemContext[]; + public old_aggregate_elem(i: number): Old_aggregate_elemContext | null; + public old_aggregate_elem(i?: number): Old_aggregate_elemContext[] | Old_aggregate_elemContext | null { if (i === undefined) { - return this.getRuleContexts(Old_aggr_elemContext); + return this.getRuleContexts(Old_aggregate_elemContext); } - return this.getRuleContext(i, Old_aggr_elemContext); + return this.getRuleContext(i, Old_aggregate_elemContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); @@ -66820,8 +66810,8 @@ export class DefinestmtContext extends antlr.ParserRuleContext { public opt_or_replace(): Opt_or_replaceContext | null { return this.getRuleContext(0, Opt_or_replaceContext); } - public aggr_args(): Aggr_argsContext | null { - return this.getRuleContext(0, Aggr_argsContext); + public aggregate_args(): Aggregate_argsContext | null { + return this.getRuleContext(0, Aggregate_argsContext); } public definition(): DefinitionContext | null { return this.getRuleContext(0, DefinitionContext); @@ -66859,11 +66849,11 @@ export class DefinestmtContext extends antlr.ParserRuleContext { public KW_ENUM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ENUM, 0); } - public tablefuncelementlist(): TablefuncelementlistContext | null { - return this.getRuleContext(0, TablefuncelementlistContext); + public tableFuncElementList(): TableFuncElementListContext | null { + return this.getRuleContext(0, TableFuncElementListContext); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public notify_payload(): Notify_payloadContext[]; public notify_payload(i: number): Notify_payloadContext | null; @@ -66905,21 +66895,21 @@ export class DefinestmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_FROM, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_definestmt; + return PostgreSqlParser.RULE_defineStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDefinestmt) { - listener.enterDefinestmt(this); + if(listener.enterDefineStmt) { + listener.enterDefineStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDefinestmt) { - listener.exitDefinestmt(this); + if(listener.exitDefineStmt) { + listener.exitDefineStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDefinestmt) { - return visitor.visitDefinestmt(this); + if (visitor.visitDefineStmt) { + return visitor.visitDefineStmt(this); } else { return visitor.visitChildren(this); } @@ -66982,8 +66972,8 @@ export class Def_elemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public collabel(): CollabelContext { - return this.getRuleContext(0, CollabelContext)!; + public colLabel(): ColLabelContext { + return this.getRuleContext(0, ColLabelContext)!; } public EQUAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.EQUAL, 0); @@ -67027,11 +67017,11 @@ export class Def_argContext extends antlr.ParserRuleContext { public qual_all_op(): Qual_all_opContext | null { return this.getRuleContext(0, Qual_all_opContext); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public KW_NONE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NONE, 0); @@ -67059,7 +67049,7 @@ export class Def_argContext extends antlr.ParserRuleContext { } -export class Old_aggr_elemContext extends antlr.ParserRuleContext { +export class Old_aggregate_elemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67073,21 +67063,21 @@ export class Old_aggr_elemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Def_argContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_old_aggr_elem; + return PostgreSqlParser.RULE_old_aggregate_elem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOld_aggr_elem) { - listener.enterOld_aggr_elem(this); + if(listener.enterOld_aggregate_elem) { + listener.enterOld_aggregate_elem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOld_aggr_elem) { - listener.exitOld_aggr_elem(this); + if(listener.exitOld_aggregate_elem) { + listener.exitOld_aggregate_elem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOld_aggr_elem) { - return visitor.visitOld_aggr_elem(this); + if (visitor.visitOld_aggregate_elem) { + return visitor.visitOld_aggregate_elem(this); } else { return visitor.visitChildren(this); } @@ -67095,7 +67085,7 @@ export class Old_aggr_elemContext extends antlr.ParserRuleContext { } -export class AlterenumstmtContext extends antlr.ParserRuleContext { +export class AlterEnumStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67114,14 +67104,14 @@ export class AlterenumstmtContext extends antlr.ParserRuleContext { public KW_VALUE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_VALUE, 0)!; } - public sconst(): SconstContext[]; - public sconst(i: number): SconstContext | null; - public sconst(i?: number): SconstContext[] | SconstContext | null { + public stringConst(): StringConstContext[]; + public stringConst(i: number): StringConstContext | null; + public stringConst(i?: number): StringConstContext[] | StringConstContext | null { if (i === undefined) { - return this.getRuleContexts(SconstContext); + return this.getRuleContexts(StringConstContext); } - return this.getRuleContext(i, SconstContext); + return this.getRuleContext(i, StringConstContext); } public opt_if_not_exists(): Opt_if_not_existsContext | null { return this.getRuleContext(0, Opt_if_not_existsContext); @@ -67139,21 +67129,21 @@ export class AlterenumstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_TO, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterenumstmt; + return PostgreSqlParser.RULE_alterEnumStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterenumstmt) { - listener.enterAlterenumstmt(this); + if(listener.enterAlterEnumStmt) { + listener.enterAlterEnumStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterenumstmt) { - listener.exitAlterenumstmt(this); + if(listener.exitAlterEnumStmt) { + listener.exitAlterEnumStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterenumstmt) { - return visitor.visitAlterenumstmt(this); + if (visitor.visitAlterEnumStmt) { + return visitor.visitAlterEnumStmt(this); } else { return visitor.visitChildren(this); } @@ -67197,7 +67187,7 @@ export class Opt_if_not_existsContext extends antlr.ParserRuleContext { } -export class CreateopclassstmtContext extends antlr.ParserRuleContext { +export class CreateOperatorClassStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67234,14 +67224,14 @@ export class CreateopclassstmtContext extends antlr.ParserRuleContext { public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; } - public opclass_item(): Opclass_itemContext[]; - public opclass_item(i: number): Opclass_itemContext | null; - public opclass_item(i?: number): Opclass_itemContext[] | Opclass_itemContext | null { + public opClassItem(): OpClassItemContext[]; + public opClassItem(i: number): OpClassItemContext | null; + public opClassItem(i?: number): OpClassItemContext[] | OpClassItemContext | null { if (i === undefined) { - return this.getRuleContexts(Opclass_itemContext); + return this.getRuleContexts(OpClassItemContext); } - return this.getRuleContext(i, Opclass_itemContext); + return this.getRuleContext(i, OpClassItemContext); } public KW_DEFAULT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); @@ -67259,21 +67249,21 @@ export class CreateopclassstmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createopclassstmt; + return PostgreSqlParser.RULE_createOperatorClassStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateopclassstmt) { - listener.enterCreateopclassstmt(this); + if(listener.enterCreateOperatorClassStmt) { + listener.enterCreateOperatorClassStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateopclassstmt) { - listener.exitCreateopclassstmt(this); + if(listener.exitCreateOperatorClassStmt) { + listener.exitCreateOperatorClassStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateopclassstmt) { - return visitor.visitCreateopclassstmt(this); + if (visitor.visitCreateOperatorClassStmt) { + return visitor.visitCreateOperatorClassStmt(this); } else { return visitor.visitChildren(this); } @@ -67281,7 +67271,7 @@ export class CreateopclassstmtContext extends antlr.ParserRuleContext { } -export class Opclass_itemContext extends antlr.ParserRuleContext { +export class OpClassItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67294,8 +67284,8 @@ export class Opclass_itemContext extends antlr.ParserRuleContext { public any_operator(): Any_operatorContext | null { return this.getRuleContext(0, Any_operatorContext); } - public oper_argtypes(): Oper_argtypesContext | null { - return this.getRuleContext(0, Oper_argtypesContext); + public operatorArgTypes(): OperatorArgTypesContext | null { + return this.getRuleContext(0, OperatorArgTypesContext); } public KW_FOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOR, 0); @@ -67318,8 +67308,8 @@ export class Opclass_itemContext extends antlr.ParserRuleContext { public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_with_argtypes(): Function_with_argtypesContext | null { - return this.getRuleContext(0, Function_with_argtypesContext); + public functionWithArgTypes(): FunctionWithArgTypesContext | null { + return this.getRuleContext(0, FunctionWithArgTypesContext); } public prep_type_clause(): Prep_type_clauseContext | null { return this.getRuleContext(0, Prep_type_clauseContext); @@ -67331,21 +67321,21 @@ export class Opclass_itemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, TypenameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opclass_item; + return PostgreSqlParser.RULE_opClassItem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpclass_item) { - listener.enterOpclass_item(this); + if(listener.enterOpClassItem) { + listener.enterOpClassItem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpclass_item) { - listener.exitOpclass_item(this); + if(listener.exitOpClassItem) { + listener.exitOpClassItem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpclass_item) { - return visitor.visitOpclass_item(this); + if (visitor.visitOpClassItem) { + return visitor.visitOpClassItem(this); } else { return visitor.visitChildren(this); } @@ -67353,7 +67343,7 @@ export class Opclass_itemContext extends antlr.ParserRuleContext { } -export class CreateopfamilystmtContext extends antlr.ParserRuleContext { +export class CreateOperatorFamilyStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67373,21 +67363,21 @@ export class CreateopfamilystmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Table_access_method_clauseContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createopfamilystmt; + return PostgreSqlParser.RULE_createOperatorFamilyStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateopfamilystmt) { - listener.enterCreateopfamilystmt(this); + if(listener.enterCreateOperatorFamilyStmt) { + listener.enterCreateOperatorFamilyStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateopfamilystmt) { - listener.exitCreateopfamilystmt(this); + if(listener.exitCreateOperatorFamilyStmt) { + listener.exitCreateOperatorFamilyStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateopfamilystmt) { - return visitor.visitCreateopfamilystmt(this); + if (visitor.visitCreateOperatorFamilyStmt) { + return visitor.visitCreateOperatorFamilyStmt(this); } else { return visitor.visitChildren(this); } @@ -67395,7 +67385,7 @@ export class CreateopfamilystmtContext extends antlr.ParserRuleContext { } -export class AlteropfamilystmtContext extends antlr.ParserRuleContext { +export class AlterOperatorFamilyStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67417,26 +67407,26 @@ export class AlteropfamilystmtContext extends antlr.ParserRuleContext { public KW_ADD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADD, 0); } - public opclass_item(): Opclass_itemContext[]; - public opclass_item(i: number): Opclass_itemContext | null; - public opclass_item(i?: number): Opclass_itemContext[] | Opclass_itemContext | null { + public opClassItem(): OpClassItemContext[]; + public opClassItem(i: number): OpClassItemContext | null; + public opClassItem(i?: number): OpClassItemContext[] | OpClassItemContext | null { if (i === undefined) { - return this.getRuleContexts(Opclass_itemContext); + return this.getRuleContexts(OpClassItemContext); } - return this.getRuleContext(i, Opclass_itemContext); + return this.getRuleContext(i, OpClassItemContext); } public KW_DROP(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DROP, 0); } - public opclass_drop(): Opclass_dropContext[]; - public opclass_drop(i: number): Opclass_dropContext | null; - public opclass_drop(i?: number): Opclass_dropContext[] | Opclass_dropContext | null { + public opClassDrop(): OpClassDropContext[]; + public opClassDrop(i: number): OpClassDropContext | null; + public opClassDrop(i?: number): OpClassDropContext[] | OpClassDropContext | null { if (i === undefined) { - return this.getRuleContexts(Opclass_dropContext); + return this.getRuleContexts(OpClassDropContext); } - return this.getRuleContext(i, Opclass_dropContext); + return this.getRuleContext(i, OpClassDropContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -67448,21 +67438,21 @@ export class AlteropfamilystmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alteropfamilystmt; + return PostgreSqlParser.RULE_alterOperatorFamilyStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlteropfamilystmt) { - listener.enterAlteropfamilystmt(this); + if(listener.enterAlterOperatorFamilyStmt) { + listener.enterAlterOperatorFamilyStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlteropfamilystmt) { - listener.exitAlteropfamilystmt(this); + if(listener.exitAlterOperatorFamilyStmt) { + listener.exitAlterOperatorFamilyStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlteropfamilystmt) { - return visitor.visitAlteropfamilystmt(this); + if (visitor.visitAlterOperatorFamilyStmt) { + return visitor.visitAlterOperatorFamilyStmt(this); } else { return visitor.visitChildren(this); } @@ -67470,7 +67460,7 @@ export class AlteropfamilystmtContext extends antlr.ParserRuleContext { } -export class Opclass_dropContext extends antlr.ParserRuleContext { +export class OpClassDropContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67487,21 +67477,21 @@ export class Opclass_dropContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opclass_drop; + return PostgreSqlParser.RULE_opClassDrop; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpclass_drop) { - listener.enterOpclass_drop(this); + if(listener.enterOpClassDrop) { + listener.enterOpClassDrop(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpclass_drop) { - listener.exitOpclass_drop(this); + if(listener.exitOpClassDrop) { + listener.exitOpClassDrop(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpclass_drop) { - return visitor.visitOpclass_drop(this); + if (visitor.visitOpClassDrop) { + return visitor.visitOpClassDrop(this); } else { return visitor.visitChildren(this); } @@ -67509,7 +67499,7 @@ export class Opclass_dropContext extends antlr.ParserRuleContext { } -export class ReassignownedstmtContext extends antlr.ParserRuleContext { +export class ReassignOwnedStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67528,25 +67518,25 @@ export class ReassignownedstmtContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TO, 0)!; } - public rolespec(): RolespecContext { - return this.getRuleContext(0, RolespecContext)!; + public roleSpec(): RoleSpecContext { + return this.getRuleContext(0, RoleSpecContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_reassignownedstmt; + return PostgreSqlParser.RULE_reassignOwnedStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterReassignownedstmt) { - listener.enterReassignownedstmt(this); + if(listener.enterReassignOwnedStmt) { + listener.enterReassignOwnedStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitReassignownedstmt) { - listener.exitReassignownedstmt(this); + if(listener.exitReassignOwnedStmt) { + listener.exitReassignOwnedStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitReassignownedstmt) { - return visitor.visitReassignownedstmt(this); + if (visitor.visitReassignOwnedStmt) { + return visitor.visitReassignOwnedStmt(this); } else { return visitor.visitChildren(this); } @@ -67554,7 +67544,7 @@ export class ReassignownedstmtContext extends antlr.ParserRuleContext { } -export class DropstmtContext extends antlr.ParserRuleContext { +export class DropStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67675,8 +67665,8 @@ export class DropstmtContext extends antlr.ParserRuleContext { public schema_name_list(): Schema_name_listContext | null { return this.getRuleContext(0, Schema_name_listContext); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_ON(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ON, 0); @@ -67777,8 +67767,8 @@ export class DropstmtContext extends antlr.ParserRuleContext { public KW_MAPPING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_MAPPING, 0); } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public KW_DATABASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATABASE, 0); @@ -67799,21 +67789,21 @@ export class DropstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_WITH, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_dropstmt; + return PostgreSqlParser.RULE_dropStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDropstmt) { - listener.enterDropstmt(this); + if(listener.enterDropStmt) { + listener.enterDropStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDropstmt) { - listener.exitDropstmt(this); + if(listener.exitDropStmt) { + listener.exitDropStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDropstmt) { - return visitor.visitDropstmt(this); + if (visitor.visitDropStmt) { + return visitor.visitDropStmt(this); } else { return visitor.visitChildren(this); } @@ -67906,8 +67896,8 @@ export class Object_type_nameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_EVENT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_EVENT, 0); @@ -67963,8 +67953,8 @@ export class Object_type_nameContext extends antlr.ParserRuleContext { public database_name(): Database_nameContext | null { return this.getRuleContext(0, Database_nameContext); } - public opttablespace(): OpttablespaceContext | null { - return this.getRuleContext(0, OpttablespaceContext); + public optTableSpace(): OptTableSpaceContext | null { + return this.getRuleContext(0, OptTableSpaceContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_object_type_name; @@ -68038,8 +68028,8 @@ export class Any_nameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public attrs(): AttrsContext | null { return this.getRuleContext(0, AttrsContext); @@ -68080,14 +68070,14 @@ export class AttrsContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.DOT, i); } } - public collabel(): CollabelContext[]; - public collabel(i: number): CollabelContext | null; - public collabel(i?: number): CollabelContext[] | CollabelContext | null { + public colLabel(): ColLabelContext[]; + public colLabel(i: number): ColLabelContext | null; + public colLabel(i?: number): ColLabelContext[] | ColLabelContext | null { if (i === undefined) { - return this.getRuleContexts(CollabelContext); + return this.getRuleContexts(ColLabelContext); } - return this.getRuleContext(i, CollabelContext); + return this.getRuleContext(i, ColLabelContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_attrs; @@ -68112,7 +68102,7 @@ export class AttrsContext extends antlr.ParserRuleContext { } -export class TruncatestmtContext extends antlr.ParserRuleContext { +export class TruncateStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -68153,21 +68143,21 @@ export class TruncatestmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_RESTART, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_truncatestmt; + return PostgreSqlParser.RULE_truncateStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTruncatestmt) { - listener.enterTruncatestmt(this); + if(listener.enterTruncateStmt) { + listener.enterTruncateStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTruncatestmt) { - listener.exitTruncatestmt(this); + if(listener.exitTruncateStmt) { + listener.exitTruncateStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTruncatestmt) { - return visitor.visitTruncatestmt(this); + if (visitor.visitTruncateStmt) { + return visitor.visitTruncateStmt(this); } else { return visitor.visitChildren(this); } @@ -68211,7 +68201,7 @@ export class Truncate_tableContext extends antlr.ParserRuleContext { } -export class CommentstmtContext extends antlr.ParserRuleContext { +export class CommentStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -68257,26 +68247,26 @@ export class CommentstmtContext extends antlr.ParserRuleContext { public KW_AGGREGATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AGGREGATE, 0); } - public aggregate_with_argtypes(): Aggregate_with_argtypesContext | null { - return this.getRuleContext(0, Aggregate_with_argtypesContext); + public aggregateWithArgTypes(): AggregateWithArgTypesContext | null { + return this.getRuleContext(0, AggregateWithArgTypesContext); } public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_with_argtypes(): Function_with_argtypesContext | null { - return this.getRuleContext(0, Function_with_argtypesContext); + public functionWithArgTypes(): FunctionWithArgTypesContext | null { + return this.getRuleContext(0, FunctionWithArgTypesContext); } public KW_OPERATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0); } - public operator_with_argtypes(): Operator_with_argtypesContext | null { - return this.getRuleContext(0, Operator_with_argtypesContext); + public operatorWithArgTypes(): OperatorWithArgTypesContext | null { + return this.getRuleContext(0, OperatorWithArgTypesContext); } public KW_CONSTRAINT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONSTRAINT, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public any_name(): Any_nameContext | null { return this.getRuleContext(0, Any_nameContext); @@ -68284,14 +68274,14 @@ export class CommentstmtContext extends antlr.ParserRuleContext { public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_with_argtypes(): Procedure_with_argtypesContext | null { - return this.getRuleContext(0, Procedure_with_argtypesContext); + public procedureWithArgTypes(): ProcedureWithArgTypesContext | null { + return this.getRuleContext(0, ProcedureWithArgTypesContext); } public KW_ROUTINE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROUTINE, 0); } - public routine_with_argtypes(): Routine_with_argtypesContext | null { - return this.getRuleContext(0, Routine_with_argtypesContext); + public routineWithArgTypes(): RoutineWithArgTypesContext | null { + return this.getRuleContext(0, RoutineWithArgTypesContext); } public KW_TRANSFORM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TRANSFORM, 0); @@ -68311,8 +68301,8 @@ export class CommentstmtContext extends antlr.ParserRuleContext { public KW_OBJECT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OBJECT, 0); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } public KW_CAST(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CAST, 0); @@ -68326,8 +68316,8 @@ export class CommentstmtContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public KW_NULL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NULL, 0); @@ -68360,21 +68350,21 @@ export class CommentstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, AttrsContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_commentstmt; + return PostgreSqlParser.RULE_commentStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCommentstmt) { - listener.enterCommentstmt(this); + if(listener.enterCommentStmt) { + listener.enterCommentStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCommentstmt) { - listener.exitCommentstmt(this); + if(listener.exitCommentStmt) { + listener.exitCommentStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCommentstmt) { - return visitor.visitCommentstmt(this); + if (visitor.visitCommentStmt) { + return visitor.visitCommentStmt(this); } else { return visitor.visitChildren(this); } @@ -68382,7 +68372,7 @@ export class CommentstmtContext extends antlr.ParserRuleContext { } -export class SeclabelstmtContext extends antlr.ParserRuleContext { +export class SecLabelStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -68404,8 +68394,8 @@ export class SeclabelstmtContext extends antlr.ParserRuleContext { public KW_AGGREGATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AGGREGATE, 0); } - public aggregate_with_argtypes(): Aggregate_with_argtypesContext | null { - return this.getRuleContext(0, Aggregate_with_argtypesContext); + public aggregateWithArgTypes(): AggregateWithArgTypesContext | null { + return this.getRuleContext(0, AggregateWithArgTypesContext); } public KW_COLUMN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_COLUMN, 0); @@ -68416,8 +68406,8 @@ export class SeclabelstmtContext extends antlr.ParserRuleContext { public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_with_argtypes(): Function_with_argtypesContext | null { - return this.getRuleContext(0, Function_with_argtypesContext); + public functionWithArgTypes(): FunctionWithArgTypesContext | null { + return this.getRuleContext(0, FunctionWithArgTypesContext); } public KW_LARGE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LARGE, 0); @@ -68425,20 +68415,20 @@ export class SeclabelstmtContext extends antlr.ParserRuleContext { public KW_OBJECT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OBJECT, 0); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_with_argtypes(): Procedure_with_argtypesContext | null { - return this.getRuleContext(0, Procedure_with_argtypesContext); + public procedureWithArgTypes(): ProcedureWithArgTypesContext | null { + return this.getRuleContext(0, ProcedureWithArgTypesContext); } public KW_ROUTINE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROUTINE, 0); } - public routine_with_argtypes(): Routine_with_argtypesContext | null { - return this.getRuleContext(0, Routine_with_argtypesContext); + public routineWithArgTypes(): RoutineWithArgTypesContext | null { + return this.getRuleContext(0, RoutineWithArgTypesContext); } public object_type_any_name(): Object_type_any_nameContext | null { return this.getRuleContext(0, Object_type_any_nameContext); @@ -68446,8 +68436,8 @@ export class SeclabelstmtContext extends antlr.ParserRuleContext { public object_type_name(): Object_type_nameContext | null { return this.getRuleContext(0, Object_type_nameContext); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public KW_NULL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NULL, 0); @@ -68455,8 +68445,8 @@ export class SeclabelstmtContext extends antlr.ParserRuleContext { public KW_FOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOR, 0); } - public nonreservedword_or_sconst(): Nonreservedword_or_sconstContext | null { - return this.getRuleContext(0, Nonreservedword_or_sconstContext); + public nonReservedWordOrStringConst(): NonReservedWordOrStringConstContext | null { + return this.getRuleContext(0, NonReservedWordOrStringConstContext); } public KW_TYPE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TYPE, 0); @@ -68465,21 +68455,21 @@ export class SeclabelstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DOMAIN, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_seclabelstmt; + return PostgreSqlParser.RULE_secLabelStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSeclabelstmt) { - listener.enterSeclabelstmt(this); + if(listener.enterSecLabelStmt) { + listener.enterSecLabelStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSeclabelstmt) { - listener.exitSeclabelstmt(this); + if(listener.exitSecLabelStmt) { + listener.exitSecLabelStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSeclabelstmt) { - return visitor.visitSeclabelstmt(this); + if (visitor.visitSecLabelStmt) { + return visitor.visitSecLabelStmt(this); } else { return visitor.visitChildren(this); } @@ -68487,7 +68477,7 @@ export class SeclabelstmtContext extends antlr.ParserRuleContext { } -export class FetchstmtContext extends antlr.ParserRuleContext { +export class FetchStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -68501,21 +68491,21 @@ export class FetchstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_MOVE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_fetchstmt; + return PostgreSqlParser.RULE_fetchStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFetchstmt) { - listener.enterFetchstmt(this); + if(listener.enterFetchStmt) { + listener.enterFetchStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFetchstmt) { - listener.exitFetchstmt(this); + if(listener.exitFetchStmt) { + listener.exitFetchStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFetchstmt) { - return visitor.visitFetchstmt(this); + if (visitor.visitFetchStmt) { + return visitor.visitFetchStmt(this); } else { return visitor.visitChildren(this); } @@ -68527,8 +68517,8 @@ export class Fetch_argsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public from_in(): From_inContext | null { return this.getRuleContext(0, From_inContext); @@ -68545,8 +68535,8 @@ export class Fetch_argsContext extends antlr.ParserRuleContext { public KW_LAST(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LAST, 0); } - public signediconst(): SignediconstContext | null { - return this.getRuleContext(0, SignediconstContext); + public signedConst(): SignedConstContext | null { + return this.getRuleContext(0, SignedConstContext); } public KW_ABSOLUTE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ABSOLUTE, 0); @@ -68619,7 +68609,7 @@ export class From_inContext extends antlr.ParserRuleContext { } -export class GrantstmtContext extends antlr.ParserRuleContext { +export class GrantStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -68654,21 +68644,21 @@ export class GrantstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_OPTION, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_grantstmt; + return PostgreSqlParser.RULE_grantStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterGrantstmt) { - listener.enterGrantstmt(this); + if(listener.enterGrantStmt) { + listener.enterGrantStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitGrantstmt) { - listener.exitGrantstmt(this); + if(listener.exitGrantStmt) { + listener.exitGrantStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitGrantstmt) { - return visitor.visitGrantstmt(this); + if (visitor.visitGrantStmt) { + return visitor.visitGrantStmt(this); } else { return visitor.visitChildren(this); } @@ -68676,7 +68666,7 @@ export class GrantstmtContext extends antlr.ParserRuleContext { } -export class RevokestmtContext extends antlr.ParserRuleContext { +export class RevokeStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -68711,21 +68701,21 @@ export class RevokestmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_drop_behaviorContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_revokestmt; + return PostgreSqlParser.RULE_revokeStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRevokestmt) { - listener.enterRevokestmt(this); + if(listener.enterRevokeStmt) { + listener.enterRevokeStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRevokestmt) { - listener.exitRevokestmt(this); + if(listener.exitRevokeStmt) { + listener.exitRevokeStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRevokestmt) { - return visitor.visitRevokestmt(this); + if (visitor.visitRevokeStmt) { + return visitor.visitRevokeStmt(this); } else { return visitor.visitChildren(this); } @@ -68764,14 +68754,14 @@ export class PrivilegesContext extends antlr.ParserRuleContext { public opt_column_list(): Opt_column_listContext | null { return this.getRuleContext(0, Opt_column_listContext); } - public beforeprivilegeselect(): BeforeprivilegeselectContext[]; - public beforeprivilegeselect(i: number): BeforeprivilegeselectContext | null; - public beforeprivilegeselect(i?: number): BeforeprivilegeselectContext[] | BeforeprivilegeselectContext | null { + public beforePrivilegeSelect(): BeforePrivilegeSelectContext[]; + public beforePrivilegeSelect(i: number): BeforePrivilegeSelectContext | null; + public beforePrivilegeSelect(i?: number): BeforePrivilegeSelectContext[] | BeforePrivilegeSelectContext | null { if (i === undefined) { - return this.getRuleContexts(BeforeprivilegeselectContext); + return this.getRuleContexts(BeforePrivilegeSelectContext); } - return this.getRuleContext(i, BeforeprivilegeselectContext); + return this.getRuleContext(i, BeforePrivilegeSelectContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_privileges; @@ -68796,7 +68786,7 @@ export class PrivilegesContext extends antlr.ParserRuleContext { } -export class BeforeprivilegeselectContext extends antlr.ParserRuleContext { +export class BeforePrivilegeSelectContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -68840,21 +68830,21 @@ export class BeforeprivilegeselectContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_EXECUTE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_beforeprivilegeselect; + return PostgreSqlParser.RULE_beforePrivilegeSelect; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterBeforeprivilegeselect) { - listener.enterBeforeprivilegeselect(this); + if(listener.enterBeforePrivilegeSelect) { + listener.enterBeforePrivilegeSelect(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitBeforeprivilegeselect) { - listener.exitBeforeprivilegeselect(this); + if(listener.exitBeforePrivilegeSelect) { + listener.exitBeforePrivilegeSelect(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitBeforeprivilegeselect) { - return visitor.visitBeforeprivilegeselect(this); + if (visitor.visitBeforePrivilegeSelect) { + return visitor.visitBeforePrivilegeSelect(this); } else { return visitor.visitChildren(this); } @@ -68875,8 +68865,8 @@ export class PrivilegeContext extends antlr.ParserRuleContext { public KW_CREATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CREATE, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public opt_column_list(): Opt_column_listContext | null { return this.getRuleContext(0, Opt_column_listContext); @@ -68941,20 +68931,20 @@ export class Privilege_targetContext extends antlr.ParserRuleContext { public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_with_argtypes_list(): Function_with_argtypes_listContext | null { - return this.getRuleContext(0, Function_with_argtypes_listContext); + public functionWithArgTypesList(): FunctionWithArgTypesListContext | null { + return this.getRuleContext(0, FunctionWithArgTypesListContext); } public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_with_argtypes_list(): Procedure_with_argtypes_listContext | null { - return this.getRuleContext(0, Procedure_with_argtypes_listContext); + public procedureWithArgTypesList(): ProcedureWithArgTypesListContext | null { + return this.getRuleContext(0, ProcedureWithArgTypesListContext); } public KW_ROUTINE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROUTINE, 0); } - public routine_with_argtypes_list(): Routine_with_argtypes_listContext | null { - return this.getRuleContext(0, Routine_with_argtypes_listContext); + public routineWithArgTypesList(): RoutineWithArgTypesListContext | null { + return this.getRuleContext(0, RoutineWithArgTypesListContext); } public KW_DATABASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATABASE, 0); @@ -68977,14 +68967,14 @@ export class Privilege_targetContext extends antlr.ParserRuleContext { public KW_OBJECT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OBJECT, 0); } - public numericonly(): NumericonlyContext[]; - public numericonly(i: number): NumericonlyContext | null; - public numericonly(i?: number): NumericonlyContext[] | NumericonlyContext | null { + public numericOnly(): NumericOnlyContext[]; + public numericOnly(i: number): NumericOnlyContext | null; + public numericOnly(i?: number): NumericOnlyContext[] | NumericOnlyContext | null { if (i === undefined) { - return this.getRuleContexts(NumericonlyContext); + return this.getRuleContexts(NumericOnlyContext); } - return this.getRuleContext(i, NumericonlyContext); + return this.getRuleContext(i, NumericOnlyContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -69055,14 +69045,14 @@ export class Grantee_listContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public rolespec(): RolespecContext[]; - public rolespec(i: number): RolespecContext | null; - public rolespec(i?: number): RolespecContext[] | RolespecContext | null { + public roleSpec(): RoleSpecContext[]; + public roleSpec(i: number): RoleSpecContext | null; + public roleSpec(i?: number): RoleSpecContext[] | RoleSpecContext | null { if (i === undefined) { - return this.getRuleContexts(RolespecContext); + return this.getRuleContexts(RoleSpecContext); } - return this.getRuleContext(i, RolespecContext); + return this.getRuleContext(i, RoleSpecContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -69105,7 +69095,7 @@ export class Grantee_listContext extends antlr.ParserRuleContext { } -export class GrantrolestmtContext extends antlr.ParserRuleContext { +export class GrantRoleStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -69151,25 +69141,25 @@ export class GrantrolestmtContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BY, 0); } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_grantrolestmt; + return PostgreSqlParser.RULE_grantRoleStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterGrantrolestmt) { - listener.enterGrantrolestmt(this); + if(listener.enterGrantRoleStmt) { + listener.enterGrantRoleStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitGrantrolestmt) { - listener.exitGrantrolestmt(this); + if(listener.exitGrantRoleStmt) { + listener.exitGrantRoleStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitGrantrolestmt) { - return visitor.visitGrantrolestmt(this); + if (visitor.visitGrantRoleStmt) { + return visitor.visitGrantRoleStmt(this); } else { return visitor.visitChildren(this); } @@ -69177,7 +69167,7 @@ export class GrantrolestmtContext extends antlr.ParserRuleContext { } -export class RevokerolestmtContext extends antlr.ParserRuleContext { +export class RevokeRoleStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -69223,28 +69213,28 @@ export class RevokerolestmtContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BY, 0); } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public opt_drop_behavior(): Opt_drop_behaviorContext | null { return this.getRuleContext(0, Opt_drop_behaviorContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_revokerolestmt; + return PostgreSqlParser.RULE_revokeRoleStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRevokerolestmt) { - listener.enterRevokerolestmt(this); + if(listener.enterRevokeRoleStmt) { + listener.enterRevokeRoleStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRevokerolestmt) { - listener.exitRevokerolestmt(this); + if(listener.exitRevokeRoleStmt) { + listener.exitRevokeRoleStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRevokerolestmt) { - return visitor.visitRevokerolestmt(this); + if (visitor.visitRevokeRoleStmt) { + return visitor.visitRevokeRoleStmt(this); } else { return visitor.visitChildren(this); } @@ -69252,7 +69242,7 @@ export class RevokerolestmtContext extends antlr.ParserRuleContext { } -export class AlterdefaultprivilegesstmtContext extends antlr.ParserRuleContext { +export class AlterDefaultPrivilegesStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -69332,21 +69322,21 @@ export class AlterdefaultprivilegesstmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterdefaultprivilegesstmt; + return PostgreSqlParser.RULE_alterDefaultPrivilegesStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterdefaultprivilegesstmt) { - listener.enterAlterdefaultprivilegesstmt(this); + if(listener.enterAlterDefaultPrivilegesStmt) { + listener.enterAlterDefaultPrivilegesStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterdefaultprivilegesstmt) { - listener.exitAlterdefaultprivilegesstmt(this); + if(listener.exitAlterDefaultPrivilegesStmt) { + listener.exitAlterDefaultPrivilegesStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterdefaultprivilegesstmt) { - return visitor.visitAlterdefaultprivilegesstmt(this); + if (visitor.visitAlterDefaultPrivilegesStmt) { + return visitor.visitAlterDefaultPrivilegesStmt(this); } else { return visitor.visitChildren(this); } @@ -69468,7 +69458,7 @@ export class Defacl_privilege_targetContext extends antlr.ParserRuleContext { } -export class IndexstmtContext extends antlr.ParserRuleContext { +export class IndexStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -69502,8 +69492,8 @@ export class IndexstmtContext extends antlr.ParserRuleContext { public opt_if_not_exists(): Opt_if_not_existsContext | null { return this.getRuleContext(0, Opt_if_not_existsContext); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public table_access_method_clause(): Table_access_method_clauseContext | null { return this.getRuleContext(0, Table_access_method_clauseContext); @@ -69517,11 +69507,11 @@ export class IndexstmtContext extends antlr.ParserRuleContext { public KW_DISTINCT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DISTINCT, 0); } - public opt_reloptions(): Opt_reloptionsContext | null { - return this.getRuleContext(0, Opt_reloptionsContext); + public optRelOptions(): OptRelOptionsContext | null { + return this.getRuleContext(0, OptRelOptionsContext); } - public opttablespace(): OpttablespaceContext | null { - return this.getRuleContext(0, OpttablespaceContext); + public optTableSpace(): OptTableSpaceContext | null { + return this.getRuleContext(0, OptTableSpaceContext); } public where_clause(): Where_clauseContext | null { return this.getRuleContext(0, Where_clauseContext); @@ -69530,21 +69520,21 @@ export class IndexstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NOT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_indexstmt; + return PostgreSqlParser.RULE_indexStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterIndexstmt) { - listener.enterIndexstmt(this); + if(listener.enterIndexStmt) { + listener.enterIndexStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitIndexstmt) { - listener.exitIndexstmt(this); + if(listener.exitIndexStmt) { + listener.exitIndexStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitIndexstmt) { - return visitor.visitIndexstmt(this); + if (visitor.visitIndexStmt) { + return visitor.visitIndexStmt(this); } else { return visitor.visitChildren(this); } @@ -69625,8 +69615,8 @@ export class Index_elemContext extends antlr.ParserRuleContext { public any_name(): Any_nameContext | null { return this.getRuleContext(0, Any_nameContext); } - public reloptions(): ReloptionsContext | null { - return this.getRuleContext(0, ReloptionsContext); + public relOptions(): RelOptionsContext | null { + return this.getRuleContext(0, RelOptionsContext); } public opt_collate_clause(): Opt_collate_clauseContext | null { return this.getRuleContext(0, Opt_collate_clauseContext); @@ -69669,7 +69659,7 @@ export class Index_elemContext extends antlr.ParserRuleContext { } -export class CreatefunctionstmtContext extends antlr.ParserRuleContext { +export class CreateFunctionStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -69712,14 +69702,14 @@ export class CreatefunctionstmtContext extends antlr.ParserRuleContext { public KW_RETURNS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_RETURNS, 0); } - public createfunc_opt_item(): Createfunc_opt_itemContext[]; - public createfunc_opt_item(i: number): Createfunc_opt_itemContext | null; - public createfunc_opt_item(i?: number): Createfunc_opt_itemContext[] | Createfunc_opt_itemContext | null { + public create_func_opt_item(): Create_func_opt_itemContext[]; + public create_func_opt_item(i: number): Create_func_opt_itemContext | null; + public create_func_opt_item(i?: number): Create_func_opt_itemContext[] | Create_func_opt_itemContext | null { if (i === undefined) { - return this.getRuleContexts(Createfunc_opt_itemContext); + return this.getRuleContexts(Create_func_opt_itemContext); } - return this.getRuleContext(i, Createfunc_opt_itemContext); + return this.getRuleContext(i, Create_func_opt_itemContext); } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); @@ -69761,21 +69751,21 @@ export class CreatefunctionstmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createfunctionstmt; + return PostgreSqlParser.RULE_createFunctionStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatefunctionstmt) { - listener.enterCreatefunctionstmt(this); + if(listener.enterCreateFunctionStmt) { + listener.enterCreateFunctionStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatefunctionstmt) { - listener.exitCreatefunctionstmt(this); + if(listener.exitCreateFunctionStmt) { + listener.exitCreateFunctionStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatefunctionstmt) { - return visitor.visitCreatefunctionstmt(this); + if (visitor.visitCreateFunctionStmt) { + return visitor.visitCreateFunctionStmt(this); } else { return visitor.visitChildren(this); } @@ -69897,18 +69887,18 @@ export class Func_args_listContext extends antlr.ParserRuleContext { } -export class Routine_with_argtypes_listContext extends antlr.ParserRuleContext { +export class RoutineWithArgTypesListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public routine_with_argtypes(): Routine_with_argtypesContext[]; - public routine_with_argtypes(i: number): Routine_with_argtypesContext | null; - public routine_with_argtypes(i?: number): Routine_with_argtypesContext[] | Routine_with_argtypesContext | null { + public routineWithArgTypes(): RoutineWithArgTypesContext[]; + public routineWithArgTypes(i: number): RoutineWithArgTypesContext | null; + public routineWithArgTypes(i?: number): RoutineWithArgTypesContext[] | RoutineWithArgTypesContext | null { if (i === undefined) { - return this.getRuleContexts(Routine_with_argtypesContext); + return this.getRuleContexts(RoutineWithArgTypesContext); } - return this.getRuleContext(i, Routine_with_argtypesContext); + return this.getRuleContext(i, RoutineWithArgTypesContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -69920,21 +69910,21 @@ export class Routine_with_argtypes_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_routine_with_argtypes_list; + return PostgreSqlParser.RULE_routineWithArgTypesList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRoutine_with_argtypes_list) { - listener.enterRoutine_with_argtypes_list(this); + if(listener.enterRoutineWithArgTypesList) { + listener.enterRoutineWithArgTypesList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRoutine_with_argtypes_list) { - listener.exitRoutine_with_argtypes_list(this); + if(listener.exitRoutineWithArgTypesList) { + listener.exitRoutineWithArgTypesList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRoutine_with_argtypes_list) { - return visitor.visitRoutine_with_argtypes_list(this); + if (visitor.visitRoutineWithArgTypesList) { + return visitor.visitRoutineWithArgTypesList(this); } else { return visitor.visitChildren(this); } @@ -69942,7 +69932,7 @@ export class Routine_with_argtypes_listContext extends antlr.ParserRuleContext { } -export class Routine_with_argtypesContext extends antlr.ParserRuleContext { +export class RoutineWithArgTypesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -69959,21 +69949,21 @@ export class Routine_with_argtypesContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Qualified_nameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_routine_with_argtypes; + return PostgreSqlParser.RULE_routineWithArgTypes; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRoutine_with_argtypes) { - listener.enterRoutine_with_argtypes(this); + if(listener.enterRoutineWithArgTypes) { + listener.enterRoutineWithArgTypes(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRoutine_with_argtypes) { - listener.exitRoutine_with_argtypes(this); + if(listener.exitRoutineWithArgTypes) { + listener.exitRoutineWithArgTypes(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRoutine_with_argtypes) { - return visitor.visitRoutine_with_argtypes(this); + if (visitor.visitRoutineWithArgTypes) { + return visitor.visitRoutineWithArgTypes(this); } else { return visitor.visitChildren(this); } @@ -69981,18 +69971,18 @@ export class Routine_with_argtypesContext extends antlr.ParserRuleContext { } -export class Procedure_with_argtypes_listContext extends antlr.ParserRuleContext { +export class ProcedureWithArgTypesListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public procedure_with_argtypes(): Procedure_with_argtypesContext[]; - public procedure_with_argtypes(i: number): Procedure_with_argtypesContext | null; - public procedure_with_argtypes(i?: number): Procedure_with_argtypesContext[] | Procedure_with_argtypesContext | null { + public procedureWithArgTypes(): ProcedureWithArgTypesContext[]; + public procedureWithArgTypes(i: number): ProcedureWithArgTypesContext | null; + public procedureWithArgTypes(i?: number): ProcedureWithArgTypesContext[] | ProcedureWithArgTypesContext | null { if (i === undefined) { - return this.getRuleContexts(Procedure_with_argtypesContext); + return this.getRuleContexts(ProcedureWithArgTypesContext); } - return this.getRuleContext(i, Procedure_with_argtypesContext); + return this.getRuleContext(i, ProcedureWithArgTypesContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -70004,21 +69994,21 @@ export class Procedure_with_argtypes_listContext extends antlr.ParserRuleContext } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_procedure_with_argtypes_list; + return PostgreSqlParser.RULE_procedureWithArgTypesList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterProcedure_with_argtypes_list) { - listener.enterProcedure_with_argtypes_list(this); + if(listener.enterProcedureWithArgTypesList) { + listener.enterProcedureWithArgTypesList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitProcedure_with_argtypes_list) { - listener.exitProcedure_with_argtypes_list(this); + if(listener.exitProcedureWithArgTypesList) { + listener.exitProcedureWithArgTypesList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitProcedure_with_argtypes_list) { - return visitor.visitProcedure_with_argtypes_list(this); + if (visitor.visitProcedureWithArgTypesList) { + return visitor.visitProcedureWithArgTypesList(this); } else { return visitor.visitChildren(this); } @@ -70026,7 +70016,7 @@ export class Procedure_with_argtypes_listContext extends antlr.ParserRuleContext } -export class Procedure_with_argtypesContext extends antlr.ParserRuleContext { +export class ProcedureWithArgTypesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70043,21 +70033,21 @@ export class Procedure_with_argtypesContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Qualified_nameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_procedure_with_argtypes; + return PostgreSqlParser.RULE_procedureWithArgTypes; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterProcedure_with_argtypes) { - listener.enterProcedure_with_argtypes(this); + if(listener.enterProcedureWithArgTypes) { + listener.enterProcedureWithArgTypes(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitProcedure_with_argtypes) { - listener.exitProcedure_with_argtypes(this); + if(listener.exitProcedureWithArgTypes) { + listener.exitProcedureWithArgTypes(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitProcedure_with_argtypes) { - return visitor.visitProcedure_with_argtypes(this); + if (visitor.visitProcedureWithArgTypes) { + return visitor.visitProcedureWithArgTypes(this); } else { return visitor.visitChildren(this); } @@ -70065,18 +70055,18 @@ export class Procedure_with_argtypesContext extends antlr.ParserRuleContext { } -export class Function_with_argtypes_listContext extends antlr.ParserRuleContext { +export class FunctionWithArgTypesListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public function_with_argtypes(): Function_with_argtypesContext[]; - public function_with_argtypes(i: number): Function_with_argtypesContext | null; - public function_with_argtypes(i?: number): Function_with_argtypesContext[] | Function_with_argtypesContext | null { + public functionWithArgTypes(): FunctionWithArgTypesContext[]; + public functionWithArgTypes(i: number): FunctionWithArgTypesContext | null; + public functionWithArgTypes(i?: number): FunctionWithArgTypesContext[] | FunctionWithArgTypesContext | null { if (i === undefined) { - return this.getRuleContexts(Function_with_argtypesContext); + return this.getRuleContexts(FunctionWithArgTypesContext); } - return this.getRuleContext(i, Function_with_argtypesContext); + return this.getRuleContext(i, FunctionWithArgTypesContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -70088,21 +70078,21 @@ export class Function_with_argtypes_listContext extends antlr.ParserRuleContext } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_function_with_argtypes_list; + return PostgreSqlParser.RULE_functionWithArgTypesList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunction_with_argtypes_list) { - listener.enterFunction_with_argtypes_list(this); + if(listener.enterFunctionWithArgTypesList) { + listener.enterFunctionWithArgTypesList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunction_with_argtypes_list) { - listener.exitFunction_with_argtypes_list(this); + if(listener.exitFunctionWithArgTypesList) { + listener.exitFunctionWithArgTypesList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunction_with_argtypes_list) { - return visitor.visitFunction_with_argtypes_list(this); + if (visitor.visitFunctionWithArgTypesList) { + return visitor.visitFunctionWithArgTypesList(this); } else { return visitor.visitChildren(this); } @@ -70110,7 +70100,7 @@ export class Function_with_argtypes_listContext extends antlr.ParserRuleContext } -export class Function_with_argtypesContext extends antlr.ParserRuleContext { +export class FunctionWithArgTypesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70127,21 +70117,21 @@ export class Function_with_argtypesContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Qualified_nameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_function_with_argtypes; + return PostgreSqlParser.RULE_functionWithArgTypes; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunction_with_argtypes) { - listener.enterFunction_with_argtypes(this); + if(listener.enterFunctionWithArgTypes) { + listener.enterFunctionWithArgTypes(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunction_with_argtypes) { - listener.exitFunction_with_argtypes(this); + if(listener.exitFunctionWithArgTypes) { + listener.exitFunctionWithArgTypes(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunction_with_argtypes) { - return visitor.visitFunction_with_argtypes(this); + if (visitor.visitFunctionWithArgTypes) { + return visitor.visitFunctionWithArgTypes(this); } else { return visitor.visitChildren(this); } @@ -70308,7 +70298,7 @@ export class Func_arg_with_defaultContext extends antlr.ParserRuleContext { } -export class Aggr_argsContext extends antlr.ParserRuleContext { +export class Aggregate_argsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70337,21 +70327,21 @@ export class Aggr_argsContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_BY, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_aggr_args; + return PostgreSqlParser.RULE_aggregate_args; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAggr_args) { - listener.enterAggr_args(this); + if(listener.enterAggregate_args) { + listener.enterAggregate_args(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAggr_args) { - listener.exitAggr_args(this); + if(listener.exitAggregate_args) { + listener.exitAggregate_args(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAggr_args) { - return visitor.visitAggr_args(this); + if (visitor.visitAggregate_args) { + return visitor.visitAggregate_args(this); } else { return visitor.visitChildren(this); } @@ -70359,32 +70349,32 @@ export class Aggr_argsContext extends antlr.ParserRuleContext { } -export class Aggregate_with_argtypesContext extends antlr.ParserRuleContext { +export class AggregateWithArgTypesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public function_name(): Function_nameContext { return this.getRuleContext(0, Function_nameContext)!; } - public aggr_args(): Aggr_argsContext { - return this.getRuleContext(0, Aggr_argsContext)!; + public aggregate_args(): Aggregate_argsContext { + return this.getRuleContext(0, Aggregate_argsContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_aggregate_with_argtypes; + return PostgreSqlParser.RULE_aggregateWithArgTypes; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAggregate_with_argtypes) { - listener.enterAggregate_with_argtypes(this); + if(listener.enterAggregateWithArgTypes) { + listener.enterAggregateWithArgTypes(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAggregate_with_argtypes) { - listener.exitAggregate_with_argtypes(this); + if(listener.exitAggregateWithArgTypes) { + listener.exitAggregateWithArgTypes(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAggregate_with_argtypes) { - return visitor.visitAggregate_with_argtypes(this); + if (visitor.visitAggregateWithArgTypes) { + return visitor.visitAggregateWithArgTypes(this); } else { return visitor.visitChildren(this); } @@ -70447,8 +70437,8 @@ export class Common_func_opt_itemContext extends antlr.ParserRuleContext { public KW_NOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOT, 0); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } public KW_COST(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_COST, 0); @@ -70468,14 +70458,14 @@ export class Common_func_opt_itemContext extends antlr.ParserRuleContext { public set_rest_more(): Set_rest_moreContext | null { return this.getRuleContext(0, Set_rest_moreContext); } - public variableresetstmt(): VariableresetstmtContext | null { - return this.getRuleContext(0, VariableresetstmtContext); + public variableResetStmt(): VariableResetStmtContext | null { + return this.getRuleContext(0, VariableResetStmtContext); } public KW_PARALLEL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PARALLEL, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_common_func_opt_item; @@ -70500,15 +70490,15 @@ export class Common_func_opt_itemContext extends antlr.ParserRuleContext { } -export class Createfunc_opt_itemContext extends antlr.ParserRuleContext { +export class Create_func_opt_itemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public notify_payload(): Notify_payloadContext | null { return this.getRuleContext(0, Notify_payloadContext); @@ -70516,8 +70506,8 @@ export class Createfunc_opt_itemContext extends antlr.ParserRuleContext { public KW_LANGUAGE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LANGUAGE, 0); } - public nonreservedword_or_sconst(): Nonreservedword_or_sconstContext | null { - return this.getRuleContext(0, Nonreservedword_or_sconstContext); + public nonReservedWordOrStringConst(): NonReservedWordOrStringConstContext | null { + return this.getRuleContext(0, NonReservedWordOrStringConstContext); } public KW_TRANSFORM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TRANSFORM, 0); @@ -70564,14 +70554,14 @@ export class Createfunc_opt_itemContext extends antlr.ParserRuleContext { public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); @@ -70592,21 +70582,21 @@ export class Createfunc_opt_itemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Common_func_opt_itemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createfunc_opt_item; + return PostgreSqlParser.RULE_create_func_opt_item; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatefunc_opt_item) { - listener.enterCreatefunc_opt_item(this); + if(listener.enterCreate_func_opt_item) { + listener.enterCreate_func_opt_item(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatefunc_opt_item) { - listener.exitCreatefunc_opt_item(this); + if(listener.exitCreate_func_opt_item) { + listener.exitCreate_func_opt_item(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatefunc_opt_item) { - return visitor.visitCreatefunc_opt_item(this); + if (visitor.visitCreate_func_opt_item) { + return visitor.visitCreate_func_opt_item(this); } else { return visitor.visitChildren(this); } @@ -70680,7 +70670,7 @@ export class Table_func_columnContext extends antlr.ParserRuleContext { } -export class AlterfunctionstmtContext extends antlr.ParserRuleContext { +export class AlterFunctionStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70690,20 +70680,20 @@ export class AlterfunctionstmtContext extends antlr.ParserRuleContext { public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_with_argtypes(): Function_with_argtypesContext | null { - return this.getRuleContext(0, Function_with_argtypesContext); + public functionWithArgTypes(): FunctionWithArgTypesContext | null { + return this.getRuleContext(0, FunctionWithArgTypesContext); } public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_with_argtypes(): Procedure_with_argtypesContext | null { - return this.getRuleContext(0, Procedure_with_argtypesContext); + public procedureWithArgTypes(): ProcedureWithArgTypesContext | null { + return this.getRuleContext(0, ProcedureWithArgTypesContext); } public KW_ROUTINE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROUTINE, 0); } - public routine_with_argtypes(): Routine_with_argtypesContext | null { - return this.getRuleContext(0, Routine_with_argtypesContext); + public routineWithArgTypes(): RoutineWithArgTypesContext | null { + return this.getRuleContext(0, RoutineWithArgTypesContext); } public common_func_opt_item(): Common_func_opt_itemContext[]; public common_func_opt_item(i: number): Common_func_opt_itemContext | null; @@ -70718,21 +70708,21 @@ export class AlterfunctionstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_RESTRICT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterfunctionstmt; + return PostgreSqlParser.RULE_alterFunctionStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterfunctionstmt) { - listener.enterAlterfunctionstmt(this); + if(listener.enterAlterFunctionStmt) { + listener.enterAlterFunctionStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterfunctionstmt) { - listener.exitAlterfunctionstmt(this); + if(listener.exitAlterFunctionStmt) { + listener.exitAlterFunctionStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterfunctionstmt) { - return visitor.visitAlterfunctionstmt(this); + if (visitor.visitAlterFunctionStmt) { + return visitor.visitAlterFunctionStmt(this); } else { return visitor.visitChildren(this); } @@ -70740,7 +70730,7 @@ export class AlterfunctionstmtContext extends antlr.ParserRuleContext { } -export class RemovefuncstmtContext extends antlr.ParserRuleContext { +export class RemoveFuncStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70750,20 +70740,20 @@ export class RemovefuncstmtContext extends antlr.ParserRuleContext { public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_with_argtypes_list(): Function_with_argtypes_listContext | null { - return this.getRuleContext(0, Function_with_argtypes_listContext); + public functionWithArgTypesList(): FunctionWithArgTypesListContext | null { + return this.getRuleContext(0, FunctionWithArgTypesListContext); } public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_with_argtypes_list(): Procedure_with_argtypes_listContext | null { - return this.getRuleContext(0, Procedure_with_argtypes_listContext); + public procedureWithArgTypesList(): ProcedureWithArgTypesListContext | null { + return this.getRuleContext(0, ProcedureWithArgTypesListContext); } public KW_ROUTINE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROUTINE, 0); } - public routine_with_argtypes_list(): Routine_with_argtypes_listContext | null { - return this.getRuleContext(0, Routine_with_argtypes_listContext); + public routineWithArgTypesList(): RoutineWithArgTypesListContext | null { + return this.getRuleContext(0, RoutineWithArgTypesListContext); } public opt_drop_behavior(): Opt_drop_behaviorContext | null { return this.getRuleContext(0, Opt_drop_behaviorContext); @@ -70772,21 +70762,21 @@ export class RemovefuncstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_if_existsContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_removefuncstmt; + return PostgreSqlParser.RULE_removeFuncStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRemovefuncstmt) { - listener.enterRemovefuncstmt(this); + if(listener.enterRemoveFuncStmt) { + listener.enterRemoveFuncStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRemovefuncstmt) { - listener.exitRemovefuncstmt(this); + if(listener.exitRemoveFuncStmt) { + listener.exitRemoveFuncStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRemovefuncstmt) { - return visitor.visitRemovefuncstmt(this); + if (visitor.visitRemoveFuncStmt) { + return visitor.visitRemoveFuncStmt(this); } else { return visitor.visitChildren(this); } @@ -70794,7 +70784,7 @@ export class RemovefuncstmtContext extends antlr.ParserRuleContext { } -export class RemoveaggrstmtContext extends antlr.ParserRuleContext { +export class RemoveAggregateStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70804,14 +70794,14 @@ export class RemoveaggrstmtContext extends antlr.ParserRuleContext { public KW_AGGREGATE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AGGREGATE, 0)!; } - public aggregate_with_argtypes(): Aggregate_with_argtypesContext[]; - public aggregate_with_argtypes(i: number): Aggregate_with_argtypesContext | null; - public aggregate_with_argtypes(i?: number): Aggregate_with_argtypesContext[] | Aggregate_with_argtypesContext | null { + public aggregateWithArgTypes(): AggregateWithArgTypesContext[]; + public aggregateWithArgTypes(i: number): AggregateWithArgTypesContext | null; + public aggregateWithArgTypes(i?: number): AggregateWithArgTypesContext[] | AggregateWithArgTypesContext | null { if (i === undefined) { - return this.getRuleContexts(Aggregate_with_argtypesContext); + return this.getRuleContexts(AggregateWithArgTypesContext); } - return this.getRuleContext(i, Aggregate_with_argtypesContext); + return this.getRuleContext(i, AggregateWithArgTypesContext); } public opt_if_exists(): Opt_if_existsContext | null { return this.getRuleContext(0, Opt_if_existsContext); @@ -70829,21 +70819,21 @@ export class RemoveaggrstmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_removeaggrstmt; + return PostgreSqlParser.RULE_removeAggregateStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRemoveaggrstmt) { - listener.enterRemoveaggrstmt(this); + if(listener.enterRemoveAggregateStmt) { + listener.enterRemoveAggregateStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRemoveaggrstmt) { - listener.exitRemoveaggrstmt(this); + if(listener.exitRemoveAggregateStmt) { + listener.exitRemoveAggregateStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRemoveaggrstmt) { - return visitor.visitRemoveaggrstmt(this); + if (visitor.visitRemoveAggregateStmt) { + return visitor.visitRemoveAggregateStmt(this); } else { return visitor.visitChildren(this); } @@ -70851,7 +70841,7 @@ export class RemoveaggrstmtContext extends antlr.ParserRuleContext { } -export class RemoveoperstmtContext extends antlr.ParserRuleContext { +export class RemoveOperatorStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70861,14 +70851,14 @@ export class RemoveoperstmtContext extends antlr.ParserRuleContext { public KW_OPERATOR(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0)!; } - public operator_with_argtypes(): Operator_with_argtypesContext[]; - public operator_with_argtypes(i: number): Operator_with_argtypesContext | null; - public operator_with_argtypes(i?: number): Operator_with_argtypesContext[] | Operator_with_argtypesContext | null { + public operatorWithArgTypes(): OperatorWithArgTypesContext[]; + public operatorWithArgTypes(i: number): OperatorWithArgTypesContext | null; + public operatorWithArgTypes(i?: number): OperatorWithArgTypesContext[] | OperatorWithArgTypesContext | null { if (i === undefined) { - return this.getRuleContexts(Operator_with_argtypesContext); + return this.getRuleContexts(OperatorWithArgTypesContext); } - return this.getRuleContext(i, Operator_with_argtypesContext); + return this.getRuleContext(i, OperatorWithArgTypesContext); } public opt_if_exists(): Opt_if_existsContext | null { return this.getRuleContext(0, Opt_if_existsContext); @@ -70886,21 +70876,21 @@ export class RemoveoperstmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_removeoperstmt; + return PostgreSqlParser.RULE_removeOperatorStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRemoveoperstmt) { - listener.enterRemoveoperstmt(this); + if(listener.enterRemoveOperatorStmt) { + listener.enterRemoveOperatorStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRemoveoperstmt) { - listener.exitRemoveoperstmt(this); + if(listener.exitRemoveOperatorStmt) { + listener.exitRemoveOperatorStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRemoveoperstmt) { - return visitor.visitRemoveoperstmt(this); + if (visitor.visitRemoveOperatorStmt) { + return visitor.visitRemoveOperatorStmt(this); } else { return visitor.visitChildren(this); } @@ -70908,7 +70898,7 @@ export class RemoveoperstmtContext extends antlr.ParserRuleContext { } -export class Oper_argtypesContext extends antlr.ParserRuleContext { +export class OperatorArgTypesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70934,21 +70924,21 @@ export class Oper_argtypesContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.COMMA, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_oper_argtypes; + return PostgreSqlParser.RULE_operatorArgTypes; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOper_argtypes) { - listener.enterOper_argtypes(this); + if(listener.enterOperatorArgTypes) { + listener.enterOperatorArgTypes(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOper_argtypes) { - listener.exitOper_argtypes(this); + if(listener.exitOperatorArgTypes) { + listener.exitOperatorArgTypes(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOper_argtypes) { - return visitor.visitOper_argtypes(this); + if (visitor.visitOperatorArgTypes) { + return visitor.visitOperatorArgTypes(this); } else { return visitor.visitChildren(this); } @@ -70963,14 +70953,14 @@ export class Any_operatorContext extends antlr.ParserRuleContext { public all_op(): All_opContext { return this.getRuleContext(0, All_opContext)!; } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public DOT(): antlr.TerminalNode[]; public DOT(i: number): antlr.TerminalNode | null; @@ -71004,32 +70994,32 @@ export class Any_operatorContext extends antlr.ParserRuleContext { } -export class Operator_with_argtypesContext extends antlr.ParserRuleContext { +export class OperatorWithArgTypesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public any_operator(): Any_operatorContext { return this.getRuleContext(0, Any_operatorContext)!; } - public oper_argtypes(): Oper_argtypesContext { - return this.getRuleContext(0, Oper_argtypesContext)!; + public operatorArgTypes(): OperatorArgTypesContext { + return this.getRuleContext(0, OperatorArgTypesContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_operator_with_argtypes; + return PostgreSqlParser.RULE_operatorWithArgTypes; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOperator_with_argtypes) { - listener.enterOperator_with_argtypes(this); + if(listener.enterOperatorWithArgTypes) { + listener.enterOperatorWithArgTypes(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOperator_with_argtypes) { - listener.exitOperator_with_argtypes(this); + if(listener.exitOperatorWithArgTypes) { + listener.exitOperatorWithArgTypes(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOperator_with_argtypes) { - return visitor.visitOperator_with_argtypes(this); + if (visitor.visitOperatorWithArgTypes) { + return visitor.visitOperatorWithArgTypes(this); } else { return visitor.visitChildren(this); } @@ -71037,21 +71027,21 @@ export class Operator_with_argtypesContext extends antlr.ParserRuleContext { } -export class DostmtContext extends antlr.ParserRuleContext { +export class DoStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_DO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DO, 0)!; } - public sconst(): SconstContext[]; - public sconst(i: number): SconstContext | null; - public sconst(i?: number): SconstContext[] | SconstContext | null { + public stringConst(): StringConstContext[]; + public stringConst(i: number): StringConstContext | null; + public stringConst(i?: number): StringConstContext[] | StringConstContext | null { if (i === undefined) { - return this.getRuleContexts(SconstContext); + return this.getRuleContexts(StringConstContext); } - return this.getRuleContext(i, SconstContext); + return this.getRuleContext(i, StringConstContext); } public KW_LANGUAGE(): antlr.TerminalNode[]; public KW_LANGUAGE(i: number): antlr.TerminalNode | null; @@ -71062,31 +71052,31 @@ export class DostmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_LANGUAGE, i); } } - public nonreservedword_or_sconst(): Nonreservedword_or_sconstContext[]; - public nonreservedword_or_sconst(i: number): Nonreservedword_or_sconstContext | null; - public nonreservedword_or_sconst(i?: number): Nonreservedword_or_sconstContext[] | Nonreservedword_or_sconstContext | null { + public nonReservedWordOrStringConst(): NonReservedWordOrStringConstContext[]; + public nonReservedWordOrStringConst(i: number): NonReservedWordOrStringConstContext | null; + public nonReservedWordOrStringConst(i?: number): NonReservedWordOrStringConstContext[] | NonReservedWordOrStringConstContext | null { if (i === undefined) { - return this.getRuleContexts(Nonreservedword_or_sconstContext); + return this.getRuleContexts(NonReservedWordOrStringConstContext); } - return this.getRuleContext(i, Nonreservedword_or_sconstContext); + return this.getRuleContext(i, NonReservedWordOrStringConstContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_dostmt; + return PostgreSqlParser.RULE_doStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDostmt) { - listener.enterDostmt(this); + if(listener.enterDoStmt) { + listener.enterDoStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDostmt) { - listener.exitDostmt(this); + if(listener.exitDoStmt) { + listener.exitDoStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDostmt) { - return visitor.visitDostmt(this); + if (visitor.visitDoStmt) { + return visitor.visitDoStmt(this); } else { return visitor.visitChildren(this); } @@ -71094,7 +71084,7 @@ export class DostmtContext extends antlr.ParserRuleContext { } -export class CreatecaststmtContext extends antlr.ParserRuleContext { +export class CreateCastStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -71137,8 +71127,8 @@ export class CreatecaststmtContext extends antlr.ParserRuleContext { public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public function_with_argtypes(): Function_with_argtypesContext | null { - return this.getRuleContext(0, Function_with_argtypesContext); + public functionWithArgTypes(): FunctionWithArgTypesContext | null { + return this.getRuleContext(0, FunctionWithArgTypesContext); } public KW_INOUT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INOUT, 0); @@ -71150,21 +71140,21 @@ export class CreatecaststmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_IMPLICIT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createcaststmt; + return PostgreSqlParser.RULE_createCastStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatecaststmt) { - listener.enterCreatecaststmt(this); + if(listener.enterCreateCastStmt) { + listener.enterCreateCastStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatecaststmt) { - listener.exitCreatecaststmt(this); + if(listener.exitCreateCastStmt) { + listener.exitCreateCastStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatecaststmt) { - return visitor.visitCreatecaststmt(this); + if (visitor.visitCreateCastStmt) { + return visitor.visitCreateCastStmt(this); } else { return visitor.visitChildren(this); } @@ -71205,7 +71195,7 @@ export class Opt_if_existsContext extends antlr.ParserRuleContext { } -export class CreatetransformstmtContext extends antlr.ParserRuleContext { +export class CreateTransformStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -71224,8 +71214,8 @@ export class CreatetransformstmtContext extends antlr.ParserRuleContext { public KW_LANGUAGE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_LANGUAGE, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; @@ -71255,21 +71245,21 @@ export class CreatetransformstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.COMMA, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createtransformstmt; + return PostgreSqlParser.RULE_createTransformStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatetransformstmt) { - listener.enterCreatetransformstmt(this); + if(listener.enterCreateTransformStmt) { + listener.enterCreateTransformStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatetransformstmt) { - listener.exitCreatetransformstmt(this); + if(listener.exitCreateTransformStmt) { + listener.exitCreateTransformStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatetransformstmt) { - return visitor.visitCreatetransformstmt(this); + if (visitor.visitCreateTransformStmt) { + return visitor.visitCreateTransformStmt(this); } else { return visitor.visitChildren(this); } @@ -71290,8 +71280,8 @@ export class Sql_with_functionContext extends antlr.ParserRuleContext { public KW_FUNCTION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0)!; } - public function_with_argtypes(): Function_with_argtypesContext { - return this.getRuleContext(0, Function_with_argtypesContext)!; + public functionWithArgTypes(): FunctionWithArgTypesContext { + return this.getRuleContext(0, FunctionWithArgTypesContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_sql_with_function; @@ -71316,7 +71306,7 @@ export class Sql_with_functionContext extends antlr.ParserRuleContext { } -export class ReindexstmtContext extends antlr.ParserRuleContext { +export class ReindexStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -71359,8 +71349,8 @@ export class ReindexstmtContext extends antlr.ParserRuleContext { public KW_SYSTEM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SYSTEM, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_DATABASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATABASE, 0); @@ -71381,21 +71371,21 @@ export class ReindexstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_CONCURRENTLY, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_reindexstmt; + return PostgreSqlParser.RULE_reindexStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterReindexstmt) { - listener.enterReindexstmt(this); + if(listener.enterReindexStmt) { + listener.enterReindexStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitReindexstmt) { - listener.exitReindexstmt(this); + if(listener.exitReindexStmt) { + listener.exitReindexStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitReindexstmt) { - return visitor.visitReindexstmt(this); + if (visitor.visitReindexStmt) { + return visitor.visitReindexStmt(this); } else { return visitor.visitChildren(this); } @@ -71403,18 +71393,18 @@ export class ReindexstmtContext extends antlr.ParserRuleContext { } -export class AltertblspcstmtContext extends antlr.ParserRuleContext { +export class AlterTblSpcStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_ALTER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ALTER, 0)!; } - public opttablespace(): OpttablespaceContext { - return this.getRuleContext(0, OpttablespaceContext)!; + public optTableSpace(): OptTableSpaceContext { + return this.getRuleContext(0, OptTableSpaceContext)!; } - public reloptions(): ReloptionsContext { - return this.getRuleContext(0, ReloptionsContext)!; + public relOptions(): RelOptionsContext { + return this.getRuleContext(0, RelOptionsContext)!; } public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); @@ -71423,21 +71413,21 @@ export class AltertblspcstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_RESET, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_altertblspcstmt; + return PostgreSqlParser.RULE_alterTblSpcStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAltertblspcstmt) { - listener.enterAltertblspcstmt(this); + if(listener.enterAlterTblSpcStmt) { + listener.enterAlterTblSpcStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAltertblspcstmt) { - listener.exitAltertblspcstmt(this); + if(listener.exitAlterTblSpcStmt) { + listener.exitAlterTblSpcStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAltertblspcstmt) { - return visitor.visitAltertblspcstmt(this); + if (visitor.visitAlterTblSpcStmt) { + return visitor.visitAlterTblSpcStmt(this); } else { return visitor.visitChildren(this); } @@ -71445,7 +71435,7 @@ export class AltertblspcstmtContext extends antlr.ParserRuleContext { } -export class RenamestmtContext extends antlr.ParserRuleContext { +export class RenameStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -71458,26 +71448,26 @@ export class RenamestmtContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TO, 0)!; } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public KW_AGGREGATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AGGREGATE, 0); } - public aggregate_with_argtypes(): Aggregate_with_argtypesContext | null { - return this.getRuleContext(0, Aggregate_with_argtypesContext); + public aggregateWithArgTypes(): AggregateWithArgTypesContext | null { + return this.getRuleContext(0, AggregateWithArgTypesContext); } public KW_ROUTINE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROUTINE, 0); } - public routine_with_argtypes(): Routine_with_argtypesContext | null { - return this.getRuleContext(0, Routine_with_argtypesContext); + public routineWithArgTypes(): RoutineWithArgTypesContext | null { + return this.getRuleContext(0, RoutineWithArgTypesContext); } public KW_DATABASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATABASE, 0); @@ -71509,8 +71499,8 @@ export class RenamestmtContext extends antlr.ParserRuleContext { public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_with_argtypes(): Function_with_argtypesContext | null { - return this.getRuleContext(0, Function_with_argtypesContext); + public functionWithArgTypes(): FunctionWithArgTypesContext | null { + return this.getRuleContext(0, FunctionWithArgTypesContext); } public function_name_create(): Function_name_createContext | null { return this.getRuleContext(0, Function_name_createContext); @@ -71530,8 +71520,8 @@ export class RenamestmtContext extends antlr.ParserRuleContext { public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_with_argtypes(): Procedure_with_argtypesContext | null { - return this.getRuleContext(0, Procedure_with_argtypesContext); + public procedureWithArgTypes(): ProcedureWithArgTypesContext | null { + return this.getRuleContext(0, ProcedureWithArgTypesContext); } public procedure_name_create(): Procedure_name_createContext | null { return this.getRuleContext(0, Procedure_name_createContext); @@ -71629,14 +71619,14 @@ export class RenamestmtContext extends antlr.ParserRuleContext { public KW_PROCEDURAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURAL, 0); } - public rolespec(): RolespecContext[]; - public rolespec(i: number): RolespecContext | null; - public rolespec(i?: number): RolespecContext[] | RolespecContext | null { + public roleSpec(): RoleSpecContext[]; + public roleSpec(i: number): RoleSpecContext | null; + public roleSpec(i?: number): RoleSpecContext[] | RoleSpecContext | null { if (i === undefined) { - return this.getRuleContexts(RolespecContext); + return this.getRuleContexts(RoleSpecContext); } - return this.getRuleContext(i, RolespecContext); + return this.getRuleContext(i, RoleSpecContext); } public KW_USER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USER, 0); @@ -71647,8 +71637,8 @@ export class RenamestmtContext extends antlr.ParserRuleContext { public KW_GROUP(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_GROUP, 0); } - public opttablespace(): OpttablespaceContext | null { - return this.getRuleContext(0, OpttablespaceContext); + public optTableSpace(): OptTableSpaceContext | null { + return this.getRuleContext(0, OptTableSpaceContext); } public tablespace_name_create(): Tablespace_name_createContext | null { return this.getRuleContext(0, Tablespace_name_createContext); @@ -71678,21 +71668,21 @@ export class RenamestmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_drop_behaviorContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_renamestmt; + return PostgreSqlParser.RULE_renameStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRenamestmt) { - listener.enterRenamestmt(this); + if(listener.enterRenameStmt) { + listener.enterRenameStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRenamestmt) { - listener.exitRenamestmt(this); + if(listener.exitRenameStmt) { + listener.exitRenameStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRenamestmt) { - return visitor.visitRenamestmt(this); + if (visitor.visitRenameStmt) { + return visitor.visitRenameStmt(this); } else { return visitor.visitChildren(this); } @@ -71700,7 +71690,7 @@ export class RenamestmtContext extends antlr.ParserRuleContext { } -export class AlterobjectdependsstmtContext extends antlr.ParserRuleContext { +export class AlterObjectDependsStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -71722,32 +71712,32 @@ export class AlterobjectdependsstmtContext extends antlr.ParserRuleContext { public KW_EXTENSION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_EXTENSION, 0)!; } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_with_argtypes(): Function_with_argtypesContext | null { - return this.getRuleContext(0, Function_with_argtypesContext); + public functionWithArgTypes(): FunctionWithArgTypesContext | null { + return this.getRuleContext(0, FunctionWithArgTypesContext); } public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_with_argtypes(): Procedure_with_argtypesContext | null { - return this.getRuleContext(0, Procedure_with_argtypesContext); + public procedureWithArgTypes(): ProcedureWithArgTypesContext | null { + return this.getRuleContext(0, ProcedureWithArgTypesContext); } public KW_ROUTINE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROUTINE, 0); } - public routine_with_argtypes(): Routine_with_argtypesContext | null { - return this.getRuleContext(0, Routine_with_argtypesContext); + public routineWithArgTypes(): RoutineWithArgTypesContext | null { + return this.getRuleContext(0, RoutineWithArgTypesContext); } public KW_TRIGGER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TRIGGER, 0); @@ -71771,21 +71761,21 @@ export class AlterobjectdependsstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NO, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterobjectdependsstmt; + return PostgreSqlParser.RULE_alterObjectDependsStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterobjectdependsstmt) { - listener.enterAlterobjectdependsstmt(this); + if(listener.enterAlterObjectDependsStmt) { + listener.enterAlterObjectDependsStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterobjectdependsstmt) { - listener.exitAlterobjectdependsstmt(this); + if(listener.exitAlterObjectDependsStmt) { + listener.exitAlterObjectDependsStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterobjectdependsstmt) { - return visitor.visitAlterobjectdependsstmt(this); + if (visitor.visitAlterObjectDependsStmt) { + return visitor.visitAlterObjectDependsStmt(this); } else { return visitor.visitChildren(this); } @@ -71793,7 +71783,7 @@ export class AlterobjectdependsstmtContext extends antlr.ParserRuleContext { } -export class AlterobjectschemastmtContext extends antlr.ParserRuleContext { +export class AlterObjectSchemaStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -71812,26 +71802,26 @@ export class AlterobjectschemastmtContext extends antlr.ParserRuleContext { public KW_AGGREGATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AGGREGATE, 0); } - public aggregate_with_argtypes(): Aggregate_with_argtypesContext | null { - return this.getRuleContext(0, Aggregate_with_argtypesContext); + public aggregateWithArgTypes(): AggregateWithArgTypesContext | null { + return this.getRuleContext(0, AggregateWithArgTypesContext); } public KW_EXTENSION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_EXTENSION, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_with_argtypes(): Function_with_argtypesContext | null { - return this.getRuleContext(0, Function_with_argtypesContext); + public functionWithArgTypes(): FunctionWithArgTypesContext | null { + return this.getRuleContext(0, FunctionWithArgTypesContext); } public KW_OPERATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0); } - public operator_with_argtypes(): Operator_with_argtypesContext | null { - return this.getRuleContext(0, Operator_with_argtypesContext); + public operatorWithArgTypes(): OperatorWithArgTypesContext | null { + return this.getRuleContext(0, OperatorWithArgTypesContext); } public any_name(): Any_nameContext | null { return this.getRuleContext(0, Any_nameContext); @@ -71842,14 +71832,14 @@ export class AlterobjectschemastmtContext extends antlr.ParserRuleContext { public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_with_argtypes(): Procedure_with_argtypesContext | null { - return this.getRuleContext(0, Procedure_with_argtypesContext); + public procedureWithArgTypes(): ProcedureWithArgTypesContext | null { + return this.getRuleContext(0, ProcedureWithArgTypesContext); } public KW_ROUTINE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROUTINE, 0); } - public routine_with_argtypes(): Routine_with_argtypesContext | null { - return this.getRuleContext(0, Routine_with_argtypesContext); + public routineWithArgTypes(): RoutineWithArgTypesContext | null { + return this.getRuleContext(0, RoutineWithArgTypesContext); } public KW_SEQUENCE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SEQUENCE, 0); @@ -71918,21 +71908,21 @@ export class AlterobjectschemastmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_CONFIGURATION, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterobjectschemastmt; + return PostgreSqlParser.RULE_alterObjectSchemaStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterobjectschemastmt) { - listener.enterAlterobjectschemastmt(this); + if(listener.enterAlterObjectSchemaStmt) { + listener.enterAlterObjectSchemaStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterobjectschemastmt) { - listener.exitAlterobjectschemastmt(this); + if(listener.exitAlterObjectSchemaStmt) { + listener.exitAlterObjectSchemaStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterobjectschemastmt) { - return visitor.visitAlterobjectschemastmt(this); + if (visitor.visitAlterObjectSchemaStmt) { + return visitor.visitAlterObjectSchemaStmt(this); } else { return visitor.visitChildren(this); } @@ -71940,7 +71930,7 @@ export class AlterobjectschemastmtContext extends antlr.ParserRuleContext { } -export class AlteroperatorstmtContext extends antlr.ParserRuleContext { +export class AlterOperatorStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -71950,8 +71940,8 @@ export class AlteroperatorstmtContext extends antlr.ParserRuleContext { public KW_OPERATOR(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0)!; } - public operator_with_argtypes(): Operator_with_argtypesContext { - return this.getRuleContext(0, Operator_with_argtypesContext)!; + public operatorWithArgTypes(): OperatorWithArgTypesContext { + return this.getRuleContext(0, OperatorWithArgTypesContext)!; } public KW_SET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SET, 0)!; @@ -71960,21 +71950,21 @@ export class AlteroperatorstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Operator_def_listContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alteroperatorstmt; + return PostgreSqlParser.RULE_alterOperatorStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlteroperatorstmt) { - listener.enterAlteroperatorstmt(this); + if(listener.enterAlterOperatorStmt) { + listener.enterAlterOperatorStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlteroperatorstmt) { - listener.exitAlteroperatorstmt(this); + if(listener.exitAlterOperatorStmt) { + listener.exitAlterOperatorStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlteroperatorstmt) { - return visitor.visitAlteroperatorstmt(this); + if (visitor.visitAlterOperatorStmt) { + return visitor.visitAlterOperatorStmt(this); } else { return visitor.visitChildren(this); } @@ -72037,8 +72027,8 @@ export class Operator_def_elemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public collabel(): CollabelContext { - return this.getRuleContext(0, CollabelContext)!; + public colLabel(): ColLabelContext { + return this.getRuleContext(0, ColLabelContext)!; } public EQUAL(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.EQUAL, 0)!; @@ -72055,11 +72045,11 @@ export class Operator_def_elemContext extends antlr.ParserRuleContext { public qual_all_op(): Qual_all_opContext | null { return this.getRuleContext(0, Qual_all_opContext); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_operator_def_elem; @@ -72084,7 +72074,7 @@ export class Operator_def_elemContext extends antlr.ParserRuleContext { } -export class AltertypestmtContext extends antlr.ParserRuleContext { +export class AlterTypeStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -72104,21 +72094,21 @@ export class AltertypestmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Operator_def_listContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_altertypestmt; + return PostgreSqlParser.RULE_alterTypeStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAltertypestmt) { - listener.enterAltertypestmt(this); + if(listener.enterAlterTypeStmt) { + listener.enterAlterTypeStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAltertypestmt) { - listener.exitAltertypestmt(this); + if(listener.exitAlterTypeStmt) { + listener.exitAlterTypeStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAltertypestmt) { - return visitor.visitAltertypestmt(this); + if (visitor.visitAlterTypeStmt) { + return visitor.visitAlterTypeStmt(this); } else { return visitor.visitChildren(this); } @@ -72126,7 +72116,7 @@ export class AltertypestmtContext extends antlr.ParserRuleContext { } -export class AlterownerstmtContext extends antlr.ParserRuleContext { +export class AlterOwnerStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -72148,8 +72138,8 @@ export class AlterownerstmtContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TO, 0)!; } - public rolespec(): RolespecContext { - return this.getRuleContext(0, RolespecContext)!; + public roleSpec(): RoleSpecContext { + return this.getRuleContext(0, RoleSpecContext)!; } public KW_CLASS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CLASS, 0); @@ -72160,8 +72150,8 @@ export class AlterownerstmtContext extends antlr.ParserRuleContext { public KW_AGGREGATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AGGREGATE, 0); } - public aggregate_with_argtypes(): Aggregate_with_argtypesContext | null { - return this.getRuleContext(0, Aggregate_with_argtypesContext); + public aggregateWithArgTypes(): AggregateWithArgTypesContext | null { + return this.getRuleContext(0, AggregateWithArgTypesContext); } public KW_DATABASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATABASE, 0); @@ -72172,14 +72162,14 @@ export class AlterownerstmtContext extends antlr.ParserRuleContext { public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_with_argtypes(): Function_with_argtypesContext | null { - return this.getRuleContext(0, Function_with_argtypesContext); + public functionWithArgTypes(): FunctionWithArgTypesContext | null { + return this.getRuleContext(0, FunctionWithArgTypesContext); } public KW_LANGUAGE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LANGUAGE, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_LARGE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LARGE, 0); @@ -72187,23 +72177,23 @@ export class AlterownerstmtContext extends antlr.ParserRuleContext { public KW_OBJECT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OBJECT, 0); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } - public operator_with_argtypes(): Operator_with_argtypesContext | null { - return this.getRuleContext(0, Operator_with_argtypesContext); + public operatorWithArgTypes(): OperatorWithArgTypesContext | null { + return this.getRuleContext(0, OperatorWithArgTypesContext); } public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_with_argtypes(): Procedure_with_argtypesContext | null { - return this.getRuleContext(0, Procedure_with_argtypesContext); + public procedureWithArgTypes(): ProcedureWithArgTypesContext | null { + return this.getRuleContext(0, ProcedureWithArgTypesContext); } public KW_ROUTINE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROUTINE, 0); } - public routine_with_argtypes(): Routine_with_argtypesContext | null { - return this.getRuleContext(0, Routine_with_argtypesContext); + public routineWithArgTypes(): RoutineWithArgTypesContext | null { + return this.getRuleContext(0, RoutineWithArgTypesContext); } public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); @@ -72211,8 +72201,8 @@ export class AlterownerstmtContext extends antlr.ParserRuleContext { public schema_name(): Schema_nameContext | null { return this.getRuleContext(0, Schema_nameContext); } - public opttablespace(): OpttablespaceContext | null { - return this.getRuleContext(0, OpttablespaceContext); + public optTableSpace(): OptTableSpaceContext | null { + return this.getRuleContext(0, OptTableSpaceContext); } public KW_PROCEDURAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURAL, 0); @@ -72269,21 +72259,21 @@ export class AlterownerstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_TRIGGER, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterownerstmt; + return PostgreSqlParser.RULE_alterOwnerStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterownerstmt) { - listener.enterAlterownerstmt(this); + if(listener.enterAlterOwnerStmt) { + listener.enterAlterOwnerStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterownerstmt) { - listener.exitAlterownerstmt(this); + if(listener.exitAlterOwnerStmt) { + listener.exitAlterOwnerStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterownerstmt) { - return visitor.visitAlterownerstmt(this); + if (visitor.visitAlterOwnerStmt) { + return visitor.visitAlterOwnerStmt(this); } else { return visitor.visitChildren(this); } @@ -72291,7 +72281,7 @@ export class AlterownerstmtContext extends antlr.ParserRuleContext { } -export class CreatepublicationstmtContext extends antlr.ParserRuleContext { +export class CreatePublicationStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -72301,8 +72291,8 @@ export class CreatepublicationstmtContext extends antlr.ParserRuleContext { public KW_PUBLICATION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_PUBLICATION, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_FOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOR, 0); @@ -72323,21 +72313,21 @@ export class CreatepublicationstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_definitionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createpublicationstmt; + return PostgreSqlParser.RULE_createPublicationStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatepublicationstmt) { - listener.enterCreatepublicationstmt(this); + if(listener.enterCreatePublicationStmt) { + listener.enterCreatePublicationStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatepublicationstmt) { - listener.exitCreatepublicationstmt(this); + if(listener.exitCreatePublicationStmt) { + listener.exitCreatePublicationStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatepublicationstmt) { - return visitor.visitCreatepublicationstmt(this); + if (visitor.visitCreatePublicationStmt) { + return visitor.visitCreatePublicationStmt(this); } else { return visitor.visitChildren(this); } @@ -72345,7 +72335,7 @@ export class CreatepublicationstmtContext extends antlr.ParserRuleContext { } -export class AlterpublicationstmtContext extends antlr.ParserRuleContext { +export class AlterPublicationStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -72355,14 +72345,14 @@ export class AlterpublicationstmtContext extends antlr.ParserRuleContext { public KW_PUBLICATION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_PUBLICATION, 0)!; } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public publication_relation_expr(): Publication_relation_exprContext[]; public publication_relation_expr(i: number): Publication_relation_exprContext | null; @@ -72388,8 +72378,8 @@ export class AlterpublicationstmtContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public definition(): DefinitionContext | null { return this.getRuleContext(0, DefinitionContext); @@ -72407,21 +72397,21 @@ export class AlterpublicationstmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterpublicationstmt; + return PostgreSqlParser.RULE_alterPublicationStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterpublicationstmt) { - listener.enterAlterpublicationstmt(this); + if(listener.enterAlterPublicationStmt) { + listener.enterAlterPublicationStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterpublicationstmt) { - listener.exitAlterpublicationstmt(this); + if(listener.exitAlterPublicationStmt) { + listener.exitAlterPublicationStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterpublicationstmt) { - return visitor.visitAlterpublicationstmt(this); + if (visitor.visitAlterPublicationStmt) { + return visitor.visitAlterPublicationStmt(this); } else { return visitor.visitChildren(this); } @@ -72429,7 +72419,7 @@ export class AlterpublicationstmtContext extends antlr.ParserRuleContext { } -export class CreatesubscriptionstmtContext extends antlr.ParserRuleContext { +export class CreateSubscriptionStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -72439,26 +72429,26 @@ export class CreatesubscriptionstmtContext extends antlr.ParserRuleContext { public KW_SUBSCRIPTION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SUBSCRIPTION, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_CONNECTION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CONNECTION, 0)!; } - public sconst(): SconstContext { - return this.getRuleContext(0, SconstContext)!; + public stringConst(): StringConstContext { + return this.getRuleContext(0, StringConstContext)!; } public KW_PUBLICATION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_PUBLICATION, 0)!; } - public collabel(): CollabelContext[]; - public collabel(i: number): CollabelContext | null; - public collabel(i?: number): CollabelContext[] | CollabelContext | null { + public colLabel(): ColLabelContext[]; + public colLabel(i: number): ColLabelContext | null; + public colLabel(i?: number): ColLabelContext[] | ColLabelContext | null { if (i === undefined) { - return this.getRuleContexts(CollabelContext); + return this.getRuleContexts(ColLabelContext); } - return this.getRuleContext(i, CollabelContext); + return this.getRuleContext(i, ColLabelContext); } public opt_definition(): Opt_definitionContext | null { return this.getRuleContext(0, Opt_definitionContext); @@ -72473,21 +72463,21 @@ export class CreatesubscriptionstmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createsubscriptionstmt; + return PostgreSqlParser.RULE_createSubscriptionStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatesubscriptionstmt) { - listener.enterCreatesubscriptionstmt(this); + if(listener.enterCreateSubscriptionStmt) { + listener.enterCreateSubscriptionStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatesubscriptionstmt) { - listener.exitCreatesubscriptionstmt(this); + if(listener.exitCreateSubscriptionStmt) { + listener.exitCreateSubscriptionStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatesubscriptionstmt) { - return visitor.visitCreatesubscriptionstmt(this); + if (visitor.visitCreateSubscriptionStmt) { + return visitor.visitCreateSubscriptionStmt(this); } else { return visitor.visitChildren(this); } @@ -72495,7 +72485,7 @@ export class CreatesubscriptionstmtContext extends antlr.ParserRuleContext { } -export class AltersubscriptionstmtContext extends antlr.ParserRuleContext { +export class AlterSubscriptionStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -72505,8 +72495,8 @@ export class AltersubscriptionstmtContext extends antlr.ParserRuleContext { public KW_SUBSCRIPTION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SUBSCRIPTION, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); @@ -72517,8 +72507,8 @@ export class AltersubscriptionstmtContext extends antlr.ParserRuleContext { public KW_CONNECTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONNECTION, 0); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public KW_REFRESH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_REFRESH, 0); @@ -72535,14 +72525,14 @@ export class AltersubscriptionstmtContext extends antlr.ParserRuleContext { public KW_DROP(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DROP, 0); } - public collabel(): CollabelContext[]; - public collabel(i: number): CollabelContext | null; - public collabel(i?: number): CollabelContext[] | CollabelContext | null { + public colLabel(): ColLabelContext[]; + public colLabel(i: number): ColLabelContext | null; + public colLabel(i?: number): ColLabelContext[] | ColLabelContext | null { if (i === undefined) { - return this.getRuleContexts(CollabelContext); + return this.getRuleContexts(ColLabelContext); } - return this.getRuleContext(i, CollabelContext); + return this.getRuleContext(i, ColLabelContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -72565,8 +72555,8 @@ export class AltersubscriptionstmtContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public old_aggr_elem(): Old_aggr_elemContext | null { - return this.getRuleContext(0, Old_aggr_elemContext); + public old_aggregate_elem(): Old_aggregate_elemContext | null { + return this.getRuleContext(0, Old_aggregate_elemContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); @@ -72577,25 +72567,25 @@ export class AltersubscriptionstmtContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); } - public rolespec(): RolespecContext | null { - return this.getRuleContext(0, RolespecContext); + public roleSpec(): RoleSpecContext | null { + return this.getRuleContext(0, RoleSpecContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_altersubscriptionstmt; + return PostgreSqlParser.RULE_alterSubscriptionStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAltersubscriptionstmt) { - listener.enterAltersubscriptionstmt(this); + if(listener.enterAlterSubscriptionStmt) { + listener.enterAlterSubscriptionStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAltersubscriptionstmt) { - listener.exitAltersubscriptionstmt(this); + if(listener.exitAlterSubscriptionStmt) { + listener.exitAlterSubscriptionStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAltersubscriptionstmt) { - return visitor.visitAltersubscriptionstmt(this); + if (visitor.visitAlterSubscriptionStmt) { + return visitor.visitAlterSubscriptionStmt(this); } else { return visitor.visitChildren(this); } @@ -72603,7 +72593,7 @@ export class AltersubscriptionstmtContext extends antlr.ParserRuleContext { } -export class RulestmtContext extends antlr.ParserRuleContext { +export class RuleStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -72613,8 +72603,8 @@ export class RulestmtContext extends antlr.ParserRuleContext { public KW_RULE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_RULE, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; @@ -72646,14 +72636,14 @@ export class RulestmtContext extends antlr.ParserRuleContext { public KW_NOTHING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOTHING, 0); } - public ruleactionstmt(): RuleactionstmtContext[]; - public ruleactionstmt(i: number): RuleactionstmtContext | null; - public ruleactionstmt(i?: number): RuleactionstmtContext[] | RuleactionstmtContext | null { + public ruleActionStmt(): RuleActionStmtContext[]; + public ruleActionStmt(i: number): RuleActionStmtContext | null; + public ruleActionStmt(i?: number): RuleActionStmtContext[] | RuleActionStmtContext | null { if (i === undefined) { - return this.getRuleContexts(RuleactionstmtContext); + return this.getRuleContexts(RuleActionStmtContext); } - return this.getRuleContext(i, RuleactionstmtContext); + return this.getRuleContext(i, RuleActionStmtContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -72683,21 +72673,21 @@ export class RulestmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_rulestmt; + return PostgreSqlParser.RULE_ruleStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRulestmt) { - listener.enterRulestmt(this); + if(listener.enterRuleStmt) { + listener.enterRuleStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRulestmt) { - listener.exitRulestmt(this); + if(listener.exitRuleStmt) { + listener.exitRuleStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRulestmt) { - return visitor.visitRulestmt(this); + if (visitor.visitRuleStmt) { + return visitor.visitRuleStmt(this); } else { return visitor.visitChildren(this); } @@ -72705,41 +72695,41 @@ export class RulestmtContext extends antlr.ParserRuleContext { } -export class RuleactionstmtContext extends antlr.ParserRuleContext { +export class RuleActionStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public selectstmt(): SelectstmtContext | null { - return this.getRuleContext(0, SelectstmtContext); + public selectStmt(): SelectStmtContext | null { + return this.getRuleContext(0, SelectStmtContext); } - public insertstmt(): InsertstmtContext | null { - return this.getRuleContext(0, InsertstmtContext); + public insertStmt(): InsertStmtContext | null { + return this.getRuleContext(0, InsertStmtContext); } - public updatestmt(): UpdatestmtContext | null { - return this.getRuleContext(0, UpdatestmtContext); + public updateStmt(): UpdateStmtContext | null { + return this.getRuleContext(0, UpdateStmtContext); } - public deletestmt(): DeletestmtContext | null { - return this.getRuleContext(0, DeletestmtContext); + public deleteStmt(): DeleteStmtContext | null { + return this.getRuleContext(0, DeleteStmtContext); } - public notifystmt(): NotifystmtContext | null { - return this.getRuleContext(0, NotifystmtContext); + public notifyStmt(): NotifyStmtContext | null { + return this.getRuleContext(0, NotifyStmtContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_ruleactionstmt; + return PostgreSqlParser.RULE_ruleActionStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRuleactionstmt) { - listener.enterRuleactionstmt(this); + if(listener.enterRuleActionStmt) { + listener.enterRuleActionStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRuleactionstmt) { - listener.exitRuleactionstmt(this); + if(listener.exitRuleActionStmt) { + listener.exitRuleActionStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRuleactionstmt) { - return visitor.visitRuleactionstmt(this); + if (visitor.visitRuleActionStmt) { + return visitor.visitRuleActionStmt(this); } else { return visitor.visitChildren(this); } @@ -72747,35 +72737,35 @@ export class RuleactionstmtContext extends antlr.ParserRuleContext { } -export class NotifystmtContext extends antlr.ParserRuleContext { +export class NotifyStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_NOTIFY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_NOTIFY, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public notify_payload(): Notify_payloadContext | null { return this.getRuleContext(0, Notify_payloadContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_notifystmt; + return PostgreSqlParser.RULE_notifyStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterNotifystmt) { - listener.enterNotifystmt(this); + if(listener.enterNotifyStmt) { + listener.enterNotifyStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitNotifystmt) { - listener.exitNotifystmt(this); + if(listener.exitNotifyStmt) { + listener.exitNotifyStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitNotifystmt) { - return visitor.visitNotifystmt(this); + if (visitor.visitNotifyStmt) { + return visitor.visitNotifyStmt(this); } else { return visitor.visitChildren(this); } @@ -72790,8 +72780,8 @@ export class Notify_payloadContext extends antlr.ParserRuleContext { public COMMA(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.COMMA, 0)!; } - public sconst(): SconstContext { - return this.getRuleContext(0, SconstContext)!; + public stringConst(): StringConstContext { + return this.getRuleContext(0, StringConstContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_notify_payload; @@ -72816,32 +72806,32 @@ export class Notify_payloadContext extends antlr.ParserRuleContext { } -export class ListenstmtContext extends antlr.ParserRuleContext { +export class ListenStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_LISTEN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_LISTEN, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_listenstmt; + return PostgreSqlParser.RULE_listenStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterListenstmt) { - listener.enterListenstmt(this); + if(listener.enterListenStmt) { + listener.enterListenStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitListenstmt) { - listener.exitListenstmt(this); + if(listener.exitListenStmt) { + listener.exitListenStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitListenstmt) { - return visitor.visitListenstmt(this); + if (visitor.visitListenStmt) { + return visitor.visitListenStmt(this); } else { return visitor.visitChildren(this); } @@ -72849,35 +72839,35 @@ export class ListenstmtContext extends antlr.ParserRuleContext { } -export class UnlistenstmtContext extends antlr.ParserRuleContext { +export class UnListenStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_UNLISTEN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_UNLISTEN, 0)!; } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public STAR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.STAR, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_unlistenstmt; + return PostgreSqlParser.RULE_unListenStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterUnlistenstmt) { - listener.enterUnlistenstmt(this); + if(listener.enterUnListenStmt) { + listener.enterUnListenStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitUnlistenstmt) { - listener.exitUnlistenstmt(this); + if(listener.exitUnListenStmt) { + listener.exitUnListenStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitUnlistenstmt) { - return visitor.visitUnlistenstmt(this); + if (visitor.visitUnListenStmt) { + return visitor.visitUnListenStmt(this); } else { return visitor.visitChildren(this); } @@ -72885,7 +72875,7 @@ export class UnlistenstmtContext extends antlr.ParserRuleContext { } -export class TransactionstmtContext extends antlr.ParserRuleContext { +export class TransactionStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -72907,8 +72897,8 @@ export class TransactionstmtContext extends antlr.ParserRuleContext { public KW_SAVEPOINT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SAVEPOINT, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_RELEASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_RELEASE, 0); @@ -72916,8 +72906,8 @@ export class TransactionstmtContext extends antlr.ParserRuleContext { public KW_PREPARE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PREPARE, 0); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public KW_PREPARED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PREPARED, 0); @@ -72947,21 +72937,21 @@ export class TransactionstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_TO, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_transactionstmt; + return PostgreSqlParser.RULE_transactionStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTransactionstmt) { - listener.enterTransactionstmt(this); + if(listener.enterTransactionStmt) { + listener.enterTransactionStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTransactionstmt) { - listener.exitTransactionstmt(this); + if(listener.exitTransactionStmt) { + listener.exitTransactionStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTransactionstmt) { - return visitor.visitTransactionstmt(this); + if (visitor.visitTransactionStmt) { + return visitor.visitTransactionStmt(this); } else { return visitor.visitChildren(this); } @@ -73098,19 +73088,19 @@ export class Transaction_mode_listContext extends antlr.ParserRuleContext { } -export class ViewstmtContext extends antlr.ParserRuleContext { +export class ViewStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_viewstmt; + return PostgreSqlParser.RULE_viewStmt; } - public override copyFrom(ctx: ViewstmtContext): void { + public override copyFrom(ctx: ViewStmtContext): void { super.copyFrom(ctx); } } -export class CreateViewContext extends ViewstmtContext { - public constructor(ctx: ViewstmtContext) { +export class CreateViewContext extends ViewStmtContext { + public constructor(ctx: ViewStmtContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } @@ -73120,8 +73110,8 @@ export class CreateViewContext extends ViewstmtContext { public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; } - public selectstmt(): SelectstmtContext { - return this.getRuleContext(0, SelectstmtContext)!; + public selectStmt(): SelectStmtContext { + return this.getRuleContext(0, SelectStmtContext)!; } public KW_VIEW(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VIEW, 0); @@ -73141,8 +73131,8 @@ export class CreateViewContext extends ViewstmtContext { public KW_REPLACE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_REPLACE, 0); } - public opttemp(): OpttempContext | null { - return this.getRuleContext(0, OpttempContext); + public optTemp(): OptTempContext | null { + return this.getRuleContext(0, OptTempContext); } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); @@ -73156,8 +73146,8 @@ export class CreateViewContext extends ViewstmtContext { public opt_column_list_create(): Opt_column_list_createContext | null { return this.getRuleContext(0, Opt_column_list_createContext); } - public opt_reloptions(): Opt_reloptionsContext | null { - return this.getRuleContext(0, Opt_reloptionsContext); + public optRelOptions(): OptRelOptionsContext | null { + return this.getRuleContext(0, OptRelOptionsContext); } public KW_CASCADED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CASCADED, 0); @@ -73185,32 +73175,32 @@ export class CreateViewContext extends ViewstmtContext { } -export class LoadstmtContext extends antlr.ParserRuleContext { +export class LoadStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_LOAD(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_LOAD, 0)!; } - public sconst(): SconstContext { - return this.getRuleContext(0, SconstContext)!; + public stringConst(): StringConstContext { + return this.getRuleContext(0, StringConstContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_loadstmt; + return PostgreSqlParser.RULE_loadStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterLoadstmt) { - listener.enterLoadstmt(this); + if(listener.enterLoadStmt) { + listener.enterLoadStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitLoadstmt) { - listener.exitLoadstmt(this); + if(listener.exitLoadStmt) { + listener.exitLoadStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitLoadstmt) { - return visitor.visitLoadstmt(this); + if (visitor.visitLoadStmt) { + return visitor.visitLoadStmt(this); } else { return visitor.visitChildren(this); } @@ -73218,19 +73208,19 @@ export class LoadstmtContext extends antlr.ParserRuleContext { } -export class CreatedbstmtContext extends antlr.ParserRuleContext { +export class CreateDbStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createdbstmt; + return PostgreSqlParser.RULE_createDbStmt; } - public override copyFrom(ctx: CreatedbstmtContext): void { + public override copyFrom(ctx: CreateDbStmtContext): void { super.copyFrom(ctx); } } -export class CreateDatabaseContext extends CreatedbstmtContext { - public constructor(ctx: CreatedbstmtContext) { +export class CreateDatabaseContext extends CreateDbStmtContext { + public constructor(ctx: CreateDbStmtContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } @@ -73246,14 +73236,14 @@ export class CreateDatabaseContext extends CreatedbstmtContext { public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public createdb_opt_item(): Createdb_opt_itemContext[]; - public createdb_opt_item(i: number): Createdb_opt_itemContext | null; - public createdb_opt_item(i?: number): Createdb_opt_itemContext[] | Createdb_opt_itemContext | null { + public create_db_opt_item(): Create_db_opt_itemContext[]; + public create_db_opt_item(i: number): Create_db_opt_itemContext | null; + public create_db_opt_item(i?: number): Create_db_opt_itemContext[] | Create_db_opt_itemContext | null { if (i === undefined) { - return this.getRuleContexts(Createdb_opt_itemContext); + return this.getRuleContexts(Create_db_opt_itemContext); } - return this.getRuleContext(i, Createdb_opt_itemContext); + return this.getRuleContext(i, Create_db_opt_itemContext); } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterCreateDatabase) { @@ -73275,7 +73265,7 @@ export class CreateDatabaseContext extends CreatedbstmtContext { } -export class Createdb_opt_itemContext extends antlr.ParserRuleContext { +export class Create_db_opt_itemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73303,8 +73293,8 @@ export class Createdb_opt_itemContext extends antlr.ParserRuleContext { public identifier(): IdentifierContext | null { return this.getRuleContext(0, IdentifierContext); } - public signediconst(): SignediconstContext | null { - return this.getRuleContext(0, SignediconstContext); + public signedConst(): SignedConstContext | null { + return this.getRuleContext(0, SignedConstContext); } public opt_boolean_or_string(): Opt_boolean_or_stringContext | null { return this.getRuleContext(0, Opt_boolean_or_stringContext); @@ -73316,21 +73306,21 @@ export class Createdb_opt_itemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.EQUAL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createdb_opt_item; + return PostgreSqlParser.RULE_create_db_opt_item; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatedb_opt_item) { - listener.enterCreatedb_opt_item(this); + if(listener.enterCreate_db_opt_item) { + listener.enterCreate_db_opt_item(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatedb_opt_item) { - listener.exitCreatedb_opt_item(this); + if(listener.exitCreate_db_opt_item) { + listener.exitCreate_db_opt_item(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatedb_opt_item) { - return visitor.visitCreatedb_opt_item(this); + if (visitor.visitCreate_db_opt_item) { + return visitor.visitCreate_db_opt_item(this); } else { return visitor.visitChildren(this); } @@ -73338,7 +73328,7 @@ export class Createdb_opt_itemContext extends antlr.ParserRuleContext { } -export class AlterdatabasestmtContext extends antlr.ParserRuleContext { +export class AlterDatabaseStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73363,31 +73353,31 @@ export class AlterdatabasestmtContext extends antlr.ParserRuleContext { public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public createdb_opt_item(): Createdb_opt_itemContext[]; - public createdb_opt_item(i: number): Createdb_opt_itemContext | null; - public createdb_opt_item(i?: number): Createdb_opt_itemContext[] | Createdb_opt_itemContext | null { + public create_db_opt_item(): Create_db_opt_itemContext[]; + public create_db_opt_item(i: number): Create_db_opt_itemContext | null; + public create_db_opt_item(i?: number): Create_db_opt_itemContext[] | Create_db_opt_itemContext | null { if (i === undefined) { - return this.getRuleContexts(Createdb_opt_itemContext); + return this.getRuleContexts(Create_db_opt_itemContext); } - return this.getRuleContext(i, Createdb_opt_itemContext); + return this.getRuleContext(i, Create_db_opt_itemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterdatabasestmt; + return PostgreSqlParser.RULE_alterDatabaseStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterdatabasestmt) { - listener.enterAlterdatabasestmt(this); + if(listener.enterAlterDatabaseStmt) { + listener.enterAlterDatabaseStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterdatabasestmt) { - listener.exitAlterdatabasestmt(this); + if(listener.exitAlterDatabaseStmt) { + listener.exitAlterDatabaseStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterdatabasestmt) { - return visitor.visitAlterdatabasestmt(this); + if (visitor.visitAlterDatabaseStmt) { + return visitor.visitAlterDatabaseStmt(this); } else { return visitor.visitChildren(this); } @@ -73395,7 +73385,7 @@ export class AlterdatabasestmtContext extends antlr.ParserRuleContext { } -export class AlterdatabasesetstmtContext extends antlr.ParserRuleContext { +export class AlterDatabaseSetStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73408,25 +73398,25 @@ export class AlterdatabasesetstmtContext extends antlr.ParserRuleContext { public database_name(): Database_nameContext { return this.getRuleContext(0, Database_nameContext)!; } - public setresetclause(): SetresetclauseContext | null { - return this.getRuleContext(0, SetresetclauseContext); + public setOrResetClause(): SetOrResetClauseContext | null { + return this.getRuleContext(0, SetOrResetClauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterdatabasesetstmt; + return PostgreSqlParser.RULE_alterDatabaseSetStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterdatabasesetstmt) { - listener.enterAlterdatabasesetstmt(this); + if(listener.enterAlterDatabaseSetStmt) { + listener.enterAlterDatabaseSetStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterdatabasesetstmt) { - listener.exitAlterdatabasesetstmt(this); + if(listener.exitAlterDatabaseSetStmt) { + listener.exitAlterDatabaseSetStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterdatabasesetstmt) { - return visitor.visitAlterdatabasesetstmt(this); + if (visitor.visitAlterDatabaseSetStmt) { + return visitor.visitAlterDatabaseSetStmt(this); } else { return visitor.visitChildren(this); } @@ -73434,7 +73424,7 @@ export class AlterdatabasesetstmtContext extends antlr.ParserRuleContext { } -export class AltercollationstmtContext extends antlr.ParserRuleContext { +export class AlterCollationStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73454,21 +73444,21 @@ export class AltercollationstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_VERSION, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_altercollationstmt; + return PostgreSqlParser.RULE_alterCollationStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAltercollationstmt) { - listener.enterAltercollationstmt(this); + if(listener.enterAlterCollationStmt) { + listener.enterAlterCollationStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAltercollationstmt) { - listener.exitAltercollationstmt(this); + if(listener.exitAlterCollationStmt) { + listener.exitAlterCollationStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAltercollationstmt) { - return visitor.visitAltercollationstmt(this); + if (visitor.visitAlterCollationStmt) { + return visitor.visitAlterCollationStmt(this); } else { return visitor.visitChildren(this); } @@ -73476,7 +73466,7 @@ export class AltercollationstmtContext extends antlr.ParserRuleContext { } -export class AltersystemstmtContext extends antlr.ParserRuleContext { +export class AlterSystemStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73496,21 +73486,21 @@ export class AltersystemstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_RESET, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_altersystemstmt; + return PostgreSqlParser.RULE_alterSystemStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAltersystemstmt) { - listener.enterAltersystemstmt(this); + if(listener.enterAlterSystemStmt) { + listener.enterAlterSystemStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAltersystemstmt) { - listener.exitAltersystemstmt(this); + if(listener.exitAlterSystemStmt) { + listener.exitAlterSystemStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAltersystemstmt) { - return visitor.visitAltersystemstmt(this); + if (visitor.visitAlterSystemStmt) { + return visitor.visitAlterSystemStmt(this); } else { return visitor.visitChildren(this); } @@ -73518,7 +73508,7 @@ export class AltersystemstmtContext extends antlr.ParserRuleContext { } -export class CreatedomainstmtContext extends antlr.ParserRuleContext { +export class CreateDomainStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73537,31 +73527,31 @@ export class CreatedomainstmtContext extends antlr.ParserRuleContext { public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); } - public colconstraint(): ColconstraintContext[]; - public colconstraint(i: number): ColconstraintContext | null; - public colconstraint(i?: number): ColconstraintContext[] | ColconstraintContext | null { + public colConstraint(): ColConstraintContext[]; + public colConstraint(i: number): ColConstraintContext | null; + public colConstraint(i?: number): ColConstraintContext[] | ColConstraintContext | null { if (i === undefined) { - return this.getRuleContexts(ColconstraintContext); + return this.getRuleContexts(ColConstraintContext); } - return this.getRuleContext(i, ColconstraintContext); + return this.getRuleContext(i, ColConstraintContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createdomainstmt; + return PostgreSqlParser.RULE_createDomainStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreatedomainstmt) { - listener.enterCreatedomainstmt(this); + if(listener.enterCreateDomainStmt) { + listener.enterCreateDomainStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreatedomainstmt) { - listener.exitCreatedomainstmt(this); + if(listener.exitCreateDomainStmt) { + listener.exitCreateDomainStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreatedomainstmt) { - return visitor.visitCreatedomainstmt(this); + if (visitor.visitCreateDomainStmt) { + return visitor.visitCreateDomainStmt(this); } else { return visitor.visitChildren(this); } @@ -73569,7 +73559,7 @@ export class CreatedomainstmtContext extends antlr.ParserRuleContext { } -export class AlterdomainstmtContext extends antlr.ParserRuleContext { +export class AlterDomainStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73594,8 +73584,8 @@ export class AlterdomainstmtContext extends antlr.ParserRuleContext { public KW_ADD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADD, 0); } - public constraintelem(): ConstraintelemContext | null { - return this.getRuleContext(0, ConstraintelemContext); + public constraintElem(): ConstraintElemContext | null { + return this.getRuleContext(0, ConstraintElemContext); } public KW_DROP(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DROP, 0); @@ -73603,8 +73593,8 @@ export class AlterdomainstmtContext extends antlr.ParserRuleContext { public KW_CONSTRAINT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONSTRAINT, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_VALIDATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VALIDATE, 0); @@ -73619,21 +73609,21 @@ export class AlterdomainstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_drop_behaviorContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alterdomainstmt; + return PostgreSqlParser.RULE_alterDomainStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlterdomainstmt) { - listener.enterAlterdomainstmt(this); + if(listener.enterAlterDomainStmt) { + listener.enterAlterDomainStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlterdomainstmt) { - listener.exitAlterdomainstmt(this); + if(listener.exitAlterDomainStmt) { + listener.exitAlterDomainStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlterdomainstmt) { - return visitor.visitAlterdomainstmt(this); + if (visitor.visitAlterDomainStmt) { + return visitor.visitAlterDomainStmt(this); } else { return visitor.visitChildren(this); } @@ -73641,7 +73631,7 @@ export class AlterdomainstmtContext extends antlr.ParserRuleContext { } -export class AltertsdictionarystmtContext extends antlr.ParserRuleContext { +export class AlterSearchDictionaryStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73664,21 +73654,21 @@ export class AltertsdictionarystmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, DefinitionContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_altertsdictionarystmt; + return PostgreSqlParser.RULE_alterSearchDictionaryStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAltertsdictionarystmt) { - listener.enterAltertsdictionarystmt(this); + if(listener.enterAlterSearchDictionaryStmt) { + listener.enterAlterSearchDictionaryStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAltertsdictionarystmt) { - listener.exitAltertsdictionarystmt(this); + if(listener.exitAlterSearchDictionaryStmt) { + listener.exitAlterSearchDictionaryStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAltertsdictionarystmt) { - return visitor.visitAltertsdictionarystmt(this); + if (visitor.visitAlterSearchDictionaryStmt) { + return visitor.visitAlterSearchDictionaryStmt(this); } else { return visitor.visitChildren(this); } @@ -73686,7 +73676,7 @@ export class AltertsdictionarystmtContext extends antlr.ParserRuleContext { } -export class AltertsconfigurationstmtContext extends antlr.ParserRuleContext { +export class AlterSearchConfigurationStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73745,21 +73735,21 @@ export class AltertsconfigurationstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_if_existsContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_altertsconfigurationstmt; + return PostgreSqlParser.RULE_alterSearchConfigurationStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAltertsconfigurationstmt) { - listener.enterAltertsconfigurationstmt(this); + if(listener.enterAlterSearchConfigurationStmt) { + listener.enterAlterSearchConfigurationStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAltertsconfigurationstmt) { - listener.exitAltertsconfigurationstmt(this); + if(listener.exitAlterSearchConfigurationStmt) { + listener.exitAlterSearchConfigurationStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAltertsconfigurationstmt) { - return visitor.visitAltertsconfigurationstmt(this); + if (visitor.visitAlterSearchConfigurationStmt) { + return visitor.visitAlterSearchConfigurationStmt(this); } else { return visitor.visitChildren(this); } @@ -73767,7 +73757,7 @@ export class AltertsconfigurationstmtContext extends antlr.ParserRuleContext { } -export class CreateconversionstmtContext extends antlr.ParserRuleContext { +export class CreateConversionStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73789,14 +73779,14 @@ export class CreateconversionstmtContext extends antlr.ParserRuleContext { public KW_FOR(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FOR, 0)!; } - public sconst(): SconstContext[]; - public sconst(i: number): SconstContext | null; - public sconst(i?: number): SconstContext[] | SconstContext | null { + public stringConst(): StringConstContext[]; + public stringConst(i: number): StringConstContext | null; + public stringConst(i?: number): StringConstContext[] | StringConstContext | null { if (i === undefined) { - return this.getRuleContexts(SconstContext); + return this.getRuleContexts(StringConstContext); } - return this.getRuleContext(i, SconstContext); + return this.getRuleContext(i, StringConstContext); } public KW_TO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TO, 0)!; @@ -73808,21 +73798,21 @@ export class CreateconversionstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_createconversionstmt; + return PostgreSqlParser.RULE_createConversionStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreateconversionstmt) { - listener.enterCreateconversionstmt(this); + if(listener.enterCreateConversionStmt) { + listener.enterCreateConversionStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreateconversionstmt) { - listener.exitCreateconversionstmt(this); + if(listener.exitCreateConversionStmt) { + listener.exitCreateConversionStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreateconversionstmt) { - return visitor.visitCreateconversionstmt(this); + if (visitor.visitCreateConversionStmt) { + return visitor.visitCreateConversionStmt(this); } else { return visitor.visitChildren(this); } @@ -73830,7 +73820,7 @@ export class CreateconversionstmtContext extends antlr.ParserRuleContext { } -export class ClusterstmtContext extends antlr.ParserRuleContext { +export class ClusterStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73868,21 +73858,21 @@ export class ClusterstmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_clusterstmt; + return PostgreSqlParser.RULE_clusterStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterClusterstmt) { - listener.enterClusterstmt(this); + if(listener.enterClusterStmt) { + listener.enterClusterStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitClusterstmt) { - listener.exitClusterstmt(this); + if(listener.exitClusterStmt) { + listener.exitClusterStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitClusterstmt) { - return visitor.visitClusterstmt(this); + if (visitor.visitClusterStmt) { + return visitor.visitClusterStmt(this); } else { return visitor.visitChildren(this); } @@ -73890,7 +73880,7 @@ export class ClusterstmtContext extends antlr.ParserRuleContext { } -export class VacuumstmtContext extends antlr.ParserRuleContext { +export class VacuumStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73916,21 +73906,21 @@ export class VacuumstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Analyze_keywordContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_vacuumstmt; + return PostgreSqlParser.RULE_vacuumStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterVacuumstmt) { - listener.enterVacuumstmt(this); + if(listener.enterVacuumStmt) { + listener.enterVacuumStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitVacuumstmt) { - listener.exitVacuumstmt(this); + if(listener.exitVacuumStmt) { + listener.exitVacuumStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitVacuumstmt) { - return visitor.visitVacuumstmt(this); + if (visitor.visitVacuumStmt) { + return visitor.visitVacuumStmt(this); } else { return visitor.visitChildren(this); } @@ -73938,7 +73928,7 @@ export class VacuumstmtContext extends antlr.ParserRuleContext { } -export class AnalyzestmtContext extends antlr.ParserRuleContext { +export class AnalyzeStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73976,21 +73966,21 @@ export class AnalyzestmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_analyzestmt; + return PostgreSqlParser.RULE_analyzeStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAnalyzestmt) { - listener.enterAnalyzestmt(this); + if(listener.enterAnalyzeStmt) { + listener.enterAnalyzeStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAnalyzestmt) { - listener.exitAnalyzestmt(this); + if(listener.exitAnalyzeStmt) { + listener.exitAnalyzeStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAnalyzestmt) { - return visitor.visitAnalyzestmt(this); + if (visitor.visitAnalyzeStmt) { + return visitor.visitAnalyzeStmt(this); } else { return visitor.visitChildren(this); } @@ -74035,8 +74025,8 @@ export class Vac_analyze_option_elemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public nonreservedword(): NonreservedwordContext | null { - return this.getRuleContext(0, NonreservedwordContext); + public nonReservedWord(): NonReservedWordContext | null { + return this.getRuleContext(0, NonReservedWordContext); } public analyze_keyword(): Analyze_keywordContext | null { return this.getRuleContext(0, Analyze_keywordContext); @@ -74044,8 +74034,8 @@ export class Vac_analyze_option_elemContext extends antlr.ParserRuleContext { public opt_boolean_or_string(): Opt_boolean_or_stringContext | null { return this.getRuleContext(0, Opt_boolean_or_stringContext); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_vac_analyze_option_elem; @@ -74089,11 +74079,11 @@ export class Analyze_option_elemContext extends antlr.ParserRuleContext { public KW_BUFFER_USAGE_LIMIT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BUFFER_USAGE_LIMIT, 0); } - public numericonly(): NumericonlyContext | null { - return this.getRuleContext(0, NumericonlyContext); + public numericOnly(): NumericOnlyContext | null { + return this.getRuleContext(0, NumericOnlyContext); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_analyze_option_elem; @@ -74232,15 +74222,15 @@ export class Vacuum_relation_listContext extends antlr.ParserRuleContext { } -export class ExplainstmtContext extends antlr.ParserRuleContext { +export class ExplainStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_EXPLAIN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_EXPLAIN, 0)!; } - public explainablestmt(): ExplainablestmtContext { - return this.getRuleContext(0, ExplainablestmtContext)!; + public explainableStmt(): ExplainableStmtContext { + return this.getRuleContext(0, ExplainableStmtContext)!; } public explain_option_list(): Explain_option_listContext | null { return this.getRuleContext(0, Explain_option_listContext); @@ -74255,21 +74245,21 @@ export class ExplainstmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_verboseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_explainstmt; + return PostgreSqlParser.RULE_explainStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterExplainstmt) { - listener.enterExplainstmt(this); + if(listener.enterExplainStmt) { + listener.enterExplainStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitExplainstmt) { - listener.exitExplainstmt(this); + if(listener.exitExplainStmt) { + listener.exitExplainStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitExplainstmt) { - return visitor.visitExplainstmt(this); + if (visitor.visitExplainStmt) { + return visitor.visitExplainStmt(this); } else { return visitor.visitChildren(this); } @@ -74277,53 +74267,53 @@ export class ExplainstmtContext extends antlr.ParserRuleContext { } -export class ExplainablestmtContext extends antlr.ParserRuleContext { +export class ExplainableStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public selectstmt(): SelectstmtContext | null { - return this.getRuleContext(0, SelectstmtContext); + public selectStmt(): SelectStmtContext | null { + return this.getRuleContext(0, SelectStmtContext); } - public insertstmt(): InsertstmtContext | null { - return this.getRuleContext(0, InsertstmtContext); + public insertStmt(): InsertStmtContext | null { + return this.getRuleContext(0, InsertStmtContext); } - public updatestmt(): UpdatestmtContext | null { - return this.getRuleContext(0, UpdatestmtContext); + public updateStmt(): UpdateStmtContext | null { + return this.getRuleContext(0, UpdateStmtContext); } - public deletestmt(): DeletestmtContext | null { - return this.getRuleContext(0, DeletestmtContext); + public deleteStmt(): DeleteStmtContext | null { + return this.getRuleContext(0, DeleteStmtContext); } - public declarecursorstmt(): DeclarecursorstmtContext | null { - return this.getRuleContext(0, DeclarecursorstmtContext); + public declareCursorStmt(): DeclareCursorStmtContext | null { + return this.getRuleContext(0, DeclareCursorStmtContext); } - public createasstmt(): CreateasstmtContext | null { - return this.getRuleContext(0, CreateasstmtContext); + public createAsStmt(): CreateAsStmtContext | null { + return this.getRuleContext(0, CreateAsStmtContext); } - public creatematviewstmt(): CreatematviewstmtContext | null { - return this.getRuleContext(0, CreatematviewstmtContext); + public createMaterializedViewStmt(): CreateMaterializedViewStmtContext | null { + return this.getRuleContext(0, CreateMaterializedViewStmtContext); } - public refreshmatviewstmt(): RefreshmatviewstmtContext | null { - return this.getRuleContext(0, RefreshmatviewstmtContext); + public refreshMaterializedViewStmt(): RefreshMaterializedViewStmtContext | null { + return this.getRuleContext(0, RefreshMaterializedViewStmtContext); } - public executestmt(): ExecutestmtContext | null { - return this.getRuleContext(0, ExecutestmtContext); + public executeStmt(): ExecuteStmtContext | null { + return this.getRuleContext(0, ExecuteStmtContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_explainablestmt; + return PostgreSqlParser.RULE_explainableStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterExplainablestmt) { - listener.enterExplainablestmt(this); + if(listener.enterExplainableStmt) { + listener.enterExplainableStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitExplainablestmt) { - listener.exitExplainablestmt(this); + if(listener.exitExplainableStmt) { + listener.exitExplainableStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitExplainablestmt) { - return visitor.visitExplainablestmt(this); + if (visitor.visitExplainableStmt) { + return visitor.visitExplainableStmt(this); } else { return visitor.visitChildren(this); } @@ -74382,41 +74372,41 @@ export class Explain_option_listContext extends antlr.ParserRuleContext { } -export class PreparestmtContext extends antlr.ParserRuleContext { +export class PrepareStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_PREPARE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_PREPARE, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; } - public preparablestmt(): PreparablestmtContext { - return this.getRuleContext(0, PreparablestmtContext)!; + public preParableStmt(): PreParableStmtContext { + return this.getRuleContext(0, PreParableStmtContext)!; } public prep_type_clause(): Prep_type_clauseContext | null { return this.getRuleContext(0, Prep_type_clauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_preparestmt; + return PostgreSqlParser.RULE_prepareStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPreparestmt) { - listener.enterPreparestmt(this); + if(listener.enterPrepareStmt) { + listener.enterPrepareStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPreparestmt) { - listener.exitPreparestmt(this); + if(listener.exitPrepareStmt) { + listener.exitPrepareStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPreparestmt) { - return visitor.visitPreparestmt(this); + if (visitor.visitPrepareStmt) { + return visitor.visitPrepareStmt(this); } else { return visitor.visitChildren(this); } @@ -74475,41 +74465,41 @@ export class Prep_type_clauseContext extends antlr.ParserRuleContext { } -export class PreparablestmtContext extends antlr.ParserRuleContext { +export class PreParableStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public selectstmt(): SelectstmtContext | null { - return this.getRuleContext(0, SelectstmtContext); + public selectStmt(): SelectStmtContext | null { + return this.getRuleContext(0, SelectStmtContext); } - public insertstmt(): InsertstmtContext | null { - return this.getRuleContext(0, InsertstmtContext); + public insertStmt(): InsertStmtContext | null { + return this.getRuleContext(0, InsertStmtContext); } - public updatestmt(): UpdatestmtContext | null { - return this.getRuleContext(0, UpdatestmtContext); + public updateStmt(): UpdateStmtContext | null { + return this.getRuleContext(0, UpdateStmtContext); } - public deletestmt(): DeletestmtContext | null { - return this.getRuleContext(0, DeletestmtContext); + public deleteStmt(): DeleteStmtContext | null { + return this.getRuleContext(0, DeleteStmtContext); } - public mergestmt(): MergestmtContext | null { - return this.getRuleContext(0, MergestmtContext); + public mergeStmt(): MergeStmtContext | null { + return this.getRuleContext(0, MergeStmtContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_preparablestmt; + return PostgreSqlParser.RULE_preParableStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPreparablestmt) { - listener.enterPreparablestmt(this); + if(listener.enterPreParableStmt) { + listener.enterPreParableStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPreparablestmt) { - listener.exitPreparablestmt(this); + if(listener.exitPreParableStmt) { + listener.exitPreParableStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPreparablestmt) { - return visitor.visitPreparablestmt(this); + if (visitor.visitPreParableStmt) { + return visitor.visitPreParableStmt(this); } else { return visitor.visitChildren(this); } @@ -74517,15 +74507,15 @@ export class PreparablestmtContext extends antlr.ParserRuleContext { } -export class ExecutestmtContext extends antlr.ParserRuleContext { +export class ExecuteStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_EXECUTE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_EXECUTE, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public execute_param_clause(): Execute_param_clauseContext | null { return this.getRuleContext(0, Execute_param_clauseContext); @@ -74542,8 +74532,8 @@ export class ExecutestmtContext extends antlr.ParserRuleContext { public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); } - public opttemp(): OpttempContext | null { - return this.getRuleContext(0, OpttempContext); + public optTemp(): OptTempContext | null { + return this.getRuleContext(0, OptTempContext); } public opt_if_not_exists(): Opt_if_not_existsContext | null { return this.getRuleContext(0, Opt_if_not_existsContext); @@ -74552,21 +74542,21 @@ export class ExecutestmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_with_dataContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_executestmt; + return PostgreSqlParser.RULE_executeStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterExecutestmt) { - listener.enterExecutestmt(this); + if(listener.enterExecuteStmt) { + listener.enterExecuteStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitExecutestmt) { - listener.exitExecutestmt(this); + if(listener.exitExecuteStmt) { + listener.exitExecuteStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitExecutestmt) { - return visitor.visitExecutestmt(this); + if (visitor.visitExecuteStmt) { + return visitor.visitExecuteStmt(this); } else { return visitor.visitChildren(this); } @@ -74610,15 +74600,15 @@ export class Execute_param_clauseContext extends antlr.ParserRuleContext { } -export class DeallocatestmtContext extends antlr.ParserRuleContext { +export class DealLocateStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_DEALLOCATE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DEALLOCATE, 0)!; } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); @@ -74627,21 +74617,21 @@ export class DeallocatestmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_PREPARE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_deallocatestmt; + return PostgreSqlParser.RULE_dealLocateStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDeallocatestmt) { - listener.enterDeallocatestmt(this); + if(listener.enterDealLocateStmt) { + listener.enterDealLocateStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDeallocatestmt) { - listener.exitDeallocatestmt(this); + if(listener.exitDealLocateStmt) { + listener.exitDealLocateStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDeallocatestmt) { - return visitor.visitDeallocatestmt(this); + if (visitor.visitDealLocateStmt) { + return visitor.visitDealLocateStmt(this); } else { return visitor.visitChildren(this); } @@ -74649,19 +74639,19 @@ export class DeallocatestmtContext extends antlr.ParserRuleContext { } -export class InsertstmtContext extends antlr.ParserRuleContext { +export class InsertStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_insertstmt; + return PostgreSqlParser.RULE_insertStmt; } - public override copyFrom(ctx: InsertstmtContext): void { + public override copyFrom(ctx: InsertStmtContext): void { super.copyFrom(ctx); } } -export class InsertStatementContext extends InsertstmtContext { - public constructor(ctx: InsertstmtContext) { +export class InsertStatementContext extends InsertStmtContext { + public constructor(ctx: InsertStmtContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } @@ -74683,14 +74673,14 @@ export class InsertStatementContext extends InsertstmtContext { public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public KW_ON(): antlr.TerminalNode[]; public KW_ON(i: number): antlr.TerminalNode | null; @@ -74764,8 +74754,8 @@ export class Insert_restContext extends antlr.ParserRuleContext { public default_values_or_values(): Default_values_or_valuesContext | null { return this.getRuleContext(0, Default_values_or_valuesContext); } - public selectstmt(): SelectstmtContext | null { - return this.getRuleContext(0, SelectstmtContext); + public selectStmt(): SelectStmtContext | null { + return this.getRuleContext(0, SelectStmtContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -74922,7 +74912,7 @@ export class Returning_clauseContext extends antlr.ParserRuleContext { } -export class DeletestmtContext extends antlr.ParserRuleContext { +export class DeleteStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -74951,21 +74941,21 @@ export class DeletestmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Returning_clauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_deletestmt; + return PostgreSqlParser.RULE_deleteStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDeletestmt) { - listener.enterDeletestmt(this); + if(listener.enterDeleteStmt) { + listener.enterDeleteStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDeletestmt) { - listener.exitDeletestmt(this); + if(listener.exitDeleteStmt) { + listener.exitDeleteStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDeletestmt) { - return visitor.visitDeletestmt(this); + if (visitor.visitDeleteStmt) { + return visitor.visitDeleteStmt(this); } else { return visitor.visitChildren(this); } @@ -74973,7 +74963,7 @@ export class DeletestmtContext extends antlr.ParserRuleContext { } -export class LockstmtContext extends antlr.ParserRuleContext { +export class LockStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75011,21 +75001,21 @@ export class LockstmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_UPDATE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_lockstmt; + return PostgreSqlParser.RULE_lockStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterLockstmt) { - listener.enterLockstmt(this); + if(listener.enterLockStmt) { + listener.enterLockStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitLockstmt) { - listener.exitLockstmt(this); + if(listener.exitLockStmt) { + listener.exitLockStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitLockstmt) { - return visitor.visitLockstmt(this); + if (visitor.visitLockStmt) { + return visitor.visitLockStmt(this); } else { return visitor.visitChildren(this); } @@ -75033,7 +75023,7 @@ export class LockstmtContext extends antlr.ParserRuleContext { } -export class UpdatestmtContext extends antlr.ParserRuleContext { +export class UpdateStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75062,21 +75052,21 @@ export class UpdatestmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Returning_clauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_updatestmt; + return PostgreSqlParser.RULE_updateStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterUpdatestmt) { - listener.enterUpdatestmt(this); + if(listener.enterUpdateStmt) { + listener.enterUpdateStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitUpdatestmt) { - listener.exitUpdatestmt(this); + if(listener.exitUpdateStmt) { + listener.exitUpdateStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitUpdatestmt) { - return visitor.visitUpdatestmt(this); + if (visitor.visitUpdateStmt) { + return visitor.visitUpdateStmt(this); } else { return visitor.visitChildren(this); } @@ -75192,15 +75182,15 @@ export class Set_clauseContext extends antlr.ParserRuleContext { } -export class DeclarecursorstmtContext extends antlr.ParserRuleContext { +export class DeclareCursorStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_DECLARE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DECLARE, 0)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_CURSOR(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CURSOR, 0)!; @@ -75208,8 +75198,8 @@ export class DeclarecursorstmtContext extends antlr.ParserRuleContext { public KW_FOR(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FOR, 0)!; } - public selectstmt(): SelectstmtContext { - return this.getRuleContext(0, SelectstmtContext)!; + public selectStmt(): SelectStmtContext { + return this.getRuleContext(0, SelectStmtContext)!; } public KW_HOLD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_HOLD, 0); @@ -75257,21 +75247,21 @@ export class DeclarecursorstmtContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_declarecursorstmt; + return PostgreSqlParser.RULE_declareCursorStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDeclarecursorstmt) { - listener.enterDeclarecursorstmt(this); + if(listener.enterDeclareCursorStmt) { + listener.enterDeclareCursorStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDeclarecursorstmt) { - listener.exitDeclarecursorstmt(this); + if(listener.exitDeclareCursorStmt) { + listener.exitDeclareCursorStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDeclarecursorstmt) { - return visitor.visitDeclarecursorstmt(this); + if (visitor.visitDeclareCursorStmt) { + return visitor.visitDeclareCursorStmt(this); } else { return visitor.visitChildren(this); } @@ -75279,19 +75269,19 @@ export class DeclarecursorstmtContext extends antlr.ParserRuleContext { } -export class SelectstmtContext extends antlr.ParserRuleContext { +export class SelectStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_selectstmt; + return PostgreSqlParser.RULE_selectStmt; } - public override copyFrom(ctx: SelectstmtContext): void { + public override copyFrom(ctx: SelectStmtContext): void { super.copyFrom(ctx); } } -export class SelectStatementContext extends SelectstmtContext { - public constructor(ctx: SelectstmtContext) { +export class SelectStatementContext extends SelectStmtContext { + public constructor(ctx: SelectStmtContext) { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } @@ -75610,8 +75600,8 @@ export class Common_table_exprContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; @@ -75619,8 +75609,8 @@ export class Common_table_exprContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public preparablestmt(): PreparablestmtContext { - return this.getRuleContext(0, PreparablestmtContext)!; + public preParableStmt(): PreParableStmtContext { + return this.getRuleContext(0, PreParableStmtContext)!; } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -75631,11 +75621,11 @@ export class Common_table_exprContext extends antlr.ParserRuleContext { public KW_MATERIALIZED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_MATERIALIZED, 0); } - public search_cluase(): Search_cluaseContext | null { - return this.getRuleContext(0, Search_cluaseContext); + public search_clause(): Search_clauseContext | null { + return this.getRuleContext(0, Search_clauseContext); } - public cycle_cluase(): Cycle_cluaseContext | null { - return this.getRuleContext(0, Cycle_cluaseContext); + public cycle_clause(): Cycle_clauseContext | null { + return this.getRuleContext(0, Cycle_clauseContext); } public KW_NOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOT, 0); @@ -75663,7 +75653,7 @@ export class Common_table_exprContext extends antlr.ParserRuleContext { } -export class Search_cluaseContext extends antlr.ParserRuleContext { +export class Search_clauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75692,21 +75682,21 @@ export class Search_cluaseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DEPTH, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_search_cluase; + return PostgreSqlParser.RULE_search_clause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSearch_cluase) { - listener.enterSearch_cluase(this); + if(listener.enterSearch_clause) { + listener.enterSearch_clause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSearch_cluase) { - listener.exitSearch_cluase(this); + if(listener.exitSearch_clause) { + listener.exitSearch_clause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSearch_cluase) { - return visitor.visitSearch_cluase(this); + if (visitor.visitSearch_clause) { + return visitor.visitSearch_clause(this); } else { return visitor.visitChildren(this); } @@ -75714,7 +75704,7 @@ export class Search_cluaseContext extends antlr.ParserRuleContext { } -export class Cycle_cluaseContext extends antlr.ParserRuleContext { +export class Cycle_clauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75742,34 +75732,34 @@ export class Cycle_cluaseContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public KW_DEFAULT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_cycle_cluase; + return PostgreSqlParser.RULE_cycle_clause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCycle_cluase) { - listener.enterCycle_cluase(this); + if(listener.enterCycle_clause) { + listener.enterCycle_clause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCycle_cluase) { - listener.exitCycle_cluase(this); + if(listener.exitCycle_clause) { + listener.exitCycle_clause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCycle_cluase) { - return visitor.visitCycle_cluase(this); + if (visitor.visitCycle_clause) { + return visitor.visitCycle_clause(this); } else { return visitor.visitChildren(this); } @@ -75784,8 +75774,8 @@ export class Into_clauseContext extends antlr.ParserRuleContext { public KW_INTO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_INTO, 0)!; } - public opttempTableName(): OpttempTableNameContext | null { - return this.getRuleContext(0, OpttempTableNameContext); + public optTempTableName(): OptTempTableNameContext | null { + return this.getRuleContext(0, OptTempTableNameContext); } public expr_list(): Expr_listContext | null { return this.getRuleContext(0, Expr_listContext); @@ -75816,7 +75806,7 @@ export class Into_clauseContext extends antlr.ParserRuleContext { } -export class OpttempTableNameContext extends antlr.ParserRuleContext { +export class OptTempTableNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75842,21 +75832,21 @@ export class OpttempTableNameContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_UNLOGGED, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opttempTableName; + return PostgreSqlParser.RULE_optTempTableName; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpttempTableName) { - listener.enterOpttempTableName(this); + if(listener.enterOptTempTableName) { + listener.enterOptTempTableName(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpttempTableName) { - listener.exitOpttempTableName(this); + if(listener.exitOptTempTableName) { + listener.exitOptTempTableName(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpttempTableName) { - return visitor.visitOpttempTableName(this); + if (visitor.visitOptTempTableName) { + return visitor.visitOptTempTableName(this); } else { return visitor.visitChildren(this); } @@ -75910,14 +75900,14 @@ export class Sort_clauseContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_BY, 0)!; } - public sortby(): SortbyContext[]; - public sortby(i: number): SortbyContext | null; - public sortby(i?: number): SortbyContext[] | SortbyContext | null { + public sortBy(): SortByContext[]; + public sortBy(i: number): SortByContext | null; + public sortBy(i?: number): SortByContext[] | SortByContext | null { if (i === undefined) { - return this.getRuleContexts(SortbyContext); + return this.getRuleContexts(SortByContext); } - return this.getRuleContext(i, SortbyContext); + return this.getRuleContext(i, SortByContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -75951,12 +75941,12 @@ export class Sort_clauseContext extends antlr.ParserRuleContext { } -export class SortbyContext extends antlr.ParserRuleContext { +export class SortByContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_expr_noparen(): Column_expr_noparenContext { - return this.getRuleContext(0, Column_expr_noparenContext)!; + public column_expr_no_paren(): Column_expr_no_parenContext { + return this.getRuleContext(0, Column_expr_no_parenContext)!; } public KW_USING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USING, 0); @@ -75980,21 +75970,21 @@ export class SortbyContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_LAST, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_sortby; + return PostgreSqlParser.RULE_sortBy; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSortby) { - listener.enterSortby(this); + if(listener.enterSortBy) { + listener.enterSortBy(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSortby) { - listener.exitSortby(this); + if(listener.exitSortBy) { + listener.exitSortBy(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSortby) { - return visitor.visitSortby(this); + if (visitor.visitSortBy) { + return visitor.visitSortBy(this); } else { return visitor.visitChildren(this); } @@ -76312,14 +76302,14 @@ export class Group_by_itemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_expr_noparen(): Column_expr_noparenContext[]; - public column_expr_noparen(i: number): Column_expr_noparenContext | null; - public column_expr_noparen(i?: number): Column_expr_noparenContext[] | Column_expr_noparenContext | null { + public column_expr_no_paren(): Column_expr_no_parenContext[]; + public column_expr_no_paren(i: number): Column_expr_no_parenContext | null; + public column_expr_no_paren(i?: number): Column_expr_no_parenContext[] | Column_expr_no_parenContext | null { if (i === undefined) { - return this.getRuleContexts(Column_expr_noparenContext); + return this.getRuleContexts(Column_expr_no_parenContext); } - return this.getRuleContext(i, Column_expr_noparenContext); + return this.getRuleContext(i, Column_expr_no_parenContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -76681,8 +76671,8 @@ export class Table_refContext extends antlr.ParserRuleContext { public relation_expr(): Relation_exprContext | null { return this.getRuleContext(0, Relation_exprContext); } - public xmltable(): XmltableContext | null { - return this.getRuleContext(0, XmltableContext); + public xmlTable(): XmlTableContext | null { + return this.getRuleContext(0, XmlTableContext); } public func_table(): Func_tableContext | null { return this.getRuleContext(0, Func_tableContext); @@ -76693,8 +76683,8 @@ export class Table_refContext extends antlr.ParserRuleContext { public alias_clause(): Alias_clauseContext | null { return this.getRuleContext(0, Alias_clauseContext); } - public tablesample_clause(): Tablesample_clauseContext | null { - return this.getRuleContext(0, Tablesample_clauseContext); + public tableSampleClause(): TableSampleClauseContext | null { + return this.getRuleContext(0, TableSampleClauseContext); } public KW_LATERAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LATERAL, 0); @@ -76750,12 +76740,12 @@ export class Table_refContext extends antlr.ParserRuleContext { export class Alias_clauseContext extends antlr.ParserRuleContext { - public _alias?: ColidContext; + public _alias?: ColIdContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); @@ -76793,7 +76783,7 @@ export class Alias_clauseContext extends antlr.ParserRuleContext { export class Func_alias_clauseContext extends antlr.ParserRuleContext { - public _alias?: ColidContext; + public _alias?: ColIdContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -76803,8 +76793,8 @@ export class Func_alias_clauseContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public tablefuncelementlist(): TablefuncelementlistContext | null { - return this.getRuleContext(0, TablefuncelementlistContext); + public tableFuncElementList(): TableFuncElementListContext | null { + return this.getRuleContext(0, TableFuncElementListContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); @@ -76812,8 +76802,8 @@ export class Func_alias_clauseContext extends antlr.ParserRuleContext { public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_func_alias_clause; @@ -77091,8 +77081,8 @@ export class Relation_expr_opt_aliasContext extends antlr.ParserRuleContext { public relation_expr(): Relation_exprContext { return this.getRuleContext(0, Relation_exprContext)!; } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); @@ -77120,7 +77110,7 @@ export class Relation_expr_opt_aliasContext extends antlr.ParserRuleContext { } -export class Tablesample_clauseContext extends antlr.ParserRuleContext { +export class TableSampleClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -77146,21 +77136,21 @@ export class Tablesample_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_tablesample_clause; + return PostgreSqlParser.RULE_tableSampleClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTablesample_clause) { - listener.enterTablesample_clause(this); + if(listener.enterTableSampleClause) { + listener.enterTableSampleClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTablesample_clause) { - listener.exitTablesample_clause(this); + if(listener.exitTableSampleClause) { + listener.exitTableSampleClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTablesample_clause) { - return visitor.visitTablesample_clause(this); + if (visitor.visitTableSampleClause) { + return visitor.visitTableSampleClause(this); } else { return visitor.visitChildren(this); } @@ -77190,14 +77180,14 @@ export class Func_tableContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public rowsfrom_item(): Rowsfrom_itemContext[]; - public rowsfrom_item(i: number): Rowsfrom_itemContext | null; - public rowsfrom_item(i?: number): Rowsfrom_itemContext[] | Rowsfrom_itemContext | null { + public rowsFromItem(): RowsFromItemContext[]; + public rowsFromItem(i: number): RowsFromItemContext | null; + public rowsFromItem(i?: number): RowsFromItemContext[] | RowsFromItemContext | null { if (i === undefined) { - return this.getRuleContexts(Rowsfrom_itemContext); + return this.getRuleContexts(RowsFromItemContext); } - return this.getRuleContext(i, Rowsfrom_itemContext); + return this.getRuleContext(i, RowsFromItemContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); @@ -77234,7 +77224,7 @@ export class Func_tableContext extends antlr.ParserRuleContext { } -export class Rowsfrom_itemContext extends antlr.ParserRuleContext { +export class RowsFromItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -77247,28 +77237,28 @@ export class Rowsfrom_itemContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public tablefuncelementlist(): TablefuncelementlistContext | null { - return this.getRuleContext(0, TablefuncelementlistContext); + public tableFuncElementList(): TableFuncElementListContext | null { + return this.getRuleContext(0, TableFuncElementListContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_rowsfrom_item; + return PostgreSqlParser.RULE_rowsFromItem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRowsfrom_item) { - listener.enterRowsfrom_item(this); + if(listener.enterRowsFromItem) { + listener.enterRowsFromItem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRowsfrom_item) { - listener.exitRowsfrom_item(this); + if(listener.exitRowsFromItem) { + listener.exitRowsFromItem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRowsfrom_item) { - return visitor.visitRowsfrom_item(this); + if (visitor.visitRowsFromItem) { + return visitor.visitRowsFromItem(this); } else { return visitor.visitChildren(this); } @@ -77283,8 +77273,8 @@ export class Where_clauseContext extends antlr.ParserRuleContext { public KW_WHERE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_WHERE, 0)!; } - public column_expr_noparen(): Column_expr_noparenContext { - return this.getRuleContext(0, Column_expr_noparenContext)!; + public column_expr_no_paren(): Column_expr_no_parenContext { + return this.getRuleContext(0, Column_expr_no_parenContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_where_clause; @@ -77322,8 +77312,8 @@ export class Where_or_current_clauseContext extends antlr.ParserRuleContext { public KW_OF(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OF, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public expression(): ExpressionContext | null { return this.getRuleContext(0, ExpressionContext); @@ -77351,18 +77341,18 @@ export class Where_or_current_clauseContext extends antlr.ParserRuleContext { } -export class TablefuncelementlistContext extends antlr.ParserRuleContext { +export class TableFuncElementListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public tablefuncelement(): TablefuncelementContext[]; - public tablefuncelement(i: number): TablefuncelementContext | null; - public tablefuncelement(i?: number): TablefuncelementContext[] | TablefuncelementContext | null { + public tableFuncElement(): TableFuncElementContext[]; + public tableFuncElement(i: number): TableFuncElementContext | null; + public tableFuncElement(i?: number): TableFuncElementContext[] | TableFuncElementContext | null { if (i === undefined) { - return this.getRuleContexts(TablefuncelementContext); + return this.getRuleContexts(TableFuncElementContext); } - return this.getRuleContext(i, TablefuncelementContext); + return this.getRuleContext(i, TableFuncElementContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -77374,21 +77364,21 @@ export class TablefuncelementlistContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_tablefuncelementlist; + return PostgreSqlParser.RULE_tableFuncElementList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTablefuncelementlist) { - listener.enterTablefuncelementlist(this); + if(listener.enterTableFuncElementList) { + listener.enterTableFuncElementList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTablefuncelementlist) { - listener.exitTablefuncelementlist(this); + if(listener.exitTableFuncElementList) { + listener.exitTableFuncElementList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTablefuncelementlist) { - return visitor.visitTablefuncelementlist(this); + if (visitor.visitTableFuncElementList) { + return visitor.visitTableFuncElementList(this); } else { return visitor.visitChildren(this); } @@ -77396,12 +77386,12 @@ export class TablefuncelementlistContext extends antlr.ParserRuleContext { } -export class TablefuncelementContext extends antlr.ParserRuleContext { +export class TableFuncElementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public typename(): TypenameContext { return this.getRuleContext(0, TypenameContext)!; @@ -77410,21 +77400,21 @@ export class TablefuncelementContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_collate_clauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_tablefuncelement; + return PostgreSqlParser.RULE_tableFuncElement; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTablefuncelement) { - listener.enterTablefuncelement(this); + if(listener.enterTableFuncElement) { + listener.enterTableFuncElement(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTablefuncelement) { - listener.exitTablefuncelement(this); + if(listener.exitTableFuncElement) { + listener.exitTableFuncElement(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTablefuncelement) { - return visitor.visitTablefuncelement(this); + if (visitor.visitTableFuncElement) { + return visitor.visitTableFuncElement(this); } else { return visitor.visitChildren(this); } @@ -77432,7 +77422,7 @@ export class TablefuncelementContext extends antlr.ParserRuleContext { } -export class XmltableContext extends antlr.ParserRuleContext { +export class XmlTableContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -77460,20 +77450,20 @@ export class XmltableContext extends antlr.ParserRuleContext { public primaryExpression(): PrimaryExpressionContext | null { return this.getRuleContext(0, PrimaryExpressionContext); } - public xmlexists_argument(): Xmlexists_argumentContext | null { - return this.getRuleContext(0, Xmlexists_argumentContext); + public xmlExistsArgument(): XmlExistsArgumentContext | null { + return this.getRuleContext(0, XmlExistsArgumentContext); } public KW_COLUMNS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_COLUMNS, 0); } - public xmltable_column_el(): Xmltable_column_elContext[]; - public xmltable_column_el(i: number): Xmltable_column_elContext | null; - public xmltable_column_el(i?: number): Xmltable_column_elContext[] | Xmltable_column_elContext | null { + public xmlTableColumnEl(): XmlTableColumnElContext[]; + public xmlTableColumnEl(i: number): XmlTableColumnElContext | null; + public xmlTableColumnEl(i?: number): XmlTableColumnElContext[] | XmlTableColumnElContext | null { if (i === undefined) { - return this.getRuleContexts(Xmltable_column_elContext); + return this.getRuleContexts(XmlTableColumnElContext); } - return this.getRuleContext(i, Xmltable_column_elContext); + return this.getRuleContext(i, XmlTableColumnElContext); } public KW_XMLNAMESPACES(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_XMLNAMESPACES, 0); @@ -77497,21 +77487,21 @@ export class XmltableContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_xmltable; + return PostgreSqlParser.RULE_xmlTable; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterXmltable) { - listener.enterXmltable(this); + if(listener.enterXmlTable) { + listener.enterXmlTable(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitXmltable) { - listener.exitXmltable(this); + if(listener.exitXmlTable) { + listener.exitXmlTable(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitXmltable) { - return visitor.visitXmltable(this); + if (visitor.visitXmlTable) { + return visitor.visitXmlTable(this); } else { return visitor.visitChildren(this); } @@ -77519,12 +77509,12 @@ export class XmltableContext extends antlr.ParserRuleContext { } -export class Xmltable_column_elContext extends antlr.ParserRuleContext { +export class XmlTableColumnElContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public typename(): TypenameContext | null { return this.getRuleContext(0, TypenameContext); @@ -77581,21 +77571,21 @@ export class Xmltable_column_elContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_xmltable_column_el; + return PostgreSqlParser.RULE_xmlTableColumnEl; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterXmltable_column_el) { - listener.enterXmltable_column_el(this); + if(listener.enterXmlTableColumnEl) { + listener.enterXmlTableColumnEl(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitXmltable_column_el) { - listener.exitXmltable_column_el(this); + if(listener.exitXmlTableColumnEl) { + listener.exitXmlTableColumnEl(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitXmltable_column_el) { - return visitor.visitXmltable_column_el(this); + if (visitor.visitXmlTableColumnEl) { + return visitor.visitXmlTableColumnEl(this); } else { return visitor.visitChildren(this); } @@ -77613,8 +77603,8 @@ export class Xml_namespace_elContext extends antlr.ParserRuleContext { public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); } - public collabel(): CollabelContext | null { - return this.getRuleContext(0, CollabelContext); + public colLabel(): ColLabelContext | null { + return this.getRuleContext(0, ColLabelContext); } public KW_DEFAULT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); @@ -77646,8 +77636,8 @@ export class TypenameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public simpletypename(): SimpletypenameContext | null { - return this.getRuleContext(0, SimpletypenameContext); + public simpleTypeName(): SimpleTypeNameContext | null { + return this.getRuleContext(0, SimpleTypeNameContext); } public KW_ARRAY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ARRAY, 0); @@ -77717,7 +77707,7 @@ export class TypenameContext extends antlr.ParserRuleContext { } -export class SimpletypenameContext extends antlr.ParserRuleContext { +export class SimpleTypeNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -77730,8 +77720,8 @@ export class SimpletypenameContext extends antlr.ParserRuleContext { public execute_param_clause(): Execute_param_clauseContext | null { return this.getRuleContext(0, Execute_param_clauseContext); } - public consttypename(): ConsttypenameContext | null { - return this.getRuleContext(0, ConsttypenameContext); + public constTypeName(): ConstTypeNameContext | null { + return this.getRuleContext(0, ConstTypeNameContext); } public KW_INTERVAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INTERVAL, 0); @@ -77743,21 +77733,21 @@ export class SimpletypenameContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Opt_intervalContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_simpletypename; + return PostgreSqlParser.RULE_simpleTypeName; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSimpletypename) { - listener.enterSimpletypename(this); + if(listener.enterSimpleTypeName) { + listener.enterSimpleTypeName(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSimpletypename) { - listener.exitSimpletypename(this); + if(listener.exitSimpleTypeName) { + listener.exitSimpleTypeName(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSimpletypename) { - return visitor.visitSimpletypename(this); + if (visitor.visitSimpleTypeName) { + return visitor.visitSimpleTypeName(this); } else { return visitor.visitChildren(this); } @@ -77765,7 +77755,7 @@ export class SimpletypenameContext extends antlr.ParserRuleContext { } -export class ConsttypenameContext extends antlr.ParserRuleContext { +export class ConstTypeNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -77778,25 +77768,25 @@ export class ConsttypenameContext extends antlr.ParserRuleContext { public character(): CharacterContext | null { return this.getRuleContext(0, CharacterContext); } - public constdatetime(): ConstdatetimeContext | null { - return this.getRuleContext(0, ConstdatetimeContext); + public constDatetime(): ConstDatetimeContext | null { + return this.getRuleContext(0, ConstDatetimeContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_consttypename; + return PostgreSqlParser.RULE_constTypeName; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterConsttypename) { - listener.enterConsttypename(this); + if(listener.enterConstTypeName) { + listener.enterConstTypeName(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitConsttypename) { - listener.exitConsttypename(this); + if(listener.exitConstTypeName) { + listener.exitConstTypeName(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitConsttypename) { - return visitor.visitConsttypename(this); + if (visitor.visitConstTypeName) { + return visitor.visitConstTypeName(this); } else { return visitor.visitChildren(this); } @@ -77993,7 +77983,7 @@ export class CharacterContext extends antlr.ParserRuleContext { } -export class ConstdatetimeContext extends antlr.ParserRuleContext { +export class ConstDatetimeContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -78022,21 +78012,21 @@ export class ConstdatetimeContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_WITHOUT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_constdatetime; + return PostgreSqlParser.RULE_constDatetime; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterConstdatetime) { - listener.enterConstdatetime(this); + if(listener.enterConstDatetime) { + listener.enterConstDatetime(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitConstdatetime) { - listener.exitConstdatetime(this); + if(listener.exitConstDatetime) { + listener.exitConstDatetime(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitConstdatetime) { - return visitor.visitConstdatetime(this); + if (visitor.visitConstDatetime) { + return visitor.visitConstDatetime(this); } else { return visitor.visitChildren(this); } @@ -78904,8 +78894,8 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { public function_name(): Function_nameContext | null { return this.getRuleContext(0, Function_nameContext); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -78919,8 +78909,8 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { public sort_clause(): Sort_clauseContext | null { return this.getRuleContext(0, Sort_clauseContext); } - public consttypename(): ConsttypenameContext | null { - return this.getRuleContext(0, ConsttypenameContext); + public constTypeName(): ConstTypeNameContext | null { + return this.getRuleContext(0, ConstTypeNameContext); } public KW_INTERVAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INTERVAL, 0); @@ -79180,8 +79170,8 @@ export class Func_exprContext extends antlr.ParserRuleContext { public window_specification(): Window_specificationContext | null { return this.getRuleContext(0, Window_specificationContext); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public func_expr_common_subexpr(): Func_expr_common_subexprContext | null { return this.getRuleContext(0, Func_expr_common_subexprContext); @@ -79417,8 +79407,8 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { public KW_NAME(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NAME, 0); } - public collabel(): CollabelContext | null { - return this.getRuleContext(0, CollabelContext); + public colLabel(): ColLabelContext | null { + return this.getRuleContext(0, ColLabelContext); } public KW_XMLATTRIBUTES(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_XMLATTRIBUTES, 0); @@ -79429,8 +79419,8 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { public KW_XMLEXISTS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_XMLEXISTS, 0); } - public xmlexists_argument(): Xmlexists_argumentContext | null { - return this.getRuleContext(0, Xmlexists_argumentContext); + public xmlExistsArgument(): XmlExistsArgumentContext | null { + return this.getRuleContext(0, XmlExistsArgumentContext); } public KW_XMLFOREST(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_XMLFOREST, 0); @@ -79489,8 +79479,8 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { public KW_XMLSERIALIZE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_XMLSERIALIZE, 0); } - public simpletypename(): SimpletypenameContext | null { - return this.getRuleContext(0, SimpletypenameContext); + public simpleTypeName(): SimpleTypeNameContext | null { + return this.getRuleContext(0, SimpleTypeNameContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_func_expr_common_subexpr; @@ -79570,8 +79560,8 @@ export class Xml_attribute_elContext extends antlr.ParserRuleContext { public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); } - public collabel(): CollabelContext | null { - return this.getRuleContext(0, CollabelContext); + public colLabel(): ColLabelContext | null { + return this.getRuleContext(0, ColLabelContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_xml_attribute_el; @@ -79629,7 +79619,7 @@ export class Document_or_contentContext extends antlr.ParserRuleContext { } -export class Xmlexists_argumentContext extends antlr.ParserRuleContext { +export class XmlExistsArgumentContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -79649,21 +79639,21 @@ export class Xmlexists_argumentContext extends antlr.ParserRuleContext { return this.getRuleContext(i, Xml_passing_mechContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_xmlexists_argument; + return PostgreSqlParser.RULE_xmlExistsArgument; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterXmlexists_argument) { - listener.enterXmlexists_argument(this); + if(listener.enterXmlExistsArgument) { + listener.enterXmlExistsArgument(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitXmlexists_argument) { - listener.exitXmlexists_argument(this); + if(listener.exitXmlExistsArgument) { + listener.exitXmlExistsArgument(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitXmlexists_argument) { - return visitor.visitXmlexists_argument(this); + if (visitor.visitXmlExistsArgument) { + return visitor.visitXmlExistsArgument(this); } else { return visitor.visitChildren(this); } @@ -79759,8 +79749,8 @@ export class Window_definitionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; @@ -79801,8 +79791,8 @@ export class Over_clauseContext extends antlr.ParserRuleContext { public window_specification(): Window_specificationContext | null { return this.getRuleContext(0, Window_specificationContext); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_over_clause; @@ -79837,8 +79827,8 @@ export class Window_specificationContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_PARTITION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PARTITION, 0); @@ -80418,7 +80408,7 @@ export class Column_exprContext extends antlr.ParserRuleContext { } -export class Column_expr_noparenContext extends antlr.ParserRuleContext { +export class Column_expr_no_parenContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80429,21 +80419,21 @@ export class Column_expr_noparenContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Column_nameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_column_expr_noparen; + return PostgreSqlParser.RULE_column_expr_no_paren; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterColumn_expr_noparen) { - listener.enterColumn_expr_noparen(this); + if(listener.enterColumn_expr_no_paren) { + listener.enterColumn_expr_no_paren(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitColumn_expr_noparen) { - listener.exitColumn_expr_noparen(this); + if(listener.exitColumn_expr_no_paren) { + listener.exitColumn_expr_no_paren(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitColumn_expr_noparen) { - return visitor.visitColumn_expr_noparen(this); + if (visitor.visitColumn_expr_no_paren) { + return visitor.visitColumn_expr_no_paren(this); } else { return visitor.visitChildren(this); } @@ -80617,8 +80607,8 @@ export class Extract_argContext extends antlr.ParserRuleContext { public KW_SECOND(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SECOND, 0); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_extract_arg; @@ -80782,8 +80772,8 @@ export class Indirection_elContext extends antlr.ParserRuleContext { public DOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.DOT, 0); } - public collabel(): CollabelContext | null { - return this.getRuleContext(0, CollabelContext); + public colLabel(): ColLabelContext | null { + return this.getRuleContext(0, ColLabelContext); } public STAR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.STAR, 0); @@ -80962,14 +80952,14 @@ export class Target_labelContext extends Target_elContext { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } - public column_expr_noparen(): Column_expr_noparenContext { - return this.getRuleContext(0, Column_expr_noparenContext)!; + public column_expr_no_paren(): Column_expr_no_parenContext { + return this.getRuleContext(0, Column_expr_no_parenContext)!; } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); } - public collabel(): CollabelContext | null { - return this.getRuleContext(0, CollabelContext); + public colLabel(): ColLabelContext | null { + return this.getRuleContext(0, ColLabelContext); } public identifier(): IdentifierContext | null { return this.getRuleContext(0, IdentifierContext); @@ -81438,8 +81428,8 @@ export class Qualified_nameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public indirection(): IndirectionContext | null { return this.getRuleContext(0, IndirectionContext); @@ -81516,14 +81506,14 @@ export class Name_listContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext[]; - public colid(i: number): ColidContext | null; - public colid(i?: number): ColidContext[] | ColidContext | null { + public colId(): ColIdContext[]; + public colId(i: number): ColIdContext | null; + public colId(i?: number): ColIdContext[] | ColIdContext | null { if (i === undefined) { - return this.getRuleContexts(ColidContext); + return this.getRuleContexts(ColIdContext); } - return this.getRuleContext(i, ColidContext); + return this.getRuleContext(i, ColIdContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -81690,8 +81680,8 @@ export class RoutineNameCreateContext extends Routine_name_createContext { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterRoutineNameCreate) { @@ -81729,8 +81719,8 @@ export class RoutineNameContext extends Routine_nameContext { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterRoutineName) { @@ -81771,8 +81761,8 @@ export class ProcedureNameContext extends Procedure_nameContext { public type_function_name(): Type_function_nameContext | null { return this.getRuleContext(0, Type_function_nameContext); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public indirection(): IndirectionContext | null { return this.getRuleContext(0, IndirectionContext); @@ -81816,8 +81806,8 @@ export class ProcedureNameCreateContext extends Procedure_name_createContext { public type_function_name(): Type_function_nameContext | null { return this.getRuleContext(0, Type_function_nameContext); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public indirection(): IndirectionContext | null { return this.getRuleContext(0, IndirectionContext); @@ -81881,8 +81871,8 @@ export class ColumnNameContext extends Column_nameContext { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public opt_indirection(): Opt_indirectionContext { return this.getRuleContext(0, Opt_indirectionContext)!; @@ -81923,8 +81913,8 @@ export class ColumnNameCreateContext extends Column_name_createContext { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterColumnNameCreate) { @@ -81965,8 +81955,8 @@ export class FunctionNameCreateContext extends Function_name_createContext { public type_function_name(): Type_function_nameContext | null { return this.getRuleContext(0, Type_function_nameContext); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public indirection(): IndirectionContext | null { return this.getRuleContext(0, IndirectionContext); @@ -82010,8 +82000,8 @@ export class FunctionNameContext extends Function_nameContext { public type_function_name(): Type_function_nameContext | null { return this.getRuleContext(0, Type_function_nameContext); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public indirection(): IndirectionContext | null { return this.getRuleContext(0, IndirectionContext); @@ -82036,7 +82026,7 @@ export class FunctionNameContext extends Function_nameContext { } -export class SconstContext extends antlr.ParserRuleContext { +export class StringConstContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -82053,21 +82043,21 @@ export class SconstContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_UESCAPE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_sconst; + return PostgreSqlParser.RULE_stringConst; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSconst) { - listener.enterSconst(this); + if(listener.enterStringConst) { + listener.enterStringConst(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSconst) { - listener.exitSconst(this); + if(listener.exitStringConst) { + listener.exitStringConst(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSconst) { - return visitor.visitSconst(this); + if (visitor.visitStringConst) { + return visitor.visitStringConst(this); } else { return visitor.visitChildren(this); } @@ -82126,7 +82116,7 @@ export class AnysconstContext extends antlr.ParserRuleContext { } -export class SignediconstContext extends antlr.ParserRuleContext { +export class SignedConstContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -82140,21 +82130,21 @@ export class SignediconstContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.MINUS, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_signediconst; + return PostgreSqlParser.RULE_signedConst; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSignediconst) { - listener.enterSignediconst(this); + if(listener.enterSignedConst) { + listener.enterSignedConst(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSignediconst) { - listener.exitSignediconst(this); + if(listener.exitSignedConst) { + listener.exitSignedConst(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSignediconst) { - return visitor.visitSignediconst(this); + if (visitor.visitSignedConst) { + return visitor.visitSignedConst(this); } else { return visitor.visitChildren(this); } @@ -82162,12 +82152,12 @@ export class SignediconstContext extends antlr.ParserRuleContext { } -export class RolespecContext extends antlr.ParserRuleContext { +export class RoleSpecContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public nonreservedword(): NonreservedwordContext | null { - return this.getRuleContext(0, NonreservedwordContext); + public nonReservedWord(): NonReservedWordContext | null { + return this.getRuleContext(0, NonReservedWordContext); } public KW_CURRENT_USER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CURRENT_USER, 0); @@ -82182,21 +82172,21 @@ export class RolespecContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_PUBLIC, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_rolespec; + return PostgreSqlParser.RULE_roleSpec; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRolespec) { - listener.enterRolespec(this); + if(listener.enterRoleSpec) { + listener.enterRoleSpec(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRolespec) { - listener.exitRolespec(this); + if(listener.exitRoleSpec) { + listener.exitRoleSpec(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRolespec) { - return visitor.visitRolespec(this); + if (visitor.visitRoleSpec) { + return visitor.visitRoleSpec(this); } else { return visitor.visitChildren(this); } @@ -82208,14 +82198,14 @@ export class Role_listContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public rolespec(): RolespecContext[]; - public rolespec(i: number): RolespecContext | null; - public rolespec(i?: number): RolespecContext[] | RolespecContext | null { + public roleSpec(): RoleSpecContext[]; + public roleSpec(i: number): RoleSpecContext | null; + public roleSpec(i?: number): RoleSpecContext[] | RoleSpecContext | null { if (i === undefined) { - return this.getRuleContexts(RolespecContext); + return this.getRuleContexts(RoleSpecContext); } - return this.getRuleContext(i, RolespecContext); + return this.getRuleContext(i, RoleSpecContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -82249,7 +82239,7 @@ export class Role_listContext extends antlr.ParserRuleContext { } -export class ColidContext extends antlr.ParserRuleContext { +export class ColIdContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -82260,21 +82250,21 @@ export class ColidContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Col_name_keywordContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_colid; + return PostgreSqlParser.RULE_colId; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterColid) { - listener.enterColid(this); + if(listener.enterColId) { + listener.enterColId(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitColid) { - listener.exitColid(this); + if(listener.exitColId) { + listener.exitColId(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitColid) { - return visitor.visitColid(this); + if (visitor.visitColId) { + return visitor.visitColId(this); } else { return visitor.visitChildren(this); } @@ -82315,7 +82305,7 @@ export class Type_function_nameContext extends antlr.ParserRuleContext { } -export class NonreservedwordContext extends antlr.ParserRuleContext { +export class NonReservedWordContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -82329,21 +82319,21 @@ export class NonreservedwordContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Type_func_name_keywordContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_nonreservedword; + return PostgreSqlParser.RULE_nonReservedWord; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterNonreservedword) { - listener.enterNonreservedword(this); + if(listener.enterNonReservedWord) { + listener.enterNonReservedWord(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitNonreservedword) { - listener.exitNonreservedword(this); + if(listener.exitNonReservedWord) { + listener.exitNonReservedWord(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitNonreservedword) { - return visitor.visitNonreservedword(this); + if (visitor.visitNonReservedWord) { + return visitor.visitNonReservedWord(this); } else { return visitor.visitChildren(this); } @@ -82351,7 +82341,7 @@ export class NonreservedwordContext extends antlr.ParserRuleContext { } -export class CollabelContext extends antlr.ParserRuleContext { +export class ColLabelContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -82368,21 +82358,21 @@ export class CollabelContext extends antlr.ParserRuleContext { return this.getRuleContext(0, Reserved_keywordContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_collabel; + return PostgreSqlParser.RULE_colLabel; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCollabel) { - listener.enterCollabel(this); + if(listener.enterColLabel) { + listener.enterColLabel(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCollabel) { - listener.exitCollabel(this); + if(listener.exitColLabel) { + listener.exitColLabel(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCollabel) { - return visitor.visitCollabel(this); + if (visitor.visitColLabel) { + return visitor.visitColLabel(this); } else { return visitor.visitChildren(this); } @@ -82403,8 +82393,8 @@ export class IdentifierContext extends antlr.ParserRuleContext { public anysconst(): AnysconstContext | null { return this.getRuleContext(0, AnysconstContext); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public QuotedIdentifier(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.QuotedIdentifier, 0); @@ -84134,8 +84124,8 @@ export class Decl_statementContext extends antlr.ParserRuleContext { public KW_CURSOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CURSOR, 0); } - public selectstmt(): SelectstmtContext | null { - return this.getRuleContext(0, SelectstmtContext); + public selectStmt(): SelectStmtContext | null { + return this.getRuleContext(0, SelectStmtContext); } public KW_IS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_IS, 0); @@ -84143,8 +84133,8 @@ export class Decl_statementContext extends antlr.ParserRuleContext { public PARAM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.PARAM, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public KW_CONSTANT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONSTANT, 0); @@ -84575,8 +84565,8 @@ export class Getdiag_list_itemContext extends antlr.ParserRuleContext { public assign_operator(): Assign_operatorContext { return this.getRuleContext(0, Assign_operatorContext)!; } - public colid(): ColidContext { - return this.getRuleContext(0, ColidContext)!; + public colId(): ColIdContext { + return this.getRuleContext(0, ColIdContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_getdiag_list_item; @@ -84923,14 +84913,14 @@ export class For_controlContext extends antlr.ParserRuleContext { public KW_IN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_IN, 0)!; } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } - public selectstmt(): SelectstmtContext | null { - return this.getRuleContext(0, SelectstmtContext); + public selectStmt(): SelectStmtContext | null { + return this.getRuleContext(0, SelectStmtContext); } - public explainstmt(): ExplainstmtContext | null { - return this.getRuleContext(0, ExplainstmtContext); + public explainStmt(): ExplainStmtContext | null { + return this.getRuleContext(0, ExplainStmtContext); } public KW_EXECUTE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_EXECUTE, 0); @@ -85115,8 +85105,8 @@ export class Stmt_returnContext extends antlr.ParserRuleContext { public expr_list(): Expr_listContext | null { return this.getRuleContext(0, Expr_listContext); } - public selectstmt(): SelectstmtContext | null { - return this.getRuleContext(0, SelectstmtContext); + public selectStmt(): SelectStmtContext | null { + return this.getRuleContext(0, SelectStmtContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_stmt_return; @@ -85178,8 +85168,8 @@ export class Stmt_raiseContext extends antlr.ParserRuleContext { public KW_SQLSTATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SQLSTATE, 0); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public opt_raise_using_elem(): Opt_raise_using_elemContext[]; public opt_raise_using_elem(i: number): Opt_raise_using_elemContext | null; @@ -85499,11 +85489,11 @@ export class Stmt_openContext extends antlr.ParserRuleContext { public KW_FOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOR, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } - public selectstmt(): SelectstmtContext | null { - return this.getRuleContext(0, SelectstmtContext); + public selectStmt(): SelectStmtContext | null { + return this.getRuleContext(0, SelectStmtContext); } public KW_EXECUTE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_EXECUTE, 0); @@ -85577,8 +85567,8 @@ export class Opt_open_bound_list_itemContext extends antlr.ParserRuleContext { public expression(): ExpressionContext { return this.getRuleContext(0, ExpressionContext)!; } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public COLON_EQUALS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.COLON_EQUALS, 0); @@ -85751,7 +85741,7 @@ export class Stmt_moveContext extends antlr.ParserRuleContext { } -export class MergestmtContext extends antlr.ParserRuleContext { +export class MergeStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85785,8 +85775,8 @@ export class MergestmtContext extends antlr.ParserRuleContext { public STAR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.STAR, 0); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public merge_when_clause(): Merge_when_clauseContext[]; public merge_when_clause(i: number): Merge_when_clauseContext | null; @@ -85797,28 +85787,25 @@ export class MergestmtContext extends antlr.ParserRuleContext { return this.getRuleContext(i, Merge_when_clauseContext); } - public returning_clause(): Returning_clauseContext | null { - return this.getRuleContext(0, Returning_clauseContext); - } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_mergestmt; + return PostgreSqlParser.RULE_mergeStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterMergestmt) { - listener.enterMergestmt(this); + if(listener.enterMergeStmt) { + listener.enterMergeStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitMergestmt) { - listener.exitMergestmt(this); + if(listener.exitMergeStmt) { + listener.exitMergeStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitMergestmt) { - return visitor.visitMergestmt(this); + if (visitor.visitMergeStmt) { + return visitor.visitMergeStmt(this); } else { return visitor.visitChildren(this); } @@ -85833,8 +85820,8 @@ export class Data_sourceContext extends antlr.ParserRuleContext { public table_name(): Table_nameContext | null { return this.getRuleContext(0, Table_nameContext); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public select_no_parens(): Select_no_parensContext | null { return this.getRuleContext(0, Select_no_parensContext); @@ -86139,8 +86126,8 @@ export class ExprofdefaultContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public sortby(): SortbyContext | null { - return this.getRuleContext(0, SortbyContext); + public sortBy(): SortByContext | null { + return this.getRuleContext(0, SortByContext); } public KW_DEFAULT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); @@ -86334,8 +86321,8 @@ export class Cursor_variableContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public PARAM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.PARAM, 0); @@ -86448,8 +86435,8 @@ export class Proc_conditionContext extends antlr.ParserRuleContext { public KW_SQLSTATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SQLSTATE, 0); } - public sconst(): SconstContext | null { - return this.getRuleContext(0, SconstContext); + public stringConst(): StringConstContext | null { + return this.getRuleContext(0, StringConstContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_proc_condition; @@ -86478,8 +86465,8 @@ export class Any_identifierContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public colid(): ColidContext | null { - return this.getRuleContext(0, ColidContext); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } public unreserved_keyword(): Unreserved_keywordContext | null { return this.getRuleContext(0, Unreserved_keywordContext); diff --git a/src/lib/postgresql/PostgreSqlParserListener.ts b/src/lib/postgresql/PostgreSqlParserListener.ts index b814aca7b..7bad8b787 100644 --- a/src/lib/postgresql/PostgreSqlParserListener.ts +++ b/src/lib/postgresql/PostgreSqlParserListener.ts @@ -11,22 +11,22 @@ import { SQLParserBase } from '../SQLParserBase'; import { ProgramContext } from "./PostgreSqlParser.js"; import { SingleStmtContext } from "./PostgreSqlParser.js"; import { StmtContext } from "./PostgreSqlParser.js"; -import { CallstmtContext } from "./PostgreSqlParser.js"; -import { CreaterolestmtContext } from "./PostgreSqlParser.js"; -import { AlteroptroleelemContext } from "./PostgreSqlParser.js"; -import { CreateoptroleelemContext } from "./PostgreSqlParser.js"; -import { CreateuserstmtContext } from "./PostgreSqlParser.js"; -import { AlterrolestmtContext } from "./PostgreSqlParser.js"; -import { AlterrolesetstmtContext } from "./PostgreSqlParser.js"; -import { AlterroutinestmtContext } from "./PostgreSqlParser.js"; -import { Alter_routine_cluaseContext } from "./PostgreSqlParser.js"; +import { CallStmtContext } from "./PostgreSqlParser.js"; +import { CreateRoleStmtContext } from "./PostgreSqlParser.js"; +import { AlterOperatorRoleElemContext } from "./PostgreSqlParser.js"; +import { CreateOperatorRoleElemContext } from "./PostgreSqlParser.js"; +import { CreateUserStmtContext } from "./PostgreSqlParser.js"; +import { AlterRoleStmtContext } from "./PostgreSqlParser.js"; +import { AlterRoleSetStmtContext } from "./PostgreSqlParser.js"; +import { AlterRoutineStmtContext } from "./PostgreSqlParser.js"; +import { Alter_routine_clauseContext } from "./PostgreSqlParser.js"; import { Routine_actionContext } from "./PostgreSqlParser.js"; -import { CreategroupstmtContext } from "./PostgreSqlParser.js"; -import { AltergroupstmtContext } from "./PostgreSqlParser.js"; -import { CreateschemastmtContext } from "./PostgreSqlParser.js"; +import { CreateGroupStmtContext } from "./PostgreSqlParser.js"; +import { AlterGroupStmtContext } from "./PostgreSqlParser.js"; +import { CreateSchemaStmtContext } from "./PostgreSqlParser.js"; import { SchemaNameCreateContext } from "./PostgreSqlParser.js"; import { Schema_stmtContext } from "./PostgreSqlParser.js"; -import { VariablesetstmtContext } from "./PostgreSqlParser.js"; +import { VariableSetStmtContext } from "./PostgreSqlParser.js"; import { Set_restContext } from "./PostgreSqlParser.js"; import { Generic_setContext } from "./PostgreSqlParser.js"; import { Set_rest_moreContext } from "./PostgreSqlParser.js"; @@ -37,259 +37,259 @@ import { Iso_levelContext } from "./PostgreSqlParser.js"; import { Opt_boolean_or_string_columnContext } from "./PostgreSqlParser.js"; import { Opt_boolean_or_stringContext } from "./PostgreSqlParser.js"; import { Zone_valueContext } from "./PostgreSqlParser.js"; -import { Nonreservedword_or_sconstContext } from "./PostgreSqlParser.js"; -import { VariableresetstmtContext } from "./PostgreSqlParser.js"; +import { NonReservedWordOrStringConstContext } from "./PostgreSqlParser.js"; +import { VariableResetStmtContext } from "./PostgreSqlParser.js"; import { Reset_restContext } from "./PostgreSqlParser.js"; -import { SetresetclauseContext } from "./PostgreSqlParser.js"; -import { FunctionsetresetclauseContext } from "./PostgreSqlParser.js"; -import { VariableshowstmtContext } from "./PostgreSqlParser.js"; -import { ConstraintssetstmtContext } from "./PostgreSqlParser.js"; -import { CheckpointstmtContext } from "./PostgreSqlParser.js"; -import { DiscardstmtContext } from "./PostgreSqlParser.js"; -import { AltertablestmtContext } from "./PostgreSqlParser.js"; +import { SetOrResetClauseContext } from "./PostgreSqlParser.js"; +import { FunctionSetOrResetClauseContext } from "./PostgreSqlParser.js"; +import { VariableShowStmtContext } from "./PostgreSqlParser.js"; +import { ConstraintsSetStmtContext } from "./PostgreSqlParser.js"; +import { CheckPointStmtContext } from "./PostgreSqlParser.js"; +import { DiscardStmtContext } from "./PostgreSqlParser.js"; +import { AlterTableStmtContext } from "./PostgreSqlParser.js"; import { Alter_table_cmdsContext } from "./PostgreSqlParser.js"; import { Partition_bound_specContext } from "./PostgreSqlParser.js"; -import { Partition_bound_cluaseContext } from "./PostgreSqlParser.js"; +import { Partition_bound_clauseContext } from "./PostgreSqlParser.js"; import { Partition_bound_chooseContext } from "./PostgreSqlParser.js"; -import { Partition_with_cluaseContext } from "./PostgreSqlParser.js"; +import { Partition_with_clauseContext } from "./PostgreSqlParser.js"; import { Partition_cmdContext } from "./PostgreSqlParser.js"; import { Index_partition_cmdContext } from "./PostgreSqlParser.js"; import { Alter_table_cmdContext } from "./PostgreSqlParser.js"; import { Alter_column_defaultContext } from "./PostgreSqlParser.js"; import { Opt_drop_behaviorContext } from "./PostgreSqlParser.js"; import { Opt_collate_clauseContext } from "./PostgreSqlParser.js"; -import { ReloptionsContext } from "./PostgreSqlParser.js"; -import { Opt_reloptionsContext } from "./PostgreSqlParser.js"; -import { Reloption_elemContext } from "./PostgreSqlParser.js"; -import { PartitionboundspecContext } from "./PostgreSqlParser.js"; -import { AltercompositetypestmtContext } from "./PostgreSqlParser.js"; +import { RelOptionsContext } from "./PostgreSqlParser.js"; +import { OptRelOptionsContext } from "./PostgreSqlParser.js"; +import { RelOptionElemContext } from "./PostgreSqlParser.js"; +import { PartitionBoundSpecContext } from "./PostgreSqlParser.js"; +import { AlterCompositeTypeStmtContext } from "./PostgreSqlParser.js"; import { Alter_type_cmdContext } from "./PostgreSqlParser.js"; -import { CloseportalstmtContext } from "./PostgreSqlParser.js"; -import { CopystmtContext } from "./PostgreSqlParser.js"; +import { ClosePortalStmtContext } from "./PostgreSqlParser.js"; +import { CopyStmtContext } from "./PostgreSqlParser.js"; import { CopyOptionsNoparensContext } from "./PostgreSqlParser.js"; import { CopyOptionsContext } from "./PostgreSqlParser.js"; import { Copy_generic_opt_elemContext } from "./PostgreSqlParser.js"; import { ColumnCreateTableContext } from "./PostgreSqlParser.js"; -import { OpttempContext } from "./PostgreSqlParser.js"; -import { OpttypedtableelementlistContext } from "./PostgreSqlParser.js"; -import { TableelementlistContext } from "./PostgreSqlParser.js"; -import { TableelementContext } from "./PostgreSqlParser.js"; -import { TypedtableelementContext } from "./PostgreSqlParser.js"; +import { OptTempContext } from "./PostgreSqlParser.js"; +import { OptTypedTableElEmentListContext } from "./PostgreSqlParser.js"; +import { TableElementListContext } from "./PostgreSqlParser.js"; +import { TableElementContext } from "./PostgreSqlParser.js"; +import { TypedTableElementContext } from "./PostgreSqlParser.js"; import { Column_defContext } from "./PostgreSqlParser.js"; -import { ColconstraintContext } from "./PostgreSqlParser.js"; -import { ColconstraintelemContext } from "./PostgreSqlParser.js"; +import { ColConstraintContext } from "./PostgreSqlParser.js"; +import { ColConstraintElemContext } from "./PostgreSqlParser.js"; import { Generated_whenContext } from "./PostgreSqlParser.js"; -import { TablelikeoptionContext } from "./PostgreSqlParser.js"; -import { ConstraintelemContext } from "./PostgreSqlParser.js"; +import { TableLikeOptionContext } from "./PostgreSqlParser.js"; +import { ConstraintElemContext } from "./PostgreSqlParser.js"; import { Opt_column_listContext } from "./PostgreSqlParser.js"; import { Opt_column_list_createContext } from "./PostgreSqlParser.js"; import { Column_listContext } from "./PostgreSqlParser.js"; import { Opt_c_includeContext } from "./PostgreSqlParser.js"; import { Key_matchContext } from "./PostgreSqlParser.js"; -import { ExclusionconstraintelemContext } from "./PostgreSqlParser.js"; +import { ExclusionConstraintElemContext } from "./PostgreSqlParser.js"; import { Key_actionsContext } from "./PostgreSqlParser.js"; import { Key_updateContext } from "./PostgreSqlParser.js"; import { Key_deleteContext } from "./PostgreSqlParser.js"; import { Key_actionContext } from "./PostgreSqlParser.js"; -import { OptinheritContext } from "./PostgreSqlParser.js"; -import { PartitionspecContext } from "./PostgreSqlParser.js"; +import { OptInheritContext } from "./PostgreSqlParser.js"; +import { PartitionSpecContext } from "./PostgreSqlParser.js"; import { Part_elemContext } from "./PostgreSqlParser.js"; import { Table_access_method_clauseContext } from "./PostgreSqlParser.js"; -import { OptwithContext } from "./PostgreSqlParser.js"; -import { OncommitoptionContext } from "./PostgreSqlParser.js"; -import { OpttablespaceContext } from "./PostgreSqlParser.js"; -import { OptconstablespaceContext } from "./PostgreSqlParser.js"; -import { ExistingindexContext } from "./PostgreSqlParser.js"; -import { CreatestatsstmtContext } from "./PostgreSqlParser.js"; -import { AlterstatsstmtContext } from "./PostgreSqlParser.js"; +import { OptWithContext } from "./PostgreSqlParser.js"; +import { OnCommitOptionContext } from "./PostgreSqlParser.js"; +import { OptTableSpaceContext } from "./PostgreSqlParser.js"; +import { OptConstableSpaceContext } from "./PostgreSqlParser.js"; +import { ExistingIndexContext } from "./PostgreSqlParser.js"; +import { CreateStatsStmtContext } from "./PostgreSqlParser.js"; +import { AlterStatsStmtContext } from "./PostgreSqlParser.js"; import { QueryCreateTableContext } from "./PostgreSqlParser.js"; import { Create_as_targetContext } from "./PostgreSqlParser.js"; import { Opt_with_dataContext } from "./PostgreSqlParser.js"; import { CreateMaterializedViewContext } from "./PostgreSqlParser.js"; -import { RefreshmatviewstmtContext } from "./PostgreSqlParser.js"; -import { CreateseqstmtContext } from "./PostgreSqlParser.js"; -import { AlterseqstmtContext } from "./PostgreSqlParser.js"; -import { SeqoptelemContext } from "./PostgreSqlParser.js"; -import { NumericonlyContext } from "./PostgreSqlParser.js"; -import { CreateplangstmtContext } from "./PostgreSqlParser.js"; -import { CreatetablespacestmtContext } from "./PostgreSqlParser.js"; -import { CreateextensionstmtContext } from "./PostgreSqlParser.js"; -import { AlterextensionstmtContext } from "./PostgreSqlParser.js"; -import { AlterextensioncontentsstmtContext } from "./PostgreSqlParser.js"; -import { CreatefdwstmtContext } from "./PostgreSqlParser.js"; +import { RefreshMaterializedViewStmtContext } from "./PostgreSqlParser.js"; +import { CreateSeqStmtContext } from "./PostgreSqlParser.js"; +import { AlterSeqStmtContext } from "./PostgreSqlParser.js"; +import { SeqOptElemContext } from "./PostgreSqlParser.js"; +import { NumericOnlyContext } from "./PostgreSqlParser.js"; +import { CreateProceduralLangStmtContext } from "./PostgreSqlParser.js"; +import { CreateTableSpaceStmtContext } from "./PostgreSqlParser.js"; +import { CreateExtensionStmtContext } from "./PostgreSqlParser.js"; +import { AlterExtensionStmtContext } from "./PostgreSqlParser.js"; +import { AlterExtensionContentsStmtContext } from "./PostgreSqlParser.js"; +import { CreateFdwStmtContext } from "./PostgreSqlParser.js"; import { Fdw_optionContext } from "./PostgreSqlParser.js"; -import { AlterfdwstmtContext } from "./PostgreSqlParser.js"; +import { AlterFdwStmtContext } from "./PostgreSqlParser.js"; import { Create_generic_optionsContext } from "./PostgreSqlParser.js"; import { Alter_generic_optionsContext } from "./PostgreSqlParser.js"; import { Alter_generic_option_elemContext } from "./PostgreSqlParser.js"; import { Generic_option_elemContext } from "./PostgreSqlParser.js"; -import { CreateforeignserverstmtContext } from "./PostgreSqlParser.js"; +import { CreateForeignServerStmtContext } from "./PostgreSqlParser.js"; import { Foreign_server_versionContext } from "./PostgreSqlParser.js"; -import { AlterforeignserverstmtContext } from "./PostgreSqlParser.js"; +import { AlterForeignServerStmtContext } from "./PostgreSqlParser.js"; import { CreateForeignTableContext } from "./PostgreSqlParser.js"; import { CreatePartitionForeignTableContext } from "./PostgreSqlParser.js"; -import { ImportforeignschemastmtContext } from "./PostgreSqlParser.js"; -import { CreateusermappingstmtContext } from "./PostgreSqlParser.js"; -import { AlterusermappingstmtContext } from "./PostgreSqlParser.js"; -import { CreatepolicystmtContext } from "./PostgreSqlParser.js"; -import { AlterpolicystmtContext } from "./PostgreSqlParser.js"; -import { AlterprocedurestmtContext } from "./PostgreSqlParser.js"; +import { ImportForeignSchemaStmtContext } from "./PostgreSqlParser.js"; +import { CreateUserMappingStmtContext } from "./PostgreSqlParser.js"; +import { AlterUserMappingStmtContext } from "./PostgreSqlParser.js"; +import { CreatePolicyStmtContext } from "./PostgreSqlParser.js"; +import { AlterPolicyStmtContext } from "./PostgreSqlParser.js"; +import { AlterProcedureStmtContext } from "./PostgreSqlParser.js"; import { Procedure_actionContext } from "./PostgreSqlParser.js"; -import { RowsecurityoptionalexprContext } from "./PostgreSqlParser.js"; -import { RowsecurityoptionalwithcheckContext } from "./PostgreSqlParser.js"; -import { CreateamstmtContext } from "./PostgreSqlParser.js"; -import { CreatetrigstmtContext } from "./PostgreSqlParser.js"; -import { TriggeractiontimeContext } from "./PostgreSqlParser.js"; -import { TriggereventsContext } from "./PostgreSqlParser.js"; -import { TriggeroneeventContext } from "./PostgreSqlParser.js"; -import { TriggerwhenContext } from "./PostgreSqlParser.js"; +import { RowSecurityOptionalExprContext } from "./PostgreSqlParser.js"; +import { RowSecurityOptionalWithCheckContext } from "./PostgreSqlParser.js"; +import { CreateAccessMethodStmtContext } from "./PostgreSqlParser.js"; +import { CreateTrigStmtContext } from "./PostgreSqlParser.js"; +import { TriggerActionTimeContext } from "./PostgreSqlParser.js"; +import { TriggerEventsContext } from "./PostgreSqlParser.js"; +import { TriggerOneEventContext } from "./PostgreSqlParser.js"; +import { TriggerWhenContext } from "./PostgreSqlParser.js"; import { Function_or_procedureContext } from "./PostgreSqlParser.js"; -import { TriggerfuncargsContext } from "./PostgreSqlParser.js"; -import { TriggerfuncargContext } from "./PostgreSqlParser.js"; -import { ConstraintattributeElemContext } from "./PostgreSqlParser.js"; -import { CreateeventtrigstmtContext } from "./PostgreSqlParser.js"; +import { TriggerFuncArgsContext } from "./PostgreSqlParser.js"; +import { TriggerFuncArgContext } from "./PostgreSqlParser.js"; +import { ConstraintAttributeElemContext } from "./PostgreSqlParser.js"; +import { CreateEventTrigStmtContext } from "./PostgreSqlParser.js"; import { Event_trigger_when_itemContext } from "./PostgreSqlParser.js"; -import { AltereventtrigstmtContext } from "./PostgreSqlParser.js"; -import { CreateassertionstmtContext } from "./PostgreSqlParser.js"; -import { DefinestmtContext } from "./PostgreSqlParser.js"; +import { AlterEventTrigStmtContext } from "./PostgreSqlParser.js"; +import { CreateAssertionStmtContext } from "./PostgreSqlParser.js"; +import { DefineStmtContext } from "./PostgreSqlParser.js"; import { DefinitionContext } from "./PostgreSqlParser.js"; import { Def_elemContext } from "./PostgreSqlParser.js"; import { Def_argContext } from "./PostgreSqlParser.js"; -import { Old_aggr_elemContext } from "./PostgreSqlParser.js"; -import { AlterenumstmtContext } from "./PostgreSqlParser.js"; +import { Old_aggregate_elemContext } from "./PostgreSqlParser.js"; +import { AlterEnumStmtContext } from "./PostgreSqlParser.js"; import { Opt_if_not_existsContext } from "./PostgreSqlParser.js"; -import { CreateopclassstmtContext } from "./PostgreSqlParser.js"; -import { Opclass_itemContext } from "./PostgreSqlParser.js"; -import { CreateopfamilystmtContext } from "./PostgreSqlParser.js"; -import { AlteropfamilystmtContext } from "./PostgreSqlParser.js"; -import { Opclass_dropContext } from "./PostgreSqlParser.js"; -import { ReassignownedstmtContext } from "./PostgreSqlParser.js"; -import { DropstmtContext } from "./PostgreSqlParser.js"; +import { CreateOperatorClassStmtContext } from "./PostgreSqlParser.js"; +import { OpClassItemContext } from "./PostgreSqlParser.js"; +import { CreateOperatorFamilyStmtContext } from "./PostgreSqlParser.js"; +import { AlterOperatorFamilyStmtContext } from "./PostgreSqlParser.js"; +import { OpClassDropContext } from "./PostgreSqlParser.js"; +import { ReassignOwnedStmtContext } from "./PostgreSqlParser.js"; +import { DropStmtContext } from "./PostgreSqlParser.js"; import { Object_type_any_nameContext } from "./PostgreSqlParser.js"; import { Object_type_nameContext } from "./PostgreSqlParser.js"; import { Any_name_listContext } from "./PostgreSqlParser.js"; import { Any_nameContext } from "./PostgreSqlParser.js"; import { AttrsContext } from "./PostgreSqlParser.js"; -import { TruncatestmtContext } from "./PostgreSqlParser.js"; +import { TruncateStmtContext } from "./PostgreSqlParser.js"; import { Truncate_tableContext } from "./PostgreSqlParser.js"; -import { CommentstmtContext } from "./PostgreSqlParser.js"; -import { SeclabelstmtContext } from "./PostgreSqlParser.js"; -import { FetchstmtContext } from "./PostgreSqlParser.js"; +import { CommentStmtContext } from "./PostgreSqlParser.js"; +import { SecLabelStmtContext } from "./PostgreSqlParser.js"; +import { FetchStmtContext } from "./PostgreSqlParser.js"; import { Fetch_argsContext } from "./PostgreSqlParser.js"; import { From_inContext } from "./PostgreSqlParser.js"; -import { GrantstmtContext } from "./PostgreSqlParser.js"; -import { RevokestmtContext } from "./PostgreSqlParser.js"; +import { GrantStmtContext } from "./PostgreSqlParser.js"; +import { RevokeStmtContext } from "./PostgreSqlParser.js"; import { PrivilegesContext } from "./PostgreSqlParser.js"; -import { BeforeprivilegeselectContext } from "./PostgreSqlParser.js"; +import { BeforePrivilegeSelectContext } from "./PostgreSqlParser.js"; import { PrivilegeContext } from "./PostgreSqlParser.js"; import { Privilege_targetContext } from "./PostgreSqlParser.js"; import { Grantee_listContext } from "./PostgreSqlParser.js"; -import { GrantrolestmtContext } from "./PostgreSqlParser.js"; -import { RevokerolestmtContext } from "./PostgreSqlParser.js"; -import { AlterdefaultprivilegesstmtContext } from "./PostgreSqlParser.js"; +import { GrantRoleStmtContext } from "./PostgreSqlParser.js"; +import { RevokeRoleStmtContext } from "./PostgreSqlParser.js"; +import { AlterDefaultPrivilegesStmtContext } from "./PostgreSqlParser.js"; import { DefaclactionContext } from "./PostgreSqlParser.js"; import { Defacl_privilege_targetContext } from "./PostgreSqlParser.js"; -import { IndexstmtContext } from "./PostgreSqlParser.js"; +import { IndexStmtContext } from "./PostgreSqlParser.js"; import { Index_paramsContext } from "./PostgreSqlParser.js"; import { Index_elemContext } from "./PostgreSqlParser.js"; -import { CreatefunctionstmtContext } from "./PostgreSqlParser.js"; +import { CreateFunctionStmtContext } from "./PostgreSqlParser.js"; import { Opt_or_replaceContext } from "./PostgreSqlParser.js"; import { Func_argsContext } from "./PostgreSqlParser.js"; import { Func_args_listContext } from "./PostgreSqlParser.js"; -import { Routine_with_argtypes_listContext } from "./PostgreSqlParser.js"; -import { Routine_with_argtypesContext } from "./PostgreSqlParser.js"; -import { Procedure_with_argtypes_listContext } from "./PostgreSqlParser.js"; -import { Procedure_with_argtypesContext } from "./PostgreSqlParser.js"; -import { Function_with_argtypes_listContext } from "./PostgreSqlParser.js"; -import { Function_with_argtypesContext } from "./PostgreSqlParser.js"; +import { RoutineWithArgTypesListContext } from "./PostgreSqlParser.js"; +import { RoutineWithArgTypesContext } from "./PostgreSqlParser.js"; +import { ProcedureWithArgTypesListContext } from "./PostgreSqlParser.js"; +import { ProcedureWithArgTypesContext } from "./PostgreSqlParser.js"; +import { FunctionWithArgTypesListContext } from "./PostgreSqlParser.js"; +import { FunctionWithArgTypesContext } from "./PostgreSqlParser.js"; import { Func_argContext } from "./PostgreSqlParser.js"; import { Arg_classContext } from "./PostgreSqlParser.js"; import { Func_typeContext } from "./PostgreSqlParser.js"; import { Func_arg_with_defaultContext } from "./PostgreSqlParser.js"; -import { Aggr_argsContext } from "./PostgreSqlParser.js"; -import { Aggregate_with_argtypesContext } from "./PostgreSqlParser.js"; +import { Aggregate_argsContext } from "./PostgreSqlParser.js"; +import { AggregateWithArgTypesContext } from "./PostgreSqlParser.js"; import { Common_func_opt_itemContext } from "./PostgreSqlParser.js"; -import { Createfunc_opt_itemContext } from "./PostgreSqlParser.js"; +import { Create_func_opt_itemContext } from "./PostgreSqlParser.js"; import { Opt_definitionContext } from "./PostgreSqlParser.js"; import { Table_func_columnContext } from "./PostgreSqlParser.js"; -import { AlterfunctionstmtContext } from "./PostgreSqlParser.js"; -import { RemovefuncstmtContext } from "./PostgreSqlParser.js"; -import { RemoveaggrstmtContext } from "./PostgreSqlParser.js"; -import { RemoveoperstmtContext } from "./PostgreSqlParser.js"; -import { Oper_argtypesContext } from "./PostgreSqlParser.js"; +import { AlterFunctionStmtContext } from "./PostgreSqlParser.js"; +import { RemoveFuncStmtContext } from "./PostgreSqlParser.js"; +import { RemoveAggregateStmtContext } from "./PostgreSqlParser.js"; +import { RemoveOperatorStmtContext } from "./PostgreSqlParser.js"; +import { OperatorArgTypesContext } from "./PostgreSqlParser.js"; import { Any_operatorContext } from "./PostgreSqlParser.js"; -import { Operator_with_argtypesContext } from "./PostgreSqlParser.js"; -import { DostmtContext } from "./PostgreSqlParser.js"; -import { CreatecaststmtContext } from "./PostgreSqlParser.js"; +import { OperatorWithArgTypesContext } from "./PostgreSqlParser.js"; +import { DoStmtContext } from "./PostgreSqlParser.js"; +import { CreateCastStmtContext } from "./PostgreSqlParser.js"; import { Opt_if_existsContext } from "./PostgreSqlParser.js"; -import { CreatetransformstmtContext } from "./PostgreSqlParser.js"; +import { CreateTransformStmtContext } from "./PostgreSqlParser.js"; import { Sql_with_functionContext } from "./PostgreSqlParser.js"; -import { ReindexstmtContext } from "./PostgreSqlParser.js"; -import { AltertblspcstmtContext } from "./PostgreSqlParser.js"; -import { RenamestmtContext } from "./PostgreSqlParser.js"; -import { AlterobjectdependsstmtContext } from "./PostgreSqlParser.js"; -import { AlterobjectschemastmtContext } from "./PostgreSqlParser.js"; -import { AlteroperatorstmtContext } from "./PostgreSqlParser.js"; +import { ReindexStmtContext } from "./PostgreSqlParser.js"; +import { AlterTblSpcStmtContext } from "./PostgreSqlParser.js"; +import { RenameStmtContext } from "./PostgreSqlParser.js"; +import { AlterObjectDependsStmtContext } from "./PostgreSqlParser.js"; +import { AlterObjectSchemaStmtContext } from "./PostgreSqlParser.js"; +import { AlterOperatorStmtContext } from "./PostgreSqlParser.js"; import { Operator_def_listContext } from "./PostgreSqlParser.js"; import { Operator_def_elemContext } from "./PostgreSqlParser.js"; -import { AltertypestmtContext } from "./PostgreSqlParser.js"; -import { AlterownerstmtContext } from "./PostgreSqlParser.js"; -import { CreatepublicationstmtContext } from "./PostgreSqlParser.js"; -import { AlterpublicationstmtContext } from "./PostgreSqlParser.js"; -import { CreatesubscriptionstmtContext } from "./PostgreSqlParser.js"; -import { AltersubscriptionstmtContext } from "./PostgreSqlParser.js"; -import { RulestmtContext } from "./PostgreSqlParser.js"; -import { RuleactionstmtContext } from "./PostgreSqlParser.js"; -import { NotifystmtContext } from "./PostgreSqlParser.js"; +import { AlterTypeStmtContext } from "./PostgreSqlParser.js"; +import { AlterOwnerStmtContext } from "./PostgreSqlParser.js"; +import { CreatePublicationStmtContext } from "./PostgreSqlParser.js"; +import { AlterPublicationStmtContext } from "./PostgreSqlParser.js"; +import { CreateSubscriptionStmtContext } from "./PostgreSqlParser.js"; +import { AlterSubscriptionStmtContext } from "./PostgreSqlParser.js"; +import { RuleStmtContext } from "./PostgreSqlParser.js"; +import { RuleActionStmtContext } from "./PostgreSqlParser.js"; +import { NotifyStmtContext } from "./PostgreSqlParser.js"; import { Notify_payloadContext } from "./PostgreSqlParser.js"; -import { ListenstmtContext } from "./PostgreSqlParser.js"; -import { UnlistenstmtContext } from "./PostgreSqlParser.js"; -import { TransactionstmtContext } from "./PostgreSqlParser.js"; +import { ListenStmtContext } from "./PostgreSqlParser.js"; +import { UnListenStmtContext } from "./PostgreSqlParser.js"; +import { TransactionStmtContext } from "./PostgreSqlParser.js"; import { Opt_transactionContext } from "./PostgreSqlParser.js"; import { Transaction_mode_itemContext } from "./PostgreSqlParser.js"; import { Transaction_mode_listContext } from "./PostgreSqlParser.js"; import { CreateViewContext } from "./PostgreSqlParser.js"; -import { LoadstmtContext } from "./PostgreSqlParser.js"; +import { LoadStmtContext } from "./PostgreSqlParser.js"; import { CreateDatabaseContext } from "./PostgreSqlParser.js"; -import { Createdb_opt_itemContext } from "./PostgreSqlParser.js"; -import { AlterdatabasestmtContext } from "./PostgreSqlParser.js"; -import { AlterdatabasesetstmtContext } from "./PostgreSqlParser.js"; -import { AltercollationstmtContext } from "./PostgreSqlParser.js"; -import { AltersystemstmtContext } from "./PostgreSqlParser.js"; -import { CreatedomainstmtContext } from "./PostgreSqlParser.js"; -import { AlterdomainstmtContext } from "./PostgreSqlParser.js"; -import { AltertsdictionarystmtContext } from "./PostgreSqlParser.js"; -import { AltertsconfigurationstmtContext } from "./PostgreSqlParser.js"; -import { CreateconversionstmtContext } from "./PostgreSqlParser.js"; -import { ClusterstmtContext } from "./PostgreSqlParser.js"; -import { VacuumstmtContext } from "./PostgreSqlParser.js"; -import { AnalyzestmtContext } from "./PostgreSqlParser.js"; +import { Create_db_opt_itemContext } from "./PostgreSqlParser.js"; +import { AlterDatabaseStmtContext } from "./PostgreSqlParser.js"; +import { AlterDatabaseSetStmtContext } from "./PostgreSqlParser.js"; +import { AlterCollationStmtContext } from "./PostgreSqlParser.js"; +import { AlterSystemStmtContext } from "./PostgreSqlParser.js"; +import { CreateDomainStmtContext } from "./PostgreSqlParser.js"; +import { AlterDomainStmtContext } from "./PostgreSqlParser.js"; +import { AlterSearchDictionaryStmtContext } from "./PostgreSqlParser.js"; +import { AlterSearchConfigurationStmtContext } from "./PostgreSqlParser.js"; +import { CreateConversionStmtContext } from "./PostgreSqlParser.js"; +import { ClusterStmtContext } from "./PostgreSqlParser.js"; +import { VacuumStmtContext } from "./PostgreSqlParser.js"; +import { AnalyzeStmtContext } from "./PostgreSqlParser.js"; import { Analyze_keywordContext } from "./PostgreSqlParser.js"; import { Vac_analyze_option_elemContext } from "./PostgreSqlParser.js"; import { Analyze_option_elemContext } from "./PostgreSqlParser.js"; import { Opt_verboseContext } from "./PostgreSqlParser.js"; import { Vacuum_relationContext } from "./PostgreSqlParser.js"; import { Vacuum_relation_listContext } from "./PostgreSqlParser.js"; -import { ExplainstmtContext } from "./PostgreSqlParser.js"; -import { ExplainablestmtContext } from "./PostgreSqlParser.js"; +import { ExplainStmtContext } from "./PostgreSqlParser.js"; +import { ExplainableStmtContext } from "./PostgreSqlParser.js"; import { Explain_option_listContext } from "./PostgreSqlParser.js"; -import { PreparestmtContext } from "./PostgreSqlParser.js"; +import { PrepareStmtContext } from "./PostgreSqlParser.js"; import { Prep_type_clauseContext } from "./PostgreSqlParser.js"; -import { PreparablestmtContext } from "./PostgreSqlParser.js"; -import { ExecutestmtContext } from "./PostgreSqlParser.js"; +import { PreParableStmtContext } from "./PostgreSqlParser.js"; +import { ExecuteStmtContext } from "./PostgreSqlParser.js"; import { Execute_param_clauseContext } from "./PostgreSqlParser.js"; -import { DeallocatestmtContext } from "./PostgreSqlParser.js"; +import { DealLocateStmtContext } from "./PostgreSqlParser.js"; import { InsertStatementContext } from "./PostgreSqlParser.js"; import { Insert_restContext } from "./PostgreSqlParser.js"; import { Insert_column_listContext } from "./PostgreSqlParser.js"; import { Insert_column_itemContext } from "./PostgreSqlParser.js"; import { Returning_clauseContext } from "./PostgreSqlParser.js"; -import { DeletestmtContext } from "./PostgreSqlParser.js"; -import { LockstmtContext } from "./PostgreSqlParser.js"; -import { UpdatestmtContext } from "./PostgreSqlParser.js"; +import { DeleteStmtContext } from "./PostgreSqlParser.js"; +import { LockStmtContext } from "./PostgreSqlParser.js"; +import { UpdateStmtContext } from "./PostgreSqlParser.js"; import { Set_clause_listContext } from "./PostgreSqlParser.js"; import { Set_clauseContext } from "./PostgreSqlParser.js"; -import { DeclarecursorstmtContext } from "./PostgreSqlParser.js"; +import { DeclareCursorStmtContext } from "./PostgreSqlParser.js"; import { SelectStatementContext } from "./PostgreSqlParser.js"; import { Select_with_parensContext } from "./PostgreSqlParser.js"; import { Select_no_parensContext } from "./PostgreSqlParser.js"; @@ -298,13 +298,13 @@ import { Simple_selectContext } from "./PostgreSqlParser.js"; import { Set_operator_with_all_or_distinctContext } from "./PostgreSqlParser.js"; import { With_clauseContext } from "./PostgreSqlParser.js"; import { Common_table_exprContext } from "./PostgreSqlParser.js"; -import { Search_cluaseContext } from "./PostgreSqlParser.js"; -import { Cycle_cluaseContext } from "./PostgreSqlParser.js"; +import { Search_clauseContext } from "./PostgreSqlParser.js"; +import { Cycle_clauseContext } from "./PostgreSqlParser.js"; import { Into_clauseContext } from "./PostgreSqlParser.js"; -import { OpttempTableNameContext } from "./PostgreSqlParser.js"; +import { OptTempTableNameContext } from "./PostgreSqlParser.js"; import { Distinct_clauseContext } from "./PostgreSqlParser.js"; import { Sort_clauseContext } from "./PostgreSqlParser.js"; -import { SortbyContext } from "./PostgreSqlParser.js"; +import { SortByContext } from "./PostgreSqlParser.js"; import { Select_limitContext } from "./PostgreSqlParser.js"; import { Limit_clauseContext } from "./PostgreSqlParser.js"; import { Fetch_clauseContext } from "./PostgreSqlParser.js"; @@ -326,24 +326,24 @@ import { Relation_exprContext } from "./PostgreSqlParser.js"; import { Publication_relation_exprContext } from "./PostgreSqlParser.js"; import { Relation_expr_listContext } from "./PostgreSqlParser.js"; import { Relation_expr_opt_aliasContext } from "./PostgreSqlParser.js"; -import { Tablesample_clauseContext } from "./PostgreSqlParser.js"; +import { TableSampleClauseContext } from "./PostgreSqlParser.js"; import { Func_tableContext } from "./PostgreSqlParser.js"; -import { Rowsfrom_itemContext } from "./PostgreSqlParser.js"; +import { RowsFromItemContext } from "./PostgreSqlParser.js"; import { Where_clauseContext } from "./PostgreSqlParser.js"; import { Where_or_current_clauseContext } from "./PostgreSqlParser.js"; -import { TablefuncelementlistContext } from "./PostgreSqlParser.js"; -import { TablefuncelementContext } from "./PostgreSqlParser.js"; -import { XmltableContext } from "./PostgreSqlParser.js"; -import { Xmltable_column_elContext } from "./PostgreSqlParser.js"; +import { TableFuncElementListContext } from "./PostgreSqlParser.js"; +import { TableFuncElementContext } from "./PostgreSqlParser.js"; +import { XmlTableContext } from "./PostgreSqlParser.js"; +import { XmlTableColumnElContext } from "./PostgreSqlParser.js"; import { Xml_namespace_elContext } from "./PostgreSqlParser.js"; import { TypenameContext } from "./PostgreSqlParser.js"; -import { SimpletypenameContext } from "./PostgreSqlParser.js"; -import { ConsttypenameContext } from "./PostgreSqlParser.js"; +import { SimpleTypeNameContext } from "./PostgreSqlParser.js"; +import { ConstTypeNameContext } from "./PostgreSqlParser.js"; import { NumericContext } from "./PostgreSqlParser.js"; import { Opt_floatContext } from "./PostgreSqlParser.js"; import { BitContext } from "./PostgreSqlParser.js"; import { CharacterContext } from "./PostgreSqlParser.js"; -import { ConstdatetimeContext } from "./PostgreSqlParser.js"; +import { ConstDatetimeContext } from "./PostgreSqlParser.js"; import { Opt_intervalContext } from "./PostgreSqlParser.js"; import { Interval_secondContext } from "./PostgreSqlParser.js"; import { ComparisonOperatorContext } from "./PostgreSqlParser.js"; @@ -372,7 +372,7 @@ import { Func_expr_common_subexprContext } from "./PostgreSqlParser.js"; import { Xml_attribute_listContext } from "./PostgreSqlParser.js"; import { Xml_attribute_elContext } from "./PostgreSqlParser.js"; import { Document_or_contentContext } from "./PostgreSqlParser.js"; -import { Xmlexists_argumentContext } from "./PostgreSqlParser.js"; +import { XmlExistsArgumentContext } from "./PostgreSqlParser.js"; import { Xml_passing_mechContext } from "./PostgreSqlParser.js"; import { Window_clauseContext } from "./PostgreSqlParser.js"; import { Window_definitionContext } from "./PostgreSqlParser.js"; @@ -390,7 +390,7 @@ import { Qual_all_opContext } from "./PostgreSqlParser.js"; import { Subquery_OpContext } from "./PostgreSqlParser.js"; import { Expr_listContext } from "./PostgreSqlParser.js"; import { Column_exprContext } from "./PostgreSqlParser.js"; -import { Column_expr_noparenContext } from "./PostgreSqlParser.js"; +import { Column_expr_no_parenContext } from "./PostgreSqlParser.js"; import { Func_arg_listContext } from "./PostgreSqlParser.js"; import { Func_arg_exprContext } from "./PostgreSqlParser.js"; import { Array_exprContext } from "./PostgreSqlParser.js"; @@ -429,15 +429,15 @@ import { ColumnNameMatchContext } from "./PostgreSqlParser.js"; import { ColumnNameCreateContext } from "./PostgreSqlParser.js"; import { FunctionNameCreateContext } from "./PostgreSqlParser.js"; import { FunctionNameContext } from "./PostgreSqlParser.js"; -import { SconstContext } from "./PostgreSqlParser.js"; +import { StringConstContext } from "./PostgreSqlParser.js"; import { AnysconstContext } from "./PostgreSqlParser.js"; -import { SignediconstContext } from "./PostgreSqlParser.js"; -import { RolespecContext } from "./PostgreSqlParser.js"; +import { SignedConstContext } from "./PostgreSqlParser.js"; +import { RoleSpecContext } from "./PostgreSqlParser.js"; import { Role_listContext } from "./PostgreSqlParser.js"; -import { ColidContext } from "./PostgreSqlParser.js"; +import { ColIdContext } from "./PostgreSqlParser.js"; import { Type_function_nameContext } from "./PostgreSqlParser.js"; -import { NonreservedwordContext } from "./PostgreSqlParser.js"; -import { CollabelContext } from "./PostgreSqlParser.js"; +import { NonReservedWordContext } from "./PostgreSqlParser.js"; +import { ColLabelContext } from "./PostgreSqlParser.js"; import { IdentifierContext } from "./PostgreSqlParser.js"; import { Unreserved_keywordContext } from "./PostgreSqlParser.js"; import { Col_name_keywordContext } from "./PostgreSqlParser.js"; @@ -475,7 +475,7 @@ import { Opt_open_bound_list_itemContext } from "./PostgreSqlParser.js"; import { Stmt_fetchContext } from "./PostgreSqlParser.js"; import { Opt_fetch_directionContext } from "./PostgreSqlParser.js"; import { Stmt_moveContext } from "./PostgreSqlParser.js"; -import { MergestmtContext } from "./PostgreSqlParser.js"; +import { MergeStmtContext } from "./PostgreSqlParser.js"; import { Data_sourceContext } from "./PostgreSqlParser.js"; import { Merge_when_clauseContext } from "./PostgreSqlParser.js"; import { Merge_insertContext } from "./PostgreSqlParser.js"; @@ -529,95 +529,95 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitStmt?: (ctx: StmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.callstmt`. + * Enter a parse tree produced by `PostgreSqlParser.callStmt`. * @param ctx the parse tree */ - enterCallstmt?: (ctx: CallstmtContext) => void; + enterCallStmt?: (ctx: CallStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.callstmt`. + * Exit a parse tree produced by `PostgreSqlParser.callStmt`. * @param ctx the parse tree */ - exitCallstmt?: (ctx: CallstmtContext) => void; + exitCallStmt?: (ctx: CallStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createrolestmt`. + * Enter a parse tree produced by `PostgreSqlParser.createRoleStmt`. * @param ctx the parse tree */ - enterCreaterolestmt?: (ctx: CreaterolestmtContext) => void; + enterCreateRoleStmt?: (ctx: CreateRoleStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createrolestmt`. + * Exit a parse tree produced by `PostgreSqlParser.createRoleStmt`. * @param ctx the parse tree */ - exitCreaterolestmt?: (ctx: CreaterolestmtContext) => void; + exitCreateRoleStmt?: (ctx: CreateRoleStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alteroptroleelem`. + * Enter a parse tree produced by `PostgreSqlParser.alterOperatorRoleElem`. * @param ctx the parse tree */ - enterAlteroptroleelem?: (ctx: AlteroptroleelemContext) => void; + enterAlterOperatorRoleElem?: (ctx: AlterOperatorRoleElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alteroptroleelem`. + * Exit a parse tree produced by `PostgreSqlParser.alterOperatorRoleElem`. * @param ctx the parse tree */ - exitAlteroptroleelem?: (ctx: AlteroptroleelemContext) => void; + exitAlterOperatorRoleElem?: (ctx: AlterOperatorRoleElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createoptroleelem`. + * Enter a parse tree produced by `PostgreSqlParser.createOperatorRoleElem`. * @param ctx the parse tree */ - enterCreateoptroleelem?: (ctx: CreateoptroleelemContext) => void; + enterCreateOperatorRoleElem?: (ctx: CreateOperatorRoleElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createoptroleelem`. + * Exit a parse tree produced by `PostgreSqlParser.createOperatorRoleElem`. * @param ctx the parse tree */ - exitCreateoptroleelem?: (ctx: CreateoptroleelemContext) => void; + exitCreateOperatorRoleElem?: (ctx: CreateOperatorRoleElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createuserstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createUserStmt`. * @param ctx the parse tree */ - enterCreateuserstmt?: (ctx: CreateuserstmtContext) => void; + enterCreateUserStmt?: (ctx: CreateUserStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createuserstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createUserStmt`. * @param ctx the parse tree */ - exitCreateuserstmt?: (ctx: CreateuserstmtContext) => void; + exitCreateUserStmt?: (ctx: CreateUserStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterrolestmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterRoleStmt`. * @param ctx the parse tree */ - enterAlterrolestmt?: (ctx: AlterrolestmtContext) => void; + enterAlterRoleStmt?: (ctx: AlterRoleStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterrolestmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterRoleStmt`. * @param ctx the parse tree */ - exitAlterrolestmt?: (ctx: AlterrolestmtContext) => void; + exitAlterRoleStmt?: (ctx: AlterRoleStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterrolesetstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterRoleSetStmt`. * @param ctx the parse tree */ - enterAlterrolesetstmt?: (ctx: AlterrolesetstmtContext) => void; + enterAlterRoleSetStmt?: (ctx: AlterRoleSetStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterrolesetstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterRoleSetStmt`. * @param ctx the parse tree */ - exitAlterrolesetstmt?: (ctx: AlterrolesetstmtContext) => void; + exitAlterRoleSetStmt?: (ctx: AlterRoleSetStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterroutinestmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterRoutineStmt`. * @param ctx the parse tree */ - enterAlterroutinestmt?: (ctx: AlterroutinestmtContext) => void; + enterAlterRoutineStmt?: (ctx: AlterRoutineStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterroutinestmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterRoutineStmt`. * @param ctx the parse tree */ - exitAlterroutinestmt?: (ctx: AlterroutinestmtContext) => void; + exitAlterRoutineStmt?: (ctx: AlterRoutineStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alter_routine_cluase`. + * Enter a parse tree produced by `PostgreSqlParser.alter_routine_clause`. * @param ctx the parse tree */ - enterAlter_routine_cluase?: (ctx: Alter_routine_cluaseContext) => void; + enterAlter_routine_clause?: (ctx: Alter_routine_clauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alter_routine_cluase`. + * Exit a parse tree produced by `PostgreSqlParser.alter_routine_clause`. * @param ctx the parse tree */ - exitAlter_routine_cluase?: (ctx: Alter_routine_cluaseContext) => void; + exitAlter_routine_clause?: (ctx: Alter_routine_clauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.routine_action`. * @param ctx the parse tree @@ -629,35 +629,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitRoutine_action?: (ctx: Routine_actionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.creategroupstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createGroupStmt`. * @param ctx the parse tree */ - enterCreategroupstmt?: (ctx: CreategroupstmtContext) => void; + enterCreateGroupStmt?: (ctx: CreateGroupStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.creategroupstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createGroupStmt`. * @param ctx the parse tree */ - exitCreategroupstmt?: (ctx: CreategroupstmtContext) => void; + exitCreateGroupStmt?: (ctx: CreateGroupStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.altergroupstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterGroupStmt`. * @param ctx the parse tree */ - enterAltergroupstmt?: (ctx: AltergroupstmtContext) => void; + enterAlterGroupStmt?: (ctx: AlterGroupStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.altergroupstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterGroupStmt`. * @param ctx the parse tree */ - exitAltergroupstmt?: (ctx: AltergroupstmtContext) => void; + exitAlterGroupStmt?: (ctx: AlterGroupStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createschemastmt`. + * Enter a parse tree produced by `PostgreSqlParser.createSchemaStmt`. * @param ctx the parse tree */ - enterCreateschemastmt?: (ctx: CreateschemastmtContext) => void; + enterCreateSchemaStmt?: (ctx: CreateSchemaStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createschemastmt`. + * Exit a parse tree produced by `PostgreSqlParser.createSchemaStmt`. * @param ctx the parse tree */ - exitCreateschemastmt?: (ctx: CreateschemastmtContext) => void; + exitCreateSchemaStmt?: (ctx: CreateSchemaStmtContext) => void; /** * Enter a parse tree produced by the `schemaNameCreate` * labeled alternative in `PostgreSqlParser.schema_name_create`. @@ -681,15 +681,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitSchema_stmt?: (ctx: Schema_stmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.variablesetstmt`. + * Enter a parse tree produced by `PostgreSqlParser.variableSetStmt`. * @param ctx the parse tree */ - enterVariablesetstmt?: (ctx: VariablesetstmtContext) => void; + enterVariableSetStmt?: (ctx: VariableSetStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.variablesetstmt`. + * Exit a parse tree produced by `PostgreSqlParser.variableSetStmt`. * @param ctx the parse tree */ - exitVariablesetstmt?: (ctx: VariablesetstmtContext) => void; + exitVariableSetStmt?: (ctx: VariableSetStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.set_rest`. * @param ctx the parse tree @@ -791,25 +791,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitZone_value?: (ctx: Zone_valueContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.nonreservedword_or_sconst`. + * Enter a parse tree produced by `PostgreSqlParser.nonReservedWordOrStringConst`. * @param ctx the parse tree */ - enterNonreservedword_or_sconst?: (ctx: Nonreservedword_or_sconstContext) => void; + enterNonReservedWordOrStringConst?: (ctx: NonReservedWordOrStringConstContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.nonreservedword_or_sconst`. + * Exit a parse tree produced by `PostgreSqlParser.nonReservedWordOrStringConst`. * @param ctx the parse tree */ - exitNonreservedword_or_sconst?: (ctx: Nonreservedword_or_sconstContext) => void; + exitNonReservedWordOrStringConst?: (ctx: NonReservedWordOrStringConstContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.variableresetstmt`. + * Enter a parse tree produced by `PostgreSqlParser.variableResetStmt`. * @param ctx the parse tree */ - enterVariableresetstmt?: (ctx: VariableresetstmtContext) => void; + enterVariableResetStmt?: (ctx: VariableResetStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.variableresetstmt`. + * Exit a parse tree produced by `PostgreSqlParser.variableResetStmt`. * @param ctx the parse tree */ - exitVariableresetstmt?: (ctx: VariableresetstmtContext) => void; + exitVariableResetStmt?: (ctx: VariableResetStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.reset_rest`. * @param ctx the parse tree @@ -821,75 +821,75 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitReset_rest?: (ctx: Reset_restContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.setresetclause`. + * Enter a parse tree produced by `PostgreSqlParser.setOrResetClause`. * @param ctx the parse tree */ - enterSetresetclause?: (ctx: SetresetclauseContext) => void; + enterSetOrResetClause?: (ctx: SetOrResetClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.setresetclause`. + * Exit a parse tree produced by `PostgreSqlParser.setOrResetClause`. * @param ctx the parse tree */ - exitSetresetclause?: (ctx: SetresetclauseContext) => void; + exitSetOrResetClause?: (ctx: SetOrResetClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.functionsetresetclause`. + * Enter a parse tree produced by `PostgreSqlParser.functionSetOrResetClause`. * @param ctx the parse tree */ - enterFunctionsetresetclause?: (ctx: FunctionsetresetclauseContext) => void; + enterFunctionSetOrResetClause?: (ctx: FunctionSetOrResetClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.functionsetresetclause`. + * Exit a parse tree produced by `PostgreSqlParser.functionSetOrResetClause`. * @param ctx the parse tree */ - exitFunctionsetresetclause?: (ctx: FunctionsetresetclauseContext) => void; + exitFunctionSetOrResetClause?: (ctx: FunctionSetOrResetClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.variableshowstmt`. + * Enter a parse tree produced by `PostgreSqlParser.variableShowStmt`. * @param ctx the parse tree */ - enterVariableshowstmt?: (ctx: VariableshowstmtContext) => void; + enterVariableShowStmt?: (ctx: VariableShowStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.variableshowstmt`. + * Exit a parse tree produced by `PostgreSqlParser.variableShowStmt`. * @param ctx the parse tree */ - exitVariableshowstmt?: (ctx: VariableshowstmtContext) => void; + exitVariableShowStmt?: (ctx: VariableShowStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.constraintssetstmt`. + * Enter a parse tree produced by `PostgreSqlParser.constraintsSetStmt`. * @param ctx the parse tree */ - enterConstraintssetstmt?: (ctx: ConstraintssetstmtContext) => void; + enterConstraintsSetStmt?: (ctx: ConstraintsSetStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.constraintssetstmt`. + * Exit a parse tree produced by `PostgreSqlParser.constraintsSetStmt`. * @param ctx the parse tree */ - exitConstraintssetstmt?: (ctx: ConstraintssetstmtContext) => void; + exitConstraintsSetStmt?: (ctx: ConstraintsSetStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.checkpointstmt`. + * Enter a parse tree produced by `PostgreSqlParser.checkPointStmt`. * @param ctx the parse tree */ - enterCheckpointstmt?: (ctx: CheckpointstmtContext) => void; + enterCheckPointStmt?: (ctx: CheckPointStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.checkpointstmt`. + * Exit a parse tree produced by `PostgreSqlParser.checkPointStmt`. * @param ctx the parse tree */ - exitCheckpointstmt?: (ctx: CheckpointstmtContext) => void; + exitCheckPointStmt?: (ctx: CheckPointStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.discardstmt`. + * Enter a parse tree produced by `PostgreSqlParser.discardStmt`. * @param ctx the parse tree */ - enterDiscardstmt?: (ctx: DiscardstmtContext) => void; + enterDiscardStmt?: (ctx: DiscardStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.discardstmt`. + * Exit a parse tree produced by `PostgreSqlParser.discardStmt`. * @param ctx the parse tree */ - exitDiscardstmt?: (ctx: DiscardstmtContext) => void; + exitDiscardStmt?: (ctx: DiscardStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.altertablestmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterTableStmt`. * @param ctx the parse tree */ - enterAltertablestmt?: (ctx: AltertablestmtContext) => void; + enterAlterTableStmt?: (ctx: AlterTableStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.altertablestmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterTableStmt`. * @param ctx the parse tree */ - exitAltertablestmt?: (ctx: AltertablestmtContext) => void; + exitAlterTableStmt?: (ctx: AlterTableStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.alter_table_cmds`. * @param ctx the parse tree @@ -911,15 +911,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitPartition_bound_spec?: (ctx: Partition_bound_specContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.partition_bound_cluase`. + * Enter a parse tree produced by `PostgreSqlParser.partition_bound_clause`. * @param ctx the parse tree */ - enterPartition_bound_cluase?: (ctx: Partition_bound_cluaseContext) => void; + enterPartition_bound_clause?: (ctx: Partition_bound_clauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.partition_bound_cluase`. + * Exit a parse tree produced by `PostgreSqlParser.partition_bound_clause`. * @param ctx the parse tree */ - exitPartition_bound_cluase?: (ctx: Partition_bound_cluaseContext) => void; + exitPartition_bound_clause?: (ctx: Partition_bound_clauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.partition_bound_choose`. * @param ctx the parse tree @@ -931,15 +931,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitPartition_bound_choose?: (ctx: Partition_bound_chooseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.partition_with_cluase`. + * Enter a parse tree produced by `PostgreSqlParser.partition_with_clause`. * @param ctx the parse tree */ - enterPartition_with_cluase?: (ctx: Partition_with_cluaseContext) => void; + enterPartition_with_clause?: (ctx: Partition_with_clauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.partition_with_cluase`. + * Exit a parse tree produced by `PostgreSqlParser.partition_with_clause`. * @param ctx the parse tree */ - exitPartition_with_cluase?: (ctx: Partition_with_cluaseContext) => void; + exitPartition_with_clause?: (ctx: Partition_with_clauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.partition_cmd`. * @param ctx the parse tree @@ -1001,55 +1001,55 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitOpt_collate_clause?: (ctx: Opt_collate_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.reloptions`. + * Enter a parse tree produced by `PostgreSqlParser.relOptions`. * @param ctx the parse tree */ - enterReloptions?: (ctx: ReloptionsContext) => void; + enterRelOptions?: (ctx: RelOptionsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.reloptions`. + * Exit a parse tree produced by `PostgreSqlParser.relOptions`. * @param ctx the parse tree */ - exitReloptions?: (ctx: ReloptionsContext) => void; + exitRelOptions?: (ctx: RelOptionsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_reloptions`. + * Enter a parse tree produced by `PostgreSqlParser.optRelOptions`. * @param ctx the parse tree */ - enterOpt_reloptions?: (ctx: Opt_reloptionsContext) => void; + enterOptRelOptions?: (ctx: OptRelOptionsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_reloptions`. + * Exit a parse tree produced by `PostgreSqlParser.optRelOptions`. * @param ctx the parse tree */ - exitOpt_reloptions?: (ctx: Opt_reloptionsContext) => void; + exitOptRelOptions?: (ctx: OptRelOptionsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.reloption_elem`. + * Enter a parse tree produced by `PostgreSqlParser.relOptionElem`. * @param ctx the parse tree */ - enterReloption_elem?: (ctx: Reloption_elemContext) => void; + enterRelOptionElem?: (ctx: RelOptionElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.reloption_elem`. + * Exit a parse tree produced by `PostgreSqlParser.relOptionElem`. * @param ctx the parse tree */ - exitReloption_elem?: (ctx: Reloption_elemContext) => void; + exitRelOptionElem?: (ctx: RelOptionElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.partitionboundspec`. + * Enter a parse tree produced by `PostgreSqlParser.partitionBoundSpec`. * @param ctx the parse tree */ - enterPartitionboundspec?: (ctx: PartitionboundspecContext) => void; + enterPartitionBoundSpec?: (ctx: PartitionBoundSpecContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.partitionboundspec`. + * Exit a parse tree produced by `PostgreSqlParser.partitionBoundSpec`. * @param ctx the parse tree */ - exitPartitionboundspec?: (ctx: PartitionboundspecContext) => void; + exitPartitionBoundSpec?: (ctx: PartitionBoundSpecContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.altercompositetypestmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterCompositeTypeStmt`. * @param ctx the parse tree */ - enterAltercompositetypestmt?: (ctx: AltercompositetypestmtContext) => void; + enterAlterCompositeTypeStmt?: (ctx: AlterCompositeTypeStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.altercompositetypestmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterCompositeTypeStmt`. * @param ctx the parse tree */ - exitAltercompositetypestmt?: (ctx: AltercompositetypestmtContext) => void; + exitAlterCompositeTypeStmt?: (ctx: AlterCompositeTypeStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.alter_type_cmd`. * @param ctx the parse tree @@ -1061,25 +1061,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAlter_type_cmd?: (ctx: Alter_type_cmdContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.closeportalstmt`. + * Enter a parse tree produced by `PostgreSqlParser.closePortalStmt`. * @param ctx the parse tree */ - enterCloseportalstmt?: (ctx: CloseportalstmtContext) => void; + enterClosePortalStmt?: (ctx: ClosePortalStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.closeportalstmt`. + * Exit a parse tree produced by `PostgreSqlParser.closePortalStmt`. * @param ctx the parse tree */ - exitCloseportalstmt?: (ctx: CloseportalstmtContext) => void; + exitClosePortalStmt?: (ctx: ClosePortalStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.copystmt`. + * Enter a parse tree produced by `PostgreSqlParser.copyStmt`. * @param ctx the parse tree */ - enterCopystmt?: (ctx: CopystmtContext) => void; + enterCopyStmt?: (ctx: CopyStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.copystmt`. + * Exit a parse tree produced by `PostgreSqlParser.copyStmt`. * @param ctx the parse tree */ - exitCopystmt?: (ctx: CopystmtContext) => void; + exitCopyStmt?: (ctx: CopyStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.copyOptionsNoparens`. * @param ctx the parse tree @@ -1112,66 +1112,66 @@ export class PostgreSqlParserListener implements ParseTreeListener { exitCopy_generic_opt_elem?: (ctx: Copy_generic_opt_elemContext) => void; /** * Enter a parse tree produced by the `columnCreateTable` - * labeled alternative in `PostgreSqlParser.createstmt`. + * labeled alternative in `PostgreSqlParser.createStmt`. * @param ctx the parse tree */ enterColumnCreateTable?: (ctx: ColumnCreateTableContext) => void; /** * Exit a parse tree produced by the `columnCreateTable` - * labeled alternative in `PostgreSqlParser.createstmt`. + * labeled alternative in `PostgreSqlParser.createStmt`. * @param ctx the parse tree */ exitColumnCreateTable?: (ctx: ColumnCreateTableContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opttemp`. + * Enter a parse tree produced by `PostgreSqlParser.optTemp`. * @param ctx the parse tree */ - enterOpttemp?: (ctx: OpttempContext) => void; + enterOptTemp?: (ctx: OptTempContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opttemp`. + * Exit a parse tree produced by `PostgreSqlParser.optTemp`. * @param ctx the parse tree */ - exitOpttemp?: (ctx: OpttempContext) => void; + exitOptTemp?: (ctx: OptTempContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opttypedtableelementlist`. + * Enter a parse tree produced by `PostgreSqlParser.optTypedTableElEmentList`. * @param ctx the parse tree */ - enterOpttypedtableelementlist?: (ctx: OpttypedtableelementlistContext) => void; + enterOptTypedTableElEmentList?: (ctx: OptTypedTableElEmentListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opttypedtableelementlist`. + * Exit a parse tree produced by `PostgreSqlParser.optTypedTableElEmentList`. * @param ctx the parse tree */ - exitOpttypedtableelementlist?: (ctx: OpttypedtableelementlistContext) => void; + exitOptTypedTableElEmentList?: (ctx: OptTypedTableElEmentListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.tableelementlist`. + * Enter a parse tree produced by `PostgreSqlParser.tableElementList`. * @param ctx the parse tree */ - enterTableelementlist?: (ctx: TableelementlistContext) => void; + enterTableElementList?: (ctx: TableElementListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.tableelementlist`. + * Exit a parse tree produced by `PostgreSqlParser.tableElementList`. * @param ctx the parse tree */ - exitTableelementlist?: (ctx: TableelementlistContext) => void; + exitTableElementList?: (ctx: TableElementListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.tableelement`. + * Enter a parse tree produced by `PostgreSqlParser.tableElement`. * @param ctx the parse tree */ - enterTableelement?: (ctx: TableelementContext) => void; + enterTableElement?: (ctx: TableElementContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.tableelement`. + * Exit a parse tree produced by `PostgreSqlParser.tableElement`. * @param ctx the parse tree */ - exitTableelement?: (ctx: TableelementContext) => void; + exitTableElement?: (ctx: TableElementContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.typedtableelement`. + * Enter a parse tree produced by `PostgreSqlParser.typedTableElement`. * @param ctx the parse tree */ - enterTypedtableelement?: (ctx: TypedtableelementContext) => void; + enterTypedTableElement?: (ctx: TypedTableElementContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.typedtableelement`. + * Exit a parse tree produced by `PostgreSqlParser.typedTableElement`. * @param ctx the parse tree */ - exitTypedtableelement?: (ctx: TypedtableelementContext) => void; + exitTypedTableElement?: (ctx: TypedTableElementContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.column_def`. * @param ctx the parse tree @@ -1183,25 +1183,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitColumn_def?: (ctx: Column_defContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.colconstraint`. + * Enter a parse tree produced by `PostgreSqlParser.colConstraint`. * @param ctx the parse tree */ - enterColconstraint?: (ctx: ColconstraintContext) => void; + enterColConstraint?: (ctx: ColConstraintContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.colconstraint`. + * Exit a parse tree produced by `PostgreSqlParser.colConstraint`. * @param ctx the parse tree */ - exitColconstraint?: (ctx: ColconstraintContext) => void; + exitColConstraint?: (ctx: ColConstraintContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.colconstraintelem`. + * Enter a parse tree produced by `PostgreSqlParser.colConstraintElem`. * @param ctx the parse tree */ - enterColconstraintelem?: (ctx: ColconstraintelemContext) => void; + enterColConstraintElem?: (ctx: ColConstraintElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.colconstraintelem`. + * Exit a parse tree produced by `PostgreSqlParser.colConstraintElem`. * @param ctx the parse tree */ - exitColconstraintelem?: (ctx: ColconstraintelemContext) => void; + exitColConstraintElem?: (ctx: ColConstraintElemContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.generated_when`. * @param ctx the parse tree @@ -1213,25 +1213,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitGenerated_when?: (ctx: Generated_whenContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.tablelikeoption`. + * Enter a parse tree produced by `PostgreSqlParser.tableLikeOption`. * @param ctx the parse tree */ - enterTablelikeoption?: (ctx: TablelikeoptionContext) => void; + enterTableLikeOption?: (ctx: TableLikeOptionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.tablelikeoption`. + * Exit a parse tree produced by `PostgreSqlParser.tableLikeOption`. * @param ctx the parse tree */ - exitTablelikeoption?: (ctx: TablelikeoptionContext) => void; + exitTableLikeOption?: (ctx: TableLikeOptionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.constraintelem`. + * Enter a parse tree produced by `PostgreSqlParser.constraintElem`. * @param ctx the parse tree */ - enterConstraintelem?: (ctx: ConstraintelemContext) => void; + enterConstraintElem?: (ctx: ConstraintElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.constraintelem`. + * Exit a parse tree produced by `PostgreSqlParser.constraintElem`. * @param ctx the parse tree */ - exitConstraintelem?: (ctx: ConstraintelemContext) => void; + exitConstraintElem?: (ctx: ConstraintElemContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.opt_column_list`. * @param ctx the parse tree @@ -1283,15 +1283,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitKey_match?: (ctx: Key_matchContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.exclusionconstraintelem`. + * Enter a parse tree produced by `PostgreSqlParser.exclusionConstraintElem`. * @param ctx the parse tree */ - enterExclusionconstraintelem?: (ctx: ExclusionconstraintelemContext) => void; + enterExclusionConstraintElem?: (ctx: ExclusionConstraintElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.exclusionconstraintelem`. + * Exit a parse tree produced by `PostgreSqlParser.exclusionConstraintElem`. * @param ctx the parse tree */ - exitExclusionconstraintelem?: (ctx: ExclusionconstraintelemContext) => void; + exitExclusionConstraintElem?: (ctx: ExclusionConstraintElemContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.key_actions`. * @param ctx the parse tree @@ -1333,25 +1333,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitKey_action?: (ctx: Key_actionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.optinherit`. + * Enter a parse tree produced by `PostgreSqlParser.optInherit`. * @param ctx the parse tree */ - enterOptinherit?: (ctx: OptinheritContext) => void; + enterOptInherit?: (ctx: OptInheritContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.optinherit`. + * Exit a parse tree produced by `PostgreSqlParser.optInherit`. * @param ctx the parse tree */ - exitOptinherit?: (ctx: OptinheritContext) => void; + exitOptInherit?: (ctx: OptInheritContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.partitionspec`. + * Enter a parse tree produced by `PostgreSqlParser.partitionSpec`. * @param ctx the parse tree */ - enterPartitionspec?: (ctx: PartitionspecContext) => void; + enterPartitionSpec?: (ctx: PartitionSpecContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.partitionspec`. + * Exit a parse tree produced by `PostgreSqlParser.partitionSpec`. * @param ctx the parse tree */ - exitPartitionspec?: (ctx: PartitionspecContext) => void; + exitPartitionSpec?: (ctx: PartitionSpecContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.part_elem`. * @param ctx the parse tree @@ -1373,84 +1373,84 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitTable_access_method_clause?: (ctx: Table_access_method_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.optwith`. + * Enter a parse tree produced by `PostgreSqlParser.optWith`. * @param ctx the parse tree */ - enterOptwith?: (ctx: OptwithContext) => void; + enterOptWith?: (ctx: OptWithContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.optwith`. + * Exit a parse tree produced by `PostgreSqlParser.optWith`. * @param ctx the parse tree */ - exitOptwith?: (ctx: OptwithContext) => void; + exitOptWith?: (ctx: OptWithContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.oncommitoption`. + * Enter a parse tree produced by `PostgreSqlParser.onCommitOption`. * @param ctx the parse tree */ - enterOncommitoption?: (ctx: OncommitoptionContext) => void; + enterOnCommitOption?: (ctx: OnCommitOptionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.oncommitoption`. + * Exit a parse tree produced by `PostgreSqlParser.onCommitOption`. * @param ctx the parse tree */ - exitOncommitoption?: (ctx: OncommitoptionContext) => void; + exitOnCommitOption?: (ctx: OnCommitOptionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opttablespace`. + * Enter a parse tree produced by `PostgreSqlParser.optTableSpace`. * @param ctx the parse tree */ - enterOpttablespace?: (ctx: OpttablespaceContext) => void; + enterOptTableSpace?: (ctx: OptTableSpaceContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opttablespace`. + * Exit a parse tree produced by `PostgreSqlParser.optTableSpace`. * @param ctx the parse tree */ - exitOpttablespace?: (ctx: OpttablespaceContext) => void; + exitOptTableSpace?: (ctx: OptTableSpaceContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.optconstablespace`. + * Enter a parse tree produced by `PostgreSqlParser.optConstableSpace`. * @param ctx the parse tree */ - enterOptconstablespace?: (ctx: OptconstablespaceContext) => void; + enterOptConstableSpace?: (ctx: OptConstableSpaceContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.optconstablespace`. + * Exit a parse tree produced by `PostgreSqlParser.optConstableSpace`. * @param ctx the parse tree */ - exitOptconstablespace?: (ctx: OptconstablespaceContext) => void; + exitOptConstableSpace?: (ctx: OptConstableSpaceContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.existingindex`. + * Enter a parse tree produced by `PostgreSqlParser.existingIndex`. * @param ctx the parse tree */ - enterExistingindex?: (ctx: ExistingindexContext) => void; + enterExistingIndex?: (ctx: ExistingIndexContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.existingindex`. + * Exit a parse tree produced by `PostgreSqlParser.existingIndex`. * @param ctx the parse tree */ - exitExistingindex?: (ctx: ExistingindexContext) => void; + exitExistingIndex?: (ctx: ExistingIndexContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createstatsstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createStatsStmt`. * @param ctx the parse tree */ - enterCreatestatsstmt?: (ctx: CreatestatsstmtContext) => void; + enterCreateStatsStmt?: (ctx: CreateStatsStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createstatsstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createStatsStmt`. * @param ctx the parse tree */ - exitCreatestatsstmt?: (ctx: CreatestatsstmtContext) => void; + exitCreateStatsStmt?: (ctx: CreateStatsStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterstatsstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterStatsStmt`. * @param ctx the parse tree */ - enterAlterstatsstmt?: (ctx: AlterstatsstmtContext) => void; + enterAlterStatsStmt?: (ctx: AlterStatsStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterstatsstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterStatsStmt`. * @param ctx the parse tree */ - exitAlterstatsstmt?: (ctx: AlterstatsstmtContext) => void; + exitAlterStatsStmt?: (ctx: AlterStatsStmtContext) => void; /** * Enter a parse tree produced by the `queryCreateTable` - * labeled alternative in `PostgreSqlParser.createasstmt`. + * labeled alternative in `PostgreSqlParser.createAsStmt`. * @param ctx the parse tree */ enterQueryCreateTable?: (ctx: QueryCreateTableContext) => void; /** * Exit a parse tree produced by the `queryCreateTable` - * labeled alternative in `PostgreSqlParser.createasstmt`. + * labeled alternative in `PostgreSqlParser.createAsStmt`. * @param ctx the parse tree */ exitQueryCreateTable?: (ctx: QueryCreateTableContext) => void; @@ -1476,126 +1476,126 @@ export class PostgreSqlParserListener implements ParseTreeListener { exitOpt_with_data?: (ctx: Opt_with_dataContext) => void; /** * Enter a parse tree produced by the `createMaterializedView` - * labeled alternative in `PostgreSqlParser.creatematviewstmt`. + * labeled alternative in `PostgreSqlParser.createMaterializedViewStmt`. * @param ctx the parse tree */ enterCreateMaterializedView?: (ctx: CreateMaterializedViewContext) => void; /** * Exit a parse tree produced by the `createMaterializedView` - * labeled alternative in `PostgreSqlParser.creatematviewstmt`. + * labeled alternative in `PostgreSqlParser.createMaterializedViewStmt`. * @param ctx the parse tree */ exitCreateMaterializedView?: (ctx: CreateMaterializedViewContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.refreshmatviewstmt`. + * Enter a parse tree produced by `PostgreSqlParser.refreshMaterializedViewStmt`. * @param ctx the parse tree */ - enterRefreshmatviewstmt?: (ctx: RefreshmatviewstmtContext) => void; + enterRefreshMaterializedViewStmt?: (ctx: RefreshMaterializedViewStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.refreshmatviewstmt`. + * Exit a parse tree produced by `PostgreSqlParser.refreshMaterializedViewStmt`. * @param ctx the parse tree */ - exitRefreshmatviewstmt?: (ctx: RefreshmatviewstmtContext) => void; + exitRefreshMaterializedViewStmt?: (ctx: RefreshMaterializedViewStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createseqstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createSeqStmt`. * @param ctx the parse tree */ - enterCreateseqstmt?: (ctx: CreateseqstmtContext) => void; + enterCreateSeqStmt?: (ctx: CreateSeqStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createseqstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createSeqStmt`. * @param ctx the parse tree */ - exitCreateseqstmt?: (ctx: CreateseqstmtContext) => void; + exitCreateSeqStmt?: (ctx: CreateSeqStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterseqstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterSeqStmt`. * @param ctx the parse tree */ - enterAlterseqstmt?: (ctx: AlterseqstmtContext) => void; + enterAlterSeqStmt?: (ctx: AlterSeqStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterseqstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterSeqStmt`. * @param ctx the parse tree */ - exitAlterseqstmt?: (ctx: AlterseqstmtContext) => void; + exitAlterSeqStmt?: (ctx: AlterSeqStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.seqoptelem`. + * Enter a parse tree produced by `PostgreSqlParser.seqOptElem`. * @param ctx the parse tree */ - enterSeqoptelem?: (ctx: SeqoptelemContext) => void; + enterSeqOptElem?: (ctx: SeqOptElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.seqoptelem`. + * Exit a parse tree produced by `PostgreSqlParser.seqOptElem`. * @param ctx the parse tree */ - exitSeqoptelem?: (ctx: SeqoptelemContext) => void; + exitSeqOptElem?: (ctx: SeqOptElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.numericonly`. + * Enter a parse tree produced by `PostgreSqlParser.numericOnly`. * @param ctx the parse tree */ - enterNumericonly?: (ctx: NumericonlyContext) => void; + enterNumericOnly?: (ctx: NumericOnlyContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.numericonly`. + * Exit a parse tree produced by `PostgreSqlParser.numericOnly`. * @param ctx the parse tree */ - exitNumericonly?: (ctx: NumericonlyContext) => void; + exitNumericOnly?: (ctx: NumericOnlyContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createplangstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createProceduralLangStmt`. * @param ctx the parse tree */ - enterCreateplangstmt?: (ctx: CreateplangstmtContext) => void; + enterCreateProceduralLangStmt?: (ctx: CreateProceduralLangStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createplangstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createProceduralLangStmt`. * @param ctx the parse tree */ - exitCreateplangstmt?: (ctx: CreateplangstmtContext) => void; + exitCreateProceduralLangStmt?: (ctx: CreateProceduralLangStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createtablespacestmt`. + * Enter a parse tree produced by `PostgreSqlParser.createTableSpaceStmt`. * @param ctx the parse tree */ - enterCreatetablespacestmt?: (ctx: CreatetablespacestmtContext) => void; + enterCreateTableSpaceStmt?: (ctx: CreateTableSpaceStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createtablespacestmt`. + * Exit a parse tree produced by `PostgreSqlParser.createTableSpaceStmt`. * @param ctx the parse tree */ - exitCreatetablespacestmt?: (ctx: CreatetablespacestmtContext) => void; + exitCreateTableSpaceStmt?: (ctx: CreateTableSpaceStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createextensionstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createExtensionStmt`. * @param ctx the parse tree */ - enterCreateextensionstmt?: (ctx: CreateextensionstmtContext) => void; + enterCreateExtensionStmt?: (ctx: CreateExtensionStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createextensionstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createExtensionStmt`. * @param ctx the parse tree */ - exitCreateextensionstmt?: (ctx: CreateextensionstmtContext) => void; + exitCreateExtensionStmt?: (ctx: CreateExtensionStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterextensionstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterExtensionStmt`. * @param ctx the parse tree */ - enterAlterextensionstmt?: (ctx: AlterextensionstmtContext) => void; + enterAlterExtensionStmt?: (ctx: AlterExtensionStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterextensionstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterExtensionStmt`. * @param ctx the parse tree */ - exitAlterextensionstmt?: (ctx: AlterextensionstmtContext) => void; + exitAlterExtensionStmt?: (ctx: AlterExtensionStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterextensioncontentsstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterExtensionContentsStmt`. * @param ctx the parse tree */ - enterAlterextensioncontentsstmt?: (ctx: AlterextensioncontentsstmtContext) => void; + enterAlterExtensionContentsStmt?: (ctx: AlterExtensionContentsStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterextensioncontentsstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterExtensionContentsStmt`. * @param ctx the parse tree */ - exitAlterextensioncontentsstmt?: (ctx: AlterextensioncontentsstmtContext) => void; + exitAlterExtensionContentsStmt?: (ctx: AlterExtensionContentsStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createfdwstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createFdwStmt`. * @param ctx the parse tree */ - enterCreatefdwstmt?: (ctx: CreatefdwstmtContext) => void; + enterCreateFdwStmt?: (ctx: CreateFdwStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createfdwstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createFdwStmt`. * @param ctx the parse tree */ - exitCreatefdwstmt?: (ctx: CreatefdwstmtContext) => void; + exitCreateFdwStmt?: (ctx: CreateFdwStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.fdw_option`. * @param ctx the parse tree @@ -1607,15 +1607,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitFdw_option?: (ctx: Fdw_optionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterfdwstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterFdwStmt`. * @param ctx the parse tree */ - enterAlterfdwstmt?: (ctx: AlterfdwstmtContext) => void; + enterAlterFdwStmt?: (ctx: AlterFdwStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterfdwstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterFdwStmt`. * @param ctx the parse tree */ - exitAlterfdwstmt?: (ctx: AlterfdwstmtContext) => void; + exitAlterFdwStmt?: (ctx: AlterFdwStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.create_generic_options`. * @param ctx the parse tree @@ -1657,15 +1657,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitGeneric_option_elem?: (ctx: Generic_option_elemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createforeignserverstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createForeignServerStmt`. * @param ctx the parse tree */ - enterCreateforeignserverstmt?: (ctx: CreateforeignserverstmtContext) => void; + enterCreateForeignServerStmt?: (ctx: CreateForeignServerStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createforeignserverstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createForeignServerStmt`. * @param ctx the parse tree */ - exitCreateforeignserverstmt?: (ctx: CreateforeignserverstmtContext) => void; + exitCreateForeignServerStmt?: (ctx: CreateForeignServerStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.foreign_server_version`. * @param ctx the parse tree @@ -1677,99 +1677,99 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitForeign_server_version?: (ctx: Foreign_server_versionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterforeignserverstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterForeignServerStmt`. * @param ctx the parse tree */ - enterAlterforeignserverstmt?: (ctx: AlterforeignserverstmtContext) => void; + enterAlterForeignServerStmt?: (ctx: AlterForeignServerStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterforeignserverstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterForeignServerStmt`. * @param ctx the parse tree */ - exitAlterforeignserverstmt?: (ctx: AlterforeignserverstmtContext) => void; + exitAlterForeignServerStmt?: (ctx: AlterForeignServerStmtContext) => void; /** * Enter a parse tree produced by the `createForeignTable` - * labeled alternative in `PostgreSqlParser.createforeigntablestmt`. + * labeled alternative in `PostgreSqlParser.createForeignTableStmt`. * @param ctx the parse tree */ enterCreateForeignTable?: (ctx: CreateForeignTableContext) => void; /** * Exit a parse tree produced by the `createForeignTable` - * labeled alternative in `PostgreSqlParser.createforeigntablestmt`. + * labeled alternative in `PostgreSqlParser.createForeignTableStmt`. * @param ctx the parse tree */ exitCreateForeignTable?: (ctx: CreateForeignTableContext) => void; /** * Enter a parse tree produced by the `createPartitionForeignTable` - * labeled alternative in `PostgreSqlParser.createforeigntablestmt`. + * labeled alternative in `PostgreSqlParser.createForeignTableStmt`. * @param ctx the parse tree */ enterCreatePartitionForeignTable?: (ctx: CreatePartitionForeignTableContext) => void; /** * Exit a parse tree produced by the `createPartitionForeignTable` - * labeled alternative in `PostgreSqlParser.createforeigntablestmt`. + * labeled alternative in `PostgreSqlParser.createForeignTableStmt`. * @param ctx the parse tree */ exitCreatePartitionForeignTable?: (ctx: CreatePartitionForeignTableContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.importforeignschemastmt`. + * Enter a parse tree produced by `PostgreSqlParser.importForeignSchemaStmt`. * @param ctx the parse tree */ - enterImportforeignschemastmt?: (ctx: ImportforeignschemastmtContext) => void; + enterImportForeignSchemaStmt?: (ctx: ImportForeignSchemaStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.importforeignschemastmt`. + * Exit a parse tree produced by `PostgreSqlParser.importForeignSchemaStmt`. * @param ctx the parse tree */ - exitImportforeignschemastmt?: (ctx: ImportforeignschemastmtContext) => void; + exitImportForeignSchemaStmt?: (ctx: ImportForeignSchemaStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createusermappingstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createUserMappingStmt`. * @param ctx the parse tree */ - enterCreateusermappingstmt?: (ctx: CreateusermappingstmtContext) => void; + enterCreateUserMappingStmt?: (ctx: CreateUserMappingStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createusermappingstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createUserMappingStmt`. * @param ctx the parse tree */ - exitCreateusermappingstmt?: (ctx: CreateusermappingstmtContext) => void; + exitCreateUserMappingStmt?: (ctx: CreateUserMappingStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterusermappingstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterUserMappingStmt`. * @param ctx the parse tree */ - enterAlterusermappingstmt?: (ctx: AlterusermappingstmtContext) => void; + enterAlterUserMappingStmt?: (ctx: AlterUserMappingStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterusermappingstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterUserMappingStmt`. * @param ctx the parse tree */ - exitAlterusermappingstmt?: (ctx: AlterusermappingstmtContext) => void; + exitAlterUserMappingStmt?: (ctx: AlterUserMappingStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createpolicystmt`. + * Enter a parse tree produced by `PostgreSqlParser.createPolicyStmt`. * @param ctx the parse tree */ - enterCreatepolicystmt?: (ctx: CreatepolicystmtContext) => void; + enterCreatePolicyStmt?: (ctx: CreatePolicyStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createpolicystmt`. + * Exit a parse tree produced by `PostgreSqlParser.createPolicyStmt`. * @param ctx the parse tree */ - exitCreatepolicystmt?: (ctx: CreatepolicystmtContext) => void; + exitCreatePolicyStmt?: (ctx: CreatePolicyStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterpolicystmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterPolicyStmt`. * @param ctx the parse tree */ - enterAlterpolicystmt?: (ctx: AlterpolicystmtContext) => void; + enterAlterPolicyStmt?: (ctx: AlterPolicyStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterpolicystmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterPolicyStmt`. * @param ctx the parse tree */ - exitAlterpolicystmt?: (ctx: AlterpolicystmtContext) => void; + exitAlterPolicyStmt?: (ctx: AlterPolicyStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterprocedurestmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterProcedureStmt`. * @param ctx the parse tree */ - enterAlterprocedurestmt?: (ctx: AlterprocedurestmtContext) => void; + enterAlterProcedureStmt?: (ctx: AlterProcedureStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterprocedurestmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterProcedureStmt`. * @param ctx the parse tree */ - exitAlterprocedurestmt?: (ctx: AlterprocedurestmtContext) => void; + exitAlterProcedureStmt?: (ctx: AlterProcedureStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.procedure_action`. * @param ctx the parse tree @@ -1781,85 +1781,85 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitProcedure_action?: (ctx: Procedure_actionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.rowsecurityoptionalexpr`. + * Enter a parse tree produced by `PostgreSqlParser.rowSecurityOptionalExpr`. * @param ctx the parse tree */ - enterRowsecurityoptionalexpr?: (ctx: RowsecurityoptionalexprContext) => void; + enterRowSecurityOptionalExpr?: (ctx: RowSecurityOptionalExprContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.rowsecurityoptionalexpr`. + * Exit a parse tree produced by `PostgreSqlParser.rowSecurityOptionalExpr`. * @param ctx the parse tree */ - exitRowsecurityoptionalexpr?: (ctx: RowsecurityoptionalexprContext) => void; + exitRowSecurityOptionalExpr?: (ctx: RowSecurityOptionalExprContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.rowsecurityoptionalwithcheck`. + * Enter a parse tree produced by `PostgreSqlParser.rowSecurityOptionalWithCheck`. * @param ctx the parse tree */ - enterRowsecurityoptionalwithcheck?: (ctx: RowsecurityoptionalwithcheckContext) => void; + enterRowSecurityOptionalWithCheck?: (ctx: RowSecurityOptionalWithCheckContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.rowsecurityoptionalwithcheck`. + * Exit a parse tree produced by `PostgreSqlParser.rowSecurityOptionalWithCheck`. * @param ctx the parse tree */ - exitRowsecurityoptionalwithcheck?: (ctx: RowsecurityoptionalwithcheckContext) => void; + exitRowSecurityOptionalWithCheck?: (ctx: RowSecurityOptionalWithCheckContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createamstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createAccessMethodStmt`. * @param ctx the parse tree */ - enterCreateamstmt?: (ctx: CreateamstmtContext) => void; + enterCreateAccessMethodStmt?: (ctx: CreateAccessMethodStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createamstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createAccessMethodStmt`. * @param ctx the parse tree */ - exitCreateamstmt?: (ctx: CreateamstmtContext) => void; + exitCreateAccessMethodStmt?: (ctx: CreateAccessMethodStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createtrigstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createTrigStmt`. * @param ctx the parse tree */ - enterCreatetrigstmt?: (ctx: CreatetrigstmtContext) => void; + enterCreateTrigStmt?: (ctx: CreateTrigStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createtrigstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createTrigStmt`. * @param ctx the parse tree */ - exitCreatetrigstmt?: (ctx: CreatetrigstmtContext) => void; + exitCreateTrigStmt?: (ctx: CreateTrigStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.triggeractiontime`. + * Enter a parse tree produced by `PostgreSqlParser.triggerActionTime`. * @param ctx the parse tree */ - enterTriggeractiontime?: (ctx: TriggeractiontimeContext) => void; + enterTriggerActionTime?: (ctx: TriggerActionTimeContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.triggeractiontime`. + * Exit a parse tree produced by `PostgreSqlParser.triggerActionTime`. * @param ctx the parse tree */ - exitTriggeractiontime?: (ctx: TriggeractiontimeContext) => void; + exitTriggerActionTime?: (ctx: TriggerActionTimeContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.triggerevents`. + * Enter a parse tree produced by `PostgreSqlParser.triggerEvents`. * @param ctx the parse tree */ - enterTriggerevents?: (ctx: TriggereventsContext) => void; + enterTriggerEvents?: (ctx: TriggerEventsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.triggerevents`. + * Exit a parse tree produced by `PostgreSqlParser.triggerEvents`. * @param ctx the parse tree */ - exitTriggerevents?: (ctx: TriggereventsContext) => void; + exitTriggerEvents?: (ctx: TriggerEventsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.triggeroneevent`. + * Enter a parse tree produced by `PostgreSqlParser.triggerOneEvent`. * @param ctx the parse tree */ - enterTriggeroneevent?: (ctx: TriggeroneeventContext) => void; + enterTriggerOneEvent?: (ctx: TriggerOneEventContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.triggeroneevent`. + * Exit a parse tree produced by `PostgreSqlParser.triggerOneEvent`. * @param ctx the parse tree */ - exitTriggeroneevent?: (ctx: TriggeroneeventContext) => void; + exitTriggerOneEvent?: (ctx: TriggerOneEventContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.triggerwhen`. + * Enter a parse tree produced by `PostgreSqlParser.triggerWhen`. * @param ctx the parse tree */ - enterTriggerwhen?: (ctx: TriggerwhenContext) => void; + enterTriggerWhen?: (ctx: TriggerWhenContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.triggerwhen`. + * Exit a parse tree produced by `PostgreSqlParser.triggerWhen`. * @param ctx the parse tree */ - exitTriggerwhen?: (ctx: TriggerwhenContext) => void; + exitTriggerWhen?: (ctx: TriggerWhenContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.function_or_procedure`. * @param ctx the parse tree @@ -1871,45 +1871,45 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitFunction_or_procedure?: (ctx: Function_or_procedureContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.triggerfuncargs`. + * Enter a parse tree produced by `PostgreSqlParser.triggerFuncArgs`. * @param ctx the parse tree */ - enterTriggerfuncargs?: (ctx: TriggerfuncargsContext) => void; + enterTriggerFuncArgs?: (ctx: TriggerFuncArgsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.triggerfuncargs`. + * Exit a parse tree produced by `PostgreSqlParser.triggerFuncArgs`. * @param ctx the parse tree */ - exitTriggerfuncargs?: (ctx: TriggerfuncargsContext) => void; + exitTriggerFuncArgs?: (ctx: TriggerFuncArgsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.triggerfuncarg`. + * Enter a parse tree produced by `PostgreSqlParser.triggerFuncArg`. * @param ctx the parse tree */ - enterTriggerfuncarg?: (ctx: TriggerfuncargContext) => void; + enterTriggerFuncArg?: (ctx: TriggerFuncArgContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.triggerfuncarg`. + * Exit a parse tree produced by `PostgreSqlParser.triggerFuncArg`. * @param ctx the parse tree */ - exitTriggerfuncarg?: (ctx: TriggerfuncargContext) => void; + exitTriggerFuncArg?: (ctx: TriggerFuncArgContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.constraintattributeElem`. + * Enter a parse tree produced by `PostgreSqlParser.constraintAttributeElem`. * @param ctx the parse tree */ - enterConstraintattributeElem?: (ctx: ConstraintattributeElemContext) => void; + enterConstraintAttributeElem?: (ctx: ConstraintAttributeElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.constraintattributeElem`. + * Exit a parse tree produced by `PostgreSqlParser.constraintAttributeElem`. * @param ctx the parse tree */ - exitConstraintattributeElem?: (ctx: ConstraintattributeElemContext) => void; + exitConstraintAttributeElem?: (ctx: ConstraintAttributeElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createeventtrigstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createEventTrigStmt`. * @param ctx the parse tree */ - enterCreateeventtrigstmt?: (ctx: CreateeventtrigstmtContext) => void; + enterCreateEventTrigStmt?: (ctx: CreateEventTrigStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createeventtrigstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createEventTrigStmt`. * @param ctx the parse tree */ - exitCreateeventtrigstmt?: (ctx: CreateeventtrigstmtContext) => void; + exitCreateEventTrigStmt?: (ctx: CreateEventTrigStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.event_trigger_when_item`. * @param ctx the parse tree @@ -1921,35 +1921,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitEvent_trigger_when_item?: (ctx: Event_trigger_when_itemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.altereventtrigstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterEventTrigStmt`. * @param ctx the parse tree */ - enterAltereventtrigstmt?: (ctx: AltereventtrigstmtContext) => void; + enterAlterEventTrigStmt?: (ctx: AlterEventTrigStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.altereventtrigstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterEventTrigStmt`. * @param ctx the parse tree */ - exitAltereventtrigstmt?: (ctx: AltereventtrigstmtContext) => void; + exitAlterEventTrigStmt?: (ctx: AlterEventTrigStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createassertionstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createAssertionStmt`. * @param ctx the parse tree */ - enterCreateassertionstmt?: (ctx: CreateassertionstmtContext) => void; + enterCreateAssertionStmt?: (ctx: CreateAssertionStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createassertionstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createAssertionStmt`. * @param ctx the parse tree */ - exitCreateassertionstmt?: (ctx: CreateassertionstmtContext) => void; + exitCreateAssertionStmt?: (ctx: CreateAssertionStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.definestmt`. + * Enter a parse tree produced by `PostgreSqlParser.defineStmt`. * @param ctx the parse tree */ - enterDefinestmt?: (ctx: DefinestmtContext) => void; + enterDefineStmt?: (ctx: DefineStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.definestmt`. + * Exit a parse tree produced by `PostgreSqlParser.defineStmt`. * @param ctx the parse tree */ - exitDefinestmt?: (ctx: DefinestmtContext) => void; + exitDefineStmt?: (ctx: DefineStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.definition`. * @param ctx the parse tree @@ -1981,25 +1981,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitDef_arg?: (ctx: Def_argContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.old_aggr_elem`. + * Enter a parse tree produced by `PostgreSqlParser.old_aggregate_elem`. * @param ctx the parse tree */ - enterOld_aggr_elem?: (ctx: Old_aggr_elemContext) => void; + enterOld_aggregate_elem?: (ctx: Old_aggregate_elemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.old_aggr_elem`. + * Exit a parse tree produced by `PostgreSqlParser.old_aggregate_elem`. * @param ctx the parse tree */ - exitOld_aggr_elem?: (ctx: Old_aggr_elemContext) => void; + exitOld_aggregate_elem?: (ctx: Old_aggregate_elemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterenumstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterEnumStmt`. * @param ctx the parse tree */ - enterAlterenumstmt?: (ctx: AlterenumstmtContext) => void; + enterAlterEnumStmt?: (ctx: AlterEnumStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterenumstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterEnumStmt`. * @param ctx the parse tree */ - exitAlterenumstmt?: (ctx: AlterenumstmtContext) => void; + exitAlterEnumStmt?: (ctx: AlterEnumStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.opt_if_not_exists`. * @param ctx the parse tree @@ -2011,75 +2011,75 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitOpt_if_not_exists?: (ctx: Opt_if_not_existsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createopclassstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createOperatorClassStmt`. * @param ctx the parse tree */ - enterCreateopclassstmt?: (ctx: CreateopclassstmtContext) => void; + enterCreateOperatorClassStmt?: (ctx: CreateOperatorClassStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createopclassstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createOperatorClassStmt`. * @param ctx the parse tree */ - exitCreateopclassstmt?: (ctx: CreateopclassstmtContext) => void; + exitCreateOperatorClassStmt?: (ctx: CreateOperatorClassStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opclass_item`. + * Enter a parse tree produced by `PostgreSqlParser.opClassItem`. * @param ctx the parse tree */ - enterOpclass_item?: (ctx: Opclass_itemContext) => void; + enterOpClassItem?: (ctx: OpClassItemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opclass_item`. + * Exit a parse tree produced by `PostgreSqlParser.opClassItem`. * @param ctx the parse tree */ - exitOpclass_item?: (ctx: Opclass_itemContext) => void; + exitOpClassItem?: (ctx: OpClassItemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createopfamilystmt`. + * Enter a parse tree produced by `PostgreSqlParser.createOperatorFamilyStmt`. * @param ctx the parse tree */ - enterCreateopfamilystmt?: (ctx: CreateopfamilystmtContext) => void; + enterCreateOperatorFamilyStmt?: (ctx: CreateOperatorFamilyStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createopfamilystmt`. + * Exit a parse tree produced by `PostgreSqlParser.createOperatorFamilyStmt`. * @param ctx the parse tree */ - exitCreateopfamilystmt?: (ctx: CreateopfamilystmtContext) => void; + exitCreateOperatorFamilyStmt?: (ctx: CreateOperatorFamilyStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alteropfamilystmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterOperatorFamilyStmt`. * @param ctx the parse tree */ - enterAlteropfamilystmt?: (ctx: AlteropfamilystmtContext) => void; + enterAlterOperatorFamilyStmt?: (ctx: AlterOperatorFamilyStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alteropfamilystmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterOperatorFamilyStmt`. * @param ctx the parse tree */ - exitAlteropfamilystmt?: (ctx: AlteropfamilystmtContext) => void; + exitAlterOperatorFamilyStmt?: (ctx: AlterOperatorFamilyStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opclass_drop`. + * Enter a parse tree produced by `PostgreSqlParser.opClassDrop`. * @param ctx the parse tree */ - enterOpclass_drop?: (ctx: Opclass_dropContext) => void; + enterOpClassDrop?: (ctx: OpClassDropContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opclass_drop`. + * Exit a parse tree produced by `PostgreSqlParser.opClassDrop`. * @param ctx the parse tree */ - exitOpclass_drop?: (ctx: Opclass_dropContext) => void; + exitOpClassDrop?: (ctx: OpClassDropContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.reassignownedstmt`. + * Enter a parse tree produced by `PostgreSqlParser.reassignOwnedStmt`. * @param ctx the parse tree */ - enterReassignownedstmt?: (ctx: ReassignownedstmtContext) => void; + enterReassignOwnedStmt?: (ctx: ReassignOwnedStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.reassignownedstmt`. + * Exit a parse tree produced by `PostgreSqlParser.reassignOwnedStmt`. * @param ctx the parse tree */ - exitReassignownedstmt?: (ctx: ReassignownedstmtContext) => void; + exitReassignOwnedStmt?: (ctx: ReassignOwnedStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.dropstmt`. + * Enter a parse tree produced by `PostgreSqlParser.dropStmt`. * @param ctx the parse tree */ - enterDropstmt?: (ctx: DropstmtContext) => void; + enterDropStmt?: (ctx: DropStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.dropstmt`. + * Exit a parse tree produced by `PostgreSqlParser.dropStmt`. * @param ctx the parse tree */ - exitDropstmt?: (ctx: DropstmtContext) => void; + exitDropStmt?: (ctx: DropStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.object_type_any_name`. * @param ctx the parse tree @@ -2131,15 +2131,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAttrs?: (ctx: AttrsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.truncatestmt`. + * Enter a parse tree produced by `PostgreSqlParser.truncateStmt`. * @param ctx the parse tree */ - enterTruncatestmt?: (ctx: TruncatestmtContext) => void; + enterTruncateStmt?: (ctx: TruncateStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.truncatestmt`. + * Exit a parse tree produced by `PostgreSqlParser.truncateStmt`. * @param ctx the parse tree */ - exitTruncatestmt?: (ctx: TruncatestmtContext) => void; + exitTruncateStmt?: (ctx: TruncateStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.truncate_table`. * @param ctx the parse tree @@ -2151,35 +2151,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitTruncate_table?: (ctx: Truncate_tableContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.commentstmt`. + * Enter a parse tree produced by `PostgreSqlParser.commentStmt`. * @param ctx the parse tree */ - enterCommentstmt?: (ctx: CommentstmtContext) => void; + enterCommentStmt?: (ctx: CommentStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.commentstmt`. + * Exit a parse tree produced by `PostgreSqlParser.commentStmt`. * @param ctx the parse tree */ - exitCommentstmt?: (ctx: CommentstmtContext) => void; + exitCommentStmt?: (ctx: CommentStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.seclabelstmt`. + * Enter a parse tree produced by `PostgreSqlParser.secLabelStmt`. * @param ctx the parse tree */ - enterSeclabelstmt?: (ctx: SeclabelstmtContext) => void; + enterSecLabelStmt?: (ctx: SecLabelStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.seclabelstmt`. + * Exit a parse tree produced by `PostgreSqlParser.secLabelStmt`. * @param ctx the parse tree */ - exitSeclabelstmt?: (ctx: SeclabelstmtContext) => void; + exitSecLabelStmt?: (ctx: SecLabelStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.fetchstmt`. + * Enter a parse tree produced by `PostgreSqlParser.fetchStmt`. * @param ctx the parse tree */ - enterFetchstmt?: (ctx: FetchstmtContext) => void; + enterFetchStmt?: (ctx: FetchStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.fetchstmt`. + * Exit a parse tree produced by `PostgreSqlParser.fetchStmt`. * @param ctx the parse tree */ - exitFetchstmt?: (ctx: FetchstmtContext) => void; + exitFetchStmt?: (ctx: FetchStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.fetch_args`. * @param ctx the parse tree @@ -2201,25 +2201,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitFrom_in?: (ctx: From_inContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.grantstmt`. + * Enter a parse tree produced by `PostgreSqlParser.grantStmt`. * @param ctx the parse tree */ - enterGrantstmt?: (ctx: GrantstmtContext) => void; + enterGrantStmt?: (ctx: GrantStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.grantstmt`. + * Exit a parse tree produced by `PostgreSqlParser.grantStmt`. * @param ctx the parse tree */ - exitGrantstmt?: (ctx: GrantstmtContext) => void; + exitGrantStmt?: (ctx: GrantStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.revokestmt`. + * Enter a parse tree produced by `PostgreSqlParser.revokeStmt`. * @param ctx the parse tree */ - enterRevokestmt?: (ctx: RevokestmtContext) => void; + enterRevokeStmt?: (ctx: RevokeStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.revokestmt`. + * Exit a parse tree produced by `PostgreSqlParser.revokeStmt`. * @param ctx the parse tree */ - exitRevokestmt?: (ctx: RevokestmtContext) => void; + exitRevokeStmt?: (ctx: RevokeStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.privileges`. * @param ctx the parse tree @@ -2231,15 +2231,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitPrivileges?: (ctx: PrivilegesContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.beforeprivilegeselect`. + * Enter a parse tree produced by `PostgreSqlParser.beforePrivilegeSelect`. * @param ctx the parse tree */ - enterBeforeprivilegeselect?: (ctx: BeforeprivilegeselectContext) => void; + enterBeforePrivilegeSelect?: (ctx: BeforePrivilegeSelectContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.beforeprivilegeselect`. + * Exit a parse tree produced by `PostgreSqlParser.beforePrivilegeSelect`. * @param ctx the parse tree */ - exitBeforeprivilegeselect?: (ctx: BeforeprivilegeselectContext) => void; + exitBeforePrivilegeSelect?: (ctx: BeforePrivilegeSelectContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.privilege`. * @param ctx the parse tree @@ -2271,35 +2271,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitGrantee_list?: (ctx: Grantee_listContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.grantrolestmt`. + * Enter a parse tree produced by `PostgreSqlParser.grantRoleStmt`. * @param ctx the parse tree */ - enterGrantrolestmt?: (ctx: GrantrolestmtContext) => void; + enterGrantRoleStmt?: (ctx: GrantRoleStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.grantrolestmt`. + * Exit a parse tree produced by `PostgreSqlParser.grantRoleStmt`. * @param ctx the parse tree */ - exitGrantrolestmt?: (ctx: GrantrolestmtContext) => void; + exitGrantRoleStmt?: (ctx: GrantRoleStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.revokerolestmt`. + * Enter a parse tree produced by `PostgreSqlParser.revokeRoleStmt`. * @param ctx the parse tree */ - enterRevokerolestmt?: (ctx: RevokerolestmtContext) => void; + enterRevokeRoleStmt?: (ctx: RevokeRoleStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.revokerolestmt`. + * Exit a parse tree produced by `PostgreSqlParser.revokeRoleStmt`. * @param ctx the parse tree */ - exitRevokerolestmt?: (ctx: RevokerolestmtContext) => void; + exitRevokeRoleStmt?: (ctx: RevokeRoleStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterdefaultprivilegesstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterDefaultPrivilegesStmt`. * @param ctx the parse tree */ - enterAlterdefaultprivilegesstmt?: (ctx: AlterdefaultprivilegesstmtContext) => void; + enterAlterDefaultPrivilegesStmt?: (ctx: AlterDefaultPrivilegesStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterdefaultprivilegesstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterDefaultPrivilegesStmt`. * @param ctx the parse tree */ - exitAlterdefaultprivilegesstmt?: (ctx: AlterdefaultprivilegesstmtContext) => void; + exitAlterDefaultPrivilegesStmt?: (ctx: AlterDefaultPrivilegesStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.defaclaction`. * @param ctx the parse tree @@ -2321,15 +2321,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitDefacl_privilege_target?: (ctx: Defacl_privilege_targetContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.indexstmt`. + * Enter a parse tree produced by `PostgreSqlParser.indexStmt`. * @param ctx the parse tree */ - enterIndexstmt?: (ctx: IndexstmtContext) => void; + enterIndexStmt?: (ctx: IndexStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.indexstmt`. + * Exit a parse tree produced by `PostgreSqlParser.indexStmt`. * @param ctx the parse tree */ - exitIndexstmt?: (ctx: IndexstmtContext) => void; + exitIndexStmt?: (ctx: IndexStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.index_params`. * @param ctx the parse tree @@ -2351,15 +2351,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitIndex_elem?: (ctx: Index_elemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createfunctionstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createFunctionStmt`. * @param ctx the parse tree */ - enterCreatefunctionstmt?: (ctx: CreatefunctionstmtContext) => void; + enterCreateFunctionStmt?: (ctx: CreateFunctionStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createfunctionstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createFunctionStmt`. * @param ctx the parse tree */ - exitCreatefunctionstmt?: (ctx: CreatefunctionstmtContext) => void; + exitCreateFunctionStmt?: (ctx: CreateFunctionStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.opt_or_replace`. * @param ctx the parse tree @@ -2391,65 +2391,65 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitFunc_args_list?: (ctx: Func_args_listContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.routine_with_argtypes_list`. + * Enter a parse tree produced by `PostgreSqlParser.routineWithArgTypesList`. * @param ctx the parse tree */ - enterRoutine_with_argtypes_list?: (ctx: Routine_with_argtypes_listContext) => void; + enterRoutineWithArgTypesList?: (ctx: RoutineWithArgTypesListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.routine_with_argtypes_list`. + * Exit a parse tree produced by `PostgreSqlParser.routineWithArgTypesList`. * @param ctx the parse tree */ - exitRoutine_with_argtypes_list?: (ctx: Routine_with_argtypes_listContext) => void; + exitRoutineWithArgTypesList?: (ctx: RoutineWithArgTypesListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.routine_with_argtypes`. + * Enter a parse tree produced by `PostgreSqlParser.routineWithArgTypes`. * @param ctx the parse tree */ - enterRoutine_with_argtypes?: (ctx: Routine_with_argtypesContext) => void; + enterRoutineWithArgTypes?: (ctx: RoutineWithArgTypesContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.routine_with_argtypes`. + * Exit a parse tree produced by `PostgreSqlParser.routineWithArgTypes`. * @param ctx the parse tree */ - exitRoutine_with_argtypes?: (ctx: Routine_with_argtypesContext) => void; + exitRoutineWithArgTypes?: (ctx: RoutineWithArgTypesContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.procedure_with_argtypes_list`. + * Enter a parse tree produced by `PostgreSqlParser.procedureWithArgTypesList`. * @param ctx the parse tree */ - enterProcedure_with_argtypes_list?: (ctx: Procedure_with_argtypes_listContext) => void; + enterProcedureWithArgTypesList?: (ctx: ProcedureWithArgTypesListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.procedure_with_argtypes_list`. + * Exit a parse tree produced by `PostgreSqlParser.procedureWithArgTypesList`. * @param ctx the parse tree */ - exitProcedure_with_argtypes_list?: (ctx: Procedure_with_argtypes_listContext) => void; + exitProcedureWithArgTypesList?: (ctx: ProcedureWithArgTypesListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.procedure_with_argtypes`. + * Enter a parse tree produced by `PostgreSqlParser.procedureWithArgTypes`. * @param ctx the parse tree */ - enterProcedure_with_argtypes?: (ctx: Procedure_with_argtypesContext) => void; + enterProcedureWithArgTypes?: (ctx: ProcedureWithArgTypesContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.procedure_with_argtypes`. + * Exit a parse tree produced by `PostgreSqlParser.procedureWithArgTypes`. * @param ctx the parse tree */ - exitProcedure_with_argtypes?: (ctx: Procedure_with_argtypesContext) => void; + exitProcedureWithArgTypes?: (ctx: ProcedureWithArgTypesContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.function_with_argtypes_list`. + * Enter a parse tree produced by `PostgreSqlParser.functionWithArgTypesList`. * @param ctx the parse tree */ - enterFunction_with_argtypes_list?: (ctx: Function_with_argtypes_listContext) => void; + enterFunctionWithArgTypesList?: (ctx: FunctionWithArgTypesListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.function_with_argtypes_list`. + * Exit a parse tree produced by `PostgreSqlParser.functionWithArgTypesList`. * @param ctx the parse tree */ - exitFunction_with_argtypes_list?: (ctx: Function_with_argtypes_listContext) => void; + exitFunctionWithArgTypesList?: (ctx: FunctionWithArgTypesListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.function_with_argtypes`. + * Enter a parse tree produced by `PostgreSqlParser.functionWithArgTypes`. * @param ctx the parse tree */ - enterFunction_with_argtypes?: (ctx: Function_with_argtypesContext) => void; + enterFunctionWithArgTypes?: (ctx: FunctionWithArgTypesContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.function_with_argtypes`. + * Exit a parse tree produced by `PostgreSqlParser.functionWithArgTypes`. * @param ctx the parse tree */ - exitFunction_with_argtypes?: (ctx: Function_with_argtypesContext) => void; + exitFunctionWithArgTypes?: (ctx: FunctionWithArgTypesContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.func_arg`. * @param ctx the parse tree @@ -2491,25 +2491,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitFunc_arg_with_default?: (ctx: Func_arg_with_defaultContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.aggr_args`. + * Enter a parse tree produced by `PostgreSqlParser.aggregate_args`. * @param ctx the parse tree */ - enterAggr_args?: (ctx: Aggr_argsContext) => void; + enterAggregate_args?: (ctx: Aggregate_argsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.aggr_args`. + * Exit a parse tree produced by `PostgreSqlParser.aggregate_args`. * @param ctx the parse tree */ - exitAggr_args?: (ctx: Aggr_argsContext) => void; + exitAggregate_args?: (ctx: Aggregate_argsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.aggregate_with_argtypes`. + * Enter a parse tree produced by `PostgreSqlParser.aggregateWithArgTypes`. * @param ctx the parse tree */ - enterAggregate_with_argtypes?: (ctx: Aggregate_with_argtypesContext) => void; + enterAggregateWithArgTypes?: (ctx: AggregateWithArgTypesContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.aggregate_with_argtypes`. + * Exit a parse tree produced by `PostgreSqlParser.aggregateWithArgTypes`. * @param ctx the parse tree */ - exitAggregate_with_argtypes?: (ctx: Aggregate_with_argtypesContext) => void; + exitAggregateWithArgTypes?: (ctx: AggregateWithArgTypesContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.common_func_opt_item`. * @param ctx the parse tree @@ -2521,15 +2521,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCommon_func_opt_item?: (ctx: Common_func_opt_itemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createfunc_opt_item`. + * Enter a parse tree produced by `PostgreSqlParser.create_func_opt_item`. * @param ctx the parse tree */ - enterCreatefunc_opt_item?: (ctx: Createfunc_opt_itemContext) => void; + enterCreate_func_opt_item?: (ctx: Create_func_opt_itemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createfunc_opt_item`. + * Exit a parse tree produced by `PostgreSqlParser.create_func_opt_item`. * @param ctx the parse tree */ - exitCreatefunc_opt_item?: (ctx: Createfunc_opt_itemContext) => void; + exitCreate_func_opt_item?: (ctx: Create_func_opt_itemContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.opt_definition`. * @param ctx the parse tree @@ -2551,55 +2551,55 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitTable_func_column?: (ctx: Table_func_columnContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterfunctionstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterFunctionStmt`. * @param ctx the parse tree */ - enterAlterfunctionstmt?: (ctx: AlterfunctionstmtContext) => void; + enterAlterFunctionStmt?: (ctx: AlterFunctionStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterfunctionstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterFunctionStmt`. * @param ctx the parse tree */ - exitAlterfunctionstmt?: (ctx: AlterfunctionstmtContext) => void; + exitAlterFunctionStmt?: (ctx: AlterFunctionStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.removefuncstmt`. + * Enter a parse tree produced by `PostgreSqlParser.removeFuncStmt`. * @param ctx the parse tree */ - enterRemovefuncstmt?: (ctx: RemovefuncstmtContext) => void; + enterRemoveFuncStmt?: (ctx: RemoveFuncStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.removefuncstmt`. + * Exit a parse tree produced by `PostgreSqlParser.removeFuncStmt`. * @param ctx the parse tree */ - exitRemovefuncstmt?: (ctx: RemovefuncstmtContext) => void; + exitRemoveFuncStmt?: (ctx: RemoveFuncStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.removeaggrstmt`. + * Enter a parse tree produced by `PostgreSqlParser.removeAggregateStmt`. * @param ctx the parse tree */ - enterRemoveaggrstmt?: (ctx: RemoveaggrstmtContext) => void; + enterRemoveAggregateStmt?: (ctx: RemoveAggregateStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.removeaggrstmt`. + * Exit a parse tree produced by `PostgreSqlParser.removeAggregateStmt`. * @param ctx the parse tree */ - exitRemoveaggrstmt?: (ctx: RemoveaggrstmtContext) => void; + exitRemoveAggregateStmt?: (ctx: RemoveAggregateStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.removeoperstmt`. + * Enter a parse tree produced by `PostgreSqlParser.removeOperatorStmt`. * @param ctx the parse tree */ - enterRemoveoperstmt?: (ctx: RemoveoperstmtContext) => void; + enterRemoveOperatorStmt?: (ctx: RemoveOperatorStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.removeoperstmt`. + * Exit a parse tree produced by `PostgreSqlParser.removeOperatorStmt`. * @param ctx the parse tree */ - exitRemoveoperstmt?: (ctx: RemoveoperstmtContext) => void; + exitRemoveOperatorStmt?: (ctx: RemoveOperatorStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.oper_argtypes`. + * Enter a parse tree produced by `PostgreSqlParser.operatorArgTypes`. * @param ctx the parse tree */ - enterOper_argtypes?: (ctx: Oper_argtypesContext) => void; + enterOperatorArgTypes?: (ctx: OperatorArgTypesContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.oper_argtypes`. + * Exit a parse tree produced by `PostgreSqlParser.operatorArgTypes`. * @param ctx the parse tree */ - exitOper_argtypes?: (ctx: Oper_argtypesContext) => void; + exitOperatorArgTypes?: (ctx: OperatorArgTypesContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.any_operator`. * @param ctx the parse tree @@ -2611,35 +2611,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAny_operator?: (ctx: Any_operatorContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.operator_with_argtypes`. + * Enter a parse tree produced by `PostgreSqlParser.operatorWithArgTypes`. * @param ctx the parse tree */ - enterOperator_with_argtypes?: (ctx: Operator_with_argtypesContext) => void; + enterOperatorWithArgTypes?: (ctx: OperatorWithArgTypesContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.operator_with_argtypes`. + * Exit a parse tree produced by `PostgreSqlParser.operatorWithArgTypes`. * @param ctx the parse tree */ - exitOperator_with_argtypes?: (ctx: Operator_with_argtypesContext) => void; + exitOperatorWithArgTypes?: (ctx: OperatorWithArgTypesContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.dostmt`. + * Enter a parse tree produced by `PostgreSqlParser.doStmt`. * @param ctx the parse tree */ - enterDostmt?: (ctx: DostmtContext) => void; + enterDoStmt?: (ctx: DoStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.dostmt`. + * Exit a parse tree produced by `PostgreSqlParser.doStmt`. * @param ctx the parse tree */ - exitDostmt?: (ctx: DostmtContext) => void; + exitDoStmt?: (ctx: DoStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createcaststmt`. + * Enter a parse tree produced by `PostgreSqlParser.createCastStmt`. * @param ctx the parse tree */ - enterCreatecaststmt?: (ctx: CreatecaststmtContext) => void; + enterCreateCastStmt?: (ctx: CreateCastStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createcaststmt`. + * Exit a parse tree produced by `PostgreSqlParser.createCastStmt`. * @param ctx the parse tree */ - exitCreatecaststmt?: (ctx: CreatecaststmtContext) => void; + exitCreateCastStmt?: (ctx: CreateCastStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.opt_if_exists`. * @param ctx the parse tree @@ -2651,15 +2651,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitOpt_if_exists?: (ctx: Opt_if_existsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createtransformstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createTransformStmt`. * @param ctx the parse tree */ - enterCreatetransformstmt?: (ctx: CreatetransformstmtContext) => void; + enterCreateTransformStmt?: (ctx: CreateTransformStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createtransformstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createTransformStmt`. * @param ctx the parse tree */ - exitCreatetransformstmt?: (ctx: CreatetransformstmtContext) => void; + exitCreateTransformStmt?: (ctx: CreateTransformStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.sql_with_function`. * @param ctx the parse tree @@ -2671,65 +2671,65 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitSql_with_function?: (ctx: Sql_with_functionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.reindexstmt`. + * Enter a parse tree produced by `PostgreSqlParser.reindexStmt`. * @param ctx the parse tree */ - enterReindexstmt?: (ctx: ReindexstmtContext) => void; + enterReindexStmt?: (ctx: ReindexStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.reindexstmt`. + * Exit a parse tree produced by `PostgreSqlParser.reindexStmt`. * @param ctx the parse tree */ - exitReindexstmt?: (ctx: ReindexstmtContext) => void; + exitReindexStmt?: (ctx: ReindexStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.altertblspcstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterTblSpcStmt`. * @param ctx the parse tree */ - enterAltertblspcstmt?: (ctx: AltertblspcstmtContext) => void; + enterAlterTblSpcStmt?: (ctx: AlterTblSpcStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.altertblspcstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterTblSpcStmt`. * @param ctx the parse tree */ - exitAltertblspcstmt?: (ctx: AltertblspcstmtContext) => void; + exitAlterTblSpcStmt?: (ctx: AlterTblSpcStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.renamestmt`. + * Enter a parse tree produced by `PostgreSqlParser.renameStmt`. * @param ctx the parse tree */ - enterRenamestmt?: (ctx: RenamestmtContext) => void; + enterRenameStmt?: (ctx: RenameStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.renamestmt`. + * Exit a parse tree produced by `PostgreSqlParser.renameStmt`. * @param ctx the parse tree */ - exitRenamestmt?: (ctx: RenamestmtContext) => void; + exitRenameStmt?: (ctx: RenameStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterobjectdependsstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterObjectDependsStmt`. * @param ctx the parse tree */ - enterAlterobjectdependsstmt?: (ctx: AlterobjectdependsstmtContext) => void; + enterAlterObjectDependsStmt?: (ctx: AlterObjectDependsStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterobjectdependsstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterObjectDependsStmt`. * @param ctx the parse tree */ - exitAlterobjectdependsstmt?: (ctx: AlterobjectdependsstmtContext) => void; + exitAlterObjectDependsStmt?: (ctx: AlterObjectDependsStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterobjectschemastmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterObjectSchemaStmt`. * @param ctx the parse tree */ - enterAlterobjectschemastmt?: (ctx: AlterobjectschemastmtContext) => void; + enterAlterObjectSchemaStmt?: (ctx: AlterObjectSchemaStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterobjectschemastmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterObjectSchemaStmt`. * @param ctx the parse tree */ - exitAlterobjectschemastmt?: (ctx: AlterobjectschemastmtContext) => void; + exitAlterObjectSchemaStmt?: (ctx: AlterObjectSchemaStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alteroperatorstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterOperatorStmt`. * @param ctx the parse tree */ - enterAlteroperatorstmt?: (ctx: AlteroperatorstmtContext) => void; + enterAlterOperatorStmt?: (ctx: AlterOperatorStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alteroperatorstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterOperatorStmt`. * @param ctx the parse tree */ - exitAlteroperatorstmt?: (ctx: AlteroperatorstmtContext) => void; + exitAlterOperatorStmt?: (ctx: AlterOperatorStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.operator_def_list`. * @param ctx the parse tree @@ -2751,95 +2751,95 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitOperator_def_elem?: (ctx: Operator_def_elemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.altertypestmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterTypeStmt`. * @param ctx the parse tree */ - enterAltertypestmt?: (ctx: AltertypestmtContext) => void; + enterAlterTypeStmt?: (ctx: AlterTypeStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.altertypestmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterTypeStmt`. * @param ctx the parse tree */ - exitAltertypestmt?: (ctx: AltertypestmtContext) => void; + exitAlterTypeStmt?: (ctx: AlterTypeStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterownerstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterOwnerStmt`. * @param ctx the parse tree */ - enterAlterownerstmt?: (ctx: AlterownerstmtContext) => void; + enterAlterOwnerStmt?: (ctx: AlterOwnerStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterownerstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterOwnerStmt`. * @param ctx the parse tree */ - exitAlterownerstmt?: (ctx: AlterownerstmtContext) => void; + exitAlterOwnerStmt?: (ctx: AlterOwnerStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createpublicationstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createPublicationStmt`. * @param ctx the parse tree */ - enterCreatepublicationstmt?: (ctx: CreatepublicationstmtContext) => void; + enterCreatePublicationStmt?: (ctx: CreatePublicationStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createpublicationstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createPublicationStmt`. * @param ctx the parse tree */ - exitCreatepublicationstmt?: (ctx: CreatepublicationstmtContext) => void; + exitCreatePublicationStmt?: (ctx: CreatePublicationStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterpublicationstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterPublicationStmt`. * @param ctx the parse tree */ - enterAlterpublicationstmt?: (ctx: AlterpublicationstmtContext) => void; + enterAlterPublicationStmt?: (ctx: AlterPublicationStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterpublicationstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterPublicationStmt`. * @param ctx the parse tree */ - exitAlterpublicationstmt?: (ctx: AlterpublicationstmtContext) => void; + exitAlterPublicationStmt?: (ctx: AlterPublicationStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createsubscriptionstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createSubscriptionStmt`. * @param ctx the parse tree */ - enterCreatesubscriptionstmt?: (ctx: CreatesubscriptionstmtContext) => void; + enterCreateSubscriptionStmt?: (ctx: CreateSubscriptionStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createsubscriptionstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createSubscriptionStmt`. * @param ctx the parse tree */ - exitCreatesubscriptionstmt?: (ctx: CreatesubscriptionstmtContext) => void; + exitCreateSubscriptionStmt?: (ctx: CreateSubscriptionStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.altersubscriptionstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterSubscriptionStmt`. * @param ctx the parse tree */ - enterAltersubscriptionstmt?: (ctx: AltersubscriptionstmtContext) => void; + enterAlterSubscriptionStmt?: (ctx: AlterSubscriptionStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.altersubscriptionstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterSubscriptionStmt`. * @param ctx the parse tree */ - exitAltersubscriptionstmt?: (ctx: AltersubscriptionstmtContext) => void; + exitAlterSubscriptionStmt?: (ctx: AlterSubscriptionStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.rulestmt`. + * Enter a parse tree produced by `PostgreSqlParser.ruleStmt`. * @param ctx the parse tree */ - enterRulestmt?: (ctx: RulestmtContext) => void; + enterRuleStmt?: (ctx: RuleStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.rulestmt`. + * Exit a parse tree produced by `PostgreSqlParser.ruleStmt`. * @param ctx the parse tree */ - exitRulestmt?: (ctx: RulestmtContext) => void; + exitRuleStmt?: (ctx: RuleStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.ruleactionstmt`. + * Enter a parse tree produced by `PostgreSqlParser.ruleActionStmt`. * @param ctx the parse tree */ - enterRuleactionstmt?: (ctx: RuleactionstmtContext) => void; + enterRuleActionStmt?: (ctx: RuleActionStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.ruleactionstmt`. + * Exit a parse tree produced by `PostgreSqlParser.ruleActionStmt`. * @param ctx the parse tree */ - exitRuleactionstmt?: (ctx: RuleactionstmtContext) => void; + exitRuleActionStmt?: (ctx: RuleActionStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.notifystmt`. + * Enter a parse tree produced by `PostgreSqlParser.notifyStmt`. * @param ctx the parse tree */ - enterNotifystmt?: (ctx: NotifystmtContext) => void; + enterNotifyStmt?: (ctx: NotifyStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.notifystmt`. + * Exit a parse tree produced by `PostgreSqlParser.notifyStmt`. * @param ctx the parse tree */ - exitNotifystmt?: (ctx: NotifystmtContext) => void; + exitNotifyStmt?: (ctx: NotifyStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.notify_payload`. * @param ctx the parse tree @@ -2851,35 +2851,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitNotify_payload?: (ctx: Notify_payloadContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.listenstmt`. + * Enter a parse tree produced by `PostgreSqlParser.listenStmt`. * @param ctx the parse tree */ - enterListenstmt?: (ctx: ListenstmtContext) => void; + enterListenStmt?: (ctx: ListenStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.listenstmt`. + * Exit a parse tree produced by `PostgreSqlParser.listenStmt`. * @param ctx the parse tree */ - exitListenstmt?: (ctx: ListenstmtContext) => void; + exitListenStmt?: (ctx: ListenStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.unlistenstmt`. + * Enter a parse tree produced by `PostgreSqlParser.unListenStmt`. * @param ctx the parse tree */ - enterUnlistenstmt?: (ctx: UnlistenstmtContext) => void; + enterUnListenStmt?: (ctx: UnListenStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.unlistenstmt`. + * Exit a parse tree produced by `PostgreSqlParser.unListenStmt`. * @param ctx the parse tree */ - exitUnlistenstmt?: (ctx: UnlistenstmtContext) => void; + exitUnListenStmt?: (ctx: UnListenStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.transactionstmt`. + * Enter a parse tree produced by `PostgreSqlParser.transactionStmt`. * @param ctx the parse tree */ - enterTransactionstmt?: (ctx: TransactionstmtContext) => void; + enterTransactionStmt?: (ctx: TransactionStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.transactionstmt`. + * Exit a parse tree produced by `PostgreSqlParser.transactionStmt`. * @param ctx the parse tree */ - exitTransactionstmt?: (ctx: TransactionstmtContext) => void; + exitTransactionStmt?: (ctx: TransactionStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.opt_transaction`. * @param ctx the parse tree @@ -2912,168 +2912,168 @@ export class PostgreSqlParserListener implements ParseTreeListener { exitTransaction_mode_list?: (ctx: Transaction_mode_listContext) => void; /** * Enter a parse tree produced by the `createView` - * labeled alternative in `PostgreSqlParser.viewstmt`. + * labeled alternative in `PostgreSqlParser.viewStmt`. * @param ctx the parse tree */ enterCreateView?: (ctx: CreateViewContext) => void; /** * Exit a parse tree produced by the `createView` - * labeled alternative in `PostgreSqlParser.viewstmt`. + * labeled alternative in `PostgreSqlParser.viewStmt`. * @param ctx the parse tree */ exitCreateView?: (ctx: CreateViewContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.loadstmt`. + * Enter a parse tree produced by `PostgreSqlParser.loadStmt`. * @param ctx the parse tree */ - enterLoadstmt?: (ctx: LoadstmtContext) => void; + enterLoadStmt?: (ctx: LoadStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.loadstmt`. + * Exit a parse tree produced by `PostgreSqlParser.loadStmt`. * @param ctx the parse tree */ - exitLoadstmt?: (ctx: LoadstmtContext) => void; + exitLoadStmt?: (ctx: LoadStmtContext) => void; /** * Enter a parse tree produced by the `createDatabase` - * labeled alternative in `PostgreSqlParser.createdbstmt`. + * labeled alternative in `PostgreSqlParser.createDbStmt`. * @param ctx the parse tree */ enterCreateDatabase?: (ctx: CreateDatabaseContext) => void; /** * Exit a parse tree produced by the `createDatabase` - * labeled alternative in `PostgreSqlParser.createdbstmt`. + * labeled alternative in `PostgreSqlParser.createDbStmt`. * @param ctx the parse tree */ exitCreateDatabase?: (ctx: CreateDatabaseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createdb_opt_item`. + * Enter a parse tree produced by `PostgreSqlParser.create_db_opt_item`. * @param ctx the parse tree */ - enterCreatedb_opt_item?: (ctx: Createdb_opt_itemContext) => void; + enterCreate_db_opt_item?: (ctx: Create_db_opt_itemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createdb_opt_item`. + * Exit a parse tree produced by `PostgreSqlParser.create_db_opt_item`. * @param ctx the parse tree */ - exitCreatedb_opt_item?: (ctx: Createdb_opt_itemContext) => void; + exitCreate_db_opt_item?: (ctx: Create_db_opt_itemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterdatabasestmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterDatabaseStmt`. * @param ctx the parse tree */ - enterAlterdatabasestmt?: (ctx: AlterdatabasestmtContext) => void; + enterAlterDatabaseStmt?: (ctx: AlterDatabaseStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterdatabasestmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterDatabaseStmt`. * @param ctx the parse tree */ - exitAlterdatabasestmt?: (ctx: AlterdatabasestmtContext) => void; + exitAlterDatabaseStmt?: (ctx: AlterDatabaseStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterdatabasesetstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterDatabaseSetStmt`. * @param ctx the parse tree */ - enterAlterdatabasesetstmt?: (ctx: AlterdatabasesetstmtContext) => void; + enterAlterDatabaseSetStmt?: (ctx: AlterDatabaseSetStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterdatabasesetstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterDatabaseSetStmt`. * @param ctx the parse tree */ - exitAlterdatabasesetstmt?: (ctx: AlterdatabasesetstmtContext) => void; + exitAlterDatabaseSetStmt?: (ctx: AlterDatabaseSetStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.altercollationstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterCollationStmt`. * @param ctx the parse tree */ - enterAltercollationstmt?: (ctx: AltercollationstmtContext) => void; + enterAlterCollationStmt?: (ctx: AlterCollationStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.altercollationstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterCollationStmt`. * @param ctx the parse tree */ - exitAltercollationstmt?: (ctx: AltercollationstmtContext) => void; + exitAlterCollationStmt?: (ctx: AlterCollationStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.altersystemstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterSystemStmt`. * @param ctx the parse tree */ - enterAltersystemstmt?: (ctx: AltersystemstmtContext) => void; + enterAlterSystemStmt?: (ctx: AlterSystemStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.altersystemstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterSystemStmt`. * @param ctx the parse tree */ - exitAltersystemstmt?: (ctx: AltersystemstmtContext) => void; + exitAlterSystemStmt?: (ctx: AlterSystemStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createdomainstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createDomainStmt`. * @param ctx the parse tree */ - enterCreatedomainstmt?: (ctx: CreatedomainstmtContext) => void; + enterCreateDomainStmt?: (ctx: CreateDomainStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createdomainstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createDomainStmt`. * @param ctx the parse tree */ - exitCreatedomainstmt?: (ctx: CreatedomainstmtContext) => void; + exitCreateDomainStmt?: (ctx: CreateDomainStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alterdomainstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterDomainStmt`. * @param ctx the parse tree */ - enterAlterdomainstmt?: (ctx: AlterdomainstmtContext) => void; + enterAlterDomainStmt?: (ctx: AlterDomainStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alterdomainstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterDomainStmt`. * @param ctx the parse tree */ - exitAlterdomainstmt?: (ctx: AlterdomainstmtContext) => void; + exitAlterDomainStmt?: (ctx: AlterDomainStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.altertsdictionarystmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterSearchDictionaryStmt`. * @param ctx the parse tree */ - enterAltertsdictionarystmt?: (ctx: AltertsdictionarystmtContext) => void; + enterAlterSearchDictionaryStmt?: (ctx: AlterSearchDictionaryStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.altertsdictionarystmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterSearchDictionaryStmt`. * @param ctx the parse tree */ - exitAltertsdictionarystmt?: (ctx: AltertsdictionarystmtContext) => void; + exitAlterSearchDictionaryStmt?: (ctx: AlterSearchDictionaryStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.altertsconfigurationstmt`. + * Enter a parse tree produced by `PostgreSqlParser.alterSearchConfigurationStmt`. * @param ctx the parse tree */ - enterAltertsconfigurationstmt?: (ctx: AltertsconfigurationstmtContext) => void; + enterAlterSearchConfigurationStmt?: (ctx: AlterSearchConfigurationStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.altertsconfigurationstmt`. + * Exit a parse tree produced by `PostgreSqlParser.alterSearchConfigurationStmt`. * @param ctx the parse tree */ - exitAltertsconfigurationstmt?: (ctx: AltertsconfigurationstmtContext) => void; + exitAlterSearchConfigurationStmt?: (ctx: AlterSearchConfigurationStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.createconversionstmt`. + * Enter a parse tree produced by `PostgreSqlParser.createConversionStmt`. * @param ctx the parse tree */ - enterCreateconversionstmt?: (ctx: CreateconversionstmtContext) => void; + enterCreateConversionStmt?: (ctx: CreateConversionStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.createconversionstmt`. + * Exit a parse tree produced by `PostgreSqlParser.createConversionStmt`. * @param ctx the parse tree */ - exitCreateconversionstmt?: (ctx: CreateconversionstmtContext) => void; + exitCreateConversionStmt?: (ctx: CreateConversionStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.clusterstmt`. + * Enter a parse tree produced by `PostgreSqlParser.clusterStmt`. * @param ctx the parse tree */ - enterClusterstmt?: (ctx: ClusterstmtContext) => void; + enterClusterStmt?: (ctx: ClusterStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.clusterstmt`. + * Exit a parse tree produced by `PostgreSqlParser.clusterStmt`. * @param ctx the parse tree */ - exitClusterstmt?: (ctx: ClusterstmtContext) => void; + exitClusterStmt?: (ctx: ClusterStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.vacuumstmt`. + * Enter a parse tree produced by `PostgreSqlParser.vacuumStmt`. * @param ctx the parse tree */ - enterVacuumstmt?: (ctx: VacuumstmtContext) => void; + enterVacuumStmt?: (ctx: VacuumStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.vacuumstmt`. + * Exit a parse tree produced by `PostgreSqlParser.vacuumStmt`. * @param ctx the parse tree */ - exitVacuumstmt?: (ctx: VacuumstmtContext) => void; + exitVacuumStmt?: (ctx: VacuumStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.analyzestmt`. + * Enter a parse tree produced by `PostgreSqlParser.analyzeStmt`. * @param ctx the parse tree */ - enterAnalyzestmt?: (ctx: AnalyzestmtContext) => void; + enterAnalyzeStmt?: (ctx: AnalyzeStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.analyzestmt`. + * Exit a parse tree produced by `PostgreSqlParser.analyzeStmt`. * @param ctx the parse tree */ - exitAnalyzestmt?: (ctx: AnalyzestmtContext) => void; + exitAnalyzeStmt?: (ctx: AnalyzeStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.analyze_keyword`. * @param ctx the parse tree @@ -3135,25 +3135,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitVacuum_relation_list?: (ctx: Vacuum_relation_listContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.explainstmt`. + * Enter a parse tree produced by `PostgreSqlParser.explainStmt`. * @param ctx the parse tree */ - enterExplainstmt?: (ctx: ExplainstmtContext) => void; + enterExplainStmt?: (ctx: ExplainStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.explainstmt`. + * Exit a parse tree produced by `PostgreSqlParser.explainStmt`. * @param ctx the parse tree */ - exitExplainstmt?: (ctx: ExplainstmtContext) => void; + exitExplainStmt?: (ctx: ExplainStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.explainablestmt`. + * Enter a parse tree produced by `PostgreSqlParser.explainableStmt`. * @param ctx the parse tree */ - enterExplainablestmt?: (ctx: ExplainablestmtContext) => void; + enterExplainableStmt?: (ctx: ExplainableStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.explainablestmt`. + * Exit a parse tree produced by `PostgreSqlParser.explainableStmt`. * @param ctx the parse tree */ - exitExplainablestmt?: (ctx: ExplainablestmtContext) => void; + exitExplainableStmt?: (ctx: ExplainableStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.explain_option_list`. * @param ctx the parse tree @@ -3165,15 +3165,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitExplain_option_list?: (ctx: Explain_option_listContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.preparestmt`. + * Enter a parse tree produced by `PostgreSqlParser.prepareStmt`. * @param ctx the parse tree */ - enterPreparestmt?: (ctx: PreparestmtContext) => void; + enterPrepareStmt?: (ctx: PrepareStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.preparestmt`. + * Exit a parse tree produced by `PostgreSqlParser.prepareStmt`. * @param ctx the parse tree */ - exitPreparestmt?: (ctx: PreparestmtContext) => void; + exitPrepareStmt?: (ctx: PrepareStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.prep_type_clause`. * @param ctx the parse tree @@ -3185,25 +3185,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitPrep_type_clause?: (ctx: Prep_type_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.preparablestmt`. + * Enter a parse tree produced by `PostgreSqlParser.preParableStmt`. * @param ctx the parse tree */ - enterPreparablestmt?: (ctx: PreparablestmtContext) => void; + enterPreParableStmt?: (ctx: PreParableStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.preparablestmt`. + * Exit a parse tree produced by `PostgreSqlParser.preParableStmt`. * @param ctx the parse tree */ - exitPreparablestmt?: (ctx: PreparablestmtContext) => void; + exitPreParableStmt?: (ctx: PreParableStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.executestmt`. + * Enter a parse tree produced by `PostgreSqlParser.executeStmt`. * @param ctx the parse tree */ - enterExecutestmt?: (ctx: ExecutestmtContext) => void; + enterExecuteStmt?: (ctx: ExecuteStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.executestmt`. + * Exit a parse tree produced by `PostgreSqlParser.executeStmt`. * @param ctx the parse tree */ - exitExecutestmt?: (ctx: ExecutestmtContext) => void; + exitExecuteStmt?: (ctx: ExecuteStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.execute_param_clause`. * @param ctx the parse tree @@ -3215,24 +3215,24 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitExecute_param_clause?: (ctx: Execute_param_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.deallocatestmt`. + * Enter a parse tree produced by `PostgreSqlParser.dealLocateStmt`. * @param ctx the parse tree */ - enterDeallocatestmt?: (ctx: DeallocatestmtContext) => void; + enterDealLocateStmt?: (ctx: DealLocateStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.deallocatestmt`. + * Exit a parse tree produced by `PostgreSqlParser.dealLocateStmt`. * @param ctx the parse tree */ - exitDeallocatestmt?: (ctx: DeallocatestmtContext) => void; + exitDealLocateStmt?: (ctx: DealLocateStmtContext) => void; /** * Enter a parse tree produced by the `insertStatement` - * labeled alternative in `PostgreSqlParser.insertstmt`. + * labeled alternative in `PostgreSqlParser.insertStmt`. * @param ctx the parse tree */ enterInsertStatement?: (ctx: InsertStatementContext) => void; /** * Exit a parse tree produced by the `insertStatement` - * labeled alternative in `PostgreSqlParser.insertstmt`. + * labeled alternative in `PostgreSqlParser.insertStmt`. * @param ctx the parse tree */ exitInsertStatement?: (ctx: InsertStatementContext) => void; @@ -3277,35 +3277,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitReturning_clause?: (ctx: Returning_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.deletestmt`. + * Enter a parse tree produced by `PostgreSqlParser.deleteStmt`. * @param ctx the parse tree */ - enterDeletestmt?: (ctx: DeletestmtContext) => void; + enterDeleteStmt?: (ctx: DeleteStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.deletestmt`. + * Exit a parse tree produced by `PostgreSqlParser.deleteStmt`. * @param ctx the parse tree */ - exitDeletestmt?: (ctx: DeletestmtContext) => void; + exitDeleteStmt?: (ctx: DeleteStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.lockstmt`. + * Enter a parse tree produced by `PostgreSqlParser.lockStmt`. * @param ctx the parse tree */ - enterLockstmt?: (ctx: LockstmtContext) => void; + enterLockStmt?: (ctx: LockStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.lockstmt`. + * Exit a parse tree produced by `PostgreSqlParser.lockStmt`. * @param ctx the parse tree */ - exitLockstmt?: (ctx: LockstmtContext) => void; + exitLockStmt?: (ctx: LockStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.updatestmt`. + * Enter a parse tree produced by `PostgreSqlParser.updateStmt`. * @param ctx the parse tree */ - enterUpdatestmt?: (ctx: UpdatestmtContext) => void; + enterUpdateStmt?: (ctx: UpdateStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.updatestmt`. + * Exit a parse tree produced by `PostgreSqlParser.updateStmt`. * @param ctx the parse tree */ - exitUpdatestmt?: (ctx: UpdatestmtContext) => void; + exitUpdateStmt?: (ctx: UpdateStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.set_clause_list`. * @param ctx the parse tree @@ -3327,24 +3327,24 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitSet_clause?: (ctx: Set_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.declarecursorstmt`. + * Enter a parse tree produced by `PostgreSqlParser.declareCursorStmt`. * @param ctx the parse tree */ - enterDeclarecursorstmt?: (ctx: DeclarecursorstmtContext) => void; + enterDeclareCursorStmt?: (ctx: DeclareCursorStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.declarecursorstmt`. + * Exit a parse tree produced by `PostgreSqlParser.declareCursorStmt`. * @param ctx the parse tree */ - exitDeclarecursorstmt?: (ctx: DeclarecursorstmtContext) => void; + exitDeclareCursorStmt?: (ctx: DeclareCursorStmtContext) => void; /** * Enter a parse tree produced by the `selectStatement` - * labeled alternative in `PostgreSqlParser.selectstmt`. + * labeled alternative in `PostgreSqlParser.selectStmt`. * @param ctx the parse tree */ enterSelectStatement?: (ctx: SelectStatementContext) => void; /** * Exit a parse tree produced by the `selectStatement` - * labeled alternative in `PostgreSqlParser.selectstmt`. + * labeled alternative in `PostgreSqlParser.selectStmt`. * @param ctx the parse tree */ exitSelectStatement?: (ctx: SelectStatementContext) => void; @@ -3419,25 +3419,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCommon_table_expr?: (ctx: Common_table_exprContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.search_cluase`. + * Enter a parse tree produced by `PostgreSqlParser.search_clause`. * @param ctx the parse tree */ - enterSearch_cluase?: (ctx: Search_cluaseContext) => void; + enterSearch_clause?: (ctx: Search_clauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.search_cluase`. + * Exit a parse tree produced by `PostgreSqlParser.search_clause`. * @param ctx the parse tree */ - exitSearch_cluase?: (ctx: Search_cluaseContext) => void; + exitSearch_clause?: (ctx: Search_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.cycle_cluase`. + * Enter a parse tree produced by `PostgreSqlParser.cycle_clause`. * @param ctx the parse tree */ - enterCycle_cluase?: (ctx: Cycle_cluaseContext) => void; + enterCycle_clause?: (ctx: Cycle_clauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.cycle_cluase`. + * Exit a parse tree produced by `PostgreSqlParser.cycle_clause`. * @param ctx the parse tree */ - exitCycle_cluase?: (ctx: Cycle_cluaseContext) => void; + exitCycle_clause?: (ctx: Cycle_clauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.into_clause`. * @param ctx the parse tree @@ -3449,15 +3449,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitInto_clause?: (ctx: Into_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opttempTableName`. + * Enter a parse tree produced by `PostgreSqlParser.optTempTableName`. * @param ctx the parse tree */ - enterOpttempTableName?: (ctx: OpttempTableNameContext) => void; + enterOptTempTableName?: (ctx: OptTempTableNameContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opttempTableName`. + * Exit a parse tree produced by `PostgreSqlParser.optTempTableName`. * @param ctx the parse tree */ - exitOpttempTableName?: (ctx: OpttempTableNameContext) => void; + exitOptTempTableName?: (ctx: OptTempTableNameContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.distinct_clause`. * @param ctx the parse tree @@ -3479,15 +3479,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitSort_clause?: (ctx: Sort_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.sortby`. + * Enter a parse tree produced by `PostgreSqlParser.sortBy`. * @param ctx the parse tree */ - enterSortby?: (ctx: SortbyContext) => void; + enterSortBy?: (ctx: SortByContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.sortby`. + * Exit a parse tree produced by `PostgreSqlParser.sortBy`. * @param ctx the parse tree */ - exitSortby?: (ctx: SortbyContext) => void; + exitSortBy?: (ctx: SortByContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.select_limit`. * @param ctx the parse tree @@ -3699,15 +3699,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitRelation_expr_opt_alias?: (ctx: Relation_expr_opt_aliasContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.tablesample_clause`. + * Enter a parse tree produced by `PostgreSqlParser.tableSampleClause`. * @param ctx the parse tree */ - enterTablesample_clause?: (ctx: Tablesample_clauseContext) => void; + enterTableSampleClause?: (ctx: TableSampleClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.tablesample_clause`. + * Exit a parse tree produced by `PostgreSqlParser.tableSampleClause`. * @param ctx the parse tree */ - exitTablesample_clause?: (ctx: Tablesample_clauseContext) => void; + exitTableSampleClause?: (ctx: TableSampleClauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.func_table`. * @param ctx the parse tree @@ -3719,15 +3719,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitFunc_table?: (ctx: Func_tableContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.rowsfrom_item`. + * Enter a parse tree produced by `PostgreSqlParser.rowsFromItem`. * @param ctx the parse tree */ - enterRowsfrom_item?: (ctx: Rowsfrom_itemContext) => void; + enterRowsFromItem?: (ctx: RowsFromItemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.rowsfrom_item`. + * Exit a parse tree produced by `PostgreSqlParser.rowsFromItem`. * @param ctx the parse tree */ - exitRowsfrom_item?: (ctx: Rowsfrom_itemContext) => void; + exitRowsFromItem?: (ctx: RowsFromItemContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.where_clause`. * @param ctx the parse tree @@ -3749,45 +3749,45 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitWhere_or_current_clause?: (ctx: Where_or_current_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.tablefuncelementlist`. + * Enter a parse tree produced by `PostgreSqlParser.tableFuncElementList`. * @param ctx the parse tree */ - enterTablefuncelementlist?: (ctx: TablefuncelementlistContext) => void; + enterTableFuncElementList?: (ctx: TableFuncElementListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.tablefuncelementlist`. + * Exit a parse tree produced by `PostgreSqlParser.tableFuncElementList`. * @param ctx the parse tree */ - exitTablefuncelementlist?: (ctx: TablefuncelementlistContext) => void; + exitTableFuncElementList?: (ctx: TableFuncElementListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.tablefuncelement`. + * Enter a parse tree produced by `PostgreSqlParser.tableFuncElement`. * @param ctx the parse tree */ - enterTablefuncelement?: (ctx: TablefuncelementContext) => void; + enterTableFuncElement?: (ctx: TableFuncElementContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.tablefuncelement`. + * Exit a parse tree produced by `PostgreSqlParser.tableFuncElement`. * @param ctx the parse tree */ - exitTablefuncelement?: (ctx: TablefuncelementContext) => void; + exitTableFuncElement?: (ctx: TableFuncElementContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.xmltable`. + * Enter a parse tree produced by `PostgreSqlParser.xmlTable`. * @param ctx the parse tree */ - enterXmltable?: (ctx: XmltableContext) => void; + enterXmlTable?: (ctx: XmlTableContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.xmltable`. + * Exit a parse tree produced by `PostgreSqlParser.xmlTable`. * @param ctx the parse tree */ - exitXmltable?: (ctx: XmltableContext) => void; + exitXmlTable?: (ctx: XmlTableContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.xmltable_column_el`. + * Enter a parse tree produced by `PostgreSqlParser.xmlTableColumnEl`. * @param ctx the parse tree */ - enterXmltable_column_el?: (ctx: Xmltable_column_elContext) => void; + enterXmlTableColumnEl?: (ctx: XmlTableColumnElContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.xmltable_column_el`. + * Exit a parse tree produced by `PostgreSqlParser.xmlTableColumnEl`. * @param ctx the parse tree */ - exitXmltable_column_el?: (ctx: Xmltable_column_elContext) => void; + exitXmlTableColumnEl?: (ctx: XmlTableColumnElContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.xml_namespace_el`. * @param ctx the parse tree @@ -3809,25 +3809,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitTypename?: (ctx: TypenameContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.simpletypename`. + * Enter a parse tree produced by `PostgreSqlParser.simpleTypeName`. * @param ctx the parse tree */ - enterSimpletypename?: (ctx: SimpletypenameContext) => void; + enterSimpleTypeName?: (ctx: SimpleTypeNameContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.simpletypename`. + * Exit a parse tree produced by `PostgreSqlParser.simpleTypeName`. * @param ctx the parse tree */ - exitSimpletypename?: (ctx: SimpletypenameContext) => void; + exitSimpleTypeName?: (ctx: SimpleTypeNameContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.consttypename`. + * Enter a parse tree produced by `PostgreSqlParser.constTypeName`. * @param ctx the parse tree */ - enterConsttypename?: (ctx: ConsttypenameContext) => void; + enterConstTypeName?: (ctx: ConstTypeNameContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.consttypename`. + * Exit a parse tree produced by `PostgreSqlParser.constTypeName`. * @param ctx the parse tree */ - exitConsttypename?: (ctx: ConsttypenameContext) => void; + exitConstTypeName?: (ctx: ConstTypeNameContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.numeric`. * @param ctx the parse tree @@ -3869,15 +3869,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCharacter?: (ctx: CharacterContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.constdatetime`. + * Enter a parse tree produced by `PostgreSqlParser.constDatetime`. * @param ctx the parse tree */ - enterConstdatetime?: (ctx: ConstdatetimeContext) => void; + enterConstDatetime?: (ctx: ConstDatetimeContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.constdatetime`. + * Exit a parse tree produced by `PostgreSqlParser.constDatetime`. * @param ctx the parse tree */ - exitConstdatetime?: (ctx: ConstdatetimeContext) => void; + exitConstDatetime?: (ctx: ConstDatetimeContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.opt_interval`. * @param ctx the parse tree @@ -4191,15 +4191,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitDocument_or_content?: (ctx: Document_or_contentContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.xmlexists_argument`. + * Enter a parse tree produced by `PostgreSqlParser.xmlExistsArgument`. * @param ctx the parse tree */ - enterXmlexists_argument?: (ctx: Xmlexists_argumentContext) => void; + enterXmlExistsArgument?: (ctx: XmlExistsArgumentContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.xmlexists_argument`. + * Exit a parse tree produced by `PostgreSqlParser.xmlExistsArgument`. * @param ctx the parse tree */ - exitXmlexists_argument?: (ctx: Xmlexists_argumentContext) => void; + exitXmlExistsArgument?: (ctx: XmlExistsArgumentContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.xml_passing_mech`. * @param ctx the parse tree @@ -4371,15 +4371,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitColumn_expr?: (ctx: Column_exprContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.column_expr_noparen`. + * Enter a parse tree produced by `PostgreSqlParser.column_expr_no_paren`. * @param ctx the parse tree */ - enterColumn_expr_noparen?: (ctx: Column_expr_noparenContext) => void; + enterColumn_expr_no_paren?: (ctx: Column_expr_no_parenContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.column_expr_noparen`. + * Exit a parse tree produced by `PostgreSqlParser.column_expr_no_paren`. * @param ctx the parse tree */ - exitColumn_expr_noparen?: (ctx: Column_expr_noparenContext) => void; + exitColumn_expr_no_paren?: (ctx: Column_expr_no_parenContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.func_arg_list`. * @param ctx the parse tree @@ -4801,15 +4801,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitFunctionName?: (ctx: FunctionNameContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.sconst`. + * Enter a parse tree produced by `PostgreSqlParser.stringConst`. * @param ctx the parse tree */ - enterSconst?: (ctx: SconstContext) => void; + enterStringConst?: (ctx: StringConstContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.sconst`. + * Exit a parse tree produced by `PostgreSqlParser.stringConst`. * @param ctx the parse tree */ - exitSconst?: (ctx: SconstContext) => void; + exitStringConst?: (ctx: StringConstContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.anysconst`. * @param ctx the parse tree @@ -4821,25 +4821,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAnysconst?: (ctx: AnysconstContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.signediconst`. + * Enter a parse tree produced by `PostgreSqlParser.signedConst`. * @param ctx the parse tree */ - enterSignediconst?: (ctx: SignediconstContext) => void; + enterSignedConst?: (ctx: SignedConstContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.signediconst`. + * Exit a parse tree produced by `PostgreSqlParser.signedConst`. * @param ctx the parse tree */ - exitSignediconst?: (ctx: SignediconstContext) => void; + exitSignedConst?: (ctx: SignedConstContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.rolespec`. + * Enter a parse tree produced by `PostgreSqlParser.roleSpec`. * @param ctx the parse tree */ - enterRolespec?: (ctx: RolespecContext) => void; + enterRoleSpec?: (ctx: RoleSpecContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.rolespec`. + * Exit a parse tree produced by `PostgreSqlParser.roleSpec`. * @param ctx the parse tree */ - exitRolespec?: (ctx: RolespecContext) => void; + exitRoleSpec?: (ctx: RoleSpecContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.role_list`. * @param ctx the parse tree @@ -4851,15 +4851,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitRole_list?: (ctx: Role_listContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.colid`. + * Enter a parse tree produced by `PostgreSqlParser.colId`. * @param ctx the parse tree */ - enterColid?: (ctx: ColidContext) => void; + enterColId?: (ctx: ColIdContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.colid`. + * Exit a parse tree produced by `PostgreSqlParser.colId`. * @param ctx the parse tree */ - exitColid?: (ctx: ColidContext) => void; + exitColId?: (ctx: ColIdContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.type_function_name`. * @param ctx the parse tree @@ -4871,25 +4871,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitType_function_name?: (ctx: Type_function_nameContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.nonreservedword`. + * Enter a parse tree produced by `PostgreSqlParser.nonReservedWord`. * @param ctx the parse tree */ - enterNonreservedword?: (ctx: NonreservedwordContext) => void; + enterNonReservedWord?: (ctx: NonReservedWordContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.nonreservedword`. + * Exit a parse tree produced by `PostgreSqlParser.nonReservedWord`. * @param ctx the parse tree */ - exitNonreservedword?: (ctx: NonreservedwordContext) => void; + exitNonReservedWord?: (ctx: NonReservedWordContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.collabel`. + * Enter a parse tree produced by `PostgreSqlParser.colLabel`. * @param ctx the parse tree */ - enterCollabel?: (ctx: CollabelContext) => void; + enterColLabel?: (ctx: ColLabelContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.collabel`. + * Exit a parse tree produced by `PostgreSqlParser.colLabel`. * @param ctx the parse tree */ - exitCollabel?: (ctx: CollabelContext) => void; + exitColLabel?: (ctx: ColLabelContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.identifier`. * @param ctx the parse tree @@ -5261,15 +5261,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitStmt_move?: (ctx: Stmt_moveContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.mergestmt`. + * Enter a parse tree produced by `PostgreSqlParser.mergeStmt`. * @param ctx the parse tree */ - enterMergestmt?: (ctx: MergestmtContext) => void; + enterMergeStmt?: (ctx: MergeStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.mergestmt`. + * Exit a parse tree produced by `PostgreSqlParser.mergeStmt`. * @param ctx the parse tree */ - exitMergestmt?: (ctx: MergestmtContext) => void; + exitMergeStmt?: (ctx: MergeStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.data_source`. * @param ctx the parse tree diff --git a/src/lib/postgresql/PostgreSqlParserVisitor.ts b/src/lib/postgresql/PostgreSqlParserVisitor.ts index 86fd378fb..37f2ebb2d 100644 --- a/src/lib/postgresql/PostgreSqlParserVisitor.ts +++ b/src/lib/postgresql/PostgreSqlParserVisitor.ts @@ -11,22 +11,22 @@ import { SQLParserBase } from '../SQLParserBase'; import { ProgramContext } from "./PostgreSqlParser.js"; import { SingleStmtContext } from "./PostgreSqlParser.js"; import { StmtContext } from "./PostgreSqlParser.js"; -import { CallstmtContext } from "./PostgreSqlParser.js"; -import { CreaterolestmtContext } from "./PostgreSqlParser.js"; -import { AlteroptroleelemContext } from "./PostgreSqlParser.js"; -import { CreateoptroleelemContext } from "./PostgreSqlParser.js"; -import { CreateuserstmtContext } from "./PostgreSqlParser.js"; -import { AlterrolestmtContext } from "./PostgreSqlParser.js"; -import { AlterrolesetstmtContext } from "./PostgreSqlParser.js"; -import { AlterroutinestmtContext } from "./PostgreSqlParser.js"; -import { Alter_routine_cluaseContext } from "./PostgreSqlParser.js"; +import { CallStmtContext } from "./PostgreSqlParser.js"; +import { CreateRoleStmtContext } from "./PostgreSqlParser.js"; +import { AlterOperatorRoleElemContext } from "./PostgreSqlParser.js"; +import { CreateOperatorRoleElemContext } from "./PostgreSqlParser.js"; +import { CreateUserStmtContext } from "./PostgreSqlParser.js"; +import { AlterRoleStmtContext } from "./PostgreSqlParser.js"; +import { AlterRoleSetStmtContext } from "./PostgreSqlParser.js"; +import { AlterRoutineStmtContext } from "./PostgreSqlParser.js"; +import { Alter_routine_clauseContext } from "./PostgreSqlParser.js"; import { Routine_actionContext } from "./PostgreSqlParser.js"; -import { CreategroupstmtContext } from "./PostgreSqlParser.js"; -import { AltergroupstmtContext } from "./PostgreSqlParser.js"; -import { CreateschemastmtContext } from "./PostgreSqlParser.js"; +import { CreateGroupStmtContext } from "./PostgreSqlParser.js"; +import { AlterGroupStmtContext } from "./PostgreSqlParser.js"; +import { CreateSchemaStmtContext } from "./PostgreSqlParser.js"; import { SchemaNameCreateContext } from "./PostgreSqlParser.js"; import { Schema_stmtContext } from "./PostgreSqlParser.js"; -import { VariablesetstmtContext } from "./PostgreSqlParser.js"; +import { VariableSetStmtContext } from "./PostgreSqlParser.js"; import { Set_restContext } from "./PostgreSqlParser.js"; import { Generic_setContext } from "./PostgreSqlParser.js"; import { Set_rest_moreContext } from "./PostgreSqlParser.js"; @@ -37,259 +37,259 @@ import { Iso_levelContext } from "./PostgreSqlParser.js"; import { Opt_boolean_or_string_columnContext } from "./PostgreSqlParser.js"; import { Opt_boolean_or_stringContext } from "./PostgreSqlParser.js"; import { Zone_valueContext } from "./PostgreSqlParser.js"; -import { Nonreservedword_or_sconstContext } from "./PostgreSqlParser.js"; -import { VariableresetstmtContext } from "./PostgreSqlParser.js"; +import { NonReservedWordOrStringConstContext } from "./PostgreSqlParser.js"; +import { VariableResetStmtContext } from "./PostgreSqlParser.js"; import { Reset_restContext } from "./PostgreSqlParser.js"; -import { SetresetclauseContext } from "./PostgreSqlParser.js"; -import { FunctionsetresetclauseContext } from "./PostgreSqlParser.js"; -import { VariableshowstmtContext } from "./PostgreSqlParser.js"; -import { ConstraintssetstmtContext } from "./PostgreSqlParser.js"; -import { CheckpointstmtContext } from "./PostgreSqlParser.js"; -import { DiscardstmtContext } from "./PostgreSqlParser.js"; -import { AltertablestmtContext } from "./PostgreSqlParser.js"; +import { SetOrResetClauseContext } from "./PostgreSqlParser.js"; +import { FunctionSetOrResetClauseContext } from "./PostgreSqlParser.js"; +import { VariableShowStmtContext } from "./PostgreSqlParser.js"; +import { ConstraintsSetStmtContext } from "./PostgreSqlParser.js"; +import { CheckPointStmtContext } from "./PostgreSqlParser.js"; +import { DiscardStmtContext } from "./PostgreSqlParser.js"; +import { AlterTableStmtContext } from "./PostgreSqlParser.js"; import { Alter_table_cmdsContext } from "./PostgreSqlParser.js"; import { Partition_bound_specContext } from "./PostgreSqlParser.js"; -import { Partition_bound_cluaseContext } from "./PostgreSqlParser.js"; +import { Partition_bound_clauseContext } from "./PostgreSqlParser.js"; import { Partition_bound_chooseContext } from "./PostgreSqlParser.js"; -import { Partition_with_cluaseContext } from "./PostgreSqlParser.js"; +import { Partition_with_clauseContext } from "./PostgreSqlParser.js"; import { Partition_cmdContext } from "./PostgreSqlParser.js"; import { Index_partition_cmdContext } from "./PostgreSqlParser.js"; import { Alter_table_cmdContext } from "./PostgreSqlParser.js"; import { Alter_column_defaultContext } from "./PostgreSqlParser.js"; import { Opt_drop_behaviorContext } from "./PostgreSqlParser.js"; import { Opt_collate_clauseContext } from "./PostgreSqlParser.js"; -import { ReloptionsContext } from "./PostgreSqlParser.js"; -import { Opt_reloptionsContext } from "./PostgreSqlParser.js"; -import { Reloption_elemContext } from "./PostgreSqlParser.js"; -import { PartitionboundspecContext } from "./PostgreSqlParser.js"; -import { AltercompositetypestmtContext } from "./PostgreSqlParser.js"; +import { RelOptionsContext } from "./PostgreSqlParser.js"; +import { OptRelOptionsContext } from "./PostgreSqlParser.js"; +import { RelOptionElemContext } from "./PostgreSqlParser.js"; +import { PartitionBoundSpecContext } from "./PostgreSqlParser.js"; +import { AlterCompositeTypeStmtContext } from "./PostgreSqlParser.js"; import { Alter_type_cmdContext } from "./PostgreSqlParser.js"; -import { CloseportalstmtContext } from "./PostgreSqlParser.js"; -import { CopystmtContext } from "./PostgreSqlParser.js"; +import { ClosePortalStmtContext } from "./PostgreSqlParser.js"; +import { CopyStmtContext } from "./PostgreSqlParser.js"; import { CopyOptionsNoparensContext } from "./PostgreSqlParser.js"; import { CopyOptionsContext } from "./PostgreSqlParser.js"; import { Copy_generic_opt_elemContext } from "./PostgreSqlParser.js"; import { ColumnCreateTableContext } from "./PostgreSqlParser.js"; -import { OpttempContext } from "./PostgreSqlParser.js"; -import { OpttypedtableelementlistContext } from "./PostgreSqlParser.js"; -import { TableelementlistContext } from "./PostgreSqlParser.js"; -import { TableelementContext } from "./PostgreSqlParser.js"; -import { TypedtableelementContext } from "./PostgreSqlParser.js"; +import { OptTempContext } from "./PostgreSqlParser.js"; +import { OptTypedTableElEmentListContext } from "./PostgreSqlParser.js"; +import { TableElementListContext } from "./PostgreSqlParser.js"; +import { TableElementContext } from "./PostgreSqlParser.js"; +import { TypedTableElementContext } from "./PostgreSqlParser.js"; import { Column_defContext } from "./PostgreSqlParser.js"; -import { ColconstraintContext } from "./PostgreSqlParser.js"; -import { ColconstraintelemContext } from "./PostgreSqlParser.js"; +import { ColConstraintContext } from "./PostgreSqlParser.js"; +import { ColConstraintElemContext } from "./PostgreSqlParser.js"; import { Generated_whenContext } from "./PostgreSqlParser.js"; -import { TablelikeoptionContext } from "./PostgreSqlParser.js"; -import { ConstraintelemContext } from "./PostgreSqlParser.js"; +import { TableLikeOptionContext } from "./PostgreSqlParser.js"; +import { ConstraintElemContext } from "./PostgreSqlParser.js"; import { Opt_column_listContext } from "./PostgreSqlParser.js"; import { Opt_column_list_createContext } from "./PostgreSqlParser.js"; import { Column_listContext } from "./PostgreSqlParser.js"; import { Opt_c_includeContext } from "./PostgreSqlParser.js"; import { Key_matchContext } from "./PostgreSqlParser.js"; -import { ExclusionconstraintelemContext } from "./PostgreSqlParser.js"; +import { ExclusionConstraintElemContext } from "./PostgreSqlParser.js"; import { Key_actionsContext } from "./PostgreSqlParser.js"; import { Key_updateContext } from "./PostgreSqlParser.js"; import { Key_deleteContext } from "./PostgreSqlParser.js"; import { Key_actionContext } from "./PostgreSqlParser.js"; -import { OptinheritContext } from "./PostgreSqlParser.js"; -import { PartitionspecContext } from "./PostgreSqlParser.js"; +import { OptInheritContext } from "./PostgreSqlParser.js"; +import { PartitionSpecContext } from "./PostgreSqlParser.js"; import { Part_elemContext } from "./PostgreSqlParser.js"; import { Table_access_method_clauseContext } from "./PostgreSqlParser.js"; -import { OptwithContext } from "./PostgreSqlParser.js"; -import { OncommitoptionContext } from "./PostgreSqlParser.js"; -import { OpttablespaceContext } from "./PostgreSqlParser.js"; -import { OptconstablespaceContext } from "./PostgreSqlParser.js"; -import { ExistingindexContext } from "./PostgreSqlParser.js"; -import { CreatestatsstmtContext } from "./PostgreSqlParser.js"; -import { AlterstatsstmtContext } from "./PostgreSqlParser.js"; +import { OptWithContext } from "./PostgreSqlParser.js"; +import { OnCommitOptionContext } from "./PostgreSqlParser.js"; +import { OptTableSpaceContext } from "./PostgreSqlParser.js"; +import { OptConstableSpaceContext } from "./PostgreSqlParser.js"; +import { ExistingIndexContext } from "./PostgreSqlParser.js"; +import { CreateStatsStmtContext } from "./PostgreSqlParser.js"; +import { AlterStatsStmtContext } from "./PostgreSqlParser.js"; import { QueryCreateTableContext } from "./PostgreSqlParser.js"; import { Create_as_targetContext } from "./PostgreSqlParser.js"; import { Opt_with_dataContext } from "./PostgreSqlParser.js"; import { CreateMaterializedViewContext } from "./PostgreSqlParser.js"; -import { RefreshmatviewstmtContext } from "./PostgreSqlParser.js"; -import { CreateseqstmtContext } from "./PostgreSqlParser.js"; -import { AlterseqstmtContext } from "./PostgreSqlParser.js"; -import { SeqoptelemContext } from "./PostgreSqlParser.js"; -import { NumericonlyContext } from "./PostgreSqlParser.js"; -import { CreateplangstmtContext } from "./PostgreSqlParser.js"; -import { CreatetablespacestmtContext } from "./PostgreSqlParser.js"; -import { CreateextensionstmtContext } from "./PostgreSqlParser.js"; -import { AlterextensionstmtContext } from "./PostgreSqlParser.js"; -import { AlterextensioncontentsstmtContext } from "./PostgreSqlParser.js"; -import { CreatefdwstmtContext } from "./PostgreSqlParser.js"; +import { RefreshMaterializedViewStmtContext } from "./PostgreSqlParser.js"; +import { CreateSeqStmtContext } from "./PostgreSqlParser.js"; +import { AlterSeqStmtContext } from "./PostgreSqlParser.js"; +import { SeqOptElemContext } from "./PostgreSqlParser.js"; +import { NumericOnlyContext } from "./PostgreSqlParser.js"; +import { CreateProceduralLangStmtContext } from "./PostgreSqlParser.js"; +import { CreateTableSpaceStmtContext } from "./PostgreSqlParser.js"; +import { CreateExtensionStmtContext } from "./PostgreSqlParser.js"; +import { AlterExtensionStmtContext } from "./PostgreSqlParser.js"; +import { AlterExtensionContentsStmtContext } from "./PostgreSqlParser.js"; +import { CreateFdwStmtContext } from "./PostgreSqlParser.js"; import { Fdw_optionContext } from "./PostgreSqlParser.js"; -import { AlterfdwstmtContext } from "./PostgreSqlParser.js"; +import { AlterFdwStmtContext } from "./PostgreSqlParser.js"; import { Create_generic_optionsContext } from "./PostgreSqlParser.js"; import { Alter_generic_optionsContext } from "./PostgreSqlParser.js"; import { Alter_generic_option_elemContext } from "./PostgreSqlParser.js"; import { Generic_option_elemContext } from "./PostgreSqlParser.js"; -import { CreateforeignserverstmtContext } from "./PostgreSqlParser.js"; +import { CreateForeignServerStmtContext } from "./PostgreSqlParser.js"; import { Foreign_server_versionContext } from "./PostgreSqlParser.js"; -import { AlterforeignserverstmtContext } from "./PostgreSqlParser.js"; +import { AlterForeignServerStmtContext } from "./PostgreSqlParser.js"; import { CreateForeignTableContext } from "./PostgreSqlParser.js"; import { CreatePartitionForeignTableContext } from "./PostgreSqlParser.js"; -import { ImportforeignschemastmtContext } from "./PostgreSqlParser.js"; -import { CreateusermappingstmtContext } from "./PostgreSqlParser.js"; -import { AlterusermappingstmtContext } from "./PostgreSqlParser.js"; -import { CreatepolicystmtContext } from "./PostgreSqlParser.js"; -import { AlterpolicystmtContext } from "./PostgreSqlParser.js"; -import { AlterprocedurestmtContext } from "./PostgreSqlParser.js"; +import { ImportForeignSchemaStmtContext } from "./PostgreSqlParser.js"; +import { CreateUserMappingStmtContext } from "./PostgreSqlParser.js"; +import { AlterUserMappingStmtContext } from "./PostgreSqlParser.js"; +import { CreatePolicyStmtContext } from "./PostgreSqlParser.js"; +import { AlterPolicyStmtContext } from "./PostgreSqlParser.js"; +import { AlterProcedureStmtContext } from "./PostgreSqlParser.js"; import { Procedure_actionContext } from "./PostgreSqlParser.js"; -import { RowsecurityoptionalexprContext } from "./PostgreSqlParser.js"; -import { RowsecurityoptionalwithcheckContext } from "./PostgreSqlParser.js"; -import { CreateamstmtContext } from "./PostgreSqlParser.js"; -import { CreatetrigstmtContext } from "./PostgreSqlParser.js"; -import { TriggeractiontimeContext } from "./PostgreSqlParser.js"; -import { TriggereventsContext } from "./PostgreSqlParser.js"; -import { TriggeroneeventContext } from "./PostgreSqlParser.js"; -import { TriggerwhenContext } from "./PostgreSqlParser.js"; +import { RowSecurityOptionalExprContext } from "./PostgreSqlParser.js"; +import { RowSecurityOptionalWithCheckContext } from "./PostgreSqlParser.js"; +import { CreateAccessMethodStmtContext } from "./PostgreSqlParser.js"; +import { CreateTrigStmtContext } from "./PostgreSqlParser.js"; +import { TriggerActionTimeContext } from "./PostgreSqlParser.js"; +import { TriggerEventsContext } from "./PostgreSqlParser.js"; +import { TriggerOneEventContext } from "./PostgreSqlParser.js"; +import { TriggerWhenContext } from "./PostgreSqlParser.js"; import { Function_or_procedureContext } from "./PostgreSqlParser.js"; -import { TriggerfuncargsContext } from "./PostgreSqlParser.js"; -import { TriggerfuncargContext } from "./PostgreSqlParser.js"; -import { ConstraintattributeElemContext } from "./PostgreSqlParser.js"; -import { CreateeventtrigstmtContext } from "./PostgreSqlParser.js"; +import { TriggerFuncArgsContext } from "./PostgreSqlParser.js"; +import { TriggerFuncArgContext } from "./PostgreSqlParser.js"; +import { ConstraintAttributeElemContext } from "./PostgreSqlParser.js"; +import { CreateEventTrigStmtContext } from "./PostgreSqlParser.js"; import { Event_trigger_when_itemContext } from "./PostgreSqlParser.js"; -import { AltereventtrigstmtContext } from "./PostgreSqlParser.js"; -import { CreateassertionstmtContext } from "./PostgreSqlParser.js"; -import { DefinestmtContext } from "./PostgreSqlParser.js"; +import { AlterEventTrigStmtContext } from "./PostgreSqlParser.js"; +import { CreateAssertionStmtContext } from "./PostgreSqlParser.js"; +import { DefineStmtContext } from "./PostgreSqlParser.js"; import { DefinitionContext } from "./PostgreSqlParser.js"; import { Def_elemContext } from "./PostgreSqlParser.js"; import { Def_argContext } from "./PostgreSqlParser.js"; -import { Old_aggr_elemContext } from "./PostgreSqlParser.js"; -import { AlterenumstmtContext } from "./PostgreSqlParser.js"; +import { Old_aggregate_elemContext } from "./PostgreSqlParser.js"; +import { AlterEnumStmtContext } from "./PostgreSqlParser.js"; import { Opt_if_not_existsContext } from "./PostgreSqlParser.js"; -import { CreateopclassstmtContext } from "./PostgreSqlParser.js"; -import { Opclass_itemContext } from "./PostgreSqlParser.js"; -import { CreateopfamilystmtContext } from "./PostgreSqlParser.js"; -import { AlteropfamilystmtContext } from "./PostgreSqlParser.js"; -import { Opclass_dropContext } from "./PostgreSqlParser.js"; -import { ReassignownedstmtContext } from "./PostgreSqlParser.js"; -import { DropstmtContext } from "./PostgreSqlParser.js"; +import { CreateOperatorClassStmtContext } from "./PostgreSqlParser.js"; +import { OpClassItemContext } from "./PostgreSqlParser.js"; +import { CreateOperatorFamilyStmtContext } from "./PostgreSqlParser.js"; +import { AlterOperatorFamilyStmtContext } from "./PostgreSqlParser.js"; +import { OpClassDropContext } from "./PostgreSqlParser.js"; +import { ReassignOwnedStmtContext } from "./PostgreSqlParser.js"; +import { DropStmtContext } from "./PostgreSqlParser.js"; import { Object_type_any_nameContext } from "./PostgreSqlParser.js"; import { Object_type_nameContext } from "./PostgreSqlParser.js"; import { Any_name_listContext } from "./PostgreSqlParser.js"; import { Any_nameContext } from "./PostgreSqlParser.js"; import { AttrsContext } from "./PostgreSqlParser.js"; -import { TruncatestmtContext } from "./PostgreSqlParser.js"; +import { TruncateStmtContext } from "./PostgreSqlParser.js"; import { Truncate_tableContext } from "./PostgreSqlParser.js"; -import { CommentstmtContext } from "./PostgreSqlParser.js"; -import { SeclabelstmtContext } from "./PostgreSqlParser.js"; -import { FetchstmtContext } from "./PostgreSqlParser.js"; +import { CommentStmtContext } from "./PostgreSqlParser.js"; +import { SecLabelStmtContext } from "./PostgreSqlParser.js"; +import { FetchStmtContext } from "./PostgreSqlParser.js"; import { Fetch_argsContext } from "./PostgreSqlParser.js"; import { From_inContext } from "./PostgreSqlParser.js"; -import { GrantstmtContext } from "./PostgreSqlParser.js"; -import { RevokestmtContext } from "./PostgreSqlParser.js"; +import { GrantStmtContext } from "./PostgreSqlParser.js"; +import { RevokeStmtContext } from "./PostgreSqlParser.js"; import { PrivilegesContext } from "./PostgreSqlParser.js"; -import { BeforeprivilegeselectContext } from "./PostgreSqlParser.js"; +import { BeforePrivilegeSelectContext } from "./PostgreSqlParser.js"; import { PrivilegeContext } from "./PostgreSqlParser.js"; import { Privilege_targetContext } from "./PostgreSqlParser.js"; import { Grantee_listContext } from "./PostgreSqlParser.js"; -import { GrantrolestmtContext } from "./PostgreSqlParser.js"; -import { RevokerolestmtContext } from "./PostgreSqlParser.js"; -import { AlterdefaultprivilegesstmtContext } from "./PostgreSqlParser.js"; +import { GrantRoleStmtContext } from "./PostgreSqlParser.js"; +import { RevokeRoleStmtContext } from "./PostgreSqlParser.js"; +import { AlterDefaultPrivilegesStmtContext } from "./PostgreSqlParser.js"; import { DefaclactionContext } from "./PostgreSqlParser.js"; import { Defacl_privilege_targetContext } from "./PostgreSqlParser.js"; -import { IndexstmtContext } from "./PostgreSqlParser.js"; +import { IndexStmtContext } from "./PostgreSqlParser.js"; import { Index_paramsContext } from "./PostgreSqlParser.js"; import { Index_elemContext } from "./PostgreSqlParser.js"; -import { CreatefunctionstmtContext } from "./PostgreSqlParser.js"; +import { CreateFunctionStmtContext } from "./PostgreSqlParser.js"; import { Opt_or_replaceContext } from "./PostgreSqlParser.js"; import { Func_argsContext } from "./PostgreSqlParser.js"; import { Func_args_listContext } from "./PostgreSqlParser.js"; -import { Routine_with_argtypes_listContext } from "./PostgreSqlParser.js"; -import { Routine_with_argtypesContext } from "./PostgreSqlParser.js"; -import { Procedure_with_argtypes_listContext } from "./PostgreSqlParser.js"; -import { Procedure_with_argtypesContext } from "./PostgreSqlParser.js"; -import { Function_with_argtypes_listContext } from "./PostgreSqlParser.js"; -import { Function_with_argtypesContext } from "./PostgreSqlParser.js"; +import { RoutineWithArgTypesListContext } from "./PostgreSqlParser.js"; +import { RoutineWithArgTypesContext } from "./PostgreSqlParser.js"; +import { ProcedureWithArgTypesListContext } from "./PostgreSqlParser.js"; +import { ProcedureWithArgTypesContext } from "./PostgreSqlParser.js"; +import { FunctionWithArgTypesListContext } from "./PostgreSqlParser.js"; +import { FunctionWithArgTypesContext } from "./PostgreSqlParser.js"; import { Func_argContext } from "./PostgreSqlParser.js"; import { Arg_classContext } from "./PostgreSqlParser.js"; import { Func_typeContext } from "./PostgreSqlParser.js"; import { Func_arg_with_defaultContext } from "./PostgreSqlParser.js"; -import { Aggr_argsContext } from "./PostgreSqlParser.js"; -import { Aggregate_with_argtypesContext } from "./PostgreSqlParser.js"; +import { Aggregate_argsContext } from "./PostgreSqlParser.js"; +import { AggregateWithArgTypesContext } from "./PostgreSqlParser.js"; import { Common_func_opt_itemContext } from "./PostgreSqlParser.js"; -import { Createfunc_opt_itemContext } from "./PostgreSqlParser.js"; +import { Create_func_opt_itemContext } from "./PostgreSqlParser.js"; import { Opt_definitionContext } from "./PostgreSqlParser.js"; import { Table_func_columnContext } from "./PostgreSqlParser.js"; -import { AlterfunctionstmtContext } from "./PostgreSqlParser.js"; -import { RemovefuncstmtContext } from "./PostgreSqlParser.js"; -import { RemoveaggrstmtContext } from "./PostgreSqlParser.js"; -import { RemoveoperstmtContext } from "./PostgreSqlParser.js"; -import { Oper_argtypesContext } from "./PostgreSqlParser.js"; +import { AlterFunctionStmtContext } from "./PostgreSqlParser.js"; +import { RemoveFuncStmtContext } from "./PostgreSqlParser.js"; +import { RemoveAggregateStmtContext } from "./PostgreSqlParser.js"; +import { RemoveOperatorStmtContext } from "./PostgreSqlParser.js"; +import { OperatorArgTypesContext } from "./PostgreSqlParser.js"; import { Any_operatorContext } from "./PostgreSqlParser.js"; -import { Operator_with_argtypesContext } from "./PostgreSqlParser.js"; -import { DostmtContext } from "./PostgreSqlParser.js"; -import { CreatecaststmtContext } from "./PostgreSqlParser.js"; +import { OperatorWithArgTypesContext } from "./PostgreSqlParser.js"; +import { DoStmtContext } from "./PostgreSqlParser.js"; +import { CreateCastStmtContext } from "./PostgreSqlParser.js"; import { Opt_if_existsContext } from "./PostgreSqlParser.js"; -import { CreatetransformstmtContext } from "./PostgreSqlParser.js"; +import { CreateTransformStmtContext } from "./PostgreSqlParser.js"; import { Sql_with_functionContext } from "./PostgreSqlParser.js"; -import { ReindexstmtContext } from "./PostgreSqlParser.js"; -import { AltertblspcstmtContext } from "./PostgreSqlParser.js"; -import { RenamestmtContext } from "./PostgreSqlParser.js"; -import { AlterobjectdependsstmtContext } from "./PostgreSqlParser.js"; -import { AlterobjectschemastmtContext } from "./PostgreSqlParser.js"; -import { AlteroperatorstmtContext } from "./PostgreSqlParser.js"; +import { ReindexStmtContext } from "./PostgreSqlParser.js"; +import { AlterTblSpcStmtContext } from "./PostgreSqlParser.js"; +import { RenameStmtContext } from "./PostgreSqlParser.js"; +import { AlterObjectDependsStmtContext } from "./PostgreSqlParser.js"; +import { AlterObjectSchemaStmtContext } from "./PostgreSqlParser.js"; +import { AlterOperatorStmtContext } from "./PostgreSqlParser.js"; import { Operator_def_listContext } from "./PostgreSqlParser.js"; import { Operator_def_elemContext } from "./PostgreSqlParser.js"; -import { AltertypestmtContext } from "./PostgreSqlParser.js"; -import { AlterownerstmtContext } from "./PostgreSqlParser.js"; -import { CreatepublicationstmtContext } from "./PostgreSqlParser.js"; -import { AlterpublicationstmtContext } from "./PostgreSqlParser.js"; -import { CreatesubscriptionstmtContext } from "./PostgreSqlParser.js"; -import { AltersubscriptionstmtContext } from "./PostgreSqlParser.js"; -import { RulestmtContext } from "./PostgreSqlParser.js"; -import { RuleactionstmtContext } from "./PostgreSqlParser.js"; -import { NotifystmtContext } from "./PostgreSqlParser.js"; +import { AlterTypeStmtContext } from "./PostgreSqlParser.js"; +import { AlterOwnerStmtContext } from "./PostgreSqlParser.js"; +import { CreatePublicationStmtContext } from "./PostgreSqlParser.js"; +import { AlterPublicationStmtContext } from "./PostgreSqlParser.js"; +import { CreateSubscriptionStmtContext } from "./PostgreSqlParser.js"; +import { AlterSubscriptionStmtContext } from "./PostgreSqlParser.js"; +import { RuleStmtContext } from "./PostgreSqlParser.js"; +import { RuleActionStmtContext } from "./PostgreSqlParser.js"; +import { NotifyStmtContext } from "./PostgreSqlParser.js"; import { Notify_payloadContext } from "./PostgreSqlParser.js"; -import { ListenstmtContext } from "./PostgreSqlParser.js"; -import { UnlistenstmtContext } from "./PostgreSqlParser.js"; -import { TransactionstmtContext } from "./PostgreSqlParser.js"; +import { ListenStmtContext } from "./PostgreSqlParser.js"; +import { UnListenStmtContext } from "./PostgreSqlParser.js"; +import { TransactionStmtContext } from "./PostgreSqlParser.js"; import { Opt_transactionContext } from "./PostgreSqlParser.js"; import { Transaction_mode_itemContext } from "./PostgreSqlParser.js"; import { Transaction_mode_listContext } from "./PostgreSqlParser.js"; import { CreateViewContext } from "./PostgreSqlParser.js"; -import { LoadstmtContext } from "./PostgreSqlParser.js"; +import { LoadStmtContext } from "./PostgreSqlParser.js"; import { CreateDatabaseContext } from "./PostgreSqlParser.js"; -import { Createdb_opt_itemContext } from "./PostgreSqlParser.js"; -import { AlterdatabasestmtContext } from "./PostgreSqlParser.js"; -import { AlterdatabasesetstmtContext } from "./PostgreSqlParser.js"; -import { AltercollationstmtContext } from "./PostgreSqlParser.js"; -import { AltersystemstmtContext } from "./PostgreSqlParser.js"; -import { CreatedomainstmtContext } from "./PostgreSqlParser.js"; -import { AlterdomainstmtContext } from "./PostgreSqlParser.js"; -import { AltertsdictionarystmtContext } from "./PostgreSqlParser.js"; -import { AltertsconfigurationstmtContext } from "./PostgreSqlParser.js"; -import { CreateconversionstmtContext } from "./PostgreSqlParser.js"; -import { ClusterstmtContext } from "./PostgreSqlParser.js"; -import { VacuumstmtContext } from "./PostgreSqlParser.js"; -import { AnalyzestmtContext } from "./PostgreSqlParser.js"; +import { Create_db_opt_itemContext } from "./PostgreSqlParser.js"; +import { AlterDatabaseStmtContext } from "./PostgreSqlParser.js"; +import { AlterDatabaseSetStmtContext } from "./PostgreSqlParser.js"; +import { AlterCollationStmtContext } from "./PostgreSqlParser.js"; +import { AlterSystemStmtContext } from "./PostgreSqlParser.js"; +import { CreateDomainStmtContext } from "./PostgreSqlParser.js"; +import { AlterDomainStmtContext } from "./PostgreSqlParser.js"; +import { AlterSearchDictionaryStmtContext } from "./PostgreSqlParser.js"; +import { AlterSearchConfigurationStmtContext } from "./PostgreSqlParser.js"; +import { CreateConversionStmtContext } from "./PostgreSqlParser.js"; +import { ClusterStmtContext } from "./PostgreSqlParser.js"; +import { VacuumStmtContext } from "./PostgreSqlParser.js"; +import { AnalyzeStmtContext } from "./PostgreSqlParser.js"; import { Analyze_keywordContext } from "./PostgreSqlParser.js"; import { Vac_analyze_option_elemContext } from "./PostgreSqlParser.js"; import { Analyze_option_elemContext } from "./PostgreSqlParser.js"; import { Opt_verboseContext } from "./PostgreSqlParser.js"; import { Vacuum_relationContext } from "./PostgreSqlParser.js"; import { Vacuum_relation_listContext } from "./PostgreSqlParser.js"; -import { ExplainstmtContext } from "./PostgreSqlParser.js"; -import { ExplainablestmtContext } from "./PostgreSqlParser.js"; +import { ExplainStmtContext } from "./PostgreSqlParser.js"; +import { ExplainableStmtContext } from "./PostgreSqlParser.js"; import { Explain_option_listContext } from "./PostgreSqlParser.js"; -import { PreparestmtContext } from "./PostgreSqlParser.js"; +import { PrepareStmtContext } from "./PostgreSqlParser.js"; import { Prep_type_clauseContext } from "./PostgreSqlParser.js"; -import { PreparablestmtContext } from "./PostgreSqlParser.js"; -import { ExecutestmtContext } from "./PostgreSqlParser.js"; +import { PreParableStmtContext } from "./PostgreSqlParser.js"; +import { ExecuteStmtContext } from "./PostgreSqlParser.js"; import { Execute_param_clauseContext } from "./PostgreSqlParser.js"; -import { DeallocatestmtContext } from "./PostgreSqlParser.js"; +import { DealLocateStmtContext } from "./PostgreSqlParser.js"; import { InsertStatementContext } from "./PostgreSqlParser.js"; import { Insert_restContext } from "./PostgreSqlParser.js"; import { Insert_column_listContext } from "./PostgreSqlParser.js"; import { Insert_column_itemContext } from "./PostgreSqlParser.js"; import { Returning_clauseContext } from "./PostgreSqlParser.js"; -import { DeletestmtContext } from "./PostgreSqlParser.js"; -import { LockstmtContext } from "./PostgreSqlParser.js"; -import { UpdatestmtContext } from "./PostgreSqlParser.js"; +import { DeleteStmtContext } from "./PostgreSqlParser.js"; +import { LockStmtContext } from "./PostgreSqlParser.js"; +import { UpdateStmtContext } from "./PostgreSqlParser.js"; import { Set_clause_listContext } from "./PostgreSqlParser.js"; import { Set_clauseContext } from "./PostgreSqlParser.js"; -import { DeclarecursorstmtContext } from "./PostgreSqlParser.js"; +import { DeclareCursorStmtContext } from "./PostgreSqlParser.js"; import { SelectStatementContext } from "./PostgreSqlParser.js"; import { Select_with_parensContext } from "./PostgreSqlParser.js"; import { Select_no_parensContext } from "./PostgreSqlParser.js"; @@ -298,13 +298,13 @@ import { Simple_selectContext } from "./PostgreSqlParser.js"; import { Set_operator_with_all_or_distinctContext } from "./PostgreSqlParser.js"; import { With_clauseContext } from "./PostgreSqlParser.js"; import { Common_table_exprContext } from "./PostgreSqlParser.js"; -import { Search_cluaseContext } from "./PostgreSqlParser.js"; -import { Cycle_cluaseContext } from "./PostgreSqlParser.js"; +import { Search_clauseContext } from "./PostgreSqlParser.js"; +import { Cycle_clauseContext } from "./PostgreSqlParser.js"; import { Into_clauseContext } from "./PostgreSqlParser.js"; -import { OpttempTableNameContext } from "./PostgreSqlParser.js"; +import { OptTempTableNameContext } from "./PostgreSqlParser.js"; import { Distinct_clauseContext } from "./PostgreSqlParser.js"; import { Sort_clauseContext } from "./PostgreSqlParser.js"; -import { SortbyContext } from "./PostgreSqlParser.js"; +import { SortByContext } from "./PostgreSqlParser.js"; import { Select_limitContext } from "./PostgreSqlParser.js"; import { Limit_clauseContext } from "./PostgreSqlParser.js"; import { Fetch_clauseContext } from "./PostgreSqlParser.js"; @@ -326,24 +326,24 @@ import { Relation_exprContext } from "./PostgreSqlParser.js"; import { Publication_relation_exprContext } from "./PostgreSqlParser.js"; import { Relation_expr_listContext } from "./PostgreSqlParser.js"; import { Relation_expr_opt_aliasContext } from "./PostgreSqlParser.js"; -import { Tablesample_clauseContext } from "./PostgreSqlParser.js"; +import { TableSampleClauseContext } from "./PostgreSqlParser.js"; import { Func_tableContext } from "./PostgreSqlParser.js"; -import { Rowsfrom_itemContext } from "./PostgreSqlParser.js"; +import { RowsFromItemContext } from "./PostgreSqlParser.js"; import { Where_clauseContext } from "./PostgreSqlParser.js"; import { Where_or_current_clauseContext } from "./PostgreSqlParser.js"; -import { TablefuncelementlistContext } from "./PostgreSqlParser.js"; -import { TablefuncelementContext } from "./PostgreSqlParser.js"; -import { XmltableContext } from "./PostgreSqlParser.js"; -import { Xmltable_column_elContext } from "./PostgreSqlParser.js"; +import { TableFuncElementListContext } from "./PostgreSqlParser.js"; +import { TableFuncElementContext } from "./PostgreSqlParser.js"; +import { XmlTableContext } from "./PostgreSqlParser.js"; +import { XmlTableColumnElContext } from "./PostgreSqlParser.js"; import { Xml_namespace_elContext } from "./PostgreSqlParser.js"; import { TypenameContext } from "./PostgreSqlParser.js"; -import { SimpletypenameContext } from "./PostgreSqlParser.js"; -import { ConsttypenameContext } from "./PostgreSqlParser.js"; +import { SimpleTypeNameContext } from "./PostgreSqlParser.js"; +import { ConstTypeNameContext } from "./PostgreSqlParser.js"; import { NumericContext } from "./PostgreSqlParser.js"; import { Opt_floatContext } from "./PostgreSqlParser.js"; import { BitContext } from "./PostgreSqlParser.js"; import { CharacterContext } from "./PostgreSqlParser.js"; -import { ConstdatetimeContext } from "./PostgreSqlParser.js"; +import { ConstDatetimeContext } from "./PostgreSqlParser.js"; import { Opt_intervalContext } from "./PostgreSqlParser.js"; import { Interval_secondContext } from "./PostgreSqlParser.js"; import { ComparisonOperatorContext } from "./PostgreSqlParser.js"; @@ -372,7 +372,7 @@ import { Func_expr_common_subexprContext } from "./PostgreSqlParser.js"; import { Xml_attribute_listContext } from "./PostgreSqlParser.js"; import { Xml_attribute_elContext } from "./PostgreSqlParser.js"; import { Document_or_contentContext } from "./PostgreSqlParser.js"; -import { Xmlexists_argumentContext } from "./PostgreSqlParser.js"; +import { XmlExistsArgumentContext } from "./PostgreSqlParser.js"; import { Xml_passing_mechContext } from "./PostgreSqlParser.js"; import { Window_clauseContext } from "./PostgreSqlParser.js"; import { Window_definitionContext } from "./PostgreSqlParser.js"; @@ -390,7 +390,7 @@ import { Qual_all_opContext } from "./PostgreSqlParser.js"; import { Subquery_OpContext } from "./PostgreSqlParser.js"; import { Expr_listContext } from "./PostgreSqlParser.js"; import { Column_exprContext } from "./PostgreSqlParser.js"; -import { Column_expr_noparenContext } from "./PostgreSqlParser.js"; +import { Column_expr_no_parenContext } from "./PostgreSqlParser.js"; import { Func_arg_listContext } from "./PostgreSqlParser.js"; import { Func_arg_exprContext } from "./PostgreSqlParser.js"; import { Array_exprContext } from "./PostgreSqlParser.js"; @@ -429,15 +429,15 @@ import { ColumnNameMatchContext } from "./PostgreSqlParser.js"; import { ColumnNameCreateContext } from "./PostgreSqlParser.js"; import { FunctionNameCreateContext } from "./PostgreSqlParser.js"; import { FunctionNameContext } from "./PostgreSqlParser.js"; -import { SconstContext } from "./PostgreSqlParser.js"; +import { StringConstContext } from "./PostgreSqlParser.js"; import { AnysconstContext } from "./PostgreSqlParser.js"; -import { SignediconstContext } from "./PostgreSqlParser.js"; -import { RolespecContext } from "./PostgreSqlParser.js"; +import { SignedConstContext } from "./PostgreSqlParser.js"; +import { RoleSpecContext } from "./PostgreSqlParser.js"; import { Role_listContext } from "./PostgreSqlParser.js"; -import { ColidContext } from "./PostgreSqlParser.js"; +import { ColIdContext } from "./PostgreSqlParser.js"; import { Type_function_nameContext } from "./PostgreSqlParser.js"; -import { NonreservedwordContext } from "./PostgreSqlParser.js"; -import { CollabelContext } from "./PostgreSqlParser.js"; +import { NonReservedWordContext } from "./PostgreSqlParser.js"; +import { ColLabelContext } from "./PostgreSqlParser.js"; import { IdentifierContext } from "./PostgreSqlParser.js"; import { Unreserved_keywordContext } from "./PostgreSqlParser.js"; import { Col_name_keywordContext } from "./PostgreSqlParser.js"; @@ -475,7 +475,7 @@ import { Opt_open_bound_list_itemContext } from "./PostgreSqlParser.js"; import { Stmt_fetchContext } from "./PostgreSqlParser.js"; import { Opt_fetch_directionContext } from "./PostgreSqlParser.js"; import { Stmt_moveContext } from "./PostgreSqlParser.js"; -import { MergestmtContext } from "./PostgreSqlParser.js"; +import { MergeStmtContext } from "./PostgreSqlParser.js"; import { Data_sourceContext } from "./PostgreSqlParser.js"; import { Merge_when_clauseContext } from "./PostgreSqlParser.js"; import { Merge_insertContext } from "./PostgreSqlParser.js"; @@ -520,59 +520,59 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.callstmt`. + * Visit a parse tree produced by `PostgreSqlParser.callStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCallstmt?: (ctx: CallstmtContext) => Result; + visitCallStmt?: (ctx: CallStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createrolestmt`. + * Visit a parse tree produced by `PostgreSqlParser.createRoleStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreaterolestmt?: (ctx: CreaterolestmtContext) => Result; + visitCreateRoleStmt?: (ctx: CreateRoleStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alteroptroleelem`. + * Visit a parse tree produced by `PostgreSqlParser.alterOperatorRoleElem`. * @param ctx the parse tree * @return the visitor result */ - visitAlteroptroleelem?: (ctx: AlteroptroleelemContext) => Result; + visitAlterOperatorRoleElem?: (ctx: AlterOperatorRoleElemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createoptroleelem`. + * Visit a parse tree produced by `PostgreSqlParser.createOperatorRoleElem`. * @param ctx the parse tree * @return the visitor result */ - visitCreateoptroleelem?: (ctx: CreateoptroleelemContext) => Result; + visitCreateOperatorRoleElem?: (ctx: CreateOperatorRoleElemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createuserstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createUserStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateuserstmt?: (ctx: CreateuserstmtContext) => Result; + visitCreateUserStmt?: (ctx: CreateUserStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterrolestmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterRoleStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterrolestmt?: (ctx: AlterrolestmtContext) => Result; + visitAlterRoleStmt?: (ctx: AlterRoleStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterrolesetstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterRoleSetStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterrolesetstmt?: (ctx: AlterrolesetstmtContext) => Result; + visitAlterRoleSetStmt?: (ctx: AlterRoleSetStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterroutinestmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterRoutineStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterroutinestmt?: (ctx: AlterroutinestmtContext) => Result; + visitAlterRoutineStmt?: (ctx: AlterRoutineStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alter_routine_cluase`. + * Visit a parse tree produced by `PostgreSqlParser.alter_routine_clause`. * @param ctx the parse tree * @return the visitor result */ - visitAlter_routine_cluase?: (ctx: Alter_routine_cluaseContext) => Result; + visitAlter_routine_clause?: (ctx: Alter_routine_clauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.routine_action`. * @param ctx the parse tree @@ -580,23 +580,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.creategroupstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createGroupStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreategroupstmt?: (ctx: CreategroupstmtContext) => Result; + visitCreateGroupStmt?: (ctx: CreateGroupStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.altergroupstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterGroupStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAltergroupstmt?: (ctx: AltergroupstmtContext) => Result; + visitAlterGroupStmt?: (ctx: AlterGroupStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createschemastmt`. + * Visit a parse tree produced by `PostgreSqlParser.createSchemaStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateschemastmt?: (ctx: CreateschemastmtContext) => Result; + visitCreateSchemaStmt?: (ctx: CreateSchemaStmtContext) => Result; /** * Visit a parse tree produced by the `schemaNameCreate` * labeled alternative in `PostgreSqlParser.schema_name_create`. @@ -611,11 +611,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.variablesetstmt`. + * Visit a parse tree produced by `PostgreSqlParser.variableSetStmt`. * @param ctx the parse tree * @return the visitor result */ - visitVariablesetstmt?: (ctx: VariablesetstmtContext) => Result; + visitVariableSetStmt?: (ctx: VariableSetStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.set_rest`. * @param ctx the parse tree @@ -677,17 +677,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.nonreservedword_or_sconst`. + * Visit a parse tree produced by `PostgreSqlParser.nonReservedWordOrStringConst`. * @param ctx the parse tree * @return the visitor result */ - visitNonreservedword_or_sconst?: (ctx: Nonreservedword_or_sconstContext) => Result; + visitNonReservedWordOrStringConst?: (ctx: NonReservedWordOrStringConstContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.variableresetstmt`. + * Visit a parse tree produced by `PostgreSqlParser.variableResetStmt`. * @param ctx the parse tree * @return the visitor result */ - visitVariableresetstmt?: (ctx: VariableresetstmtContext) => Result; + visitVariableResetStmt?: (ctx: VariableResetStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.reset_rest`. * @param ctx the parse tree @@ -695,47 +695,47 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.setresetclause`. + * Visit a parse tree produced by `PostgreSqlParser.setOrResetClause`. * @param ctx the parse tree * @return the visitor result */ - visitSetresetclause?: (ctx: SetresetclauseContext) => Result; + visitSetOrResetClause?: (ctx: SetOrResetClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.functionsetresetclause`. + * Visit a parse tree produced by `PostgreSqlParser.functionSetOrResetClause`. * @param ctx the parse tree * @return the visitor result */ - visitFunctionsetresetclause?: (ctx: FunctionsetresetclauseContext) => Result; + visitFunctionSetOrResetClause?: (ctx: FunctionSetOrResetClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.variableshowstmt`. + * Visit a parse tree produced by `PostgreSqlParser.variableShowStmt`. * @param ctx the parse tree * @return the visitor result */ - visitVariableshowstmt?: (ctx: VariableshowstmtContext) => Result; + visitVariableShowStmt?: (ctx: VariableShowStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.constraintssetstmt`. + * Visit a parse tree produced by `PostgreSqlParser.constraintsSetStmt`. * @param ctx the parse tree * @return the visitor result */ - visitConstraintssetstmt?: (ctx: ConstraintssetstmtContext) => Result; + visitConstraintsSetStmt?: (ctx: ConstraintsSetStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.checkpointstmt`. + * Visit a parse tree produced by `PostgreSqlParser.checkPointStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCheckpointstmt?: (ctx: CheckpointstmtContext) => Result; + visitCheckPointStmt?: (ctx: CheckPointStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.discardstmt`. + * Visit a parse tree produced by `PostgreSqlParser.discardStmt`. * @param ctx the parse tree * @return the visitor result */ - visitDiscardstmt?: (ctx: DiscardstmtContext) => Result; + visitDiscardStmt?: (ctx: DiscardStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.altertablestmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterTableStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAltertablestmt?: (ctx: AltertablestmtContext) => Result; + visitAlterTableStmt?: (ctx: AlterTableStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.alter_table_cmds`. * @param ctx the parse tree @@ -749,11 +749,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.partition_bound_cluase`. + * Visit a parse tree produced by `PostgreSqlParser.partition_bound_clause`. * @param ctx the parse tree * @return the visitor result */ - visitPartition_bound_cluase?: (ctx: Partition_bound_cluaseContext) => Result; + visitPartition_bound_clause?: (ctx: Partition_bound_clauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.partition_bound_choose`. * @param ctx the parse tree @@ -761,11 +761,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.partition_with_cluase`. + * Visit a parse tree produced by `PostgreSqlParser.partition_with_clause`. * @param ctx the parse tree * @return the visitor result */ - visitPartition_with_cluase?: (ctx: Partition_with_cluaseContext) => Result; + visitPartition_with_clause?: (ctx: Partition_with_clauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.partition_cmd`. * @param ctx the parse tree @@ -803,35 +803,35 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.reloptions`. + * Visit a parse tree produced by `PostgreSqlParser.relOptions`. * @param ctx the parse tree * @return the visitor result */ - visitReloptions?: (ctx: ReloptionsContext) => Result; + visitRelOptions?: (ctx: RelOptionsContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_reloptions`. + * Visit a parse tree produced by `PostgreSqlParser.optRelOptions`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_reloptions?: (ctx: Opt_reloptionsContext) => Result; + visitOptRelOptions?: (ctx: OptRelOptionsContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.reloption_elem`. + * Visit a parse tree produced by `PostgreSqlParser.relOptionElem`. * @param ctx the parse tree * @return the visitor result */ - visitReloption_elem?: (ctx: Reloption_elemContext) => Result; + visitRelOptionElem?: (ctx: RelOptionElemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.partitionboundspec`. + * Visit a parse tree produced by `PostgreSqlParser.partitionBoundSpec`. * @param ctx the parse tree * @return the visitor result */ - visitPartitionboundspec?: (ctx: PartitionboundspecContext) => Result; + visitPartitionBoundSpec?: (ctx: PartitionBoundSpecContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.altercompositetypestmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterCompositeTypeStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAltercompositetypestmt?: (ctx: AltercompositetypestmtContext) => Result; + visitAlterCompositeTypeStmt?: (ctx: AlterCompositeTypeStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.alter_type_cmd`. * @param ctx the parse tree @@ -839,17 +839,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.closeportalstmt`. + * Visit a parse tree produced by `PostgreSqlParser.closePortalStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCloseportalstmt?: (ctx: CloseportalstmtContext) => Result; + visitClosePortalStmt?: (ctx: ClosePortalStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.copystmt`. + * Visit a parse tree produced by `PostgreSqlParser.copyStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCopystmt?: (ctx: CopystmtContext) => Result; + visitCopyStmt?: (ctx: CopyStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.copyOptionsNoparens`. * @param ctx the parse tree @@ -870,41 +870,41 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** * Visit a parse tree produced by the `columnCreateTable` - * labeled alternative in `PostgreSqlParser.createstmt`. + * labeled alternative in `PostgreSqlParser.createStmt`. * @param ctx the parse tree * @return the visitor result */ visitColumnCreateTable?: (ctx: ColumnCreateTableContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opttemp`. + * Visit a parse tree produced by `PostgreSqlParser.optTemp`. * @param ctx the parse tree * @return the visitor result */ - visitOpttemp?: (ctx: OpttempContext) => Result; + visitOptTemp?: (ctx: OptTempContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opttypedtableelementlist`. + * Visit a parse tree produced by `PostgreSqlParser.optTypedTableElEmentList`. * @param ctx the parse tree * @return the visitor result */ - visitOpttypedtableelementlist?: (ctx: OpttypedtableelementlistContext) => Result; + visitOptTypedTableElEmentList?: (ctx: OptTypedTableElEmentListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.tableelementlist`. + * Visit a parse tree produced by `PostgreSqlParser.tableElementList`. * @param ctx the parse tree * @return the visitor result */ - visitTableelementlist?: (ctx: TableelementlistContext) => Result; + visitTableElementList?: (ctx: TableElementListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.tableelement`. + * Visit a parse tree produced by `PostgreSqlParser.tableElement`. * @param ctx the parse tree * @return the visitor result */ - visitTableelement?: (ctx: TableelementContext) => Result; + visitTableElement?: (ctx: TableElementContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.typedtableelement`. + * Visit a parse tree produced by `PostgreSqlParser.typedTableElement`. * @param ctx the parse tree * @return the visitor result */ - visitTypedtableelement?: (ctx: TypedtableelementContext) => Result; + visitTypedTableElement?: (ctx: TypedTableElementContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.column_def`. * @param ctx the parse tree @@ -912,17 +912,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.colconstraint`. + * Visit a parse tree produced by `PostgreSqlParser.colConstraint`. * @param ctx the parse tree * @return the visitor result */ - visitColconstraint?: (ctx: ColconstraintContext) => Result; + visitColConstraint?: (ctx: ColConstraintContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.colconstraintelem`. + * Visit a parse tree produced by `PostgreSqlParser.colConstraintElem`. * @param ctx the parse tree * @return the visitor result */ - visitColconstraintelem?: (ctx: ColconstraintelemContext) => Result; + visitColConstraintElem?: (ctx: ColConstraintElemContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.generated_when`. * @param ctx the parse tree @@ -930,17 +930,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.tablelikeoption`. + * Visit a parse tree produced by `PostgreSqlParser.tableLikeOption`. * @param ctx the parse tree * @return the visitor result */ - visitTablelikeoption?: (ctx: TablelikeoptionContext) => Result; + visitTableLikeOption?: (ctx: TableLikeOptionContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.constraintelem`. + * Visit a parse tree produced by `PostgreSqlParser.constraintElem`. * @param ctx the parse tree * @return the visitor result */ - visitConstraintelem?: (ctx: ConstraintelemContext) => Result; + visitConstraintElem?: (ctx: ConstraintElemContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.opt_column_list`. * @param ctx the parse tree @@ -972,11 +972,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.exclusionconstraintelem`. + * Visit a parse tree produced by `PostgreSqlParser.exclusionConstraintElem`. * @param ctx the parse tree * @return the visitor result */ - visitExclusionconstraintelem?: (ctx: ExclusionconstraintelemContext) => Result; + visitExclusionConstraintElem?: (ctx: ExclusionConstraintElemContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.key_actions`. * @param ctx the parse tree @@ -1002,17 +1002,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.optinherit`. + * Visit a parse tree produced by `PostgreSqlParser.optInherit`. * @param ctx the parse tree * @return the visitor result */ - visitOptinherit?: (ctx: OptinheritContext) => Result; + visitOptInherit?: (ctx: OptInheritContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.partitionspec`. + * Visit a parse tree produced by `PostgreSqlParser.partitionSpec`. * @param ctx the parse tree * @return the visitor result */ - visitPartitionspec?: (ctx: PartitionspecContext) => Result; + visitPartitionSpec?: (ctx: PartitionSpecContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.part_elem`. * @param ctx the parse tree @@ -1026,50 +1026,50 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.optwith`. + * Visit a parse tree produced by `PostgreSqlParser.optWith`. * @param ctx the parse tree * @return the visitor result */ - visitOptwith?: (ctx: OptwithContext) => Result; + visitOptWith?: (ctx: OptWithContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.oncommitoption`. + * Visit a parse tree produced by `PostgreSqlParser.onCommitOption`. * @param ctx the parse tree * @return the visitor result */ - visitOncommitoption?: (ctx: OncommitoptionContext) => Result; + visitOnCommitOption?: (ctx: OnCommitOptionContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opttablespace`. + * Visit a parse tree produced by `PostgreSqlParser.optTableSpace`. * @param ctx the parse tree * @return the visitor result */ - visitOpttablespace?: (ctx: OpttablespaceContext) => Result; + visitOptTableSpace?: (ctx: OptTableSpaceContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.optconstablespace`. + * Visit a parse tree produced by `PostgreSqlParser.optConstableSpace`. * @param ctx the parse tree * @return the visitor result */ - visitOptconstablespace?: (ctx: OptconstablespaceContext) => Result; + visitOptConstableSpace?: (ctx: OptConstableSpaceContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.existingindex`. + * Visit a parse tree produced by `PostgreSqlParser.existingIndex`. * @param ctx the parse tree * @return the visitor result */ - visitExistingindex?: (ctx: ExistingindexContext) => Result; + visitExistingIndex?: (ctx: ExistingIndexContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createstatsstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createStatsStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreatestatsstmt?: (ctx: CreatestatsstmtContext) => Result; + visitCreateStatsStmt?: (ctx: CreateStatsStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterstatsstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterStatsStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterstatsstmt?: (ctx: AlterstatsstmtContext) => Result; + visitAlterStatsStmt?: (ctx: AlterStatsStmtContext) => Result; /** * Visit a parse tree produced by the `queryCreateTable` - * labeled alternative in `PostgreSqlParser.createasstmt`. + * labeled alternative in `PostgreSqlParser.createAsStmt`. * @param ctx the parse tree * @return the visitor result */ @@ -1088,77 +1088,77 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** * Visit a parse tree produced by the `createMaterializedView` - * labeled alternative in `PostgreSqlParser.creatematviewstmt`. + * labeled alternative in `PostgreSqlParser.createMaterializedViewStmt`. * @param ctx the parse tree * @return the visitor result */ visitCreateMaterializedView?: (ctx: CreateMaterializedViewContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.refreshmatviewstmt`. + * Visit a parse tree produced by `PostgreSqlParser.refreshMaterializedViewStmt`. * @param ctx the parse tree * @return the visitor result */ - visitRefreshmatviewstmt?: (ctx: RefreshmatviewstmtContext) => Result; + visitRefreshMaterializedViewStmt?: (ctx: RefreshMaterializedViewStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createseqstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createSeqStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateseqstmt?: (ctx: CreateseqstmtContext) => Result; + visitCreateSeqStmt?: (ctx: CreateSeqStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterseqstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterSeqStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterseqstmt?: (ctx: AlterseqstmtContext) => Result; + visitAlterSeqStmt?: (ctx: AlterSeqStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.seqoptelem`. + * Visit a parse tree produced by `PostgreSqlParser.seqOptElem`. * @param ctx the parse tree * @return the visitor result */ - visitSeqoptelem?: (ctx: SeqoptelemContext) => Result; + visitSeqOptElem?: (ctx: SeqOptElemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.numericonly`. + * Visit a parse tree produced by `PostgreSqlParser.numericOnly`. * @param ctx the parse tree * @return the visitor result */ - visitNumericonly?: (ctx: NumericonlyContext) => Result; + visitNumericOnly?: (ctx: NumericOnlyContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createplangstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createProceduralLangStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateplangstmt?: (ctx: CreateplangstmtContext) => Result; + visitCreateProceduralLangStmt?: (ctx: CreateProceduralLangStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createtablespacestmt`. + * Visit a parse tree produced by `PostgreSqlParser.createTableSpaceStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreatetablespacestmt?: (ctx: CreatetablespacestmtContext) => Result; + visitCreateTableSpaceStmt?: (ctx: CreateTableSpaceStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createextensionstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createExtensionStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateextensionstmt?: (ctx: CreateextensionstmtContext) => Result; + visitCreateExtensionStmt?: (ctx: CreateExtensionStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterextensionstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterExtensionStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterextensionstmt?: (ctx: AlterextensionstmtContext) => Result; + visitAlterExtensionStmt?: (ctx: AlterExtensionStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterextensioncontentsstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterExtensionContentsStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterextensioncontentsstmt?: (ctx: AlterextensioncontentsstmtContext) => Result; + visitAlterExtensionContentsStmt?: (ctx: AlterExtensionContentsStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createfdwstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createFdwStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreatefdwstmt?: (ctx: CreatefdwstmtContext) => Result; + visitCreateFdwStmt?: (ctx: CreateFdwStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.fdw_option`. * @param ctx the parse tree @@ -1166,11 +1166,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterfdwstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterFdwStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterfdwstmt?: (ctx: AlterfdwstmtContext) => Result; + visitAlterFdwStmt?: (ctx: AlterFdwStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.create_generic_options`. * @param ctx the parse tree @@ -1196,11 +1196,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createforeignserverstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createForeignServerStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateforeignserverstmt?: (ctx: CreateforeignserverstmtContext) => Result; + visitCreateForeignServerStmt?: (ctx: CreateForeignServerStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.foreign_server_version`. * @param ctx the parse tree @@ -1208,61 +1208,61 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterforeignserverstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterForeignServerStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterforeignserverstmt?: (ctx: AlterforeignserverstmtContext) => Result; + visitAlterForeignServerStmt?: (ctx: AlterForeignServerStmtContext) => Result; /** * Visit a parse tree produced by the `createForeignTable` - * labeled alternative in `PostgreSqlParser.createforeigntablestmt`. + * labeled alternative in `PostgreSqlParser.createForeignTableStmt`. * @param ctx the parse tree * @return the visitor result */ visitCreateForeignTable?: (ctx: CreateForeignTableContext) => Result; /** * Visit a parse tree produced by the `createPartitionForeignTable` - * labeled alternative in `PostgreSqlParser.createforeigntablestmt`. + * labeled alternative in `PostgreSqlParser.createForeignTableStmt`. * @param ctx the parse tree * @return the visitor result */ visitCreatePartitionForeignTable?: (ctx: CreatePartitionForeignTableContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.importforeignschemastmt`. + * Visit a parse tree produced by `PostgreSqlParser.importForeignSchemaStmt`. * @param ctx the parse tree * @return the visitor result */ - visitImportforeignschemastmt?: (ctx: ImportforeignschemastmtContext) => Result; + visitImportForeignSchemaStmt?: (ctx: ImportForeignSchemaStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createusermappingstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createUserMappingStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateusermappingstmt?: (ctx: CreateusermappingstmtContext) => Result; + visitCreateUserMappingStmt?: (ctx: CreateUserMappingStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterusermappingstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterUserMappingStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterusermappingstmt?: (ctx: AlterusermappingstmtContext) => Result; + visitAlterUserMappingStmt?: (ctx: AlterUserMappingStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createpolicystmt`. + * Visit a parse tree produced by `PostgreSqlParser.createPolicyStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreatepolicystmt?: (ctx: CreatepolicystmtContext) => Result; + visitCreatePolicyStmt?: (ctx: CreatePolicyStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterpolicystmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterPolicyStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterpolicystmt?: (ctx: AlterpolicystmtContext) => Result; + visitAlterPolicyStmt?: (ctx: AlterPolicyStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterprocedurestmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterProcedureStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterprocedurestmt?: (ctx: AlterprocedurestmtContext) => Result; + visitAlterProcedureStmt?: (ctx: AlterProcedureStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.procedure_action`. * @param ctx the parse tree @@ -1270,53 +1270,53 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.rowsecurityoptionalexpr`. + * Visit a parse tree produced by `PostgreSqlParser.rowSecurityOptionalExpr`. * @param ctx the parse tree * @return the visitor result */ - visitRowsecurityoptionalexpr?: (ctx: RowsecurityoptionalexprContext) => Result; + visitRowSecurityOptionalExpr?: (ctx: RowSecurityOptionalExprContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.rowsecurityoptionalwithcheck`. + * Visit a parse tree produced by `PostgreSqlParser.rowSecurityOptionalWithCheck`. * @param ctx the parse tree * @return the visitor result */ - visitRowsecurityoptionalwithcheck?: (ctx: RowsecurityoptionalwithcheckContext) => Result; + visitRowSecurityOptionalWithCheck?: (ctx: RowSecurityOptionalWithCheckContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createamstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createAccessMethodStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateamstmt?: (ctx: CreateamstmtContext) => Result; + visitCreateAccessMethodStmt?: (ctx: CreateAccessMethodStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createtrigstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createTrigStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreatetrigstmt?: (ctx: CreatetrigstmtContext) => Result; + visitCreateTrigStmt?: (ctx: CreateTrigStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.triggeractiontime`. + * Visit a parse tree produced by `PostgreSqlParser.triggerActionTime`. * @param ctx the parse tree * @return the visitor result */ - visitTriggeractiontime?: (ctx: TriggeractiontimeContext) => Result; + visitTriggerActionTime?: (ctx: TriggerActionTimeContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.triggerevents`. + * Visit a parse tree produced by `PostgreSqlParser.triggerEvents`. * @param ctx the parse tree * @return the visitor result */ - visitTriggerevents?: (ctx: TriggereventsContext) => Result; + visitTriggerEvents?: (ctx: TriggerEventsContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.triggeroneevent`. + * Visit a parse tree produced by `PostgreSqlParser.triggerOneEvent`. * @param ctx the parse tree * @return the visitor result */ - visitTriggeroneevent?: (ctx: TriggeroneeventContext) => Result; + visitTriggerOneEvent?: (ctx: TriggerOneEventContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.triggerwhen`. + * Visit a parse tree produced by `PostgreSqlParser.triggerWhen`. * @param ctx the parse tree * @return the visitor result */ - visitTriggerwhen?: (ctx: TriggerwhenContext) => Result; + visitTriggerWhen?: (ctx: TriggerWhenContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.function_or_procedure`. * @param ctx the parse tree @@ -1324,29 +1324,29 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.triggerfuncargs`. + * Visit a parse tree produced by `PostgreSqlParser.triggerFuncArgs`. * @param ctx the parse tree * @return the visitor result */ - visitTriggerfuncargs?: (ctx: TriggerfuncargsContext) => Result; + visitTriggerFuncArgs?: (ctx: TriggerFuncArgsContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.triggerfuncarg`. + * Visit a parse tree produced by `PostgreSqlParser.triggerFuncArg`. * @param ctx the parse tree * @return the visitor result */ - visitTriggerfuncarg?: (ctx: TriggerfuncargContext) => Result; + visitTriggerFuncArg?: (ctx: TriggerFuncArgContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.constraintattributeElem`. + * Visit a parse tree produced by `PostgreSqlParser.constraintAttributeElem`. * @param ctx the parse tree * @return the visitor result */ - visitConstraintattributeElem?: (ctx: ConstraintattributeElemContext) => Result; + visitConstraintAttributeElem?: (ctx: ConstraintAttributeElemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createeventtrigstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createEventTrigStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateeventtrigstmt?: (ctx: CreateeventtrigstmtContext) => Result; + visitCreateEventTrigStmt?: (ctx: CreateEventTrigStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.event_trigger_when_item`. * @param ctx the parse tree @@ -1354,23 +1354,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.altereventtrigstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterEventTrigStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAltereventtrigstmt?: (ctx: AltereventtrigstmtContext) => Result; + visitAlterEventTrigStmt?: (ctx: AlterEventTrigStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createassertionstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createAssertionStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateassertionstmt?: (ctx: CreateassertionstmtContext) => Result; + visitCreateAssertionStmt?: (ctx: CreateAssertionStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.definestmt`. + * Visit a parse tree produced by `PostgreSqlParser.defineStmt`. * @param ctx the parse tree * @return the visitor result */ - visitDefinestmt?: (ctx: DefinestmtContext) => Result; + visitDefineStmt?: (ctx: DefineStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.definition`. * @param ctx the parse tree @@ -1390,17 +1390,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.old_aggr_elem`. + * Visit a parse tree produced by `PostgreSqlParser.old_aggregate_elem`. * @param ctx the parse tree * @return the visitor result */ - visitOld_aggr_elem?: (ctx: Old_aggr_elemContext) => Result; + visitOld_aggregate_elem?: (ctx: Old_aggregate_elemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterenumstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterEnumStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterenumstmt?: (ctx: AlterenumstmtContext) => Result; + visitAlterEnumStmt?: (ctx: AlterEnumStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.opt_if_not_exists`. * @param ctx the parse tree @@ -1408,47 +1408,47 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createopclassstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createOperatorClassStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateopclassstmt?: (ctx: CreateopclassstmtContext) => Result; + visitCreateOperatorClassStmt?: (ctx: CreateOperatorClassStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opclass_item`. + * Visit a parse tree produced by `PostgreSqlParser.opClassItem`. * @param ctx the parse tree * @return the visitor result */ - visitOpclass_item?: (ctx: Opclass_itemContext) => Result; + visitOpClassItem?: (ctx: OpClassItemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createopfamilystmt`. + * Visit a parse tree produced by `PostgreSqlParser.createOperatorFamilyStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateopfamilystmt?: (ctx: CreateopfamilystmtContext) => Result; + visitCreateOperatorFamilyStmt?: (ctx: CreateOperatorFamilyStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alteropfamilystmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterOperatorFamilyStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlteropfamilystmt?: (ctx: AlteropfamilystmtContext) => Result; + visitAlterOperatorFamilyStmt?: (ctx: AlterOperatorFamilyStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opclass_drop`. + * Visit a parse tree produced by `PostgreSqlParser.opClassDrop`. * @param ctx the parse tree * @return the visitor result */ - visitOpclass_drop?: (ctx: Opclass_dropContext) => Result; + visitOpClassDrop?: (ctx: OpClassDropContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.reassignownedstmt`. + * Visit a parse tree produced by `PostgreSqlParser.reassignOwnedStmt`. * @param ctx the parse tree * @return the visitor result */ - visitReassignownedstmt?: (ctx: ReassignownedstmtContext) => Result; + visitReassignOwnedStmt?: (ctx: ReassignOwnedStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.dropstmt`. + * Visit a parse tree produced by `PostgreSqlParser.dropStmt`. * @param ctx the parse tree * @return the visitor result */ - visitDropstmt?: (ctx: DropstmtContext) => Result; + visitDropStmt?: (ctx: DropStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.object_type_any_name`. * @param ctx the parse tree @@ -1480,11 +1480,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.truncatestmt`. + * Visit a parse tree produced by `PostgreSqlParser.truncateStmt`. * @param ctx the parse tree * @return the visitor result */ - visitTruncatestmt?: (ctx: TruncatestmtContext) => Result; + visitTruncateStmt?: (ctx: TruncateStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.truncate_table`. * @param ctx the parse tree @@ -1492,23 +1492,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.commentstmt`. + * Visit a parse tree produced by `PostgreSqlParser.commentStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCommentstmt?: (ctx: CommentstmtContext) => Result; + visitCommentStmt?: (ctx: CommentStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.seclabelstmt`. + * Visit a parse tree produced by `PostgreSqlParser.secLabelStmt`. * @param ctx the parse tree * @return the visitor result */ - visitSeclabelstmt?: (ctx: SeclabelstmtContext) => Result; + visitSecLabelStmt?: (ctx: SecLabelStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.fetchstmt`. + * Visit a parse tree produced by `PostgreSqlParser.fetchStmt`. * @param ctx the parse tree * @return the visitor result */ - visitFetchstmt?: (ctx: FetchstmtContext) => Result; + visitFetchStmt?: (ctx: FetchStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.fetch_args`. * @param ctx the parse tree @@ -1522,17 +1522,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.grantstmt`. + * Visit a parse tree produced by `PostgreSqlParser.grantStmt`. * @param ctx the parse tree * @return the visitor result */ - visitGrantstmt?: (ctx: GrantstmtContext) => Result; + visitGrantStmt?: (ctx: GrantStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.revokestmt`. + * Visit a parse tree produced by `PostgreSqlParser.revokeStmt`. * @param ctx the parse tree * @return the visitor result */ - visitRevokestmt?: (ctx: RevokestmtContext) => Result; + visitRevokeStmt?: (ctx: RevokeStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.privileges`. * @param ctx the parse tree @@ -1540,11 +1540,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.beforeprivilegeselect`. + * Visit a parse tree produced by `PostgreSqlParser.beforePrivilegeSelect`. * @param ctx the parse tree * @return the visitor result */ - visitBeforeprivilegeselect?: (ctx: BeforeprivilegeselectContext) => Result; + visitBeforePrivilegeSelect?: (ctx: BeforePrivilegeSelectContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.privilege`. * @param ctx the parse tree @@ -1564,23 +1564,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.grantrolestmt`. + * Visit a parse tree produced by `PostgreSqlParser.grantRoleStmt`. * @param ctx the parse tree * @return the visitor result */ - visitGrantrolestmt?: (ctx: GrantrolestmtContext) => Result; + visitGrantRoleStmt?: (ctx: GrantRoleStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.revokerolestmt`. + * Visit a parse tree produced by `PostgreSqlParser.revokeRoleStmt`. * @param ctx the parse tree * @return the visitor result */ - visitRevokerolestmt?: (ctx: RevokerolestmtContext) => Result; + visitRevokeRoleStmt?: (ctx: RevokeRoleStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterdefaultprivilegesstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterDefaultPrivilegesStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterdefaultprivilegesstmt?: (ctx: AlterdefaultprivilegesstmtContext) => Result; + visitAlterDefaultPrivilegesStmt?: (ctx: AlterDefaultPrivilegesStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.defaclaction`. * @param ctx the parse tree @@ -1594,11 +1594,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.indexstmt`. + * Visit a parse tree produced by `PostgreSqlParser.indexStmt`. * @param ctx the parse tree * @return the visitor result */ - visitIndexstmt?: (ctx: IndexstmtContext) => Result; + visitIndexStmt?: (ctx: IndexStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.index_params`. * @param ctx the parse tree @@ -1612,11 +1612,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createfunctionstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createFunctionStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreatefunctionstmt?: (ctx: CreatefunctionstmtContext) => Result; + visitCreateFunctionStmt?: (ctx: CreateFunctionStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.opt_or_replace`. * @param ctx the parse tree @@ -1636,41 +1636,41 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.routine_with_argtypes_list`. + * Visit a parse tree produced by `PostgreSqlParser.routineWithArgTypesList`. * @param ctx the parse tree * @return the visitor result */ - visitRoutine_with_argtypes_list?: (ctx: Routine_with_argtypes_listContext) => Result; + visitRoutineWithArgTypesList?: (ctx: RoutineWithArgTypesListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.routine_with_argtypes`. + * Visit a parse tree produced by `PostgreSqlParser.routineWithArgTypes`. * @param ctx the parse tree * @return the visitor result */ - visitRoutine_with_argtypes?: (ctx: Routine_with_argtypesContext) => Result; + visitRoutineWithArgTypes?: (ctx: RoutineWithArgTypesContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.procedure_with_argtypes_list`. + * Visit a parse tree produced by `PostgreSqlParser.procedureWithArgTypesList`. * @param ctx the parse tree * @return the visitor result */ - visitProcedure_with_argtypes_list?: (ctx: Procedure_with_argtypes_listContext) => Result; + visitProcedureWithArgTypesList?: (ctx: ProcedureWithArgTypesListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.procedure_with_argtypes`. + * Visit a parse tree produced by `PostgreSqlParser.procedureWithArgTypes`. * @param ctx the parse tree * @return the visitor result */ - visitProcedure_with_argtypes?: (ctx: Procedure_with_argtypesContext) => Result; + visitProcedureWithArgTypes?: (ctx: ProcedureWithArgTypesContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.function_with_argtypes_list`. + * Visit a parse tree produced by `PostgreSqlParser.functionWithArgTypesList`. * @param ctx the parse tree * @return the visitor result */ - visitFunction_with_argtypes_list?: (ctx: Function_with_argtypes_listContext) => Result; + visitFunctionWithArgTypesList?: (ctx: FunctionWithArgTypesListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.function_with_argtypes`. + * Visit a parse tree produced by `PostgreSqlParser.functionWithArgTypes`. * @param ctx the parse tree * @return the visitor result */ - visitFunction_with_argtypes?: (ctx: Function_with_argtypesContext) => Result; + visitFunctionWithArgTypes?: (ctx: FunctionWithArgTypesContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.func_arg`. * @param ctx the parse tree @@ -1696,17 +1696,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.aggr_args`. + * Visit a parse tree produced by `PostgreSqlParser.aggregate_args`. * @param ctx the parse tree * @return the visitor result */ - visitAggr_args?: (ctx: Aggr_argsContext) => Result; + visitAggregate_args?: (ctx: Aggregate_argsContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.aggregate_with_argtypes`. + * Visit a parse tree produced by `PostgreSqlParser.aggregateWithArgTypes`. * @param ctx the parse tree * @return the visitor result */ - visitAggregate_with_argtypes?: (ctx: Aggregate_with_argtypesContext) => Result; + visitAggregateWithArgTypes?: (ctx: AggregateWithArgTypesContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.common_func_opt_item`. * @param ctx the parse tree @@ -1714,11 +1714,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createfunc_opt_item`. + * Visit a parse tree produced by `PostgreSqlParser.create_func_opt_item`. * @param ctx the parse tree * @return the visitor result */ - visitCreatefunc_opt_item?: (ctx: Createfunc_opt_itemContext) => Result; + visitCreate_func_opt_item?: (ctx: Create_func_opt_itemContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.opt_definition`. * @param ctx the parse tree @@ -1732,35 +1732,35 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterfunctionstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterFunctionStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterfunctionstmt?: (ctx: AlterfunctionstmtContext) => Result; + visitAlterFunctionStmt?: (ctx: AlterFunctionStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.removefuncstmt`. + * Visit a parse tree produced by `PostgreSqlParser.removeFuncStmt`. * @param ctx the parse tree * @return the visitor result */ - visitRemovefuncstmt?: (ctx: RemovefuncstmtContext) => Result; + visitRemoveFuncStmt?: (ctx: RemoveFuncStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.removeaggrstmt`. + * Visit a parse tree produced by `PostgreSqlParser.removeAggregateStmt`. * @param ctx the parse tree * @return the visitor result */ - visitRemoveaggrstmt?: (ctx: RemoveaggrstmtContext) => Result; + visitRemoveAggregateStmt?: (ctx: RemoveAggregateStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.removeoperstmt`. + * Visit a parse tree produced by `PostgreSqlParser.removeOperatorStmt`. * @param ctx the parse tree * @return the visitor result */ - visitRemoveoperstmt?: (ctx: RemoveoperstmtContext) => Result; + visitRemoveOperatorStmt?: (ctx: RemoveOperatorStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.oper_argtypes`. + * Visit a parse tree produced by `PostgreSqlParser.operatorArgTypes`. * @param ctx the parse tree * @return the visitor result */ - visitOper_argtypes?: (ctx: Oper_argtypesContext) => Result; + visitOperatorArgTypes?: (ctx: OperatorArgTypesContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.any_operator`. * @param ctx the parse tree @@ -1768,23 +1768,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.operator_with_argtypes`. + * Visit a parse tree produced by `PostgreSqlParser.operatorWithArgTypes`. * @param ctx the parse tree * @return the visitor result */ - visitOperator_with_argtypes?: (ctx: Operator_with_argtypesContext) => Result; + visitOperatorWithArgTypes?: (ctx: OperatorWithArgTypesContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.dostmt`. + * Visit a parse tree produced by `PostgreSqlParser.doStmt`. * @param ctx the parse tree * @return the visitor result */ - visitDostmt?: (ctx: DostmtContext) => Result; + visitDoStmt?: (ctx: DoStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createcaststmt`. + * Visit a parse tree produced by `PostgreSqlParser.createCastStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreatecaststmt?: (ctx: CreatecaststmtContext) => Result; + visitCreateCastStmt?: (ctx: CreateCastStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.opt_if_exists`. * @param ctx the parse tree @@ -1792,11 +1792,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createtransformstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createTransformStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreatetransformstmt?: (ctx: CreatetransformstmtContext) => Result; + visitCreateTransformStmt?: (ctx: CreateTransformStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.sql_with_function`. * @param ctx the parse tree @@ -1804,41 +1804,41 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.reindexstmt`. + * Visit a parse tree produced by `PostgreSqlParser.reindexStmt`. * @param ctx the parse tree * @return the visitor result */ - visitReindexstmt?: (ctx: ReindexstmtContext) => Result; + visitReindexStmt?: (ctx: ReindexStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.altertblspcstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterTblSpcStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAltertblspcstmt?: (ctx: AltertblspcstmtContext) => Result; + visitAlterTblSpcStmt?: (ctx: AlterTblSpcStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.renamestmt`. + * Visit a parse tree produced by `PostgreSqlParser.renameStmt`. * @param ctx the parse tree * @return the visitor result */ - visitRenamestmt?: (ctx: RenamestmtContext) => Result; + visitRenameStmt?: (ctx: RenameStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterobjectdependsstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterObjectDependsStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterobjectdependsstmt?: (ctx: AlterobjectdependsstmtContext) => Result; + visitAlterObjectDependsStmt?: (ctx: AlterObjectDependsStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterobjectschemastmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterObjectSchemaStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterobjectschemastmt?: (ctx: AlterobjectschemastmtContext) => Result; + visitAlterObjectSchemaStmt?: (ctx: AlterObjectSchemaStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alteroperatorstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterOperatorStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlteroperatorstmt?: (ctx: AlteroperatorstmtContext) => Result; + visitAlterOperatorStmt?: (ctx: AlterOperatorStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.operator_def_list`. * @param ctx the parse tree @@ -1852,59 +1852,59 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.altertypestmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterTypeStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAltertypestmt?: (ctx: AltertypestmtContext) => Result; + visitAlterTypeStmt?: (ctx: AlterTypeStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterownerstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterOwnerStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterownerstmt?: (ctx: AlterownerstmtContext) => Result; + visitAlterOwnerStmt?: (ctx: AlterOwnerStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createpublicationstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createPublicationStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreatepublicationstmt?: (ctx: CreatepublicationstmtContext) => Result; + visitCreatePublicationStmt?: (ctx: CreatePublicationStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterpublicationstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterPublicationStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterpublicationstmt?: (ctx: AlterpublicationstmtContext) => Result; + visitAlterPublicationStmt?: (ctx: AlterPublicationStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createsubscriptionstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createSubscriptionStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreatesubscriptionstmt?: (ctx: CreatesubscriptionstmtContext) => Result; + visitCreateSubscriptionStmt?: (ctx: CreateSubscriptionStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.altersubscriptionstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterSubscriptionStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAltersubscriptionstmt?: (ctx: AltersubscriptionstmtContext) => Result; + visitAlterSubscriptionStmt?: (ctx: AlterSubscriptionStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.rulestmt`. + * Visit a parse tree produced by `PostgreSqlParser.ruleStmt`. * @param ctx the parse tree * @return the visitor result */ - visitRulestmt?: (ctx: RulestmtContext) => Result; + visitRuleStmt?: (ctx: RuleStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.ruleactionstmt`. + * Visit a parse tree produced by `PostgreSqlParser.ruleActionStmt`. * @param ctx the parse tree * @return the visitor result */ - visitRuleactionstmt?: (ctx: RuleactionstmtContext) => Result; + visitRuleActionStmt?: (ctx: RuleActionStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.notifystmt`. + * Visit a parse tree produced by `PostgreSqlParser.notifyStmt`. * @param ctx the parse tree * @return the visitor result */ - visitNotifystmt?: (ctx: NotifystmtContext) => Result; + visitNotifyStmt?: (ctx: NotifyStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.notify_payload`. * @param ctx the parse tree @@ -1912,23 +1912,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.listenstmt`. + * Visit a parse tree produced by `PostgreSqlParser.listenStmt`. * @param ctx the parse tree * @return the visitor result */ - visitListenstmt?: (ctx: ListenstmtContext) => Result; + visitListenStmt?: (ctx: ListenStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.unlistenstmt`. + * Visit a parse tree produced by `PostgreSqlParser.unListenStmt`. * @param ctx the parse tree * @return the visitor result */ - visitUnlistenstmt?: (ctx: UnlistenstmtContext) => Result; + visitUnListenStmt?: (ctx: UnListenStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.transactionstmt`. + * Visit a parse tree produced by `PostgreSqlParser.transactionStmt`. * @param ctx the parse tree * @return the visitor result */ - visitTransactionstmt?: (ctx: TransactionstmtContext) => Result; + visitTransactionStmt?: (ctx: TransactionStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.opt_transaction`. * @param ctx the parse tree @@ -1949,102 +1949,102 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** * Visit a parse tree produced by the `createView` - * labeled alternative in `PostgreSqlParser.viewstmt`. + * labeled alternative in `PostgreSqlParser.viewStmt`. * @param ctx the parse tree * @return the visitor result */ visitCreateView?: (ctx: CreateViewContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.loadstmt`. + * Visit a parse tree produced by `PostgreSqlParser.loadStmt`. * @param ctx the parse tree * @return the visitor result */ - visitLoadstmt?: (ctx: LoadstmtContext) => Result; + visitLoadStmt?: (ctx: LoadStmtContext) => Result; /** * Visit a parse tree produced by the `createDatabase` - * labeled alternative in `PostgreSqlParser.createdbstmt`. + * labeled alternative in `PostgreSqlParser.createDbStmt`. * @param ctx the parse tree * @return the visitor result */ visitCreateDatabase?: (ctx: CreateDatabaseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createdb_opt_item`. + * Visit a parse tree produced by `PostgreSqlParser.create_db_opt_item`. * @param ctx the parse tree * @return the visitor result */ - visitCreatedb_opt_item?: (ctx: Createdb_opt_itemContext) => Result; + visitCreate_db_opt_item?: (ctx: Create_db_opt_itemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterdatabasestmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterDatabaseStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterdatabasestmt?: (ctx: AlterdatabasestmtContext) => Result; + visitAlterDatabaseStmt?: (ctx: AlterDatabaseStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterdatabasesetstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterDatabaseSetStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterdatabasesetstmt?: (ctx: AlterdatabasesetstmtContext) => Result; + visitAlterDatabaseSetStmt?: (ctx: AlterDatabaseSetStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.altercollationstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterCollationStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAltercollationstmt?: (ctx: AltercollationstmtContext) => Result; + visitAlterCollationStmt?: (ctx: AlterCollationStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.altersystemstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterSystemStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAltersystemstmt?: (ctx: AltersystemstmtContext) => Result; + visitAlterSystemStmt?: (ctx: AlterSystemStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createdomainstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createDomainStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreatedomainstmt?: (ctx: CreatedomainstmtContext) => Result; + visitCreateDomainStmt?: (ctx: CreateDomainStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alterdomainstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterDomainStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAlterdomainstmt?: (ctx: AlterdomainstmtContext) => Result; + visitAlterDomainStmt?: (ctx: AlterDomainStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.altertsdictionarystmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterSearchDictionaryStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAltertsdictionarystmt?: (ctx: AltertsdictionarystmtContext) => Result; + visitAlterSearchDictionaryStmt?: (ctx: AlterSearchDictionaryStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.altertsconfigurationstmt`. + * Visit a parse tree produced by `PostgreSqlParser.alterSearchConfigurationStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAltertsconfigurationstmt?: (ctx: AltertsconfigurationstmtContext) => Result; + visitAlterSearchConfigurationStmt?: (ctx: AlterSearchConfigurationStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.createconversionstmt`. + * Visit a parse tree produced by `PostgreSqlParser.createConversionStmt`. * @param ctx the parse tree * @return the visitor result */ - visitCreateconversionstmt?: (ctx: CreateconversionstmtContext) => Result; + visitCreateConversionStmt?: (ctx: CreateConversionStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.clusterstmt`. + * Visit a parse tree produced by `PostgreSqlParser.clusterStmt`. * @param ctx the parse tree * @return the visitor result */ - visitClusterstmt?: (ctx: ClusterstmtContext) => Result; + visitClusterStmt?: (ctx: ClusterStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.vacuumstmt`. + * Visit a parse tree produced by `PostgreSqlParser.vacuumStmt`. * @param ctx the parse tree * @return the visitor result */ - visitVacuumstmt?: (ctx: VacuumstmtContext) => Result; + visitVacuumStmt?: (ctx: VacuumStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.analyzestmt`. + * Visit a parse tree produced by `PostgreSqlParser.analyzeStmt`. * @param ctx the parse tree * @return the visitor result */ - visitAnalyzestmt?: (ctx: AnalyzestmtContext) => Result; + visitAnalyzeStmt?: (ctx: AnalyzeStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.analyze_keyword`. * @param ctx the parse tree @@ -2082,17 +2082,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.explainstmt`. + * Visit a parse tree produced by `PostgreSqlParser.explainStmt`. * @param ctx the parse tree * @return the visitor result */ - visitExplainstmt?: (ctx: ExplainstmtContext) => Result; + visitExplainStmt?: (ctx: ExplainStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.explainablestmt`. + * Visit a parse tree produced by `PostgreSqlParser.explainableStmt`. * @param ctx the parse tree * @return the visitor result */ - visitExplainablestmt?: (ctx: ExplainablestmtContext) => Result; + visitExplainableStmt?: (ctx: ExplainableStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.explain_option_list`. * @param ctx the parse tree @@ -2100,11 +2100,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.preparestmt`. + * Visit a parse tree produced by `PostgreSqlParser.prepareStmt`. * @param ctx the parse tree * @return the visitor result */ - visitPreparestmt?: (ctx: PreparestmtContext) => Result; + visitPrepareStmt?: (ctx: PrepareStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.prep_type_clause`. * @param ctx the parse tree @@ -2112,17 +2112,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.preparablestmt`. + * Visit a parse tree produced by `PostgreSqlParser.preParableStmt`. * @param ctx the parse tree * @return the visitor result */ - visitPreparablestmt?: (ctx: PreparablestmtContext) => Result; + visitPreParableStmt?: (ctx: PreParableStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.executestmt`. + * Visit a parse tree produced by `PostgreSqlParser.executeStmt`. * @param ctx the parse tree * @return the visitor result */ - visitExecutestmt?: (ctx: ExecutestmtContext) => Result; + visitExecuteStmt?: (ctx: ExecuteStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.execute_param_clause`. * @param ctx the parse tree @@ -2130,14 +2130,14 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.deallocatestmt`. + * Visit a parse tree produced by `PostgreSqlParser.dealLocateStmt`. * @param ctx the parse tree * @return the visitor result */ - visitDeallocatestmt?: (ctx: DeallocatestmtContext) => Result; + visitDealLocateStmt?: (ctx: DealLocateStmtContext) => Result; /** * Visit a parse tree produced by the `insertStatement` - * labeled alternative in `PostgreSqlParser.insertstmt`. + * labeled alternative in `PostgreSqlParser.insertStmt`. * @param ctx the parse tree * @return the visitor result */ @@ -2167,23 +2167,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.deletestmt`. + * Visit a parse tree produced by `PostgreSqlParser.deleteStmt`. * @param ctx the parse tree * @return the visitor result */ - visitDeletestmt?: (ctx: DeletestmtContext) => Result; + visitDeleteStmt?: (ctx: DeleteStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.lockstmt`. + * Visit a parse tree produced by `PostgreSqlParser.lockStmt`. * @param ctx the parse tree * @return the visitor result */ - visitLockstmt?: (ctx: LockstmtContext) => Result; + visitLockStmt?: (ctx: LockStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.updatestmt`. + * Visit a parse tree produced by `PostgreSqlParser.updateStmt`. * @param ctx the parse tree * @return the visitor result */ - visitUpdatestmt?: (ctx: UpdatestmtContext) => Result; + visitUpdateStmt?: (ctx: UpdateStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.set_clause_list`. * @param ctx the parse tree @@ -2197,14 +2197,14 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.declarecursorstmt`. + * Visit a parse tree produced by `PostgreSqlParser.declareCursorStmt`. * @param ctx the parse tree * @return the visitor result */ - visitDeclarecursorstmt?: (ctx: DeclarecursorstmtContext) => Result; + visitDeclareCursorStmt?: (ctx: DeclareCursorStmtContext) => Result; /** * Visit a parse tree produced by the `selectStatement` - * labeled alternative in `PostgreSqlParser.selectstmt`. + * labeled alternative in `PostgreSqlParser.selectStmt`. * @param ctx the parse tree * @return the visitor result */ @@ -2252,17 +2252,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.search_cluase`. + * Visit a parse tree produced by `PostgreSqlParser.search_clause`. * @param ctx the parse tree * @return the visitor result */ - visitSearch_cluase?: (ctx: Search_cluaseContext) => Result; + visitSearch_clause?: (ctx: Search_clauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.cycle_cluase`. + * Visit a parse tree produced by `PostgreSqlParser.cycle_clause`. * @param ctx the parse tree * @return the visitor result */ - visitCycle_cluase?: (ctx: Cycle_cluaseContext) => Result; + visitCycle_clause?: (ctx: Cycle_clauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.into_clause`. * @param ctx the parse tree @@ -2270,11 +2270,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opttempTableName`. + * Visit a parse tree produced by `PostgreSqlParser.optTempTableName`. * @param ctx the parse tree * @return the visitor result */ - visitOpttempTableName?: (ctx: OpttempTableNameContext) => Result; + visitOptTempTableName?: (ctx: OptTempTableNameContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.distinct_clause`. * @param ctx the parse tree @@ -2288,11 +2288,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.sortby`. + * Visit a parse tree produced by `PostgreSqlParser.sortBy`. * @param ctx the parse tree * @return the visitor result */ - visitSortby?: (ctx: SortbyContext) => Result; + visitSortBy?: (ctx: SortByContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.select_limit`. * @param ctx the parse tree @@ -2420,11 +2420,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.tablesample_clause`. + * Visit a parse tree produced by `PostgreSqlParser.tableSampleClause`. * @param ctx the parse tree * @return the visitor result */ - visitTablesample_clause?: (ctx: Tablesample_clauseContext) => Result; + visitTableSampleClause?: (ctx: TableSampleClauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.func_table`. * @param ctx the parse tree @@ -2432,11 +2432,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.rowsfrom_item`. + * Visit a parse tree produced by `PostgreSqlParser.rowsFromItem`. * @param ctx the parse tree * @return the visitor result */ - visitRowsfrom_item?: (ctx: Rowsfrom_itemContext) => Result; + visitRowsFromItem?: (ctx: RowsFromItemContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.where_clause`. * @param ctx the parse tree @@ -2450,29 +2450,29 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.tablefuncelementlist`. + * Visit a parse tree produced by `PostgreSqlParser.tableFuncElementList`. * @param ctx the parse tree * @return the visitor result */ - visitTablefuncelementlist?: (ctx: TablefuncelementlistContext) => Result; + visitTableFuncElementList?: (ctx: TableFuncElementListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.tablefuncelement`. + * Visit a parse tree produced by `PostgreSqlParser.tableFuncElement`. * @param ctx the parse tree * @return the visitor result */ - visitTablefuncelement?: (ctx: TablefuncelementContext) => Result; + visitTableFuncElement?: (ctx: TableFuncElementContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.xmltable`. + * Visit a parse tree produced by `PostgreSqlParser.xmlTable`. * @param ctx the parse tree * @return the visitor result */ - visitXmltable?: (ctx: XmltableContext) => Result; + visitXmlTable?: (ctx: XmlTableContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.xmltable_column_el`. + * Visit a parse tree produced by `PostgreSqlParser.xmlTableColumnEl`. * @param ctx the parse tree * @return the visitor result */ - visitXmltable_column_el?: (ctx: Xmltable_column_elContext) => Result; + visitXmlTableColumnEl?: (ctx: XmlTableColumnElContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.xml_namespace_el`. * @param ctx the parse tree @@ -2486,17 +2486,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.simpletypename`. + * Visit a parse tree produced by `PostgreSqlParser.simpleTypeName`. * @param ctx the parse tree * @return the visitor result */ - visitSimpletypename?: (ctx: SimpletypenameContext) => Result; + visitSimpleTypeName?: (ctx: SimpleTypeNameContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.consttypename`. + * Visit a parse tree produced by `PostgreSqlParser.constTypeName`. * @param ctx the parse tree * @return the visitor result */ - visitConsttypename?: (ctx: ConsttypenameContext) => Result; + visitConstTypeName?: (ctx: ConstTypeNameContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.numeric`. * @param ctx the parse tree @@ -2522,11 +2522,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.constdatetime`. + * Visit a parse tree produced by `PostgreSqlParser.constDatetime`. * @param ctx the parse tree * @return the visitor result */ - visitConstdatetime?: (ctx: ConstdatetimeContext) => Result; + visitConstDatetime?: (ctx: ConstDatetimeContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.opt_interval`. * @param ctx the parse tree @@ -2712,11 +2712,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.xmlexists_argument`. + * Visit a parse tree produced by `PostgreSqlParser.xmlExistsArgument`. * @param ctx the parse tree * @return the visitor result */ - visitXmlexists_argument?: (ctx: Xmlexists_argumentContext) => Result; + visitXmlExistsArgument?: (ctx: XmlExistsArgumentContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.xml_passing_mech`. * @param ctx the parse tree @@ -2820,11 +2820,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.column_expr_noparen`. + * Visit a parse tree produced by `PostgreSqlParser.column_expr_no_paren`. * @param ctx the parse tree * @return the visitor result */ - visitColumn_expr_noparen?: (ctx: Column_expr_noparenContext) => Result; + visitColumn_expr_no_paren?: (ctx: Column_expr_no_parenContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.func_arg_list`. * @param ctx the parse tree @@ -3074,11 +3074,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.sconst`. + * Visit a parse tree produced by `PostgreSqlParser.stringConst`. * @param ctx the parse tree * @return the visitor result */ - visitSconst?: (ctx: SconstContext) => Result; + visitStringConst?: (ctx: StringConstContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.anysconst`. * @param ctx the parse tree @@ -3086,17 +3086,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.signediconst`. + * Visit a parse tree produced by `PostgreSqlParser.signedConst`. * @param ctx the parse tree * @return the visitor result */ - visitSignediconst?: (ctx: SignediconstContext) => Result; + visitSignedConst?: (ctx: SignedConstContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.rolespec`. + * Visit a parse tree produced by `PostgreSqlParser.roleSpec`. * @param ctx the parse tree * @return the visitor result */ - visitRolespec?: (ctx: RolespecContext) => Result; + visitRoleSpec?: (ctx: RoleSpecContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.role_list`. * @param ctx the parse tree @@ -3104,11 +3104,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.colid`. + * Visit a parse tree produced by `PostgreSqlParser.colId`. * @param ctx the parse tree * @return the visitor result */ - visitColid?: (ctx: ColidContext) => Result; + visitColId?: (ctx: ColIdContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.type_function_name`. * @param ctx the parse tree @@ -3116,17 +3116,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.nonreservedword`. + * Visit a parse tree produced by `PostgreSqlParser.nonReservedWord`. * @param ctx the parse tree * @return the visitor result */ - visitNonreservedword?: (ctx: NonreservedwordContext) => Result; + visitNonReservedWord?: (ctx: NonReservedWordContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.collabel`. + * Visit a parse tree produced by `PostgreSqlParser.colLabel`. * @param ctx the parse tree * @return the visitor result */ - visitCollabel?: (ctx: CollabelContext) => Result; + visitColLabel?: (ctx: ColLabelContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.identifier`. * @param ctx the parse tree @@ -3350,11 +3350,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.mergestmt`. + * Visit a parse tree produced by `PostgreSqlParser.mergeStmt`. * @param ctx the parse tree * @return the visitor result */ - visitMergestmt?: (ctx: MergestmtContext) => Result; + visitMergeStmt?: (ctx: MergeStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.data_source`. * @param ctx the parse tree diff --git a/src/parser/postgresql/postgreEntityCollector.ts b/src/parser/postgresql/postgreEntityCollector.ts index 801c2d9cb..8572a989a 100644 --- a/src/parser/postgresql/postgreEntityCollector.ts +++ b/src/parser/postgresql/postgreEntityCollector.ts @@ -1,11 +1,11 @@ import { - type AltertablestmtContext, + type AlterTableStmtContext, Column_defContext, type ColumnCreateTableContext, type ColumnNameCreateContext, type CreateDatabaseContext, type CreateForeignTableContext, - type CreatefunctionstmtContext, + type CreateFunctionStmtContext, type CreateMaterializedViewContext, type CreatePartitionForeignTableContext, type CreateViewContext, @@ -184,17 +184,17 @@ export class PostgreSqlEntityCollector extends EntityCollector implements Postgr this.popStmt(); } - enterCreatefunctionstmt(ctx: CreatefunctionstmtContext) { + enterCreateFunctionStmt(ctx: CreateFunctionStmtContext) { this.pushStmt(ctx, StmtContextType.CREATE_FUNCTION_STMT); } - exitCreatefunctionstmt(ctx: CreatefunctionstmtContext) { + exitCreateFunctionStmt(ctx: CreateFunctionStmtContext) { this.popStmt(); } - enterAltertablestmt(ctx: AltertablestmtContext) { + enterAlterTableStmt(ctx: AlterTableStmtContext) { this.pushStmt(ctx, StmtContextType.ALTER_TABLE_STMT); } - exitAltertablestmt(ctx: AltertablestmtContext) { + exitAlterTableStmt(ctx: AlterTableStmtContext) { this.popStmt(); } } From 813a39db6aa08fc01975426e21ad5ef542538a8a Mon Sep 17 00:00:00 2001 From: LuckyFBB <976060700@qq.com> Date: Mon, 17 Feb 2025 19:24:58 +0800 Subject: [PATCH 8/8] feat(postgre): changed to camelCase for postgreSQL --- src/grammar/postgresql/PostgreSqlParser.g4 | 1892 +- src/lib/postgresql/PostgreSqlParser.interp | 500 +- src/lib/postgresql/PostgreSqlParser.ts | 33576 ++++++++-------- .../postgresql/PostgreSqlParserListener.ts | 2465 +- src/lib/postgresql/PostgreSqlParserVisitor.ts | 1470 +- src/parser/postgresql/index.ts | 56 +- .../postgresql/postgreEntityCollector.ts | 6 +- src/parser/postgresql/postgreErrorListener.ts | 56 +- test/parser/postgresql/listener.test.ts | 2 +- test/parser/postgresql/visitor.test.ts | 2 +- 10 files changed, 19601 insertions(+), 20424 deletions(-) diff --git a/src/grammar/postgresql/PostgreSqlParser.g4 b/src/grammar/postgresql/PostgreSqlParser.g4 index e539cf909..d5497eb87 100644 --- a/src/grammar/postgresql/PostgreSqlParser.g4 +++ b/src/grammar/postgresql/PostgreSqlParser.g4 @@ -178,7 +178,7 @@ stmt ; callStmt - : KW_CALL func_application + : KW_CALL funcApplication ; createRoleStmt @@ -206,17 +206,17 @@ alterOperatorRoleElem | KW_NOBYPASSRLS | KW_CONNECTION KW_LIMIT signedConst | KW_VALID KW_UNTIL stringConst - | KW_IN (KW_ROLE | KW_GROUP) name_list - | (KW_ROLE | KW_USER) role_list - | KW_ADMIN name_list + | KW_IN (KW_ROLE | KW_GROUP) nameList + | (KW_ROLE | KW_USER) roleList + | KW_ADMIN nameList | identifier ; createOperatorRoleElem : alterOperatorRoleElem | KW_SYSID Integral - | (KW_ADMIN | KW_ROLE) role_list - | KW_IN (KW_ROLE | KW_GROUP) role_list + | (KW_ADMIN | KW_ROLE) roleList + | KW_IN (KW_ROLE | KW_GROUP) roleList ; createUserStmt @@ -228,22 +228,22 @@ alterRoleStmt ; alterRoleSetStmt - : KW_ALTER (KW_ROLE | KW_USER) (KW_ALL | roleSpec) KW_IN KW_DATABASE database_name setOrResetClause + : KW_ALTER (KW_ROLE | KW_USER) (KW_ALL | roleSpec) KW_IN KW_DATABASE databaseName setOrResetClause ; alterRoutineStmt - : KW_ALTER KW_ROUTINE routine_name func_args? alter_routine_clause + : KW_ALTER KW_ROUTINE routineName funcArgs? alterRoutineClause ; -alter_routine_clause - : routine_action (routine_action)* KW_RESTRICT? - | KW_RENAME KW_TO routine_name_create +alterRoutineClause + : routineAction (routineAction)* KW_RESTRICT? + | KW_RENAME KW_TO routineNameCreate | KW_OWNER KW_TO roleSpec - | KW_SET KW_SCHEMA schema_name_create + | KW_SET KW_SCHEMA schemaNameCreate | KW_NO? KW_DEPENDS KW_ON KW_EXTENSION colId ; -routine_action +routineAction : KW_IMMUTABLE | KW_STABLE | KW_VOLATILE @@ -262,21 +262,21 @@ createGroupStmt ; alterGroupStmt - : KW_ALTER KW_GROUP roleSpec (KW_ADD | KW_DROP) KW_USER role_list + : KW_ALTER KW_GROUP roleSpec (KW_ADD | KW_DROP) KW_USER roleList ; createSchemaStmt - : KW_CREATE KW_SCHEMA opt_if_not_exists? ( - schema_name_create? KW_AUTHORIZATION roleSpec - | schema_name_create - ) schema_stmt* + : KW_CREATE KW_SCHEMA ifNotExists? ( + schemaNameCreate? KW_AUTHORIZATION roleSpec + | schemaNameCreate + ) schemaStmt* ; -schema_name_create - : any_name # schemaNameCreate +schemaNameCreate + : anyName ; -schema_stmt +schemaStmt : createStmt | indexStmt | createSeqStmt @@ -286,73 +286,73 @@ schema_stmt ; variableSetStmt - : KW_SET (KW_LOCAL | KW_SESSION)? set_rest + : KW_SET (KW_LOCAL | KW_SESSION)? setRest ; -set_rest - : KW_TRANSACTION transaction_mode_list - | KW_SESSION KW_CHARACTERISTICS KW_AS KW_TRANSACTION transaction_mode_list - | set_rest_more +setRest + : KW_TRANSACTION transactionModeList + | KW_SESSION KW_CHARACTERISTICS KW_AS KW_TRANSACTION transactionModeList + | setRestMore ; -generic_set - : (KW_ALL | var_name) (KW_TO | EQUAL)? (KW_DEFAULT | var_list)? +genericSet + : (KW_ALL | varName) (KW_TO | EQUAL)? (KW_DEFAULT | varList)? ; -set_rest_more - : KW_TIME KW_ZONE zone_value +setRestMore + : KW_TIME KW_ZONE zoneValue | KW_CATALOG stringConst - | KW_SCHEMA schema_name + | KW_SCHEMA schemaName | KW_NAMES (stringConst | KW_DEFAULT)? | KW_ROLE nonReservedWordOrStringConst | KW_SESSION KW_AUTHORIZATION nonReservedWordOrStringConst - | KW_XML KW_OPTION document_or_content + | KW_XML KW_OPTION documentOrContent | KW_TRANSACTION KW_SNAPSHOT stringConst - | var_name KW_FROM KW_CURRENT - | generic_set + | varName KW_FROM KW_CURRENT + | genericSet ; -var_name +varName : colId (DOT colId)* ; -var_list - : var_value (COMMA var_value)* +varList + : varValue (COMMA varValue)* ; -var_value - : opt_boolean_or_string +varValue + : booleanOrString | numericOnly ; -iso_level +isoLevel : KW_READ (KW_UNCOMMITTED | KW_COMMITTED) | KW_REPEATABLE KW_READ | KW_SERIALIZABLE ; -opt_boolean_or_string_column +optBooleanOrStringColumn : KW_TRUE | KW_FALSE | KW_ON - | column_name - | type_func_name_keyword + | columnName + | typeFuncNameKeyword | stringConst ; -opt_boolean_or_string +booleanOrString : KW_TRUE | KW_FALSE | KW_ON | nonReservedWordOrStringConst ; -zone_value +zoneValue : stringConst | KW_DEFAULT | identifier - | KW_INTERVAL stringConst opt_interval? - | KW_INTERVAL opt_float stringConst + | KW_INTERVAL stringConst optInterval? + | KW_INTERVAL optFloat stringConst | numericOnly | KW_LOCAL ; @@ -363,30 +363,30 @@ nonReservedWordOrStringConst ; variableResetStmt - : KW_RESET reset_rest + : KW_RESET resetRest ; -reset_rest +resetRest : KW_TIME KW_ZONE | KW_TRANSACTION KW_ISOLATION KW_LEVEL | KW_SESSION KW_AUTHORIZATION | KW_ALL - | var_name + | varName ; setOrResetClause - : KW_SET set_rest + : KW_SET setRest | variableResetStmt ; functionSetOrResetClause - : KW_SET set_rest_more + : KW_SET setRestMore | variableResetStmt ; variableShowStmt : KW_SHOW ( - var_name + varName | KW_TIME KW_ZONE | KW_TRANSACTION KW_ISOLATION KW_LEVEL | KW_SESSION KW_AUTHORIZATION @@ -395,7 +395,7 @@ variableShowStmt ; constraintsSetStmt - : KW_SET KW_CONSTRAINTS (KW_ALL | qualified_name_list) (KW_DEFERRED | KW_IMMEDIATE) + : KW_SET KW_CONSTRAINTS (KW_ALL | qualifiedNameList) (KW_DEFERRED | KW_IMMEDIATE) ; checkPointStmt @@ -407,62 +407,39 @@ discardStmt ; alterTableStmt - : KW_ALTER KW_TABLE opt_if_exists? relation_expr (alter_table_cmds | partition_cmd) - | KW_ALTER KW_TABLE KW_ALL KW_IN optTableSpace (KW_OWNED KW_BY role_list)? KW_SET KW_TABLESPACE tablespace_name_create KW_NOWAIT? - | KW_ALTER KW_TABLE opt_if_exists? table_name index_partition_cmd ( - KW_FOR KW_VALUES partition_bound_spec - | KW_DEFAULT - ) - | KW_ALTER KW_TABLE opt_if_exists? table_name KW_DETACH KW_PARTITION qualified_name ( + : KW_ALTER KW_TABLE ifExists? relationExpr (alterTableCmds | partitionCmd) + | KW_ALTER KW_TABLE KW_ALL KW_IN optTableSpace (KW_OWNED KW_BY roleList)? KW_SET KW_TABLESPACE tableSpaceName KW_NOWAIT? + | KW_ALTER KW_TABLE ifExists? tableName indexPartitionCmd partitionBoundSpec + | KW_ALTER KW_TABLE ifExists? tableName KW_DETACH KW_PARTITION qualifiedName ( KW_CONCURRENTLY | KW_FINALIZE )? - | KW_ALTER KW_INDEX opt_if_exists? qualified_name (alter_table_cmds | index_partition_cmd) - | KW_ALTER KW_INDEX KW_ALL KW_IN optTableSpace (KW_OWNED KW_BY role_list)? KW_SET optTableSpace KW_NOWAIT? - | KW_ALTER KW_SEQUENCE opt_if_exists? qualified_name alter_table_cmds - | KW_ALTER KW_MATERIALIZED? KW_VIEW opt_if_exists? view_name alter_table_cmds - | KW_ALTER KW_MATERIALIZED KW_VIEW KW_ALL KW_IN optTableSpace (KW_OWNED KW_BY role_list)? KW_SET KW_TABLESPACE tablespace_name_create KW_NOWAIT? - | KW_ALTER KW_FOREIGN KW_TABLE opt_if_exists? relation_expr alter_table_cmds - ; - -alter_table_cmds - : alter_table_cmd (COMMA alter_table_cmd)* - ; - -partition_bound_spec - : KW_IN execute_param_clause - | KW_FROM partition_bound_clause KW_TO partition_bound_clause - | KW_WITH partition_with_clause - ; - -partition_bound_clause - : OPEN_PAREN partition_bound_choose (COMMA partition_bound_choose)* CLOSE_PAREN - ; - -partition_bound_choose - : execute_param_clause - | KW_MINVALUE - | KW_MAXVALUE + | KW_ALTER KW_INDEX ifExists? qualifiedName (alterTableCmds | indexPartitionCmd) + | KW_ALTER KW_INDEX KW_ALL KW_IN optTableSpace (KW_OWNED KW_BY roleList)? KW_SET optTableSpace KW_NOWAIT? + | KW_ALTER KW_SEQUENCE ifExists? qualifiedName alterTableCmds + | KW_ALTER KW_MATERIALIZED? KW_VIEW ifExists? viewName alterTableCmds + | KW_ALTER KW_MATERIALIZED KW_VIEW KW_ALL KW_IN optTableSpace (KW_OWNED KW_BY roleList)? KW_SET KW_TABLESPACE tableSpaceName KW_NOWAIT? + | KW_ALTER KW_FOREIGN KW_TABLE ifExists? relationExpr alterTableCmds ; -partition_with_clause - : OPEN_PAREN KW_MODULUS numericOnly COMMA KW_REMAINDER numericOnly CLOSE_PAREN +alterTableCmds + : alterTableCmd (COMMA alterTableCmd)* ; -partition_cmd - : index_partition_cmd partitionBoundSpec - | KW_DETACH KW_PARTITION qualified_name +partitionCmd + : indexPartitionCmd partitionBoundSpec + | KW_DETACH KW_PARTITION qualifiedName ; -index_partition_cmd - : KW_ATTACH KW_PARTITION qualified_name +indexPartitionCmd + : KW_ATTACH KW_PARTITION qualifiedName ; -alter_table_cmd +alterTableCmd : KW_ADD (KW_CONSTRAINT colId)? constraintElem | KW_ALTER KW_CONSTRAINT colId constraintAttributeElem* | KW_VALIDATE KW_CONSTRAINT colId - | KW_DROP KW_CONSTRAINT opt_if_exists? colId opt_drop_behavior? + | KW_DROP KW_CONSTRAINT ifExists? colId optDropBehavior? | KW_SET KW_WITHOUT (KW_OIDS | KW_CLUSTER) | KW_CLUSTER KW_ON colId | KW_SET (KW_LOGGED | KW_UNLOGGED) @@ -470,47 +447,47 @@ alter_table_cmd | KW_DISABLE KW_TRIGGER (KW_ALL | KW_USER | colId) | KW_ENABLE (KW_ALWAYS | KW_REPLICA) KW_RULE colId | KW_DISABLE KW_RULE colId - | KW_NO? KW_INHERIT qualified_name - | KW_OF any_name + | KW_NO? KW_INHERIT qualifiedName + | KW_OF anyName | KW_NOT KW_OF | KW_OWNER KW_TO roleSpec - | KW_SET KW_TABLESPACE tablespace_name_create + | KW_SET KW_TABLESPACE tableSpaceName | KW_REPLICA KW_IDENTITY (KW_NOTHING | KW_FULL | KW_DEFAULT | existingIndex) | (KW_ENABLE | KW_DISABLE | (KW_NO? KW_FORCE)) KW_ROW KW_LEVEL KW_SECURITY - | KW_DROP KW_COLUMN? opt_if_exists? column_name opt_drop_behavior? - | KW_ADD KW_COLUMN? opt_if_not_exists? column_def - | KW_ALTER KW_COLUMN? column_name (alter_column_default | alter_generic_options) - | KW_ALTER KW_COLUMN? column_name (KW_DROP | KW_SET) KW_NOT KW_NULL - | KW_ALTER KW_COLUMN? column_name KW_DROP KW_EXPRESSION opt_if_exists? - | KW_ALTER KW_COLUMN? column_name KW_SET KW_STATISTICS signedConst - | (KW_ALTER KW_COLUMN? column_name)? (KW_SET | KW_RESET) relOptions - | KW_ALTER KW_COLUMN? column_name KW_SET KW_STORAGE colId - | KW_ALTER KW_COLUMN? column_name KW_ADD KW_GENERATED generated_when KW_AS KW_IDENTITY ( + | KW_DROP KW_COLUMN? ifExists? columnName optDropBehavior? + | KW_ADD KW_COLUMN? ifNotExists? column_def + | KW_ALTER KW_COLUMN? columnName (alterColumnDefault | alterGenericOptions) + | KW_ALTER KW_COLUMN? columnName (KW_DROP | KW_SET) KW_NOT KW_NULL + | KW_ALTER KW_COLUMN? columnName KW_DROP KW_EXPRESSION ifExists? + | KW_ALTER KW_COLUMN? columnName KW_SET KW_STATISTICS signedConst + | (KW_ALTER KW_COLUMN? columnName)? (KW_SET | KW_RESET) relOptions + | KW_ALTER KW_COLUMN? columnName KW_SET KW_STORAGE colId + | KW_ALTER KW_COLUMN? columnName KW_ADD KW_GENERATED generatedWhen KW_AS KW_IDENTITY ( OPEN_PAREN seqOptElem+ CLOSE_PAREN )? - | KW_ALTER KW_COLUMN? column_name ( + | KW_ALTER KW_COLUMN? columnName ( KW_RESTART (KW_WITH? numericOnly)? - | KW_SET (seqOptElem | KW_GENERATED generated_when) + | KW_SET (seqOptElem | KW_GENERATED generatedWhen) )+ - | KW_ALTER KW_COLUMN? column_name KW_DROP KW_IDENTITY opt_if_exists? - | KW_ALTER KW_COLUMN? column_name (KW_SET KW_DATA)? KW_TYPE typename opt_collate_clause? ( + | KW_ALTER KW_COLUMN? columnName KW_DROP KW_IDENTITY ifExists? + | KW_ALTER KW_COLUMN? columnName (KW_SET KW_DATA)? KW_TYPE typename collateClause? ( KW_USING expression )? - | alter_generic_options + | alterGenericOptions ; -alter_column_default +alterColumnDefault : KW_SET KW_DEFAULT expression | KW_DROP KW_DEFAULT ; -opt_drop_behavior +optDropBehavior : KW_CASCADE | KW_RESTRICT ; -opt_collate_clause - : KW_COLLATE any_name +collateClause + : KW_COLLATE anyName ; relOptions @@ -522,24 +499,24 @@ optRelOptions ; relOptionElem - : colLabel (EQUAL def_arg | DOT def_elem)? + : colLabel (EQUAL defArg | DOT defElem)? ; partitionBoundSpec - : KW_FOR KW_VALUES KW_WITH OPEN_PAREN KW_MODULUS Integral COMMA KW_REMAINDER Integral CLOSE_PAREN - | KW_FOR KW_VALUES KW_IN execute_param_clause - | KW_FOR KW_VALUES KW_FROM execute_param_clause KW_TO execute_param_clause + : KW_FOR KW_VALUES KW_WITH OPEN_PAREN KW_MODULUS numericOnly COMMA KW_REMAINDER numericOnly CLOSE_PAREN + | KW_FOR KW_VALUES KW_IN executeParamClause + | KW_FOR KW_VALUES KW_FROM executeParamClause KW_TO executeParamClause | KW_DEFAULT ; alterCompositeTypeStmt - : KW_ALTER KW_TYPE any_name alter_type_cmd (COMMA alter_type_cmd)* + : KW_ALTER KW_TYPE anyName alterTypeCmd (COMMA alterTypeCmd)* ; -alter_type_cmd - : KW_ADD KW_ATTRIBUTE tableFuncElement opt_drop_behavior? - | KW_DROP KW_ATTRIBUTE opt_if_exists? colId opt_drop_behavior? - | KW_ALTER KW_ATTRIBUTE colId (KW_SET KW_DATA)? KW_TYPE typename opt_collate_clause? opt_drop_behavior? +alterTypeCmd + : KW_ADD KW_ATTRIBUTE tableFuncElement optDropBehavior? + | KW_DROP KW_ATTRIBUTE ifExists? colId optDropBehavior? + | KW_ALTER KW_ATTRIBUTE colId (KW_SET KW_DATA)? KW_TYPE typename collateClause? optDropBehavior? ; closePortalStmt @@ -547,11 +524,11 @@ closePortalStmt ; copyStmt - : KW_COPY KW_BINARY? table_name opt_column_list? (KW_FROM | KW_TO) KW_PROGRAM? ( + : KW_COPY KW_BINARY? tableName optColumnList? (KW_FROM | KW_TO) KW_PROGRAM? ( stringConst | KW_STDIN | KW_STDOUT - ) (KW_USING? KW_DELIMITERS stringConst)? KW_WITH? copyOptions where_clause? + ) (KW_USING? KW_DELIMITERS stringConst)? KW_WITH? copyOptions whereClause? | KW_COPY OPEN_PAREN preParableStmt CLOSE_PAREN KW_TO KW_PROGRAM? ( stringConst | KW_STDIN @@ -566,36 +543,36 @@ copyOptionsNoparens | (KW_NULL | KW_DELIMITER | KW_ESCAPE | KW_QUOTE) KW_AS? stringConst | KW_CSV | KW_HEADER - | KW_FORCE KW_QUOTE (column_list | STAR) - | KW_FORCE KW_NOT? KW_NULL column_list + | KW_FORCE KW_QUOTE (columnList | STAR) + | KW_FORCE KW_NOT? KW_NULL columnList | KW_ENCODING stringConst | (KW_FORCE_QUOTE | KW_FORCE_NOT_NULL | KW_FORCE_NULL) ( - OPEN_PAREN (column_list | STAR) (COMMA (column_list | STAR))* CLOSE_PAREN + OPEN_PAREN (columnList | STAR) (COMMA (columnList | STAR))* CLOSE_PAREN )? )* ; copyOptions : copyOptionsNoparens - | OPEN_PAREN (copyOptionsNoparens | copy_generic_opt_elem) ( - COMMA (copyOptionsNoparens | copy_generic_opt_elem) + | OPEN_PAREN (copyOptionsNoparens | copyGenericOptElem) ( + COMMA (copyOptionsNoparens | copyGenericOptElem) )* CLOSE_PAREN ; -copy_generic_opt_elem +copyGenericOptElem : colLabel ( - opt_boolean_or_string + booleanOrString | numericOnly | STAR - | OPEN_PAREN opt_boolean_or_string_column (COMMA opt_boolean_or_string_column)* CLOSE_PAREN + | OPEN_PAREN optBooleanOrStringColumn (COMMA optBooleanOrStringColumn)* CLOSE_PAREN )? ; createStmt - : KW_CREATE optTemp? KW_TABLE opt_if_not_exists? table_name_create ( - OPEN_PAREN tableElementList? CLOSE_PAREN optInherit? partitionSpec? table_access_method_clause? optWith? onCommitOption? optTableSpace? - | KW_OF any_name optTypedTableElEmentList? partitionSpec? table_access_method_clause? optWith? onCommitOption? optTableSpace? - | KW_PARTITION KW_OF qualified_name optTypedTableElEmentList? partitionBoundSpec partitionSpec? table_access_method_clause? optWith? + : KW_CREATE optTemp? KW_TABLE ifNotExists? tableNameCreate ( + OPEN_PAREN tableElementList? CLOSE_PAREN optInherit? partitionSpec? tableAccessMethodClause? optWith? onCommitOption? optTableSpace? + | KW_OF anyName optTypedTableElEmentList? partitionSpec? tableAccessMethodClause? optWith? onCommitOption? optTableSpace? + | KW_PARTITION KW_OF qualifiedName optTypedTableElEmentList? partitionBoundSpec partitionSpec? tableAccessMethodClause? optWith? onCommitOption? optTableSpace? ) # columnCreateTable ; @@ -618,18 +595,18 @@ tableElementList tableElement : (KW_CONSTRAINT colId)? constraintElem | column_def - | KW_LIKE qualified_name ((KW_INCLUDING | KW_EXCLUDING) tableLikeOption)* + | KW_LIKE qualifiedName ((KW_INCLUDING | KW_EXCLUDING) tableLikeOption)* ; typedTableElement - : column_name_create (KW_WITH KW_OPTIONS)? colConstraint* + : columnNameCreate (KW_WITH KW_OPTIONS)? colConstraint* | (KW_CONSTRAINT colId)? constraintElem ; column_def - : column_name_create colType=typename create_generic_options? ( + : columnNameCreate colType=typename createGenericOptions? ( KW_STORAGE (KW_PLAIN | KW_EXTERNAL | KW_EXTENDED | KW_MAIN | KW_DEFAULT | colId) - )? (KW_COMPRESSION colId)? (opt_collate_clause)? (KW_WITH KW_OPTIONS)? colConstraint* + )? (KW_COMPRESSION colId)? (collateClause)? (KW_WITH KW_OPTIONS)? colConstraint* ; colConstraint @@ -640,22 +617,22 @@ colConstraint colConstraintElem : KW_NOT? KW_NULL - | KW_UNIQUE opt_definition? optConstableSpace? + | KW_UNIQUE optDefinition? optConstableSpace? | KW_UNIQUE (KW_NULLS KW_NOT? KW_DISTINCT)? ( - (KW_INCLUDE index_params)? with_clause? optConstableSpace? + (KW_INCLUDE indexParams)? withClause? optConstableSpace? ) - | KW_PRIMARY KW_KEY opt_definition? optConstableSpace? + | KW_PRIMARY KW_KEY optDefinition? optConstableSpace? | KW_CHECK OPEN_PAREN expression CLOSE_PAREN (KW_NO KW_INHERIT)? | KW_DEFAULT primaryExpression - | KW_GENERATED generated_when KW_AS ( + | KW_GENERATED generatedWhen KW_AS ( KW_IDENTITY (OPEN_PAREN seqOptElem+ CLOSE_PAREN)? | OPEN_PAREN expression CLOSE_PAREN KW_STORED ) - | KW_REFERENCES qualified_name opt_column_list? key_match? key_actions? - | opt_collate_clause + | KW_REFERENCES qualifiedName optColumnList? keyMatch? keyActions? + | collateClause ; -generated_when +generatedWhen : KW_ALWAYS | KW_BY KW_DEFAULT ; @@ -675,74 +652,74 @@ tableLikeOption constraintElem : KW_CHECK OPEN_PAREN expression CLOSE_PAREN constraintAttributeElem* | (KW_UNIQUE | ( KW_PRIMARY KW_KEY)) ( - opt_column_list opt_c_include? opt_definition? optConstableSpace? constraintAttributeElem* + optColumnList columnListInclude? optDefinition? optConstableSpace? constraintAttributeElem* | existingIndex constraintAttributeElem* ) - | KW_EXCLUDE table_access_method_clause? OPEN_PAREN exclusionConstraintElem ( + | KW_EXCLUDE tableAccessMethodClause? OPEN_PAREN exclusionConstraintElem ( COMMA exclusionConstraintElem - )* CLOSE_PAREN opt_c_include? opt_definition? optConstableSpace? ( + )* CLOSE_PAREN columnListInclude? optDefinition? optConstableSpace? ( KW_WHERE OPEN_PAREN expression CLOSE_PAREN )? constraintAttributeElem* - | KW_FOREIGN KW_KEY opt_column_list KW_REFERENCES qualified_name opt_column_list? key_match? key_actions? constraintAttributeElem* + | KW_FOREIGN KW_KEY optColumnList KW_REFERENCES qualifiedName optColumnList? keyMatch? keyActions? constraintAttributeElem* ; -opt_column_list - : OPEN_PAREN column_list CLOSE_PAREN +optColumnList + : OPEN_PAREN columnList CLOSE_PAREN ; -opt_column_list_create - : OPEN_PAREN column_name_create (COMMA column_name_create)* CLOSE_PAREN +columnListCreate + : OPEN_PAREN columnNameCreate (COMMA columnNameCreate)* CLOSE_PAREN ; -column_list - : column_name (COMMA column_name)* +columnList + : columnName (COMMA columnName)* ; -opt_c_include - : KW_INCLUDE opt_column_list +columnListInclude + : KW_INCLUDE optColumnList ; -key_match +keyMatch : KW_MATCH (KW_FULL | KW_PARTIAL | KW_SIMPLE) ; exclusionConstraintElem - : index_elem KW_WITH (any_operator | KW_OPERATOR OPEN_PAREN any_operator CLOSE_PAREN) + : indexElem KW_WITH (anyOperator | KW_OPERATOR OPEN_PAREN anyOperator CLOSE_PAREN) ; -key_actions - : key_update key_delete? - | key_delete key_update? +keyActions + : keyUpdate keyDelete? + | keyDelete keyUpdate? ; -key_update - : KW_ON KW_UPDATE key_action +keyUpdate + : KW_ON KW_UPDATE keyAction ; -key_delete - : KW_ON KW_DELETE key_action +keyDelete + : KW_ON KW_DELETE keyAction ; -key_action +keyAction : KW_NO KW_ACTION | KW_RESTRICT | KW_CASCADE - | KW_SET (KW_NULL | KW_DEFAULT) column_list? + | KW_SET (KW_NULL | KW_DEFAULT) columnList? ; optInherit - : KW_INHERITS OPEN_PAREN qualified_name_list CLOSE_PAREN + : KW_INHERITS OPEN_PAREN qualifiedNameList CLOSE_PAREN ; partitionSpec - : KW_PARTITION KW_BY colId OPEN_PAREN part_elem (COMMA part_elem)* CLOSE_PAREN + : KW_PARTITION KW_BY colId OPEN_PAREN partElem (COMMA partElem)* CLOSE_PAREN ; -part_elem - : (column_name | func_expr_windowless | (OPEN_PAREN expression CLOSE_PAREN)) opt_collate_clause? any_name? +partElem + : (columnName | funcExprWindowless | (OPEN_PAREN expression CLOSE_PAREN)) collateClause? anyName? ; -table_access_method_clause +tableAccessMethodClause : KW_USING colId ; @@ -756,7 +733,7 @@ onCommitOption ; optTableSpace - : KW_TABLESPACE tablespace_name + : KW_TABLESPACE tableSpaceName ; optConstableSpace @@ -768,43 +745,43 @@ existingIndex ; createStatsStmt - : KW_CREATE KW_STATISTICS (opt_if_not_exists? any_name)? opt_column_list? KW_ON ( - column_expr (COMMA column_expr)* - | expr_list - ) from_clause + : KW_CREATE KW_STATISTICS (ifNotExists? anyName)? optColumnList? KW_ON ( + columnExpr (COMMA columnExpr)* + | exprList + ) fromClause ; alterStatsStmt - : KW_ALTER KW_STATISTICS opt_if_exists? any_name KW_SET KW_STATISTICS signedConst + : KW_ALTER KW_STATISTICS ifExists? anyName KW_SET KW_STATISTICS signedConst ; createAsStmt - : KW_CREATE optTemp? KW_TABLE opt_if_not_exists? create_as_target KW_AS selectStmt opt_with_data? # queryCreateTable + : KW_CREATE optTemp? KW_TABLE ifNotExists? createAsTarget KW_AS selectStmt optWithData? # queryCreateTable ; -create_as_target - : table_name_create opt_column_list_create? table_access_method_clause? optWith? onCommitOption? optTableSpace? +createAsTarget + : tableNameCreate columnListCreate? tableAccessMethodClause? optWith? onCommitOption? optTableSpace? ; -opt_with_data +optWithData : KW_WITH (KW_DATA | KW_NO KW_DATA) ; createMaterializedViewStmt - : KW_CREATE KW_UNLOGGED? KW_MATERIALIZED KW_VIEW opt_if_not_exists? view_name_create opt_column_list_create? table_access_method_clause? - optRelOptions? optTableSpace? KW_AS selectStmt opt_with_data? # createMaterializedView + : KW_CREATE KW_UNLOGGED? KW_MATERIALIZED KW_VIEW ifNotExists? viewNameCreate columnListCreate? tableAccessMethodClause? optRelOptions? + optTableSpace? KW_AS selectStmt optWithData? # createMaterializedView ; refreshMaterializedViewStmt - : KW_REFRESH KW_MATERIALIZED KW_VIEW KW_CONCURRENTLY? view_name opt_with_data? + : KW_REFRESH KW_MATERIALIZED KW_VIEW KW_CONCURRENTLY? viewName optWithData? ; createSeqStmt - : KW_CREATE optTemp? KW_SEQUENCE opt_if_not_exists? qualified_name (seqOptElem+)? + : KW_CREATE optTemp? KW_SEQUENCE ifNotExists? qualifiedName (seqOptElem+)? ; alterSeqStmt - : KW_ALTER KW_SEQUENCE opt_if_exists? qualified_name seqOptElem+ + : KW_ALTER KW_SEQUENCE ifExists? qualifiedName seqOptElem+ ; seqOptElem @@ -813,8 +790,8 @@ seqOptElem | KW_INCREMENT KW_BY? numericOnly | (KW_MAXVALUE | KW_MINVALUE) numericOnly | KW_NO (KW_MAXVALUE | KW_MINVALUE | KW_CYCLE) - | KW_OWNED KW_BY column_name - | KW_SEQUENCE KW_NAME any_name + | KW_OWNED KW_BY columnName + | KW_SEQUENCE KW_NAME anyName | KW_START KW_WITH? numericOnly | KW_RESTART KW_WITH? numericOnly? ; @@ -825,8 +802,8 @@ numericOnly ; createProceduralLangStmt - : KW_CREATE opt_or_replace? KW_TRUSTED? KW_PROCEDURAL? KW_LANGUAGE colId ( - KW_HANDLER any_name (KW_INLINE any_name)? (KW_VALIDATOR any_name | KW_NO KW_VALIDATOR)? + : KW_CREATE orReplaceOpt? KW_TRUSTED? KW_PROCEDURAL? KW_LANGUAGE colId ( + KW_HANDLER anyName (KW_INLINE anyName)? (KW_VALIDATOR anyName | KW_NO KW_VALIDATOR)? )? ; @@ -835,8 +812,8 @@ createTableSpaceStmt ; createExtensionStmt - : KW_CREATE KW_EXTENSION opt_if_not_exists? colId KW_WITH? ( - KW_SCHEMA schema_name + : KW_CREATE KW_EXTENSION ifNotExists? colId KW_WITH? ( + KW_SCHEMA schemaName | (KW_VERSION | KW_FROM) nonReservedWordOrStringConst | KW_CASCADE )* @@ -851,107 +828,100 @@ alterExtensionContentsStmt KW_TRANSFORM KW_FOR typename KW_LANGUAGE colId | KW_ROUTINE routineWithArgTypes | KW_PROCEDURE procedureWithArgTypes - | KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause + | KW_OPERATOR (KW_CLASS | KW_FAMILY) anyName tableAccessMethodClause | KW_OPERATOR operatorWithArgTypes | KW_FUNCTION functionWithArgTypes | (KW_DOMAIN | KW_TYPE) typename | KW_CAST OPEN_PAREN typename KW_AS typename CLOSE_PAREN | KW_AGGREGATE aggregateWithArgTypes - | object_type_name - | object_type_any_name + | objectTypeName + | objectTypeAnyName ) ; createFdwStmt - : KW_CREATE KW_FOREIGN KW_DATA KW_WRAPPER colId (fdw_option+)? create_generic_options? + : KW_CREATE KW_FOREIGN KW_DATA KW_WRAPPER colId (fdwOption+)? createGenericOptions? ; -fdw_option - : (KW_HANDLER | KW_VALIDATOR) any_name? +fdwOption + : (KW_HANDLER | KW_VALIDATOR) anyName? | KW_NO (KW_HANDLER | KW_VALIDATOR) ; alterFdwStmt - : KW_ALTER KW_FOREIGN KW_DATA KW_WRAPPER colId ( - (fdw_option+)? alter_generic_options - | fdw_option+ - ) + : KW_ALTER KW_FOREIGN KW_DATA KW_WRAPPER colId ((fdwOption+)? alterGenericOptions | fdwOption+) ; -create_generic_options - : KW_OPTIONS OPEN_PAREN generic_option_elem (COMMA generic_option_elem)* CLOSE_PAREN +createGenericOptions + : KW_OPTIONS OPEN_PAREN genericOptionElem (COMMA genericOptionElem)* CLOSE_PAREN ; -alter_generic_options - : KW_OPTIONS OPEN_PAREN alter_generic_option_elem (COMMA alter_generic_option_elem)* CLOSE_PAREN +alterGenericOptions + : KW_OPTIONS OPEN_PAREN alterGenericOptionElem (COMMA alterGenericOptionElem)* CLOSE_PAREN ; -alter_generic_option_elem - : (KW_SET | KW_ADD | KW_DROP) generic_option_elem +alterGenericOptionElem + : (KW_SET | KW_ADD | KW_DROP) genericOptionElem ; -generic_option_elem +genericOptionElem : colLabel stringConst ; createForeignServerStmt - : KW_CREATE KW_SERVER opt_if_not_exists? colId (KW_TYPE stringConst)? foreign_server_version? KW_FOREIGN KW_DATA KW_WRAPPER colId - create_generic_options? + : KW_CREATE KW_SERVER ifNotExists? colId (KW_TYPE stringConst)? foreignServerVersion? KW_FOREIGN KW_DATA KW_WRAPPER colId createGenericOptions? ; -foreign_server_version +foreignServerVersion : KW_VERSION (stringConst | KW_NULL) ; alterForeignServerStmt - : KW_ALTER KW_SERVER colId ( - alter_generic_options - | foreign_server_version alter_generic_options? - ) + : KW_ALTER KW_SERVER colId (alterGenericOptions | foreignServerVersion alterGenericOptions?) ; createForeignTableStmt - : KW_CREATE KW_FOREIGN KW_TABLE opt_if_not_exists? table_name_create OPEN_PAREN tableElementList? CLOSE_PAREN optInherit? KW_SERVER colId - create_generic_options? # createForeignTable - | KW_CREATE KW_FOREIGN KW_TABLE opt_if_not_exists? table_name_create KW_PARTITION KW_OF table_name optTypedTableElEmentList? partitionBoundSpec - KW_SERVER colId create_generic_options? # createPartitionForeignTable + : KW_CREATE KW_FOREIGN KW_TABLE ifNotExists? tableNameCreate OPEN_PAREN tableElementList? CLOSE_PAREN optInherit? KW_SERVER colId + createGenericOptions? # createForeignTable + | KW_CREATE KW_FOREIGN KW_TABLE ifNotExists? tableNameCreate KW_PARTITION KW_OF tableName optTypedTableElEmentList? partitionBoundSpec KW_SERVER + colId createGenericOptions? # createPartitionForeignTable ; importForeignSchemaStmt - : KW_IMPORT KW_FOREIGN KW_SCHEMA schema_name ( - (KW_LIMIT KW_TO | KW_EXCEPT) OPEN_PAREN relation_expr_list CLOSE_PAREN - )? KW_FROM KW_SERVER colId KW_INTO colId create_generic_options? + : KW_IMPORT KW_FOREIGN KW_SCHEMA schemaName ( + (KW_LIMIT KW_TO | KW_EXCEPT) OPEN_PAREN relationExprList CLOSE_PAREN + )? KW_FROM KW_SERVER colId KW_INTO colId createGenericOptions? ; createUserMappingStmt - : KW_CREATE KW_USER KW_MAPPING opt_if_not_exists? KW_FOR (roleSpec | KW_USER) KW_SERVER colId create_generic_options? + : KW_CREATE KW_USER KW_MAPPING ifNotExists? KW_FOR (roleSpec | KW_USER) KW_SERVER colId createGenericOptions? ; alterUserMappingStmt - : KW_ALTER KW_USER KW_MAPPING KW_FOR (roleSpec | KW_USER) KW_SERVER colId alter_generic_options + : KW_ALTER KW_USER KW_MAPPING KW_FOR (roleSpec | KW_USER) KW_SERVER colId alterGenericOptions ; createPolicyStmt - : KW_CREATE KW_POLICY colId KW_ON qualified_name ( + : KW_CREATE KW_POLICY colId KW_ON qualifiedName ( KW_AS (KW_PERMISSIVE | KW_RESTRICTIVE | identifier) - )? (KW_FOR (KW_ALL | KW_SELECT | KW_INSERT | KW_UPDATE | KW_DELETE))? (KW_TO role_list)? rowSecurityOptionalExpr? rowSecurityOptionalWithCheck? + )? (KW_FOR (KW_ALL | KW_SELECT | KW_INSERT | KW_UPDATE | KW_DELETE))? (KW_TO roleList)? rowSecurityOptionalExpr? rowSecurityOptionalWithCheck? ; alterPolicyStmt - : KW_ALTER KW_POLICY colId KW_ON qualified_name (KW_TO role_list)? rowSecurityOptionalExpr? rowSecurityOptionalWithCheck? + : KW_ALTER KW_POLICY colId KW_ON qualifiedName (KW_TO roleList)? rowSecurityOptionalExpr? rowSecurityOptionalWithCheck? ; alterProcedureStmt - : KW_ALTER KW_PROCEDURE procedure_name func_args? ( - procedure_action (procedure_action)* KW_RESTRICT? - | KW_RENAME KW_TO procedure_name_create + : KW_ALTER KW_PROCEDURE procedureName funcArgs? ( + procedureAction (procedureAction)* KW_RESTRICT? + | KW_RENAME KW_TO procedureNameCreate | KW_OWNER KW_TO roleSpec - | KW_SET KW_SCHEMA schema_name_create + | KW_SET KW_SCHEMA schemaNameCreate | KW_NO? KW_DEPENDS KW_ON KW_EXTENSION colId ) ; -procedure_action +procedureAction : (KW_EXTERNAL? KW_SECURITY KW_INVOKER | KW_EXTERNAL? KW_SECURITY KW_DEFINER) | KW_SET colId (KW_TO | STAR) (colId | KW_DEFAULT) | KW_SET colId KW_FROM KW_CURRENT @@ -967,16 +937,16 @@ rowSecurityOptionalWithCheck ; createAccessMethodStmt - : KW_CREATE KW_ACCESS KW_METHOD colId KW_TYPE (KW_INDEX | KW_TABLE) KW_HANDLER any_name + : KW_CREATE KW_ACCESS KW_METHOD colId KW_TYPE (KW_INDEX | KW_TABLE) KW_HANDLER anyName ; createTrigStmt - : KW_CREATE opt_or_replace? KW_TRIGGER colId triggerActionTime triggerEvents KW_ON table_name ( + : KW_CREATE orReplaceOpt? KW_TRIGGER colId triggerActionTime triggerEvents KW_ON tableName ( KW_REFERENCING ((KW_NEW | KW_OLD) (KW_TABLE | KW_ROW) KW_AS? colId)+ - )? (KW_FOR KW_EACH? (KW_ROW | KW_STATEMENT))? triggerWhen? KW_EXECUTE function_or_procedure OPEN_PAREN triggerFuncArgs CLOSE_PAREN - | KW_CREATE opt_or_replace? KW_CONSTRAINT? KW_TRIGGER colId triggerActionTime triggerEvents KW_ON table_name ( - KW_FROM qualified_name - )? constraintAttributeElem* (KW_FOR KW_EACH? (KW_ROW | KW_STATEMENT))? triggerWhen? KW_EXECUTE function_or_procedure OPEN_PAREN triggerFuncArgs + )? (KW_FOR KW_EACH? (KW_ROW | KW_STATEMENT))? triggerWhen? KW_EXECUTE functionOrProcedure OPEN_PAREN triggerFuncArgs CLOSE_PAREN + | KW_CREATE orReplaceOpt? KW_CONSTRAINT? KW_TRIGGER colId triggerActionTime triggerEvents KW_ON tableName ( + KW_FROM qualifiedName + )? constraintAttributeElem* (KW_FOR KW_EACH? (KW_ROW | KW_STATEMENT))? triggerWhen? KW_EXECUTE functionOrProcedure OPEN_PAREN triggerFuncArgs CLOSE_PAREN ; @@ -993,7 +963,7 @@ triggerEvents triggerOneEvent : KW_INSERT | KW_DELETE - | KW_UPDATE (KW_OF column_list)? + | KW_UPDATE (KW_OF columnList)? | KW_TRUNCATE ; @@ -1001,9 +971,9 @@ triggerWhen : KW_WHEN OPEN_PAREN expression CLOSE_PAREN ; -function_or_procedure - : KW_FUNCTION function_name - | KW_PROCEDURE procedure_name +functionOrProcedure + : KW_FUNCTION functionName + | KW_PROCEDURE procedureName ; triggerFuncArgs @@ -1026,12 +996,12 @@ constraintAttributeElem createEventTrigStmt : KW_CREATE KW_EVENT KW_TRIGGER colId KW_ON colLabel ( - KW_WHEN event_trigger_when_item (KW_AND event_trigger_when_item)* - )? KW_EXECUTE function_or_procedure OPEN_PAREN CLOSE_PAREN + KW_WHEN eventTriggerWhenItem (KW_AND eventTriggerWhenItem)* + )? KW_EXECUTE functionOrProcedure OPEN_PAREN CLOSE_PAREN ; -event_trigger_when_item - : colId KW_IN OPEN_PAREN stringConst (notify_payload)* CLOSE_PAREN +eventTriggerWhenItem + : colId KW_IN OPEN_PAREN stringConst (notifyPayload)* CLOSE_PAREN ; alterEventTrigStmt @@ -1039,87 +1009,87 @@ alterEventTrigStmt ; createAssertionStmt - : KW_CREATE KW_ASSERTION any_name KW_CHECK OPEN_PAREN expression CLOSE_PAREN constraintAttributeElem* + : KW_CREATE KW_ASSERTION anyName KW_CHECK OPEN_PAREN expression CLOSE_PAREN constraintAttributeElem* ; defineStmt - : KW_CREATE opt_or_replace? KW_AGGREGATE function_name ( - (aggregate_args definition) - | OPEN_PAREN old_aggregate_elem (COMMA old_aggregate_elem)* CLOSE_PAREN + : KW_CREATE orReplaceOpt? KW_AGGREGATE functionName ( + (aggregateArgs definition) + | OPEN_PAREN oldAggregateElem (COMMA oldAggregateElem)* CLOSE_PAREN ) - | KW_CREATE KW_OPERATOR any_operator definition - | KW_CREATE KW_TYPE any_name KW_AS ( + | KW_CREATE KW_OPERATOR anyOperator definition + | KW_CREATE KW_TYPE anyName KW_AS ( OPEN_PAREN tableFuncElementList? CLOSE_PAREN - | KW_ENUM OPEN_PAREN (stringConst (notify_payload)*)? CLOSE_PAREN + | KW_ENUM OPEN_PAREN (stringConst (notifyPayload)*)? CLOSE_PAREN ) - | KW_CREATE KW_TYPE any_name ((KW_AS KW_RANGE)? definition)? - | KW_CREATE KW_TEXT KW_SEARCH (KW_PARSER | KW_DICTIONARY | KW_TEMPLATE | KW_CONFIGURATION) any_name definition - | KW_CREATE KW_COLLATION opt_if_not_exists? any_name (definition | (KW_FROM any_name)) + | KW_CREATE KW_TYPE anyName ((KW_AS KW_RANGE)? definition)? + | KW_CREATE KW_TEXT KW_SEARCH (KW_PARSER | KW_DICTIONARY | KW_TEMPLATE | KW_CONFIGURATION) anyName definition + | KW_CREATE KW_COLLATION ifNotExists? anyName (definition | (KW_FROM anyName)) ; definition - : OPEN_PAREN def_elem (COMMA def_elem)* CLOSE_PAREN + : OPEN_PAREN defElem (COMMA defElem)* CLOSE_PAREN ; -def_elem - : colLabel (EQUAL def_arg)? +defElem + : colLabel (EQUAL defArg)? ; -def_arg - : func_type - | reserved_keyword - | qual_all_op +defArg + : funcType + | reservedKeyword + | qualAllOp | numericOnly | stringConst | KW_NONE ; -old_aggregate_elem - : identifier EQUAL def_arg +oldAggregateElem + : identifier EQUAL defArg ; alterEnumStmt - : KW_ALTER KW_TYPE any_name KW_ADD KW_VALUE opt_if_not_exists? stringConst ( + : KW_ALTER KW_TYPE anyName KW_ADD KW_VALUE ifNotExists? stringConst ( (KW_BEFORE | KW_AFTER) stringConst )? - | KW_ALTER KW_TYPE any_name KW_RENAME KW_VALUE stringConst KW_TO stringConst + | KW_ALTER KW_TYPE anyName KW_RENAME KW_VALUE stringConst KW_TO stringConst ; -opt_if_not_exists +ifNotExists : KW_IF KW_NOT KW_EXISTS ; createOperatorClassStmt - : KW_CREATE KW_OPERATOR KW_CLASS any_name KW_DEFAULT? KW_FOR KW_TYPE typename table_access_method_clause ( - KW_FAMILY any_name + : KW_CREATE KW_OPERATOR KW_CLASS anyName KW_DEFAULT? KW_FOR KW_TYPE typename tableAccessMethodClause ( + KW_FAMILY anyName )? KW_AS opClassItem (COMMA opClassItem)* ; opClassItem - : KW_OPERATOR Integral any_operator operatorArgTypes? ( - KW_FOR (KW_SEARCH | (KW_ORDER KW_BY any_name)) + : KW_OPERATOR Integral anyOperator operatorArgTypes? ( + KW_FOR (KW_SEARCH | (KW_ORDER KW_BY anyName)) )? KW_RECHECK? - | KW_FUNCTION Integral prep_type_clause? functionWithArgTypes + | KW_FUNCTION Integral prepTypeClause? functionWithArgTypes | KW_STORAGE typename ; createOperatorFamilyStmt - : KW_CREATE KW_OPERATOR KW_FAMILY any_name table_access_method_clause + : KW_CREATE KW_OPERATOR KW_FAMILY anyName tableAccessMethodClause ; alterOperatorFamilyStmt - : KW_ALTER KW_OPERATOR KW_FAMILY any_name table_access_method_clause ( + : KW_ALTER KW_OPERATOR KW_FAMILY anyName tableAccessMethodClause ( KW_ADD opClassItem (COMMA opClassItem)* | KW_DROP opClassDrop (COMMA opClassDrop)* ) ; opClassDrop - : (KW_OPERATOR | KW_FUNCTION) Integral prep_type_clause + : (KW_OPERATOR | KW_FUNCTION) Integral prepTypeClause ; reassignOwnedStmt - : KW_REASSIGN KW_OWNED KW_BY role_list KW_TO roleSpec + : KW_REASSIGN KW_OWNED KW_BY roleList KW_TO roleSpec ; dropStmt @@ -1137,34 +1107,34 @@ dropStmt | KW_PROCEDURAL? KW_LANGUAGE | KW_FOREIGN KW_DATA KW_WRAPPER | KW_TEXT KW_SEARCH (KW_PARSER | KW_DICTIONARY | KW_TEMPLATE | KW_CONFIGURATION) - ) opt_if_exists? name_list opt_drop_behavior? - | KW_DROP KW_MATERIALIZED? KW_VIEW opt_if_exists? view_name (COMMA view_name)* opt_drop_behavior? - | KW_DROP KW_FOREIGN? KW_TABLE opt_if_exists? table_name_list opt_drop_behavior? - | KW_DROP KW_SCHEMA opt_if_exists? schema_name_list opt_drop_behavior? - | KW_DROP (KW_POLICY | KW_RULE | KW_TRIGGER) opt_if_exists? colId KW_ON any_name opt_drop_behavior? - | KW_DROP (KW_TYPE | KW_DOMAIN) opt_if_exists? typename (COMMA typename)* opt_drop_behavior? - | KW_DROP KW_INDEX KW_CONCURRENTLY opt_if_exists? any_name_list opt_drop_behavior? - | KW_DROP KW_CAST opt_if_exists? OPEN_PAREN typename KW_AS typename CLOSE_PAREN opt_drop_behavior? - | KW_DROP KW_OPERATOR (KW_CLASS | KW_FAMILY) opt_if_exists? any_name table_access_method_clause opt_drop_behavior? - | KW_DROP KW_OWNED KW_BY role_list opt_drop_behavior? - | KW_DROP KW_SUBSCRIPTION opt_if_exists? colId opt_drop_behavior? - | KW_DROP KW_TABLESPACE opt_if_exists? tablespace_name - | KW_DROP KW_TRANSFORM opt_if_exists? KW_FOR typename KW_LANGUAGE colId opt_drop_behavior? - | KW_DROP (KW_ROLE | KW_USER | KW_GROUP) opt_if_exists? role_list - | KW_DROP KW_USER KW_MAPPING opt_if_exists? KW_FOR (roleSpec | KW_USER) KW_SERVER colId - | KW_DROP KW_DATABASE opt_if_exists? database_name ( + ) ifExists? nameList optDropBehavior? + | KW_DROP KW_MATERIALIZED? KW_VIEW ifExists? viewName (COMMA viewName)* optDropBehavior? + | KW_DROP KW_FOREIGN? KW_TABLE ifExists? tableNameList optDropBehavior? + | KW_DROP KW_SCHEMA ifExists? schemaNameList optDropBehavior? + | KW_DROP (KW_POLICY | KW_RULE | KW_TRIGGER) ifExists? colId KW_ON anyName optDropBehavior? + | KW_DROP (KW_TYPE | KW_DOMAIN) ifExists? typename (COMMA typename)* optDropBehavior? + | KW_DROP KW_INDEX KW_CONCURRENTLY ifExists? anyNameList optDropBehavior? + | KW_DROP KW_CAST ifExists? OPEN_PAREN typename KW_AS typename CLOSE_PAREN optDropBehavior? + | KW_DROP KW_OPERATOR (KW_CLASS | KW_FAMILY) ifExists? anyName tableAccessMethodClause optDropBehavior? + | KW_DROP KW_OWNED KW_BY roleList optDropBehavior? + | KW_DROP KW_SUBSCRIPTION ifExists? colId optDropBehavior? + | KW_DROP KW_TABLESPACE ifExists? tableSpaceName + | KW_DROP KW_TRANSFORM ifExists? KW_FOR typename KW_LANGUAGE colId optDropBehavior? + | KW_DROP (KW_ROLE | KW_USER | KW_GROUP) ifExists? roleList + | KW_DROP KW_USER KW_MAPPING ifExists? KW_FOR (roleSpec | KW_USER) KW_SERVER colId + | KW_DROP KW_DATABASE ifExists? databaseName ( KW_WITH? (OPEN_PAREN KW_FORCE (COMMA KW_FORCE)* CLOSE_PAREN) )? ; -object_type_any_name - : KW_FOREIGN? KW_TABLE table_name - | KW_MATERIALIZED? KW_VIEW view_name - | (KW_INDEX | KW_COLLATION | KW_CONVERSION | KW_STATISTICS | KW_SEQUENCE) any_name - | KW_TEXT KW_SEARCH (KW_PARSER | KW_DICTIONARY | KW_TEMPLATE | KW_CONFIGURATION) any_name +objectTypeAnyName + : KW_FOREIGN? KW_TABLE tableName + | KW_MATERIALIZED? KW_VIEW viewName + | (KW_INDEX | KW_COLLATION | KW_CONVERSION | KW_STATISTICS | KW_SEQUENCE) anyName + | KW_TEXT KW_SEARCH (KW_PARSER | KW_DICTIONARY | KW_TEMPLATE | KW_CONFIGURATION) anyName ; -object_type_name +objectTypeName : ( KW_EVENT KW_TRIGGER | KW_ACCESS KW_METHOD @@ -1176,16 +1146,16 @@ object_type_name | KW_FOREIGN KW_DATA KW_WRAPPER | KW_PROCEDURAL? KW_LANGUAGE ) colId - | KW_SCHEMA schema_name - | KW_DATABASE database_name + | KW_SCHEMA schemaName + | KW_DATABASE databaseName | optTableSpace ; -any_name_list - : any_name (COMMA any_name)* +anyNameList + : anyName (COMMA anyName)* ; -any_name +anyName : colId attrs? ; @@ -1194,30 +1164,30 @@ attrs ; truncateStmt - : KW_TRUNCATE KW_TABLE? truncate_table (COMMA truncate_table)* ( + : KW_TRUNCATE KW_TABLE? truncateTable (COMMA truncateTable)* ( (KW_CONTINUE | KW_RESTART) KW_IDENTITY - )? opt_drop_behavior? + )? optDropBehavior? ; -truncate_table - : KW_ONLY? table_name STAR? +truncateTable + : KW_ONLY? tableName STAR? ; commentStmt : KW_COMMENT KW_ON ( - object_type_any_name - | object_type_name - | KW_COLUMN (colId attrs?) DOT column_name + objectTypeAnyName + | objectTypeName + | KW_COLUMN (colId attrs?) DOT columnName | (KW_TYPE | KW_DOMAIN) typename | KW_AGGREGATE aggregateWithArgTypes | KW_FUNCTION functionWithArgTypes | KW_OPERATOR operatorWithArgTypes - | KW_CONSTRAINT colId KW_ON (table_name | (KW_DOMAIN? any_name)) - | (KW_POLICY | KW_RULE | KW_TRIGGER) colId KW_ON any_name + | KW_CONSTRAINT colId KW_ON (tableName | (KW_DOMAIN? anyName)) + | (KW_POLICY | KW_RULE | KW_TRIGGER) colId KW_ON anyName | KW_PROCEDURE procedureWithArgTypes | KW_ROUTINE routineWithArgTypes | KW_TRANSFORM KW_FOR typename KW_LANGUAGE colId - | KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause + | KW_OPERATOR (KW_CLASS | KW_FAMILY) anyName tableAccessMethodClause | KW_LARGE KW_OBJECT numericOnly | KW_CAST OPEN_PAREN typename KW_AS typename CLOSE_PAREN ) KW_IS (stringConst | KW_NULL) @@ -1227,13 +1197,13 @@ secLabelStmt : KW_SECURITY KW_LABEL (KW_FOR nonReservedWordOrStringConst)? KW_ON ( (KW_TYPE | KW_DOMAIN) typename | KW_AGGREGATE aggregateWithArgTypes - | KW_COLUMN column_name + | KW_COLUMN columnName | KW_FUNCTION functionWithArgTypes | KW_LARGE KW_OBJECT numericOnly | KW_PROCEDURE procedureWithArgTypes | KW_ROUTINE routineWithArgTypes - | object_type_any_name - | object_type_name + | objectTypeAnyName + | objectTypeName ) KW_IS (stringConst | KW_NULL) ; @@ -1242,29 +1212,29 @@ fetchStmt ; fetch_args - : (KW_NEXT | KW_PRIOR | KW_FIRST | KW_LAST)? from_in? colId - | (KW_ABSOLUTE | KW_RELATIVE)? signedConst from_in? colId - | KW_FORWARD signedConst? from_in? colId - | KW_FORWARD? KW_ALL from_in? colId - | KW_BACKWARD (KW_ALL? | signedConst) from_in? colId + : (KW_NEXT | KW_PRIOR | KW_FIRST | KW_LAST)? fromIn? colId + | (KW_ABSOLUTE | KW_RELATIVE)? signedConst fromIn? colId + | KW_FORWARD signedConst? fromIn? colId + | KW_FORWARD? KW_ALL fromIn? colId + | KW_BACKWARD (KW_ALL? | signedConst) fromIn? colId ; -from_in +fromIn : KW_FROM | KW_IN ; grantStmt - : KW_GRANT privileges KW_ON privilege_target KW_TO grantee_list (KW_WITH KW_GRANT KW_OPTION)? + : KW_GRANT privileges KW_ON privilegeTarget KW_TO granteeList (KW_WITH KW_GRANT KW_OPTION)? ; revokeStmt - : KW_REVOKE (KW_GRANT KW_OPTION KW_FOR)? privileges KW_ON privilege_target KW_FROM grantee_list opt_drop_behavior? + : KW_REVOKE (KW_GRANT KW_OPTION KW_FOR)? privileges KW_ON privilegeTarget KW_FROM granteeList optDropBehavior? ; privileges : privilege (COMMA privilege)* - | KW_ALL KW_PRIVILEGES? (opt_column_list)? + | KW_ALL KW_PRIVILEGES? (optColumnList)? | beforePrivilegeSelect (COMMA beforePrivilegeSelect)* ; @@ -1285,55 +1255,55 @@ beforePrivilegeSelect ; privilege - : (KW_SELECT | KW_REFERENCES | KW_CREATE | colId) opt_column_list? + : (KW_SELECT | KW_REFERENCES | KW_CREATE | colId) optColumnList? ; -privilege_target - : KW_TABLE table_name_list - | KW_SEQUENCE? qualified_name_list - | (KW_FOREIGN (KW_DATA KW_WRAPPER | KW_SERVER) | KW_LANGUAGE) name_list +privilegeTarget + : KW_TABLE tableNameList + | KW_SEQUENCE? qualifiedNameList + | (KW_FOREIGN (KW_DATA KW_WRAPPER | KW_SERVER) | KW_LANGUAGE) nameList | KW_FUNCTION functionWithArgTypesList | KW_PROCEDURE procedureWithArgTypesList | KW_ROUTINE routineWithArgTypesList - | KW_DATABASE database_nameList - | (KW_DOMAIN | KW_TYPE) any_name_list + | KW_DATABASE databaseNameList + | (KW_DOMAIN | KW_TYPE) anyNameList | KW_LARGE KW_OBJECT numericOnly (COMMA numericOnly)* - | KW_SCHEMA schema_name_list - | KW_TABLESPACE tablespace_name_list - | KW_ALL (KW_TABLES | KW_SEQUENCES | KW_FUNCTIONS | KW_PROCEDURES | KW_ROUTINES) KW_IN KW_SCHEMA schema_name_list + | KW_SCHEMA schemaNameList + | KW_TABLESPACE tableSpaceNameList + | KW_ALL (KW_TABLES | KW_SEQUENCES | KW_FUNCTIONS | KW_PROCEDURES | KW_ROUTINES) KW_IN KW_SCHEMA schemaNameList ; -grantee_list +granteeList : (KW_GROUP? roleSpec) (COMMA (KW_GROUP? roleSpec))* ; grantRoleStmt - : KW_GRANT privilege (COMMA privilege)* KW_TO role_list (KW_WITH KW_ADMIN KW_OPTION)? ( + : KW_GRANT privilege (COMMA privilege)* KW_TO roleList (KW_WITH KW_ADMIN KW_OPTION)? ( KW_GRANTED KW_BY roleSpec )? ; revokeRoleStmt - : KW_REVOKE (KW_ADMIN KW_OPTION KW_FOR)? privilege (COMMA privilege)* KW_FROM role_list ( + : KW_REVOKE (KW_ADMIN KW_OPTION KW_FOR)? privilege (COMMA privilege)* KW_FROM roleList ( KW_GRANTED KW_BY roleSpec - )? opt_drop_behavior? + )? optDropBehavior? ; alterDefaultPrivilegesStmt : KW_ALTER KW_DEFAULT KW_PRIVILEGES ( - KW_IN KW_SCHEMA schema_name_list - | KW_FOR (KW_ROLE | KW_USER) role_list + KW_IN KW_SCHEMA schemaNameList + | KW_FOR (KW_ROLE | KW_USER) roleList )* defaclaction ; defaclaction - : KW_GRANT privileges KW_ON defacl_privilege_target KW_TO grantee_list ( + : KW_GRANT privileges KW_ON defaclPrivilegeTarget KW_TO granteeList ( KW_WITH KW_GRANT KW_OPTION )? - | KW_REVOKE (KW_GRANT KW_OPTION KW_FOR)? privileges KW_ON defacl_privilege_target KW_FROM grantee_list opt_drop_behavior? + | KW_REVOKE (KW_GRANT KW_OPTION KW_FOR)? privileges KW_ON defaclPrivilegeTarget KW_FROM granteeList optDropBehavior? ; -defacl_privilege_target +defaclPrivilegeTarget : KW_TABLES | KW_FUNCTIONS | KW_ROUTINES @@ -1345,44 +1315,43 @@ defacl_privilege_target //create index indexStmt - : KW_CREATE KW_UNIQUE? KW_INDEX KW_CONCURRENTLY? opt_if_not_exists? colId? KW_ON relation_expr table_access_method_clause? index_params ( - KW_INCLUDE index_params - )? (KW_NULLS KW_NOT? KW_DISTINCT)? optRelOptions? optTableSpace? where_clause? + : KW_CREATE KW_UNIQUE? KW_INDEX KW_CONCURRENTLY? ifNotExists? colId? KW_ON relationExpr tableAccessMethodClause? indexParams ( + KW_INCLUDE indexParams + )? (KW_NULLS KW_NOT? KW_DISTINCT)? optRelOptions? optTableSpace? whereClause? ; -index_params - : OPEN_PAREN index_elem (COMMA index_elem)* CLOSE_PAREN +indexParams + : OPEN_PAREN indexElem (COMMA indexElem)* CLOSE_PAREN ; -index_elem - : (column_name | func_expr_windowless | OPEN_PAREN expression CLOSE_PAREN) opt_collate_clause? ( - any_name? - | any_name relOptions +indexElem + : (columnName | funcExprWindowless | OPEN_PAREN expression CLOSE_PAREN) collateClause? ( + anyName? + | anyName relOptions ) (KW_ASC | KW_DESC)? (KW_NULLS (KW_FIRST | KW_LAST))? ; createFunctionStmt - : KW_CREATE opt_or_replace? ( - KW_FUNCTION function_name_create - | KW_PROCEDURE procedure_name_create - ) (OPEN_PAREN (func_arg_with_default (COMMA func_arg_with_default)*)? CLOSE_PAREN) ( + : KW_CREATE orReplaceOpt? (KW_FUNCTION functionNameCreate | KW_PROCEDURE procedureNameCreate) ( + OPEN_PAREN (funcArgWithDefault (COMMA funcArgWithDefault)*)? CLOSE_PAREN + ) ( KW_RETURNS ( - func_type - | KW_TABLE (OPEN_PAREN table_func_column (COMMA table_func_column)* CLOSE_PAREN) + funcType + | KW_TABLE (OPEN_PAREN tableFuncColumn (COMMA tableFuncColumn)* CLOSE_PAREN) ) - )? create_func_opt_item+ (KW_WITH OPEN_PAREN name_list CLOSE_PAREN)? + )? createFuncOptItem+ (KW_WITH OPEN_PAREN nameList CLOSE_PAREN)? ; -opt_or_replace +orReplaceOpt : KW_OR KW_REPLACE ; -func_args - : OPEN_PAREN func_args_list? CLOSE_PAREN +funcArgs + : OPEN_PAREN funcArgsList? CLOSE_PAREN ; -func_args_list - : func_arg (COMMA func_arg)* +funcArgsList + : funcArg (COMMA funcArg)* ; routineWithArgTypesList @@ -1390,9 +1359,9 @@ routineWithArgTypesList ; routineWithArgTypes - : routine_name func_args - | type_func_name_keyword - | qualified_name + : routineName funcArgs + | typeFuncNameKeyword + | qualifiedName ; procedureWithArgTypesList @@ -1400,9 +1369,9 @@ procedureWithArgTypesList ; procedureWithArgTypes - : procedure_name func_args - | type_func_name_keyword - | qualified_name + : procedureName funcArgs + | typeFuncNameKeyword + | qualifiedName ; functionWithArgTypesList @@ -1410,40 +1379,40 @@ functionWithArgTypesList ; functionWithArgTypes - : function_name func_args - | type_func_name_keyword - | qualified_name + : functionName funcArgs + | typeFuncNameKeyword + | qualifiedName ; -func_arg - : (arg_class type_function_name? | type_function_name arg_class?)? func_type +funcArg + : (argClass typeFunctionName? | typeFunctionName argClass?)? funcType ; -arg_class +argClass : KW_IN KW_OUT? | KW_OUT | KW_INOUT | KW_VARIADIC ; -func_type +funcType : typename - | KW_SETOF? type_function_name attrs PERCENT KW_TYPE + | KW_SETOF? typeFunctionName attrs PERCENT KW_TYPE ; -func_arg_with_default - : func_arg ((KW_DEFAULT | EQUAL) expression)? +funcArgWithDefault + : funcArg ((KW_DEFAULT | EQUAL) expression)? ; -aggregate_args - : OPEN_PAREN (STAR | func_args_list? (KW_ORDER KW_BY func_args_list)?) CLOSE_PAREN +aggregateArgs + : OPEN_PAREN (STAR | funcArgsList? (KW_ORDER KW_BY funcArgsList)?) CLOSE_PAREN ; aggregateWithArgTypes - : function_name aggregate_args + : functionName aggregateArgs ; -common_func_opt_item +commonFuncOptItem : (KW_RETURNS KW_NULL | KW_CALLED) KW_ON KW_NULL KW_INPUT | KW_STRICT | KW_IMMUTABLE @@ -1453,21 +1422,21 @@ common_func_opt_item | KW_LEAKPROOF | KW_NOT KW_LEAKPROOF | (KW_COST | KW_ROWS) numericOnly - | KW_SUPPORT any_name - | KW_SET set_rest_more + | KW_SUPPORT anyName + | KW_SET setRestMore | variableResetStmt | KW_PARALLEL colId ; -create_func_opt_item - : KW_AS stringConst notify_payload +createFuncOptItem + : KW_AS stringConst notifyPayload | KW_LANGUAGE nonReservedWordOrStringConst | KW_TRANSFORM KW_FOR KW_TYPE typename (COMMA KW_FOR KW_TYPE typename)* | KW_WINDOW | KW_SET colId (KW_TO colId | EQUAL colId | KW_FROM KW_CURRENT) | KW_AS colId | stmt - | common_func_opt_item + | commonFuncOptItem | colId ; @@ -1477,12 +1446,12 @@ create_func_opt_item // | KW_AS 'obj_file', 'link_symbol' -opt_definition +optDefinition : KW_WITH definition ; -table_func_column - : column_name func_type +tableFuncColumn + : columnName funcType ; alterFunctionStmt @@ -1490,35 +1459,35 @@ alterFunctionStmt KW_FUNCTION functionWithArgTypes | KW_PROCEDURE procedureWithArgTypes | KW_ROUTINE routineWithArgTypes - ) common_func_opt_item+ KW_RESTRICT? + ) commonFuncOptItem+ KW_RESTRICT? ; removeFuncStmt : KW_DROP ( - KW_FUNCTION opt_if_exists? functionWithArgTypesList - | KW_PROCEDURE opt_if_exists? procedureWithArgTypesList - | KW_ROUTINE opt_if_exists? routineWithArgTypesList - ) opt_drop_behavior? + KW_FUNCTION ifExists? functionWithArgTypesList + | KW_PROCEDURE ifExists? procedureWithArgTypesList + | KW_ROUTINE ifExists? routineWithArgTypesList + ) optDropBehavior? ; removeAggregateStmt - : KW_DROP KW_AGGREGATE opt_if_exists? (aggregateWithArgTypes (COMMA aggregateWithArgTypes)*) opt_drop_behavior? + : KW_DROP KW_AGGREGATE ifExists? (aggregateWithArgTypes (COMMA aggregateWithArgTypes)*) optDropBehavior? ; removeOperatorStmt - : KW_DROP KW_OPERATOR opt_if_exists? (operatorWithArgTypes (COMMA operatorWithArgTypes)*) opt_drop_behavior? + : KW_DROP KW_OPERATOR ifExists? (operatorWithArgTypes (COMMA operatorWithArgTypes)*) optDropBehavior? ; operatorArgTypes : OPEN_PAREN (typename (COMMA typename)? | KW_NONE COMMA typename | typename COMMA KW_NONE) CLOSE_PAREN ; -any_operator - : (colId DOT)* all_op +anyOperator + : (colId DOT)* allOp ; operatorWithArgTypes - : any_operator operatorArgTypes + : anyOperator operatorArgTypes ; doStmt @@ -1536,29 +1505,29 @@ createCastStmt ) ; -opt_if_exists +ifExists : KW_IF KW_EXISTS ; createTransformStmt - : KW_CREATE opt_or_replace? KW_TRANSFORM KW_FOR typename KW_LANGUAGE colId OPEN_PAREN ( - KW_FROM sql_with_function (COMMA KW_TO sql_with_function)? - | KW_TO sql_with_function (COMMA KW_FROM sql_with_function)? + : KW_CREATE orReplaceOpt? KW_TRANSFORM KW_FOR typename KW_LANGUAGE colId OPEN_PAREN ( + KW_FROM sqlWithFunction (COMMA KW_TO sqlWithFunction)? + | KW_TO sqlWithFunction (COMMA KW_FROM sqlWithFunction)? ) CLOSE_PAREN ; -sql_with_function +sqlWithFunction : KW_SQL KW_WITH KW_FUNCTION functionWithArgTypes ; reindexStmt : KW_REINDEX (OPEN_PAREN KW_VERBOSE (COMMA KW_VERBOSE)* CLOSE_PAREN)? ( ( - KW_INDEX KW_CONCURRENTLY? qualified_name - | KW_TABLE KW_CONCURRENTLY? table_name - | KW_SCHEMA KW_CONCURRENTLY? schema_name + KW_INDEX KW_CONCURRENTLY? qualifiedName + | KW_TABLE KW_CONCURRENTLY? tableName + | KW_SCHEMA KW_CONCURRENTLY? schemaName | KW_SYSTEM KW_CONCURRENTLY? colId - | KW_DATABASE KW_CONCURRENTLY? database_name + | KW_DATABASE KW_CONCURRENTLY? databaseName ) ) ; @@ -1569,21 +1538,21 @@ alterTblSpcStmt renameStmt : KW_ALTER (KW_AGGREGATE aggregateWithArgTypes | KW_ROUTINE routineWithArgTypes) KW_RENAME KW_TO colId - | KW_ALTER KW_DATABASE database_name KW_RENAME KW_TO database_name_create - | KW_ALTER (KW_DOMAIN | KW_STATISTICS | KW_TYPE | KW_CONVERSION | KW_COLLATION) any_name KW_RENAME KW_TO colId - | KW_ALTER KW_FUNCTION functionWithArgTypes KW_RENAME KW_TO function_name_create - | KW_ALTER KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause KW_RENAME KW_TO colId - | KW_ALTER KW_PROCEDURE procedureWithArgTypes KW_RENAME KW_TO procedure_name_create - | KW_ALTER KW_SCHEMA schema_name KW_RENAME KW_TO schema_name_create - | KW_ALTER (KW_SEQUENCE | KW_INDEX) opt_if_exists? qualified_name KW_RENAME KW_TO colId - | KW_ALTER KW_MATERIALIZED? KW_VIEW opt_if_exists? view_name KW_RENAME KW_TO view_name_create - | KW_ALTER KW_FOREIGN? KW_TABLE opt_if_exists? relation_expr KW_RENAME KW_TO table_name_create + | KW_ALTER KW_DATABASE databaseName KW_RENAME KW_TO databaseNameCreate + | KW_ALTER (KW_DOMAIN | KW_STATISTICS | KW_TYPE | KW_CONVERSION | KW_COLLATION) anyName KW_RENAME KW_TO colId + | KW_ALTER KW_FUNCTION functionWithArgTypes KW_RENAME KW_TO functionNameCreate + | KW_ALTER KW_OPERATOR (KW_CLASS | KW_FAMILY) anyName tableAccessMethodClause KW_RENAME KW_TO colId + | KW_ALTER KW_PROCEDURE procedureWithArgTypes KW_RENAME KW_TO procedureNameCreate + | KW_ALTER KW_SCHEMA schemaName KW_RENAME KW_TO schemaNameCreate + | KW_ALTER (KW_SEQUENCE | KW_INDEX) ifExists? qualifiedName KW_RENAME KW_TO colId + | KW_ALTER KW_MATERIALIZED? KW_VIEW ifExists? viewName KW_RENAME KW_TO viewNameCreate + | KW_ALTER KW_FOREIGN? KW_TABLE ifExists? relationExpr KW_RENAME KW_TO tableNameCreate | KW_ALTER ( - KW_FOREIGN? KW_TABLE opt_if_exists? relation_expr KW_RENAME KW_COLUMN? - | KW_MATERIALIZED? KW_VIEW opt_if_exists? view_name KW_RENAME KW_COLUMN? - ) column_name KW_TO column_name_create - | KW_ALTER (KW_TABLE opt_if_exists? relation_expr | KW_DOMAIN any_name) KW_RENAME KW_CONSTRAINT colId KW_TO colId - | KW_ALTER ((KW_POLICY opt_if_exists?) | KW_RULE | KW_TRIGGER) colId KW_ON qualified_name KW_RENAME KW_TO colId + KW_FOREIGN? KW_TABLE ifExists? relationExpr KW_RENAME KW_COLUMN? + | KW_MATERIALIZED? KW_VIEW ifExists? viewName KW_RENAME KW_COLUMN? + ) columnName KW_TO columnNameCreate + | KW_ALTER (KW_TABLE ifExists? relationExpr | KW_DOMAIN anyName) KW_RENAME KW_CONSTRAINT colId KW_TO colId + | KW_ALTER ((KW_POLICY ifExists?) | KW_RULE | KW_TRIGGER) colId KW_ON qualifiedName KW_RENAME KW_TO colId | KW_ALTER ( KW_FOREIGN KW_DATA KW_WRAPPER | KW_PROCEDURAL? KW_LANGUAGE @@ -1593,9 +1562,9 @@ renameStmt | KW_EVENT KW_TRIGGER ) colId KW_RENAME KW_TO colId | KW_ALTER (KW_USER | KW_ROLE | KW_GROUP) roleSpec KW_RENAME KW_TO roleSpec - | KW_ALTER optTableSpace KW_RENAME KW_TO tablespace_name_create - | KW_ALTER KW_TEXT KW_SEARCH (KW_PARSER | KW_DICTIONARY | KW_TEMPLATE | KW_CONFIGURATION) any_name KW_RENAME KW_TO colId - | KW_ALTER KW_TYPE any_name KW_RENAME KW_ATTRIBUTE colId KW_TO colId opt_drop_behavior? + | KW_ALTER optTableSpace KW_RENAME KW_TO tableSpaceName + | KW_ALTER KW_TEXT KW_SEARCH (KW_PARSER | KW_DICTIONARY | KW_TEMPLATE | KW_CONFIGURATION) anyName KW_RENAME KW_TO colId + | KW_ALTER KW_TYPE anyName KW_RENAME KW_ATTRIBUTE colId KW_TO colId optDropBehavior? ; alterObjectDependsStmt @@ -1603,9 +1572,9 @@ alterObjectDependsStmt KW_FUNCTION functionWithArgTypes | KW_PROCEDURE procedureWithArgTypes | KW_ROUTINE routineWithArgTypes - | KW_TRIGGER colId KW_ON qualified_name - | KW_MATERIALIZED KW_VIEW view_name - | KW_INDEX qualified_name + | KW_TRIGGER colId KW_ON qualifiedName + | KW_MATERIALIZED KW_VIEW viewName + | KW_INDEX qualifiedName ) KW_NO? KW_DEPENDS KW_ON KW_EXTENSION colId ; @@ -1615,13 +1584,13 @@ alterObjectSchemaStmt | KW_EXTENSION colId | KW_FUNCTION functionWithArgTypes | KW_OPERATOR operatorWithArgTypes - | KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause + | KW_OPERATOR (KW_CLASS | KW_FAMILY) anyName tableAccessMethodClause | KW_PROCEDURE procedureWithArgTypes | KW_ROUTINE routineWithArgTypes - | KW_SEQUENCE opt_if_exists? qualified_name - | KW_MATERIALIZED? KW_VIEW opt_if_exists? view_name - | KW_FOREIGN? KW_TABLE opt_if_exists? relation_expr - ) KW_SET KW_SCHEMA schema_name + | KW_SEQUENCE ifExists? qualifiedName + | KW_MATERIALIZED? KW_VIEW ifExists? viewName + | KW_FOREIGN? KW_TABLE ifExists? relationExpr + ) KW_SET KW_SCHEMA schemaName | KW_ALTER ( KW_TEXT KW_SEARCH (KW_PARSER | KW_DICTIONARY | KW_TEMPLATE | KW_CONFIGURATION) | KW_COLLATION @@ -1629,37 +1598,30 @@ alterObjectSchemaStmt | KW_DOMAIN | KW_STATISTICS | KW_TYPE - ) any_name KW_SET KW_SCHEMA schema_name + ) anyName KW_SET KW_SCHEMA schemaName ; alterOperatorStmt - : KW_ALTER KW_OPERATOR operatorWithArgTypes KW_SET operator_def_list + : KW_ALTER KW_OPERATOR operatorWithArgTypes KW_SET operatorDefList ; -operator_def_list - : OPEN_PAREN operator_def_elem (COMMA operator_def_elem)* CLOSE_PAREN +operatorDefList + : OPEN_PAREN operatorDefElem (COMMA operatorDefElem)* CLOSE_PAREN ; -operator_def_elem - : colLabel EQUAL ( - KW_NONE - | func_type - | reserved_keyword - | qual_all_op - | numericOnly - | stringConst - ) +operatorDefElem + : colLabel EQUAL (KW_NONE | funcType | reservedKeyword | qualAllOp | numericOnly | stringConst) ; alterTypeStmt - : KW_ALTER KW_TYPE any_name KW_SET operator_def_list + : KW_ALTER KW_TYPE anyName KW_SET operatorDefList ; alterOwnerStmt - : KW_ALTER KW_OPERATOR (KW_CLASS | KW_FAMILY) any_name table_access_method_clause KW_OWNER KW_TO roleSpec + : KW_ALTER KW_OPERATOR (KW_CLASS | KW_FAMILY) anyName tableAccessMethodClause KW_OWNER KW_TO roleSpec | KW_ALTER ( KW_AGGREGATE aggregateWithArgTypes - | KW_DATABASE database_name + | KW_DATABASE databaseName | KW_FUNCTION functionWithArgTypes | KW_PROCEDURAL? KW_LANGUAGE colId | KW_LARGE KW_OBJECT numericOnly @@ -1667,7 +1629,7 @@ alterOwnerStmt | KW_OPERATOR operatorWithArgTypes | KW_PROCEDURE procedureWithArgTypes | KW_ROUTINE routineWithArgTypes - | KW_SCHEMA schema_name + | KW_SCHEMA schemaName | optTableSpace ) KW_OWNER KW_TO roleSpec | KW_ALTER ( @@ -1677,7 +1639,7 @@ alterOwnerStmt | KW_DOMAIN | KW_TYPE | KW_STATISTICS - ) any_name KW_OWNER KW_TO roleSpec + ) anyName KW_OWNER KW_TO roleSpec | KW_ALTER ( KW_SERVER | (KW_FOREIGN KW_DATA KW_WRAPPER) @@ -1688,7 +1650,7 @@ alterOwnerStmt ; createPublicationStmt - : KW_CREATE KW_PUBLICATION colId (KW_FOR KW_TABLE relation_expr_list | KW_FOR KW_ALL KW_TABLES)? opt_definition? + : KW_CREATE KW_PUBLICATION colId (KW_FOR KW_TABLE relationExprList | KW_FOR KW_ALL KW_TABLES)? optDefinition? ; alterPublicationStmt @@ -1696,35 +1658,35 @@ alterPublicationStmt (KW_OWNER KW_TO roleSpec) | (KW_SET definition) | (KW_RENAME KW_TO colId) - | (KW_ADD | KW_SET | KW_DROP) publication_relation_expr (COMMA publication_relation_expr)* + | (KW_ADD | KW_SET | KW_DROP) publicationRelationExpr (COMMA publicationRelationExpr)* ) ; createSubscriptionStmt : KW_CREATE KW_SUBSCRIPTION colId KW_CONNECTION stringConst KW_PUBLICATION ( colLabel (COMMA colLabel)* - ) opt_definition? + ) optDefinition? ; alterSubscriptionStmt : KW_ALTER KW_SUBSCRIPTION colId KW_SET definition | KW_ALTER KW_SUBSCRIPTION colId KW_CONNECTION stringConst - | KW_ALTER KW_SUBSCRIPTION colId KW_REFRESH KW_PUBLICATION opt_definition? + | KW_ALTER KW_SUBSCRIPTION colId KW_REFRESH KW_PUBLICATION optDefinition? | KW_ALTER KW_SUBSCRIPTION colId (KW_SET | KW_ADD | KW_DROP) KW_PUBLICATION ( colLabel (COMMA colLabel)* - ) opt_definition? + ) optDefinition? | KW_ALTER KW_SUBSCRIPTION colId (KW_ENABLE | KW_DISABLE) - | KW_ALTER KW_SUBSCRIPTION colId KW_SKIP OPEN_PAREN old_aggregate_elem CLOSE_PAREN + | KW_ALTER KW_SUBSCRIPTION colId KW_SKIP OPEN_PAREN oldAggregateElem CLOSE_PAREN | KW_ALTER KW_SUBSCRIPTION colId KW_OWNER KW_TO roleSpec ; ruleStmt - : KW_CREATE opt_or_replace? KW_RULE colId KW_AS KW_ON ( + : KW_CREATE orReplaceOpt? KW_RULE colId KW_AS KW_ON ( KW_SELECT | KW_UPDATE | KW_DELETE | KW_INSERT - ) KW_TO qualified_name where_clause? KW_DO (KW_INSTEAD | KW_ALSO)? ( + ) KW_TO qualifiedName whereClause? KW_DO (KW_INSTEAD | KW_ALSO)? ( KW_NOTHING | ruleActionStmt | OPEN_PAREN (ruleActionStmt? (SEMI ruleActionStmt?)*) CLOSE_PAREN @@ -1740,10 +1702,10 @@ ruleActionStmt ; notifyStmt - : KW_NOTIFY colId notify_payload? + : KW_NOTIFY colId notifyPayload? ; -notify_payload +notifyPayload : COMMA stringConst ; @@ -1756,35 +1718,35 @@ unListenStmt ; transactionStmt - : KW_BEGIN opt_transaction? transaction_mode_list? - | KW_START KW_TRANSACTION transaction_mode_list? + : KW_BEGIN optTransaction? transactionModeList? + | KW_START KW_TRANSACTION transactionModeList? | KW_SAVEPOINT colId | KW_RELEASE KW_SAVEPOINT? colId | KW_PREPARE KW_TRANSACTION stringConst | (KW_COMMIT | KW_ROLLBACK) KW_PREPARED stringConst - | (KW_ABORT | KW_END | KW_COMMIT | KW_ROLLBACK) opt_transaction? (KW_AND KW_NO? KW_CHAIN)? - | KW_ROLLBACK opt_transaction? KW_TO KW_SAVEPOINT? colId + | (KW_ABORT | KW_END | KW_COMMIT | KW_ROLLBACK) optTransaction? (KW_AND KW_NO? KW_CHAIN)? + | KW_ROLLBACK optTransaction? KW_TO KW_SAVEPOINT? colId ; -opt_transaction +optTransaction : KW_WORK | KW_TRANSACTION ; -transaction_mode_item - : KW_ISOLATION KW_LEVEL iso_level +transactionModeItem + : KW_ISOLATION KW_LEVEL isoLevel | KW_READ (KW_ONLY | KW_WRITE) | KW_NOT? KW_DEFERRABLE ; -transaction_mode_list - : transaction_mode_item (COMMA? transaction_mode_item)* +transactionModeList + : transactionModeItem (COMMA? transactionModeItem)* ; viewStmt : KW_CREATE (KW_OR KW_REPLACE)? optTemp? ( - KW_VIEW view_name_create opt_column_list_create? optRelOptions? - | KW_RECURSIVE KW_VIEW view_name_create opt_column_list optRelOptions? + KW_VIEW viewNameCreate columnListCreate? optRelOptions? + | KW_RECURSIVE KW_VIEW viewNameCreate optColumnList optRelOptions? ) KW_AS selectStmt (KW_WITH (KW_CASCADED | KW_LOCAL)? KW_CHECK KW_OPTION)? # createView ; @@ -1793,10 +1755,10 @@ loadStmt ; createDbStmt - : KW_CREATE KW_DATABASE database_name_create KW_WITH? (create_db_opt_item+)? # createDatabase + : KW_CREATE KW_DATABASE databaseNameCreate KW_WITH? (createDbOptItem+)? # createDatabase ; -create_db_opt_item +createDbOptItem : ( KW_CONNECTION KW_LIMIT | KW_ENCODING @@ -1805,100 +1767,100 @@ create_db_opt_item | KW_TABLESPACE | KW_TEMPLATE | identifier - ) EQUAL? (signedConst | opt_boolean_or_string | KW_DEFAULT) + ) EQUAL? (signedConst | booleanOrString | KW_DEFAULT) ; alterDatabaseStmt - : KW_ALTER KW_DATABASE database_name ( - (KW_SET KW_TABLESPACE tablespace_name_create)? - | (KW_WITH? create_db_opt_item+)? + : KW_ALTER KW_DATABASE databaseName ( + (KW_SET KW_TABLESPACE tableSpaceName)? + | (KW_WITH? createDbOptItem+)? ) ; alterDatabaseSetStmt - : KW_ALTER KW_DATABASE database_name setOrResetClause? + : KW_ALTER KW_DATABASE databaseName setOrResetClause? ; alterCollationStmt - : KW_ALTER KW_COLLATION any_name KW_REFRESH KW_VERSION + : KW_ALTER KW_COLLATION anyName KW_REFRESH KW_VERSION ; alterSystemStmt - : KW_ALTER KW_SYSTEM (KW_SET | KW_RESET) generic_set + : KW_ALTER KW_SYSTEM (KW_SET | KW_RESET) genericSet ; createDomainStmt - : KW_CREATE KW_DOMAIN any_name KW_AS? typename colConstraint* + : KW_CREATE KW_DOMAIN anyName KW_AS? typename colConstraint* ; alterDomainStmt - : KW_ALTER KW_DOMAIN any_name ( - alter_column_default + : KW_ALTER KW_DOMAIN anyName ( + alterColumnDefault | (KW_DROP | KW_SET) KW_NOT KW_NULL | KW_ADD (KW_CONSTRAINT colId)? constraintElem - | KW_DROP KW_CONSTRAINT opt_if_exists? colId opt_drop_behavior? + | KW_DROP KW_CONSTRAINT ifExists? colId optDropBehavior? | KW_VALIDATE KW_CONSTRAINT colId ) ; alterSearchDictionaryStmt - : KW_ALTER KW_TEXT KW_SEARCH KW_DICTIONARY any_name definition + : KW_ALTER KW_TEXT KW_SEARCH KW_DICTIONARY anyName definition ; alterSearchConfigurationStmt - : KW_ALTER KW_TEXT KW_SEARCH KW_CONFIGURATION any_name (KW_ADD | KW_ALTER) KW_MAPPING KW_FOR name_list KW_WITH any_name_list - | KW_ALTER KW_TEXT KW_SEARCH KW_CONFIGURATION any_name KW_ALTER KW_MAPPING (KW_FOR name_list)? KW_REPLACE any_name KW_WITH any_name - | KW_ALTER KW_TEXT KW_SEARCH KW_CONFIGURATION any_name KW_DROP KW_MAPPING opt_if_exists? KW_FOR name_list + : KW_ALTER KW_TEXT KW_SEARCH KW_CONFIGURATION anyName (KW_ADD | KW_ALTER) KW_MAPPING KW_FOR nameList KW_WITH anyNameList + | KW_ALTER KW_TEXT KW_SEARCH KW_CONFIGURATION anyName KW_ALTER KW_MAPPING (KW_FOR nameList)? KW_REPLACE anyName KW_WITH anyName + | KW_ALTER KW_TEXT KW_SEARCH KW_CONFIGURATION anyName KW_DROP KW_MAPPING ifExists? KW_FOR nameList ; createConversionStmt - : KW_CREATE KW_DEFAULT? KW_CONVERSION any_name KW_FOR stringConst KW_TO stringConst KW_FROM any_name + : KW_CREATE KW_DEFAULT? KW_CONVERSION anyName KW_FOR stringConst KW_TO stringConst KW_FROM anyName ; clusterStmt - : KW_CLUSTER opt_verbose? (table_name table_access_method_clause?)? - | KW_CLUSTER OPEN_PAREN opt_verbose (COMMA opt_verbose)* CLOSE_PAREN table_name table_access_method_clause? + : KW_CLUSTER optVerbose? (tableName tableAccessMethodClause?)? + | KW_CLUSTER OPEN_PAREN optVerbose (COMMA optVerbose)* CLOSE_PAREN tableName tableAccessMethodClause? ; vacuumStmt - : KW_VACUUM ((KW_FULL? KW_FREEZE? opt_verbose? analyze_keyword?) | (explain_option_list)?) vacuum_relation_list? + : KW_VACUUM ((KW_FULL? KW_FREEZE? optVerbose? analyzeKeyword?) | (explainOptionList)?) vacuumRelationList? ; analyzeStmt - : analyze_keyword ( - opt_verbose? - | OPEN_PAREN analyze_option_elem (COMMA analyze_option_elem)* CLOSE_PAREN - ) vacuum_relation_list? + : analyzeKeyword ( + optVerbose? + | OPEN_PAREN analyzeOptionElem (COMMA analyzeOptionElem)* CLOSE_PAREN + ) vacuumRelationList? ; -analyze_keyword +analyzeKeyword : KW_ANALYZE | KW_ANALYSE ; -vac_analyze_option_elem - : (nonReservedWord | analyze_keyword) (opt_boolean_or_string | numericOnly)? +vacAnalyzeOptionElem + : (nonReservedWord | analyzeKeyword) (booleanOrString | numericOnly)? ; -analyze_option_elem +analyzeOptionElem : (KW_SKIP_LOCKED | KW_VERBOSE) (KW_FALSE | KW_TRUE)? | KW_BUFFER_USAGE_LIMIT (numericOnly | stringConst) ; // support on v12+ -opt_verbose +optVerbose : KW_VERBOSE (KW_FALSE | KW_TRUE)? ; -vacuum_relation - : table_name opt_column_list? +vacuumRelation + : tableName optColumnList? ; -vacuum_relation_list - : vacuum_relation (COMMA vacuum_relation)* +vacuumRelationList + : vacuumRelation (COMMA vacuumRelation)* ; explainStmt - : KW_EXPLAIN (explain_option_list | KW_VERBOSE? | (analyze_keyword opt_verbose?)?) explainableStmt + : KW_EXPLAIN (explainOptionList | KW_VERBOSE? | (analyzeKeyword optVerbose?)?) explainableStmt ; explainableStmt @@ -1913,15 +1875,15 @@ explainableStmt | executeStmt ; -explain_option_list - : OPEN_PAREN vac_analyze_option_elem (COMMA vac_analyze_option_elem)* CLOSE_PAREN +explainOptionList + : OPEN_PAREN vacAnalyzeOptionElem (COMMA vacAnalyzeOptionElem)* CLOSE_PAREN ; prepareStmt - : KW_PREPARE colId prep_type_clause? KW_AS preParableStmt + : KW_PREPARE colId prepTypeClause? KW_AS preParableStmt ; -prep_type_clause +prepTypeClause : OPEN_PAREN typename (COMMA typename)* CLOSE_PAREN ; @@ -1934,12 +1896,12 @@ preParableStmt ; executeStmt - : KW_EXECUTE colId execute_param_clause? - | KW_CREATE optTemp? KW_TABLE opt_if_not_exists? create_as_target KW_AS KW_EXECUTE colId execute_param_clause? opt_with_data? + : KW_EXECUTE colId executeParamClause? + | KW_CREATE optTemp? KW_TABLE ifNotExists? createAsTarget KW_AS KW_EXECUTE colId executeParamClause? optWithData? ; -execute_param_clause - : OPEN_PAREN expr_list CLOSE_PAREN +executeParamClause + : OPEN_PAREN exprList CLOSE_PAREN ; dealLocateStmt @@ -1947,39 +1909,39 @@ dealLocateStmt ; insertStmt - : with_clause? KW_INSERT KW_INTO table_name (KW_AS colId)? insert_rest ( - KW_ON KW_CONFLICT (index_params where_clause? | KW_ON KW_CONSTRAINT colId)? KW_DO ( - KW_UPDATE KW_SET set_clause_list where_clause? + : withClause? KW_INSERT KW_INTO tableName (KW_AS colId)? insertRest ( + KW_ON KW_CONFLICT (indexParams whereClause? | KW_ON KW_CONSTRAINT colId)? KW_DO ( + KW_UPDATE KW_SET setClauseList whereClause? | KW_NOTHING ) - )? returning_clause? # insertStatement + )? returningClause? # insertStatement ; -insert_rest - : (OPEN_PAREN insert_column_list CLOSE_PAREN)? (KW_OVERRIDING (KW_USER | KW_SYSTEM) KW_VALUE)? ( - default_values_or_values +insertRest + : (OPEN_PAREN insertColumnList CLOSE_PAREN)? (KW_OVERRIDING (KW_USER | KW_SYSTEM) KW_VALUE)? ( + defaultValuesOrValues | selectStmt ) ; -insert_column_list - : insert_column_item (COMMA insert_column_item)* +insertColumnList + : insertColumnItem (COMMA insertColumnItem)* ; -insert_column_item - : column_name opt_indirection +insertColumnItem + : columnName optIndirection ; -returning_clause - : KW_RETURNING target_list +returningClause + : KW_RETURNING targetList ; deleteStmt - : with_clause? KW_DELETE KW_FROM relation_expr_opt_alias (KW_USING from_list)? where_or_current_clause? returning_clause? + : withClause? KW_DELETE KW_FROM relationExprOptAlias (KW_USING fromList)? whereOrCurrentClause? returningClause? ; lockStmt - : KW_LOCK KW_TABLE? relation_expr_list ( + : KW_LOCK KW_TABLE? relationExprList ( KW_IN ( (KW_ACCESS | KW_ROW) (KW_SHARE | KW_EXCLUSIVE) | KW_SHARE (KW_UPDATE KW_EXCLUSIVE | KW_ROW KW_EXCLUSIVE)? @@ -1989,18 +1951,18 @@ lockStmt ; updateStmt - : with_clause? KW_UPDATE relation_expr_opt_alias KW_SET set_clause_list from_clause? where_or_current_clause? returning_clause? + : withClause? KW_UPDATE relationExprOptAlias KW_SET setClauseList fromClause? whereOrCurrentClause? returningClause? ; -set_clause_list - : set_clause (COMMA set_clause)* +setClauseList + : setClause (COMMA setClause)* ; -set_clause - : insert_column_item EQUAL expression - | OPEN_PAREN insert_column_list CLOSE_PAREN EQUAL ( +setClause + : insertColumnItem EQUAL expression + | OPEN_PAREN insertColumnList CLOSE_PAREN EQUAL ( KW_ROW? expression - | OPEN_PAREN select_clause CLOSE_PAREN + | OPEN_PAREN selectClause CLOSE_PAREN ) ; @@ -2011,131 +1973,129 @@ declareCursorStmt ; /* - TODO: why select_with_parens alternative is needed at all? i guess it because original byson - grammar can choose selectStmt(2)->select_with_parens on only OPEN_PARENT/SELECT kewords at the + TODO: why selectWithParens alternative is needed at all? i guess it because original byson + grammar can choose selectStmt(2)->selectWithParens on only OPEN_PARENT/SELECT kewords at the begining of statement; (select * from tab); parse can go through selectStmt( - )->select_no_parens(1)->select_clause(2)->select_with_parens(1)->select_no_parens(1)->select_clause(1)->simple_select + )->selectNoParens(1)->selectClause(2)->selectWithParens(1)->selectNoParens(1)->selectClause(1)->simpleSelect instead of - selectStmt(1)->select_no_parens(1)->select_clause(2)->select_with_parens(1)->select_no_parens(1)->select_clause(1)->simple_select + selectStmt(1)->selectNoParens(1)->selectClause(2)->selectWithParens(1)->selectNoParens(1)->selectClause(1)->simpleSelect all standard tests passed on both variants */ selectStmt - : select_no_parens # selectStatement - | select_with_parens # selectStatement + : selectNoParens # selectStatement + | selectWithParens # selectStatement ; -select_with_parens - : OPEN_PAREN (select_no_parens | select_with_parens) CLOSE_PAREN +selectWithParens + : OPEN_PAREN (selectNoParens | selectWithParens) CLOSE_PAREN ; -select_no_parens - : with_clause? select_clause sort_clause? ( - for_locking_clause select_limit? - | select_limit for_locking_clause? +selectNoParens + : withClause? selectClause sortClause? ( + forLockingClause selectLimit? + | selectLimit forLockingClause? )? ; -select_clause - : simple_select - | select_with_parens +selectClause + : simpleSelect + | selectWithParens ; -simple_select +simpleSelect : ( - KW_SELECT (KW_ALL? into_clause? | distinct_clause?) sql_expression - | values_clause - | KW_TABLE relation_expr - | select_with_parens set_operator_with_all_or_distinct (simple_select | select_with_parens) - ) (set_operator_with_all_or_distinct ( simple_select | select_with_parens))* + KW_SELECT (KW_ALL? intoClause? | distinctClause?) sqlExpression + | valuesClause + | KW_TABLE relationExpr + | selectWithParens setOperatorWithAllOrDistinct (simpleSelect | selectWithParens) + ) (setOperatorWithAllOrDistinct ( simpleSelect | selectWithParens))* ; -set_operator_with_all_or_distinct +setOperatorWithAllOrDistinct : (KW_UNION | KW_INTERSECT | KW_EXCEPT) (KW_ALL | KW_DISTINCT)? ; -with_clause - : KW_WITH KW_RECURSIVE? (common_table_expr (COMMA common_table_expr)*) +withClause + : KW_WITH KW_RECURSIVE? (commonTableExpr (COMMA commonTableExpr)*) ; -common_table_expr - : colId opt_column_list? KW_AS (KW_NOT? KW_MATERIALIZED)? OPEN_PAREN preParableStmt CLOSE_PAREN search_clause? cycle_clause? +commonTableExpr + : colId optColumnList? KW_AS (KW_NOT? KW_MATERIALIZED)? OPEN_PAREN preParableStmt CLOSE_PAREN searchClause? cycleClause? ; -search_clause - : KW_SEARCH (KW_BREADTH | KW_DEPTH) KW_FIRST KW_BY column_list KW_SET column_name +searchClause + : KW_SEARCH (KW_BREADTH | KW_DEPTH) KW_FIRST KW_BY columnList KW_SET columnName ; -cycle_clause - : KW_CYCLE column_list KW_SET column_name (KW_TO colId KW_DEFAULT colId)? KW_USING column_name +cycleClause + : KW_CYCLE columnList KW_SET columnName (KW_TO colId KW_DEFAULT colId)? KW_USING columnName ; -into_clause - : KW_INTO (KW_STRICT? optTempTableName | expr_list) +intoClause + : KW_INTO (KW_STRICT? optTempTableName | exprList) ; optTempTableName - : (KW_LOCAL | KW_GLOBAL)? (KW_TEMPORARY | KW_TEMP) KW_TABLE? table_name_create - | KW_UNLOGGED? KW_TABLE? table_name_create + : (KW_LOCAL | KW_GLOBAL)? (KW_TEMPORARY | KW_TEMP) KW_TABLE? tableNameCreate + | KW_UNLOGGED? KW_TABLE? tableNameCreate ; -distinct_clause - : KW_DISTINCT (KW_ON execute_param_clause)? +distinctClause + : KW_DISTINCT (KW_ON executeParamClause)? ; -sort_clause +sortClause : KW_ORDER KW_BY sortBy (COMMA sortBy)* ; sortBy - : column_expr_no_paren (KW_USING qual_all_op | (KW_ASC | KW_DESC))? ( - KW_NULLS (KW_FIRST | KW_LAST) - )? + : columnExprNoParen (KW_USING qualAllOp | (KW_ASC | KW_DESC))? (KW_NULLS (KW_FIRST | KW_LAST))? ; -select_limit +selectLimit : // https://www.postgresql.org/docs/16/sql-select.html#SQL-LIMIT - offset_clause fetch_clause? - | (limit_clause | fetch_clause) offset_clause? + offsetClause fetchClause? + | (limitClause | fetchClause) offsetClause? ; -limit_clause +limitClause : KW_LIMIT (expression | KW_ALL) (COMMA expression)? ; -fetch_clause +fetchClause : KW_FETCH (KW_FIRST | KW_NEXT) ( - select_fetch_first_value? (KW_ROW | KW_ROWS) (KW_ONLY | KW_WITH KW_TIES) + selectFetchFirstValue? (KW_ROW | KW_ROWS) (KW_ONLY | KW_WITH KW_TIES) ) ; -offset_clause - : KW_OFFSET (select_fetch_first_value (KW_ROW | KW_ROWS) | expression) +offsetClause + : KW_OFFSET (selectFetchFirstValue (KW_ROW | KW_ROWS) | expression) ; -select_fetch_first_value +selectFetchFirstValue : (PLUS | MINUS) (Integral | Numeric) | primaryExpression ; -group_clause - : KW_GROUP KW_BY (KW_ALL | KW_DISTINCT)? group_by_list +groupClause + : KW_GROUP KW_BY (KW_ALL | KW_DISTINCT)? groupByList ; -group_by_list - : group_by_item (COMMA group_by_item)* +groupByList + : groupByItem (COMMA groupByItem)* ; -group_by_item - : column_expr_no_paren +groupByItem + : columnExprNoParen | OPEN_PAREN CLOSE_PAREN - | (KW_CUBE | KW_ROLLUP)? OPEN_PAREN (column_expr_no_paren (COMMA column_expr_no_paren)*) CLOSE_PAREN - | KW_GROUPING KW_SETS OPEN_PAREN group_by_list CLOSE_PAREN + | (KW_CUBE | KW_ROLLUP)? OPEN_PAREN (columnExprNoParen (COMMA columnExprNoParen)*) CLOSE_PAREN + | KW_GROUPING KW_SETS OPEN_PAREN groupByList CLOSE_PAREN ; -for_locking_clause +forLockingClause : ( - KW_FOR ((KW_NO KW_KEY)? KW_UPDATE | KW_KEY? KW_SHARE) (KW_OF qualified_name_list)? ( + KW_FOR ((KW_NO KW_KEY)? KW_UPDATE | KW_KEY? KW_SHARE) (KW_OF qualifiedNameList)? ( KW_NOWAIT | KW_SKIP KW_LOCKED )? @@ -2143,98 +2103,98 @@ for_locking_clause | KW_FOR KW_READ KW_ONLY ; -values_clause - : KW_VALUES execute_param_clause (COMMA execute_param_clause)* +valuesClause + : KW_VALUES executeParamClause (COMMA executeParamClause)* ; -from_clause - : KW_FROM from_list +fromClause + : KW_FROM fromList ; -from_list - : table_ref (COMMA table_ref)* +fromList + : tableRef (COMMA tableRef)* ; -table_ref +tableRef : ( - (relation_expr | (KW_ONLY? view_name STAR? column_list? where_clause?)) alias_clause? tableSampleClause? + (relationExpr | (KW_ONLY? viewName STAR? columnList? whereClause?)) aliasClause? tableSampleClause? | KW_LATERAL? ( - xmlTable alias_clause? - | func_table func_alias_clause? - | select_with_parens alias_clause? + xmlTable aliasClause? + | funcTable funcAliasClause? + | selectWithParens aliasClause? ) - | OPEN_PAREN table_ref ( - KW_CROSS KW_JOIN table_ref - | KW_NATURAL join_type? KW_JOIN table_ref - | join_type? KW_JOIN table_ref join_qual - )? CLOSE_PAREN alias_clause? + | OPEN_PAREN tableRef ( + KW_CROSS KW_JOIN tableRef + | KW_NATURAL joinType? KW_JOIN tableRef + | joinType? KW_JOIN tableRef joinQual + )? CLOSE_PAREN aliasClause? ) ( - KW_CROSS KW_JOIN table_ref - | KW_NATURAL join_type? KW_JOIN table_ref - | join_type? KW_JOIN table_ref join_qual + KW_CROSS KW_JOIN tableRef + | KW_NATURAL joinType? KW_JOIN tableRef + | joinType? KW_JOIN tableRef joinQual )* ; -alias_clause - : KW_AS? alias=colId (OPEN_PAREN name_list CLOSE_PAREN)? +aliasClause + : KW_AS? alias=colId (OPEN_PAREN nameList CLOSE_PAREN)? ; -func_alias_clause - : alias_clause +funcAliasClause + : aliasClause | (KW_AS alias=colId? | alias=colId) OPEN_PAREN tableFuncElementList CLOSE_PAREN ; -join_type +joinType : (KW_FULL | KW_LEFT | KW_RIGHT | KW_INNER) KW_OUTER? ; -join_qual - : KW_USING opt_column_list +joinQual + : KW_USING optColumnList | KW_ON expression ; -relation_expr - : truncate_table - | KW_ONLY ( table_name | OPEN_PAREN table_name CLOSE_PAREN) - | KW_IN KW_SCHEMA (schema_name | KW_CURRENT_SCHEMA) +relationExpr + : truncateTable + | KW_ONLY ( tableName | OPEN_PAREN tableName CLOSE_PAREN) + | KW_IN KW_SCHEMA (schemaName | KW_CURRENT_SCHEMA) ; -publication_relation_expr - : KW_TABLE truncate_table (opt_column_list)? where_clause? - | KW_TABLE KW_ONLY ( table_name | OPEN_PAREN table_name CLOSE_PAREN) - | KW_TABLES KW_IN KW_SCHEMA (schema_name | KW_CURRENT_SCHEMA) +publicationRelationExpr + : KW_TABLE truncateTable (optColumnList)? whereClause? + | KW_TABLE KW_ONLY ( tableName | OPEN_PAREN tableName CLOSE_PAREN) + | KW_TABLES KW_IN KW_SCHEMA (schemaName | KW_CURRENT_SCHEMA) ; -relation_expr_list - : relation_expr (COMMA relation_expr)* +relationExprList + : relationExpr (COMMA relationExpr)* ; -relation_expr_opt_alias - : relation_expr (KW_AS? colId)? +relationExprOptAlias + : relationExpr (KW_AS? colId)? ; tableSampleClause - : KW_TABLESAMPLE function_name execute_param_clause ( + : KW_TABLESAMPLE functionName executeParamClause ( KW_REPEATABLE OPEN_PAREN expression CLOSE_PAREN )? ; -func_table +funcTable : ( - func_expr_windowless + funcExprWindowless | (KW_ROWS KW_FROM OPEN_PAREN rowsFromItem (COMMA rowsFromItem)* CLOSE_PAREN) ) (KW_WITH KW_ORDINALITY)? ; rowsFromItem - : func_expr_windowless (KW_AS OPEN_PAREN tableFuncElementList CLOSE_PAREN)? + : funcExprWindowless (KW_AS OPEN_PAREN tableFuncElementList CLOSE_PAREN)? ; -where_clause - : KW_WHERE column_expr_no_paren +whereClause + : KW_WHERE columnExprNoParen ; -where_or_current_clause +whereOrCurrentClause : KW_WHERE (KW_CURRENT KW_OF colId | expression) ; @@ -2243,12 +2203,12 @@ tableFuncElementList ; tableFuncElement - : colId typename opt_collate_clause? + : colId typename collateClause? ; xmlTable : KW_XMLTABLE OPEN_PAREN ( - (KW_XMLNAMESPACES OPEN_PAREN xml_namespace_el (COMMA xml_namespace_el)* CLOSE_PAREN COMMA)? primaryExpression xmlExistsArgument KW_COLUMNS + (KW_XMLNAMESPACES OPEN_PAREN xmlNamespaceEle (COMMA xmlNamespaceEle)* CLOSE_PAREN COMMA)? primaryExpression xmlExistsArgument KW_COLUMNS xmlTableColumnEl (COMMA xmlTableColumnEl)* ) CLOSE_PAREN ; @@ -2260,7 +2220,7 @@ xmlTableColumnEl ) ; -xml_namespace_el +xmlNamespaceEle : primaryExpression KW_AS colLabel | KW_DEFAULT primaryExpression ; @@ -2270,13 +2230,13 @@ typename ((OPEN_BRACKET Integral? CLOSE_BRACKET)*) | KW_ARRAY (OPEN_BRACKET Integral CLOSE_BRACKET)? ) - | qualified_name PERCENT (KW_ROWTYPE | KW_TYPE) + | qualifiedName PERCENT (KW_ROWTYPE | KW_TYPE) ; simpleTypeName - : type_function_name attrs? execute_param_clause? + : typeFunctionName attrs? executeParamClause? | constTypeName - | KW_INTERVAL ( opt_interval? | opt_float) + | KW_INTERVAL ( optInterval? | optFloat) ; constTypeName @@ -2292,18 +2252,18 @@ numeric | KW_SMALLINT | KW_BIGINT | KW_REAL - | KW_FLOAT opt_float? + | KW_FLOAT optFloat? | KW_DOUBLE KW_PRECISION - | (KW_DECIMAL | KW_DEC | KW_NUMERIC) execute_param_clause? + | (KW_DECIMAL | KW_DEC | KW_NUMERIC) executeParamClause? | KW_BOOLEAN ; -opt_float +optFloat : OPEN_PAREN Integral CLOSE_PAREN ; bit - : KW_BIT KW_VARYING? execute_param_clause? + : KW_BIT KW_VARYING? executeParamClause? ; character @@ -2311,24 +2271,24 @@ character (KW_CHARACTER | KW_CHAR | KW_NCHAR) KW_VARYING? | KW_VARCHAR | KW_NATIONAL (KW_CHARACTER | KW_CHAR) KW_VARYING? - ) (opt_float)? + ) (optFloat)? ; constDatetime - : (KW_TIMESTAMP | KW_TIME) (opt_float)? ((KW_WITH | KW_WITHOUT) KW_TIME KW_ZONE)? + : (KW_TIMESTAMP | KW_TIME) (optFloat)? ((KW_WITH | KW_WITHOUT) KW_TIME KW_ZONE)? ; -opt_interval +optInterval : KW_MONTH - | interval_second + | intervalSecond | KW_YEAR (KW_TO KW_MONTH)? - | KW_DAY (KW_TO (KW_HOUR | KW_MINUTE | interval_second))? - | KW_HOUR (KW_TO (KW_MINUTE | interval_second))? - | KW_MINUTE (KW_TO interval_second)? + | KW_DAY (KW_TO (KW_HOUR | KW_MINUTE | intervalSecond))? + | KW_HOUR (KW_TO (KW_MINUTE | intervalSecond))? + | KW_MINUTE (KW_TO intervalSecond)? ; -interval_second - : KW_SECOND (opt_float)? +intervalSecond + : KW_SECOND (optFloat)? ; //precendence accroding to Table 4.2. Operator Precedence (highest to lowest) @@ -2337,21 +2297,21 @@ interval_second /* original version of a_expr, for info a_expr: primaryExpression //:: left PostgreSQL-style typecast | a_expr - TYPECAST typename -- 1 | a_expr KW_COLLATE any_name -- 2 | a_expr AT TIME ZONE a_expr-- 3 //right + TYPECAST typename -- 1 | a_expr KW_COLLATE anyName -- 2 | a_expr AT TIME ZONE a_expr-- 3 //right unary plus, unary minus | (PLUS| MINUS) a_expr -- 4 //left exponentiation | a_expr CARET a_expr -- 5 //left multiplication, division, modulo | a_expr (STAR | SLASH | PERCENT) a_expr -- 6 //left addition, subtraction | a_expr (PLUS | MINUS) a_expr -- 7 //left all other native and user-defined - operators | a_expr qual_op a_expr -- 8 | qual_op a_expr -- 9 //range containment, set membership, + operators | a_expr qualOp a_expr -- 8 | qualOp a_expr -- 9 //range containment, set membership, string matching BETWEEN IN LIKE ILIKE SIMILAR | a_expr NOT? (LIKE|ILIKE|SIMILAR TO|(BETWEEN SYMMETRIC?)) a_expr opt_escape? -- 10 //< > = <= >= <> comparison operators | a_expr (LT | GT | EQUAL | LESS_EQUALS | GREATER_EQUALS | NOT_EQUALS) a_expr -- 11 //IS ISNULL NOTNULL IS TRUE, IS FALSE, IS NULL, IS KW_DISTINCT FROM, etc | a_expr IS NOT? ( NULL_P |TRUE_P |FALSE_P |UNKNOWN |KW_DISTINCT - KW_FROM a_expr |OF OPEN_PAREN type_name_list CLOSE_PAREN |DOCUMENT_P |unicode_normal_form? NORMALIZED ) -- + KW_FROM a_expr |OF OPEN_PAREN type_name_list CLOSE_PAREN |DOCUMENT_P |unicodeNormalForm? NORMALIZED ) -- 12 | a_expr (ISNULL|NOTNULL) -- 13 | row OVERLAPS row -- 14 //NOT right logical negation | NOT a_expr -- 15 //AND left logical conjunction | a_expr AND a_expr -- 16 //OR left logical disjunction - | a_expr OR a_expr -- 17 | a_expr (LESS_LESS|GREATER_GREATER) a_expr -- 18 | a_expr qual_op -- 19 | - a_expr NOT? IN_P in_expr -- 20 | a_expr subquery_Op sub_type (select_with_parens|OPEN_PAREN a_expr - CLOSE_PAREN) -- 21 | UNIQUE select_with_parens -- 22 | KW_DEFAULT -- 23 ; + | a_expr OR a_expr -- 17 | a_expr (LESS_LESS|GREATER_GREATER) a_expr -- 18 | a_expr qualOp -- 19 | + a_expr NOT? IN_P in_expr -- 20 | a_expr subqueryOperator subType (selectWithParens|OPEN_PAREN a_expr + CLOSE_PAREN) -- 21 | UNIQUE selectWithParens -- 22 | KW_DEFAULT -- 23 ; */ comparisonOperator @@ -2376,13 +2336,13 @@ booleanExpression predicate[antlr.ParserRuleContext value] : comparisonOperator right= valueExpression # comparison - | comparisonOperator subquery_Op sub_type ( - select_with_parens + | comparisonOperator subqueryOperator subType ( + selectWithParens | OPEN_PAREN expression CLOSE_PAREN ) # quantifiedComparison | KW_NOT? KW_BETWEEN lower= valueExpression KW_AND upper= valueExpression # between | KW_NOT? KW_IN OPEN_PAREN expression (COMMA expression)* CLOSE_PAREN # inList - | KW_NOT? KW_IN select_with_parens # inSubquery + | KW_NOT? KW_IN selectWithParens # inSubquery | KW_NOT? (KW_LIKE | KW_ILIKE | KW_SIMILAR KW_TO | KW_BETWEEN KW_SYMMETRIC?) pattern= valueExpression ( KW_ESCAPE escape= valueExpression )? # like @@ -2400,66 +2360,66 @@ valueExpression ; primaryExpression - : (KW_EXISTS | KW_UNIQUE) select_with_parens - | KW_ARRAY (select_with_parens | array_expr) - | PARAM opt_indirection - | KW_GROUPING execute_param_clause + : (KW_EXISTS | KW_UNIQUE) selectWithParens + | KW_ARRAY (selectWithParens | arrayExpr) + | PARAM optIndirection + | KW_GROUPING executeParamClause | Integral | Numeric | BinaryStringConstant | HexadecimalStringConstant - | function_name (stringConst | OPEN_PAREN func_arg_list sort_clause? CLOSE_PAREN stringConst) + | functionName (stringConst | OPEN_PAREN funcArgList sortClause? CLOSE_PAREN stringConst) | constTypeName? stringConst - | KW_INTERVAL ( stringConst opt_interval? | opt_float stringConst) + | KW_INTERVAL ( stringConst optInterval? | optFloat stringConst) | KW_TRUE | KW_FALSE | KW_NULL | PLSQLVARIABLENAME - | OPEN_PAREN a_expr_in_parens= expression CLOSE_PAREN opt_indirection + | OPEN_PAREN a_expr_in_parens= expression CLOSE_PAREN optIndirection | KW_CASE expression? when_clause+ (KW_ELSE expression)? KW_END | func_expr - | select_with_parens indirection? - | explicit_row - | OPEN_PAREN expression COMMA expr_list CLOSE_PAREN + | selectWithParens indirection? + | explicitRow + | OPEN_PAREN expression COMMA exprList CLOSE_PAREN | row KW_OVERLAPS row - | qualified_name + | qualifiedName | primaryExpression TYPECAST typename | (PLUS | MINUS) primaryExpression - | primaryExpression qual_op primaryExpression? - | primaryExpression mathop primaryExpression - | qual_op primaryExpression + | primaryExpression qualOp primaryExpression? + | primaryExpression mathOp primaryExpression + | qualOp primaryExpression | primaryExpression KW_IS KW_NOT? ( KW_DISTINCT KW_FROM primaryExpression - | KW_OF prep_type_clause + | KW_OF prepTypeClause | KW_DOCUMENT ) ; -func_application - : function_name OPEN_PAREN ( - func_arg_list (COMMA KW_VARIADIC func_arg_expr)? sort_clause? - | KW_VARIADIC func_arg_expr sort_clause? - | (KW_ALL | KW_DISTINCT) func_arg_list sort_clause? +funcApplication + : functionName OPEN_PAREN ( + funcArgList (COMMA KW_VARIADIC funcArgExpr)? sortClause? + | KW_VARIADIC funcArgExpr sortClause? + | (KW_ALL | KW_DISTINCT) funcArgList sortClause? | STAR )? CLOSE_PAREN ; func_expr - : func_application (KW_WITHIN KW_GROUP OPEN_PAREN sort_clause CLOSE_PAREN)? ( + : funcApplication (KW_WITHIN KW_GROUP OPEN_PAREN sortClause CLOSE_PAREN)? ( KW_FILTER OPEN_PAREN KW_WHERE expression CLOSE_PAREN - )? (KW_OVER (window_specification | colId))? - | func_expr_common_subexpr + )? (KW_OVER (windowSpecification | colId))? + | funcExprCommonSubExpr ; -func_expr_windowless - : func_application - | func_expr_common_subexpr +funcExprWindowless + : funcApplication + | funcExprCommonSubExpr ; -func_expr_common_subexpr +funcExprCommonSubExpr : KW_COLLATION KW_FOR OPEN_PAREN expression CLOSE_PAREN | KW_CURRENT_DATE - | (KW_CURRENT_TIME | KW_CURRENT_TIMESTAMP | KW_LOCALTIME | KW_LOCALTIMESTAMP) (opt_float)? + | (KW_CURRENT_TIME | KW_CURRENT_TIMESTAMP | KW_LOCALTIME | KW_LOCALTIMESTAMP) (optFloat)? | KW_CURRENT_ROLE | KW_CURRENT_USER | KW_SESSION_USER @@ -2467,100 +2427,98 @@ func_expr_common_subexpr | KW_CURRENT_CATALOG | KW_CURRENT_SCHEMA | (KW_CAST | KW_TREAT) OPEN_PAREN expression KW_AS typename CLOSE_PAREN - | KW_EXTRACT OPEN_PAREN (extract_arg KW_FROM expression)? CLOSE_PAREN - | KW_NORMALIZE OPEN_PAREN expression (COMMA unicode_normal_form)? CLOSE_PAREN + | KW_EXTRACT OPEN_PAREN (extractArg KW_FROM expression)? CLOSE_PAREN + | KW_NORMALIZE OPEN_PAREN expression (COMMA unicodeNormalForm)? CLOSE_PAREN | KW_OVERLAY OPEN_PAREN ( expression KW_PLACING expression KW_FROM expression (KW_FOR expression)? ) CLOSE_PAREN | KW_POSITION OPEN_PAREN (primaryExpression KW_IN primaryExpression)? CLOSE_PAREN - | KW_SUBSTRING OPEN_PAREN substr_list? CLOSE_PAREN - | KW_TRIM OPEN_PAREN (KW_BOTH | KW_LEADING | KW_TRAILING)? ((expression? KW_FROM)? expr_list) CLOSE_PAREN + | KW_SUBSTRING OPEN_PAREN substrList? CLOSE_PAREN + | KW_TRIM OPEN_PAREN (KW_BOTH | KW_LEADING | KW_TRAILING)? ((expression? KW_FROM)? exprList) CLOSE_PAREN | KW_NULLIF OPEN_PAREN expression COMMA expression CLOSE_PAREN - | (KW_COALESCE | KW_GREATEST | KW_LEAST | KW_XMLCONCAT) execute_param_clause + | (KW_COALESCE | KW_GREATEST | KW_LEAST | KW_XMLCONCAT) executeParamClause | KW_XMLELEMENT OPEN_PAREN KW_NAME colLabel ( - COMMA ((KW_XMLATTRIBUTES OPEN_PAREN xml_attribute_list CLOSE_PAREN) | expr_list) + COMMA ((KW_XMLATTRIBUTES OPEN_PAREN xmlAttributeList CLOSE_PAREN) | exprList) )? CLOSE_PAREN | KW_XMLEXISTS OPEN_PAREN primaryExpression xmlExistsArgument CLOSE_PAREN - | KW_XMLFOREST OPEN_PAREN xml_attribute_list CLOSE_PAREN - | KW_XMLPARSE OPEN_PAREN document_or_content expression ( - (KW_PRESERVE | KW_STRIP) KW_WHITESPACE - )? CLOSE_PAREN + | KW_XMLFOREST OPEN_PAREN xmlAttributeList CLOSE_PAREN + | KW_XMLPARSE OPEN_PAREN documentOrContent expression ((KW_PRESERVE | KW_STRIP) KW_WHITESPACE)? CLOSE_PAREN | KW_XMLPI OPEN_PAREN KW_NAME colLabel (COMMA expression)? CLOSE_PAREN | KW_XMLROOT OPEN_PAREN KW_XML expression COMMA KW_VERSION (( KW_NO KW_VALUE) | expression) ( COMMA KW_STANDALONE ((KW_NO? KW_VALUE) | KW_YES) )? CLOSE_PAREN - | KW_XMLSERIALIZE OPEN_PAREN document_or_content expression KW_AS simpleTypeName CLOSE_PAREN + | KW_XMLSERIALIZE OPEN_PAREN documentOrContent expression KW_AS simpleTypeName CLOSE_PAREN ; -xml_attribute_list - : xml_attribute_el (COMMA xml_attribute_el)* +xmlAttributeList + : xmlAttributeEl (COMMA xmlAttributeEl)* ; -xml_attribute_el +xmlAttributeEl : expression (KW_AS colLabel)? ; -document_or_content +documentOrContent : KW_DOCUMENT | KW_CONTENT ; xmlExistsArgument - : KW_PASSING xml_passing_mech? primaryExpression xml_passing_mech? + : KW_PASSING xmlPassingMech? primaryExpression xmlPassingMech? ; -xml_passing_mech +xmlPassingMech : KW_BY (KW_REF | KW_VALUE) ; -window_clause - : KW_WINDOW window_definition (COMMA window_definition)* +windowClause + : KW_WINDOW windowDefinition (COMMA windowDefinition)* ; -window_definition - : colId KW_AS window_specification +windowDefinition + : colId KW_AS windowSpecification ; over_clause - : KW_OVER (window_specification | colId) + : KW_OVER (windowSpecification | colId) ; -window_specification - : OPEN_PAREN colId? (KW_PARTITION KW_BY expr_list)? sort_clause? opt_frame_clause? CLOSE_PAREN +windowSpecification + : OPEN_PAREN colId? (KW_PARTITION KW_BY exprList)? sortClause? optFrameClause? CLOSE_PAREN ; -opt_frame_clause - : (KW_RANGE | KW_ROWS | KW_GROUPS) ((KW_BETWEEN frame_bound KW_AND)? frame_bound) ( +optFrameClause + : (KW_RANGE | KW_ROWS | KW_GROUPS) ((KW_BETWEEN frameBound KW_AND)? frameBound) ( KW_EXCLUDE (KW_CURRENT KW_ROW | KW_GROUP | KW_TIES | KW_NO KW_OTHERS) )? ; -frame_bound +frameBound : (KW_UNBOUNDED | expression) (KW_PRECEDING | KW_FOLLOWING) | KW_CURRENT KW_ROW ; row - : explicit_row - | OPEN_PAREN expr_list COMMA expression CLOSE_PAREN + : explicitRow + | OPEN_PAREN exprList COMMA expression CLOSE_PAREN ; -explicit_row - : KW_ROW OPEN_PAREN expr_list? CLOSE_PAREN +explicitRow + : KW_ROW OPEN_PAREN exprList? CLOSE_PAREN ; -sub_type +subType : KW_ANY | KW_SOME | KW_ALL ; -all_op +allOp : Operator - | mathop + | mathOp ; -mathop +mathOp : PLUS | MINUS | STAR @@ -2575,50 +2533,50 @@ mathop | NOT_EQUALS ; -qual_op +qualOp : Operator - | KW_OPERATOR OPEN_PAREN any_operator CLOSE_PAREN + | KW_OPERATOR OPEN_PAREN anyOperator CLOSE_PAREN ; -qual_all_op - : all_op - | KW_OPERATOR OPEN_PAREN any_operator CLOSE_PAREN +qualAllOp + : allOp + | KW_OPERATOR OPEN_PAREN anyOperator CLOSE_PAREN ; -subquery_Op - : qual_all_op +subqueryOperator + : qualAllOp | KW_NOT? (KW_LIKE | KW_ILIKE) ; -expr_list +exprList : expression (COMMA expression)* ; -column_expr +columnExpr : (OPEN_PAREN expression CLOSE_PAREN) - | column_name + | columnName ; -column_expr_no_paren +columnExprNoParen : expression - | column_name + | columnName ; -func_arg_list - : func_arg_expr (COMMA func_arg_expr)* +funcArgList + : funcArgExpr (COMMA funcArgExpr)* ; -func_arg_expr - : column_name +funcArgExpr + : columnName | expression - | type_function_name ((COLON_EQUALS | EQUALS_GREATER) expression)? + | typeFunctionName ((COLON_EQUALS | EQUALS_GREATER) expression)? ; -array_expr - : OPEN_BRACKET (expr_list | (array_expr (COMMA array_expr)*))? CLOSE_BRACKET +arrayExpr + : OPEN_BRACKET (exprList | (arrayExpr (COMMA arrayExpr)*))? CLOSE_BRACKET ; -extract_arg +extractArg : identifier | KW_YEAR | KW_MONTH @@ -2629,145 +2587,145 @@ extract_arg | stringConst ; -unicode_normal_form +unicodeNormalForm : KW_NFC | KW_NFD | KW_NFKC | KW_NFKD ; -substr_list +substrList : expression KW_FROM expression (KW_FOR expression)? | expression KW_FOR expression (KW_FROM expression)? | expression KW_SIMILAR expression KW_ESCAPE expression - | expr_list + | exprList ; when_clause : KW_WHEN expression KW_THEN expression ; -indirection_el +indirectionEl : DOT (colLabel | STAR) | OPEN_BRACKET (expression | expression? COLON expression?) CLOSE_BRACKET ; indirection - : indirection_el+ + : indirectionEl+ ; -opt_indirection - : indirection_el* +optIndirection + : indirectionEl* ; -target_list - : target_el (COMMA target_el)* +targetList + : targetEl (COMMA targetEl)* ; -target_el - : column_expr_no_paren (KW_AS colLabel | identifier |) # target_label - | STAR # target_star +targetEl + : columnExprNoParen (KW_AS colLabel | identifier |) # target_label + | STAR # target_star ; -qualified_name_list - : qualified_name (COMMA qualified_name)* +qualifiedNameList + : qualifiedName (COMMA qualifiedName)* ; -table_name_list - : table_name (COMMA table_name)* +tableNameList + : tableName (COMMA tableName)* ; -schema_name_list - : schema_name (COMMA schema_name)* +schemaNameList + : schemaName (COMMA schemaName)* ; -database_nameList - : database_name (COMMA database_name)* +databaseNameList + : databaseName (COMMA databaseName)* ; -tablespace_name_create - : qualified_name # tablespaceNameCreate +tableSpaceNameCreate + : qualifiedName ; -tablespace_name - : qualified_name # tablespaceName +tableSpaceName + : qualifiedName ; -table_name_create - : qualified_name # tableNameCreate +tableNameCreate + : qualifiedName ; -table_name - : qualified_name # tableName +tableName + : qualifiedName ; -view_name_create - : qualified_name # viewNameCreate +viewNameCreate + : qualifiedName ; -view_name - : any_name # viewName +viewName + : anyName ; -qualified_name +qualifiedName : colId indirection? ; -tablespace_name_list - : tablespace_name (COMMA tablespace_name)* +tableSpaceNameList + : tableSpaceName (COMMA tableSpaceName)* ; -name_list +nameList : colId (COMMA colId)* ; -database_name_create - : any_name # databaseNameCreate +databaseNameCreate + : anyName ; -database_name - : any_name # databaseName +databaseName + : anyName ; -schema_name - : any_name # schemaName +schemaName + : anyName ; -routine_name_create - : colId # routineNameCreate +routineNameCreate + : colId ; -routine_name - : colId # routineName +routineName + : colId ; -procedure_name - : type_function_name # procedureName - | colId indirection # procedureName +procedureName + : typeFunctionName + | colId indirection ; -procedure_name_create - : type_function_name # procedureNameCreate - | colId indirection # procedureNameCreate +procedureNameCreate + : typeFunctionName + | colId indirection ; -column_name - : colId opt_indirection # columnName - | {this.shouldMatchEmpty()}? # columnNameMatch +columnName + : colId optIndirection + | {this.shouldMatchEmpty()}? ; -column_name_create - : colId # columnNameCreate +columnNameCreate + : colId ; -function_name_create - : type_function_name # functionNameCreate - | colId indirection # functionNameCreate +functionNameCreate + : typeFunctionName + | colId indirection ; -function_name - : type_function_name # functionName - | colId indirection # functionName +functionName + : typeFunctionName + | colId indirection ; stringConst @@ -2793,31 +2751,31 @@ roleSpec | KW_PUBLIC ; -role_list +roleList : roleSpec (COMMA roleSpec)* ; colId : identifier - | col_name_keyword + | colNameKeyword ; -type_function_name +typeFunctionName : identifier - | type_func_name_keyword + | typeFuncNameKeyword ; nonReservedWord : identifier - | col_name_keyword - | type_func_name_keyword + | colNameKeyword + | typeFuncNameKeyword ; colLabel : identifier - | col_name_keyword - | type_func_name_keyword - | reserved_keyword + | colNameKeyword + | typeFuncNameKeyword + | reservedKeyword ; identifier @@ -2827,10 +2785,10 @@ identifier | UnicodeQuotedIdentifier | PLSQLVARIABLENAME | PLSQLIDENTIFIER - | unreserved_keyword + | unreservedKeyword ; -unreserved_keyword +unreservedKeyword : KW_ABORT | KW_ABSOLUTE | KW_ACCESS @@ -3167,7 +3125,7 @@ unreserved_keyword | KW_OUTER ; -col_name_keyword +colNameKeyword : KW_BETWEEN | KW_BIGINT | bit @@ -3221,7 +3179,7 @@ col_name_keyword | KW_XMLTABLE ; -type_func_name_keyword +typeFuncNameKeyword : KW_AUTHORIZATION | KW_BINARY | KW_COLLATION @@ -3247,7 +3205,7 @@ type_func_name_keyword | KW_VERBOSE ; -reserved_keyword +reservedKeyword : KW_ALL | KW_ANALYSE | KW_ANALYZE @@ -3332,132 +3290,130 @@ reserved_keyword | KW_WITH ; -// exception_sect means opt_exception_sect in original grammar, don't be confused! +// exceptionSect means opt_exception_sect in original grammar, don't be confused! -pl_block - : (label_decl? (KW_DECLARE ((decl_statement | KW_DECLARE | label_decl)+)?)?) KW_BEGIN proc_stmt* exception_sect? KW_END any_identifier? +plBlock + : (labelDecl? (KW_DECLARE ((declStatement | KW_DECLARE | labelDecl)+)?)?) KW_BEGIN procStmt* exceptionSect? KW_END anyIdentifier? ; -label_decl - : LESS_LESS any_identifier GREATER_GREATER +labelDecl + : LESS_LESS anyIdentifier GREATER_GREATER ; -decl_statement - : any_identifier ( +declStatement + : anyIdentifier ( KW_ALIAS KW_FOR (PARAM | colId) - | KW_CONSTANT? typename (opt_collate_clause)? (KW_NOT KW_NULL)? ( - ( assign_operator | KW_DEFAULT) sql_expression + | KW_CONSTANT? typename (collateClause)? (KW_NOT KW_NULL)? ( + ( assignOperator | KW_DEFAULT) sqlExpression )? | (KW_NO? KW_SCROLL)? KW_CURSOR ( - OPEN_PAREN decl_cursor_arg (COMMA decl_cursor_arg)* CLOSE_PAREN + OPEN_PAREN declCursorArg (COMMA declCursorArg)* CLOSE_PAREN )? (KW_IS | KW_FOR) selectStmt ) SEMI ; -decl_cursor_arg - : any_identifier typename +declCursorArg + : anyIdentifier typename ; -assign_operator +assignOperator : EQUAL | COLON_EQUALS ; -proc_stmt - : pl_block SEMI - | stmt_return - | stmt_raise - | stmt_assign - | stmt_if - | stmt_case - | stmt_loop_while_for - | stmt_foreach_a - | stmt_exit - | stmt_assert - | stmt_execsql - | stmt_dynexecute - | stmt_perform - | stmt_call - | stmt_getdiag - | stmt_open - | stmt_fetch - | stmt_move - | stmt_close - | stmt_null - | stmt_commit_or_rollback - | stmt_set +procStmt + : plBlock SEMI + | stmtReturn + | stmtRaise + | stmtAssign + | stmtIf + | stmtCase + | stmtLoopWhileFor + | stmtForeach + | stmtExit + | stmtAssert + | stmtExecsql + | stmtDynexecute + | stmtPerform + | stmtCall + | stmtGetdiag + | stmtOpen + | stmtFetch + | stmtMove + | stmtClose + | stmtNull + | stmtCommitOrRollback + | stmtSet ; -stmt_perform - : KW_PERFORM sql_expression SEMI +stmtPerform + : KW_PERFORM sqlExpression SEMI ; -stmt_call - : KW_CALL any_identifier (OPEN_PAREN expr_list? CLOSE_PAREN SEMI)? - | KW_DO any_identifier OPEN_PAREN expr_list? CLOSE_PAREN SEMI +stmtCall + : KW_CALL anyIdentifier (OPEN_PAREN exprList? CLOSE_PAREN SEMI)? + | KW_DO anyIdentifier OPEN_PAREN exprList? CLOSE_PAREN SEMI ; -stmt_assign - : assign_var assign_operator sql_expression SEMI +stmtAssign + : assignVar assignOperator sqlExpression SEMI ; -stmt_getdiag - : KW_GET (KW_CURRENT | KW_STACKED)? KW_DIAGNOSTICS ( - getdiag_list_item (COMMA getdiag_list_item)* - ) SEMI +stmtGetdiag + : KW_GET (KW_CURRENT | KW_STACKED)? KW_DIAGNOSTICS (getdiagListItem (COMMA getdiagListItem)*) SEMI ; -getdiag_list_item - : assign_var assign_operator colId +getdiagListItem + : assignVar assignOperator colId ; -assign_var - : (any_name | PARAM) (OPEN_BRACKET expression CLOSE_BRACKET)* +assignVar + : (anyName | PARAM) (OPEN_BRACKET expression CLOSE_BRACKET)* ; -stmt_if - : KW_IF sql_expression KW_THEN proc_stmt* ((KW_ELSIF expression KW_THEN proc_stmt*)*) stmt_else? KW_END KW_IF SEMI +stmtIf + : KW_IF sqlExpression KW_THEN procStmt* ((KW_ELSIF expression KW_THEN procStmt*)*) stmtElse? KW_END KW_IF SEMI ; -stmt_else - : KW_ELSE proc_stmt* +stmtElse + : KW_ELSE procStmt* ; -stmt_case - : KW_CASE sql_expression? (KW_WHEN expr_list KW_THEN proc_stmt*)+ stmt_else? KW_END KW_CASE SEMI +stmtCase + : KW_CASE sqlExpression? (KW_WHEN exprList KW_THEN procStmt*)+ stmtElse? KW_END KW_CASE SEMI ; -stmt_loop_while_for - : label_decl? ((KW_WHILE expression) | (KW_FOR for_control))? loop_body +stmtLoopWhileFor + : labelDecl? ((KW_WHILE expression) | (KW_FOR forControl))? loopBody ; //TODO: rewrite using read_sql_expression logic? -for_control - : any_name_list KW_IN ( - colId execute_param_clause? +forControl + : anyNameList KW_IN ( + colId executeParamClause? | selectStmt | explainStmt - | KW_EXECUTE expression (KW_USING expr_list)? + | KW_EXECUTE expression (KW_USING exprList)? | KW_REVERSE? expression DOT_DOT expression (KW_BY expression)? ) ; -stmt_foreach_a - : label_decl? KW_FOREACH any_name_list (KW_SLICE Integral)? KW_IN KW_ARRAY expression loop_body +stmtForeach + : labelDecl? KW_FOREACH anyNameList (KW_SLICE Integral)? KW_IN KW_ARRAY expression loopBody ; -stmt_exit - : (KW_EXIT | KW_CONTINUE) any_identifier? (KW_WHEN sql_expression)? SEMI +stmtExit + : (KW_EXIT | KW_CONTINUE) anyIdentifier? (KW_WHEN sqlExpression)? SEMI ; //todo implement RETURN statement according to initial grammar line 1754 -stmt_return +stmtReturn : KW_RETURN ( - KW_NEXT sql_expression - | KW_QUERY ( KW_EXECUTE expression KW_USING expr_list | selectStmt) - | sql_expression? + KW_NEXT sqlExpression + | KW_QUERY ( KW_EXECUTE expression KW_USING exprList | selectStmt) + | sqlExpression? ) SEMI ; @@ -3473,52 +3429,52 @@ stmt_return //RAISE ; -stmt_raise +stmtRaise : KW_RAISE ( (KW_DEBUG | KW_LOG | KW_INFO | KW_NOTICE | KW_WARNING | KW_EXCEPTION)? ( identifier | (KW_SQLSTATE stringConst) | (stringConst ((COMMA expression)+)?) - )? (KW_USING (opt_raise_using_elem (COMMA opt_raise_using_elem)*))? SEMI + )? (KW_USING (optRaiseUsingElem (COMMA optRaiseUsingElem)*))? SEMI )? ; -opt_raise_using_elem +optRaiseUsingElem : identifier EQUAL expression ; -stmt_assert - : KW_ASSERT sql_expression (COMMA sql_expression)? SEMI +stmtAssert + : KW_ASSERT sqlExpression (COMMA sqlExpression)? SEMI ; -loop_body - : KW_LOOP proc_stmt* KW_END KW_LOOP any_identifier? SEMI +loopBody + : KW_LOOP procStmt* KW_END KW_LOOP anyIdentifier? SEMI ; //TODO: looks like all other statements like INSERT/SELECT/UPDATE/DELETE are handled here; //pls take a look at original grammar -stmt_execsql - : stmt opt_execute_into? SEMI +stmtExecsql + : stmt optExecuteInto? SEMI ; //https://www.postgresql.org/docs/current/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-NORESULT //EXECUTE command-string [ INTO [STRICT] target ] [ USING expression [, ... ] ]; -stmt_dynexecute +stmtDynexecute : KW_EXECUTE expression ( - /*this is silly, but i have to time to find nice way to code */ opt_execute_into? ( - KW_USING expr_list + /*this is silly, but i have to time to find nice way to code */ optExecuteInto? ( + KW_USING exprList )? - | (KW_USING expr_list)? opt_execute_into? + | (KW_USING exprList)? optExecuteInto? | //TODO ) SEMI ; -opt_execute_into - : KW_INTO KW_STRICT? expr_list +optExecuteInto + : KW_INTO KW_STRICT? exprList ; //https://www.postgresql.org/docs/current/plpgsql-cursors.html#PLPGSQL-CURSOR-OPENING @@ -3531,19 +3487,17 @@ opt_execute_into //OPEN bound_cursorvar [ ( [ argument_name := ] argument_value [, ...] ) ]; -stmt_open +stmtOpen : KW_OPEN ( - cursor_variable (KW_NO? KW_SCROLL)? KW_FOR ( + cursorVariable (KW_NO? KW_SCROLL)? KW_FOR ( selectStmt - | KW_EXECUTE sql_expression (KW_USING expr_list)? + | KW_EXECUTE sqlExpression (KW_USING exprList)? ) - | colId ( - OPEN_PAREN (opt_open_bound_list_item (COMMA opt_open_bound_list_item)*) CLOSE_PAREN - )? + | colId (OPEN_PAREN (optOpenBoundListItem (COMMA optOpenBoundListItem)*) CLOSE_PAREN)? ) SEMI ; -opt_open_bound_list_item +optOpenBoundListItem : (colId COLON_EQUALS)? expression ; @@ -3551,11 +3505,11 @@ opt_open_bound_list_item //FETCH [ direction { KW_FROM | IN } ] cursor INTO target; -stmt_fetch - : KW_FETCH direction= opt_fetch_direction? from_in? cursor_variable KW_INTO expr_list SEMI +stmtFetch + : KW_FETCH direction= optFetchFirection? fromIn? cursorVariable KW_INTO exprList SEMI ; -opt_fetch_direction +optFetchFirection : KW_NEXT | KW_PRIOR | KW_FIRST @@ -3569,35 +3523,35 @@ opt_fetch_direction //MOVE [ direction { KW_FROM | IN } ] cursor; -stmt_move - : KW_MOVE opt_fetch_direction? cursor_variable SEMI +stmtMove + : KW_MOVE optFetchFirection? cursorVariable SEMI ; mergeStmt - : with_clause? KW_MERGE KW_INTO (KW_ONLY)? table_name (STAR)? (KW_AS? colId)? KW_USING data_source KW_ON expression merge_when_clause+ + : withClause? KW_MERGE KW_INTO (KW_ONLY)? tableName (STAR)? (KW_AS? colId)? KW_USING dataSource KW_ON expression mergeWhenClause+ returningClause? ; -data_source - : ((KW_ONLY)? table_name (STAR)? | ( select_no_parens | values_clause)) (KW_AS? colId)? +dataSource + : ((KW_ONLY)? tableName (STAR)? | ( selectNoParens | valuesClause)) (KW_AS? colId)? ; -merge_when_clause - : KW_WHEN KW_MATCHED (KW_AND expression)? KW_THEN (merge_update | KW_DELETE | KW_DO KW_NOTHING) - | KW_WHEN KW_NOT KW_MATCHED (KW_AND expression)? KW_THEN (merge_insert | KW_DO KW_NOTHING) +mergeWhenClause + : KW_WHEN KW_MATCHED (KW_AND expression)? KW_THEN (mergeUpdate | KW_DELETE | KW_DO KW_NOTHING) + | KW_WHEN KW_NOT KW_MATCHED (KW_AND expression)? KW_THEN (mergeInsert | KW_DO KW_NOTHING) ; -merge_insert - : KW_INSERT (opt_column_list)? (KW_OVERRIDING (KW_SYSTEM | KW_USER) KW_VALUE)? default_values_or_values +mergeInsert + : KW_INSERT (optColumnList)? (KW_OVERRIDING (KW_SYSTEM | KW_USER) KW_VALUE)? defaultValuesOrValues ; -merge_update +mergeUpdate : KW_UPDATE KW_SET ( - column_name EQUAL exprofdefault - | opt_column_list EQUAL OPEN_PAREN exprofdefault (COMMA exprofdefault)* CLOSE_PAREN + columnName EQUAL exprofdefault + | optColumnList EQUAL OPEN_PAREN exprofdefault (COMMA exprofdefault)* CLOSE_PAREN )+ ; -default_values_or_values +defaultValuesOrValues : KW_VALUES OPEN_PAREN exprofdefault (COMMA exprofdefault)* CLOSE_PAREN | KW_DEFAULT KW_VALUES ; @@ -3607,42 +3561,42 @@ exprofdefault | KW_DEFAULT ; -stmt_close - : KW_CLOSE cursor_variable SEMI +stmtClose + : KW_CLOSE cursorVariable SEMI ; -stmt_null +stmtNull : KW_NULL SEMI ; -stmt_commit_or_rollback +stmtCommitOrRollback : (KW_COMMIT | KW_ROLLBACK) (KW_AND KW_NO? KW_CHAIN)? SEMI ; -stmt_set - : KW_SET any_name KW_TO KW_DEFAULT SEMI - | KW_RESET (any_name | KW_ALL) SEMI +stmtSet + : KW_SET anyName KW_TO KW_DEFAULT SEMI + | KW_RESET (anyName | KW_ALL) SEMI ; -cursor_variable +cursorVariable : colId | PARAM ; -exception_sect - : KW_EXCEPTION (KW_WHEN (proc_condition (KW_OR proc_condition)*) KW_THEN proc_stmt*)+ +exceptionSect + : KW_EXCEPTION (KW_WHEN (procCondition (KW_OR procCondition)*) KW_THEN procStmt*)+ ; -proc_condition - : any_identifier +procCondition + : anyIdentifier | KW_SQLSTATE stringConst ; -any_identifier +anyIdentifier : colId - | unreserved_keyword + | unreservedKeyword ; -sql_expression - : target_list? into_clause? from_clause? where_clause? group_clause? (KW_HAVING expression)? window_clause? +sqlExpression + : targetList? intoClause? fromClause? whereClause? groupClause? (KW_HAVING expression)? windowClause? ; \ No newline at end of file diff --git a/src/lib/postgresql/PostgreSqlParser.interp b/src/lib/postgresql/PostgreSqlParser.interp index 5706ac650..286970b88 100644 --- a/src/lib/postgresql/PostgreSqlParser.interp +++ b/src/lib/postgresql/PostgreSqlParser.interp @@ -1202,27 +1202,27 @@ createUserStmt alterRoleStmt alterRoleSetStmt alterRoutineStmt -alter_routine_clause -routine_action +alterRoutineClause +routineAction createGroupStmt alterGroupStmt createSchemaStmt -schema_name_create -schema_stmt +schemaNameCreate +schemaStmt variableSetStmt -set_rest -generic_set -set_rest_more -var_name -var_list -var_value -iso_level -opt_boolean_or_string_column -opt_boolean_or_string -zone_value +setRest +genericSet +setRestMore +varName +varList +varValue +isoLevel +optBooleanOrStringColumn +booleanOrString +zoneValue nonReservedWordOrStringConst variableResetStmt -reset_rest +resetRest setOrResetClause functionSetOrResetClause variableShowStmt @@ -1230,28 +1230,24 @@ constraintsSetStmt checkPointStmt discardStmt alterTableStmt -alter_table_cmds -partition_bound_spec -partition_bound_clause -partition_bound_choose -partition_with_clause -partition_cmd -index_partition_cmd -alter_table_cmd -alter_column_default -opt_drop_behavior -opt_collate_clause +alterTableCmds +partitionCmd +indexPartitionCmd +alterTableCmd +alterColumnDefault +optDropBehavior +collateClause relOptions optRelOptions relOptionElem partitionBoundSpec alterCompositeTypeStmt -alter_type_cmd +alterTypeCmd closePortalStmt copyStmt copyOptionsNoparens copyOptions -copy_generic_opt_elem +copyGenericOptElem createStmt optTemp optTypedTableElEmentList @@ -1261,23 +1257,23 @@ typedTableElement column_def colConstraint colConstraintElem -generated_when +generatedWhen tableLikeOption constraintElem -opt_column_list -opt_column_list_create -column_list -opt_c_include -key_match +optColumnList +columnListCreate +columnList +columnListInclude +keyMatch exclusionConstraintElem -key_actions -key_update -key_delete -key_action +keyActions +keyUpdate +keyDelete +keyAction optInherit partitionSpec -part_elem -table_access_method_clause +partElem +tableAccessMethodClause optWith onCommitOption optTableSpace @@ -1286,8 +1282,8 @@ existingIndex createStatsStmt alterStatsStmt createAsStmt -create_as_target -opt_with_data +createAsTarget +optWithData createMaterializedViewStmt refreshMaterializedViewStmt createSeqStmt @@ -1300,14 +1296,14 @@ createExtensionStmt alterExtensionStmt alterExtensionContentsStmt createFdwStmt -fdw_option +fdwOption alterFdwStmt -create_generic_options -alter_generic_options -alter_generic_option_elem -generic_option_elem +createGenericOptions +alterGenericOptions +alterGenericOptionElem +genericOptionElem createForeignServerStmt -foreign_server_version +foreignServerVersion alterForeignServerStmt createForeignTableStmt importForeignSchemaStmt @@ -1316,7 +1312,7 @@ alterUserMappingStmt createPolicyStmt alterPolicyStmt alterProcedureStmt -procedure_action +procedureAction rowSecurityOptionalExpr rowSecurityOptionalWithCheck createAccessMethodStmt @@ -1325,21 +1321,21 @@ triggerActionTime triggerEvents triggerOneEvent triggerWhen -function_or_procedure +functionOrProcedure triggerFuncArgs triggerFuncArg constraintAttributeElem createEventTrigStmt -event_trigger_when_item +eventTriggerWhenItem alterEventTrigStmt createAssertionStmt defineStmt definition -def_elem -def_arg -old_aggregate_elem +defElem +defArg +oldAggregateElem alterEnumStmt -opt_if_not_exists +ifNotExists createOperatorClassStmt opClassItem createOperatorFamilyStmt @@ -1347,73 +1343,73 @@ alterOperatorFamilyStmt opClassDrop reassignOwnedStmt dropStmt -object_type_any_name -object_type_name -any_name_list -any_name +objectTypeAnyName +objectTypeName +anyNameList +anyName attrs truncateStmt -truncate_table +truncateTable commentStmt secLabelStmt fetchStmt fetch_args -from_in +fromIn grantStmt revokeStmt privileges beforePrivilegeSelect privilege -privilege_target -grantee_list +privilegeTarget +granteeList grantRoleStmt revokeRoleStmt alterDefaultPrivilegesStmt defaclaction -defacl_privilege_target +defaclPrivilegeTarget indexStmt -index_params -index_elem +indexParams +indexElem createFunctionStmt -opt_or_replace -func_args -func_args_list +orReplaceOpt +funcArgs +funcArgsList routineWithArgTypesList routineWithArgTypes procedureWithArgTypesList procedureWithArgTypes functionWithArgTypesList functionWithArgTypes -func_arg -arg_class -func_type -func_arg_with_default -aggregate_args +funcArg +argClass +funcType +funcArgWithDefault +aggregateArgs aggregateWithArgTypes -common_func_opt_item -create_func_opt_item -opt_definition -table_func_column +commonFuncOptItem +createFuncOptItem +optDefinition +tableFuncColumn alterFunctionStmt removeFuncStmt removeAggregateStmt removeOperatorStmt operatorArgTypes -any_operator +anyOperator operatorWithArgTypes doStmt createCastStmt -opt_if_exists +ifExists createTransformStmt -sql_with_function +sqlWithFunction reindexStmt alterTblSpcStmt renameStmt alterObjectDependsStmt alterObjectSchemaStmt alterOperatorStmt -operator_def_list -operator_def_elem +operatorDefList +operatorDefElem alterTypeStmt alterOwnerStmt createPublicationStmt @@ -1423,17 +1419,17 @@ alterSubscriptionStmt ruleStmt ruleActionStmt notifyStmt -notify_payload +notifyPayload listenStmt unListenStmt transactionStmt -opt_transaction -transaction_mode_item -transaction_mode_list +optTransaction +transactionModeItem +transactionModeList viewStmt loadStmt createDbStmt -create_db_opt_item +createDbOptItem alterDatabaseStmt alterDatabaseSetStmt alterCollationStmt @@ -1446,219 +1442,219 @@ createConversionStmt clusterStmt vacuumStmt analyzeStmt -analyze_keyword -vac_analyze_option_elem -analyze_option_elem -opt_verbose -vacuum_relation -vacuum_relation_list +analyzeKeyword +vacAnalyzeOptionElem +analyzeOptionElem +optVerbose +vacuumRelation +vacuumRelationList explainStmt explainableStmt -explain_option_list +explainOptionList prepareStmt -prep_type_clause +prepTypeClause preParableStmt executeStmt -execute_param_clause +executeParamClause dealLocateStmt insertStmt -insert_rest -insert_column_list -insert_column_item -returning_clause +insertRest +insertColumnList +insertColumnItem +returningClause deleteStmt lockStmt updateStmt -set_clause_list -set_clause +setClauseList +setClause declareCursorStmt selectStmt -select_with_parens -select_no_parens -select_clause -simple_select -set_operator_with_all_or_distinct -with_clause -common_table_expr -search_clause -cycle_clause -into_clause +selectWithParens +selectNoParens +selectClause +simpleSelect +setOperatorWithAllOrDistinct +withClause +commonTableExpr +searchClause +cycleClause +intoClause optTempTableName -distinct_clause -sort_clause +distinctClause +sortClause sortBy -select_limit -limit_clause -fetch_clause -offset_clause -select_fetch_first_value -group_clause -group_by_list -group_by_item -for_locking_clause -values_clause -from_clause -from_list -table_ref -alias_clause -func_alias_clause -join_type -join_qual -relation_expr -publication_relation_expr -relation_expr_list -relation_expr_opt_alias +selectLimit +limitClause +fetchClause +offsetClause +selectFetchFirstValue +groupClause +groupByList +groupByItem +forLockingClause +valuesClause +fromClause +fromList +tableRef +aliasClause +funcAliasClause +joinType +joinQual +relationExpr +publicationRelationExpr +relationExprList +relationExprOptAlias tableSampleClause -func_table +funcTable rowsFromItem -where_clause -where_or_current_clause +whereClause +whereOrCurrentClause tableFuncElementList tableFuncElement xmlTable xmlTableColumnEl -xml_namespace_el +xmlNamespaceEle typename simpleTypeName constTypeName numeric -opt_float +optFloat bit character constDatetime -opt_interval -interval_second +optInterval +intervalSecond comparisonOperator expression booleanExpression predicate valueExpression primaryExpression -func_application +funcApplication func_expr -func_expr_windowless -func_expr_common_subexpr -xml_attribute_list -xml_attribute_el -document_or_content +funcExprWindowless +funcExprCommonSubExpr +xmlAttributeList +xmlAttributeEl +documentOrContent xmlExistsArgument -xml_passing_mech -window_clause -window_definition +xmlPassingMech +windowClause +windowDefinition over_clause -window_specification -opt_frame_clause -frame_bound +windowSpecification +optFrameClause +frameBound row -explicit_row -sub_type -all_op -mathop -qual_op -qual_all_op -subquery_Op -expr_list -column_expr -column_expr_no_paren -func_arg_list -func_arg_expr -array_expr -extract_arg -unicode_normal_form -substr_list +explicitRow +subType +allOp +mathOp +qualOp +qualAllOp +subqueryOperator +exprList +columnExpr +columnExprNoParen +funcArgList +funcArgExpr +arrayExpr +extractArg +unicodeNormalForm +substrList when_clause -indirection_el +indirectionEl indirection -opt_indirection -target_list -target_el -qualified_name_list -table_name_list -schema_name_list -database_nameList -tablespace_name_create -tablespace_name -table_name_create -table_name -view_name_create -view_name -qualified_name -tablespace_name_list -name_list -database_name_create -database_name -schema_name -routine_name_create -routine_name -procedure_name -procedure_name_create -column_name -column_name_create -function_name_create -function_name +optIndirection +targetList +targetEl +qualifiedNameList +tableNameList +schemaNameList +databaseNameList +tableSpaceNameCreate +tableSpaceName +tableNameCreate +tableName +viewNameCreate +viewName +qualifiedName +tableSpaceNameList +nameList +databaseNameCreate +databaseName +schemaName +routineNameCreate +routineName +procedureName +procedureNameCreate +columnName +columnNameCreate +functionNameCreate +functionName stringConst anysconst signedConst roleSpec -role_list +roleList colId -type_function_name +typeFunctionName nonReservedWord colLabel identifier -unreserved_keyword -col_name_keyword -type_func_name_keyword -reserved_keyword -pl_block -label_decl -decl_statement -decl_cursor_arg -assign_operator -proc_stmt -stmt_perform -stmt_call -stmt_assign -stmt_getdiag -getdiag_list_item -assign_var -stmt_if -stmt_else -stmt_case -stmt_loop_while_for -for_control -stmt_foreach_a -stmt_exit -stmt_return -stmt_raise -opt_raise_using_elem -stmt_assert -loop_body -stmt_execsql -stmt_dynexecute -opt_execute_into -stmt_open -opt_open_bound_list_item -stmt_fetch -opt_fetch_direction -stmt_move +unreservedKeyword +colNameKeyword +typeFuncNameKeyword +reservedKeyword +plBlock +labelDecl +declStatement +declCursorArg +assignOperator +procStmt +stmtPerform +stmtCall +stmtAssign +stmtGetdiag +getdiagListItem +assignVar +stmtIf +stmtElse +stmtCase +stmtLoopWhileFor +forControl +stmtForeach +stmtExit +stmtReturn +stmtRaise +optRaiseUsingElem +stmtAssert +loopBody +stmtExecsql +stmtDynexecute +optExecuteInto +stmtOpen +optOpenBoundListItem +stmtFetch +optFetchFirection +stmtMove mergeStmt -data_source -merge_when_clause -merge_insert -merge_update -default_values_or_values +dataSource +mergeWhenClause +mergeInsert +mergeUpdate +defaultValuesOrValues exprofdefault -stmt_close -stmt_null -stmt_commit_or_rollback -stmt_set -cursor_variable -exception_sect -proc_condition -any_identifier -sql_expression +stmtClose +stmtNull +stmtCommitOrRollback +stmtSet +cursorVariable +exceptionSect +procCondition +anyIdentifier +sqlExpression atn: -[4, 1, 593, 8518, 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, 1, 0, 5, 0, 936, 8, 0, 10, 0, 12, 0, 939, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, 945, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1065, 8, 2, 3, 2, 1067, 8, 2, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 1076, 8, 4, 1, 4, 5, 4, 1079, 8, 4, 10, 4, 12, 4, 1082, 9, 4, 1, 5, 1, 5, 1, 5, 3, 5, 1087, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 1122, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 1132, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 1138, 8, 7, 1, 7, 5, 7, 1141, 8, 7, 10, 7, 12, 7, 1144, 9, 7, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 1150, 8, 8, 1, 8, 5, 8, 1153, 8, 8, 10, 8, 12, 8, 1156, 9, 8, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 1162, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 1173, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 5, 11, 1179, 8, 11, 10, 11, 12, 11, 1182, 9, 11, 1, 11, 3, 11, 1185, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 1197, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 1203, 8, 11, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1209, 8, 12, 1, 12, 1, 12, 3, 12, 1213, 8, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1218, 8, 12, 1, 12, 1, 12, 3, 12, 1222, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1235, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1245, 8, 12, 3, 12, 1247, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 1253, 8, 13, 1, 13, 5, 13, 1256, 8, 13, 10, 13, 12, 13, 1259, 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 3, 15, 1271, 8, 15, 1, 15, 3, 15, 1274, 8, 15, 1, 15, 1, 15, 1, 15, 3, 15, 1279, 8, 15, 1, 15, 5, 15, 1282, 8, 15, 10, 15, 12, 15, 1285, 9, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 1295, 8, 17, 1, 18, 1, 18, 3, 18, 1299, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 1311, 8, 19, 1, 20, 1, 20, 3, 20, 1315, 8, 20, 1, 20, 3, 20, 1318, 8, 20, 1, 20, 1, 20, 3, 20, 1322, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 1334, 8, 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, 21, 1, 21, 1, 21, 3, 21, 1352, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 1357, 8, 22, 10, 22, 12, 22, 1360, 9, 22, 1, 23, 1, 23, 1, 23, 5, 23, 1365, 8, 23, 10, 23, 12, 23, 1368, 9, 23, 1, 24, 1, 24, 3, 24, 1372, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1379, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1387, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 1393, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1401, 8, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1409, 8, 28, 1, 29, 1, 29, 3, 29, 1413, 8, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 1427, 8, 31, 1, 32, 1, 32, 1, 32, 3, 32, 1432, 8, 32, 1, 33, 1, 33, 1, 33, 3, 33, 1437, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 1449, 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 1455, 8, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 3, 38, 1467, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1472, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1482, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1488, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1493, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1501, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1506, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1513, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1518, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1523, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1533, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1538, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1543, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1550, 8, 38, 1, 38, 1, 38, 3, 38, 1554, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1568, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1574, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1580, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1585, 8, 38, 1, 39, 1, 39, 1, 39, 5, 39, 1590, 8, 39, 10, 39, 12, 39, 1593, 9, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 1604, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 5, 41, 1610, 8, 41, 10, 41, 12, 41, 1613, 9, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 3, 42, 1620, 8, 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, 3, 44, 1636, 8, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 3, 46, 1645, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 5, 46, 1652, 8, 46, 10, 46, 12, 46, 1655, 9, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1663, 8, 46, 1, 46, 1, 46, 3, 46, 1667, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1679, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1687, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1697, 8, 46, 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, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1717, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1722, 8, 46, 1, 46, 3, 46, 1725, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1732, 8, 46, 1, 46, 3, 46, 1735, 8, 46, 1, 46, 1, 46, 3, 46, 1739, 8, 46, 1, 46, 1, 46, 3, 46, 1743, 8, 46, 1, 46, 3, 46, 1746, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1751, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1756, 8, 46, 1, 46, 1, 46, 3, 46, 1760, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1769, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1775, 8, 46, 1, 46, 1, 46, 3, 46, 1779, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1788, 8, 46, 1, 46, 3, 46, 1791, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1797, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1806, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 1816, 8, 46, 11, 46, 12, 46, 1817, 1, 46, 1, 46, 3, 46, 1822, 8, 46, 1, 46, 1, 46, 3, 46, 1826, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1831, 8, 46, 1, 46, 3, 46, 1834, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1840, 8, 46, 4, 46, 1842, 8, 46, 11, 46, 12, 46, 1843, 1, 46, 1, 46, 3, 46, 1848, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1854, 8, 46, 1, 46, 1, 46, 3, 46, 1858, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1863, 8, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1868, 8, 46, 1, 46, 1, 46, 3, 46, 1872, 8, 46, 1, 46, 3, 46, 1875, 8, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1882, 8, 47, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 5, 50, 1893, 8, 50, 10, 50, 12, 50, 1896, 9, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 1908, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 1932, 8, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 1940, 8, 54, 10, 54, 12, 54, 1943, 9, 54, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1949, 8, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1954, 8, 55, 1, 55, 1, 55, 3, 55, 1958, 8, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1965, 8, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1970, 8, 55, 1, 55, 3, 55, 1973, 8, 55, 3, 55, 1975, 8, 55, 1, 56, 1, 56, 1, 56, 3, 56, 1980, 8, 56, 1, 57, 1, 57, 3, 57, 1984, 8, 57, 1, 57, 1, 57, 3, 57, 1988, 8, 57, 1, 57, 1, 57, 3, 57, 1992, 8, 57, 1, 57, 1, 57, 1, 57, 3, 57, 1997, 8, 57, 1, 57, 3, 57, 2000, 8, 57, 1, 57, 1, 57, 3, 57, 2004, 8, 57, 1, 57, 3, 57, 2007, 8, 57, 1, 57, 1, 57, 3, 57, 2011, 8, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 3, 57, 2019, 8, 57, 1, 57, 1, 57, 1, 57, 3, 57, 2024, 8, 57, 1, 57, 3, 57, 2027, 8, 57, 1, 57, 1, 57, 3, 57, 2031, 8, 57, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2037, 8, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2046, 8, 58, 1, 58, 1, 58, 3, 58, 2050, 8, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2060, 8, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2065, 8, 58, 5, 58, 2067, 8, 58, 10, 58, 12, 58, 2070, 9, 58, 1, 58, 3, 58, 2073, 8, 58, 5, 58, 2075, 8, 58, 10, 58, 12, 58, 2078, 9, 58, 1, 59, 1, 59, 1, 59, 1, 59, 3, 59, 2084, 8, 59, 1, 59, 1, 59, 1, 59, 3, 59, 2089, 8, 59, 5, 59, 2091, 8, 59, 10, 59, 12, 59, 2094, 9, 59, 1, 59, 1, 59, 3, 59, 2098, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 5, 60, 2108, 8, 60, 10, 60, 12, 60, 2111, 9, 60, 1, 60, 1, 60, 3, 60, 2115, 8, 60, 1, 61, 1, 61, 3, 61, 2119, 8, 61, 1, 61, 1, 61, 3, 61, 2123, 8, 61, 1, 61, 1, 61, 1, 61, 3, 61, 2128, 8, 61, 1, 61, 1, 61, 3, 61, 2132, 8, 61, 1, 61, 3, 61, 2135, 8, 61, 1, 61, 3, 61, 2138, 8, 61, 1, 61, 3, 61, 2141, 8, 61, 1, 61, 3, 61, 2144, 8, 61, 1, 61, 3, 61, 2147, 8, 61, 1, 61, 1, 61, 1, 61, 3, 61, 2152, 8, 61, 1, 61, 3, 61, 2155, 8, 61, 1, 61, 3, 61, 2158, 8, 61, 1, 61, 3, 61, 2161, 8, 61, 1, 61, 3, 61, 2164, 8, 61, 1, 61, 3, 61, 2167, 8, 61, 1, 61, 1, 61, 1, 61, 1, 61, 3, 61, 2173, 8, 61, 1, 61, 1, 61, 3, 61, 2177, 8, 61, 1, 61, 3, 61, 2180, 8, 61, 1, 61, 3, 61, 2183, 8, 61, 1, 61, 3, 61, 2186, 8, 61, 1, 61, 3, 61, 2189, 8, 61, 3, 61, 2191, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 3, 62, 2198, 8, 62, 1, 63, 1, 63, 1, 63, 1, 63, 5, 63, 2204, 8, 63, 10, 63, 12, 63, 2207, 9, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 5, 64, 2214, 8, 64, 10, 64, 12, 64, 2217, 9, 64, 1, 65, 1, 65, 3, 65, 2221, 8, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 5, 65, 2229, 8, 65, 10, 65, 12, 65, 2232, 9, 65, 3, 65, 2234, 8, 65, 1, 66, 1, 66, 1, 66, 3, 66, 2239, 8, 66, 1, 66, 5, 66, 2242, 8, 66, 10, 66, 12, 66, 2245, 9, 66, 1, 66, 1, 66, 3, 66, 2249, 8, 66, 1, 66, 3, 66, 2252, 8, 66, 1, 67, 1, 67, 1, 67, 3, 67, 2257, 8, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 3, 67, 2266, 8, 67, 3, 67, 2268, 8, 67, 1, 67, 1, 67, 3, 67, 2272, 8, 67, 1, 67, 3, 67, 2275, 8, 67, 1, 67, 1, 67, 3, 67, 2279, 8, 67, 1, 67, 5, 67, 2282, 8, 67, 10, 67, 12, 67, 2285, 9, 67, 1, 68, 1, 68, 3, 68, 2289, 8, 68, 1, 68, 1, 68, 3, 68, 2293, 8, 68, 1, 68, 3, 68, 2296, 8, 68, 1, 68, 1, 68, 3, 68, 2300, 8, 68, 1, 69, 3, 69, 2303, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2308, 8, 69, 1, 69, 3, 69, 2311, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2316, 8, 69, 1, 69, 3, 69, 2319, 8, 69, 1, 69, 1, 69, 3, 69, 2323, 8, 69, 1, 69, 3, 69, 2326, 8, 69, 1, 69, 3, 69, 2329, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2334, 8, 69, 1, 69, 3, 69, 2337, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2345, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 4, 69, 2355, 8, 69, 11, 69, 12, 69, 2356, 1, 69, 1, 69, 3, 69, 2361, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2368, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 2373, 8, 69, 1, 69, 3, 69, 2376, 8, 69, 1, 69, 3, 69, 2379, 8, 69, 1, 69, 3, 69, 2382, 8, 69, 1, 70, 1, 70, 1, 70, 3, 70, 2387, 8, 70, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 5, 72, 2396, 8, 72, 10, 72, 12, 72, 2399, 9, 72, 1, 72, 1, 72, 1, 72, 3, 72, 2404, 8, 72, 1, 72, 1, 72, 3, 72, 2408, 8, 72, 1, 72, 3, 72, 2411, 8, 72, 1, 72, 3, 72, 2414, 8, 72, 1, 72, 5, 72, 2417, 8, 72, 10, 72, 12, 72, 2420, 9, 72, 1, 72, 1, 72, 5, 72, 2424, 8, 72, 10, 72, 12, 72, 2427, 9, 72, 3, 72, 2429, 8, 72, 1, 72, 1, 72, 3, 72, 2433, 8, 72, 1, 72, 1, 72, 1, 72, 1, 72, 5, 72, 2439, 8, 72, 10, 72, 12, 72, 2442, 9, 72, 1, 72, 1, 72, 3, 72, 2446, 8, 72, 1, 72, 3, 72, 2449, 8, 72, 1, 72, 3, 72, 2452, 8, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 3, 72, 2459, 8, 72, 1, 72, 5, 72, 2462, 8, 72, 10, 72, 12, 72, 2465, 9, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 3, 72, 2473, 8, 72, 1, 72, 3, 72, 2476, 8, 72, 1, 72, 3, 72, 2479, 8, 72, 1, 72, 5, 72, 2482, 8, 72, 10, 72, 12, 72, 2485, 9, 72, 3, 72, 2487, 8, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 5, 74, 2497, 8, 74, 10, 74, 12, 74, 2500, 9, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 5, 75, 2507, 8, 75, 10, 75, 12, 75, 2510, 9, 75, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 3, 78, 2526, 8, 78, 1, 79, 1, 79, 3, 79, 2530, 8, 79, 1, 79, 1, 79, 3, 79, 2534, 8, 79, 3, 79, 2536, 8, 79, 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, 3, 82, 2553, 8, 82, 3, 82, 2555, 8, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 5, 84, 2569, 8, 84, 10, 84, 12, 84, 2572, 9, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 3, 85, 2582, 8, 85, 1, 85, 3, 85, 2585, 8, 85, 1, 85, 3, 85, 2588, 8, 85, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 2597, 8, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 3, 88, 2606, 8, 88, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 3, 92, 2622, 8, 92, 1, 92, 3, 92, 2625, 8, 92, 1, 92, 3, 92, 2628, 8, 92, 1, 92, 1, 92, 1, 92, 1, 92, 5, 92, 2634, 8, 92, 10, 92, 12, 92, 2637, 9, 92, 1, 92, 3, 92, 2640, 8, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 3, 93, 2647, 8, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 3, 94, 2656, 8, 94, 1, 94, 1, 94, 3, 94, 2660, 8, 94, 1, 94, 1, 94, 1, 94, 1, 94, 3, 94, 2666, 8, 94, 1, 95, 1, 95, 3, 95, 2670, 8, 95, 1, 95, 3, 95, 2673, 8, 95, 1, 95, 3, 95, 2676, 8, 95, 1, 95, 3, 95, 2679, 8, 95, 1, 95, 3, 95, 2682, 8, 95, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 2688, 8, 96, 1, 97, 1, 97, 3, 97, 2692, 8, 97, 1, 97, 1, 97, 1, 97, 3, 97, 2697, 8, 97, 1, 97, 1, 97, 3, 97, 2701, 8, 97, 1, 97, 3, 97, 2704, 8, 97, 1, 97, 3, 97, 2707, 8, 97, 1, 97, 3, 97, 2710, 8, 97, 1, 97, 1, 97, 1, 97, 3, 97, 2715, 8, 97, 1, 98, 1, 98, 1, 98, 1, 98, 3, 98, 2721, 8, 98, 1, 98, 1, 98, 3, 98, 2725, 8, 98, 1, 99, 1, 99, 3, 99, 2729, 8, 99, 1, 99, 1, 99, 3, 99, 2733, 8, 99, 1, 99, 1, 99, 4, 99, 2737, 8, 99, 11, 99, 12, 99, 2738, 3, 99, 2741, 8, 99, 1, 100, 1, 100, 1, 100, 3, 100, 2746, 8, 100, 1, 100, 1, 100, 4, 100, 2750, 8, 100, 11, 100, 12, 100, 2751, 1, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2758, 8, 101, 1, 101, 1, 101, 3, 101, 2762, 8, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2777, 8, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2782, 8, 101, 1, 101, 3, 101, 2785, 8, 101, 3, 101, 2787, 8, 101, 1, 102, 3, 102, 2790, 8, 102, 1, 102, 1, 102, 3, 102, 2794, 8, 102, 1, 103, 1, 103, 3, 103, 2798, 8, 103, 1, 103, 3, 103, 2801, 8, 103, 1, 103, 3, 103, 2804, 8, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 3, 103, 2812, 8, 103, 1, 103, 1, 103, 1, 103, 1, 103, 3, 103, 2818, 8, 103, 3, 103, 2820, 8, 103, 1, 104, 1, 104, 1, 104, 1, 104, 3, 104, 2826, 8, 104, 1, 104, 1, 104, 1, 104, 3, 104, 2831, 8, 104, 1, 105, 1, 105, 1, 105, 3, 105, 2836, 8, 105, 1, 105, 1, 105, 3, 105, 2840, 8, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 5, 105, 2847, 8, 105, 10, 105, 12, 105, 2850, 9, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 5, 106, 2858, 8, 106, 10, 106, 12, 106, 2861, 9, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 2899, 8, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 4, 108, 2907, 8, 108, 11, 108, 12, 108, 2908, 3, 108, 2911, 8, 108, 1, 108, 3, 108, 2914, 8, 108, 1, 109, 1, 109, 3, 109, 2918, 8, 109, 1, 109, 1, 109, 3, 109, 2922, 8, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 4, 110, 2930, 8, 110, 11, 110, 12, 110, 2931, 3, 110, 2934, 8, 110, 1, 110, 1, 110, 4, 110, 2938, 8, 110, 11, 110, 12, 110, 2939, 3, 110, 2942, 8, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 5, 111, 2949, 8, 111, 10, 111, 12, 111, 2952, 9, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 5, 112, 2961, 8, 112, 10, 112, 12, 112, 2964, 9, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 3, 115, 2977, 8, 115, 1, 115, 1, 115, 1, 115, 3, 115, 2982, 8, 115, 1, 115, 3, 115, 2985, 8, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 3, 115, 2992, 8, 115, 1, 116, 1, 116, 1, 116, 3, 116, 2997, 8, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 3, 117, 3005, 8, 117, 3, 117, 3007, 8, 117, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3013, 8, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3018, 8, 118, 1, 118, 1, 118, 3, 118, 3022, 8, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3027, 8, 118, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3033, 8, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3040, 8, 118, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 3046, 8, 118, 3, 118, 3048, 8, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 3057, 8, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 3063, 8, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 3071, 8, 119, 1, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3077, 8, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3082, 8, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3087, 8, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 3, 121, 3095, 8, 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, 3, 122, 3110, 8, 122, 3, 122, 3112, 8, 122, 1, 122, 1, 122, 3, 122, 3116, 8, 122, 1, 122, 1, 122, 3, 122, 3120, 8, 122, 1, 122, 3, 122, 3123, 8, 122, 1, 122, 3, 122, 3126, 8, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 3, 123, 3135, 8, 123, 1, 123, 3, 123, 3138, 8, 123, 1, 123, 3, 123, 3141, 8, 123, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 3147, 8, 124, 1, 124, 1, 124, 5, 124, 3151, 8, 124, 10, 124, 12, 124, 3154, 9, 124, 1, 124, 3, 124, 3157, 8, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 3169, 8, 124, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 3175, 8, 124, 1, 125, 3, 125, 3178, 8, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3183, 8, 125, 1, 125, 1, 125, 3, 125, 3187, 8, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3194, 8, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3204, 8, 125, 3, 125, 3206, 8, 125, 1, 126, 1, 126, 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, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 3, 129, 3230, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3242, 8, 129, 1, 129, 4, 129, 3245, 8, 129, 11, 129, 12, 129, 3246, 3, 129, 3249, 8, 129, 1, 129, 1, 129, 3, 129, 3253, 8, 129, 1, 129, 3, 129, 3256, 8, 129, 1, 129, 3, 129, 3259, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3269, 8, 129, 1, 129, 3, 129, 3272, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3282, 8, 129, 1, 129, 5, 129, 3285, 8, 129, 10, 129, 12, 129, 3288, 9, 129, 1, 129, 1, 129, 3, 129, 3292, 8, 129, 1, 129, 3, 129, 3295, 8, 129, 1, 129, 3, 129, 3298, 8, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 3306, 8, 129, 1, 130, 1, 130, 1, 130, 1, 130, 3, 130, 3312, 8, 130, 1, 131, 1, 131, 1, 131, 5, 131, 3317, 8, 131, 10, 131, 12, 131, 3320, 9, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 3, 132, 3327, 8, 132, 1, 132, 3, 132, 3330, 8, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 3, 134, 3341, 8, 134, 1, 135, 1, 135, 3, 135, 3345, 8, 135, 1, 135, 1, 135, 5, 135, 3349, 8, 135, 10, 135, 12, 135, 3352, 9, 135, 1, 136, 1, 136, 1, 136, 1, 136, 3, 136, 3358, 8, 136, 1, 137, 3, 137, 3361, 8, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 3, 137, 3370, 8, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 5, 138, 3382, 8, 138, 10, 138, 12, 138, 3385, 9, 138, 3, 138, 3387, 8, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 5, 139, 3399, 8, 139, 10, 139, 12, 139, 3402, 9, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 3, 140, 3412, 8, 140, 1, 140, 3, 140, 3415, 8, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 5, 141, 3425, 8, 141, 10, 141, 12, 141, 3428, 9, 141, 1, 142, 1, 142, 3, 142, 3432, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 5, 142, 3443, 8, 142, 10, 142, 12, 142, 3446, 9, 142, 1, 142, 1, 142, 3, 142, 3450, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3463, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 5, 142, 3470, 8, 142, 10, 142, 12, 142, 3473, 9, 142, 3, 142, 3475, 8, 142, 1, 142, 3, 142, 3478, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3485, 8, 142, 1, 142, 3, 142, 3488, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3500, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 3506, 8, 142, 3, 142, 3508, 8, 142, 1, 143, 1, 143, 1, 143, 1, 143, 5, 143, 3514, 8, 143, 10, 143, 12, 143, 3517, 9, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 3, 144, 3524, 8, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 3, 145, 3532, 8, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 3, 147, 3544, 8, 147, 1, 147, 1, 147, 1, 147, 3, 147, 3549, 8, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 3, 147, 3560, 8, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 3, 149, 3571, 8, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 3, 149, 3579, 8, 149, 1, 149, 1, 149, 1, 149, 1, 149, 5, 149, 3585, 8, 149, 10, 149, 12, 149, 3588, 9, 149, 1, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3594, 8, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3601, 8, 150, 3, 150, 3603, 8, 150, 1, 150, 3, 150, 3606, 8, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3611, 8, 150, 1, 150, 1, 150, 1, 150, 3, 150, 3616, 8, 150, 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, 152, 1, 152, 5, 152, 3633, 8, 152, 10, 152, 12, 152, 3636, 9, 152, 1, 152, 1, 152, 1, 152, 1, 152, 5, 152, 3642, 8, 152, 10, 152, 12, 152, 3645, 9, 152, 3, 152, 3647, 8, 152, 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, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3674, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3683, 8, 155, 1, 155, 3, 155, 3686, 8, 155, 1, 155, 1, 155, 3, 155, 3690, 8, 155, 1, 155, 1, 155, 3, 155, 3694, 8, 155, 1, 155, 1, 155, 3, 155, 3698, 8, 155, 1, 155, 1, 155, 1, 155, 5, 155, 3703, 8, 155, 10, 155, 12, 155, 3706, 9, 155, 1, 155, 3, 155, 3709, 8, 155, 1, 155, 1, 155, 3, 155, 3713, 8, 155, 1, 155, 1, 155, 3, 155, 3717, 8, 155, 1, 155, 1, 155, 3, 155, 3721, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3726, 8, 155, 1, 155, 1, 155, 3, 155, 3730, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3735, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3741, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3746, 8, 155, 1, 155, 1, 155, 1, 155, 5, 155, 3751, 8, 155, 10, 155, 12, 155, 3754, 9, 155, 1, 155, 3, 155, 3757, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3763, 8, 155, 1, 155, 1, 155, 3, 155, 3767, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3772, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3780, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3786, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3791, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3798, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3803, 8, 155, 1, 155, 1, 155, 3, 155, 3807, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3812, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3818, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3825, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3830, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3837, 8, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3842, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3849, 8, 155, 1, 155, 1, 155, 3, 155, 3853, 8, 155, 1, 155, 1, 155, 1, 155, 1, 155, 5, 155, 3859, 8, 155, 10, 155, 12, 155, 3862, 9, 155, 1, 155, 3, 155, 3865, 8, 155, 3, 155, 3867, 8, 155, 1, 156, 3, 156, 3870, 8, 156, 1, 156, 1, 156, 1, 156, 3, 156, 3875, 8, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 3, 156, 3885, 8, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 3, 157, 3900, 8, 157, 1, 157, 3, 157, 3903, 8, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 3, 157, 3911, 8, 157, 1, 158, 1, 158, 1, 158, 5, 158, 3916, 8, 158, 10, 158, 12, 158, 3919, 9, 158, 1, 159, 1, 159, 3, 159, 3923, 8, 159, 1, 160, 1, 160, 4, 160, 3927, 8, 160, 11, 160, 12, 160, 3928, 1, 161, 1, 161, 3, 161, 3933, 8, 161, 1, 161, 1, 161, 1, 161, 5, 161, 3938, 8, 161, 10, 161, 12, 161, 3941, 9, 161, 1, 161, 1, 161, 3, 161, 3945, 8, 161, 1, 161, 3, 161, 3948, 8, 161, 1, 162, 3, 162, 3951, 8, 162, 1, 162, 1, 162, 3, 162, 3955, 8, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 3, 163, 3964, 8, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 3, 163, 3982, 8, 163, 1, 163, 3, 163, 3985, 8, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 3, 163, 4017, 8, 163, 1, 163, 1, 163, 1, 163, 3, 163, 4022, 8, 163, 1, 164, 1, 164, 1, 164, 1, 164, 3, 164, 4028, 8, 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, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 3, 164, 4048, 8, 164, 1, 164, 1, 164, 1, 164, 3, 164, 4053, 8, 164, 1, 165, 1, 165, 1, 165, 1, 166, 3, 166, 4059, 8, 166, 1, 166, 3, 166, 4062, 8, 166, 1, 166, 1, 166, 3, 166, 4066, 8, 166, 1, 166, 1, 166, 3, 166, 4070, 8, 166, 1, 166, 1, 166, 1, 166, 1, 166, 3, 166, 4076, 8, 166, 1, 166, 3, 166, 4079, 8, 166, 1, 166, 1, 166, 3, 166, 4083, 8, 166, 1, 166, 1, 166, 3, 166, 4087, 8, 166, 1, 166, 1, 166, 1, 166, 3, 166, 4092, 8, 166, 1, 166, 3, 166, 4095, 8, 166, 1, 166, 3, 166, 4098, 8, 166, 1, 166, 3, 166, 4101, 8, 166, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 3, 168, 4114, 8, 168, 1, 169, 1, 169, 1, 169, 1, 169, 3, 169, 4120, 8, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 3, 169, 4128, 8, 169, 1, 170, 1, 170, 1, 170, 5, 170, 4133, 8, 170, 10, 170, 12, 170, 4136, 9, 170, 1, 170, 1, 170, 3, 170, 4140, 8, 170, 1, 170, 3, 170, 4143, 8, 170, 1, 170, 1, 170, 1, 170, 5, 170, 4148, 8, 170, 10, 170, 12, 170, 4151, 9, 170, 3, 170, 4153, 8, 170, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 4161, 8, 172, 1, 172, 3, 172, 4164, 8, 172, 1, 173, 1, 173, 1, 173, 3, 173, 4169, 8, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 3, 173, 4176, 8, 173, 1, 173, 3, 173, 4179, 8, 173, 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, 173, 1, 173, 1, 173, 1, 173, 5, 173, 4197, 8, 173, 10, 173, 12, 173, 4200, 9, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 3, 173, 4211, 8, 173, 1, 174, 3, 174, 4214, 8, 174, 1, 174, 1, 174, 1, 174, 1, 174, 3, 174, 4220, 8, 174, 1, 174, 5, 174, 4223, 8, 174, 10, 174, 12, 174, 4226, 9, 174, 1, 175, 1, 175, 1, 175, 1, 175, 5, 175, 4232, 8, 175, 10, 175, 12, 175, 4235, 9, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 3, 175, 4242, 8, 175, 1, 175, 1, 175, 1, 175, 3, 175, 4247, 8, 175, 1, 176, 1, 176, 1, 176, 1, 176, 3, 176, 4253, 8, 176, 1, 176, 1, 176, 1, 176, 5, 176, 4258, 8, 176, 10, 176, 12, 176, 4261, 9, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 3, 176, 4268, 8, 176, 1, 176, 3, 176, 4271, 8, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 5, 177, 4282, 8, 177, 10, 177, 12, 177, 4285, 9, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 4298, 8, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 4304, 8, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 4312, 8, 178, 3, 178, 4314, 8, 178, 1, 179, 1, 179, 1, 180, 1, 180, 3, 180, 4320, 8, 180, 1, 180, 1, 180, 3, 180, 4324, 8, 180, 1, 180, 3, 180, 4327, 8, 180, 1, 180, 3, 180, 4330, 8, 180, 1, 180, 1, 180, 1, 180, 3, 180, 4335, 8, 180, 1, 180, 1, 180, 1, 180, 3, 180, 4340, 8, 180, 1, 180, 1, 180, 3, 180, 4344, 8, 180, 1, 180, 3, 180, 4347, 8, 180, 1, 180, 3, 180, 4350, 8, 180, 1, 180, 3, 180, 4353, 8, 180, 1, 180, 3, 180, 4356, 8, 180, 1, 181, 1, 181, 1, 181, 1, 181, 5, 181, 4362, 8, 181, 10, 181, 12, 181, 4365, 9, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 3, 182, 4375, 8, 182, 1, 182, 3, 182, 4378, 8, 182, 1, 182, 3, 182, 4381, 8, 182, 1, 182, 1, 182, 1, 182, 3, 182, 4386, 8, 182, 1, 182, 3, 182, 4389, 8, 182, 1, 182, 1, 182, 3, 182, 4393, 8, 182, 1, 183, 1, 183, 3, 183, 4397, 8, 183, 1, 183, 1, 183, 1, 183, 1, 183, 3, 183, 4403, 8, 183, 1, 183, 1, 183, 1, 183, 1, 183, 5, 183, 4409, 8, 183, 10, 183, 12, 183, 4412, 9, 183, 3, 183, 4414, 8, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 5, 183, 4425, 8, 183, 10, 183, 12, 183, 4428, 9, 183, 1, 183, 1, 183, 3, 183, 4432, 8, 183, 3, 183, 4434, 8, 183, 1, 183, 4, 183, 4437, 8, 183, 11, 183, 12, 183, 4438, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 3, 183, 4446, 8, 183, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 3, 185, 4453, 8, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 5, 186, 4460, 8, 186, 10, 186, 12, 186, 4463, 9, 186, 1, 187, 1, 187, 1, 187, 5, 187, 4468, 8, 187, 10, 187, 12, 187, 4471, 9, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 3, 188, 4478, 8, 188, 1, 189, 1, 189, 1, 189, 5, 189, 4483, 8, 189, 10, 189, 12, 189, 4486, 9, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 3, 190, 4493, 8, 190, 1, 191, 1, 191, 1, 191, 5, 191, 4498, 8, 191, 10, 191, 12, 191, 4501, 9, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 3, 192, 4508, 8, 192, 1, 193, 1, 193, 3, 193, 4512, 8, 193, 1, 193, 1, 193, 3, 193, 4516, 8, 193, 3, 193, 4518, 8, 193, 1, 193, 1, 193, 1, 194, 1, 194, 3, 194, 4524, 8, 194, 1, 194, 1, 194, 1, 194, 3, 194, 4529, 8, 194, 1, 195, 1, 195, 3, 195, 4533, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 4540, 8, 195, 1, 196, 1, 196, 1, 196, 3, 196, 4545, 8, 196, 1, 197, 1, 197, 1, 197, 3, 197, 4550, 8, 197, 1, 197, 1, 197, 1, 197, 3, 197, 4555, 8, 197, 3, 197, 4557, 8, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 3, 199, 4567, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 4577, 8, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 4593, 8, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 5, 200, 4609, 8, 200, 10, 200, 12, 200, 4612, 9, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 3, 200, 4623, 8, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 3, 200, 4630, 8, 200, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 3, 203, 4645, 8, 203, 1, 203, 4, 203, 4648, 8, 203, 11, 203, 12, 203, 4649, 1, 203, 3, 203, 4653, 8, 203, 1, 204, 1, 204, 1, 204, 3, 204, 4658, 8, 204, 1, 204, 1, 204, 1, 204, 3, 204, 4663, 8, 204, 1, 204, 1, 204, 1, 204, 3, 204, 4668, 8, 204, 1, 204, 3, 204, 4671, 8, 204, 1, 204, 3, 204, 4674, 8, 204, 1, 205, 1, 205, 1, 205, 3, 205, 4679, 8, 205, 1, 205, 1, 205, 1, 205, 5, 205, 4684, 8, 205, 10, 205, 12, 205, 4687, 9, 205, 1, 205, 3, 205, 4690, 8, 205, 1, 206, 1, 206, 1, 206, 3, 206, 4695, 8, 206, 1, 206, 1, 206, 1, 206, 5, 206, 4700, 8, 206, 10, 206, 12, 206, 4703, 9, 206, 1, 206, 3, 206, 4706, 8, 206, 1, 207, 1, 207, 1, 207, 1, 207, 3, 207, 4712, 8, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 3, 207, 4721, 8, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 5, 208, 4728, 8, 208, 10, 208, 12, 208, 4731, 9, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 4, 210, 4742, 8, 210, 11, 210, 12, 210, 4743, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 3, 211, 4757, 8, 211, 1, 211, 1, 211, 1, 211, 1, 211, 3, 211, 4763, 8, 211, 1, 211, 1, 211, 3, 211, 4767, 8, 211, 3, 211, 4769, 8, 211, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 3, 213, 4776, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4789, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4796, 8, 213, 3, 213, 4798, 8, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 5, 215, 4812, 8, 215, 10, 215, 12, 215, 4815, 9, 215, 1, 215, 3, 215, 4818, 8, 215, 1, 215, 1, 215, 3, 215, 4822, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4827, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4832, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4837, 8, 215, 1, 215, 1, 215, 1, 215, 3, 215, 4842, 8, 215, 1, 215, 3, 215, 4845, 8, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4857, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4910, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4919, 8, 217, 1, 217, 1, 217, 3, 217, 4923, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4932, 8, 217, 1, 217, 1, 217, 3, 217, 4936, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4945, 8, 217, 1, 217, 1, 217, 3, 217, 4949, 8, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4954, 8, 217, 1, 217, 3, 217, 4957, 8, 217, 1, 217, 1, 217, 3, 217, 4961, 8, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4966, 8, 217, 3, 217, 4968, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4977, 8, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4982, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 4993, 8, 217, 1, 217, 1, 217, 3, 217, 4997, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 5011, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 5019, 8, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 3, 217, 5057, 8, 217, 3, 217, 5059, 8, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 3, 218, 5078, 8, 218, 1, 218, 3, 218, 5081, 8, 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, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 3, 219, 5108, 8, 219, 1, 219, 1, 219, 3, 219, 5112, 8, 219, 1, 219, 1, 219, 3, 219, 5116, 8, 219, 1, 219, 1, 219, 3, 219, 5120, 8, 219, 1, 219, 1, 219, 3, 219, 5124, 8, 219, 1, 219, 3, 219, 5127, 8, 219, 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, 219, 3, 219, 5142, 8, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 3, 219, 5149, 8, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 5, 221, 5161, 8, 221, 10, 221, 12, 221, 5164, 9, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 3, 222, 5176, 8, 222, 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, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5201, 8, 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, 224, 1, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5220, 8, 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, 224, 3, 224, 5235, 8, 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, 224, 1, 224, 3, 224, 5251, 8, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5258, 8, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 3, 225, 5269, 8, 225, 1, 225, 3, 225, 5272, 8, 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, 5, 226, 5289, 8, 226, 10, 226, 12, 226, 5292, 9, 226, 3, 226, 5294, 8, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 5, 227, 5305, 8, 227, 10, 227, 12, 227, 5308, 9, 227, 1, 227, 3, 227, 5311, 8, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 3, 228, 5331, 8, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 5, 228, 5341, 8, 228, 10, 228, 12, 228, 5344, 9, 228, 1, 228, 3, 228, 5347, 8, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 3, 228, 5369, 8, 228, 1, 229, 1, 229, 3, 229, 5373, 8, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 3, 229, 5383, 8, 229, 1, 229, 1, 229, 3, 229, 5387, 8, 229, 1, 229, 1, 229, 1, 229, 1, 229, 3, 229, 5393, 8, 229, 1, 229, 1, 229, 3, 229, 5397, 8, 229, 5, 229, 5399, 8, 229, 10, 229, 12, 229, 5402, 9, 229, 1, 229, 3, 229, 5405, 8, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 3, 230, 5412, 8, 230, 1, 231, 1, 231, 1, 231, 3, 231, 5417, 8, 231, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 3, 234, 5428, 8, 234, 1, 235, 1, 235, 3, 235, 5432, 8, 235, 1, 235, 3, 235, 5435, 8, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5440, 8, 235, 1, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5446, 8, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5457, 8, 235, 1, 235, 1, 235, 3, 235, 5461, 8, 235, 1, 235, 3, 235, 5464, 8, 235, 1, 235, 1, 235, 3, 235, 5468, 8, 235, 1, 235, 1, 235, 3, 235, 5472, 8, 235, 1, 235, 3, 235, 5475, 8, 235, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 3, 237, 5485, 8, 237, 1, 237, 3, 237, 5488, 8, 237, 1, 238, 1, 238, 3, 238, 5492, 8, 238, 1, 238, 5, 238, 5495, 8, 238, 10, 238, 12, 238, 5498, 9, 238, 1, 239, 1, 239, 1, 239, 3, 239, 5503, 8, 239, 1, 239, 3, 239, 5506, 8, 239, 1, 239, 1, 239, 1, 239, 3, 239, 5511, 8, 239, 1, 239, 3, 239, 5514, 8, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 3, 239, 5521, 8, 239, 3, 239, 5523, 8, 239, 1, 239, 1, 239, 1, 239, 1, 239, 3, 239, 5529, 8, 239, 1, 239, 1, 239, 3, 239, 5533, 8, 239, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 3, 241, 5542, 8, 241, 1, 241, 4, 241, 5545, 8, 241, 11, 241, 12, 241, 5546, 3, 241, 5549, 8, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 3, 242, 5559, 8, 242, 1, 242, 3, 242, 5562, 8, 242, 1, 242, 1, 242, 1, 242, 3, 242, 5567, 8, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 3, 243, 5575, 8, 243, 1, 243, 3, 243, 5578, 8, 243, 1, 243, 4, 243, 5581, 8, 243, 11, 243, 12, 243, 5582, 3, 243, 5585, 8, 243, 3, 243, 5587, 8, 243, 1, 244, 1, 244, 1, 244, 1, 244, 3, 244, 5593, 8, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 3, 247, 5610, 8, 247, 1, 247, 1, 247, 5, 247, 5614, 8, 247, 10, 247, 12, 247, 5617, 9, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 3, 248, 5629, 8, 248, 1, 248, 1, 248, 1, 248, 1, 248, 3, 248, 5635, 8, 248, 1, 248, 1, 248, 3, 248, 5639, 8, 248, 1, 248, 1, 248, 1, 248, 3, 248, 5644, 8, 248, 1, 249, 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, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 3, 250, 5674, 8, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 3, 250, 5689, 8, 250, 1, 250, 1, 250, 1, 250, 3, 250, 5694, 8, 250, 1, 251, 1, 251, 3, 251, 5698, 8, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 3, 252, 5711, 8, 252, 1, 252, 1, 252, 3, 252, 5715, 8, 252, 3, 252, 5717, 8, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 5, 252, 5724, 8, 252, 10, 252, 12, 252, 5727, 9, 252, 1, 252, 1, 252, 1, 252, 3, 252, 5732, 8, 252, 3, 252, 5734, 8, 252, 1, 253, 1, 253, 3, 253, 5738, 8, 253, 1, 253, 3, 253, 5741, 8, 253, 1, 253, 3, 253, 5744, 8, 253, 1, 253, 3, 253, 5747, 8, 253, 1, 253, 3, 253, 5750, 8, 253, 3, 253, 5752, 8, 253, 1, 253, 3, 253, 5755, 8, 253, 1, 254, 1, 254, 3, 254, 5759, 8, 254, 1, 254, 1, 254, 1, 254, 1, 254, 5, 254, 5765, 8, 254, 10, 254, 12, 254, 5768, 9, 254, 1, 254, 1, 254, 3, 254, 5772, 8, 254, 1, 254, 3, 254, 5775, 8, 254, 1, 255, 1, 255, 1, 256, 1, 256, 3, 256, 5781, 8, 256, 1, 256, 1, 256, 3, 256, 5785, 8, 256, 1, 257, 1, 257, 3, 257, 5789, 8, 257, 1, 257, 1, 257, 1, 257, 3, 257, 5794, 8, 257, 3, 257, 5796, 8, 257, 1, 258, 1, 258, 3, 258, 5800, 8, 258, 1, 259, 1, 259, 3, 259, 5804, 8, 259, 1, 260, 1, 260, 1, 260, 5, 260, 5809, 8, 260, 10, 260, 12, 260, 5812, 9, 260, 1, 261, 1, 261, 1, 261, 3, 261, 5817, 8, 261, 1, 261, 1, 261, 3, 261, 5821, 8, 261, 3, 261, 5823, 8, 261, 3, 261, 5825, 8, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 3, 262, 5838, 8, 262, 1, 263, 1, 263, 1, 263, 1, 263, 5, 263, 5844, 8, 263, 10, 263, 12, 263, 5847, 9, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 3, 264, 5854, 8, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 5, 265, 5863, 8, 265, 10, 265, 12, 265, 5866, 9, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 3, 266, 5875, 8, 266, 1, 267, 1, 267, 1, 267, 3, 267, 5880, 8, 267, 1, 267, 1, 267, 3, 267, 5884, 8, 267, 1, 267, 1, 267, 3, 267, 5888, 8, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 3, 267, 5895, 8, 267, 1, 267, 3, 267, 5898, 8, 267, 3, 267, 5900, 8, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 3, 269, 5908, 8, 269, 1, 269, 1, 269, 3, 269, 5912, 8, 269, 1, 270, 3, 270, 5915, 8, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5922, 8, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5929, 8, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5934, 8, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 5941, 8, 270, 1, 270, 3, 270, 5944, 8, 270, 3, 270, 5946, 8, 270, 1, 270, 3, 270, 5949, 8, 270, 1, 271, 1, 271, 1, 271, 1, 271, 3, 271, 5955, 8, 271, 1, 271, 1, 271, 1, 271, 3, 271, 5960, 8, 271, 1, 271, 1, 271, 3, 271, 5964, 8, 271, 1, 272, 1, 272, 1, 272, 5, 272, 5969, 8, 272, 10, 272, 12, 272, 5972, 9, 272, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 275, 3, 275, 5981, 8, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 3, 275, 5988, 8, 275, 1, 275, 3, 275, 5991, 8, 275, 1, 275, 3, 275, 5994, 8, 275, 1, 276, 1, 276, 3, 276, 5998, 8, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 3, 276, 6009, 8, 276, 1, 276, 3, 276, 6012, 8, 276, 1, 276, 3, 276, 6015, 8, 276, 1, 276, 3, 276, 6018, 8, 276, 1, 277, 3, 277, 6021, 8, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 3, 277, 6028, 8, 277, 1, 277, 3, 277, 6031, 8, 277, 1, 277, 3, 277, 6034, 8, 277, 1, 278, 1, 278, 1, 278, 5, 278, 6039, 8, 278, 10, 278, 12, 278, 6042, 9, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 3, 279, 6053, 8, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 3, 279, 6060, 8, 279, 3, 279, 6062, 8, 279, 1, 280, 1, 280, 1, 280, 3, 280, 6067, 8, 280, 1, 280, 1, 280, 1, 280, 5, 280, 6072, 8, 280, 10, 280, 12, 280, 6075, 9, 280, 1, 280, 1, 280, 1, 280, 3, 280, 6080, 8, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 3, 281, 6087, 8, 281, 1, 282, 1, 282, 1, 282, 3, 282, 6092, 8, 282, 1, 282, 1, 282, 1, 283, 3, 283, 6097, 8, 283, 1, 283, 1, 283, 3, 283, 6101, 8, 283, 1, 283, 1, 283, 3, 283, 6105, 8, 283, 1, 283, 1, 283, 3, 283, 6109, 8, 283, 3, 283, 6111, 8, 283, 1, 284, 1, 284, 3, 284, 6115, 8, 284, 1, 285, 1, 285, 3, 285, 6119, 8, 285, 1, 285, 3, 285, 6122, 8, 285, 1, 285, 3, 285, 6125, 8, 285, 3, 285, 6127, 8, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 1, 285, 3, 285, 6137, 8, 285, 3, 285, 6139, 8, 285, 1, 285, 1, 285, 1, 285, 3, 285, 6144, 8, 285, 5, 285, 6146, 8, 285, 10, 285, 12, 285, 6149, 9, 285, 1, 286, 1, 286, 3, 286, 6153, 8, 286, 1, 287, 1, 287, 3, 287, 6157, 8, 287, 1, 287, 1, 287, 1, 287, 5, 287, 6162, 8, 287, 10, 287, 12, 287, 6165, 9, 287, 1, 288, 1, 288, 3, 288, 6169, 8, 288, 1, 288, 1, 288, 3, 288, 6173, 8, 288, 1, 288, 3, 288, 6176, 8, 288, 1, 288, 1, 288, 1, 288, 1, 288, 3, 288, 6182, 8, 288, 1, 288, 3, 288, 6185, 8, 288, 1, 289, 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, 290, 1, 290, 1, 290, 3, 290, 6204, 8, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 3, 291, 6211, 8, 291, 1, 291, 1, 291, 3, 291, 6215, 8, 291, 1, 292, 3, 292, 6218, 8, 292, 1, 292, 1, 292, 3, 292, 6222, 8, 292, 1, 292, 1, 292, 3, 292, 6226, 8, 292, 1, 292, 3, 292, 6229, 8, 292, 1, 292, 3, 292, 6232, 8, 292, 1, 293, 1, 293, 1, 293, 3, 293, 6237, 8, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 5, 294, 6244, 8, 294, 10, 294, 12, 294, 6247, 9, 294, 1, 295, 1, 295, 1, 295, 1, 295, 3, 295, 6253, 8, 295, 1, 295, 1, 295, 3, 295, 6257, 8, 295, 1, 296, 1, 296, 3, 296, 6261, 8, 296, 1, 296, 1, 296, 3, 296, 6265, 8, 296, 1, 296, 3, 296, 6268, 8, 296, 3, 296, 6270, 8, 296, 1, 297, 1, 297, 1, 297, 3, 297, 6275, 8, 297, 1, 297, 1, 297, 3, 297, 6279, 8, 297, 1, 298, 1, 298, 1, 298, 3, 298, 6284, 8, 298, 1, 298, 1, 298, 1, 298, 1, 298, 3, 298, 6290, 8, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 6297, 8, 299, 1, 300, 1, 300, 1, 300, 3, 300, 6302, 8, 300, 1, 301, 1, 301, 1, 301, 3, 301, 6307, 8, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 5, 302, 6314, 8, 302, 10, 302, 12, 302, 6317, 9, 302, 1, 303, 1, 303, 1, 303, 1, 303, 3, 303, 6323, 8, 303, 1, 303, 1, 303, 1, 303, 1, 303, 5, 303, 6329, 8, 303, 10, 303, 12, 303, 6332, 9, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 3, 303, 6342, 8, 303, 1, 304, 1, 304, 1, 304, 3, 304, 6347, 8, 304, 1, 304, 1, 304, 3, 304, 6351, 8, 304, 1, 304, 3, 304, 6354, 8, 304, 1, 304, 1, 304, 3, 304, 6358, 8, 304, 1, 304, 1, 304, 1, 304, 3, 304, 6363, 8, 304, 4, 304, 6365, 8, 304, 11, 304, 12, 304, 6366, 1, 304, 1, 304, 1, 304, 3, 304, 6372, 8, 304, 1, 305, 1, 305, 1, 305, 1, 305, 5, 305, 6378, 8, 305, 10, 305, 12, 305, 6381, 9, 305, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 5, 307, 6389, 8, 307, 10, 307, 12, 307, 6392, 9, 307, 1, 308, 1, 308, 3, 308, 6396, 8, 308, 1, 308, 1, 308, 3, 308, 6400, 8, 308, 1, 308, 3, 308, 6403, 8, 308, 1, 308, 3, 308, 6406, 8, 308, 3, 308, 6408, 8, 308, 1, 308, 3, 308, 6411, 8, 308, 1, 308, 3, 308, 6414, 8, 308, 1, 308, 3, 308, 6417, 8, 308, 1, 308, 1, 308, 3, 308, 6421, 8, 308, 1, 308, 1, 308, 3, 308, 6425, 8, 308, 1, 308, 1, 308, 3, 308, 6429, 8, 308, 3, 308, 6431, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6440, 8, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6445, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6451, 8, 308, 1, 308, 1, 308, 3, 308, 6455, 8, 308, 3, 308, 6457, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6464, 8, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6469, 8, 308, 1, 308, 1, 308, 1, 308, 1, 308, 5, 308, 6475, 8, 308, 10, 308, 12, 308, 6478, 9, 308, 1, 309, 3, 309, 6481, 8, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 3, 309, 6488, 8, 309, 1, 310, 1, 310, 1, 310, 3, 310, 6493, 8, 310, 1, 310, 3, 310, 6496, 8, 310, 1, 310, 1, 310, 1, 310, 1, 310, 3, 310, 6502, 8, 310, 1, 311, 1, 311, 3, 311, 6506, 8, 311, 1, 312, 1, 312, 1, 312, 1, 312, 3, 312, 6512, 8, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 3, 313, 6521, 8, 313, 1, 313, 1, 313, 1, 313, 1, 313, 3, 313, 6527, 8, 313, 3, 313, 6529, 8, 313, 1, 314, 1, 314, 1, 314, 3, 314, 6534, 8, 314, 1, 314, 3, 314, 6537, 8, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 3, 314, 6546, 8, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 3, 314, 6553, 8, 314, 3, 314, 6555, 8, 314, 1, 315, 1, 315, 1, 315, 5, 315, 6560, 8, 315, 10, 315, 12, 315, 6563, 9, 315, 1, 316, 1, 316, 3, 316, 6567, 8, 316, 1, 316, 3, 316, 6570, 8, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 3, 317, 6580, 8, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 5, 318, 6589, 8, 318, 10, 318, 12, 318, 6592, 9, 318, 1, 318, 1, 318, 3, 318, 6596, 8, 318, 1, 318, 1, 318, 3, 318, 6600, 8, 318, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 3, 319, 6608, 8, 319, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 3, 321, 6618, 8, 321, 1, 322, 1, 322, 1, 322, 5, 322, 6623, 8, 322, 10, 322, 12, 322, 6626, 9, 322, 1, 323, 1, 323, 1, 323, 3, 323, 6631, 8, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 5, 324, 6640, 8, 324, 10, 324, 12, 324, 6643, 9, 324, 1, 324, 1, 324, 1, 324, 3, 324, 6648, 8, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 5, 324, 6656, 8, 324, 10, 324, 12, 324, 6659, 9, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 325, 3, 325, 6667, 8, 325, 1, 325, 1, 325, 3, 325, 6671, 8, 325, 1, 325, 4, 325, 6674, 8, 325, 11, 325, 12, 325, 6675, 3, 325, 6678, 8, 325, 1, 325, 1, 325, 3, 325, 6682, 8, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 3, 326, 6690, 8, 326, 1, 327, 3, 327, 6693, 8, 327, 1, 327, 1, 327, 1, 327, 3, 327, 6698, 8, 327, 1, 327, 5, 327, 6701, 8, 327, 10, 327, 12, 327, 6704, 9, 327, 1, 327, 1, 327, 1, 327, 1, 327, 3, 327, 6710, 8, 327, 3, 327, 6712, 8, 327, 1, 327, 1, 327, 1, 327, 1, 327, 3, 327, 6718, 8, 327, 1, 328, 1, 328, 3, 328, 6722, 8, 328, 1, 328, 3, 328, 6725, 8, 328, 1, 328, 1, 328, 1, 328, 3, 328, 6730, 8, 328, 1, 328, 3, 328, 6733, 8, 328, 3, 328, 6735, 8, 328, 1, 329, 1, 329, 1, 329, 1, 329, 3, 329, 6741, 8, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 3, 330, 6750, 8, 330, 1, 330, 1, 330, 1, 330, 1, 330, 3, 330, 6756, 8, 330, 1, 330, 3, 330, 6759, 8, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 3, 332, 6767, 8, 332, 1, 332, 3, 332, 6770, 8, 332, 1, 333, 1, 333, 3, 333, 6774, 8, 333, 1, 333, 1, 333, 1, 333, 1, 333, 3, 333, 6780, 8, 333, 3, 333, 6782, 8, 333, 1, 333, 3, 333, 6785, 8, 333, 1, 334, 1, 334, 3, 334, 6789, 8, 334, 1, 334, 1, 334, 1, 334, 3, 334, 6794, 8, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6801, 8, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6808, 8, 335, 3, 335, 6810, 8, 335, 1, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6816, 8, 335, 3, 335, 6818, 8, 335, 1, 335, 1, 335, 1, 335, 3, 335, 6823, 8, 335, 3, 335, 6825, 8, 335, 1, 336, 1, 336, 3, 336, 6829, 8, 336, 1, 337, 1, 337, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 3, 339, 6838, 8, 339, 1, 339, 1, 339, 3, 339, 6842, 8, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 5, 339, 6850, 8, 339, 10, 339, 12, 339, 6853, 9, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6866, 8, 340, 1, 340, 3, 340, 6869, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6877, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 5, 340, 6884, 8, 340, 10, 340, 12, 340, 6887, 9, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6892, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6897, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6905, 8, 340, 3, 340, 6907, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6912, 8, 340, 1, 340, 1, 340, 3, 340, 6916, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6921, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 6926, 8, 340, 1, 341, 1, 341, 1, 341, 1, 341, 3, 341, 6932, 8, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 5, 341, 6948, 8, 341, 10, 341, 12, 341, 6951, 9, 341, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6959, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6974, 8, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6979, 8, 342, 1, 342, 3, 342, 6982, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6988, 8, 342, 1, 342, 1, 342, 1, 342, 3, 342, 6993, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7006, 8, 342, 1, 342, 4, 342, 7009, 8, 342, 11, 342, 12, 342, 7010, 1, 342, 1, 342, 3, 342, 7015, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7022, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7041, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7053, 8, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7058, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7066, 8, 342, 5, 342, 7068, 8, 342, 10, 342, 12, 342, 7071, 9, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 3, 343, 7079, 8, 343, 1, 343, 3, 343, 7082, 8, 343, 1, 343, 1, 343, 1, 343, 3, 343, 7087, 8, 343, 1, 343, 1, 343, 1, 343, 3, 343, 7092, 8, 343, 1, 343, 3, 343, 7095, 8, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 3, 344, 7106, 8, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 3, 344, 7114, 8, 344, 1, 344, 1, 344, 1, 344, 3, 344, 7119, 8, 344, 3, 344, 7121, 8, 344, 1, 344, 3, 344, 7124, 8, 344, 1, 345, 1, 345, 3, 345, 7128, 8, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7139, 8, 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, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7160, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7168, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7181, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7191, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7197, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7203, 8, 346, 1, 346, 3, 346, 7206, 8, 346, 1, 346, 3, 346, 7209, 8, 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, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7235, 8, 346, 3, 346, 7237, 8, 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, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7258, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7268, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7281, 8, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7286, 8, 346, 1, 346, 1, 346, 3, 346, 7290, 8, 346, 3, 346, 7292, 8, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 3, 346, 7304, 8, 346, 1, 347, 1, 347, 1, 347, 5, 347, 7309, 8, 347, 10, 347, 12, 347, 7312, 9, 347, 1, 348, 1, 348, 1, 348, 3, 348, 7317, 8, 348, 1, 349, 1, 349, 1, 350, 1, 350, 3, 350, 7323, 8, 350, 1, 350, 1, 350, 3, 350, 7327, 8, 350, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 1, 352, 1, 352, 5, 352, 7336, 8, 352, 10, 352, 12, 352, 7339, 9, 352, 1, 353, 1, 353, 1, 353, 1, 353, 1, 354, 1, 354, 1, 354, 3, 354, 7348, 8, 354, 1, 355, 1, 355, 3, 355, 7352, 8, 355, 1, 355, 1, 355, 1, 355, 3, 355, 7357, 8, 355, 1, 355, 3, 355, 7360, 8, 355, 1, 355, 3, 355, 7363, 8, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 3, 356, 7372, 8, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 3, 356, 7383, 8, 356, 3, 356, 7385, 8, 356, 1, 357, 1, 357, 3, 357, 7389, 8, 357, 1, 357, 1, 357, 1, 357, 3, 357, 7394, 8, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 3, 358, 7403, 8, 358, 1, 359, 1, 359, 1, 359, 3, 359, 7408, 8, 359, 1, 359, 1, 359, 1, 360, 1, 360, 1, 361, 1, 361, 3, 361, 7416, 8, 361, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 3, 363, 7426, 8, 363, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 1, 364, 3, 364, 7434, 8, 364, 1, 365, 1, 365, 3, 365, 7438, 8, 365, 1, 365, 3, 365, 7441, 8, 365, 1, 366, 1, 366, 1, 366, 5, 366, 7446, 8, 366, 10, 366, 12, 366, 7449, 9, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 3, 367, 7456, 8, 367, 1, 368, 1, 368, 3, 368, 7460, 8, 368, 1, 369, 1, 369, 1, 369, 5, 369, 7465, 8, 369, 10, 369, 12, 369, 7468, 9, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 3, 370, 7475, 8, 370, 3, 370, 7477, 8, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 5, 371, 7484, 8, 371, 10, 371, 12, 371, 7487, 9, 371, 3, 371, 7489, 8, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 1, 372, 3, 372, 7501, 8, 372, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 3, 374, 7510, 8, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 3, 374, 7517, 8, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 1, 374, 3, 374, 7526, 8, 374, 1, 375, 1, 375, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 3, 376, 7536, 8, 376, 1, 376, 1, 376, 1, 376, 3, 376, 7541, 8, 376, 1, 376, 1, 376, 3, 376, 7545, 8, 376, 3, 376, 7547, 8, 376, 1, 376, 3, 376, 7550, 8, 376, 1, 377, 4, 377, 7553, 8, 377, 11, 377, 12, 377, 7554, 1, 378, 5, 378, 7558, 8, 378, 10, 378, 12, 378, 7561, 9, 378, 1, 379, 1, 379, 1, 379, 5, 379, 7566, 8, 379, 10, 379, 12, 379, 7569, 9, 379, 1, 380, 1, 380, 1, 380, 1, 380, 1, 380, 3, 380, 7576, 8, 380, 1, 380, 3, 380, 7579, 8, 380, 1, 381, 1, 381, 1, 381, 5, 381, 7584, 8, 381, 10, 381, 12, 381, 7587, 9, 381, 1, 382, 1, 382, 1, 382, 5, 382, 7592, 8, 382, 10, 382, 12, 382, 7595, 9, 382, 1, 383, 1, 383, 1, 383, 5, 383, 7600, 8, 383, 10, 383, 12, 383, 7603, 9, 383, 1, 384, 1, 384, 1, 384, 5, 384, 7608, 8, 384, 10, 384, 12, 384, 7611, 9, 384, 1, 385, 1, 385, 1, 386, 1, 386, 1, 387, 1, 387, 1, 388, 1, 388, 1, 389, 1, 389, 1, 390, 1, 390, 1, 391, 1, 391, 3, 391, 7627, 8, 391, 1, 392, 1, 392, 1, 392, 5, 392, 7632, 8, 392, 10, 392, 12, 392, 7635, 9, 392, 1, 393, 1, 393, 1, 393, 5, 393, 7640, 8, 393, 10, 393, 12, 393, 7643, 9, 393, 1, 394, 1, 394, 1, 395, 1, 395, 1, 396, 1, 396, 1, 397, 1, 397, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 3, 399, 7659, 8, 399, 1, 400, 1, 400, 1, 400, 1, 400, 3, 400, 7665, 8, 400, 1, 401, 1, 401, 1, 401, 1, 401, 3, 401, 7671, 8, 401, 1, 402, 1, 402, 1, 403, 1, 403, 1, 403, 1, 403, 3, 403, 7679, 8, 403, 1, 404, 1, 404, 1, 404, 1, 404, 3, 404, 7685, 8, 404, 1, 405, 1, 405, 1, 405, 3, 405, 7690, 8, 405, 1, 406, 1, 406, 1, 406, 1, 406, 5, 406, 7696, 8, 406, 10, 406, 12, 406, 7699, 9, 406, 1, 406, 1, 406, 3, 406, 7703, 8, 406, 1, 407, 3, 407, 7706, 8, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 3, 408, 7715, 8, 408, 1, 409, 1, 409, 1, 409, 5, 409, 7720, 8, 409, 10, 409, 12, 409, 7723, 9, 409, 1, 410, 1, 410, 3, 410, 7727, 8, 410, 1, 411, 1, 411, 3, 411, 7731, 8, 411, 1, 412, 1, 412, 1, 412, 3, 412, 7736, 8, 412, 1, 413, 1, 413, 1, 413, 1, 413, 3, 413, 7742, 8, 413, 1, 414, 1, 414, 1, 414, 3, 414, 7747, 8, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 3, 414, 7755, 8, 414, 1, 415, 1, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 3, 416, 7810, 8, 416, 1, 417, 1, 417, 1, 418, 1, 418, 1, 419, 3, 419, 7817, 8, 419, 1, 419, 1, 419, 1, 419, 1, 419, 4, 419, 7823, 8, 419, 11, 419, 12, 419, 7824, 3, 419, 7827, 8, 419, 3, 419, 7829, 8, 419, 1, 419, 1, 419, 5, 419, 7833, 8, 419, 10, 419, 12, 419, 7836, 9, 419, 1, 419, 3, 419, 7839, 8, 419, 1, 419, 1, 419, 3, 419, 7843, 8, 419, 1, 420, 1, 420, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 3, 421, 7854, 8, 421, 1, 421, 3, 421, 7857, 8, 421, 1, 421, 1, 421, 3, 421, 7861, 8, 421, 1, 421, 1, 421, 3, 421, 7865, 8, 421, 1, 421, 1, 421, 3, 421, 7869, 8, 421, 1, 421, 3, 421, 7872, 8, 421, 1, 421, 3, 421, 7875, 8, 421, 1, 421, 3, 421, 7878, 8, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 5, 421, 7885, 8, 421, 10, 421, 12, 421, 7888, 9, 421, 1, 421, 1, 421, 3, 421, 7892, 8, 421, 1, 421, 1, 421, 3, 421, 7896, 8, 421, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 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, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 3, 424, 7929, 8, 424, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 3, 426, 7939, 8, 426, 1, 426, 1, 426, 3, 426, 7943, 8, 426, 1, 426, 1, 426, 1, 426, 1, 426, 3, 426, 7949, 8, 426, 1, 426, 1, 426, 1, 426, 3, 426, 7954, 8, 426, 1, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 428, 1, 428, 3, 428, 7963, 8, 428, 1, 428, 1, 428, 1, 428, 1, 428, 5, 428, 7969, 8, 428, 10, 428, 12, 428, 7972, 9, 428, 1, 428, 1, 428, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 1, 430, 3, 430, 7982, 8, 430, 1, 430, 1, 430, 1, 430, 1, 430, 5, 430, 7988, 8, 430, 10, 430, 12, 430, 7991, 9, 430, 1, 431, 1, 431, 1, 431, 1, 431, 5, 431, 7997, 8, 431, 10, 431, 12, 431, 8000, 9, 431, 1, 431, 1, 431, 1, 431, 1, 431, 5, 431, 8006, 8, 431, 10, 431, 12, 431, 8009, 9, 431, 5, 431, 8011, 8, 431, 10, 431, 12, 431, 8014, 9, 431, 1, 431, 3, 431, 8017, 8, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 432, 1, 432, 5, 432, 8025, 8, 432, 10, 432, 12, 432, 8028, 9, 432, 1, 433, 1, 433, 3, 433, 8032, 8, 433, 1, 433, 1, 433, 1, 433, 1, 433, 5, 433, 8038, 8, 433, 10, 433, 12, 433, 8041, 9, 433, 4, 433, 8043, 8, 433, 11, 433, 12, 433, 8044, 1, 433, 3, 433, 8048, 8, 433, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 3, 434, 8055, 8, 434, 1, 434, 1, 434, 1, 434, 1, 434, 3, 434, 8061, 8, 434, 1, 434, 1, 434, 1, 435, 1, 435, 1, 435, 1, 435, 3, 435, 8069, 8, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 3, 435, 8077, 8, 435, 1, 435, 3, 435, 8080, 8, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 3, 435, 8087, 8, 435, 3, 435, 8089, 8, 435, 1, 436, 3, 436, 8092, 8, 436, 1, 436, 1, 436, 1, 436, 1, 436, 3, 436, 8098, 8, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 3, 437, 8107, 8, 437, 1, 437, 1, 437, 3, 437, 8111, 8, 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, 3, 438, 8125, 8, 438, 1, 438, 3, 438, 8128, 8, 438, 3, 438, 8130, 8, 438, 1, 438, 1, 438, 1, 439, 1, 439, 3, 439, 8136, 8, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 1, 439, 4, 439, 8144, 8, 439, 11, 439, 12, 439, 8145, 3, 439, 8148, 8, 439, 3, 439, 8150, 8, 439, 1, 439, 1, 439, 1, 439, 1, 439, 5, 439, 8156, 8, 439, 10, 439, 12, 439, 8159, 9, 439, 3, 439, 8161, 8, 439, 1, 439, 3, 439, 8164, 8, 439, 1, 440, 1, 440, 1, 440, 1, 440, 1, 441, 1, 441, 1, 441, 1, 441, 3, 441, 8174, 8, 441, 1, 441, 1, 441, 1, 442, 1, 442, 5, 442, 8180, 8, 442, 10, 442, 12, 442, 8183, 9, 442, 1, 442, 1, 442, 1, 442, 3, 442, 8188, 8, 442, 1, 442, 1, 442, 1, 443, 1, 443, 3, 443, 8194, 8, 443, 1, 443, 1, 443, 1, 444, 1, 444, 1, 444, 3, 444, 8201, 8, 444, 1, 444, 1, 444, 3, 444, 8205, 8, 444, 1, 444, 1, 444, 3, 444, 8209, 8, 444, 1, 444, 3, 444, 8212, 8, 444, 1, 444, 3, 444, 8215, 8, 444, 1, 444, 1, 444, 1, 445, 1, 445, 3, 445, 8221, 8, 445, 1, 445, 1, 445, 1, 446, 1, 446, 1, 446, 3, 446, 8228, 8, 446, 1, 446, 3, 446, 8231, 8, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 3, 446, 8239, 8, 446, 3, 446, 8241, 8, 446, 1, 446, 1, 446, 1, 446, 1, 446, 1, 446, 5, 446, 8248, 8, 446, 10, 446, 12, 446, 8251, 9, 446, 1, 446, 1, 446, 3, 446, 8255, 8, 446, 3, 446, 8257, 8, 446, 1, 446, 1, 446, 1, 447, 1, 447, 1, 447, 3, 447, 8264, 8, 447, 1, 447, 1, 447, 1, 448, 1, 448, 3, 448, 8270, 8, 448, 1, 448, 3, 448, 8273, 8, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 8285, 8, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 8292, 8, 449, 3, 449, 8294, 8, 449, 1, 450, 1, 450, 3, 450, 8298, 8, 450, 1, 450, 1, 450, 1, 450, 1, 451, 3, 451, 8304, 8, 451, 1, 451, 1, 451, 1, 451, 3, 451, 8309, 8, 451, 1, 451, 1, 451, 3, 451, 8313, 8, 451, 1, 451, 3, 451, 8316, 8, 451, 1, 451, 3, 451, 8319, 8, 451, 1, 451, 1, 451, 1, 451, 1, 451, 1, 451, 4, 451, 8326, 8, 451, 11, 451, 12, 451, 8327, 1, 452, 3, 452, 8331, 8, 452, 1, 452, 1, 452, 3, 452, 8335, 8, 452, 1, 452, 1, 452, 3, 452, 8339, 8, 452, 3, 452, 8341, 8, 452, 1, 452, 3, 452, 8344, 8, 452, 1, 452, 3, 452, 8347, 8, 452, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8353, 8, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8360, 8, 453, 1, 453, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8367, 8, 453, 1, 453, 1, 453, 1, 453, 1, 453, 3, 453, 8373, 8, 453, 3, 453, 8375, 8, 453, 1, 454, 1, 454, 3, 454, 8379, 8, 454, 1, 454, 1, 454, 1, 454, 3, 454, 8384, 8, 454, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 5, 455, 8400, 8, 455, 10, 455, 12, 455, 8403, 9, 455, 1, 455, 1, 455, 4, 455, 8407, 8, 455, 11, 455, 12, 455, 8408, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 5, 456, 8416, 8, 456, 10, 456, 12, 456, 8419, 9, 456, 1, 456, 1, 456, 1, 456, 1, 456, 3, 456, 8425, 8, 456, 1, 457, 1, 457, 3, 457, 8429, 8, 457, 1, 458, 1, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 1, 460, 3, 460, 8441, 8, 460, 1, 460, 3, 460, 8444, 8, 460, 1, 460, 1, 460, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 1, 461, 3, 461, 8457, 8, 461, 1, 461, 3, 461, 8460, 8, 461, 1, 462, 1, 462, 3, 462, 8464, 8, 462, 1, 463, 1, 463, 1, 463, 1, 463, 1, 463, 5, 463, 8471, 8, 463, 10, 463, 12, 463, 8474, 9, 463, 1, 463, 1, 463, 5, 463, 8478, 8, 463, 10, 463, 12, 463, 8481, 9, 463, 4, 463, 8483, 8, 463, 11, 463, 12, 463, 8484, 1, 464, 1, 464, 1, 464, 3, 464, 8490, 8, 464, 1, 465, 1, 465, 3, 465, 8494, 8, 465, 1, 466, 3, 466, 8497, 8, 466, 1, 466, 3, 466, 8500, 8, 466, 1, 466, 3, 466, 8503, 8, 466, 1, 466, 3, 466, 8506, 8, 466, 1, 466, 3, 466, 8509, 8, 466, 1, 466, 1, 466, 3, 466, 8513, 8, 466, 1, 466, 3, 466, 8516, 8, 466, 1, 466, 0, 3, 678, 682, 684, 467, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 500, 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, 924, 926, 928, 930, 932, 0, 119, 2, 0, 195, 195, 364, 364, 2, 0, 66, 66, 318, 318, 2, 0, 99, 99, 318, 318, 2, 0, 134, 134, 318, 318, 1, 0, 529, 531, 2, 0, 10, 10, 94, 94, 2, 0, 133, 133, 191, 191, 2, 0, 254, 254, 332, 332, 2, 0, 162, 162, 363, 363, 2, 0, 180, 180, 221, 221, 5, 0, 30, 30, 288, 288, 329, 329, 352, 352, 354, 354, 2, 0, 109, 109, 532, 532, 2, 0, 158, 158, 277, 277, 2, 0, 367, 367, 439, 439, 2, 0, 139, 139, 312, 312, 2, 0, 191, 191, 333, 333, 2, 0, 313, 313, 333, 333, 2, 0, 150, 150, 315, 315, 2, 0, 64, 64, 94, 94, 4, 0, 78, 78, 183, 183, 197, 197, 298, 298, 1, 0, 549, 551, 2, 0, 213, 213, 254, 254, 2, 0, 352, 352, 354, 354, 2, 0, 200, 200, 224, 224, 9, 0, 30, 30, 160, 160, 165, 165, 179, 179, 219, 219, 227, 227, 342, 342, 345, 345, 438, 438, 3, 0, 113, 113, 284, 284, 336, 336, 2, 0, 53, 53, 78, 78, 2, 0, 105, 105, 379, 379, 2, 0, 260, 260, 262, 262, 3, 0, 173, 173, 260, 260, 262, 262, 1, 0, 12, 13, 2, 0, 64, 64, 375, 375, 2, 0, 156, 156, 206, 206, 2, 0, 189, 189, 360, 360, 2, 0, 215, 215, 373, 373, 3, 0, 133, 133, 191, 191, 333, 333, 5, 0, 30, 30, 88, 88, 182, 182, 241, 241, 369, 369, 2, 0, 9, 9, 94, 94, 2, 0, 92, 92, 226, 226, 1, 0, 448, 449, 2, 0, 92, 92, 414, 414, 2, 0, 341, 341, 414, 414, 4, 0, 163, 163, 185, 185, 283, 283, 353, 353, 2, 0, 135, 135, 145, 145, 2, 0, 211, 211, 278, 278, 3, 0, 321, 321, 357, 357, 445, 445, 3, 0, 66, 66, 99, 99, 318, 318, 5, 0, 108, 108, 168, 168, 226, 226, 328, 328, 342, 342, 2, 0, 167, 167, 314, 314, 2, 0, 61, 61, 265, 265, 4, 0, 207, 207, 249, 249, 268, 268, 293, 293, 2, 0, 130, 130, 307, 307, 2, 0, 64, 64, 68, 68, 10, 0, 46, 46, 88, 88, 182, 182, 202, 202, 241, 241, 352, 352, 354, 354, 357, 358, 369, 369, 521, 523, 5, 0, 212, 212, 329, 329, 350, 350, 455, 455, 457, 457, 5, 0, 212, 212, 329, 329, 350, 350, 361, 361, 455, 456, 2, 0, 37, 37, 55, 55, 2, 0, 207, 207, 249, 249, 2, 0, 10, 10, 53, 53, 2, 0, 181, 181, 243, 243, 2, 0, 170, 170, 320, 320, 2, 0, 141, 141, 223, 223, 5, 0, 108, 108, 168, 168, 189, 189, 342, 342, 360, 360, 2, 0, 226, 226, 328, 328, 2, 0, 163, 163, 185, 185, 2, 0, 186, 186, 193, 193, 4, 0, 88, 88, 182, 182, 241, 241, 369, 369, 2, 0, 137, 137, 242, 242, 2, 0, 161, 161, 319, 319, 4, 0, 129, 129, 161, 161, 319, 319, 454, 454, 2, 0, 356, 356, 380, 380, 2, 0, 81, 81, 382, 382, 2, 0, 151, 151, 254, 254, 2, 0, 133, 133, 138, 138, 1, 0, 31, 32, 2, 0, 128, 128, 547, 547, 2, 0, 60, 60, 96, 96, 2, 0, 99, 99, 349, 349, 2, 0, 131, 131, 414, 414, 2, 0, 201, 201, 334, 334, 3, 0, 59, 59, 70, 70, 97, 97, 2, 0, 30, 30, 56, 56, 1, 0, 527, 528, 2, 0, 207, 207, 268, 268, 2, 0, 320, 320, 414, 414, 2, 0, 574, 574, 576, 576, 1, 0, 468, 469, 4, 0, 113, 113, 115, 115, 119, 119, 126, 126, 2, 0, 360, 360, 477, 477, 2, 0, 394, 395, 409, 409, 2, 0, 391, 392, 406, 406, 1, 0, 391, 392, 1, 0, 418, 419, 5, 0, 10, 10, 16, 17, 21, 21, 23, 23, 25, 25, 3, 0, 9, 9, 14, 14, 27, 27, 2, 0, 98, 98, 396, 396, 2, 0, 50, 51, 75, 76, 2, 0, 41, 41, 420, 420, 3, 0, 39, 39, 73, 73, 95, 95, 4, 0, 393, 393, 399, 399, 404, 404, 425, 425, 2, 0, 292, 292, 347, 347, 2, 0, 166, 166, 188, 188, 2, 0, 304, 304, 450, 450, 3, 0, 299, 299, 320, 320, 481, 481, 2, 0, 208, 208, 289, 289, 3, 0, 30, 30, 34, 34, 90, 90, 6, 0, 9, 10, 12, 17, 21, 21, 23, 23, 25, 25, 27, 27, 2, 0, 114, 114, 120, 120, 2, 0, 20, 20, 22, 22, 1, 0, 483, 486, 17, 0, 53, 53, 116, 116, 123, 124, 129, 228, 238, 386, 433, 452, 455, 469, 471, 471, 473, 473, 475, 475, 477, 488, 490, 502, 504, 504, 506, 518, 520, 520, 524, 524, 547, 548, 3, 0, 106, 123, 125, 128, 472, 472, 4, 0, 30, 52, 54, 70, 72, 105, 454, 454, 2, 0, 62, 62, 116, 116, 2, 0, 10, 10, 20, 20, 2, 0, 434, 434, 501, 501, 2, 0, 167, 167, 507, 507, 1, 0, 512, 517, 2, 0, 144, 144, 210, 210, 9959, 0, 937, 1, 0, 0, 0, 2, 942, 1, 0, 0, 0, 4, 1066, 1, 0, 0, 0, 6, 1068, 1, 0, 0, 0, 8, 1071, 1, 0, 0, 0, 10, 1121, 1, 0, 0, 0, 12, 1131, 1, 0, 0, 0, 14, 1133, 1, 0, 0, 0, 16, 1145, 1, 0, 0, 0, 18, 1157, 1, 0, 0, 0, 20, 1168, 1, 0, 0, 0, 22, 1202, 1, 0, 0, 0, 24, 1246, 1, 0, 0, 0, 26, 1248, 1, 0, 0, 0, 28, 1260, 1, 0, 0, 0, 30, 1267, 1, 0, 0, 0, 32, 1286, 1, 0, 0, 0, 34, 1294, 1, 0, 0, 0, 36, 1296, 1, 0, 0, 0, 38, 1310, 1, 0, 0, 0, 40, 1314, 1, 0, 0, 0, 42, 1351, 1, 0, 0, 0, 44, 1353, 1, 0, 0, 0, 46, 1361, 1, 0, 0, 0, 48, 1371, 1, 0, 0, 0, 50, 1378, 1, 0, 0, 0, 52, 1386, 1, 0, 0, 0, 54, 1392, 1, 0, 0, 0, 56, 1408, 1, 0, 0, 0, 58, 1412, 1, 0, 0, 0, 60, 1414, 1, 0, 0, 0, 62, 1426, 1, 0, 0, 0, 64, 1431, 1, 0, 0, 0, 66, 1436, 1, 0, 0, 0, 68, 1438, 1, 0, 0, 0, 70, 1450, 1, 0, 0, 0, 72, 1458, 1, 0, 0, 0, 74, 1460, 1, 0, 0, 0, 76, 1584, 1, 0, 0, 0, 78, 1586, 1, 0, 0, 0, 80, 1603, 1, 0, 0, 0, 82, 1605, 1, 0, 0, 0, 84, 1619, 1, 0, 0, 0, 86, 1621, 1, 0, 0, 0, 88, 1635, 1, 0, 0, 0, 90, 1637, 1, 0, 0, 0, 92, 1874, 1, 0, 0, 0, 94, 1881, 1, 0, 0, 0, 96, 1883, 1, 0, 0, 0, 98, 1885, 1, 0, 0, 0, 100, 1888, 1, 0, 0, 0, 102, 1899, 1, 0, 0, 0, 104, 1902, 1, 0, 0, 0, 106, 1931, 1, 0, 0, 0, 108, 1933, 1, 0, 0, 0, 110, 1974, 1, 0, 0, 0, 112, 1976, 1, 0, 0, 0, 114, 2030, 1, 0, 0, 0, 116, 2076, 1, 0, 0, 0, 118, 2097, 1, 0, 0, 0, 120, 2099, 1, 0, 0, 0, 122, 2116, 1, 0, 0, 0, 124, 2197, 1, 0, 0, 0, 126, 2199, 1, 0, 0, 0, 128, 2210, 1, 0, 0, 0, 130, 2233, 1, 0, 0, 0, 132, 2251, 1, 0, 0, 0, 134, 2253, 1, 0, 0, 0, 136, 2288, 1, 0, 0, 0, 138, 2381, 1, 0, 0, 0, 140, 2386, 1, 0, 0, 0, 142, 2388, 1, 0, 0, 0, 144, 2486, 1, 0, 0, 0, 146, 2488, 1, 0, 0, 0, 148, 2492, 1, 0, 0, 0, 150, 2503, 1, 0, 0, 0, 152, 2511, 1, 0, 0, 0, 154, 2514, 1, 0, 0, 0, 156, 2517, 1, 0, 0, 0, 158, 2535, 1, 0, 0, 0, 160, 2537, 1, 0, 0, 0, 162, 2541, 1, 0, 0, 0, 164, 2554, 1, 0, 0, 0, 166, 2556, 1, 0, 0, 0, 168, 2561, 1, 0, 0, 0, 170, 2581, 1, 0, 0, 0, 172, 2589, 1, 0, 0, 0, 174, 2596, 1, 0, 0, 0, 176, 2598, 1, 0, 0, 0, 178, 2607, 1, 0, 0, 0, 180, 2610, 1, 0, 0, 0, 182, 2614, 1, 0, 0, 0, 184, 2618, 1, 0, 0, 0, 186, 2643, 1, 0, 0, 0, 188, 2653, 1, 0, 0, 0, 190, 2667, 1, 0, 0, 0, 192, 2683, 1, 0, 0, 0, 194, 2689, 1, 0, 0, 0, 196, 2716, 1, 0, 0, 0, 198, 2726, 1, 0, 0, 0, 200, 2742, 1, 0, 0, 0, 202, 2786, 1, 0, 0, 0, 204, 2793, 1, 0, 0, 0, 206, 2795, 1, 0, 0, 0, 208, 2821, 1, 0, 0, 0, 210, 2832, 1, 0, 0, 0, 212, 2851, 1, 0, 0, 0, 214, 2862, 1, 0, 0, 0, 216, 2900, 1, 0, 0, 0, 218, 2921, 1, 0, 0, 0, 220, 2923, 1, 0, 0, 0, 222, 2943, 1, 0, 0, 0, 224, 2955, 1, 0, 0, 0, 226, 2967, 1, 0, 0, 0, 228, 2970, 1, 0, 0, 0, 230, 2973, 1, 0, 0, 0, 232, 2993, 1, 0, 0, 0, 234, 2998, 1, 0, 0, 0, 236, 3047, 1, 0, 0, 0, 238, 3049, 1, 0, 0, 0, 240, 3072, 1, 0, 0, 0, 242, 3088, 1, 0, 0, 0, 244, 3100, 1, 0, 0, 0, 246, 3127, 1, 0, 0, 0, 248, 3142, 1, 0, 0, 0, 250, 3205, 1, 0, 0, 0, 252, 3207, 1, 0, 0, 0, 254, 3212, 1, 0, 0, 0, 256, 3218, 1, 0, 0, 0, 258, 3305, 1, 0, 0, 0, 260, 3311, 1, 0, 0, 0, 262, 3313, 1, 0, 0, 0, 264, 3329, 1, 0, 0, 0, 266, 3331, 1, 0, 0, 0, 268, 3340, 1, 0, 0, 0, 270, 3344, 1, 0, 0, 0, 272, 3357, 1, 0, 0, 0, 274, 3369, 1, 0, 0, 0, 276, 3371, 1, 0, 0, 0, 278, 3393, 1, 0, 0, 0, 280, 3405, 1, 0, 0, 0, 282, 3416, 1, 0, 0, 0, 284, 3507, 1, 0, 0, 0, 286, 3509, 1, 0, 0, 0, 288, 3520, 1, 0, 0, 0, 290, 3531, 1, 0, 0, 0, 292, 3533, 1, 0, 0, 0, 294, 3559, 1, 0, 0, 0, 296, 3561, 1, 0, 0, 0, 298, 3565, 1, 0, 0, 0, 300, 3615, 1, 0, 0, 0, 302, 3617, 1, 0, 0, 0, 304, 3623, 1, 0, 0, 0, 306, 3648, 1, 0, 0, 0, 308, 3652, 1, 0, 0, 0, 310, 3866, 1, 0, 0, 0, 312, 3884, 1, 0, 0, 0, 314, 3910, 1, 0, 0, 0, 316, 3912, 1, 0, 0, 0, 318, 3920, 1, 0, 0, 0, 320, 3926, 1, 0, 0, 0, 322, 3930, 1, 0, 0, 0, 324, 3950, 1, 0, 0, 0, 326, 3956, 1, 0, 0, 0, 328, 4023, 1, 0, 0, 0, 330, 4054, 1, 0, 0, 0, 332, 4100, 1, 0, 0, 0, 334, 4102, 1, 0, 0, 0, 336, 4104, 1, 0, 0, 0, 338, 4115, 1, 0, 0, 0, 340, 4152, 1, 0, 0, 0, 342, 4154, 1, 0, 0, 0, 344, 4160, 1, 0, 0, 0, 346, 4210, 1, 0, 0, 0, 348, 4213, 1, 0, 0, 0, 350, 4227, 1, 0, 0, 0, 352, 4248, 1, 0, 0, 0, 354, 4272, 1, 0, 0, 0, 356, 4313, 1, 0, 0, 0, 358, 4315, 1, 0, 0, 0, 360, 4317, 1, 0, 0, 0, 362, 4357, 1, 0, 0, 0, 364, 4374, 1, 0, 0, 0, 366, 4394, 1, 0, 0, 0, 368, 4447, 1, 0, 0, 0, 370, 4450, 1, 0, 0, 0, 372, 4456, 1, 0, 0, 0, 374, 4464, 1, 0, 0, 0, 376, 4477, 1, 0, 0, 0, 378, 4479, 1, 0, 0, 0, 380, 4492, 1, 0, 0, 0, 382, 4494, 1, 0, 0, 0, 384, 4507, 1, 0, 0, 0, 386, 4517, 1, 0, 0, 0, 388, 4528, 1, 0, 0, 0, 390, 4539, 1, 0, 0, 0, 392, 4541, 1, 0, 0, 0, 394, 4546, 1, 0, 0, 0, 396, 4560, 1, 0, 0, 0, 398, 4592, 1, 0, 0, 0, 400, 4629, 1, 0, 0, 0, 402, 4631, 1, 0, 0, 0, 404, 4634, 1, 0, 0, 0, 406, 4637, 1, 0, 0, 0, 408, 4654, 1, 0, 0, 0, 410, 4675, 1, 0, 0, 0, 412, 4691, 1, 0, 0, 0, 414, 4707, 1, 0, 0, 0, 416, 4729, 1, 0, 0, 0, 418, 4734, 1, 0, 0, 0, 420, 4737, 1, 0, 0, 0, 422, 4745, 1, 0, 0, 0, 424, 4770, 1, 0, 0, 0, 426, 4773, 1, 0, 0, 0, 428, 4801, 1, 0, 0, 0, 430, 4806, 1, 0, 0, 0, 432, 4846, 1, 0, 0, 0, 434, 5058, 1, 0, 0, 0, 436, 5060, 1, 0, 0, 0, 438, 5148, 1, 0, 0, 0, 440, 5150, 1, 0, 0, 0, 442, 5156, 1, 0, 0, 0, 444, 5167, 1, 0, 0, 0, 446, 5177, 1, 0, 0, 0, 448, 5257, 1, 0, 0, 0, 450, 5259, 1, 0, 0, 0, 452, 5273, 1, 0, 0, 0, 454, 5295, 1, 0, 0, 0, 456, 5368, 1, 0, 0, 0, 458, 5370, 1, 0, 0, 0, 460, 5411, 1, 0, 0, 0, 462, 5413, 1, 0, 0, 0, 464, 5418, 1, 0, 0, 0, 466, 5421, 1, 0, 0, 0, 468, 5424, 1, 0, 0, 0, 470, 5474, 1, 0, 0, 0, 472, 5476, 1, 0, 0, 0, 474, 5487, 1, 0, 0, 0, 476, 5489, 1, 0, 0, 0, 478, 5499, 1, 0, 0, 0, 480, 5534, 1, 0, 0, 0, 482, 5537, 1, 0, 0, 0, 484, 5558, 1, 0, 0, 0, 486, 5568, 1, 0, 0, 0, 488, 5588, 1, 0, 0, 0, 490, 5594, 1, 0, 0, 0, 492, 5600, 1, 0, 0, 0, 494, 5605, 1, 0, 0, 0, 496, 5618, 1, 0, 0, 0, 498, 5645, 1, 0, 0, 0, 500, 5693, 1, 0, 0, 0, 502, 5695, 1, 0, 0, 0, 504, 5733, 1, 0, 0, 0, 506, 5735, 1, 0, 0, 0, 508, 5756, 1, 0, 0, 0, 510, 5776, 1, 0, 0, 0, 512, 5780, 1, 0, 0, 0, 514, 5795, 1, 0, 0, 0, 516, 5797, 1, 0, 0, 0, 518, 5801, 1, 0, 0, 0, 520, 5805, 1, 0, 0, 0, 522, 5813, 1, 0, 0, 0, 524, 5837, 1, 0, 0, 0, 526, 5839, 1, 0, 0, 0, 528, 5850, 1, 0, 0, 0, 530, 5858, 1, 0, 0, 0, 532, 5874, 1, 0, 0, 0, 534, 5899, 1, 0, 0, 0, 536, 5901, 1, 0, 0, 0, 538, 5905, 1, 0, 0, 0, 540, 5914, 1, 0, 0, 0, 542, 5954, 1, 0, 0, 0, 544, 5965, 1, 0, 0, 0, 546, 5973, 1, 0, 0, 0, 548, 5976, 1, 0, 0, 0, 550, 5980, 1, 0, 0, 0, 552, 5995, 1, 0, 0, 0, 554, 6020, 1, 0, 0, 0, 556, 6035, 1, 0, 0, 0, 558, 6061, 1, 0, 0, 0, 560, 6063, 1, 0, 0, 0, 562, 6086, 1, 0, 0, 0, 564, 6088, 1, 0, 0, 0, 566, 6096, 1, 0, 0, 0, 568, 6114, 1, 0, 0, 0, 570, 6138, 1, 0, 0, 0, 572, 6150, 1, 0, 0, 0, 574, 6154, 1, 0, 0, 0, 576, 6166, 1, 0, 0, 0, 578, 6186, 1, 0, 0, 0, 580, 6194, 1, 0, 0, 0, 582, 6208, 1, 0, 0, 0, 584, 6231, 1, 0, 0, 0, 586, 6233, 1, 0, 0, 0, 588, 6238, 1, 0, 0, 0, 590, 6248, 1, 0, 0, 0, 592, 6269, 1, 0, 0, 0, 594, 6271, 1, 0, 0, 0, 596, 6280, 1, 0, 0, 0, 598, 6291, 1, 0, 0, 0, 600, 6301, 1, 0, 0, 0, 602, 6303, 1, 0, 0, 0, 604, 6310, 1, 0, 0, 0, 606, 6341, 1, 0, 0, 0, 608, 6371, 1, 0, 0, 0, 610, 6373, 1, 0, 0, 0, 612, 6382, 1, 0, 0, 0, 614, 6385, 1, 0, 0, 0, 616, 6456, 1, 0, 0, 0, 618, 6480, 1, 0, 0, 0, 620, 6501, 1, 0, 0, 0, 622, 6503, 1, 0, 0, 0, 624, 6511, 1, 0, 0, 0, 626, 6528, 1, 0, 0, 0, 628, 6554, 1, 0, 0, 0, 630, 6556, 1, 0, 0, 0, 632, 6564, 1, 0, 0, 0, 634, 6571, 1, 0, 0, 0, 636, 6595, 1, 0, 0, 0, 638, 6601, 1, 0, 0, 0, 640, 6609, 1, 0, 0, 0, 642, 6612, 1, 0, 0, 0, 644, 6619, 1, 0, 0, 0, 646, 6627, 1, 0, 0, 0, 648, 6632, 1, 0, 0, 0, 650, 6662, 1, 0, 0, 0, 652, 6689, 1, 0, 0, 0, 654, 6717, 1, 0, 0, 0, 656, 6734, 1, 0, 0, 0, 658, 6740, 1, 0, 0, 0, 660, 6758, 1, 0, 0, 0, 662, 6760, 1, 0, 0, 0, 664, 6764, 1, 0, 0, 0, 666, 6781, 1, 0, 0, 0, 668, 6786, 1, 0, 0, 0, 670, 6824, 1, 0, 0, 0, 672, 6826, 1, 0, 0, 0, 674, 6830, 1, 0, 0, 0, 676, 6832, 1, 0, 0, 0, 678, 6841, 1, 0, 0, 0, 680, 6925, 1, 0, 0, 0, 682, 6931, 1, 0, 0, 0, 684, 7040, 1, 0, 0, 0, 686, 7072, 1, 0, 0, 0, 688, 7123, 1, 0, 0, 0, 690, 7127, 1, 0, 0, 0, 692, 7303, 1, 0, 0, 0, 694, 7305, 1, 0, 0, 0, 696, 7313, 1, 0, 0, 0, 698, 7318, 1, 0, 0, 0, 700, 7320, 1, 0, 0, 0, 702, 7328, 1, 0, 0, 0, 704, 7331, 1, 0, 0, 0, 706, 7340, 1, 0, 0, 0, 708, 7344, 1, 0, 0, 0, 710, 7349, 1, 0, 0, 0, 712, 7366, 1, 0, 0, 0, 714, 7393, 1, 0, 0, 0, 716, 7402, 1, 0, 0, 0, 718, 7404, 1, 0, 0, 0, 720, 7411, 1, 0, 0, 0, 722, 7415, 1, 0, 0, 0, 724, 7417, 1, 0, 0, 0, 726, 7425, 1, 0, 0, 0, 728, 7433, 1, 0, 0, 0, 730, 7440, 1, 0, 0, 0, 732, 7442, 1, 0, 0, 0, 734, 7455, 1, 0, 0, 0, 736, 7459, 1, 0, 0, 0, 738, 7461, 1, 0, 0, 0, 740, 7476, 1, 0, 0, 0, 742, 7478, 1, 0, 0, 0, 744, 7500, 1, 0, 0, 0, 746, 7502, 1, 0, 0, 0, 748, 7525, 1, 0, 0, 0, 750, 7527, 1, 0, 0, 0, 752, 7549, 1, 0, 0, 0, 754, 7552, 1, 0, 0, 0, 756, 7559, 1, 0, 0, 0, 758, 7562, 1, 0, 0, 0, 760, 7578, 1, 0, 0, 0, 762, 7580, 1, 0, 0, 0, 764, 7588, 1, 0, 0, 0, 766, 7596, 1, 0, 0, 0, 768, 7604, 1, 0, 0, 0, 770, 7612, 1, 0, 0, 0, 772, 7614, 1, 0, 0, 0, 774, 7616, 1, 0, 0, 0, 776, 7618, 1, 0, 0, 0, 778, 7620, 1, 0, 0, 0, 780, 7622, 1, 0, 0, 0, 782, 7624, 1, 0, 0, 0, 784, 7628, 1, 0, 0, 0, 786, 7636, 1, 0, 0, 0, 788, 7644, 1, 0, 0, 0, 790, 7646, 1, 0, 0, 0, 792, 7648, 1, 0, 0, 0, 794, 7650, 1, 0, 0, 0, 796, 7652, 1, 0, 0, 0, 798, 7658, 1, 0, 0, 0, 800, 7664, 1, 0, 0, 0, 802, 7670, 1, 0, 0, 0, 804, 7672, 1, 0, 0, 0, 806, 7678, 1, 0, 0, 0, 808, 7684, 1, 0, 0, 0, 810, 7686, 1, 0, 0, 0, 812, 7702, 1, 0, 0, 0, 814, 7705, 1, 0, 0, 0, 816, 7714, 1, 0, 0, 0, 818, 7716, 1, 0, 0, 0, 820, 7726, 1, 0, 0, 0, 822, 7730, 1, 0, 0, 0, 824, 7735, 1, 0, 0, 0, 826, 7741, 1, 0, 0, 0, 828, 7754, 1, 0, 0, 0, 830, 7756, 1, 0, 0, 0, 832, 7809, 1, 0, 0, 0, 834, 7811, 1, 0, 0, 0, 836, 7813, 1, 0, 0, 0, 838, 7816, 1, 0, 0, 0, 840, 7844, 1, 0, 0, 0, 842, 7848, 1, 0, 0, 0, 844, 7899, 1, 0, 0, 0, 846, 7902, 1, 0, 0, 0, 848, 7928, 1, 0, 0, 0, 850, 7930, 1, 0, 0, 0, 852, 7953, 1, 0, 0, 0, 854, 7955, 1, 0, 0, 0, 856, 7960, 1, 0, 0, 0, 858, 7975, 1, 0, 0, 0, 860, 7981, 1, 0, 0, 0, 862, 7992, 1, 0, 0, 0, 864, 8022, 1, 0, 0, 0, 866, 8029, 1, 0, 0, 0, 868, 8054, 1, 0, 0, 0, 870, 8064, 1, 0, 0, 0, 872, 8091, 1, 0, 0, 0, 874, 8104, 1, 0, 0, 0, 876, 8114, 1, 0, 0, 0, 878, 8133, 1, 0, 0, 0, 880, 8165, 1, 0, 0, 0, 882, 8169, 1, 0, 0, 0, 884, 8177, 1, 0, 0, 0, 886, 8191, 1, 0, 0, 0, 888, 8197, 1, 0, 0, 0, 890, 8218, 1, 0, 0, 0, 892, 8224, 1, 0, 0, 0, 894, 8263, 1, 0, 0, 0, 896, 8267, 1, 0, 0, 0, 898, 8293, 1, 0, 0, 0, 900, 8295, 1, 0, 0, 0, 902, 8303, 1, 0, 0, 0, 904, 8340, 1, 0, 0, 0, 906, 8374, 1, 0, 0, 0, 908, 8376, 1, 0, 0, 0, 910, 8387, 1, 0, 0, 0, 912, 8424, 1, 0, 0, 0, 914, 8428, 1, 0, 0, 0, 916, 8430, 1, 0, 0, 0, 918, 8434, 1, 0, 0, 0, 920, 8437, 1, 0, 0, 0, 922, 8459, 1, 0, 0, 0, 924, 8463, 1, 0, 0, 0, 926, 8465, 1, 0, 0, 0, 928, 8489, 1, 0, 0, 0, 930, 8493, 1, 0, 0, 0, 932, 8496, 1, 0, 0, 0, 934, 936, 3, 2, 1, 0, 935, 934, 1, 0, 0, 0, 936, 939, 1, 0, 0, 0, 937, 935, 1, 0, 0, 0, 937, 938, 1, 0, 0, 0, 938, 940, 1, 0, 0, 0, 939, 937, 1, 0, 0, 0, 940, 941, 5, 0, 0, 1, 941, 1, 1, 0, 0, 0, 942, 944, 3, 4, 2, 0, 943, 945, 5, 7, 0, 0, 944, 943, 1, 0, 0, 0, 944, 945, 1, 0, 0, 0, 945, 3, 1, 0, 0, 0, 946, 1067, 3, 280, 140, 0, 947, 1067, 3, 490, 245, 0, 948, 1067, 3, 486, 243, 0, 949, 1067, 3, 488, 244, 0, 950, 1067, 3, 354, 177, 0, 951, 1067, 3, 496, 248, 0, 952, 1067, 3, 294, 147, 0, 953, 1067, 3, 212, 106, 0, 954, 1067, 3, 214, 107, 0, 955, 1067, 3, 220, 110, 0, 956, 1067, 3, 234, 117, 0, 957, 1067, 3, 406, 203, 0, 958, 1067, 3, 28, 14, 0, 959, 1067, 3, 436, 218, 0, 960, 1067, 3, 438, 219, 0, 961, 1067, 3, 448, 224, 0, 962, 1067, 3, 440, 220, 0, 963, 1067, 3, 446, 223, 0, 964, 1067, 3, 246, 123, 0, 965, 1067, 3, 248, 124, 0, 966, 1067, 3, 200, 100, 0, 967, 1067, 3, 492, 246, 0, 968, 1067, 3, 76, 38, 0, 969, 1067, 3, 432, 216, 0, 970, 1067, 3, 108, 54, 0, 971, 1067, 3, 452, 226, 0, 972, 1067, 3, 18, 9, 0, 973, 1067, 3, 20, 10, 0, 974, 1067, 3, 16, 8, 0, 975, 1067, 3, 456, 228, 0, 976, 1067, 3, 186, 93, 0, 977, 1067, 3, 500, 250, 0, 978, 1067, 3, 498, 249, 0, 979, 1067, 3, 242, 121, 0, 980, 1067, 3, 508, 254, 0, 981, 1067, 3, 6, 3, 0, 982, 1067, 3, 72, 36, 0, 983, 1067, 3, 112, 56, 0, 984, 1067, 3, 504, 252, 0, 985, 1067, 3, 326, 163, 0, 986, 1067, 3, 70, 35, 0, 987, 1067, 3, 114, 57, 0, 988, 1067, 3, 256, 128, 0, 989, 1067, 3, 188, 94, 0, 990, 1067, 3, 282, 141, 0, 991, 1067, 3, 422, 211, 0, 992, 1067, 3, 502, 251, 0, 993, 1067, 3, 494, 247, 0, 994, 1067, 3, 210, 105, 0, 995, 1067, 3, 216, 108, 0, 996, 1067, 3, 230, 115, 0, 997, 1067, 3, 236, 118, 0, 998, 1067, 3, 366, 183, 0, 999, 1067, 3, 26, 13, 0, 1000, 1067, 3, 194, 97, 0, 1001, 1067, 3, 298, 149, 0, 1002, 1067, 3, 302, 151, 0, 1003, 1067, 3, 450, 225, 0, 1004, 1067, 3, 304, 152, 0, 1005, 1067, 3, 244, 122, 0, 1006, 1067, 3, 206, 103, 0, 1007, 1067, 3, 30, 15, 0, 1008, 1067, 3, 198, 99, 0, 1009, 1067, 3, 122, 61, 0, 1010, 1067, 3, 454, 227, 0, 1011, 1067, 3, 184, 92, 0, 1012, 1067, 3, 208, 104, 0, 1013, 1067, 3, 426, 213, 0, 1014, 1067, 3, 258, 129, 0, 1015, 1067, 3, 276, 138, 0, 1016, 1067, 3, 8, 4, 0, 1017, 1067, 3, 14, 7, 0, 1018, 1067, 3, 240, 120, 0, 1019, 1067, 3, 482, 241, 0, 1020, 1067, 3, 538, 269, 0, 1021, 1067, 3, 560, 280, 0, 1022, 1067, 3, 284, 142, 0, 1023, 1067, 3, 550, 275, 0, 1024, 1067, 3, 74, 37, 0, 1025, 1067, 3, 420, 210, 0, 1026, 1067, 3, 310, 155, 0, 1027, 1067, 3, 534, 267, 0, 1028, 1067, 3, 522, 261, 0, 1029, 1067, 3, 330, 165, 0, 1030, 1067, 3, 336, 168, 0, 1031, 1067, 3, 350, 175, 0, 1032, 1067, 3, 902, 451, 0, 1033, 1067, 3, 238, 119, 0, 1034, 1067, 3, 360, 180, 0, 1035, 1067, 3, 540, 270, 0, 1036, 1067, 3, 466, 233, 0, 1037, 1067, 3, 196, 98, 0, 1038, 1067, 3, 480, 240, 0, 1039, 1067, 3, 552, 276, 0, 1040, 1067, 3, 462, 231, 0, 1041, 1067, 3, 528, 264, 0, 1042, 1067, 3, 308, 154, 0, 1043, 1067, 3, 430, 215, 0, 1044, 1067, 3, 410, 205, 0, 1045, 1067, 3, 408, 204, 0, 1046, 1067, 3, 412, 206, 0, 1047, 1067, 3, 434, 217, 0, 1048, 1067, 3, 338, 169, 0, 1049, 1067, 3, 352, 176, 0, 1050, 1067, 3, 458, 229, 0, 1051, 1067, 3, 328, 164, 0, 1052, 1067, 3, 562, 281, 0, 1053, 1067, 3, 470, 235, 0, 1054, 1067, 3, 322, 161, 0, 1055, 1067, 3, 468, 234, 0, 1056, 1067, 3, 554, 277, 0, 1057, 1067, 3, 506, 253, 0, 1058, 1067, 3, 60, 30, 0, 1059, 1067, 3, 36, 18, 0, 1060, 1067, 3, 68, 34, 0, 1061, 1067, 3, 478, 239, 0, 1062, 1064, 5, 584, 0, 0, 1063, 1065, 5, 585, 0, 0, 1064, 1063, 1, 0, 0, 0, 1064, 1065, 1, 0, 0, 0, 1065, 1067, 1, 0, 0, 0, 1066, 946, 1, 0, 0, 0, 1066, 947, 1, 0, 0, 0, 1066, 948, 1, 0, 0, 0, 1066, 949, 1, 0, 0, 0, 1066, 950, 1, 0, 0, 0, 1066, 951, 1, 0, 0, 0, 1066, 952, 1, 0, 0, 0, 1066, 953, 1, 0, 0, 0, 1066, 954, 1, 0, 0, 0, 1066, 955, 1, 0, 0, 0, 1066, 956, 1, 0, 0, 0, 1066, 957, 1, 0, 0, 0, 1066, 958, 1, 0, 0, 0, 1066, 959, 1, 0, 0, 0, 1066, 960, 1, 0, 0, 0, 1066, 961, 1, 0, 0, 0, 1066, 962, 1, 0, 0, 0, 1066, 963, 1, 0, 0, 0, 1066, 964, 1, 0, 0, 0, 1066, 965, 1, 0, 0, 0, 1066, 966, 1, 0, 0, 0, 1066, 967, 1, 0, 0, 0, 1066, 968, 1, 0, 0, 0, 1066, 969, 1, 0, 0, 0, 1066, 970, 1, 0, 0, 0, 1066, 971, 1, 0, 0, 0, 1066, 972, 1, 0, 0, 0, 1066, 973, 1, 0, 0, 0, 1066, 974, 1, 0, 0, 0, 1066, 975, 1, 0, 0, 0, 1066, 976, 1, 0, 0, 0, 1066, 977, 1, 0, 0, 0, 1066, 978, 1, 0, 0, 0, 1066, 979, 1, 0, 0, 0, 1066, 980, 1, 0, 0, 0, 1066, 981, 1, 0, 0, 0, 1066, 982, 1, 0, 0, 0, 1066, 983, 1, 0, 0, 0, 1066, 984, 1, 0, 0, 0, 1066, 985, 1, 0, 0, 0, 1066, 986, 1, 0, 0, 0, 1066, 987, 1, 0, 0, 0, 1066, 988, 1, 0, 0, 0, 1066, 989, 1, 0, 0, 0, 1066, 990, 1, 0, 0, 0, 1066, 991, 1, 0, 0, 0, 1066, 992, 1, 0, 0, 0, 1066, 993, 1, 0, 0, 0, 1066, 994, 1, 0, 0, 0, 1066, 995, 1, 0, 0, 0, 1066, 996, 1, 0, 0, 0, 1066, 997, 1, 0, 0, 0, 1066, 998, 1, 0, 0, 0, 1066, 999, 1, 0, 0, 0, 1066, 1000, 1, 0, 0, 0, 1066, 1001, 1, 0, 0, 0, 1066, 1002, 1, 0, 0, 0, 1066, 1003, 1, 0, 0, 0, 1066, 1004, 1, 0, 0, 0, 1066, 1005, 1, 0, 0, 0, 1066, 1006, 1, 0, 0, 0, 1066, 1007, 1, 0, 0, 0, 1066, 1008, 1, 0, 0, 0, 1066, 1009, 1, 0, 0, 0, 1066, 1010, 1, 0, 0, 0, 1066, 1011, 1, 0, 0, 0, 1066, 1012, 1, 0, 0, 0, 1066, 1013, 1, 0, 0, 0, 1066, 1014, 1, 0, 0, 0, 1066, 1015, 1, 0, 0, 0, 1066, 1016, 1, 0, 0, 0, 1066, 1017, 1, 0, 0, 0, 1066, 1018, 1, 0, 0, 0, 1066, 1019, 1, 0, 0, 0, 1066, 1020, 1, 0, 0, 0, 1066, 1021, 1, 0, 0, 0, 1066, 1022, 1, 0, 0, 0, 1066, 1023, 1, 0, 0, 0, 1066, 1024, 1, 0, 0, 0, 1066, 1025, 1, 0, 0, 0, 1066, 1026, 1, 0, 0, 0, 1066, 1027, 1, 0, 0, 0, 1066, 1028, 1, 0, 0, 0, 1066, 1029, 1, 0, 0, 0, 1066, 1030, 1, 0, 0, 0, 1066, 1031, 1, 0, 0, 0, 1066, 1032, 1, 0, 0, 0, 1066, 1033, 1, 0, 0, 0, 1066, 1034, 1, 0, 0, 0, 1066, 1035, 1, 0, 0, 0, 1066, 1036, 1, 0, 0, 0, 1066, 1037, 1, 0, 0, 0, 1066, 1038, 1, 0, 0, 0, 1066, 1039, 1, 0, 0, 0, 1066, 1040, 1, 0, 0, 0, 1066, 1041, 1, 0, 0, 0, 1066, 1042, 1, 0, 0, 0, 1066, 1043, 1, 0, 0, 0, 1066, 1044, 1, 0, 0, 0, 1066, 1045, 1, 0, 0, 0, 1066, 1046, 1, 0, 0, 0, 1066, 1047, 1, 0, 0, 0, 1066, 1048, 1, 0, 0, 0, 1066, 1049, 1, 0, 0, 0, 1066, 1050, 1, 0, 0, 0, 1066, 1051, 1, 0, 0, 0, 1066, 1052, 1, 0, 0, 0, 1066, 1053, 1, 0, 0, 0, 1066, 1054, 1, 0, 0, 0, 1066, 1055, 1, 0, 0, 0, 1066, 1056, 1, 0, 0, 0, 1066, 1057, 1, 0, 0, 0, 1066, 1058, 1, 0, 0, 0, 1066, 1059, 1, 0, 0, 0, 1066, 1060, 1, 0, 0, 0, 1066, 1061, 1, 0, 0, 0, 1066, 1062, 1, 0, 0, 0, 1067, 5, 1, 0, 0, 0, 1068, 1069, 5, 433, 0, 0, 1069, 1070, 3, 686, 343, 0, 1070, 7, 1, 0, 0, 0, 1071, 1072, 5, 46, 0, 0, 1072, 1073, 5, 318, 0, 0, 1073, 1075, 3, 816, 408, 0, 1074, 1076, 5, 105, 0, 0, 1075, 1074, 1, 0, 0, 0, 1075, 1076, 1, 0, 0, 0, 1076, 1080, 1, 0, 0, 0, 1077, 1079, 3, 12, 6, 0, 1078, 1077, 1, 0, 0, 0, 1079, 1082, 1, 0, 0, 0, 1080, 1078, 1, 0, 0, 0, 1080, 1081, 1, 0, 0, 0, 1081, 9, 1, 0, 0, 0, 1082, 1080, 1, 0, 0, 0, 1083, 1086, 5, 287, 0, 0, 1084, 1087, 3, 810, 405, 0, 1085, 1087, 5, 78, 0, 0, 1086, 1084, 1, 0, 0, 0, 1086, 1085, 1, 0, 0, 0, 1087, 1122, 1, 0, 0, 0, 1088, 1089, 7, 0, 0, 0, 1089, 1090, 5, 287, 0, 0, 1090, 1122, 3, 810, 405, 0, 1091, 1122, 5, 228, 0, 0, 1092, 1122, 5, 229, 0, 0, 1093, 1122, 5, 236, 0, 0, 1094, 1122, 5, 237, 0, 0, 1095, 1122, 5, 234, 0, 0, 1096, 1122, 5, 235, 0, 0, 1097, 1122, 5, 232, 0, 0, 1098, 1122, 5, 233, 0, 0, 1099, 1122, 5, 230, 0, 0, 1100, 1122, 5, 231, 0, 0, 1101, 1122, 5, 535, 0, 0, 1102, 1122, 5, 536, 0, 0, 1103, 1122, 5, 537, 0, 0, 1104, 1122, 5, 538, 0, 0, 1105, 1122, 5, 539, 0, 0, 1106, 1122, 5, 540, 0, 0, 1107, 1108, 5, 164, 0, 0, 1108, 1109, 5, 74, 0, 0, 1109, 1122, 3, 814, 407, 0, 1110, 1111, 5, 371, 0, 0, 1111, 1112, 5, 368, 0, 0, 1112, 1122, 3, 810, 405, 0, 1113, 1114, 5, 68, 0, 0, 1114, 1115, 7, 1, 0, 0, 1115, 1122, 3, 786, 393, 0, 1116, 1117, 7, 2, 0, 0, 1117, 1122, 3, 818, 409, 0, 1118, 1119, 5, 134, 0, 0, 1119, 1122, 3, 786, 393, 0, 1120, 1122, 3, 828, 414, 0, 1121, 1083, 1, 0, 0, 0, 1121, 1088, 1, 0, 0, 0, 1121, 1091, 1, 0, 0, 0, 1121, 1092, 1, 0, 0, 0, 1121, 1093, 1, 0, 0, 0, 1121, 1094, 1, 0, 0, 0, 1121, 1095, 1, 0, 0, 0, 1121, 1096, 1, 0, 0, 0, 1121, 1097, 1, 0, 0, 0, 1121, 1098, 1, 0, 0, 0, 1121, 1099, 1, 0, 0, 0, 1121, 1100, 1, 0, 0, 0, 1121, 1101, 1, 0, 0, 0, 1121, 1102, 1, 0, 0, 0, 1121, 1103, 1, 0, 0, 0, 1121, 1104, 1, 0, 0, 0, 1121, 1105, 1, 0, 0, 0, 1121, 1106, 1, 0, 0, 0, 1121, 1107, 1, 0, 0, 0, 1121, 1110, 1, 0, 0, 0, 1121, 1113, 1, 0, 0, 0, 1121, 1116, 1, 0, 0, 0, 1121, 1118, 1, 0, 0, 0, 1121, 1120, 1, 0, 0, 0, 1122, 11, 1, 0, 0, 0, 1123, 1132, 3, 10, 5, 0, 1124, 1125, 5, 348, 0, 0, 1125, 1132, 5, 574, 0, 0, 1126, 1127, 7, 3, 0, 0, 1127, 1132, 3, 818, 409, 0, 1128, 1129, 5, 68, 0, 0, 1129, 1130, 7, 1, 0, 0, 1130, 1132, 3, 818, 409, 0, 1131, 1123, 1, 0, 0, 0, 1131, 1124, 1, 0, 0, 0, 1131, 1126, 1, 0, 0, 0, 1131, 1128, 1, 0, 0, 0, 1132, 13, 1, 0, 0, 0, 1133, 1134, 5, 46, 0, 0, 1134, 1135, 5, 99, 0, 0, 1135, 1137, 3, 816, 408, 0, 1136, 1138, 5, 105, 0, 0, 1137, 1136, 1, 0, 0, 0, 1137, 1138, 1, 0, 0, 0, 1138, 1142, 1, 0, 0, 0, 1139, 1141, 3, 12, 6, 0, 1140, 1139, 1, 0, 0, 0, 1141, 1144, 1, 0, 0, 0, 1142, 1140, 1, 0, 0, 0, 1142, 1143, 1, 0, 0, 0, 1143, 15, 1, 0, 0, 0, 1144, 1142, 1, 0, 0, 0, 1145, 1146, 5, 138, 0, 0, 1146, 1147, 7, 2, 0, 0, 1147, 1149, 3, 816, 408, 0, 1148, 1150, 5, 105, 0, 0, 1149, 1148, 1, 0, 0, 0, 1149, 1150, 1, 0, 0, 0, 1150, 1154, 1, 0, 0, 0, 1151, 1153, 3, 10, 5, 0, 1152, 1151, 1, 0, 0, 0, 1153, 1156, 1, 0, 0, 0, 1154, 1152, 1, 0, 0, 0, 1154, 1155, 1, 0, 0, 0, 1155, 17, 1, 0, 0, 0, 1156, 1154, 1, 0, 0, 0, 1157, 1158, 5, 138, 0, 0, 1158, 1161, 7, 2, 0, 0, 1159, 1162, 5, 30, 0, 0, 1160, 1162, 3, 816, 408, 0, 1161, 1159, 1, 0, 0, 0, 1161, 1160, 1, 0, 0, 0, 1162, 1163, 1, 0, 0, 0, 1163, 1164, 5, 68, 0, 0, 1164, 1165, 5, 175, 0, 0, 1165, 1166, 3, 790, 395, 0, 1166, 1167, 3, 64, 32, 0, 1167, 19, 1, 0, 0, 0, 1168, 1169, 5, 138, 0, 0, 1169, 1170, 5, 442, 0, 0, 1170, 1172, 3, 796, 398, 0, 1171, 1173, 3, 370, 185, 0, 1172, 1171, 1, 0, 0, 0, 1172, 1173, 1, 0, 0, 0, 1173, 1174, 1, 0, 0, 0, 1174, 1175, 3, 22, 11, 0, 1175, 21, 1, 0, 0, 0, 1176, 1180, 3, 24, 12, 0, 1177, 1179, 3, 24, 12, 0, 1178, 1177, 1, 0, 0, 0, 1179, 1182, 1, 0, 0, 0, 1180, 1178, 1, 0, 0, 0, 1180, 1181, 1, 0, 0, 0, 1181, 1184, 1, 0, 0, 0, 1182, 1180, 1, 0, 0, 0, 1183, 1185, 5, 315, 0, 0, 1184, 1183, 1, 0, 0, 0, 1184, 1185, 1, 0, 0, 0, 1185, 1203, 1, 0, 0, 0, 1186, 1187, 5, 309, 0, 0, 1187, 1188, 5, 94, 0, 0, 1188, 1203, 3, 794, 397, 0, 1189, 1190, 5, 282, 0, 0, 1190, 1191, 5, 94, 0, 0, 1191, 1203, 3, 816, 408, 0, 1192, 1193, 5, 333, 0, 0, 1193, 1194, 5, 323, 0, 0, 1194, 1203, 3, 32, 16, 0, 1195, 1197, 5, 269, 0, 0, 1196, 1195, 1, 0, 0, 0, 1196, 1197, 1, 0, 0, 0, 1197, 1198, 1, 0, 0, 0, 1198, 1199, 5, 462, 0, 0, 1199, 1200, 5, 80, 0, 0, 1200, 1201, 5, 204, 0, 0, 1201, 1203, 3, 820, 410, 0, 1202, 1176, 1, 0, 0, 0, 1202, 1186, 1, 0, 0, 0, 1202, 1189, 1, 0, 0, 0, 1202, 1192, 1, 0, 0, 0, 1202, 1196, 1, 0, 0, 0, 1203, 23, 1, 0, 0, 0, 1204, 1247, 5, 222, 0, 0, 1205, 1247, 5, 338, 0, 0, 1206, 1247, 5, 377, 0, 0, 1207, 1209, 5, 77, 0, 0, 1208, 1207, 1, 0, 0, 0, 1208, 1209, 1, 0, 0, 0, 1209, 1210, 1, 0, 0, 0, 1210, 1247, 5, 250, 0, 0, 1211, 1213, 5, 205, 0, 0, 1212, 1211, 1, 0, 0, 0, 1212, 1213, 1, 0, 0, 0, 1213, 1214, 1, 0, 0, 0, 1214, 1215, 5, 327, 0, 0, 1215, 1222, 5, 243, 0, 0, 1216, 1218, 5, 205, 0, 0, 1217, 1216, 1, 0, 0, 0, 1217, 1218, 1, 0, 0, 0, 1218, 1219, 1, 0, 0, 0, 1219, 1220, 5, 327, 0, 0, 1220, 1222, 5, 181, 0, 0, 1221, 1212, 1, 0, 0, 0, 1221, 1217, 1, 0, 0, 0, 1222, 1247, 1, 0, 0, 0, 1223, 1224, 5, 460, 0, 0, 1224, 1247, 7, 4, 0, 0, 1225, 1226, 5, 170, 0, 0, 1226, 1247, 3, 826, 413, 0, 1227, 1228, 5, 320, 0, 0, 1228, 1247, 3, 820, 410, 0, 1229, 1230, 5, 333, 0, 0, 1230, 1231, 3, 820, 410, 0, 1231, 1234, 7, 5, 0, 0, 1232, 1235, 3, 820, 410, 0, 1233, 1235, 5, 53, 0, 0, 1234, 1232, 1, 0, 0, 0, 1234, 1233, 1, 0, 0, 0, 1235, 1247, 1, 0, 0, 0, 1236, 1237, 5, 333, 0, 0, 1237, 1238, 3, 820, 410, 0, 1238, 1239, 5, 64, 0, 0, 1239, 1240, 5, 434, 0, 0, 1240, 1247, 1, 0, 0, 0, 1241, 1244, 5, 313, 0, 0, 1242, 1245, 3, 820, 410, 0, 1243, 1245, 5, 30, 0, 0, 1244, 1242, 1, 0, 0, 0, 1244, 1243, 1, 0, 0, 0, 1245, 1247, 1, 0, 0, 0, 1246, 1204, 1, 0, 0, 0, 1246, 1205, 1, 0, 0, 0, 1246, 1206, 1, 0, 0, 0, 1246, 1208, 1, 0, 0, 0, 1246, 1221, 1, 0, 0, 0, 1246, 1223, 1, 0, 0, 0, 1246, 1225, 1, 0, 0, 0, 1246, 1227, 1, 0, 0, 0, 1246, 1229, 1, 0, 0, 0, 1246, 1236, 1, 0, 0, 0, 1246, 1241, 1, 0, 0, 0, 1247, 25, 1, 0, 0, 0, 1248, 1249, 5, 46, 0, 0, 1249, 1250, 5, 66, 0, 0, 1250, 1252, 3, 816, 408, 0, 1251, 1253, 5, 105, 0, 0, 1252, 1251, 1, 0, 0, 0, 1252, 1253, 1, 0, 0, 0, 1253, 1257, 1, 0, 0, 0, 1254, 1256, 3, 12, 6, 0, 1255, 1254, 1, 0, 0, 0, 1256, 1259, 1, 0, 0, 0, 1257, 1255, 1, 0, 0, 0, 1257, 1258, 1, 0, 0, 0, 1258, 27, 1, 0, 0, 0, 1259, 1257, 1, 0, 0, 0, 1260, 1261, 5, 138, 0, 0, 1261, 1262, 5, 66, 0, 0, 1262, 1263, 3, 816, 408, 0, 1263, 1264, 7, 6, 0, 0, 1264, 1265, 5, 99, 0, 0, 1265, 1266, 3, 818, 409, 0, 1266, 29, 1, 0, 0, 0, 1267, 1268, 5, 46, 0, 0, 1268, 1270, 5, 323, 0, 0, 1269, 1271, 3, 296, 148, 0, 1270, 1269, 1, 0, 0, 0, 1270, 1271, 1, 0, 0, 0, 1271, 1278, 1, 0, 0, 0, 1272, 1274, 3, 32, 16, 0, 1273, 1272, 1, 0, 0, 0, 1273, 1274, 1, 0, 0, 0, 1274, 1275, 1, 0, 0, 0, 1275, 1276, 5, 106, 0, 0, 1276, 1279, 3, 816, 408, 0, 1277, 1279, 3, 32, 16, 0, 1278, 1273, 1, 0, 0, 0, 1278, 1277, 1, 0, 0, 0, 1279, 1283, 1, 0, 0, 0, 1280, 1282, 3, 34, 17, 0, 1281, 1280, 1, 0, 0, 0, 1282, 1285, 1, 0, 0, 0, 1283, 1281, 1, 0, 0, 0, 1283, 1284, 1, 0, 0, 0, 1284, 31, 1, 0, 0, 0, 1285, 1283, 1, 0, 0, 0, 1286, 1287, 3, 318, 159, 0, 1287, 33, 1, 0, 0, 0, 1288, 1295, 3, 122, 61, 0, 1289, 1295, 3, 360, 180, 0, 1290, 1295, 3, 198, 99, 0, 1291, 1295, 3, 258, 129, 0, 1292, 1295, 3, 336, 168, 0, 1293, 1295, 3, 478, 239, 0, 1294, 1288, 1, 0, 0, 0, 1294, 1289, 1, 0, 0, 0, 1294, 1290, 1, 0, 0, 0, 1294, 1291, 1, 0, 0, 0, 1294, 1292, 1, 0, 0, 0, 1294, 1293, 1, 0, 0, 0, 1295, 35, 1, 0, 0, 0, 1296, 1298, 5, 333, 0, 0, 1297, 1299, 7, 7, 0, 0, 1298, 1297, 1, 0, 0, 0, 1298, 1299, 1, 0, 0, 0, 1299, 1300, 1, 0, 0, 0, 1300, 1301, 3, 38, 19, 0, 1301, 37, 1, 0, 0, 0, 1302, 1303, 5, 356, 0, 0, 1303, 1311, 3, 476, 238, 0, 1304, 1305, 5, 332, 0, 0, 1305, 1306, 5, 154, 0, 0, 1306, 1307, 5, 36, 0, 0, 1307, 1308, 5, 356, 0, 0, 1308, 1311, 3, 476, 238, 0, 1309, 1311, 3, 42, 21, 0, 1310, 1302, 1, 0, 0, 0, 1310, 1304, 1, 0, 0, 0, 1310, 1309, 1, 0, 0, 0, 1311, 39, 1, 0, 0, 0, 1312, 1315, 5, 30, 0, 0, 1313, 1315, 3, 44, 22, 0, 1314, 1312, 1, 0, 0, 0, 1314, 1313, 1, 0, 0, 0, 1315, 1317, 1, 0, 0, 0, 1316, 1318, 7, 5, 0, 0, 1317, 1316, 1, 0, 0, 0, 1317, 1318, 1, 0, 0, 0, 1318, 1321, 1, 0, 0, 0, 1319, 1322, 5, 53, 0, 0, 1320, 1322, 3, 46, 23, 0, 1321, 1319, 1, 0, 0, 0, 1321, 1320, 1, 0, 0, 0, 1321, 1322, 1, 0, 0, 0, 1322, 41, 1, 0, 0, 0, 1323, 1324, 5, 418, 0, 0, 1324, 1325, 5, 386, 0, 0, 1325, 1352, 3, 56, 28, 0, 1326, 1327, 5, 152, 0, 0, 1327, 1352, 3, 810, 405, 0, 1328, 1329, 5, 323, 0, 0, 1329, 1352, 3, 792, 396, 0, 1330, 1333, 5, 267, 0, 0, 1331, 1334, 3, 810, 405, 0, 1332, 1334, 5, 53, 0, 0, 1333, 1331, 1, 0, 0, 0, 1333, 1332, 1, 0, 0, 0, 1333, 1334, 1, 0, 0, 0, 1334, 1352, 1, 0, 0, 0, 1335, 1336, 5, 318, 0, 0, 1336, 1352, 3, 58, 29, 0, 1337, 1338, 5, 332, 0, 0, 1338, 1339, 5, 106, 0, 0, 1339, 1352, 3, 58, 29, 0, 1340, 1341, 5, 383, 0, 0, 1341, 1342, 5, 279, 0, 0, 1342, 1352, 3, 698, 349, 0, 1343, 1344, 5, 356, 0, 0, 1344, 1345, 5, 337, 0, 0, 1345, 1352, 3, 810, 405, 0, 1346, 1347, 3, 44, 22, 0, 1347, 1348, 5, 64, 0, 0, 1348, 1349, 5, 434, 0, 0, 1349, 1352, 1, 0, 0, 0, 1350, 1352, 3, 40, 20, 0, 1351, 1323, 1, 0, 0, 0, 1351, 1326, 1, 0, 0, 0, 1351, 1328, 1, 0, 0, 0, 1351, 1330, 1, 0, 0, 0, 1351, 1335, 1, 0, 0, 0, 1351, 1337, 1, 0, 0, 0, 1351, 1340, 1, 0, 0, 0, 1351, 1343, 1, 0, 0, 0, 1351, 1346, 1, 0, 0, 0, 1351, 1350, 1, 0, 0, 0, 1352, 43, 1, 0, 0, 0, 1353, 1358, 3, 820, 410, 0, 1354, 1355, 5, 11, 0, 0, 1355, 1357, 3, 820, 410, 0, 1356, 1354, 1, 0, 0, 0, 1357, 1360, 1, 0, 0, 0, 1358, 1356, 1, 0, 0, 0, 1358, 1359, 1, 0, 0, 0, 1359, 45, 1, 0, 0, 0, 1360, 1358, 1, 0, 0, 0, 1361, 1366, 3, 48, 24, 0, 1362, 1363, 5, 6, 0, 0, 1363, 1365, 3, 48, 24, 0, 1364, 1362, 1, 0, 0, 0, 1365, 1368, 1, 0, 0, 0, 1366, 1364, 1, 0, 0, 0, 1366, 1367, 1, 0, 0, 0, 1367, 47, 1, 0, 0, 0, 1368, 1366, 1, 0, 0, 0, 1369, 1372, 3, 54, 27, 0, 1370, 1372, 3, 204, 102, 0, 1371, 1369, 1, 0, 0, 0, 1371, 1370, 1, 0, 0, 0, 1372, 49, 1, 0, 0, 0, 1373, 1374, 5, 300, 0, 0, 1374, 1379, 7, 8, 0, 0, 1375, 1376, 5, 310, 0, 0, 1376, 1379, 5, 300, 0, 0, 1377, 1379, 5, 330, 0, 0, 1378, 1373, 1, 0, 0, 0, 1378, 1375, 1, 0, 0, 0, 1378, 1377, 1, 0, 0, 0, 1379, 51, 1, 0, 0, 0, 1380, 1387, 5, 96, 0, 0, 1381, 1387, 5, 60, 0, 0, 1382, 1387, 5, 80, 0, 0, 1383, 1387, 3, 802, 401, 0, 1384, 1387, 3, 834, 417, 0, 1385, 1387, 3, 810, 405, 0, 1386, 1380, 1, 0, 0, 0, 1386, 1381, 1, 0, 0, 0, 1386, 1382, 1, 0, 0, 0, 1386, 1383, 1, 0, 0, 0, 1386, 1384, 1, 0, 0, 0, 1386, 1385, 1, 0, 0, 0, 1387, 53, 1, 0, 0, 0, 1388, 1393, 5, 96, 0, 0, 1389, 1393, 5, 60, 0, 0, 1390, 1393, 5, 80, 0, 0, 1391, 1393, 3, 58, 29, 0, 1392, 1388, 1, 0, 0, 0, 1392, 1389, 1, 0, 0, 0, 1392, 1390, 1, 0, 0, 0, 1392, 1391, 1, 0, 0, 0, 1393, 55, 1, 0, 0, 0, 1394, 1409, 3, 810, 405, 0, 1395, 1409, 5, 53, 0, 0, 1396, 1409, 3, 828, 414, 0, 1397, 1398, 5, 403, 0, 0, 1398, 1400, 3, 810, 405, 0, 1399, 1401, 3, 670, 335, 0, 1400, 1399, 1, 0, 0, 0, 1400, 1401, 1, 0, 0, 0, 1401, 1409, 1, 0, 0, 0, 1402, 1403, 5, 403, 0, 0, 1403, 1404, 3, 662, 331, 0, 1404, 1405, 3, 810, 405, 0, 1405, 1409, 1, 0, 0, 0, 1406, 1409, 3, 204, 102, 0, 1407, 1409, 5, 254, 0, 0, 1408, 1394, 1, 0, 0, 0, 1408, 1395, 1, 0, 0, 0, 1408, 1396, 1, 0, 0, 0, 1408, 1397, 1, 0, 0, 0, 1408, 1402, 1, 0, 0, 0, 1408, 1406, 1, 0, 0, 0, 1408, 1407, 1, 0, 0, 0, 1409, 57, 1, 0, 0, 0, 1410, 1413, 3, 824, 412, 0, 1411, 1413, 3, 810, 405, 0, 1412, 1410, 1, 0, 0, 0, 1412, 1411, 1, 0, 0, 0, 1413, 59, 1, 0, 0, 0, 1414, 1415, 5, 313, 0, 0, 1415, 1416, 3, 62, 31, 0, 1416, 61, 1, 0, 0, 0, 1417, 1418, 5, 418, 0, 0, 1418, 1427, 5, 386, 0, 0, 1419, 1420, 5, 356, 0, 0, 1420, 1421, 5, 244, 0, 0, 1421, 1427, 5, 251, 0, 0, 1422, 1423, 5, 332, 0, 0, 1423, 1427, 5, 106, 0, 0, 1424, 1427, 5, 30, 0, 0, 1425, 1427, 3, 44, 22, 0, 1426, 1417, 1, 0, 0, 0, 1426, 1419, 1, 0, 0, 0, 1426, 1422, 1, 0, 0, 0, 1426, 1424, 1, 0, 0, 0, 1426, 1425, 1, 0, 0, 0, 1427, 63, 1, 0, 0, 0, 1428, 1429, 5, 333, 0, 0, 1429, 1432, 3, 38, 19, 0, 1430, 1432, 3, 60, 30, 0, 1431, 1428, 1, 0, 0, 0, 1431, 1430, 1, 0, 0, 0, 1432, 65, 1, 0, 0, 0, 1433, 1434, 5, 333, 0, 0, 1434, 1437, 3, 42, 21, 0, 1435, 1437, 3, 60, 30, 0, 1436, 1433, 1, 0, 0, 0, 1436, 1435, 1, 0, 0, 0, 1437, 67, 1, 0, 0, 0, 1438, 1448, 5, 335, 0, 0, 1439, 1449, 3, 44, 22, 0, 1440, 1441, 5, 418, 0, 0, 1441, 1449, 5, 386, 0, 0, 1442, 1443, 5, 356, 0, 0, 1443, 1444, 5, 244, 0, 0, 1444, 1449, 5, 251, 0, 0, 1445, 1446, 5, 332, 0, 0, 1446, 1449, 5, 106, 0, 0, 1447, 1449, 5, 30, 0, 0, 1448, 1439, 1, 0, 0, 0, 1448, 1440, 1, 0, 0, 0, 1448, 1442, 1, 0, 0, 0, 1448, 1445, 1, 0, 0, 0, 1448, 1447, 1, 0, 0, 0, 1449, 69, 1, 0, 0, 0, 1450, 1451, 5, 333, 0, 0, 1451, 1454, 5, 165, 0, 0, 1452, 1455, 5, 30, 0, 0, 1453, 1455, 3, 762, 381, 0, 1454, 1452, 1, 0, 0, 0, 1454, 1453, 1, 0, 0, 0, 1455, 1456, 1, 0, 0, 0, 1456, 1457, 7, 9, 0, 0, 1457, 71, 1, 0, 0, 0, 1458, 1459, 5, 155, 0, 0, 1459, 73, 1, 0, 0, 0, 1460, 1461, 5, 187, 0, 0, 1461, 1462, 7, 10, 0, 0, 1462, 75, 1, 0, 0, 0, 1463, 1464, 5, 138, 0, 0, 1464, 1466, 5, 92, 0, 0, 1465, 1467, 3, 424, 212, 0, 1466, 1465, 1, 0, 0, 0, 1466, 1467, 1, 0, 0, 0, 1467, 1468, 1, 0, 0, 0, 1468, 1471, 3, 626, 313, 0, 1469, 1472, 3, 78, 39, 0, 1470, 1472, 3, 88, 44, 0, 1471, 1469, 1, 0, 0, 0, 1471, 1470, 1, 0, 0, 0, 1472, 1585, 1, 0, 0, 0, 1473, 1474, 5, 138, 0, 0, 1474, 1475, 5, 92, 0, 0, 1475, 1476, 5, 30, 0, 0, 1476, 1477, 5, 68, 0, 0, 1477, 1481, 3, 178, 89, 0, 1478, 1479, 5, 281, 0, 0, 1479, 1480, 5, 147, 0, 0, 1480, 1482, 3, 818, 409, 0, 1481, 1478, 1, 0, 0, 0, 1481, 1482, 1, 0, 0, 0, 1482, 1483, 1, 0, 0, 0, 1483, 1484, 5, 333, 0, 0, 1484, 1485, 5, 351, 0, 0, 1485, 1487, 3, 770, 385, 0, 1486, 1488, 5, 272, 0, 0, 1487, 1486, 1, 0, 0, 0, 1487, 1488, 1, 0, 0, 0, 1488, 1585, 1, 0, 0, 0, 1489, 1490, 5, 138, 0, 0, 1490, 1492, 5, 92, 0, 0, 1491, 1493, 3, 424, 212, 0, 1492, 1491, 1, 0, 0, 0, 1492, 1493, 1, 0, 0, 0, 1493, 1494, 1, 0, 0, 0, 1494, 1495, 3, 776, 388, 0, 1495, 1500, 3, 90, 45, 0, 1496, 1497, 5, 62, 0, 0, 1497, 1498, 5, 422, 0, 0, 1498, 1501, 3, 80, 40, 0, 1499, 1501, 5, 53, 0, 0, 1500, 1496, 1, 0, 0, 0, 1500, 1499, 1, 0, 0, 0, 1501, 1585, 1, 0, 0, 0, 1502, 1503, 5, 138, 0, 0, 1503, 1505, 5, 92, 0, 0, 1504, 1506, 3, 424, 212, 0, 1505, 1504, 1, 0, 0, 0, 1505, 1506, 1, 0, 0, 0, 1506, 1507, 1, 0, 0, 0, 1507, 1508, 3, 776, 388, 0, 1508, 1509, 5, 436, 0, 0, 1509, 1510, 5, 285, 0, 0, 1510, 1512, 3, 782, 391, 0, 1511, 1513, 7, 11, 0, 0, 1512, 1511, 1, 0, 0, 0, 1512, 1513, 1, 0, 0, 0, 1513, 1585, 1, 0, 0, 0, 1514, 1515, 5, 138, 0, 0, 1515, 1517, 5, 226, 0, 0, 1516, 1518, 3, 424, 212, 0, 1517, 1516, 1, 0, 0, 0, 1517, 1518, 1, 0, 0, 0, 1518, 1519, 1, 0, 0, 0, 1519, 1522, 3, 782, 391, 0, 1520, 1523, 3, 78, 39, 0, 1521, 1523, 3, 90, 45, 0, 1522, 1520, 1, 0, 0, 0, 1522, 1521, 1, 0, 0, 0, 1523, 1585, 1, 0, 0, 0, 1524, 1525, 5, 138, 0, 0, 1525, 1526, 5, 226, 0, 0, 1526, 1527, 5, 30, 0, 0, 1527, 1528, 5, 68, 0, 0, 1528, 1532, 3, 178, 89, 0, 1529, 1530, 5, 281, 0, 0, 1530, 1531, 5, 147, 0, 0, 1531, 1533, 3, 818, 409, 0, 1532, 1529, 1, 0, 0, 0, 1532, 1533, 1, 0, 0, 0, 1533, 1534, 1, 0, 0, 0, 1534, 1535, 5, 333, 0, 0, 1535, 1537, 3, 178, 89, 0, 1536, 1538, 5, 272, 0, 0, 1537, 1536, 1, 0, 0, 0, 1537, 1538, 1, 0, 0, 0, 1538, 1585, 1, 0, 0, 0, 1539, 1540, 5, 138, 0, 0, 1540, 1542, 5, 328, 0, 0, 1541, 1543, 3, 424, 212, 0, 1542, 1541, 1, 0, 0, 0, 1542, 1543, 1, 0, 0, 0, 1543, 1544, 1, 0, 0, 0, 1544, 1545, 3, 782, 391, 0, 1545, 1546, 3, 78, 39, 0, 1546, 1585, 1, 0, 0, 0, 1547, 1549, 5, 138, 0, 0, 1548, 1550, 5, 259, 0, 0, 1549, 1548, 1, 0, 0, 0, 1549, 1550, 1, 0, 0, 0, 1550, 1551, 1, 0, 0, 0, 1551, 1553, 5, 376, 0, 0, 1552, 1554, 3, 424, 212, 0, 1553, 1552, 1, 0, 0, 0, 1553, 1554, 1, 0, 0, 0, 1554, 1555, 1, 0, 0, 0, 1555, 1556, 3, 780, 390, 0, 1556, 1557, 3, 78, 39, 0, 1557, 1585, 1, 0, 0, 0, 1558, 1559, 5, 138, 0, 0, 1559, 1560, 5, 259, 0, 0, 1560, 1561, 5, 376, 0, 0, 1561, 1562, 5, 30, 0, 0, 1562, 1563, 5, 68, 0, 0, 1563, 1567, 3, 178, 89, 0, 1564, 1565, 5, 281, 0, 0, 1565, 1566, 5, 147, 0, 0, 1566, 1568, 3, 818, 409, 0, 1567, 1564, 1, 0, 0, 0, 1567, 1568, 1, 0, 0, 0, 1568, 1569, 1, 0, 0, 0, 1569, 1570, 5, 333, 0, 0, 1570, 1571, 5, 351, 0, 0, 1571, 1573, 3, 770, 385, 0, 1572, 1574, 5, 272, 0, 0, 1573, 1572, 1, 0, 0, 0, 1573, 1574, 1, 0, 0, 0, 1574, 1585, 1, 0, 0, 0, 1575, 1576, 5, 138, 0, 0, 1576, 1577, 5, 63, 0, 0, 1577, 1579, 5, 92, 0, 0, 1578, 1580, 3, 424, 212, 0, 1579, 1578, 1, 0, 0, 0, 1579, 1580, 1, 0, 0, 0, 1580, 1581, 1, 0, 0, 0, 1581, 1582, 3, 626, 313, 0, 1582, 1583, 3, 78, 39, 0, 1583, 1585, 1, 0, 0, 0, 1584, 1463, 1, 0, 0, 0, 1584, 1473, 1, 0, 0, 0, 1584, 1489, 1, 0, 0, 0, 1584, 1502, 1, 0, 0, 0, 1584, 1514, 1, 0, 0, 0, 1584, 1524, 1, 0, 0, 0, 1584, 1539, 1, 0, 0, 0, 1584, 1547, 1, 0, 0, 0, 1584, 1558, 1, 0, 0, 0, 1584, 1575, 1, 0, 0, 0, 1585, 77, 1, 0, 0, 0, 1586, 1591, 3, 92, 46, 0, 1587, 1588, 5, 6, 0, 0, 1588, 1590, 3, 92, 46, 0, 1589, 1587, 1, 0, 0, 0, 1590, 1593, 1, 0, 0, 0, 1591, 1589, 1, 0, 0, 0, 1591, 1592, 1, 0, 0, 0, 1592, 79, 1, 0, 0, 0, 1593, 1591, 1, 0, 0, 0, 1594, 1595, 5, 68, 0, 0, 1595, 1604, 3, 536, 268, 0, 1596, 1597, 5, 64, 0, 0, 1597, 1598, 3, 82, 41, 0, 1598, 1599, 5, 94, 0, 0, 1599, 1600, 3, 82, 41, 0, 1600, 1604, 1, 0, 0, 0, 1601, 1602, 5, 105, 0, 0, 1602, 1604, 3, 86, 43, 0, 1603, 1594, 1, 0, 0, 0, 1603, 1596, 1, 0, 0, 0, 1603, 1601, 1, 0, 0, 0, 1604, 81, 1, 0, 0, 0, 1605, 1606, 5, 2, 0, 0, 1606, 1611, 3, 84, 42, 0, 1607, 1608, 5, 6, 0, 0, 1608, 1610, 3, 84, 42, 0, 1609, 1607, 1, 0, 0, 0, 1610, 1613, 1, 0, 0, 0, 1611, 1609, 1, 0, 0, 0, 1611, 1612, 1, 0, 0, 0, 1612, 1614, 1, 0, 0, 0, 1613, 1611, 1, 0, 0, 0, 1614, 1615, 5, 3, 0, 0, 1615, 83, 1, 0, 0, 0, 1616, 1620, 3, 536, 268, 0, 1617, 1620, 5, 262, 0, 0, 1618, 1620, 5, 260, 0, 0, 1619, 1616, 1, 0, 0, 0, 1619, 1617, 1, 0, 0, 0, 1619, 1618, 1, 0, 0, 0, 1620, 85, 1, 0, 0, 0, 1621, 1622, 5, 2, 0, 0, 1622, 1623, 5, 533, 0, 0, 1623, 1624, 3, 204, 102, 0, 1624, 1625, 5, 6, 0, 0, 1625, 1626, 5, 534, 0, 0, 1626, 1627, 3, 204, 102, 0, 1627, 1628, 5, 3, 0, 0, 1628, 87, 1, 0, 0, 0, 1629, 1630, 3, 90, 45, 0, 1630, 1631, 3, 106, 53, 0, 1631, 1636, 1, 0, 0, 0, 1632, 1633, 5, 436, 0, 0, 1633, 1634, 5, 285, 0, 0, 1634, 1636, 3, 782, 391, 0, 1635, 1629, 1, 0, 0, 0, 1635, 1632, 1, 0, 0, 0, 1636, 89, 1, 0, 0, 0, 1637, 1638, 5, 435, 0, 0, 1638, 1639, 5, 285, 0, 0, 1639, 1640, 3, 782, 391, 0, 1640, 91, 1, 0, 0, 0, 1641, 1644, 5, 133, 0, 0, 1642, 1643, 5, 45, 0, 0, 1643, 1645, 3, 820, 410, 0, 1644, 1642, 1, 0, 0, 0, 1644, 1645, 1, 0, 0, 0, 1645, 1646, 1, 0, 0, 0, 1646, 1875, 3, 144, 72, 0, 1647, 1648, 5, 138, 0, 0, 1648, 1649, 5, 45, 0, 0, 1649, 1653, 3, 820, 410, 0, 1650, 1652, 3, 274, 137, 0, 1651, 1650, 1, 0, 0, 0, 1652, 1655, 1, 0, 0, 0, 1653, 1651, 1, 0, 0, 0, 1653, 1654, 1, 0, 0, 0, 1654, 1875, 1, 0, 0, 0, 1655, 1653, 1, 0, 0, 0, 1656, 1657, 5, 372, 0, 0, 1657, 1658, 5, 45, 0, 0, 1658, 1875, 3, 820, 410, 0, 1659, 1660, 5, 191, 0, 0, 1660, 1662, 5, 45, 0, 0, 1661, 1663, 3, 424, 212, 0, 1662, 1661, 1, 0, 0, 0, 1662, 1663, 1, 0, 0, 0, 1663, 1664, 1, 0, 0, 0, 1664, 1666, 3, 820, 410, 0, 1665, 1667, 3, 96, 48, 0, 1666, 1665, 1, 0, 0, 0, 1666, 1667, 1, 0, 0, 0, 1667, 1875, 1, 0, 0, 0, 1668, 1669, 5, 333, 0, 0, 1669, 1670, 5, 379, 0, 0, 1670, 1875, 7, 12, 0, 0, 1671, 1672, 5, 158, 0, 0, 1672, 1673, 5, 80, 0, 0, 1673, 1875, 3, 820, 410, 0, 1674, 1675, 5, 333, 0, 0, 1675, 1875, 7, 13, 0, 0, 1676, 1678, 5, 193, 0, 0, 1677, 1679, 7, 14, 0, 0, 1678, 1677, 1, 0, 0, 0, 1678, 1679, 1, 0, 0, 0, 1679, 1680, 1, 0, 0, 0, 1680, 1875, 5, 357, 0, 0, 1681, 1682, 5, 186, 0, 0, 1682, 1686, 5, 357, 0, 0, 1683, 1687, 5, 30, 0, 0, 1684, 1687, 5, 99, 0, 0, 1685, 1687, 3, 820, 410, 0, 1686, 1683, 1, 0, 0, 0, 1686, 1684, 1, 0, 0, 0, 1686, 1685, 1, 0, 0, 0, 1687, 1875, 1, 0, 0, 0, 1688, 1689, 5, 193, 0, 0, 1689, 1690, 7, 14, 0, 0, 1690, 1691, 5, 321, 0, 0, 1691, 1875, 3, 820, 410, 0, 1692, 1693, 5, 186, 0, 0, 1693, 1694, 5, 321, 0, 0, 1694, 1875, 3, 820, 410, 0, 1695, 1697, 5, 269, 0, 0, 1696, 1695, 1, 0, 0, 0, 1696, 1697, 1, 0, 0, 0, 1697, 1698, 1, 0, 0, 0, 1698, 1699, 5, 228, 0, 0, 1699, 1875, 3, 782, 391, 0, 1700, 1701, 5, 275, 0, 0, 1701, 1875, 3, 318, 159, 0, 1702, 1703, 5, 77, 0, 0, 1703, 1875, 5, 275, 0, 0, 1704, 1705, 5, 282, 0, 0, 1705, 1706, 5, 94, 0, 0, 1706, 1875, 3, 816, 408, 0, 1707, 1708, 5, 333, 0, 0, 1708, 1709, 5, 351, 0, 0, 1709, 1875, 3, 770, 385, 0, 1710, 1711, 5, 312, 0, 0, 1711, 1716, 5, 219, 0, 0, 1712, 1717, 5, 270, 0, 0, 1713, 1717, 5, 113, 0, 0, 1714, 1717, 5, 53, 0, 0, 1715, 1717, 3, 182, 91, 0, 1716, 1712, 1, 0, 0, 0, 1716, 1713, 1, 0, 0, 0, 1716, 1714, 1, 0, 0, 0, 1716, 1715, 1, 0, 0, 0, 1717, 1875, 1, 0, 0, 0, 1718, 1725, 5, 193, 0, 0, 1719, 1725, 5, 186, 0, 0, 1720, 1722, 5, 269, 0, 0, 1721, 1720, 1, 0, 0, 0, 1721, 1722, 1, 0, 0, 0, 1722, 1723, 1, 0, 0, 0, 1723, 1725, 5, 209, 0, 0, 1724, 1718, 1, 0, 0, 0, 1724, 1719, 1, 0, 0, 0, 1724, 1721, 1, 0, 0, 0, 1725, 1726, 1, 0, 0, 0, 1726, 1727, 5, 414, 0, 0, 1727, 1728, 5, 251, 0, 0, 1728, 1875, 5, 327, 0, 0, 1729, 1731, 5, 191, 0, 0, 1730, 1732, 5, 44, 0, 0, 1731, 1730, 1, 0, 0, 0, 1731, 1732, 1, 0, 0, 0, 1732, 1734, 1, 0, 0, 0, 1733, 1735, 3, 424, 212, 0, 1734, 1733, 1, 0, 0, 0, 1734, 1735, 1, 0, 0, 0, 1735, 1736, 1, 0, 0, 0, 1736, 1738, 3, 802, 401, 0, 1737, 1739, 3, 96, 48, 0, 1738, 1737, 1, 0, 0, 0, 1738, 1739, 1, 0, 0, 0, 1739, 1875, 1, 0, 0, 0, 1740, 1742, 5, 133, 0, 0, 1741, 1743, 5, 44, 0, 0, 1742, 1741, 1, 0, 0, 0, 1742, 1743, 1, 0, 0, 0, 1743, 1745, 1, 0, 0, 0, 1744, 1746, 3, 296, 148, 0, 1745, 1744, 1, 0, 0, 0, 1745, 1746, 1, 0, 0, 0, 1746, 1747, 1, 0, 0, 0, 1747, 1875, 3, 134, 67, 0, 1748, 1750, 5, 138, 0, 0, 1749, 1751, 5, 44, 0, 0, 1750, 1749, 1, 0, 0, 0, 1750, 1751, 1, 0, 0, 0, 1751, 1752, 1, 0, 0, 0, 1752, 1755, 3, 802, 401, 0, 1753, 1756, 3, 94, 47, 0, 1754, 1756, 3, 224, 112, 0, 1755, 1753, 1, 0, 0, 0, 1755, 1754, 1, 0, 0, 0, 1756, 1875, 1, 0, 0, 0, 1757, 1759, 5, 138, 0, 0, 1758, 1760, 5, 44, 0, 0, 1759, 1758, 1, 0, 0, 0, 1759, 1760, 1, 0, 0, 0, 1760, 1761, 1, 0, 0, 0, 1761, 1762, 3, 802, 401, 0, 1762, 1763, 7, 15, 0, 0, 1763, 1764, 5, 77, 0, 0, 1764, 1765, 5, 78, 0, 0, 1765, 1875, 1, 0, 0, 0, 1766, 1768, 5, 138, 0, 0, 1767, 1769, 5, 44, 0, 0, 1768, 1767, 1, 0, 0, 0, 1768, 1769, 1, 0, 0, 0, 1769, 1770, 1, 0, 0, 0, 1770, 1771, 3, 802, 401, 0, 1771, 1772, 5, 191, 0, 0, 1772, 1774, 5, 437, 0, 0, 1773, 1775, 3, 424, 212, 0, 1774, 1773, 1, 0, 0, 0, 1774, 1775, 1, 0, 0, 0, 1775, 1875, 1, 0, 0, 0, 1776, 1778, 5, 138, 0, 0, 1777, 1779, 5, 44, 0, 0, 1778, 1777, 1, 0, 0, 0, 1778, 1779, 1, 0, 0, 0, 1779, 1780, 1, 0, 0, 0, 1780, 1781, 3, 802, 401, 0, 1781, 1782, 5, 333, 0, 0, 1782, 1783, 5, 342, 0, 0, 1783, 1784, 3, 814, 407, 0, 1784, 1875, 1, 0, 0, 0, 1785, 1787, 5, 138, 0, 0, 1786, 1788, 5, 44, 0, 0, 1787, 1786, 1, 0, 0, 0, 1787, 1788, 1, 0, 0, 0, 1788, 1789, 1, 0, 0, 0, 1789, 1791, 3, 802, 401, 0, 1790, 1785, 1, 0, 0, 0, 1790, 1791, 1, 0, 0, 0, 1791, 1792, 1, 0, 0, 0, 1792, 1793, 7, 16, 0, 0, 1793, 1875, 3, 100, 50, 0, 1794, 1796, 5, 138, 0, 0, 1795, 1797, 5, 44, 0, 0, 1796, 1795, 1, 0, 0, 0, 1796, 1797, 1, 0, 0, 0, 1797, 1798, 1, 0, 0, 0, 1798, 1799, 3, 802, 401, 0, 1799, 1800, 5, 333, 0, 0, 1800, 1801, 5, 345, 0, 0, 1801, 1802, 3, 820, 410, 0, 1802, 1875, 1, 0, 0, 0, 1803, 1805, 5, 138, 0, 0, 1804, 1806, 5, 44, 0, 0, 1805, 1804, 1, 0, 0, 0, 1805, 1806, 1, 0, 0, 0, 1806, 1807, 1, 0, 0, 0, 1807, 1808, 3, 802, 401, 0, 1808, 1809, 5, 133, 0, 0, 1809, 1810, 5, 438, 0, 0, 1810, 1811, 3, 140, 70, 0, 1811, 1812, 5, 36, 0, 0, 1812, 1821, 5, 219, 0, 0, 1813, 1815, 5, 2, 0, 0, 1814, 1816, 3, 202, 101, 0, 1815, 1814, 1, 0, 0, 0, 1816, 1817, 1, 0, 0, 0, 1817, 1815, 1, 0, 0, 0, 1817, 1818, 1, 0, 0, 0, 1818, 1819, 1, 0, 0, 0, 1819, 1820, 5, 3, 0, 0, 1820, 1822, 1, 0, 0, 0, 1821, 1813, 1, 0, 0, 0, 1821, 1822, 1, 0, 0, 0, 1822, 1875, 1, 0, 0, 0, 1823, 1825, 5, 138, 0, 0, 1824, 1826, 5, 44, 0, 0, 1825, 1824, 1, 0, 0, 0, 1825, 1826, 1, 0, 0, 0, 1826, 1827, 1, 0, 0, 0, 1827, 1841, 3, 802, 401, 0, 1828, 1833, 5, 314, 0, 0, 1829, 1831, 5, 105, 0, 0, 1830, 1829, 1, 0, 0, 0, 1830, 1831, 1, 0, 0, 0, 1831, 1832, 1, 0, 0, 0, 1832, 1834, 3, 204, 102, 0, 1833, 1830, 1, 0, 0, 0, 1833, 1834, 1, 0, 0, 0, 1834, 1842, 1, 0, 0, 0, 1835, 1839, 5, 333, 0, 0, 1836, 1840, 3, 202, 101, 0, 1837, 1838, 5, 438, 0, 0, 1838, 1840, 3, 140, 70, 0, 1839, 1836, 1, 0, 0, 0, 1839, 1837, 1, 0, 0, 0, 1840, 1842, 1, 0, 0, 0, 1841, 1828, 1, 0, 0, 0, 1841, 1835, 1, 0, 0, 0, 1842, 1843, 1, 0, 0, 0, 1843, 1841, 1, 0, 0, 0, 1843, 1844, 1, 0, 0, 0, 1844, 1875, 1, 0, 0, 0, 1845, 1847, 5, 138, 0, 0, 1846, 1848, 5, 44, 0, 0, 1847, 1846, 1, 0, 0, 0, 1847, 1848, 1, 0, 0, 0, 1848, 1849, 1, 0, 0, 0, 1849, 1850, 3, 802, 401, 0, 1850, 1851, 5, 191, 0, 0, 1851, 1853, 5, 219, 0, 0, 1852, 1854, 3, 424, 212, 0, 1853, 1852, 1, 0, 0, 0, 1853, 1854, 1, 0, 0, 0, 1854, 1875, 1, 0, 0, 0, 1855, 1857, 5, 138, 0, 0, 1856, 1858, 5, 44, 0, 0, 1857, 1856, 1, 0, 0, 0, 1857, 1858, 1, 0, 0, 0, 1858, 1859, 1, 0, 0, 0, 1859, 1862, 3, 802, 401, 0, 1860, 1861, 5, 333, 0, 0, 1861, 1863, 5, 174, 0, 0, 1862, 1860, 1, 0, 0, 0, 1862, 1863, 1, 0, 0, 0, 1863, 1864, 1, 0, 0, 0, 1864, 1865, 5, 360, 0, 0, 1865, 1867, 3, 654, 327, 0, 1866, 1868, 3, 98, 49, 0, 1867, 1866, 1, 0, 0, 0, 1867, 1868, 1, 0, 0, 0, 1868, 1871, 1, 0, 0, 0, 1869, 1870, 5, 100, 0, 0, 1870, 1872, 3, 676, 338, 0, 1871, 1869, 1, 0, 0, 0, 1871, 1872, 1, 0, 0, 0, 1872, 1875, 1, 0, 0, 0, 1873, 1875, 3, 224, 112, 0, 1874, 1641, 1, 0, 0, 0, 1874, 1647, 1, 0, 0, 0, 1874, 1656, 1, 0, 0, 0, 1874, 1659, 1, 0, 0, 0, 1874, 1668, 1, 0, 0, 0, 1874, 1671, 1, 0, 0, 0, 1874, 1674, 1, 0, 0, 0, 1874, 1676, 1, 0, 0, 0, 1874, 1681, 1, 0, 0, 0, 1874, 1688, 1, 0, 0, 0, 1874, 1692, 1, 0, 0, 0, 1874, 1696, 1, 0, 0, 0, 1874, 1700, 1, 0, 0, 0, 1874, 1702, 1, 0, 0, 0, 1874, 1704, 1, 0, 0, 0, 1874, 1707, 1, 0, 0, 0, 1874, 1710, 1, 0, 0, 0, 1874, 1724, 1, 0, 0, 0, 1874, 1729, 1, 0, 0, 0, 1874, 1740, 1, 0, 0, 0, 1874, 1748, 1, 0, 0, 0, 1874, 1757, 1, 0, 0, 0, 1874, 1766, 1, 0, 0, 0, 1874, 1776, 1, 0, 0, 0, 1874, 1790, 1, 0, 0, 0, 1874, 1794, 1, 0, 0, 0, 1874, 1803, 1, 0, 0, 0, 1874, 1823, 1, 0, 0, 0, 1874, 1845, 1, 0, 0, 0, 1874, 1855, 1, 0, 0, 0, 1874, 1873, 1, 0, 0, 0, 1875, 93, 1, 0, 0, 0, 1876, 1877, 5, 333, 0, 0, 1877, 1878, 5, 53, 0, 0, 1878, 1882, 3, 676, 338, 0, 1879, 1880, 5, 191, 0, 0, 1880, 1882, 5, 53, 0, 0, 1881, 1876, 1, 0, 0, 0, 1881, 1879, 1, 0, 0, 0, 1882, 95, 1, 0, 0, 0, 1883, 1884, 7, 17, 0, 0, 1884, 97, 1, 0, 0, 0, 1885, 1886, 5, 43, 0, 0, 1886, 1887, 3, 318, 159, 0, 1887, 99, 1, 0, 0, 0, 1888, 1889, 5, 2, 0, 0, 1889, 1894, 3, 104, 52, 0, 1890, 1891, 5, 6, 0, 0, 1891, 1893, 3, 104, 52, 0, 1892, 1890, 1, 0, 0, 0, 1893, 1896, 1, 0, 0, 0, 1894, 1892, 1, 0, 0, 0, 1894, 1895, 1, 0, 0, 0, 1895, 1897, 1, 0, 0, 0, 1896, 1894, 1, 0, 0, 0, 1897, 1898, 5, 3, 0, 0, 1898, 101, 1, 0, 0, 0, 1899, 1900, 5, 105, 0, 0, 1900, 1901, 3, 100, 50, 0, 1901, 103, 1, 0, 0, 0, 1902, 1907, 3, 826, 413, 0, 1903, 1904, 5, 10, 0, 0, 1904, 1908, 3, 290, 145, 0, 1905, 1906, 5, 11, 0, 0, 1906, 1908, 3, 288, 144, 0, 1907, 1903, 1, 0, 0, 0, 1907, 1905, 1, 0, 0, 0, 1907, 1908, 1, 0, 0, 0, 1908, 105, 1, 0, 0, 0, 1909, 1910, 5, 62, 0, 0, 1910, 1911, 5, 422, 0, 0, 1911, 1912, 5, 105, 0, 0, 1912, 1913, 5, 2, 0, 0, 1913, 1914, 5, 533, 0, 0, 1914, 1915, 5, 574, 0, 0, 1915, 1916, 5, 6, 0, 0, 1916, 1917, 5, 534, 0, 0, 1917, 1918, 5, 574, 0, 0, 1918, 1932, 5, 3, 0, 0, 1919, 1920, 5, 62, 0, 0, 1920, 1921, 5, 422, 0, 0, 1921, 1922, 5, 68, 0, 0, 1922, 1932, 3, 536, 268, 0, 1923, 1924, 5, 62, 0, 0, 1924, 1925, 5, 422, 0, 0, 1925, 1926, 5, 64, 0, 0, 1926, 1927, 3, 536, 268, 0, 1927, 1928, 5, 94, 0, 0, 1928, 1929, 3, 536, 268, 0, 1929, 1932, 1, 0, 0, 0, 1930, 1932, 5, 53, 0, 0, 1931, 1909, 1, 0, 0, 0, 1931, 1919, 1, 0, 0, 0, 1931, 1923, 1, 0, 0, 0, 1931, 1930, 1, 0, 0, 0, 1932, 107, 1, 0, 0, 0, 1933, 1934, 5, 138, 0, 0, 1934, 1935, 5, 360, 0, 0, 1935, 1936, 3, 318, 159, 0, 1936, 1941, 3, 110, 55, 0, 1937, 1938, 5, 6, 0, 0, 1938, 1940, 3, 110, 55, 0, 1939, 1937, 1, 0, 0, 0, 1940, 1943, 1, 0, 0, 0, 1941, 1939, 1, 0, 0, 0, 1941, 1942, 1, 0, 0, 0, 1942, 109, 1, 0, 0, 0, 1943, 1941, 1, 0, 0, 0, 1944, 1945, 5, 133, 0, 0, 1945, 1946, 5, 143, 0, 0, 1946, 1948, 3, 646, 323, 0, 1947, 1949, 3, 96, 48, 0, 1948, 1947, 1, 0, 0, 0, 1948, 1949, 1, 0, 0, 0, 1949, 1975, 1, 0, 0, 0, 1950, 1951, 5, 191, 0, 0, 1951, 1953, 5, 143, 0, 0, 1952, 1954, 3, 424, 212, 0, 1953, 1952, 1, 0, 0, 0, 1953, 1954, 1, 0, 0, 0, 1954, 1955, 1, 0, 0, 0, 1955, 1957, 3, 820, 410, 0, 1956, 1958, 3, 96, 48, 0, 1957, 1956, 1, 0, 0, 0, 1957, 1958, 1, 0, 0, 0, 1958, 1975, 1, 0, 0, 0, 1959, 1960, 5, 138, 0, 0, 1960, 1961, 5, 143, 0, 0, 1961, 1964, 3, 820, 410, 0, 1962, 1963, 5, 333, 0, 0, 1963, 1965, 5, 174, 0, 0, 1964, 1962, 1, 0, 0, 0, 1964, 1965, 1, 0, 0, 0, 1965, 1966, 1, 0, 0, 0, 1966, 1967, 5, 360, 0, 0, 1967, 1969, 3, 654, 327, 0, 1968, 1970, 3, 98, 49, 0, 1969, 1968, 1, 0, 0, 0, 1969, 1970, 1, 0, 0, 0, 1970, 1972, 1, 0, 0, 0, 1971, 1973, 3, 96, 48, 0, 1972, 1971, 1, 0, 0, 0, 1972, 1973, 1, 0, 0, 0, 1973, 1975, 1, 0, 0, 0, 1974, 1944, 1, 0, 0, 0, 1974, 1950, 1, 0, 0, 0, 1974, 1959, 1, 0, 0, 0, 1975, 111, 1, 0, 0, 0, 1976, 1979, 5, 157, 0, 0, 1977, 1980, 3, 820, 410, 0, 1978, 1980, 5, 30, 0, 0, 1979, 1977, 1, 0, 0, 0, 1979, 1978, 1, 0, 0, 0, 1980, 113, 1, 0, 0, 0, 1981, 1983, 5, 169, 0, 0, 1982, 1984, 5, 107, 0, 0, 1983, 1982, 1, 0, 0, 0, 1983, 1984, 1, 0, 0, 0, 1984, 1985, 1, 0, 0, 0, 1985, 1987, 3, 776, 388, 0, 1986, 1988, 3, 146, 73, 0, 1987, 1986, 1, 0, 0, 0, 1987, 1988, 1, 0, 0, 0, 1988, 1989, 1, 0, 0, 0, 1989, 1991, 7, 18, 0, 0, 1990, 1992, 5, 297, 0, 0, 1991, 1990, 1, 0, 0, 0, 1991, 1992, 1, 0, 0, 0, 1992, 1996, 1, 0, 0, 0, 1993, 1997, 3, 810, 405, 0, 1994, 1997, 5, 343, 0, 0, 1995, 1997, 5, 344, 0, 0, 1996, 1993, 1, 0, 0, 0, 1996, 1994, 1, 0, 0, 0, 1996, 1995, 1, 0, 0, 0, 1997, 2003, 1, 0, 0, 0, 1998, 2000, 5, 100, 0, 0, 1999, 1998, 1, 0, 0, 0, 1999, 2000, 1, 0, 0, 0, 2000, 2001, 1, 0, 0, 0, 2001, 2002, 5, 184, 0, 0, 2002, 2004, 3, 810, 405, 0, 2003, 1999, 1, 0, 0, 0, 2003, 2004, 1, 0, 0, 0, 2004, 2006, 1, 0, 0, 0, 2005, 2007, 5, 105, 0, 0, 2006, 2005, 1, 0, 0, 0, 2006, 2007, 1, 0, 0, 0, 2007, 2008, 1, 0, 0, 0, 2008, 2010, 3, 118, 59, 0, 2009, 2011, 3, 640, 320, 0, 2010, 2009, 1, 0, 0, 0, 2010, 2011, 1, 0, 0, 0, 2011, 2031, 1, 0, 0, 0, 2012, 2013, 5, 169, 0, 0, 2013, 2014, 5, 2, 0, 0, 2014, 2015, 3, 532, 266, 0, 2015, 2016, 5, 3, 0, 0, 2016, 2018, 5, 94, 0, 0, 2017, 2019, 5, 297, 0, 0, 2018, 2017, 1, 0, 0, 0, 2018, 2019, 1, 0, 0, 0, 2019, 2023, 1, 0, 0, 0, 2020, 2024, 3, 810, 405, 0, 2021, 2024, 5, 343, 0, 0, 2022, 2024, 5, 344, 0, 0, 2023, 2020, 1, 0, 0, 0, 2023, 2021, 1, 0, 0, 0, 2023, 2022, 1, 0, 0, 0, 2024, 2026, 1, 0, 0, 0, 2025, 2027, 5, 105, 0, 0, 2026, 2025, 1, 0, 0, 0, 2026, 2027, 1, 0, 0, 0, 2027, 2028, 1, 0, 0, 0, 2028, 2029, 3, 118, 59, 0, 2029, 2031, 1, 0, 0, 0, 2030, 1981, 1, 0, 0, 0, 2030, 2012, 1, 0, 0, 0, 2031, 115, 1, 0, 0, 0, 2032, 2075, 5, 107, 0, 0, 2033, 2075, 5, 112, 0, 0, 2034, 2036, 7, 19, 0, 0, 2035, 2037, 5, 36, 0, 0, 2036, 2035, 1, 0, 0, 0, 2036, 2037, 1, 0, 0, 0, 2037, 2038, 1, 0, 0, 0, 2038, 2075, 3, 810, 405, 0, 2039, 2075, 5, 171, 0, 0, 2040, 2075, 5, 216, 0, 0, 2041, 2042, 5, 209, 0, 0, 2042, 2045, 5, 298, 0, 0, 2043, 2046, 3, 150, 75, 0, 2044, 2046, 5, 9, 0, 0, 2045, 2043, 1, 0, 0, 0, 2045, 2044, 1, 0, 0, 0, 2046, 2075, 1, 0, 0, 0, 2047, 2049, 5, 209, 0, 0, 2048, 2050, 5, 77, 0, 0, 2049, 2048, 1, 0, 0, 0, 2049, 2050, 1, 0, 0, 0, 2050, 2051, 1, 0, 0, 0, 2051, 2052, 5, 78, 0, 0, 2052, 2075, 3, 150, 75, 0, 2053, 2054, 5, 194, 0, 0, 2054, 2075, 3, 810, 405, 0, 2055, 2072, 7, 20, 0, 0, 2056, 2059, 5, 2, 0, 0, 2057, 2060, 3, 150, 75, 0, 2058, 2060, 5, 9, 0, 0, 2059, 2057, 1, 0, 0, 0, 2059, 2058, 1, 0, 0, 0, 2060, 2068, 1, 0, 0, 0, 2061, 2064, 5, 6, 0, 0, 2062, 2065, 3, 150, 75, 0, 2063, 2065, 5, 9, 0, 0, 2064, 2062, 1, 0, 0, 0, 2064, 2063, 1, 0, 0, 0, 2065, 2067, 1, 0, 0, 0, 2066, 2061, 1, 0, 0, 0, 2067, 2070, 1, 0, 0, 0, 2068, 2066, 1, 0, 0, 0, 2068, 2069, 1, 0, 0, 0, 2069, 2071, 1, 0, 0, 0, 2070, 2068, 1, 0, 0, 0, 2071, 2073, 5, 3, 0, 0, 2072, 2056, 1, 0, 0, 0, 2072, 2073, 1, 0, 0, 0, 2073, 2075, 1, 0, 0, 0, 2074, 2032, 1, 0, 0, 0, 2074, 2033, 1, 0, 0, 0, 2074, 2034, 1, 0, 0, 0, 2074, 2039, 1, 0, 0, 0, 2074, 2040, 1, 0, 0, 0, 2074, 2041, 1, 0, 0, 0, 2074, 2047, 1, 0, 0, 0, 2074, 2053, 1, 0, 0, 0, 2074, 2055, 1, 0, 0, 0, 2075, 2078, 1, 0, 0, 0, 2076, 2074, 1, 0, 0, 0, 2076, 2077, 1, 0, 0, 0, 2077, 117, 1, 0, 0, 0, 2078, 2076, 1, 0, 0, 0, 2079, 2098, 3, 116, 58, 0, 2080, 2083, 5, 2, 0, 0, 2081, 2084, 3, 116, 58, 0, 2082, 2084, 3, 120, 60, 0, 2083, 2081, 1, 0, 0, 0, 2083, 2082, 1, 0, 0, 0, 2084, 2092, 1, 0, 0, 0, 2085, 2088, 5, 6, 0, 0, 2086, 2089, 3, 116, 58, 0, 2087, 2089, 3, 120, 60, 0, 2088, 2086, 1, 0, 0, 0, 2088, 2087, 1, 0, 0, 0, 2089, 2091, 1, 0, 0, 0, 2090, 2085, 1, 0, 0, 0, 2091, 2094, 1, 0, 0, 0, 2092, 2090, 1, 0, 0, 0, 2092, 2093, 1, 0, 0, 0, 2093, 2095, 1, 0, 0, 0, 2094, 2092, 1, 0, 0, 0, 2095, 2096, 5, 3, 0, 0, 2096, 2098, 1, 0, 0, 0, 2097, 2079, 1, 0, 0, 0, 2097, 2080, 1, 0, 0, 0, 2098, 119, 1, 0, 0, 0, 2099, 2114, 3, 826, 413, 0, 2100, 2115, 3, 54, 27, 0, 2101, 2115, 3, 204, 102, 0, 2102, 2115, 5, 9, 0, 0, 2103, 2104, 5, 2, 0, 0, 2104, 2109, 3, 52, 26, 0, 2105, 2106, 5, 6, 0, 0, 2106, 2108, 3, 52, 26, 0, 2107, 2105, 1, 0, 0, 0, 2108, 2111, 1, 0, 0, 0, 2109, 2107, 1, 0, 0, 0, 2109, 2110, 1, 0, 0, 0, 2110, 2112, 1, 0, 0, 0, 2111, 2109, 1, 0, 0, 0, 2112, 2113, 5, 3, 0, 0, 2113, 2115, 1, 0, 0, 0, 2114, 2100, 1, 0, 0, 0, 2114, 2101, 1, 0, 0, 0, 2114, 2102, 1, 0, 0, 0, 2114, 2103, 1, 0, 0, 0, 2114, 2115, 1, 0, 0, 0, 2115, 121, 1, 0, 0, 0, 2116, 2118, 5, 46, 0, 0, 2117, 2119, 3, 124, 62, 0, 2118, 2117, 1, 0, 0, 0, 2118, 2119, 1, 0, 0, 0, 2119, 2120, 1, 0, 0, 0, 2120, 2122, 5, 92, 0, 0, 2121, 2123, 3, 296, 148, 0, 2122, 2121, 1, 0, 0, 0, 2122, 2123, 1, 0, 0, 0, 2123, 2124, 1, 0, 0, 0, 2124, 2190, 3, 774, 387, 0, 2125, 2127, 5, 2, 0, 0, 2126, 2128, 3, 128, 64, 0, 2127, 2126, 1, 0, 0, 0, 2127, 2128, 1, 0, 0, 0, 2128, 2129, 1, 0, 0, 0, 2129, 2131, 5, 3, 0, 0, 2130, 2132, 3, 166, 83, 0, 2131, 2130, 1, 0, 0, 0, 2131, 2132, 1, 0, 0, 0, 2132, 2134, 1, 0, 0, 0, 2133, 2135, 3, 168, 84, 0, 2134, 2133, 1, 0, 0, 0, 2134, 2135, 1, 0, 0, 0, 2135, 2137, 1, 0, 0, 0, 2136, 2138, 3, 172, 86, 0, 2137, 2136, 1, 0, 0, 0, 2137, 2138, 1, 0, 0, 0, 2138, 2140, 1, 0, 0, 0, 2139, 2141, 3, 174, 87, 0, 2140, 2139, 1, 0, 0, 0, 2140, 2141, 1, 0, 0, 0, 2141, 2143, 1, 0, 0, 0, 2142, 2144, 3, 176, 88, 0, 2143, 2142, 1, 0, 0, 0, 2143, 2144, 1, 0, 0, 0, 2144, 2146, 1, 0, 0, 0, 2145, 2147, 3, 178, 89, 0, 2146, 2145, 1, 0, 0, 0, 2146, 2147, 1, 0, 0, 0, 2147, 2191, 1, 0, 0, 0, 2148, 2149, 5, 275, 0, 0, 2149, 2151, 3, 318, 159, 0, 2150, 2152, 3, 126, 63, 0, 2151, 2150, 1, 0, 0, 0, 2151, 2152, 1, 0, 0, 0, 2152, 2154, 1, 0, 0, 0, 2153, 2155, 3, 168, 84, 0, 2154, 2153, 1, 0, 0, 0, 2154, 2155, 1, 0, 0, 0, 2155, 2157, 1, 0, 0, 0, 2156, 2158, 3, 172, 86, 0, 2157, 2156, 1, 0, 0, 0, 2157, 2158, 1, 0, 0, 0, 2158, 2160, 1, 0, 0, 0, 2159, 2161, 3, 174, 87, 0, 2160, 2159, 1, 0, 0, 0, 2160, 2161, 1, 0, 0, 0, 2161, 2163, 1, 0, 0, 0, 2162, 2164, 3, 176, 88, 0, 2163, 2162, 1, 0, 0, 0, 2163, 2164, 1, 0, 0, 0, 2164, 2166, 1, 0, 0, 0, 2165, 2167, 3, 178, 89, 0, 2166, 2165, 1, 0, 0, 0, 2166, 2167, 1, 0, 0, 0, 2167, 2191, 1, 0, 0, 0, 2168, 2169, 5, 285, 0, 0, 2169, 2170, 5, 275, 0, 0, 2170, 2172, 3, 782, 391, 0, 2171, 2173, 3, 126, 63, 0, 2172, 2171, 1, 0, 0, 0, 2172, 2173, 1, 0, 0, 0, 2173, 2174, 1, 0, 0, 0, 2174, 2176, 3, 106, 53, 0, 2175, 2177, 3, 168, 84, 0, 2176, 2175, 1, 0, 0, 0, 2176, 2177, 1, 0, 0, 0, 2177, 2179, 1, 0, 0, 0, 2178, 2180, 3, 172, 86, 0, 2179, 2178, 1, 0, 0, 0, 2179, 2180, 1, 0, 0, 0, 2180, 2182, 1, 0, 0, 0, 2181, 2183, 3, 174, 87, 0, 2182, 2181, 1, 0, 0, 0, 2182, 2183, 1, 0, 0, 0, 2183, 2185, 1, 0, 0, 0, 2184, 2186, 3, 176, 88, 0, 2185, 2184, 1, 0, 0, 0, 2185, 2186, 1, 0, 0, 0, 2186, 2188, 1, 0, 0, 0, 2187, 2189, 3, 178, 89, 0, 2188, 2187, 1, 0, 0, 0, 2188, 2189, 1, 0, 0, 0, 2189, 2191, 1, 0, 0, 0, 2190, 2125, 1, 0, 0, 0, 2190, 2148, 1, 0, 0, 0, 2190, 2168, 1, 0, 0, 0, 2191, 123, 1, 0, 0, 0, 2192, 2198, 5, 354, 0, 0, 2193, 2198, 5, 352, 0, 0, 2194, 2195, 7, 21, 0, 0, 2195, 2198, 7, 22, 0, 0, 2196, 2198, 5, 367, 0, 0, 2197, 2192, 1, 0, 0, 0, 2197, 2193, 1, 0, 0, 0, 2197, 2194, 1, 0, 0, 0, 2197, 2196, 1, 0, 0, 0, 2198, 125, 1, 0, 0, 0, 2199, 2200, 5, 2, 0, 0, 2200, 2205, 3, 132, 66, 0, 2201, 2202, 5, 6, 0, 0, 2202, 2204, 3, 132, 66, 0, 2203, 2201, 1, 0, 0, 0, 2204, 2207, 1, 0, 0, 0, 2205, 2203, 1, 0, 0, 0, 2205, 2206, 1, 0, 0, 0, 2206, 2208, 1, 0, 0, 0, 2207, 2205, 1, 0, 0, 0, 2208, 2209, 5, 3, 0, 0, 2209, 127, 1, 0, 0, 0, 2210, 2215, 3, 130, 65, 0, 2211, 2212, 5, 6, 0, 0, 2212, 2214, 3, 130, 65, 0, 2213, 2211, 1, 0, 0, 0, 2214, 2217, 1, 0, 0, 0, 2215, 2213, 1, 0, 0, 0, 2215, 2216, 1, 0, 0, 0, 2216, 129, 1, 0, 0, 0, 2217, 2215, 1, 0, 0, 0, 2218, 2219, 5, 45, 0, 0, 2219, 2221, 3, 820, 410, 0, 2220, 2218, 1, 0, 0, 0, 2220, 2221, 1, 0, 0, 0, 2221, 2222, 1, 0, 0, 0, 2222, 2234, 3, 144, 72, 0, 2223, 2234, 3, 134, 67, 0, 2224, 2225, 5, 120, 0, 0, 2225, 2230, 3, 782, 391, 0, 2226, 2227, 7, 23, 0, 0, 2227, 2229, 3, 142, 71, 0, 2228, 2226, 1, 0, 0, 0, 2229, 2232, 1, 0, 0, 0, 2230, 2228, 1, 0, 0, 0, 2230, 2231, 1, 0, 0, 0, 2231, 2234, 1, 0, 0, 0, 2232, 2230, 1, 0, 0, 0, 2233, 2220, 1, 0, 0, 0, 2233, 2223, 1, 0, 0, 0, 2233, 2224, 1, 0, 0, 0, 2234, 131, 1, 0, 0, 0, 2235, 2238, 3, 804, 402, 0, 2236, 2237, 5, 105, 0, 0, 2237, 2239, 5, 280, 0, 0, 2238, 2236, 1, 0, 0, 0, 2238, 2239, 1, 0, 0, 0, 2239, 2243, 1, 0, 0, 0, 2240, 2242, 3, 136, 68, 0, 2241, 2240, 1, 0, 0, 0, 2242, 2245, 1, 0, 0, 0, 2243, 2241, 1, 0, 0, 0, 2243, 2244, 1, 0, 0, 0, 2244, 2252, 1, 0, 0, 0, 2245, 2243, 1, 0, 0, 0, 2246, 2247, 5, 45, 0, 0, 2247, 2249, 3, 820, 410, 0, 2248, 2246, 1, 0, 0, 0, 2248, 2249, 1, 0, 0, 0, 2249, 2250, 1, 0, 0, 0, 2250, 2252, 3, 144, 72, 0, 2251, 2235, 1, 0, 0, 0, 2251, 2248, 1, 0, 0, 0, 2252, 133, 1, 0, 0, 0, 2253, 2254, 3, 804, 402, 0, 2254, 2256, 3, 654, 327, 0, 2255, 2257, 3, 222, 111, 0, 2256, 2255, 1, 0, 0, 0, 2256, 2257, 1, 0, 0, 0, 2257, 2267, 1, 0, 0, 0, 2258, 2265, 5, 345, 0, 0, 2259, 2266, 5, 544, 0, 0, 2260, 2266, 5, 205, 0, 0, 2261, 2266, 5, 545, 0, 0, 2262, 2266, 5, 546, 0, 0, 2263, 2266, 5, 53, 0, 0, 2264, 2266, 3, 820, 410, 0, 2265, 2259, 1, 0, 0, 0, 2265, 2260, 1, 0, 0, 0, 2265, 2261, 1, 0, 0, 0, 2265, 2262, 1, 0, 0, 0, 2265, 2263, 1, 0, 0, 0, 2265, 2264, 1, 0, 0, 0, 2266, 2268, 1, 0, 0, 0, 2267, 2258, 1, 0, 0, 0, 2267, 2268, 1, 0, 0, 0, 2268, 2271, 1, 0, 0, 0, 2269, 2270, 5, 543, 0, 0, 2270, 2272, 3, 820, 410, 0, 2271, 2269, 1, 0, 0, 0, 2271, 2272, 1, 0, 0, 0, 2272, 2274, 1, 0, 0, 0, 2273, 2275, 3, 98, 49, 0, 2274, 2273, 1, 0, 0, 0, 2274, 2275, 1, 0, 0, 0, 2275, 2278, 1, 0, 0, 0, 2276, 2277, 5, 105, 0, 0, 2277, 2279, 5, 280, 0, 0, 2278, 2276, 1, 0, 0, 0, 2278, 2279, 1, 0, 0, 0, 2279, 2283, 1, 0, 0, 0, 2280, 2282, 3, 136, 68, 0, 2281, 2280, 1, 0, 0, 0, 2282, 2285, 1, 0, 0, 0, 2283, 2281, 1, 0, 0, 0, 2283, 2284, 1, 0, 0, 0, 2284, 135, 1, 0, 0, 0, 2285, 2283, 1, 0, 0, 0, 2286, 2287, 5, 45, 0, 0, 2287, 2289, 3, 820, 410, 0, 2288, 2286, 1, 0, 0, 0, 2288, 2289, 1, 0, 0, 0, 2289, 2290, 1, 0, 0, 0, 2290, 2295, 3, 138, 69, 0, 2291, 2293, 5, 77, 0, 0, 2292, 2291, 1, 0, 0, 0, 2292, 2293, 1, 0, 0, 0, 2293, 2294, 1, 0, 0, 0, 2294, 2296, 5, 54, 0, 0, 2295, 2292, 1, 0, 0, 0, 2295, 2296, 1, 0, 0, 0, 2296, 2299, 1, 0, 0, 0, 2297, 2298, 5, 69, 0, 0, 2298, 2300, 7, 9, 0, 0, 2299, 2297, 1, 0, 0, 0, 2299, 2300, 1, 0, 0, 0, 2300, 137, 1, 0, 0, 0, 2301, 2303, 5, 77, 0, 0, 2302, 2301, 1, 0, 0, 0, 2302, 2303, 1, 0, 0, 0, 2303, 2304, 1, 0, 0, 0, 2304, 2382, 5, 78, 0, 0, 2305, 2307, 5, 98, 0, 0, 2306, 2308, 3, 402, 201, 0, 2307, 2306, 1, 0, 0, 0, 2307, 2308, 1, 0, 0, 0, 2308, 2310, 1, 0, 0, 0, 2309, 2311, 3, 180, 90, 0, 2310, 2309, 1, 0, 0, 0, 2310, 2311, 1, 0, 0, 0, 2311, 2382, 1, 0, 0, 0, 2312, 2318, 5, 98, 0, 0, 2313, 2315, 5, 273, 0, 0, 2314, 2316, 5, 77, 0, 0, 2315, 2314, 1, 0, 0, 0, 2315, 2316, 1, 0, 0, 0, 2316, 2317, 1, 0, 0, 0, 2317, 2319, 5, 56, 0, 0, 2318, 2313, 1, 0, 0, 0, 2318, 2319, 1, 0, 0, 0, 2319, 2322, 1, 0, 0, 0, 2320, 2321, 5, 441, 0, 0, 2321, 2323, 3, 362, 181, 0, 2322, 2320, 1, 0, 0, 0, 2322, 2323, 1, 0, 0, 0, 2323, 2325, 1, 0, 0, 0, 2324, 2326, 3, 574, 287, 0, 2325, 2324, 1, 0, 0, 0, 2325, 2326, 1, 0, 0, 0, 2326, 2328, 1, 0, 0, 0, 2327, 2329, 3, 180, 90, 0, 2328, 2327, 1, 0, 0, 0, 2328, 2329, 1, 0, 0, 0, 2329, 2382, 1, 0, 0, 0, 2330, 2331, 5, 85, 0, 0, 2331, 2333, 5, 245, 0, 0, 2332, 2334, 3, 402, 201, 0, 2333, 2332, 1, 0, 0, 0, 2333, 2334, 1, 0, 0, 0, 2334, 2336, 1, 0, 0, 0, 2335, 2337, 3, 180, 90, 0, 2336, 2335, 1, 0, 0, 0, 2336, 2337, 1, 0, 0, 0, 2337, 2382, 1, 0, 0, 0, 2338, 2339, 5, 42, 0, 0, 2339, 2340, 5, 2, 0, 0, 2340, 2341, 3, 676, 338, 0, 2341, 2344, 5, 3, 0, 0, 2342, 2343, 5, 269, 0, 0, 2343, 2345, 5, 228, 0, 0, 2344, 2342, 1, 0, 0, 0, 2344, 2345, 1, 0, 0, 0, 2345, 2382, 1, 0, 0, 0, 2346, 2347, 5, 53, 0, 0, 2347, 2382, 3, 684, 342, 0, 2348, 2349, 5, 438, 0, 0, 2349, 2350, 3, 140, 70, 0, 2350, 2367, 5, 36, 0, 0, 2351, 2360, 5, 219, 0, 0, 2352, 2354, 5, 2, 0, 0, 2353, 2355, 3, 202, 101, 0, 2354, 2353, 1, 0, 0, 0, 2355, 2356, 1, 0, 0, 0, 2356, 2354, 1, 0, 0, 0, 2356, 2357, 1, 0, 0, 0, 2357, 2358, 1, 0, 0, 0, 2358, 2359, 5, 3, 0, 0, 2359, 2361, 1, 0, 0, 0, 2360, 2352, 1, 0, 0, 0, 2360, 2361, 1, 0, 0, 0, 2361, 2368, 1, 0, 0, 0, 2362, 2363, 5, 2, 0, 0, 2363, 2364, 3, 676, 338, 0, 2364, 2365, 5, 3, 0, 0, 2365, 2366, 5, 440, 0, 0, 2366, 2368, 1, 0, 0, 0, 2367, 2351, 1, 0, 0, 0, 2367, 2362, 1, 0, 0, 0, 2368, 2382, 1, 0, 0, 0, 2369, 2370, 5, 86, 0, 0, 2370, 2372, 3, 782, 391, 0, 2371, 2373, 3, 146, 73, 0, 2372, 2371, 1, 0, 0, 0, 2372, 2373, 1, 0, 0, 0, 2373, 2375, 1, 0, 0, 0, 2374, 2376, 3, 154, 77, 0, 2375, 2374, 1, 0, 0, 0, 2375, 2376, 1, 0, 0, 0, 2376, 2378, 1, 0, 0, 0, 2377, 2379, 3, 158, 79, 0, 2378, 2377, 1, 0, 0, 0, 2378, 2379, 1, 0, 0, 0, 2379, 2382, 1, 0, 0, 0, 2380, 2382, 3, 98, 49, 0, 2381, 2302, 1, 0, 0, 0, 2381, 2305, 1, 0, 0, 0, 2381, 2312, 1, 0, 0, 0, 2381, 2330, 1, 0, 0, 0, 2381, 2338, 1, 0, 0, 0, 2381, 2346, 1, 0, 0, 0, 2381, 2348, 1, 0, 0, 0, 2381, 2369, 1, 0, 0, 0, 2381, 2380, 1, 0, 0, 0, 2382, 139, 1, 0, 0, 0, 2383, 2387, 5, 139, 0, 0, 2384, 2385, 5, 147, 0, 0, 2385, 2387, 5, 53, 0, 0, 2386, 2383, 1, 0, 0, 0, 2386, 2384, 1, 0, 0, 0, 2387, 141, 1, 0, 0, 0, 2388, 2389, 7, 24, 0, 0, 2389, 143, 1, 0, 0, 0, 2390, 2391, 5, 42, 0, 0, 2391, 2392, 5, 2, 0, 0, 2392, 2393, 3, 676, 338, 0, 2393, 2397, 5, 3, 0, 0, 2394, 2396, 3, 274, 137, 0, 2395, 2394, 1, 0, 0, 0, 2396, 2399, 1, 0, 0, 0, 2397, 2395, 1, 0, 0, 0, 2397, 2398, 1, 0, 0, 0, 2398, 2487, 1, 0, 0, 0, 2399, 2397, 1, 0, 0, 0, 2400, 2404, 5, 98, 0, 0, 2401, 2402, 5, 85, 0, 0, 2402, 2404, 5, 245, 0, 0, 2403, 2400, 1, 0, 0, 0, 2403, 2401, 1, 0, 0, 0, 2404, 2428, 1, 0, 0, 0, 2405, 2407, 3, 146, 73, 0, 2406, 2408, 3, 152, 76, 0, 2407, 2406, 1, 0, 0, 0, 2407, 2408, 1, 0, 0, 0, 2408, 2410, 1, 0, 0, 0, 2409, 2411, 3, 402, 201, 0, 2410, 2409, 1, 0, 0, 0, 2410, 2411, 1, 0, 0, 0, 2411, 2413, 1, 0, 0, 0, 2412, 2414, 3, 180, 90, 0, 2413, 2412, 1, 0, 0, 0, 2413, 2414, 1, 0, 0, 0, 2414, 2418, 1, 0, 0, 0, 2415, 2417, 3, 274, 137, 0, 2416, 2415, 1, 0, 0, 0, 2417, 2420, 1, 0, 0, 0, 2418, 2416, 1, 0, 0, 0, 2418, 2419, 1, 0, 0, 0, 2419, 2429, 1, 0, 0, 0, 2420, 2418, 1, 0, 0, 0, 2421, 2425, 3, 182, 91, 0, 2422, 2424, 3, 274, 137, 0, 2423, 2422, 1, 0, 0, 0, 2424, 2427, 1, 0, 0, 0, 2425, 2423, 1, 0, 0, 0, 2425, 2426, 1, 0, 0, 0, 2426, 2429, 1, 0, 0, 0, 2427, 2425, 1, 0, 0, 0, 2428, 2405, 1, 0, 0, 0, 2428, 2421, 1, 0, 0, 0, 2429, 2487, 1, 0, 0, 0, 2430, 2432, 5, 199, 0, 0, 2431, 2433, 3, 172, 86, 0, 2432, 2431, 1, 0, 0, 0, 2432, 2433, 1, 0, 0, 0, 2433, 2434, 1, 0, 0, 0, 2434, 2435, 5, 2, 0, 0, 2435, 2440, 3, 156, 78, 0, 2436, 2437, 5, 6, 0, 0, 2437, 2439, 3, 156, 78, 0, 2438, 2436, 1, 0, 0, 0, 2439, 2442, 1, 0, 0, 0, 2440, 2438, 1, 0, 0, 0, 2440, 2441, 1, 0, 0, 0, 2441, 2443, 1, 0, 0, 0, 2442, 2440, 1, 0, 0, 0, 2443, 2445, 5, 3, 0, 0, 2444, 2446, 3, 152, 76, 0, 2445, 2444, 1, 0, 0, 0, 2445, 2446, 1, 0, 0, 0, 2446, 2448, 1, 0, 0, 0, 2447, 2449, 3, 402, 201, 0, 2448, 2447, 1, 0, 0, 0, 2448, 2449, 1, 0, 0, 0, 2449, 2451, 1, 0, 0, 0, 2450, 2452, 3, 180, 90, 0, 2451, 2450, 1, 0, 0, 0, 2451, 2452, 1, 0, 0, 0, 2452, 2458, 1, 0, 0, 0, 2453, 2454, 5, 103, 0, 0, 2454, 2455, 5, 2, 0, 0, 2455, 2456, 3, 676, 338, 0, 2456, 2457, 5, 3, 0, 0, 2457, 2459, 1, 0, 0, 0, 2458, 2453, 1, 0, 0, 0, 2458, 2459, 1, 0, 0, 0, 2459, 2463, 1, 0, 0, 0, 2460, 2462, 3, 274, 137, 0, 2461, 2460, 1, 0, 0, 0, 2462, 2465, 1, 0, 0, 0, 2463, 2461, 1, 0, 0, 0, 2463, 2464, 1, 0, 0, 0, 2464, 2487, 1, 0, 0, 0, 2465, 2463, 1, 0, 0, 0, 2466, 2467, 5, 63, 0, 0, 2467, 2468, 5, 245, 0, 0, 2468, 2469, 3, 146, 73, 0, 2469, 2470, 5, 86, 0, 0, 2470, 2472, 3, 782, 391, 0, 2471, 2473, 3, 146, 73, 0, 2472, 2471, 1, 0, 0, 0, 2472, 2473, 1, 0, 0, 0, 2473, 2475, 1, 0, 0, 0, 2474, 2476, 3, 154, 77, 0, 2475, 2474, 1, 0, 0, 0, 2475, 2476, 1, 0, 0, 0, 2476, 2478, 1, 0, 0, 0, 2477, 2479, 3, 158, 79, 0, 2478, 2477, 1, 0, 0, 0, 2478, 2479, 1, 0, 0, 0, 2479, 2483, 1, 0, 0, 0, 2480, 2482, 3, 274, 137, 0, 2481, 2480, 1, 0, 0, 0, 2482, 2485, 1, 0, 0, 0, 2483, 2481, 1, 0, 0, 0, 2483, 2484, 1, 0, 0, 0, 2484, 2487, 1, 0, 0, 0, 2485, 2483, 1, 0, 0, 0, 2486, 2390, 1, 0, 0, 0, 2486, 2403, 1, 0, 0, 0, 2486, 2430, 1, 0, 0, 0, 2486, 2466, 1, 0, 0, 0, 2487, 145, 1, 0, 0, 0, 2488, 2489, 5, 2, 0, 0, 2489, 2490, 3, 150, 75, 0, 2490, 2491, 5, 3, 0, 0, 2491, 147, 1, 0, 0, 0, 2492, 2493, 5, 2, 0, 0, 2493, 2498, 3, 804, 402, 0, 2494, 2495, 5, 6, 0, 0, 2495, 2497, 3, 804, 402, 0, 2496, 2494, 1, 0, 0, 0, 2497, 2500, 1, 0, 0, 0, 2498, 2496, 1, 0, 0, 0, 2498, 2499, 1, 0, 0, 0, 2499, 2501, 1, 0, 0, 0, 2500, 2498, 1, 0, 0, 0, 2501, 2502, 5, 3, 0, 0, 2502, 149, 1, 0, 0, 0, 2503, 2508, 3, 802, 401, 0, 2504, 2505, 5, 6, 0, 0, 2505, 2507, 3, 802, 401, 0, 2506, 2504, 1, 0, 0, 0, 2507, 2510, 1, 0, 0, 0, 2508, 2506, 1, 0, 0, 0, 2508, 2509, 1, 0, 0, 0, 2509, 151, 1, 0, 0, 0, 2510, 2508, 1, 0, 0, 0, 2511, 2512, 5, 441, 0, 0, 2512, 2513, 3, 146, 73, 0, 2513, 153, 1, 0, 0, 0, 2514, 2515, 5, 258, 0, 0, 2515, 2516, 7, 25, 0, 0, 2516, 155, 1, 0, 0, 0, 2517, 2518, 3, 364, 182, 0, 2518, 2525, 5, 105, 0, 0, 2519, 2526, 3, 416, 208, 0, 2520, 2521, 5, 278, 0, 0, 2521, 2522, 5, 2, 0, 0, 2522, 2523, 3, 416, 208, 0, 2523, 2524, 5, 3, 0, 0, 2524, 2526, 1, 0, 0, 0, 2525, 2519, 1, 0, 0, 0, 2525, 2520, 1, 0, 0, 0, 2526, 157, 1, 0, 0, 0, 2527, 2529, 3, 160, 80, 0, 2528, 2530, 3, 162, 81, 0, 2529, 2528, 1, 0, 0, 0, 2529, 2530, 1, 0, 0, 0, 2530, 2536, 1, 0, 0, 0, 2531, 2533, 3, 162, 81, 0, 2532, 2534, 3, 160, 80, 0, 2533, 2532, 1, 0, 0, 0, 2533, 2534, 1, 0, 0, 0, 2534, 2536, 1, 0, 0, 0, 2535, 2527, 1, 0, 0, 0, 2535, 2531, 1, 0, 0, 0, 2536, 159, 1, 0, 0, 0, 2537, 2538, 5, 80, 0, 0, 2538, 2539, 5, 369, 0, 0, 2539, 2540, 3, 164, 82, 0, 2540, 161, 1, 0, 0, 0, 2541, 2542, 5, 80, 0, 0, 2542, 2543, 5, 182, 0, 0, 2543, 2544, 3, 164, 82, 0, 2544, 163, 1, 0, 0, 0, 2545, 2546, 5, 269, 0, 0, 2546, 2555, 5, 132, 0, 0, 2547, 2555, 5, 315, 0, 0, 2548, 2555, 5, 150, 0, 0, 2549, 2550, 5, 333, 0, 0, 2550, 2552, 7, 26, 0, 0, 2551, 2553, 3, 150, 75, 0, 2552, 2551, 1, 0, 0, 0, 2552, 2553, 1, 0, 0, 0, 2553, 2555, 1, 0, 0, 0, 2554, 2545, 1, 0, 0, 0, 2554, 2547, 1, 0, 0, 0, 2554, 2548, 1, 0, 0, 0, 2554, 2549, 1, 0, 0, 0, 2555, 165, 1, 0, 0, 0, 2556, 2557, 5, 238, 0, 0, 2557, 2558, 5, 2, 0, 0, 2558, 2559, 3, 762, 381, 0, 2559, 2560, 5, 3, 0, 0, 2560, 167, 1, 0, 0, 0, 2561, 2562, 5, 285, 0, 0, 2562, 2563, 5, 147, 0, 0, 2563, 2564, 3, 820, 410, 0, 2564, 2565, 5, 2, 0, 0, 2565, 2570, 3, 170, 85, 0, 2566, 2567, 5, 6, 0, 0, 2567, 2569, 3, 170, 85, 0, 2568, 2566, 1, 0, 0, 0, 2569, 2572, 1, 0, 0, 0, 2570, 2568, 1, 0, 0, 0, 2570, 2571, 1, 0, 0, 0, 2571, 2573, 1, 0, 0, 0, 2572, 2570, 1, 0, 0, 0, 2573, 2574, 5, 3, 0, 0, 2574, 169, 1, 0, 0, 0, 2575, 2582, 3, 802, 401, 0, 2576, 2582, 3, 690, 345, 0, 2577, 2578, 5, 2, 0, 0, 2578, 2579, 3, 676, 338, 0, 2579, 2580, 5, 3, 0, 0, 2580, 2582, 1, 0, 0, 0, 2581, 2575, 1, 0, 0, 0, 2581, 2576, 1, 0, 0, 0, 2581, 2577, 1, 0, 0, 0, 2582, 2584, 1, 0, 0, 0, 2583, 2585, 3, 98, 49, 0, 2584, 2583, 1, 0, 0, 0, 2584, 2585, 1, 0, 0, 0, 2585, 2587, 1, 0, 0, 0, 2586, 2588, 3, 318, 159, 0, 2587, 2586, 1, 0, 0, 0, 2587, 2588, 1, 0, 0, 0, 2588, 171, 1, 0, 0, 0, 2589, 2590, 5, 100, 0, 0, 2590, 2591, 3, 820, 410, 0, 2591, 173, 1, 0, 0, 0, 2592, 2593, 5, 105, 0, 0, 2593, 2597, 3, 100, 50, 0, 2594, 2595, 7, 27, 0, 0, 2595, 2597, 5, 277, 0, 0, 2596, 2592, 1, 0, 0, 0, 2596, 2594, 1, 0, 0, 0, 2597, 175, 1, 0, 0, 0, 2598, 2599, 5, 80, 0, 0, 2599, 2605, 5, 161, 0, 0, 2600, 2606, 5, 191, 0, 0, 2601, 2602, 5, 182, 0, 0, 2602, 2606, 5, 320, 0, 0, 2603, 2604, 5, 292, 0, 0, 2604, 2606, 5, 320, 0, 0, 2605, 2600, 1, 0, 0, 0, 2605, 2601, 1, 0, 0, 0, 2605, 2603, 1, 0, 0, 0, 2606, 177, 1, 0, 0, 0, 2607, 2608, 5, 351, 0, 0, 2608, 2609, 3, 772, 386, 0, 2609, 179, 1, 0, 0, 0, 2610, 2611, 5, 100, 0, 0, 2611, 2612, 5, 226, 0, 0, 2612, 2613, 3, 178, 89, 0, 2613, 181, 1, 0, 0, 0, 2614, 2615, 5, 100, 0, 0, 2615, 2616, 5, 226, 0, 0, 2616, 2617, 3, 820, 410, 0, 2617, 183, 1, 0, 0, 0, 2618, 2619, 5, 46, 0, 0, 2619, 2624, 5, 342, 0, 0, 2620, 2622, 3, 296, 148, 0, 2621, 2620, 1, 0, 0, 0, 2621, 2622, 1, 0, 0, 0, 2622, 2623, 1, 0, 0, 0, 2623, 2625, 3, 318, 159, 0, 2624, 2621, 1, 0, 0, 0, 2624, 2625, 1, 0, 0, 0, 2625, 2627, 1, 0, 0, 0, 2626, 2628, 3, 146, 73, 0, 2627, 2626, 1, 0, 0, 0, 2627, 2628, 1, 0, 0, 0, 2628, 2629, 1, 0, 0, 0, 2629, 2639, 5, 80, 0, 0, 2630, 2635, 3, 734, 367, 0, 2631, 2632, 5, 6, 0, 0, 2632, 2634, 3, 734, 367, 0, 2633, 2631, 1, 0, 0, 0, 2634, 2637, 1, 0, 0, 0, 2635, 2633, 1, 0, 0, 0, 2635, 2636, 1, 0, 0, 0, 2636, 2640, 1, 0, 0, 0, 2637, 2635, 1, 0, 0, 0, 2638, 2640, 3, 732, 366, 0, 2639, 2630, 1, 0, 0, 0, 2639, 2638, 1, 0, 0, 0, 2640, 2641, 1, 0, 0, 0, 2641, 2642, 3, 612, 306, 0, 2642, 185, 1, 0, 0, 0, 2643, 2644, 5, 138, 0, 0, 2644, 2646, 5, 342, 0, 0, 2645, 2647, 3, 424, 212, 0, 2646, 2645, 1, 0, 0, 0, 2646, 2647, 1, 0, 0, 0, 2647, 2648, 1, 0, 0, 0, 2648, 2649, 3, 318, 159, 0, 2649, 2650, 5, 333, 0, 0, 2650, 2651, 5, 342, 0, 0, 2651, 2652, 3, 814, 407, 0, 2652, 187, 1, 0, 0, 0, 2653, 2655, 5, 46, 0, 0, 2654, 2656, 3, 124, 62, 0, 2655, 2654, 1, 0, 0, 0, 2655, 2656, 1, 0, 0, 0, 2656, 2657, 1, 0, 0, 0, 2657, 2659, 5, 92, 0, 0, 2658, 2660, 3, 296, 148, 0, 2659, 2658, 1, 0, 0, 0, 2659, 2660, 1, 0, 0, 0, 2660, 2661, 1, 0, 0, 0, 2661, 2662, 3, 190, 95, 0, 2662, 2663, 5, 36, 0, 0, 2663, 2665, 3, 562, 281, 0, 2664, 2666, 3, 192, 96, 0, 2665, 2664, 1, 0, 0, 0, 2665, 2666, 1, 0, 0, 0, 2666, 189, 1, 0, 0, 0, 2667, 2669, 3, 774, 387, 0, 2668, 2670, 3, 148, 74, 0, 2669, 2668, 1, 0, 0, 0, 2669, 2670, 1, 0, 0, 0, 2670, 2672, 1, 0, 0, 0, 2671, 2673, 3, 172, 86, 0, 2672, 2671, 1, 0, 0, 0, 2672, 2673, 1, 0, 0, 0, 2673, 2675, 1, 0, 0, 0, 2674, 2676, 3, 174, 87, 0, 2675, 2674, 1, 0, 0, 0, 2675, 2676, 1, 0, 0, 0, 2676, 2678, 1, 0, 0, 0, 2677, 2679, 3, 176, 88, 0, 2678, 2677, 1, 0, 0, 0, 2678, 2679, 1, 0, 0, 0, 2679, 2681, 1, 0, 0, 0, 2680, 2682, 3, 178, 89, 0, 2681, 2680, 1, 0, 0, 0, 2681, 2682, 1, 0, 0, 0, 2682, 191, 1, 0, 0, 0, 2683, 2687, 5, 105, 0, 0, 2684, 2688, 5, 174, 0, 0, 2685, 2686, 5, 269, 0, 0, 2686, 2688, 5, 174, 0, 0, 2687, 2684, 1, 0, 0, 0, 2687, 2685, 1, 0, 0, 0, 2688, 193, 1, 0, 0, 0, 2689, 2691, 5, 46, 0, 0, 2690, 2692, 5, 367, 0, 0, 2691, 2690, 1, 0, 0, 0, 2691, 2692, 1, 0, 0, 0, 2692, 2693, 1, 0, 0, 0, 2693, 2694, 5, 259, 0, 0, 2694, 2696, 5, 376, 0, 0, 2695, 2697, 3, 296, 148, 0, 2696, 2695, 1, 0, 0, 0, 2696, 2697, 1, 0, 0, 0, 2697, 2698, 1, 0, 0, 0, 2698, 2700, 3, 778, 389, 0, 2699, 2701, 3, 148, 74, 0, 2700, 2699, 1, 0, 0, 0, 2700, 2701, 1, 0, 0, 0, 2701, 2703, 1, 0, 0, 0, 2702, 2704, 3, 172, 86, 0, 2703, 2702, 1, 0, 0, 0, 2703, 2704, 1, 0, 0, 0, 2704, 2706, 1, 0, 0, 0, 2705, 2707, 3, 102, 51, 0, 2706, 2705, 1, 0, 0, 0, 2706, 2707, 1, 0, 0, 0, 2707, 2709, 1, 0, 0, 0, 2708, 2710, 3, 178, 89, 0, 2709, 2708, 1, 0, 0, 0, 2709, 2710, 1, 0, 0, 0, 2710, 2711, 1, 0, 0, 0, 2711, 2712, 5, 36, 0, 0, 2712, 2714, 3, 562, 281, 0, 2713, 2715, 3, 192, 96, 0, 2714, 2713, 1, 0, 0, 0, 2714, 2715, 1, 0, 0, 0, 2715, 195, 1, 0, 0, 0, 2716, 2717, 5, 305, 0, 0, 2717, 2718, 5, 259, 0, 0, 2718, 2720, 5, 376, 0, 0, 2719, 2721, 5, 109, 0, 0, 2720, 2719, 1, 0, 0, 0, 2720, 2721, 1, 0, 0, 0, 2721, 2722, 1, 0, 0, 0, 2722, 2724, 3, 780, 390, 0, 2723, 2725, 3, 192, 96, 0, 2724, 2723, 1, 0, 0, 0, 2724, 2725, 1, 0, 0, 0, 2725, 197, 1, 0, 0, 0, 2726, 2728, 5, 46, 0, 0, 2727, 2729, 3, 124, 62, 0, 2728, 2727, 1, 0, 0, 0, 2728, 2729, 1, 0, 0, 0, 2729, 2730, 1, 0, 0, 0, 2730, 2732, 5, 328, 0, 0, 2731, 2733, 3, 296, 148, 0, 2732, 2731, 1, 0, 0, 0, 2732, 2733, 1, 0, 0, 0, 2733, 2734, 1, 0, 0, 0, 2734, 2740, 3, 782, 391, 0, 2735, 2737, 3, 202, 101, 0, 2736, 2735, 1, 0, 0, 0, 2737, 2738, 1, 0, 0, 0, 2738, 2736, 1, 0, 0, 0, 2738, 2739, 1, 0, 0, 0, 2739, 2741, 1, 0, 0, 0, 2740, 2736, 1, 0, 0, 0, 2740, 2741, 1, 0, 0, 0, 2741, 199, 1, 0, 0, 0, 2742, 2743, 5, 138, 0, 0, 2743, 2745, 5, 328, 0, 0, 2744, 2746, 3, 424, 212, 0, 2745, 2744, 1, 0, 0, 0, 2745, 2746, 1, 0, 0, 0, 2746, 2747, 1, 0, 0, 0, 2747, 2749, 3, 782, 391, 0, 2748, 2750, 3, 202, 101, 0, 2749, 2748, 1, 0, 0, 0, 2750, 2751, 1, 0, 0, 0, 2751, 2749, 1, 0, 0, 0, 2751, 2752, 1, 0, 0, 0, 2752, 201, 1, 0, 0, 0, 2753, 2754, 5, 36, 0, 0, 2754, 2787, 3, 656, 328, 0, 2755, 2757, 5, 148, 0, 0, 2756, 2758, 3, 204, 102, 0, 2757, 2756, 1, 0, 0, 0, 2757, 2758, 1, 0, 0, 0, 2758, 2787, 1, 0, 0, 0, 2759, 2761, 5, 225, 0, 0, 2760, 2762, 5, 147, 0, 0, 2761, 2760, 1, 0, 0, 0, 2761, 2762, 1, 0, 0, 0, 2762, 2763, 1, 0, 0, 0, 2763, 2787, 3, 204, 102, 0, 2764, 2765, 7, 28, 0, 0, 2765, 2787, 3, 204, 102, 0, 2766, 2767, 5, 269, 0, 0, 2767, 2787, 7, 29, 0, 0, 2768, 2769, 5, 281, 0, 0, 2769, 2770, 5, 147, 0, 0, 2770, 2787, 3, 802, 401, 0, 2771, 2772, 5, 328, 0, 0, 2772, 2773, 5, 266, 0, 0, 2773, 2787, 3, 318, 159, 0, 2774, 2776, 5, 340, 0, 0, 2775, 2777, 5, 105, 0, 0, 2776, 2775, 1, 0, 0, 0, 2776, 2777, 1, 0, 0, 0, 2777, 2778, 1, 0, 0, 0, 2778, 2787, 3, 204, 102, 0, 2779, 2781, 5, 314, 0, 0, 2780, 2782, 5, 105, 0, 0, 2781, 2780, 1, 0, 0, 0, 2781, 2782, 1, 0, 0, 0, 2782, 2784, 1, 0, 0, 0, 2783, 2785, 3, 204, 102, 0, 2784, 2783, 1, 0, 0, 0, 2784, 2785, 1, 0, 0, 0, 2785, 2787, 1, 0, 0, 0, 2786, 2753, 1, 0, 0, 0, 2786, 2755, 1, 0, 0, 0, 2786, 2759, 1, 0, 0, 0, 2786, 2764, 1, 0, 0, 0, 2786, 2766, 1, 0, 0, 0, 2786, 2768, 1, 0, 0, 0, 2786, 2771, 1, 0, 0, 0, 2786, 2774, 1, 0, 0, 0, 2786, 2779, 1, 0, 0, 0, 2787, 203, 1, 0, 0, 0, 2788, 2790, 7, 30, 0, 0, 2789, 2788, 1, 0, 0, 0, 2789, 2790, 1, 0, 0, 0, 2790, 2791, 1, 0, 0, 0, 2791, 2794, 5, 576, 0, 0, 2792, 2794, 3, 814, 407, 0, 2793, 2789, 1, 0, 0, 0, 2793, 2792, 1, 0, 0, 0, 2794, 205, 1, 0, 0, 0, 2795, 2797, 5, 46, 0, 0, 2796, 2798, 3, 368, 184, 0, 2797, 2796, 1, 0, 0, 0, 2797, 2798, 1, 0, 0, 0, 2798, 2800, 1, 0, 0, 0, 2799, 2801, 5, 359, 0, 0, 2800, 2799, 1, 0, 0, 0, 2800, 2801, 1, 0, 0, 0, 2801, 2803, 1, 0, 0, 0, 2802, 2804, 5, 295, 0, 0, 2803, 2802, 1, 0, 0, 0, 2803, 2804, 1, 0, 0, 0, 2804, 2805, 1, 0, 0, 0, 2805, 2806, 5, 247, 0, 0, 2806, 2819, 3, 820, 410, 0, 2807, 2808, 5, 215, 0, 0, 2808, 2811, 3, 318, 159, 0, 2809, 2810, 5, 239, 0, 0, 2810, 2812, 3, 318, 159, 0, 2811, 2809, 1, 0, 0, 0, 2811, 2812, 1, 0, 0, 0, 2812, 2817, 1, 0, 0, 0, 2813, 2814, 5, 373, 0, 0, 2814, 2818, 3, 318, 159, 0, 2815, 2816, 5, 269, 0, 0, 2816, 2818, 5, 373, 0, 0, 2817, 2813, 1, 0, 0, 0, 2817, 2815, 1, 0, 0, 0, 2817, 2818, 1, 0, 0, 0, 2818, 2820, 1, 0, 0, 0, 2819, 2807, 1, 0, 0, 0, 2819, 2820, 1, 0, 0, 0, 2820, 207, 1, 0, 0, 0, 2821, 2822, 5, 46, 0, 0, 2822, 2825, 3, 178, 89, 0, 2823, 2824, 5, 282, 0, 0, 2824, 2826, 3, 816, 408, 0, 2825, 2823, 1, 0, 0, 0, 2825, 2826, 1, 0, 0, 0, 2826, 2827, 1, 0, 0, 0, 2827, 2828, 5, 255, 0, 0, 2828, 2830, 3, 810, 405, 0, 2829, 2831, 3, 102, 51, 0, 2830, 2829, 1, 0, 0, 0, 2830, 2831, 1, 0, 0, 0, 2831, 209, 1, 0, 0, 0, 2832, 2833, 5, 46, 0, 0, 2833, 2835, 5, 204, 0, 0, 2834, 2836, 3, 296, 148, 0, 2835, 2834, 1, 0, 0, 0, 2835, 2836, 1, 0, 0, 0, 2836, 2837, 1, 0, 0, 0, 2837, 2839, 3, 820, 410, 0, 2838, 2840, 5, 105, 0, 0, 2839, 2838, 1, 0, 0, 0, 2839, 2840, 1, 0, 0, 0, 2840, 2848, 1, 0, 0, 0, 2841, 2842, 5, 323, 0, 0, 2842, 2847, 3, 792, 396, 0, 2843, 2844, 7, 31, 0, 0, 2844, 2847, 3, 58, 29, 0, 2845, 2847, 5, 150, 0, 0, 2846, 2841, 1, 0, 0, 0, 2846, 2843, 1, 0, 0, 0, 2846, 2845, 1, 0, 0, 0, 2847, 2850, 1, 0, 0, 0, 2848, 2846, 1, 0, 0, 0, 2848, 2849, 1, 0, 0, 0, 2849, 211, 1, 0, 0, 0, 2850, 2848, 1, 0, 0, 0, 2851, 2852, 5, 138, 0, 0, 2852, 2853, 5, 204, 0, 0, 2853, 2854, 3, 820, 410, 0, 2854, 2859, 5, 369, 0, 0, 2855, 2856, 5, 94, 0, 0, 2856, 2858, 3, 58, 29, 0, 2857, 2855, 1, 0, 0, 0, 2858, 2861, 1, 0, 0, 0, 2859, 2857, 1, 0, 0, 0, 2859, 2860, 1, 0, 0, 0, 2860, 213, 1, 0, 0, 0, 2861, 2859, 1, 0, 0, 0, 2862, 2863, 5, 138, 0, 0, 2863, 2864, 5, 204, 0, 0, 2864, 2865, 3, 820, 410, 0, 2865, 2898, 7, 6, 0, 0, 2866, 2867, 5, 443, 0, 0, 2867, 2868, 5, 62, 0, 0, 2868, 2869, 3, 654, 327, 0, 2869, 2870, 5, 247, 0, 0, 2870, 2871, 3, 820, 410, 0, 2871, 2899, 1, 0, 0, 0, 2872, 2873, 5, 442, 0, 0, 2873, 2899, 3, 376, 188, 0, 2874, 2875, 5, 296, 0, 0, 2875, 2899, 3, 380, 190, 0, 2876, 2877, 5, 278, 0, 0, 2877, 2878, 7, 32, 0, 0, 2878, 2879, 3, 318, 159, 0, 2879, 2880, 3, 172, 86, 0, 2880, 2899, 1, 0, 0, 0, 2881, 2882, 5, 278, 0, 0, 2882, 2899, 3, 418, 209, 0, 2883, 2884, 5, 211, 0, 0, 2884, 2899, 3, 384, 192, 0, 2885, 2886, 7, 33, 0, 0, 2886, 2899, 3, 654, 327, 0, 2887, 2888, 5, 41, 0, 0, 2888, 2889, 5, 2, 0, 0, 2889, 2890, 3, 654, 327, 0, 2890, 2891, 5, 36, 0, 0, 2891, 2892, 3, 654, 327, 0, 2892, 2893, 5, 3, 0, 0, 2893, 2899, 1, 0, 0, 0, 2894, 2895, 5, 136, 0, 0, 2895, 2899, 3, 396, 198, 0, 2896, 2899, 3, 314, 157, 0, 2897, 2899, 3, 312, 156, 0, 2898, 2866, 1, 0, 0, 0, 2898, 2872, 1, 0, 0, 0, 2898, 2874, 1, 0, 0, 0, 2898, 2876, 1, 0, 0, 0, 2898, 2881, 1, 0, 0, 0, 2898, 2883, 1, 0, 0, 0, 2898, 2885, 1, 0, 0, 0, 2898, 2887, 1, 0, 0, 0, 2898, 2894, 1, 0, 0, 0, 2898, 2896, 1, 0, 0, 0, 2898, 2897, 1, 0, 0, 0, 2899, 215, 1, 0, 0, 0, 2900, 2901, 5, 46, 0, 0, 2901, 2902, 5, 63, 0, 0, 2902, 2903, 5, 174, 0, 0, 2903, 2904, 5, 381, 0, 0, 2904, 2910, 3, 820, 410, 0, 2905, 2907, 3, 218, 109, 0, 2906, 2905, 1, 0, 0, 0, 2907, 2908, 1, 0, 0, 0, 2908, 2906, 1, 0, 0, 0, 2908, 2909, 1, 0, 0, 0, 2909, 2911, 1, 0, 0, 0, 2910, 2906, 1, 0, 0, 0, 2910, 2911, 1, 0, 0, 0, 2911, 2913, 1, 0, 0, 0, 2912, 2914, 3, 222, 111, 0, 2913, 2912, 1, 0, 0, 0, 2913, 2914, 1, 0, 0, 0, 2914, 217, 1, 0, 0, 0, 2915, 2917, 7, 34, 0, 0, 2916, 2918, 3, 318, 159, 0, 2917, 2916, 1, 0, 0, 0, 2917, 2918, 1, 0, 0, 0, 2918, 2922, 1, 0, 0, 0, 2919, 2920, 5, 269, 0, 0, 2920, 2922, 7, 34, 0, 0, 2921, 2915, 1, 0, 0, 0, 2921, 2919, 1, 0, 0, 0, 2922, 219, 1, 0, 0, 0, 2923, 2924, 5, 138, 0, 0, 2924, 2925, 5, 63, 0, 0, 2925, 2926, 5, 174, 0, 0, 2926, 2927, 5, 381, 0, 0, 2927, 2941, 3, 820, 410, 0, 2928, 2930, 3, 218, 109, 0, 2929, 2928, 1, 0, 0, 0, 2930, 2931, 1, 0, 0, 0, 2931, 2929, 1, 0, 0, 0, 2931, 2932, 1, 0, 0, 0, 2932, 2934, 1, 0, 0, 0, 2933, 2929, 1, 0, 0, 0, 2933, 2934, 1, 0, 0, 0, 2934, 2935, 1, 0, 0, 0, 2935, 2942, 3, 224, 112, 0, 2936, 2938, 3, 218, 109, 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, 2942, 1, 0, 0, 0, 2941, 2933, 1, 0, 0, 0, 2941, 2937, 1, 0, 0, 0, 2942, 221, 1, 0, 0, 0, 2943, 2944, 5, 280, 0, 0, 2944, 2945, 5, 2, 0, 0, 2945, 2950, 3, 228, 114, 0, 2946, 2947, 5, 6, 0, 0, 2947, 2949, 3, 228, 114, 0, 2948, 2946, 1, 0, 0, 0, 2949, 2952, 1, 0, 0, 0, 2950, 2948, 1, 0, 0, 0, 2950, 2951, 1, 0, 0, 0, 2951, 2953, 1, 0, 0, 0, 2952, 2950, 1, 0, 0, 0, 2953, 2954, 5, 3, 0, 0, 2954, 223, 1, 0, 0, 0, 2955, 2956, 5, 280, 0, 0, 2956, 2957, 5, 2, 0, 0, 2957, 2962, 3, 226, 113, 0, 2958, 2959, 5, 6, 0, 0, 2959, 2961, 3, 226, 113, 0, 2960, 2958, 1, 0, 0, 0, 2961, 2964, 1, 0, 0, 0, 2962, 2960, 1, 0, 0, 0, 2962, 2963, 1, 0, 0, 0, 2963, 2965, 1, 0, 0, 0, 2964, 2962, 1, 0, 0, 0, 2965, 2966, 5, 3, 0, 0, 2966, 225, 1, 0, 0, 0, 2967, 2968, 7, 35, 0, 0, 2968, 2969, 3, 228, 114, 0, 2969, 227, 1, 0, 0, 0, 2970, 2971, 3, 826, 413, 0, 2971, 2972, 3, 810, 405, 0, 2972, 229, 1, 0, 0, 0, 2973, 2974, 5, 46, 0, 0, 2974, 2976, 5, 331, 0, 0, 2975, 2977, 3, 296, 148, 0, 2976, 2975, 1, 0, 0, 0, 2976, 2977, 1, 0, 0, 0, 2977, 2978, 1, 0, 0, 0, 2978, 2981, 3, 820, 410, 0, 2979, 2980, 5, 360, 0, 0, 2980, 2982, 3, 810, 405, 0, 2981, 2979, 1, 0, 0, 0, 2981, 2982, 1, 0, 0, 0, 2982, 2984, 1, 0, 0, 0, 2983, 2985, 3, 232, 116, 0, 2984, 2983, 1, 0, 0, 0, 2984, 2985, 1, 0, 0, 0, 2985, 2986, 1, 0, 0, 0, 2986, 2987, 5, 63, 0, 0, 2987, 2988, 5, 174, 0, 0, 2988, 2989, 5, 381, 0, 0, 2989, 2991, 3, 820, 410, 0, 2990, 2992, 3, 222, 111, 0, 2991, 2990, 1, 0, 0, 0, 2991, 2992, 1, 0, 0, 0, 2992, 231, 1, 0, 0, 0, 2993, 2996, 5, 375, 0, 0, 2994, 2997, 3, 810, 405, 0, 2995, 2997, 5, 78, 0, 0, 2996, 2994, 1, 0, 0, 0, 2996, 2995, 1, 0, 0, 0, 2997, 233, 1, 0, 0, 0, 2998, 2999, 5, 138, 0, 0, 2999, 3000, 5, 331, 0, 0, 3000, 3006, 3, 820, 410, 0, 3001, 3007, 3, 224, 112, 0, 3002, 3004, 3, 232, 116, 0, 3003, 3005, 3, 224, 112, 0, 3004, 3003, 1, 0, 0, 0, 3004, 3005, 1, 0, 0, 0, 3005, 3007, 1, 0, 0, 0, 3006, 3001, 1, 0, 0, 0, 3006, 3002, 1, 0, 0, 0, 3007, 235, 1, 0, 0, 0, 3008, 3009, 5, 46, 0, 0, 3009, 3010, 5, 63, 0, 0, 3010, 3012, 5, 92, 0, 0, 3011, 3013, 3, 296, 148, 0, 3012, 3011, 1, 0, 0, 0, 3012, 3013, 1, 0, 0, 0, 3013, 3014, 1, 0, 0, 0, 3014, 3015, 3, 774, 387, 0, 3015, 3017, 5, 2, 0, 0, 3016, 3018, 3, 128, 64, 0, 3017, 3016, 1, 0, 0, 0, 3017, 3018, 1, 0, 0, 0, 3018, 3019, 1, 0, 0, 0, 3019, 3021, 5, 3, 0, 0, 3020, 3022, 3, 166, 83, 0, 3021, 3020, 1, 0, 0, 0, 3021, 3022, 1, 0, 0, 0, 3022, 3023, 1, 0, 0, 0, 3023, 3024, 5, 331, 0, 0, 3024, 3026, 3, 820, 410, 0, 3025, 3027, 3, 222, 111, 0, 3026, 3025, 1, 0, 0, 0, 3026, 3027, 1, 0, 0, 0, 3027, 3048, 1, 0, 0, 0, 3028, 3029, 5, 46, 0, 0, 3029, 3030, 5, 63, 0, 0, 3030, 3032, 5, 92, 0, 0, 3031, 3033, 3, 296, 148, 0, 3032, 3031, 1, 0, 0, 0, 3032, 3033, 1, 0, 0, 0, 3033, 3034, 1, 0, 0, 0, 3034, 3035, 3, 774, 387, 0, 3035, 3036, 5, 285, 0, 0, 3036, 3037, 5, 275, 0, 0, 3037, 3039, 3, 776, 388, 0, 3038, 3040, 3, 126, 63, 0, 3039, 3038, 1, 0, 0, 0, 3039, 3040, 1, 0, 0, 0, 3040, 3041, 1, 0, 0, 0, 3041, 3042, 3, 106, 53, 0, 3042, 3043, 5, 331, 0, 0, 3043, 3045, 3, 820, 410, 0, 3044, 3046, 3, 222, 111, 0, 3045, 3044, 1, 0, 0, 0, 3045, 3046, 1, 0, 0, 0, 3046, 3048, 1, 0, 0, 0, 3047, 3008, 1, 0, 0, 0, 3047, 3028, 1, 0, 0, 0, 3048, 237, 1, 0, 0, 0, 3049, 3050, 5, 444, 0, 0, 3050, 3051, 5, 63, 0, 0, 3051, 3052, 5, 323, 0, 0, 3052, 3062, 3, 792, 396, 0, 3053, 3054, 5, 74, 0, 0, 3054, 3057, 5, 94, 0, 0, 3055, 3057, 5, 59, 0, 0, 3056, 3053, 1, 0, 0, 0, 3056, 3055, 1, 0, 0, 0, 3057, 3058, 1, 0, 0, 0, 3058, 3059, 5, 2, 0, 0, 3059, 3060, 3, 630, 315, 0, 3060, 3061, 5, 3, 0, 0, 3061, 3063, 1, 0, 0, 0, 3062, 3056, 1, 0, 0, 0, 3062, 3063, 1, 0, 0, 0, 3063, 3064, 1, 0, 0, 0, 3064, 3065, 5, 64, 0, 0, 3065, 3066, 5, 331, 0, 0, 3066, 3067, 3, 820, 410, 0, 3067, 3068, 5, 71, 0, 0, 3068, 3070, 3, 820, 410, 0, 3069, 3071, 3, 222, 111, 0, 3070, 3069, 1, 0, 0, 0, 3070, 3071, 1, 0, 0, 0, 3071, 239, 1, 0, 0, 0, 3072, 3073, 5, 46, 0, 0, 3073, 3074, 5, 99, 0, 0, 3074, 3076, 5, 257, 0, 0, 3075, 3077, 3, 296, 148, 0, 3076, 3075, 1, 0, 0, 0, 3076, 3077, 1, 0, 0, 0, 3077, 3078, 1, 0, 0, 0, 3078, 3081, 5, 62, 0, 0, 3079, 3082, 3, 816, 408, 0, 3080, 3082, 5, 99, 0, 0, 3081, 3079, 1, 0, 0, 0, 3081, 3080, 1, 0, 0, 0, 3082, 3083, 1, 0, 0, 0, 3083, 3084, 5, 331, 0, 0, 3084, 3086, 3, 820, 410, 0, 3085, 3087, 3, 222, 111, 0, 3086, 3085, 1, 0, 0, 0, 3086, 3087, 1, 0, 0, 0, 3087, 241, 1, 0, 0, 0, 3088, 3089, 5, 138, 0, 0, 3089, 3090, 5, 99, 0, 0, 3090, 3091, 5, 257, 0, 0, 3091, 3094, 5, 62, 0, 0, 3092, 3095, 3, 816, 408, 0, 3093, 3095, 5, 99, 0, 0, 3094, 3092, 1, 0, 0, 0, 3094, 3093, 1, 0, 0, 0, 3095, 3096, 1, 0, 0, 0, 3096, 3097, 5, 331, 0, 0, 3097, 3098, 3, 820, 410, 0, 3098, 3099, 3, 224, 112, 0, 3099, 243, 1, 0, 0, 0, 3100, 3101, 5, 46, 0, 0, 3101, 3102, 5, 445, 0, 0, 3102, 3103, 3, 820, 410, 0, 3103, 3104, 5, 80, 0, 0, 3104, 3111, 3, 782, 391, 0, 3105, 3109, 5, 36, 0, 0, 3106, 3110, 5, 541, 0, 0, 3107, 3110, 5, 542, 0, 0, 3108, 3110, 3, 828, 414, 0, 3109, 3106, 1, 0, 0, 0, 3109, 3107, 1, 0, 0, 0, 3109, 3108, 1, 0, 0, 0, 3110, 3112, 1, 0, 0, 0, 3111, 3105, 1, 0, 0, 0, 3111, 3112, 1, 0, 0, 0, 3112, 3115, 1, 0, 0, 0, 3113, 3114, 5, 62, 0, 0, 3114, 3116, 7, 36, 0, 0, 3115, 3113, 1, 0, 0, 0, 3115, 3116, 1, 0, 0, 0, 3116, 3119, 1, 0, 0, 0, 3117, 3118, 5, 94, 0, 0, 3118, 3120, 3, 818, 409, 0, 3119, 3117, 1, 0, 0, 0, 3119, 3120, 1, 0, 0, 0, 3120, 3122, 1, 0, 0, 0, 3121, 3123, 3, 252, 126, 0, 3122, 3121, 1, 0, 0, 0, 3122, 3123, 1, 0, 0, 0, 3123, 3125, 1, 0, 0, 0, 3124, 3126, 3, 254, 127, 0, 3125, 3124, 1, 0, 0, 0, 3125, 3126, 1, 0, 0, 0, 3126, 245, 1, 0, 0, 0, 3127, 3128, 5, 138, 0, 0, 3128, 3129, 5, 445, 0, 0, 3129, 3130, 3, 820, 410, 0, 3130, 3131, 5, 80, 0, 0, 3131, 3134, 3, 782, 391, 0, 3132, 3133, 5, 94, 0, 0, 3133, 3135, 3, 818, 409, 0, 3134, 3132, 1, 0, 0, 0, 3134, 3135, 1, 0, 0, 0, 3135, 3137, 1, 0, 0, 0, 3136, 3138, 3, 252, 126, 0, 3137, 3136, 1, 0, 0, 0, 3137, 3138, 1, 0, 0, 0, 3138, 3140, 1, 0, 0, 0, 3139, 3141, 3, 254, 127, 0, 3140, 3139, 1, 0, 0, 0, 3140, 3141, 1, 0, 0, 0, 3141, 247, 1, 0, 0, 0, 3142, 3143, 5, 138, 0, 0, 3143, 3144, 5, 296, 0, 0, 3144, 3146, 3, 798, 399, 0, 3145, 3147, 3, 370, 185, 0, 3146, 3145, 1, 0, 0, 0, 3146, 3147, 1, 0, 0, 0, 3147, 3174, 1, 0, 0, 0, 3148, 3152, 3, 250, 125, 0, 3149, 3151, 3, 250, 125, 0, 3150, 3149, 1, 0, 0, 0, 3151, 3154, 1, 0, 0, 0, 3152, 3150, 1, 0, 0, 0, 3152, 3153, 1, 0, 0, 0, 3153, 3156, 1, 0, 0, 0, 3154, 3152, 1, 0, 0, 0, 3155, 3157, 5, 315, 0, 0, 3156, 3155, 1, 0, 0, 0, 3156, 3157, 1, 0, 0, 0, 3157, 3175, 1, 0, 0, 0, 3158, 3159, 5, 309, 0, 0, 3159, 3160, 5, 94, 0, 0, 3160, 3175, 3, 800, 400, 0, 3161, 3162, 5, 282, 0, 0, 3162, 3163, 5, 94, 0, 0, 3163, 3175, 3, 816, 408, 0, 3164, 3165, 5, 333, 0, 0, 3165, 3166, 5, 323, 0, 0, 3166, 3175, 3, 32, 16, 0, 3167, 3169, 5, 269, 0, 0, 3168, 3167, 1, 0, 0, 0, 3168, 3169, 1, 0, 0, 0, 3169, 3170, 1, 0, 0, 0, 3170, 3171, 5, 462, 0, 0, 3171, 3172, 5, 80, 0, 0, 3172, 3173, 5, 204, 0, 0, 3173, 3175, 3, 820, 410, 0, 3174, 3148, 1, 0, 0, 0, 3174, 3158, 1, 0, 0, 0, 3174, 3161, 1, 0, 0, 0, 3174, 3164, 1, 0, 0, 0, 3174, 3168, 1, 0, 0, 0, 3175, 249, 1, 0, 0, 0, 3176, 3178, 5, 205, 0, 0, 3177, 3176, 1, 0, 0, 0, 3177, 3178, 1, 0, 0, 0, 3178, 3179, 1, 0, 0, 0, 3179, 3180, 5, 327, 0, 0, 3180, 3187, 5, 243, 0, 0, 3181, 3183, 5, 205, 0, 0, 3182, 3181, 1, 0, 0, 0, 3182, 3183, 1, 0, 0, 0, 3183, 3184, 1, 0, 0, 0, 3184, 3185, 5, 327, 0, 0, 3185, 3187, 5, 181, 0, 0, 3186, 3177, 1, 0, 0, 0, 3186, 3182, 1, 0, 0, 0, 3187, 3206, 1, 0, 0, 0, 3188, 3189, 5, 333, 0, 0, 3189, 3190, 3, 820, 410, 0, 3190, 3193, 7, 37, 0, 0, 3191, 3194, 3, 820, 410, 0, 3192, 3194, 5, 53, 0, 0, 3193, 3191, 1, 0, 0, 0, 3193, 3192, 1, 0, 0, 0, 3194, 3206, 1, 0, 0, 0, 3195, 3196, 5, 333, 0, 0, 3196, 3197, 3, 820, 410, 0, 3197, 3198, 5, 64, 0, 0, 3198, 3199, 5, 434, 0, 0, 3199, 3206, 1, 0, 0, 0, 3200, 3203, 5, 313, 0, 0, 3201, 3204, 3, 820, 410, 0, 3202, 3204, 5, 30, 0, 0, 3203, 3201, 1, 0, 0, 0, 3203, 3202, 1, 0, 0, 0, 3204, 3206, 1, 0, 0, 0, 3205, 3186, 1, 0, 0, 0, 3205, 3188, 1, 0, 0, 0, 3205, 3195, 1, 0, 0, 0, 3205, 3200, 1, 0, 0, 0, 3206, 251, 1, 0, 0, 0, 3207, 3208, 5, 100, 0, 0, 3208, 3209, 5, 2, 0, 0, 3209, 3210, 3, 676, 338, 0, 3210, 3211, 5, 3, 0, 0, 3211, 253, 1, 0, 0, 0, 3212, 3213, 5, 105, 0, 0, 3213, 3214, 5, 42, 0, 0, 3214, 3215, 5, 2, 0, 0, 3215, 3216, 3, 676, 338, 0, 3216, 3217, 5, 3, 0, 0, 3217, 255, 1, 0, 0, 0, 3218, 3219, 5, 46, 0, 0, 3219, 3220, 5, 131, 0, 0, 3220, 3221, 5, 446, 0, 0, 3221, 3222, 3, 820, 410, 0, 3222, 3223, 5, 360, 0, 0, 3223, 3224, 7, 38, 0, 0, 3224, 3225, 5, 215, 0, 0, 3225, 3226, 3, 318, 159, 0, 3226, 257, 1, 0, 0, 0, 3227, 3229, 5, 46, 0, 0, 3228, 3230, 3, 368, 184, 0, 3229, 3228, 1, 0, 0, 0, 3229, 3230, 1, 0, 0, 0, 3230, 3231, 1, 0, 0, 0, 3231, 3232, 5, 357, 0, 0, 3232, 3233, 3, 820, 410, 0, 3233, 3234, 3, 260, 130, 0, 3234, 3235, 3, 262, 131, 0, 3235, 3236, 5, 80, 0, 0, 3236, 3248, 3, 776, 388, 0, 3237, 3244, 5, 447, 0, 0, 3238, 3239, 7, 39, 0, 0, 3239, 3241, 7, 40, 0, 0, 3240, 3242, 5, 36, 0, 0, 3241, 3240, 1, 0, 0, 0, 3241, 3242, 1, 0, 0, 0, 3242, 3243, 1, 0, 0, 0, 3243, 3245, 3, 820, 410, 0, 3244, 3238, 1, 0, 0, 0, 3245, 3246, 1, 0, 0, 0, 3246, 3244, 1, 0, 0, 0, 3246, 3247, 1, 0, 0, 0, 3247, 3249, 1, 0, 0, 0, 3248, 3237, 1, 0, 0, 0, 3248, 3249, 1, 0, 0, 0, 3249, 3255, 1, 0, 0, 0, 3250, 3252, 5, 62, 0, 0, 3251, 3253, 5, 192, 0, 0, 3252, 3251, 1, 0, 0, 0, 3252, 3253, 1, 0, 0, 0, 3253, 3254, 1, 0, 0, 0, 3254, 3256, 7, 41, 0, 0, 3255, 3250, 1, 0, 0, 0, 3255, 3256, 1, 0, 0, 0, 3256, 3258, 1, 0, 0, 0, 3257, 3259, 3, 266, 133, 0, 3258, 3257, 1, 0, 0, 0, 3258, 3259, 1, 0, 0, 0, 3259, 3260, 1, 0, 0, 0, 3260, 3261, 5, 202, 0, 0, 3261, 3262, 3, 268, 134, 0, 3262, 3263, 5, 2, 0, 0, 3263, 3264, 3, 270, 135, 0, 3264, 3265, 5, 3, 0, 0, 3265, 3306, 1, 0, 0, 0, 3266, 3268, 5, 46, 0, 0, 3267, 3269, 3, 368, 184, 0, 3268, 3267, 1, 0, 0, 0, 3268, 3269, 1, 0, 0, 0, 3269, 3271, 1, 0, 0, 0, 3270, 3272, 5, 45, 0, 0, 3271, 3270, 1, 0, 0, 0, 3271, 3272, 1, 0, 0, 0, 3272, 3273, 1, 0, 0, 0, 3273, 3274, 5, 357, 0, 0, 3274, 3275, 3, 820, 410, 0, 3275, 3276, 3, 260, 130, 0, 3276, 3277, 3, 262, 131, 0, 3277, 3278, 5, 80, 0, 0, 3278, 3281, 3, 776, 388, 0, 3279, 3280, 5, 64, 0, 0, 3280, 3282, 3, 782, 391, 0, 3281, 3279, 1, 0, 0, 0, 3281, 3282, 1, 0, 0, 0, 3282, 3286, 1, 0, 0, 0, 3283, 3285, 3, 274, 137, 0, 3284, 3283, 1, 0, 0, 0, 3285, 3288, 1, 0, 0, 0, 3286, 3284, 1, 0, 0, 0, 3286, 3287, 1, 0, 0, 0, 3287, 3294, 1, 0, 0, 0, 3288, 3286, 1, 0, 0, 0, 3289, 3291, 5, 62, 0, 0, 3290, 3292, 5, 192, 0, 0, 3291, 3290, 1, 0, 0, 0, 3291, 3292, 1, 0, 0, 0, 3292, 3293, 1, 0, 0, 0, 3293, 3295, 7, 41, 0, 0, 3294, 3289, 1, 0, 0, 0, 3294, 3295, 1, 0, 0, 0, 3295, 3297, 1, 0, 0, 0, 3296, 3298, 3, 266, 133, 0, 3297, 3296, 1, 0, 0, 0, 3297, 3298, 1, 0, 0, 0, 3298, 3299, 1, 0, 0, 0, 3299, 3300, 5, 202, 0, 0, 3300, 3301, 3, 268, 134, 0, 3301, 3302, 5, 2, 0, 0, 3302, 3303, 3, 270, 135, 0, 3303, 3304, 5, 3, 0, 0, 3304, 3306, 1, 0, 0, 0, 3305, 3227, 1, 0, 0, 0, 3305, 3266, 1, 0, 0, 0, 3306, 259, 1, 0, 0, 0, 3307, 3312, 5, 145, 0, 0, 3308, 3312, 5, 135, 0, 0, 3309, 3310, 5, 242, 0, 0, 3310, 3312, 5, 275, 0, 0, 3311, 3307, 1, 0, 0, 0, 3311, 3308, 1, 0, 0, 0, 3311, 3309, 1, 0, 0, 0, 3312, 261, 1, 0, 0, 0, 3313, 3318, 3, 264, 132, 0, 3314, 3315, 5, 82, 0, 0, 3315, 3317, 3, 264, 132, 0, 3316, 3314, 1, 0, 0, 0, 3317, 3320, 1, 0, 0, 0, 3318, 3316, 1, 0, 0, 0, 3318, 3319, 1, 0, 0, 0, 3319, 263, 1, 0, 0, 0, 3320, 3318, 1, 0, 0, 0, 3321, 3330, 5, 241, 0, 0, 3322, 3330, 5, 182, 0, 0, 3323, 3326, 5, 369, 0, 0, 3324, 3325, 5, 275, 0, 0, 3325, 3327, 3, 150, 75, 0, 3326, 3324, 1, 0, 0, 0, 3326, 3327, 1, 0, 0, 0, 3327, 3330, 1, 0, 0, 0, 3328, 3330, 5, 358, 0, 0, 3329, 3321, 1, 0, 0, 0, 3329, 3322, 1, 0, 0, 0, 3329, 3323, 1, 0, 0, 0, 3329, 3328, 1, 0, 0, 0, 3330, 265, 1, 0, 0, 0, 3331, 3332, 5, 102, 0, 0, 3332, 3333, 5, 2, 0, 0, 3333, 3334, 3, 676, 338, 0, 3334, 3335, 5, 3, 0, 0, 3335, 267, 1, 0, 0, 0, 3336, 3337, 5, 211, 0, 0, 3337, 3341, 3, 808, 404, 0, 3338, 3339, 5, 296, 0, 0, 3339, 3341, 3, 798, 399, 0, 3340, 3336, 1, 0, 0, 0, 3340, 3338, 1, 0, 0, 0, 3341, 269, 1, 0, 0, 0, 3342, 3345, 3, 272, 136, 0, 3343, 3345, 1, 0, 0, 0, 3344, 3342, 1, 0, 0, 0, 3344, 3343, 1, 0, 0, 0, 3345, 3350, 1, 0, 0, 0, 3346, 3347, 5, 6, 0, 0, 3347, 3349, 3, 272, 136, 0, 3348, 3346, 1, 0, 0, 0, 3349, 3352, 1, 0, 0, 0, 3350, 3348, 1, 0, 0, 0, 3350, 3351, 1, 0, 0, 0, 3351, 271, 1, 0, 0, 0, 3352, 3350, 1, 0, 0, 0, 3353, 3358, 5, 574, 0, 0, 3354, 3358, 5, 576, 0, 0, 3355, 3358, 3, 810, 405, 0, 3356, 3358, 3, 826, 413, 0, 3357, 3353, 1, 0, 0, 0, 3357, 3354, 1, 0, 0, 0, 3357, 3355, 1, 0, 0, 0, 3357, 3356, 1, 0, 0, 0, 3358, 273, 1, 0, 0, 0, 3359, 3361, 5, 77, 0, 0, 3360, 3359, 1, 0, 0, 0, 3360, 3361, 1, 0, 0, 0, 3361, 3362, 1, 0, 0, 0, 3362, 3370, 5, 54, 0, 0, 3363, 3364, 5, 69, 0, 0, 3364, 3370, 7, 9, 0, 0, 3365, 3366, 5, 77, 0, 0, 3366, 3370, 5, 371, 0, 0, 3367, 3368, 5, 269, 0, 0, 3368, 3370, 5, 228, 0, 0, 3369, 3360, 1, 0, 0, 0, 3369, 3363, 1, 0, 0, 0, 3369, 3365, 1, 0, 0, 0, 3369, 3367, 1, 0, 0, 0, 3370, 275, 1, 0, 0, 0, 3371, 3372, 5, 46, 0, 0, 3372, 3373, 5, 198, 0, 0, 3373, 3374, 5, 357, 0, 0, 3374, 3375, 3, 820, 410, 0, 3375, 3376, 5, 80, 0, 0, 3376, 3386, 3, 826, 413, 0, 3377, 3378, 5, 102, 0, 0, 3378, 3383, 3, 278, 139, 0, 3379, 3380, 5, 33, 0, 0, 3380, 3382, 3, 278, 139, 0, 3381, 3379, 1, 0, 0, 0, 3382, 3385, 1, 0, 0, 0, 3383, 3381, 1, 0, 0, 0, 3383, 3384, 1, 0, 0, 0, 3384, 3387, 1, 0, 0, 0, 3385, 3383, 1, 0, 0, 0, 3386, 3377, 1, 0, 0, 0, 3386, 3387, 1, 0, 0, 0, 3387, 3388, 1, 0, 0, 0, 3388, 3389, 5, 202, 0, 0, 3389, 3390, 3, 268, 134, 0, 3390, 3391, 5, 2, 0, 0, 3391, 3392, 5, 3, 0, 0, 3392, 277, 1, 0, 0, 0, 3393, 3394, 3, 820, 410, 0, 3394, 3395, 5, 68, 0, 0, 3395, 3396, 5, 2, 0, 0, 3396, 3400, 3, 810, 405, 0, 3397, 3399, 3, 464, 232, 0, 3398, 3397, 1, 0, 0, 0, 3399, 3402, 1, 0, 0, 0, 3400, 3398, 1, 0, 0, 0, 3400, 3401, 1, 0, 0, 0, 3401, 3403, 1, 0, 0, 0, 3402, 3400, 1, 0, 0, 0, 3403, 3404, 5, 3, 0, 0, 3404, 279, 1, 0, 0, 0, 3405, 3406, 5, 138, 0, 0, 3406, 3407, 5, 198, 0, 0, 3407, 3408, 5, 357, 0, 0, 3408, 3414, 3, 820, 410, 0, 3409, 3411, 5, 193, 0, 0, 3410, 3412, 7, 14, 0, 0, 3411, 3410, 1, 0, 0, 0, 3411, 3412, 1, 0, 0, 0, 3412, 3415, 1, 0, 0, 0, 3413, 3415, 5, 186, 0, 0, 3414, 3409, 1, 0, 0, 0, 3414, 3413, 1, 0, 0, 0, 3415, 281, 1, 0, 0, 0, 3416, 3417, 5, 46, 0, 0, 3417, 3418, 5, 140, 0, 0, 3418, 3419, 3, 318, 159, 0, 3419, 3420, 5, 42, 0, 0, 3420, 3421, 5, 2, 0, 0, 3421, 3422, 3, 676, 338, 0, 3422, 3426, 5, 3, 0, 0, 3423, 3425, 3, 274, 137, 0, 3424, 3423, 1, 0, 0, 0, 3425, 3428, 1, 0, 0, 0, 3426, 3424, 1, 0, 0, 0, 3426, 3427, 1, 0, 0, 0, 3427, 283, 1, 0, 0, 0, 3428, 3426, 1, 0, 0, 0, 3429, 3431, 5, 46, 0, 0, 3430, 3432, 3, 368, 184, 0, 3431, 3430, 1, 0, 0, 0, 3431, 3432, 1, 0, 0, 0, 3432, 3433, 1, 0, 0, 0, 3433, 3434, 5, 136, 0, 0, 3434, 3449, 3, 808, 404, 0, 3435, 3436, 3, 394, 197, 0, 3436, 3437, 3, 286, 143, 0, 3437, 3450, 1, 0, 0, 0, 3438, 3439, 5, 2, 0, 0, 3439, 3444, 3, 292, 146, 0, 3440, 3441, 5, 6, 0, 0, 3441, 3443, 3, 292, 146, 0, 3442, 3440, 1, 0, 0, 0, 3443, 3446, 1, 0, 0, 0, 3444, 3442, 1, 0, 0, 0, 3444, 3445, 1, 0, 0, 0, 3445, 3447, 1, 0, 0, 0, 3446, 3444, 1, 0, 0, 0, 3447, 3448, 5, 3, 0, 0, 3448, 3450, 1, 0, 0, 0, 3449, 3435, 1, 0, 0, 0, 3449, 3438, 1, 0, 0, 0, 3450, 3508, 1, 0, 0, 0, 3451, 3452, 5, 46, 0, 0, 3452, 3453, 5, 278, 0, 0, 3453, 3454, 3, 416, 208, 0, 3454, 3455, 3, 286, 143, 0, 3455, 3508, 1, 0, 0, 0, 3456, 3457, 5, 46, 0, 0, 3457, 3458, 5, 360, 0, 0, 3458, 3459, 3, 318, 159, 0, 3459, 3477, 5, 36, 0, 0, 3460, 3462, 5, 2, 0, 0, 3461, 3463, 3, 644, 322, 0, 3462, 3461, 1, 0, 0, 0, 3462, 3463, 1, 0, 0, 0, 3463, 3464, 1, 0, 0, 0, 3464, 3478, 5, 3, 0, 0, 3465, 3466, 5, 196, 0, 0, 3466, 3474, 5, 2, 0, 0, 3467, 3471, 3, 810, 405, 0, 3468, 3470, 3, 464, 232, 0, 3469, 3468, 1, 0, 0, 0, 3470, 3473, 1, 0, 0, 0, 3471, 3469, 1, 0, 0, 0, 3471, 3472, 1, 0, 0, 0, 3472, 3475, 1, 0, 0, 0, 3473, 3471, 1, 0, 0, 0, 3474, 3467, 1, 0, 0, 0, 3474, 3475, 1, 0, 0, 0, 3475, 3476, 1, 0, 0, 0, 3476, 3478, 5, 3, 0, 0, 3477, 3460, 1, 0, 0, 0, 3477, 3465, 1, 0, 0, 0, 3478, 3508, 1, 0, 0, 0, 3479, 3480, 5, 46, 0, 0, 3480, 3481, 5, 360, 0, 0, 3481, 3487, 3, 318, 159, 0, 3482, 3483, 5, 36, 0, 0, 3483, 3485, 5, 299, 0, 0, 3484, 3482, 1, 0, 0, 0, 3484, 3485, 1, 0, 0, 0, 3485, 3486, 1, 0, 0, 0, 3486, 3488, 3, 286, 143, 0, 3487, 3484, 1, 0, 0, 0, 3487, 3488, 1, 0, 0, 0, 3488, 3508, 1, 0, 0, 0, 3489, 3490, 5, 46, 0, 0, 3490, 3491, 5, 355, 0, 0, 3491, 3492, 5, 325, 0, 0, 3492, 3493, 7, 42, 0, 0, 3493, 3494, 3, 318, 159, 0, 3494, 3495, 3, 286, 143, 0, 3495, 3508, 1, 0, 0, 0, 3496, 3497, 5, 46, 0, 0, 3497, 3499, 5, 108, 0, 0, 3498, 3500, 3, 296, 148, 0, 3499, 3498, 1, 0, 0, 0, 3499, 3500, 1, 0, 0, 0, 3500, 3501, 1, 0, 0, 0, 3501, 3505, 3, 318, 159, 0, 3502, 3506, 3, 286, 143, 0, 3503, 3504, 5, 64, 0, 0, 3504, 3506, 3, 318, 159, 0, 3505, 3502, 1, 0, 0, 0, 3505, 3503, 1, 0, 0, 0, 3506, 3508, 1, 0, 0, 0, 3507, 3429, 1, 0, 0, 0, 3507, 3451, 1, 0, 0, 0, 3507, 3456, 1, 0, 0, 0, 3507, 3479, 1, 0, 0, 0, 3507, 3489, 1, 0, 0, 0, 3507, 3496, 1, 0, 0, 0, 3508, 285, 1, 0, 0, 0, 3509, 3510, 5, 2, 0, 0, 3510, 3515, 3, 288, 144, 0, 3511, 3512, 5, 6, 0, 0, 3512, 3514, 3, 288, 144, 0, 3513, 3511, 1, 0, 0, 0, 3514, 3517, 1, 0, 0, 0, 3515, 3513, 1, 0, 0, 0, 3515, 3516, 1, 0, 0, 0, 3516, 3518, 1, 0, 0, 0, 3517, 3515, 1, 0, 0, 0, 3518, 3519, 5, 3, 0, 0, 3519, 287, 1, 0, 0, 0, 3520, 3523, 3, 826, 413, 0, 3521, 3522, 5, 10, 0, 0, 3522, 3524, 3, 290, 145, 0, 3523, 3521, 1, 0, 0, 0, 3523, 3524, 1, 0, 0, 0, 3524, 289, 1, 0, 0, 0, 3525, 3532, 3, 390, 195, 0, 3526, 3532, 3, 836, 418, 0, 3527, 3532, 3, 728, 364, 0, 3528, 3532, 3, 204, 102, 0, 3529, 3532, 3, 810, 405, 0, 3530, 3532, 5, 407, 0, 0, 3531, 3525, 1, 0, 0, 0, 3531, 3526, 1, 0, 0, 0, 3531, 3527, 1, 0, 0, 0, 3531, 3528, 1, 0, 0, 0, 3531, 3529, 1, 0, 0, 0, 3531, 3530, 1, 0, 0, 0, 3532, 291, 1, 0, 0, 0, 3533, 3534, 3, 828, 414, 0, 3534, 3535, 5, 10, 0, 0, 3535, 3536, 3, 290, 145, 0, 3536, 293, 1, 0, 0, 0, 3537, 3538, 5, 138, 0, 0, 3538, 3539, 5, 360, 0, 0, 3539, 3540, 3, 318, 159, 0, 3540, 3541, 5, 133, 0, 0, 3541, 3543, 5, 450, 0, 0, 3542, 3544, 3, 296, 148, 0, 3543, 3542, 1, 0, 0, 0, 3543, 3544, 1, 0, 0, 0, 3544, 3545, 1, 0, 0, 0, 3545, 3548, 3, 810, 405, 0, 3546, 3547, 7, 43, 0, 0, 3547, 3549, 3, 810, 405, 0, 3548, 3546, 1, 0, 0, 0, 3548, 3549, 1, 0, 0, 0, 3549, 3560, 1, 0, 0, 0, 3550, 3551, 5, 138, 0, 0, 3551, 3552, 5, 360, 0, 0, 3552, 3553, 3, 318, 159, 0, 3553, 3554, 5, 309, 0, 0, 3554, 3555, 5, 450, 0, 0, 3555, 3556, 3, 810, 405, 0, 3556, 3557, 5, 94, 0, 0, 3557, 3558, 3, 810, 405, 0, 3558, 3560, 1, 0, 0, 0, 3559, 3537, 1, 0, 0, 0, 3559, 3550, 1, 0, 0, 0, 3560, 295, 1, 0, 0, 0, 3561, 3562, 5, 220, 0, 0, 3562, 3563, 5, 77, 0, 0, 3563, 3564, 5, 396, 0, 0, 3564, 297, 1, 0, 0, 0, 3565, 3566, 5, 46, 0, 0, 3566, 3567, 5, 278, 0, 0, 3567, 3568, 5, 156, 0, 0, 3568, 3570, 3, 318, 159, 0, 3569, 3571, 5, 53, 0, 0, 3570, 3569, 1, 0, 0, 0, 3570, 3571, 1, 0, 0, 0, 3571, 3572, 1, 0, 0, 0, 3572, 3573, 5, 62, 0, 0, 3573, 3574, 5, 360, 0, 0, 3574, 3575, 3, 654, 327, 0, 3575, 3578, 3, 172, 86, 0, 3576, 3577, 5, 206, 0, 0, 3577, 3579, 3, 318, 159, 0, 3578, 3576, 1, 0, 0, 0, 3578, 3579, 1, 0, 0, 0, 3579, 3580, 1, 0, 0, 0, 3580, 3581, 5, 36, 0, 0, 3581, 3586, 3, 300, 150, 0, 3582, 3583, 5, 6, 0, 0, 3583, 3585, 3, 300, 150, 0, 3584, 3582, 1, 0, 0, 0, 3585, 3588, 1, 0, 0, 0, 3586, 3584, 1, 0, 0, 0, 3586, 3587, 1, 0, 0, 0, 3587, 299, 1, 0, 0, 0, 3588, 3586, 1, 0, 0, 0, 3589, 3590, 5, 278, 0, 0, 3590, 3591, 5, 574, 0, 0, 3591, 3593, 3, 416, 208, 0, 3592, 3594, 3, 414, 207, 0, 3593, 3592, 1, 0, 0, 0, 3593, 3594, 1, 0, 0, 0, 3594, 3602, 1, 0, 0, 0, 3595, 3600, 5, 62, 0, 0, 3596, 3601, 5, 325, 0, 0, 3597, 3598, 5, 83, 0, 0, 3598, 3599, 5, 147, 0, 0, 3599, 3601, 3, 318, 159, 0, 3600, 3596, 1, 0, 0, 0, 3600, 3597, 1, 0, 0, 0, 3601, 3603, 1, 0, 0, 0, 3602, 3595, 1, 0, 0, 0, 3602, 3603, 1, 0, 0, 0, 3603, 3605, 1, 0, 0, 0, 3604, 3606, 5, 302, 0, 0, 3605, 3604, 1, 0, 0, 0, 3605, 3606, 1, 0, 0, 0, 3606, 3616, 1, 0, 0, 0, 3607, 3608, 5, 211, 0, 0, 3608, 3610, 5, 574, 0, 0, 3609, 3611, 3, 530, 265, 0, 3610, 3609, 1, 0, 0, 0, 3610, 3611, 1, 0, 0, 0, 3611, 3612, 1, 0, 0, 0, 3612, 3616, 3, 384, 192, 0, 3613, 3614, 5, 345, 0, 0, 3614, 3616, 3, 654, 327, 0, 3615, 3589, 1, 0, 0, 0, 3615, 3607, 1, 0, 0, 0, 3615, 3613, 1, 0, 0, 0, 3616, 301, 1, 0, 0, 0, 3617, 3618, 5, 46, 0, 0, 3618, 3619, 5, 278, 0, 0, 3619, 3620, 5, 206, 0, 0, 3620, 3621, 3, 318, 159, 0, 3621, 3622, 3, 172, 86, 0, 3622, 303, 1, 0, 0, 0, 3623, 3624, 5, 138, 0, 0, 3624, 3625, 5, 278, 0, 0, 3625, 3626, 5, 206, 0, 0, 3626, 3627, 3, 318, 159, 0, 3627, 3646, 3, 172, 86, 0, 3628, 3629, 5, 133, 0, 0, 3629, 3634, 3, 300, 150, 0, 3630, 3631, 5, 6, 0, 0, 3631, 3633, 3, 300, 150, 0, 3632, 3630, 1, 0, 0, 0, 3633, 3636, 1, 0, 0, 0, 3634, 3632, 1, 0, 0, 0, 3634, 3635, 1, 0, 0, 0, 3635, 3647, 1, 0, 0, 0, 3636, 3634, 1, 0, 0, 0, 3637, 3638, 5, 191, 0, 0, 3638, 3643, 3, 306, 153, 0, 3639, 3640, 5, 6, 0, 0, 3640, 3642, 3, 306, 153, 0, 3641, 3639, 1, 0, 0, 0, 3642, 3645, 1, 0, 0, 0, 3643, 3641, 1, 0, 0, 0, 3643, 3644, 1, 0, 0, 0, 3644, 3647, 1, 0, 0, 0, 3645, 3643, 1, 0, 0, 0, 3646, 3628, 1, 0, 0, 0, 3646, 3637, 1, 0, 0, 0, 3647, 305, 1, 0, 0, 0, 3648, 3649, 7, 44, 0, 0, 3649, 3650, 5, 574, 0, 0, 3650, 3651, 3, 530, 265, 0, 3651, 307, 1, 0, 0, 0, 3652, 3653, 5, 301, 0, 0, 3653, 3654, 5, 281, 0, 0, 3654, 3655, 5, 147, 0, 0, 3655, 3656, 3, 818, 409, 0, 3656, 3657, 5, 94, 0, 0, 3657, 3658, 3, 816, 408, 0, 3658, 309, 1, 0, 0, 0, 3659, 3682, 5, 191, 0, 0, 3660, 3683, 5, 328, 0, 0, 3661, 3683, 5, 226, 0, 0, 3662, 3683, 5, 108, 0, 0, 3663, 3683, 5, 168, 0, 0, 3664, 3683, 5, 342, 0, 0, 3665, 3683, 5, 452, 0, 0, 3666, 3683, 5, 331, 0, 0, 3667, 3668, 5, 131, 0, 0, 3668, 3683, 5, 446, 0, 0, 3669, 3670, 5, 198, 0, 0, 3670, 3683, 5, 357, 0, 0, 3671, 3683, 5, 204, 0, 0, 3672, 3674, 5, 295, 0, 0, 3673, 3672, 1, 0, 0, 0, 3673, 3674, 1, 0, 0, 0, 3674, 3675, 1, 0, 0, 0, 3675, 3683, 5, 247, 0, 0, 3676, 3677, 5, 63, 0, 0, 3677, 3678, 5, 174, 0, 0, 3678, 3683, 5, 381, 0, 0, 3679, 3680, 5, 355, 0, 0, 3680, 3681, 5, 325, 0, 0, 3681, 3683, 7, 42, 0, 0, 3682, 3660, 1, 0, 0, 0, 3682, 3661, 1, 0, 0, 0, 3682, 3662, 1, 0, 0, 0, 3682, 3663, 1, 0, 0, 0, 3682, 3664, 1, 0, 0, 0, 3682, 3665, 1, 0, 0, 0, 3682, 3666, 1, 0, 0, 0, 3682, 3667, 1, 0, 0, 0, 3682, 3669, 1, 0, 0, 0, 3682, 3671, 1, 0, 0, 0, 3682, 3673, 1, 0, 0, 0, 3682, 3676, 1, 0, 0, 0, 3682, 3679, 1, 0, 0, 0, 3683, 3685, 1, 0, 0, 0, 3684, 3686, 3, 424, 212, 0, 3685, 3684, 1, 0, 0, 0, 3685, 3686, 1, 0, 0, 0, 3686, 3687, 1, 0, 0, 0, 3687, 3689, 3, 786, 393, 0, 3688, 3690, 3, 96, 48, 0, 3689, 3688, 1, 0, 0, 0, 3689, 3690, 1, 0, 0, 0, 3690, 3867, 1, 0, 0, 0, 3691, 3693, 5, 191, 0, 0, 3692, 3694, 5, 259, 0, 0, 3693, 3692, 1, 0, 0, 0, 3693, 3694, 1, 0, 0, 0, 3694, 3695, 1, 0, 0, 0, 3695, 3697, 5, 376, 0, 0, 3696, 3698, 3, 424, 212, 0, 3697, 3696, 1, 0, 0, 0, 3697, 3698, 1, 0, 0, 0, 3698, 3699, 1, 0, 0, 0, 3699, 3704, 3, 780, 390, 0, 3700, 3701, 5, 6, 0, 0, 3701, 3703, 3, 780, 390, 0, 3702, 3700, 1, 0, 0, 0, 3703, 3706, 1, 0, 0, 0, 3704, 3702, 1, 0, 0, 0, 3704, 3705, 1, 0, 0, 0, 3705, 3708, 1, 0, 0, 0, 3706, 3704, 1, 0, 0, 0, 3707, 3709, 3, 96, 48, 0, 3708, 3707, 1, 0, 0, 0, 3708, 3709, 1, 0, 0, 0, 3709, 3867, 1, 0, 0, 0, 3710, 3712, 5, 191, 0, 0, 3711, 3713, 5, 63, 0, 0, 3712, 3711, 1, 0, 0, 0, 3712, 3713, 1, 0, 0, 0, 3713, 3714, 1, 0, 0, 0, 3714, 3716, 5, 92, 0, 0, 3715, 3717, 3, 424, 212, 0, 3716, 3715, 1, 0, 0, 0, 3716, 3717, 1, 0, 0, 0, 3717, 3718, 1, 0, 0, 0, 3718, 3720, 3, 764, 382, 0, 3719, 3721, 3, 96, 48, 0, 3720, 3719, 1, 0, 0, 0, 3720, 3721, 1, 0, 0, 0, 3721, 3867, 1, 0, 0, 0, 3722, 3723, 5, 191, 0, 0, 3723, 3725, 5, 323, 0, 0, 3724, 3726, 3, 424, 212, 0, 3725, 3724, 1, 0, 0, 0, 3725, 3726, 1, 0, 0, 0, 3726, 3727, 1, 0, 0, 0, 3727, 3729, 3, 766, 383, 0, 3728, 3730, 3, 96, 48, 0, 3729, 3728, 1, 0, 0, 0, 3729, 3730, 1, 0, 0, 0, 3730, 3867, 1, 0, 0, 0, 3731, 3732, 5, 191, 0, 0, 3732, 3734, 7, 45, 0, 0, 3733, 3735, 3, 424, 212, 0, 3734, 3733, 1, 0, 0, 0, 3734, 3735, 1, 0, 0, 0, 3735, 3736, 1, 0, 0, 0, 3736, 3737, 3, 820, 410, 0, 3737, 3738, 5, 80, 0, 0, 3738, 3740, 3, 318, 159, 0, 3739, 3741, 3, 96, 48, 0, 3740, 3739, 1, 0, 0, 0, 3740, 3741, 1, 0, 0, 0, 3741, 3867, 1, 0, 0, 0, 3742, 3743, 5, 191, 0, 0, 3743, 3745, 7, 33, 0, 0, 3744, 3746, 3, 424, 212, 0, 3745, 3744, 1, 0, 0, 0, 3745, 3746, 1, 0, 0, 0, 3746, 3747, 1, 0, 0, 0, 3747, 3752, 3, 654, 327, 0, 3748, 3749, 5, 6, 0, 0, 3749, 3751, 3, 654, 327, 0, 3750, 3748, 1, 0, 0, 0, 3751, 3754, 1, 0, 0, 0, 3752, 3750, 1, 0, 0, 0, 3752, 3753, 1, 0, 0, 0, 3753, 3756, 1, 0, 0, 0, 3754, 3752, 1, 0, 0, 0, 3755, 3757, 3, 96, 48, 0, 3756, 3755, 1, 0, 0, 0, 3756, 3757, 1, 0, 0, 0, 3757, 3867, 1, 0, 0, 0, 3758, 3759, 5, 191, 0, 0, 3759, 3760, 5, 226, 0, 0, 3760, 3762, 5, 109, 0, 0, 3761, 3763, 3, 424, 212, 0, 3762, 3761, 1, 0, 0, 0, 3762, 3763, 1, 0, 0, 0, 3763, 3764, 1, 0, 0, 0, 3764, 3766, 3, 316, 158, 0, 3765, 3767, 3, 96, 48, 0, 3766, 3765, 1, 0, 0, 0, 3766, 3767, 1, 0, 0, 0, 3767, 3867, 1, 0, 0, 0, 3768, 3769, 5, 191, 0, 0, 3769, 3771, 5, 41, 0, 0, 3770, 3772, 3, 424, 212, 0, 3771, 3770, 1, 0, 0, 0, 3771, 3772, 1, 0, 0, 0, 3772, 3773, 1, 0, 0, 0, 3773, 3774, 5, 2, 0, 0, 3774, 3775, 3, 654, 327, 0, 3775, 3776, 5, 36, 0, 0, 3776, 3777, 3, 654, 327, 0, 3777, 3779, 5, 3, 0, 0, 3778, 3780, 3, 96, 48, 0, 3779, 3778, 1, 0, 0, 0, 3779, 3780, 1, 0, 0, 0, 3780, 3867, 1, 0, 0, 0, 3781, 3782, 5, 191, 0, 0, 3782, 3783, 5, 278, 0, 0, 3783, 3785, 7, 32, 0, 0, 3784, 3786, 3, 424, 212, 0, 3785, 3784, 1, 0, 0, 0, 3785, 3786, 1, 0, 0, 0, 3786, 3787, 1, 0, 0, 0, 3787, 3788, 3, 318, 159, 0, 3788, 3790, 3, 172, 86, 0, 3789, 3791, 3, 96, 48, 0, 3790, 3789, 1, 0, 0, 0, 3790, 3791, 1, 0, 0, 0, 3791, 3867, 1, 0, 0, 0, 3792, 3793, 5, 191, 0, 0, 3793, 3794, 5, 281, 0, 0, 3794, 3795, 5, 147, 0, 0, 3795, 3797, 3, 818, 409, 0, 3796, 3798, 3, 96, 48, 0, 3797, 3796, 1, 0, 0, 0, 3797, 3798, 1, 0, 0, 0, 3798, 3867, 1, 0, 0, 0, 3799, 3800, 5, 191, 0, 0, 3800, 3802, 5, 451, 0, 0, 3801, 3803, 3, 424, 212, 0, 3802, 3801, 1, 0, 0, 0, 3802, 3803, 1, 0, 0, 0, 3803, 3804, 1, 0, 0, 0, 3804, 3806, 3, 820, 410, 0, 3805, 3807, 3, 96, 48, 0, 3806, 3805, 1, 0, 0, 0, 3806, 3807, 1, 0, 0, 0, 3807, 3867, 1, 0, 0, 0, 3808, 3809, 5, 191, 0, 0, 3809, 3811, 5, 351, 0, 0, 3810, 3812, 3, 424, 212, 0, 3811, 3810, 1, 0, 0, 0, 3811, 3812, 1, 0, 0, 0, 3812, 3813, 1, 0, 0, 0, 3813, 3867, 3, 772, 386, 0, 3814, 3815, 5, 191, 0, 0, 3815, 3817, 5, 443, 0, 0, 3816, 3818, 3, 424, 212, 0, 3817, 3816, 1, 0, 0, 0, 3817, 3818, 1, 0, 0, 0, 3818, 3819, 1, 0, 0, 0, 3819, 3820, 5, 62, 0, 0, 3820, 3821, 3, 654, 327, 0, 3821, 3822, 5, 247, 0, 0, 3822, 3824, 3, 820, 410, 0, 3823, 3825, 3, 96, 48, 0, 3824, 3823, 1, 0, 0, 0, 3824, 3825, 1, 0, 0, 0, 3825, 3867, 1, 0, 0, 0, 3826, 3827, 5, 191, 0, 0, 3827, 3829, 7, 46, 0, 0, 3828, 3830, 3, 424, 212, 0, 3829, 3828, 1, 0, 0, 0, 3829, 3830, 1, 0, 0, 0, 3830, 3831, 1, 0, 0, 0, 3831, 3867, 3, 818, 409, 0, 3832, 3833, 5, 191, 0, 0, 3833, 3834, 5, 99, 0, 0, 3834, 3836, 5, 257, 0, 0, 3835, 3837, 3, 424, 212, 0, 3836, 3835, 1, 0, 0, 0, 3836, 3837, 1, 0, 0, 0, 3837, 3838, 1, 0, 0, 0, 3838, 3841, 5, 62, 0, 0, 3839, 3842, 3, 816, 408, 0, 3840, 3842, 5, 99, 0, 0, 3841, 3839, 1, 0, 0, 0, 3841, 3840, 1, 0, 0, 0, 3842, 3843, 1, 0, 0, 0, 3843, 3844, 5, 331, 0, 0, 3844, 3867, 3, 820, 410, 0, 3845, 3846, 5, 191, 0, 0, 3846, 3848, 5, 175, 0, 0, 3847, 3849, 3, 424, 212, 0, 3848, 3847, 1, 0, 0, 0, 3848, 3849, 1, 0, 0, 0, 3849, 3850, 1, 0, 0, 0, 3850, 3864, 3, 790, 395, 0, 3851, 3853, 5, 105, 0, 0, 3852, 3851, 1, 0, 0, 0, 3852, 3853, 1, 0, 0, 0, 3853, 3854, 1, 0, 0, 0, 3854, 3855, 5, 2, 0, 0, 3855, 3860, 5, 209, 0, 0, 3856, 3857, 5, 6, 0, 0, 3857, 3859, 5, 209, 0, 0, 3858, 3856, 1, 0, 0, 0, 3859, 3862, 1, 0, 0, 0, 3860, 3858, 1, 0, 0, 0, 3860, 3861, 1, 0, 0, 0, 3861, 3863, 1, 0, 0, 0, 3862, 3860, 1, 0, 0, 0, 3863, 3865, 5, 3, 0, 0, 3864, 3852, 1, 0, 0, 0, 3864, 3865, 1, 0, 0, 0, 3865, 3867, 1, 0, 0, 0, 3866, 3659, 1, 0, 0, 0, 3866, 3691, 1, 0, 0, 0, 3866, 3710, 1, 0, 0, 0, 3866, 3722, 1, 0, 0, 0, 3866, 3731, 1, 0, 0, 0, 3866, 3742, 1, 0, 0, 0, 3866, 3758, 1, 0, 0, 0, 3866, 3768, 1, 0, 0, 0, 3866, 3781, 1, 0, 0, 0, 3866, 3792, 1, 0, 0, 0, 3866, 3799, 1, 0, 0, 0, 3866, 3808, 1, 0, 0, 0, 3866, 3814, 1, 0, 0, 0, 3866, 3826, 1, 0, 0, 0, 3866, 3832, 1, 0, 0, 0, 3866, 3845, 1, 0, 0, 0, 3867, 311, 1, 0, 0, 0, 3868, 3870, 5, 63, 0, 0, 3869, 3868, 1, 0, 0, 0, 3869, 3870, 1, 0, 0, 0, 3870, 3871, 1, 0, 0, 0, 3871, 3872, 5, 92, 0, 0, 3872, 3885, 3, 776, 388, 0, 3873, 3875, 5, 259, 0, 0, 3874, 3873, 1, 0, 0, 0, 3874, 3875, 1, 0, 0, 0, 3875, 3876, 1, 0, 0, 0, 3876, 3877, 5, 376, 0, 0, 3877, 3885, 3, 780, 390, 0, 3878, 3879, 7, 47, 0, 0, 3879, 3885, 3, 318, 159, 0, 3880, 3881, 5, 355, 0, 0, 3881, 3882, 5, 325, 0, 0, 3882, 3883, 7, 42, 0, 0, 3883, 3885, 3, 318, 159, 0, 3884, 3869, 1, 0, 0, 0, 3884, 3874, 1, 0, 0, 0, 3884, 3878, 1, 0, 0, 0, 3884, 3880, 1, 0, 0, 0, 3885, 313, 1, 0, 0, 0, 3886, 3887, 5, 198, 0, 0, 3887, 3903, 5, 357, 0, 0, 3888, 3889, 5, 131, 0, 0, 3889, 3903, 5, 446, 0, 0, 3890, 3903, 5, 204, 0, 0, 3891, 3903, 5, 452, 0, 0, 3892, 3903, 5, 331, 0, 0, 3893, 3903, 5, 318, 0, 0, 3894, 3903, 5, 451, 0, 0, 3895, 3896, 5, 63, 0, 0, 3896, 3897, 5, 174, 0, 0, 3897, 3903, 5, 381, 0, 0, 3898, 3900, 5, 295, 0, 0, 3899, 3898, 1, 0, 0, 0, 3899, 3900, 1, 0, 0, 0, 3900, 3901, 1, 0, 0, 0, 3901, 3903, 5, 247, 0, 0, 3902, 3886, 1, 0, 0, 0, 3902, 3888, 1, 0, 0, 0, 3902, 3890, 1, 0, 0, 0, 3902, 3891, 1, 0, 0, 0, 3902, 3892, 1, 0, 0, 0, 3902, 3893, 1, 0, 0, 0, 3902, 3894, 1, 0, 0, 0, 3902, 3895, 1, 0, 0, 0, 3902, 3899, 1, 0, 0, 0, 3903, 3904, 1, 0, 0, 0, 3904, 3911, 3, 820, 410, 0, 3905, 3906, 5, 323, 0, 0, 3906, 3911, 3, 792, 396, 0, 3907, 3908, 5, 175, 0, 0, 3908, 3911, 3, 790, 395, 0, 3909, 3911, 3, 178, 89, 0, 3910, 3902, 1, 0, 0, 0, 3910, 3905, 1, 0, 0, 0, 3910, 3907, 1, 0, 0, 0, 3910, 3909, 1, 0, 0, 0, 3911, 315, 1, 0, 0, 0, 3912, 3917, 3, 318, 159, 0, 3913, 3914, 5, 6, 0, 0, 3914, 3916, 3, 318, 159, 0, 3915, 3913, 1, 0, 0, 0, 3916, 3919, 1, 0, 0, 0, 3917, 3915, 1, 0, 0, 0, 3917, 3918, 1, 0, 0, 0, 3918, 317, 1, 0, 0, 0, 3919, 3917, 1, 0, 0, 0, 3920, 3922, 3, 820, 410, 0, 3921, 3923, 3, 320, 160, 0, 3922, 3921, 1, 0, 0, 0, 3922, 3923, 1, 0, 0, 0, 3923, 319, 1, 0, 0, 0, 3924, 3925, 5, 11, 0, 0, 3925, 3927, 3, 826, 413, 0, 3926, 3924, 1, 0, 0, 0, 3927, 3928, 1, 0, 0, 0, 3928, 3926, 1, 0, 0, 0, 3928, 3929, 1, 0, 0, 0, 3929, 321, 1, 0, 0, 0, 3930, 3932, 5, 358, 0, 0, 3931, 3933, 5, 92, 0, 0, 3932, 3931, 1, 0, 0, 0, 3932, 3933, 1, 0, 0, 0, 3933, 3934, 1, 0, 0, 0, 3934, 3939, 3, 324, 162, 0, 3935, 3936, 5, 6, 0, 0, 3936, 3938, 3, 324, 162, 0, 3937, 3935, 1, 0, 0, 0, 3938, 3941, 1, 0, 0, 0, 3939, 3937, 1, 0, 0, 0, 3939, 3940, 1, 0, 0, 0, 3940, 3944, 1, 0, 0, 0, 3941, 3939, 1, 0, 0, 0, 3942, 3943, 7, 48, 0, 0, 3943, 3945, 5, 219, 0, 0, 3944, 3942, 1, 0, 0, 0, 3944, 3945, 1, 0, 0, 0, 3945, 3947, 1, 0, 0, 0, 3946, 3948, 3, 96, 48, 0, 3947, 3946, 1, 0, 0, 0, 3947, 3948, 1, 0, 0, 0, 3948, 323, 1, 0, 0, 0, 3949, 3951, 5, 81, 0, 0, 3950, 3949, 1, 0, 0, 0, 3950, 3951, 1, 0, 0, 0, 3951, 3952, 1, 0, 0, 0, 3952, 3954, 3, 776, 388, 0, 3953, 3955, 5, 9, 0, 0, 3954, 3953, 1, 0, 0, 0, 3954, 3955, 1, 0, 0, 0, 3955, 325, 1, 0, 0, 0, 3956, 3957, 5, 159, 0, 0, 3957, 4016, 5, 80, 0, 0, 3958, 4017, 3, 312, 156, 0, 3959, 4017, 3, 314, 157, 0, 3960, 3961, 5, 44, 0, 0, 3961, 3963, 3, 820, 410, 0, 3962, 3964, 3, 320, 160, 0, 3963, 3962, 1, 0, 0, 0, 3963, 3964, 1, 0, 0, 0, 3964, 3965, 1, 0, 0, 0, 3965, 3966, 5, 11, 0, 0, 3966, 3967, 3, 802, 401, 0, 3967, 4017, 1, 0, 0, 0, 3968, 3969, 7, 33, 0, 0, 3969, 4017, 3, 654, 327, 0, 3970, 3971, 5, 136, 0, 0, 3971, 4017, 3, 396, 198, 0, 3972, 3973, 5, 211, 0, 0, 3973, 4017, 3, 384, 192, 0, 3974, 3975, 5, 278, 0, 0, 3975, 4017, 3, 418, 209, 0, 3976, 3977, 5, 45, 0, 0, 3977, 3978, 3, 820, 410, 0, 3978, 3984, 5, 80, 0, 0, 3979, 3985, 3, 776, 388, 0, 3980, 3982, 5, 189, 0, 0, 3981, 3980, 1, 0, 0, 0, 3981, 3982, 1, 0, 0, 0, 3982, 3983, 1, 0, 0, 0, 3983, 3985, 3, 318, 159, 0, 3984, 3979, 1, 0, 0, 0, 3984, 3981, 1, 0, 0, 0, 3985, 4017, 1, 0, 0, 0, 3986, 3987, 7, 45, 0, 0, 3987, 3988, 3, 820, 410, 0, 3988, 3989, 5, 80, 0, 0, 3989, 3990, 3, 318, 159, 0, 3990, 4017, 1, 0, 0, 0, 3991, 3992, 5, 296, 0, 0, 3992, 4017, 3, 380, 190, 0, 3993, 3994, 5, 442, 0, 0, 3994, 4017, 3, 376, 188, 0, 3995, 3996, 5, 443, 0, 0, 3996, 3997, 5, 62, 0, 0, 3997, 3998, 3, 654, 327, 0, 3998, 3999, 5, 247, 0, 0, 3999, 4000, 3, 820, 410, 0, 4000, 4017, 1, 0, 0, 0, 4001, 4002, 5, 278, 0, 0, 4002, 4003, 7, 32, 0, 0, 4003, 4004, 3, 318, 159, 0, 4004, 4005, 3, 172, 86, 0, 4005, 4017, 1, 0, 0, 0, 4006, 4007, 5, 248, 0, 0, 4007, 4008, 5, 274, 0, 0, 4008, 4017, 3, 204, 102, 0, 4009, 4010, 5, 41, 0, 0, 4010, 4011, 5, 2, 0, 0, 4011, 4012, 3, 654, 327, 0, 4012, 4013, 5, 36, 0, 0, 4013, 4014, 3, 654, 327, 0, 4014, 4015, 5, 3, 0, 0, 4015, 4017, 1, 0, 0, 0, 4016, 3958, 1, 0, 0, 0, 4016, 3959, 1, 0, 0, 0, 4016, 3960, 1, 0, 0, 0, 4016, 3968, 1, 0, 0, 0, 4016, 3970, 1, 0, 0, 0, 4016, 3972, 1, 0, 0, 0, 4016, 3974, 1, 0, 0, 0, 4016, 3976, 1, 0, 0, 0, 4016, 3986, 1, 0, 0, 0, 4016, 3991, 1, 0, 0, 0, 4016, 3993, 1, 0, 0, 0, 4016, 3995, 1, 0, 0, 0, 4016, 4001, 1, 0, 0, 0, 4016, 4006, 1, 0, 0, 0, 4016, 4009, 1, 0, 0, 0, 4017, 4018, 1, 0, 0, 0, 4018, 4021, 5, 116, 0, 0, 4019, 4022, 3, 810, 405, 0, 4020, 4022, 5, 78, 0, 0, 4021, 4019, 1, 0, 0, 0, 4021, 4020, 1, 0, 0, 0, 4022, 327, 1, 0, 0, 0, 4023, 4024, 5, 327, 0, 0, 4024, 4027, 5, 246, 0, 0, 4025, 4026, 5, 62, 0, 0, 4026, 4028, 3, 58, 29, 0, 4027, 4025, 1, 0, 0, 0, 4027, 4028, 1, 0, 0, 0, 4028, 4029, 1, 0, 0, 0, 4029, 4047, 5, 80, 0, 0, 4030, 4031, 7, 33, 0, 0, 4031, 4048, 3, 654, 327, 0, 4032, 4033, 5, 136, 0, 0, 4033, 4048, 3, 396, 198, 0, 4034, 4035, 5, 44, 0, 0, 4035, 4048, 3, 802, 401, 0, 4036, 4037, 5, 211, 0, 0, 4037, 4048, 3, 384, 192, 0, 4038, 4039, 5, 248, 0, 0, 4039, 4040, 5, 274, 0, 0, 4040, 4048, 3, 204, 102, 0, 4041, 4042, 5, 296, 0, 0, 4042, 4048, 3, 380, 190, 0, 4043, 4044, 5, 442, 0, 0, 4044, 4048, 3, 376, 188, 0, 4045, 4048, 3, 312, 156, 0, 4046, 4048, 3, 314, 157, 0, 4047, 4030, 1, 0, 0, 0, 4047, 4032, 1, 0, 0, 0, 4047, 4034, 1, 0, 0, 0, 4047, 4036, 1, 0, 0, 0, 4047, 4038, 1, 0, 0, 0, 4047, 4041, 1, 0, 0, 0, 4047, 4043, 1, 0, 0, 0, 4047, 4045, 1, 0, 0, 0, 4047, 4046, 1, 0, 0, 0, 4048, 4049, 1, 0, 0, 0, 4049, 4052, 5, 116, 0, 0, 4050, 4053, 3, 810, 405, 0, 4051, 4053, 5, 78, 0, 0, 4052, 4050, 1, 0, 0, 0, 4052, 4051, 1, 0, 0, 0, 4053, 329, 1, 0, 0, 0, 4054, 4055, 7, 49, 0, 0, 4055, 4056, 3, 332, 166, 0, 4056, 331, 1, 0, 0, 0, 4057, 4059, 7, 50, 0, 0, 4058, 4057, 1, 0, 0, 0, 4058, 4059, 1, 0, 0, 0, 4059, 4061, 1, 0, 0, 0, 4060, 4062, 3, 334, 167, 0, 4061, 4060, 1, 0, 0, 0, 4061, 4062, 1, 0, 0, 0, 4062, 4063, 1, 0, 0, 0, 4063, 4101, 3, 820, 410, 0, 4064, 4066, 7, 51, 0, 0, 4065, 4064, 1, 0, 0, 0, 4065, 4066, 1, 0, 0, 0, 4066, 4067, 1, 0, 0, 0, 4067, 4069, 3, 814, 407, 0, 4068, 4070, 3, 334, 167, 0, 4069, 4068, 1, 0, 0, 0, 4069, 4070, 1, 0, 0, 0, 4070, 4071, 1, 0, 0, 0, 4071, 4072, 3, 820, 410, 0, 4072, 4101, 1, 0, 0, 0, 4073, 4075, 5, 210, 0, 0, 4074, 4076, 3, 814, 407, 0, 4075, 4074, 1, 0, 0, 0, 4075, 4076, 1, 0, 0, 0, 4076, 4078, 1, 0, 0, 0, 4077, 4079, 3, 334, 167, 0, 4078, 4077, 1, 0, 0, 0, 4078, 4079, 1, 0, 0, 0, 4079, 4080, 1, 0, 0, 0, 4080, 4101, 3, 820, 410, 0, 4081, 4083, 5, 210, 0, 0, 4082, 4081, 1, 0, 0, 0, 4082, 4083, 1, 0, 0, 0, 4083, 4084, 1, 0, 0, 0, 4084, 4086, 5, 30, 0, 0, 4085, 4087, 3, 334, 167, 0, 4086, 4085, 1, 0, 0, 0, 4086, 4087, 1, 0, 0, 0, 4087, 4088, 1, 0, 0, 0, 4088, 4101, 3, 820, 410, 0, 4089, 4094, 5, 144, 0, 0, 4090, 4092, 5, 30, 0, 0, 4091, 4090, 1, 0, 0, 0, 4091, 4092, 1, 0, 0, 0, 4092, 4095, 1, 0, 0, 0, 4093, 4095, 3, 814, 407, 0, 4094, 4091, 1, 0, 0, 0, 4094, 4093, 1, 0, 0, 0, 4095, 4097, 1, 0, 0, 0, 4096, 4098, 3, 334, 167, 0, 4097, 4096, 1, 0, 0, 0, 4097, 4098, 1, 0, 0, 0, 4098, 4099, 1, 0, 0, 0, 4099, 4101, 3, 820, 410, 0, 4100, 4058, 1, 0, 0, 0, 4100, 4065, 1, 0, 0, 0, 4100, 4073, 1, 0, 0, 0, 4100, 4082, 1, 0, 0, 0, 4100, 4089, 1, 0, 0, 0, 4101, 333, 1, 0, 0, 0, 4102, 4103, 7, 52, 0, 0, 4103, 335, 1, 0, 0, 0, 4104, 4105, 5, 65, 0, 0, 4105, 4106, 3, 340, 170, 0, 4106, 4107, 5, 80, 0, 0, 4107, 4108, 3, 346, 173, 0, 4108, 4109, 5, 94, 0, 0, 4109, 4113, 3, 348, 174, 0, 4110, 4111, 5, 105, 0, 0, 4111, 4112, 5, 65, 0, 0, 4112, 4114, 5, 279, 0, 0, 4113, 4110, 1, 0, 0, 0, 4113, 4114, 1, 0, 0, 0, 4114, 337, 1, 0, 0, 0, 4115, 4119, 5, 317, 0, 0, 4116, 4117, 5, 65, 0, 0, 4117, 4118, 5, 279, 0, 0, 4118, 4120, 5, 62, 0, 0, 4119, 4116, 1, 0, 0, 0, 4119, 4120, 1, 0, 0, 0, 4120, 4121, 1, 0, 0, 0, 4121, 4122, 3, 340, 170, 0, 4122, 4123, 5, 80, 0, 0, 4123, 4124, 3, 346, 173, 0, 4124, 4125, 5, 64, 0, 0, 4125, 4127, 3, 348, 174, 0, 4126, 4128, 3, 96, 48, 0, 4127, 4126, 1, 0, 0, 0, 4127, 4128, 1, 0, 0, 0, 4128, 339, 1, 0, 0, 0, 4129, 4134, 3, 344, 172, 0, 4130, 4131, 5, 6, 0, 0, 4131, 4133, 3, 344, 172, 0, 4132, 4130, 1, 0, 0, 0, 4133, 4136, 1, 0, 0, 0, 4134, 4132, 1, 0, 0, 0, 4134, 4135, 1, 0, 0, 0, 4135, 4153, 1, 0, 0, 0, 4136, 4134, 1, 0, 0, 0, 4137, 4139, 5, 30, 0, 0, 4138, 4140, 5, 294, 0, 0, 4139, 4138, 1, 0, 0, 0, 4139, 4140, 1, 0, 0, 0, 4140, 4142, 1, 0, 0, 0, 4141, 4143, 3, 146, 73, 0, 4142, 4141, 1, 0, 0, 0, 4142, 4143, 1, 0, 0, 0, 4143, 4153, 1, 0, 0, 0, 4144, 4149, 3, 342, 171, 0, 4145, 4146, 5, 6, 0, 0, 4146, 4148, 3, 342, 171, 0, 4147, 4145, 1, 0, 0, 0, 4148, 4151, 1, 0, 0, 0, 4149, 4147, 1, 0, 0, 0, 4149, 4150, 1, 0, 0, 0, 4150, 4153, 1, 0, 0, 0, 4151, 4149, 1, 0, 0, 0, 4152, 4129, 1, 0, 0, 0, 4152, 4137, 1, 0, 0, 0, 4152, 4144, 1, 0, 0, 0, 4153, 341, 1, 0, 0, 0, 4154, 4155, 7, 53, 0, 0, 4155, 343, 1, 0, 0, 0, 4156, 4161, 5, 88, 0, 0, 4157, 4161, 5, 86, 0, 0, 4158, 4161, 5, 46, 0, 0, 4159, 4161, 3, 820, 410, 0, 4160, 4156, 1, 0, 0, 0, 4160, 4157, 1, 0, 0, 0, 4160, 4158, 1, 0, 0, 0, 4160, 4159, 1, 0, 0, 0, 4161, 4163, 1, 0, 0, 0, 4162, 4164, 3, 146, 73, 0, 4163, 4162, 1, 0, 0, 0, 4163, 4164, 1, 0, 0, 0, 4164, 345, 1, 0, 0, 0, 4165, 4166, 5, 92, 0, 0, 4166, 4211, 3, 764, 382, 0, 4167, 4169, 5, 328, 0, 0, 4168, 4167, 1, 0, 0, 0, 4168, 4169, 1, 0, 0, 0, 4169, 4170, 1, 0, 0, 0, 4170, 4211, 3, 762, 381, 0, 4171, 4175, 5, 63, 0, 0, 4172, 4173, 5, 174, 0, 0, 4173, 4176, 5, 381, 0, 0, 4174, 4176, 5, 331, 0, 0, 4175, 4172, 1, 0, 0, 0, 4175, 4174, 1, 0, 0, 0, 4176, 4179, 1, 0, 0, 0, 4177, 4179, 5, 247, 0, 0, 4178, 4171, 1, 0, 0, 0, 4178, 4177, 1, 0, 0, 0, 4179, 4180, 1, 0, 0, 0, 4180, 4211, 3, 786, 393, 0, 4181, 4182, 5, 211, 0, 0, 4182, 4211, 3, 382, 191, 0, 4183, 4184, 5, 296, 0, 0, 4184, 4211, 3, 378, 189, 0, 4185, 4186, 5, 442, 0, 0, 4186, 4211, 3, 374, 187, 0, 4187, 4188, 5, 175, 0, 0, 4188, 4211, 3, 768, 384, 0, 4189, 4190, 7, 33, 0, 0, 4190, 4211, 3, 316, 158, 0, 4191, 4192, 5, 248, 0, 0, 4192, 4193, 5, 274, 0, 0, 4193, 4198, 3, 204, 102, 0, 4194, 4195, 5, 6, 0, 0, 4195, 4197, 3, 204, 102, 0, 4196, 4194, 1, 0, 0, 0, 4197, 4200, 1, 0, 0, 0, 4198, 4196, 1, 0, 0, 0, 4198, 4199, 1, 0, 0, 0, 4199, 4211, 1, 0, 0, 0, 4200, 4198, 1, 0, 0, 0, 4201, 4202, 5, 323, 0, 0, 4202, 4211, 3, 766, 383, 0, 4203, 4204, 5, 351, 0, 0, 4204, 4211, 3, 784, 392, 0, 4205, 4206, 5, 30, 0, 0, 4206, 4207, 7, 54, 0, 0, 4207, 4208, 5, 68, 0, 0, 4208, 4209, 5, 323, 0, 0, 4209, 4211, 3, 766, 383, 0, 4210, 4165, 1, 0, 0, 0, 4210, 4168, 1, 0, 0, 0, 4210, 4178, 1, 0, 0, 0, 4210, 4181, 1, 0, 0, 0, 4210, 4183, 1, 0, 0, 0, 4210, 4185, 1, 0, 0, 0, 4210, 4187, 1, 0, 0, 0, 4210, 4189, 1, 0, 0, 0, 4210, 4191, 1, 0, 0, 0, 4210, 4201, 1, 0, 0, 0, 4210, 4203, 1, 0, 0, 0, 4210, 4205, 1, 0, 0, 0, 4211, 347, 1, 0, 0, 0, 4212, 4214, 5, 66, 0, 0, 4213, 4212, 1, 0, 0, 0, 4213, 4214, 1, 0, 0, 0, 4214, 4215, 1, 0, 0, 0, 4215, 4216, 3, 816, 408, 0, 4216, 4224, 1, 0, 0, 0, 4217, 4219, 5, 6, 0, 0, 4218, 4220, 5, 66, 0, 0, 4219, 4218, 1, 0, 0, 0, 4219, 4220, 1, 0, 0, 0, 4220, 4221, 1, 0, 0, 0, 4221, 4223, 3, 816, 408, 0, 4222, 4217, 1, 0, 0, 0, 4223, 4226, 1, 0, 0, 0, 4224, 4222, 1, 0, 0, 0, 4224, 4225, 1, 0, 0, 0, 4225, 349, 1, 0, 0, 0, 4226, 4224, 1, 0, 0, 0, 4227, 4228, 5, 65, 0, 0, 4228, 4233, 3, 344, 172, 0, 4229, 4230, 5, 6, 0, 0, 4230, 4232, 3, 344, 172, 0, 4231, 4229, 1, 0, 0, 0, 4232, 4235, 1, 0, 0, 0, 4233, 4231, 1, 0, 0, 0, 4233, 4234, 1, 0, 0, 0, 4234, 4236, 1, 0, 0, 0, 4235, 4233, 1, 0, 0, 0, 4236, 4237, 5, 94, 0, 0, 4237, 4241, 3, 818, 409, 0, 4238, 4239, 5, 105, 0, 0, 4239, 4240, 5, 134, 0, 0, 4240, 4242, 5, 279, 0, 0, 4241, 4238, 1, 0, 0, 0, 4241, 4242, 1, 0, 0, 0, 4242, 4246, 1, 0, 0, 0, 4243, 4244, 5, 214, 0, 0, 4244, 4245, 5, 147, 0, 0, 4245, 4247, 3, 816, 408, 0, 4246, 4243, 1, 0, 0, 0, 4246, 4247, 1, 0, 0, 0, 4247, 351, 1, 0, 0, 0, 4248, 4252, 5, 317, 0, 0, 4249, 4250, 5, 134, 0, 0, 4250, 4251, 5, 279, 0, 0, 4251, 4253, 5, 62, 0, 0, 4252, 4249, 1, 0, 0, 0, 4252, 4253, 1, 0, 0, 0, 4253, 4254, 1, 0, 0, 0, 4254, 4259, 3, 344, 172, 0, 4255, 4256, 5, 6, 0, 0, 4256, 4258, 3, 344, 172, 0, 4257, 4255, 1, 0, 0, 0, 4258, 4261, 1, 0, 0, 0, 4259, 4257, 1, 0, 0, 0, 4259, 4260, 1, 0, 0, 0, 4260, 4262, 1, 0, 0, 0, 4261, 4259, 1, 0, 0, 0, 4262, 4263, 5, 64, 0, 0, 4263, 4267, 3, 818, 409, 0, 4264, 4265, 5, 214, 0, 0, 4265, 4266, 5, 147, 0, 0, 4266, 4268, 3, 816, 408, 0, 4267, 4264, 1, 0, 0, 0, 4267, 4268, 1, 0, 0, 0, 4268, 4270, 1, 0, 0, 0, 4269, 4271, 3, 96, 48, 0, 4270, 4269, 1, 0, 0, 0, 4270, 4271, 1, 0, 0, 0, 4271, 353, 1, 0, 0, 0, 4272, 4273, 5, 138, 0, 0, 4273, 4274, 5, 53, 0, 0, 4274, 4283, 5, 294, 0, 0, 4275, 4276, 5, 68, 0, 0, 4276, 4277, 5, 323, 0, 0, 4277, 4282, 3, 766, 383, 0, 4278, 4279, 5, 62, 0, 0, 4279, 4280, 7, 2, 0, 0, 4280, 4282, 3, 818, 409, 0, 4281, 4275, 1, 0, 0, 0, 4281, 4278, 1, 0, 0, 0, 4282, 4285, 1, 0, 0, 0, 4283, 4281, 1, 0, 0, 0, 4283, 4284, 1, 0, 0, 0, 4284, 4286, 1, 0, 0, 0, 4285, 4283, 1, 0, 0, 0, 4286, 4287, 3, 356, 178, 0, 4287, 355, 1, 0, 0, 0, 4288, 4289, 5, 65, 0, 0, 4289, 4290, 3, 340, 170, 0, 4290, 4291, 5, 80, 0, 0, 4291, 4292, 3, 358, 179, 0, 4292, 4293, 5, 94, 0, 0, 4293, 4297, 3, 348, 174, 0, 4294, 4295, 5, 105, 0, 0, 4295, 4296, 5, 65, 0, 0, 4296, 4298, 5, 279, 0, 0, 4297, 4294, 1, 0, 0, 0, 4297, 4298, 1, 0, 0, 0, 4298, 4314, 1, 0, 0, 0, 4299, 4303, 5, 317, 0, 0, 4300, 4301, 5, 65, 0, 0, 4301, 4302, 5, 279, 0, 0, 4302, 4304, 5, 62, 0, 0, 4303, 4300, 1, 0, 0, 0, 4303, 4304, 1, 0, 0, 0, 4304, 4305, 1, 0, 0, 0, 4305, 4306, 3, 340, 170, 0, 4306, 4307, 5, 80, 0, 0, 4307, 4308, 3, 358, 179, 0, 4308, 4309, 5, 64, 0, 0, 4309, 4311, 3, 348, 174, 0, 4310, 4312, 3, 96, 48, 0, 4311, 4310, 1, 0, 0, 0, 4311, 4312, 1, 0, 0, 0, 4312, 4314, 1, 0, 0, 0, 4313, 4288, 1, 0, 0, 0, 4313, 4299, 1, 0, 0, 0, 4314, 357, 1, 0, 0, 0, 4315, 4316, 7, 55, 0, 0, 4316, 359, 1, 0, 0, 0, 4317, 4319, 5, 46, 0, 0, 4318, 4320, 5, 98, 0, 0, 4319, 4318, 1, 0, 0, 0, 4319, 4320, 1, 0, 0, 0, 4320, 4321, 1, 0, 0, 0, 4321, 4323, 5, 226, 0, 0, 4322, 4324, 5, 109, 0, 0, 4323, 4322, 1, 0, 0, 0, 4323, 4324, 1, 0, 0, 0, 4324, 4326, 1, 0, 0, 0, 4325, 4327, 3, 296, 148, 0, 4326, 4325, 1, 0, 0, 0, 4326, 4327, 1, 0, 0, 0, 4327, 4329, 1, 0, 0, 0, 4328, 4330, 3, 820, 410, 0, 4329, 4328, 1, 0, 0, 0, 4329, 4330, 1, 0, 0, 0, 4330, 4331, 1, 0, 0, 0, 4331, 4332, 5, 80, 0, 0, 4332, 4334, 3, 626, 313, 0, 4333, 4335, 3, 172, 86, 0, 4334, 4333, 1, 0, 0, 0, 4334, 4335, 1, 0, 0, 0, 4335, 4336, 1, 0, 0, 0, 4336, 4339, 3, 362, 181, 0, 4337, 4338, 5, 441, 0, 0, 4338, 4340, 3, 362, 181, 0, 4339, 4337, 1, 0, 0, 0, 4339, 4340, 1, 0, 0, 0, 4340, 4346, 1, 0, 0, 0, 4341, 4343, 5, 273, 0, 0, 4342, 4344, 5, 77, 0, 0, 4343, 4342, 1, 0, 0, 0, 4343, 4344, 1, 0, 0, 0, 4344, 4345, 1, 0, 0, 0, 4345, 4347, 5, 56, 0, 0, 4346, 4341, 1, 0, 0, 0, 4346, 4347, 1, 0, 0, 0, 4347, 4349, 1, 0, 0, 0, 4348, 4350, 3, 102, 51, 0, 4349, 4348, 1, 0, 0, 0, 4349, 4350, 1, 0, 0, 0, 4350, 4352, 1, 0, 0, 0, 4351, 4353, 3, 178, 89, 0, 4352, 4351, 1, 0, 0, 0, 4352, 4353, 1, 0, 0, 0, 4353, 4355, 1, 0, 0, 0, 4354, 4356, 3, 640, 320, 0, 4355, 4354, 1, 0, 0, 0, 4355, 4356, 1, 0, 0, 0, 4356, 361, 1, 0, 0, 0, 4357, 4358, 5, 2, 0, 0, 4358, 4363, 3, 364, 182, 0, 4359, 4360, 5, 6, 0, 0, 4360, 4362, 3, 364, 182, 0, 4361, 4359, 1, 0, 0, 0, 4362, 4365, 1, 0, 0, 0, 4363, 4361, 1, 0, 0, 0, 4363, 4364, 1, 0, 0, 0, 4364, 4366, 1, 0, 0, 0, 4365, 4363, 1, 0, 0, 0, 4366, 4367, 5, 3, 0, 0, 4367, 363, 1, 0, 0, 0, 4368, 4375, 3, 802, 401, 0, 4369, 4375, 3, 690, 345, 0, 4370, 4371, 5, 2, 0, 0, 4371, 4372, 3, 676, 338, 0, 4372, 4373, 5, 3, 0, 0, 4373, 4375, 1, 0, 0, 0, 4374, 4368, 1, 0, 0, 0, 4374, 4369, 1, 0, 0, 0, 4374, 4370, 1, 0, 0, 0, 4375, 4377, 1, 0, 0, 0, 4376, 4378, 3, 98, 49, 0, 4377, 4376, 1, 0, 0, 0, 4377, 4378, 1, 0, 0, 0, 4378, 4385, 1, 0, 0, 0, 4379, 4381, 3, 318, 159, 0, 4380, 4379, 1, 0, 0, 0, 4380, 4381, 1, 0, 0, 0, 4381, 4386, 1, 0, 0, 0, 4382, 4383, 3, 318, 159, 0, 4383, 4384, 3, 100, 50, 0, 4384, 4386, 1, 0, 0, 0, 4385, 4380, 1, 0, 0, 0, 4385, 4382, 1, 0, 0, 0, 4386, 4388, 1, 0, 0, 0, 4387, 4389, 7, 56, 0, 0, 4388, 4387, 1, 0, 0, 0, 4388, 4389, 1, 0, 0, 0, 4389, 4392, 1, 0, 0, 0, 4390, 4391, 5, 273, 0, 0, 4391, 4393, 7, 57, 0, 0, 4392, 4390, 1, 0, 0, 0, 4392, 4393, 1, 0, 0, 0, 4393, 365, 1, 0, 0, 0, 4394, 4396, 5, 46, 0, 0, 4395, 4397, 3, 368, 184, 0, 4396, 4395, 1, 0, 0, 0, 4396, 4397, 1, 0, 0, 0, 4397, 4402, 1, 0, 0, 0, 4398, 4399, 5, 211, 0, 0, 4399, 4403, 3, 806, 403, 0, 4400, 4401, 5, 296, 0, 0, 4401, 4403, 3, 800, 400, 0, 4402, 4398, 1, 0, 0, 0, 4402, 4400, 1, 0, 0, 0, 4403, 4404, 1, 0, 0, 0, 4404, 4413, 5, 2, 0, 0, 4405, 4410, 3, 392, 196, 0, 4406, 4407, 5, 6, 0, 0, 4407, 4409, 3, 392, 196, 0, 4408, 4406, 1, 0, 0, 0, 4409, 4412, 1, 0, 0, 0, 4410, 4408, 1, 0, 0, 0, 4410, 4411, 1, 0, 0, 0, 4411, 4414, 1, 0, 0, 0, 4412, 4410, 1, 0, 0, 0, 4413, 4405, 1, 0, 0, 0, 4413, 4414, 1, 0, 0, 0, 4414, 4415, 1, 0, 0, 0, 4415, 4416, 5, 3, 0, 0, 4416, 4433, 1, 0, 0, 0, 4417, 4431, 5, 316, 0, 0, 4418, 4432, 3, 390, 195, 0, 4419, 4420, 5, 92, 0, 0, 4420, 4421, 5, 2, 0, 0, 4421, 4426, 3, 404, 202, 0, 4422, 4423, 5, 6, 0, 0, 4423, 4425, 3, 404, 202, 0, 4424, 4422, 1, 0, 0, 0, 4425, 4428, 1, 0, 0, 0, 4426, 4424, 1, 0, 0, 0, 4426, 4427, 1, 0, 0, 0, 4427, 4429, 1, 0, 0, 0, 4428, 4426, 1, 0, 0, 0, 4429, 4430, 5, 3, 0, 0, 4430, 4432, 1, 0, 0, 0, 4431, 4418, 1, 0, 0, 0, 4431, 4419, 1, 0, 0, 0, 4432, 4434, 1, 0, 0, 0, 4433, 4417, 1, 0, 0, 0, 4433, 4434, 1, 0, 0, 0, 4434, 4436, 1, 0, 0, 0, 4435, 4437, 3, 400, 200, 0, 4436, 4435, 1, 0, 0, 0, 4437, 4438, 1, 0, 0, 0, 4438, 4436, 1, 0, 0, 0, 4438, 4439, 1, 0, 0, 0, 4439, 4445, 1, 0, 0, 0, 4440, 4441, 5, 105, 0, 0, 4441, 4442, 5, 2, 0, 0, 4442, 4443, 3, 786, 393, 0, 4443, 4444, 5, 3, 0, 0, 4444, 4446, 1, 0, 0, 0, 4445, 4440, 1, 0, 0, 0, 4445, 4446, 1, 0, 0, 0, 4446, 367, 1, 0, 0, 0, 4447, 4448, 5, 82, 0, 0, 4448, 4449, 5, 311, 0, 0, 4449, 369, 1, 0, 0, 0, 4450, 4452, 5, 2, 0, 0, 4451, 4453, 3, 372, 186, 0, 4452, 4451, 1, 0, 0, 0, 4452, 4453, 1, 0, 0, 0, 4453, 4454, 1, 0, 0, 0, 4454, 4455, 5, 3, 0, 0, 4455, 371, 1, 0, 0, 0, 4456, 4461, 3, 386, 193, 0, 4457, 4458, 5, 6, 0, 0, 4458, 4460, 3, 386, 193, 0, 4459, 4457, 1, 0, 0, 0, 4460, 4463, 1, 0, 0, 0, 4461, 4459, 1, 0, 0, 0, 4461, 4462, 1, 0, 0, 0, 4462, 373, 1, 0, 0, 0, 4463, 4461, 1, 0, 0, 0, 4464, 4469, 3, 376, 188, 0, 4465, 4466, 5, 6, 0, 0, 4466, 4468, 3, 376, 188, 0, 4467, 4465, 1, 0, 0, 0, 4468, 4471, 1, 0, 0, 0, 4469, 4467, 1, 0, 0, 0, 4469, 4470, 1, 0, 0, 0, 4470, 375, 1, 0, 0, 0, 4471, 4469, 1, 0, 0, 0, 4472, 4473, 3, 796, 398, 0, 4473, 4474, 3, 370, 185, 0, 4474, 4478, 1, 0, 0, 0, 4475, 4478, 3, 834, 417, 0, 4476, 4478, 3, 782, 391, 0, 4477, 4472, 1, 0, 0, 0, 4477, 4475, 1, 0, 0, 0, 4477, 4476, 1, 0, 0, 0, 4478, 377, 1, 0, 0, 0, 4479, 4484, 3, 380, 190, 0, 4480, 4481, 5, 6, 0, 0, 4481, 4483, 3, 380, 190, 0, 4482, 4480, 1, 0, 0, 0, 4483, 4486, 1, 0, 0, 0, 4484, 4482, 1, 0, 0, 0, 4484, 4485, 1, 0, 0, 0, 4485, 379, 1, 0, 0, 0, 4486, 4484, 1, 0, 0, 0, 4487, 4488, 3, 798, 399, 0, 4488, 4489, 3, 370, 185, 0, 4489, 4493, 1, 0, 0, 0, 4490, 4493, 3, 834, 417, 0, 4491, 4493, 3, 782, 391, 0, 4492, 4487, 1, 0, 0, 0, 4492, 4490, 1, 0, 0, 0, 4492, 4491, 1, 0, 0, 0, 4493, 381, 1, 0, 0, 0, 4494, 4499, 3, 384, 192, 0, 4495, 4496, 5, 6, 0, 0, 4496, 4498, 3, 384, 192, 0, 4497, 4495, 1, 0, 0, 0, 4498, 4501, 1, 0, 0, 0, 4499, 4497, 1, 0, 0, 0, 4499, 4500, 1, 0, 0, 0, 4500, 383, 1, 0, 0, 0, 4501, 4499, 1, 0, 0, 0, 4502, 4503, 3, 808, 404, 0, 4503, 4504, 3, 370, 185, 0, 4504, 4508, 1, 0, 0, 0, 4505, 4508, 3, 834, 417, 0, 4506, 4508, 3, 782, 391, 0, 4507, 4502, 1, 0, 0, 0, 4507, 4505, 1, 0, 0, 0, 4507, 4506, 1, 0, 0, 0, 4508, 385, 1, 0, 0, 0, 4509, 4511, 3, 388, 194, 0, 4510, 4512, 3, 822, 411, 0, 4511, 4510, 1, 0, 0, 0, 4511, 4512, 1, 0, 0, 0, 4512, 4518, 1, 0, 0, 0, 4513, 4515, 3, 822, 411, 0, 4514, 4516, 3, 388, 194, 0, 4515, 4514, 1, 0, 0, 0, 4515, 4516, 1, 0, 0, 0, 4516, 4518, 1, 0, 0, 0, 4517, 4509, 1, 0, 0, 0, 4517, 4513, 1, 0, 0, 0, 4517, 4518, 1, 0, 0, 0, 4518, 4519, 1, 0, 0, 0, 4519, 4520, 3, 390, 195, 0, 4520, 387, 1, 0, 0, 0, 4521, 4523, 5, 68, 0, 0, 4522, 4524, 5, 453, 0, 0, 4523, 4522, 1, 0, 0, 0, 4523, 4524, 1, 0, 0, 0, 4524, 4529, 1, 0, 0, 0, 4525, 4529, 5, 453, 0, 0, 4526, 4529, 5, 400, 0, 0, 4527, 4529, 5, 101, 0, 0, 4528, 4521, 1, 0, 0, 0, 4528, 4525, 1, 0, 0, 0, 4528, 4526, 1, 0, 0, 0, 4528, 4527, 1, 0, 0, 0, 4529, 389, 1, 0, 0, 0, 4530, 4540, 3, 654, 327, 0, 4531, 4533, 5, 415, 0, 0, 4532, 4531, 1, 0, 0, 0, 4532, 4533, 1, 0, 0, 0, 4533, 4534, 1, 0, 0, 0, 4534, 4535, 3, 822, 411, 0, 4535, 4536, 3, 320, 160, 0, 4536, 4537, 5, 27, 0, 0, 4537, 4538, 5, 360, 0, 0, 4538, 4540, 1, 0, 0, 0, 4539, 4530, 1, 0, 0, 0, 4539, 4532, 1, 0, 0, 0, 4540, 391, 1, 0, 0, 0, 4541, 4544, 3, 386, 193, 0, 4542, 4543, 7, 58, 0, 0, 4543, 4545, 3, 676, 338, 0, 4544, 4542, 1, 0, 0, 0, 4544, 4545, 1, 0, 0, 0, 4545, 393, 1, 0, 0, 0, 4546, 4556, 5, 2, 0, 0, 4547, 4557, 5, 9, 0, 0, 4548, 4550, 3, 372, 186, 0, 4549, 4548, 1, 0, 0, 0, 4549, 4550, 1, 0, 0, 0, 4550, 4554, 1, 0, 0, 0, 4551, 4552, 5, 83, 0, 0, 4552, 4553, 5, 147, 0, 0, 4553, 4555, 3, 372, 186, 0, 4554, 4551, 1, 0, 0, 0, 4554, 4555, 1, 0, 0, 0, 4555, 4557, 1, 0, 0, 0, 4556, 4547, 1, 0, 0, 0, 4556, 4549, 1, 0, 0, 0, 4557, 4558, 1, 0, 0, 0, 4558, 4559, 5, 3, 0, 0, 4559, 395, 1, 0, 0, 0, 4560, 4561, 3, 808, 404, 0, 4561, 4562, 3, 394, 197, 0, 4562, 397, 1, 0, 0, 0, 4563, 4564, 5, 316, 0, 0, 4564, 4567, 5, 78, 0, 0, 4565, 4567, 5, 149, 0, 0, 4566, 4563, 1, 0, 0, 0, 4566, 4565, 1, 0, 0, 0, 4567, 4568, 1, 0, 0, 0, 4568, 4569, 5, 80, 0, 0, 4569, 4570, 5, 78, 0, 0, 4570, 4593, 5, 458, 0, 0, 4571, 4593, 5, 346, 0, 0, 4572, 4593, 5, 222, 0, 0, 4573, 4593, 5, 338, 0, 0, 4574, 4593, 5, 377, 0, 0, 4575, 4577, 5, 205, 0, 0, 4576, 4575, 1, 0, 0, 0, 4576, 4577, 1, 0, 0, 0, 4577, 4578, 1, 0, 0, 0, 4578, 4579, 5, 327, 0, 0, 4579, 4593, 7, 59, 0, 0, 4580, 4593, 5, 250, 0, 0, 4581, 4582, 5, 77, 0, 0, 4582, 4593, 5, 250, 0, 0, 4583, 4584, 7, 60, 0, 0, 4584, 4593, 3, 204, 102, 0, 4585, 4586, 5, 459, 0, 0, 4586, 4593, 3, 318, 159, 0, 4587, 4588, 5, 333, 0, 0, 4588, 4593, 3, 42, 21, 0, 4589, 4593, 3, 60, 30, 0, 4590, 4591, 5, 460, 0, 0, 4591, 4593, 3, 820, 410, 0, 4592, 4566, 1, 0, 0, 0, 4592, 4571, 1, 0, 0, 0, 4592, 4572, 1, 0, 0, 0, 4592, 4573, 1, 0, 0, 0, 4592, 4574, 1, 0, 0, 0, 4592, 4576, 1, 0, 0, 0, 4592, 4580, 1, 0, 0, 0, 4592, 4581, 1, 0, 0, 0, 4592, 4583, 1, 0, 0, 0, 4592, 4585, 1, 0, 0, 0, 4592, 4587, 1, 0, 0, 0, 4592, 4589, 1, 0, 0, 0, 4592, 4590, 1, 0, 0, 0, 4593, 399, 1, 0, 0, 0, 4594, 4595, 5, 36, 0, 0, 4595, 4596, 3, 810, 405, 0, 4596, 4597, 3, 464, 232, 0, 4597, 4630, 1, 0, 0, 0, 4598, 4599, 5, 247, 0, 0, 4599, 4630, 3, 58, 29, 0, 4600, 4601, 5, 443, 0, 0, 4601, 4602, 5, 62, 0, 0, 4602, 4603, 5, 360, 0, 0, 4603, 4610, 3, 654, 327, 0, 4604, 4605, 5, 6, 0, 0, 4605, 4606, 5, 62, 0, 0, 4606, 4607, 5, 360, 0, 0, 4607, 4609, 3, 654, 327, 0, 4608, 4604, 1, 0, 0, 0, 4609, 4612, 1, 0, 0, 0, 4610, 4608, 1, 0, 0, 0, 4610, 4611, 1, 0, 0, 0, 4611, 4630, 1, 0, 0, 0, 4612, 4610, 1, 0, 0, 0, 4613, 4630, 5, 104, 0, 0, 4614, 4615, 5, 333, 0, 0, 4615, 4622, 3, 820, 410, 0, 4616, 4617, 5, 94, 0, 0, 4617, 4623, 3, 820, 410, 0, 4618, 4619, 5, 10, 0, 0, 4619, 4623, 3, 820, 410, 0, 4620, 4621, 5, 64, 0, 0, 4621, 4623, 5, 434, 0, 0, 4622, 4616, 1, 0, 0, 0, 4622, 4618, 1, 0, 0, 0, 4622, 4620, 1, 0, 0, 0, 4623, 4630, 1, 0, 0, 0, 4624, 4625, 5, 36, 0, 0, 4625, 4630, 3, 820, 410, 0, 4626, 4630, 3, 4, 2, 0, 4627, 4630, 3, 398, 199, 0, 4628, 4630, 3, 820, 410, 0, 4629, 4594, 1, 0, 0, 0, 4629, 4598, 1, 0, 0, 0, 4629, 4600, 1, 0, 0, 0, 4629, 4613, 1, 0, 0, 0, 4629, 4614, 1, 0, 0, 0, 4629, 4624, 1, 0, 0, 0, 4629, 4626, 1, 0, 0, 0, 4629, 4627, 1, 0, 0, 0, 4629, 4628, 1, 0, 0, 0, 4630, 401, 1, 0, 0, 0, 4631, 4632, 5, 105, 0, 0, 4632, 4633, 3, 286, 143, 0, 4633, 403, 1, 0, 0, 0, 4634, 4635, 3, 802, 401, 0, 4635, 4636, 3, 390, 195, 0, 4636, 405, 1, 0, 0, 0, 4637, 4644, 5, 138, 0, 0, 4638, 4639, 5, 211, 0, 0, 4639, 4645, 3, 384, 192, 0, 4640, 4641, 5, 296, 0, 0, 4641, 4645, 3, 380, 190, 0, 4642, 4643, 5, 442, 0, 0, 4643, 4645, 3, 376, 188, 0, 4644, 4638, 1, 0, 0, 0, 4644, 4640, 1, 0, 0, 0, 4644, 4642, 1, 0, 0, 0, 4645, 4647, 1, 0, 0, 0, 4646, 4648, 3, 398, 199, 0, 4647, 4646, 1, 0, 0, 0, 4648, 4649, 1, 0, 0, 0, 4649, 4647, 1, 0, 0, 0, 4649, 4650, 1, 0, 0, 0, 4650, 4652, 1, 0, 0, 0, 4651, 4653, 5, 315, 0, 0, 4652, 4651, 1, 0, 0, 0, 4652, 4653, 1, 0, 0, 0, 4653, 407, 1, 0, 0, 0, 4654, 4670, 5, 191, 0, 0, 4655, 4657, 5, 211, 0, 0, 4656, 4658, 3, 424, 212, 0, 4657, 4656, 1, 0, 0, 0, 4657, 4658, 1, 0, 0, 0, 4658, 4659, 1, 0, 0, 0, 4659, 4671, 3, 382, 191, 0, 4660, 4662, 5, 296, 0, 0, 4661, 4663, 3, 424, 212, 0, 4662, 4661, 1, 0, 0, 0, 4662, 4663, 1, 0, 0, 0, 4663, 4664, 1, 0, 0, 0, 4664, 4671, 3, 378, 189, 0, 4665, 4667, 5, 442, 0, 0, 4666, 4668, 3, 424, 212, 0, 4667, 4666, 1, 0, 0, 0, 4667, 4668, 1, 0, 0, 0, 4668, 4669, 1, 0, 0, 0, 4669, 4671, 3, 374, 187, 0, 4670, 4655, 1, 0, 0, 0, 4670, 4660, 1, 0, 0, 0, 4670, 4665, 1, 0, 0, 0, 4671, 4673, 1, 0, 0, 0, 4672, 4674, 3, 96, 48, 0, 4673, 4672, 1, 0, 0, 0, 4673, 4674, 1, 0, 0, 0, 4674, 409, 1, 0, 0, 0, 4675, 4676, 5, 191, 0, 0, 4676, 4678, 5, 136, 0, 0, 4677, 4679, 3, 424, 212, 0, 4678, 4677, 1, 0, 0, 0, 4678, 4679, 1, 0, 0, 0, 4679, 4680, 1, 0, 0, 0, 4680, 4685, 3, 396, 198, 0, 4681, 4682, 5, 6, 0, 0, 4682, 4684, 3, 396, 198, 0, 4683, 4681, 1, 0, 0, 0, 4684, 4687, 1, 0, 0, 0, 4685, 4683, 1, 0, 0, 0, 4685, 4686, 1, 0, 0, 0, 4686, 4689, 1, 0, 0, 0, 4687, 4685, 1, 0, 0, 0, 4688, 4690, 3, 96, 48, 0, 4689, 4688, 1, 0, 0, 0, 4689, 4690, 1, 0, 0, 0, 4690, 411, 1, 0, 0, 0, 4691, 4692, 5, 191, 0, 0, 4692, 4694, 5, 278, 0, 0, 4693, 4695, 3, 424, 212, 0, 4694, 4693, 1, 0, 0, 0, 4694, 4695, 1, 0, 0, 0, 4695, 4696, 1, 0, 0, 0, 4696, 4701, 3, 418, 209, 0, 4697, 4698, 5, 6, 0, 0, 4698, 4700, 3, 418, 209, 0, 4699, 4697, 1, 0, 0, 0, 4700, 4703, 1, 0, 0, 0, 4701, 4699, 1, 0, 0, 0, 4701, 4702, 1, 0, 0, 0, 4702, 4705, 1, 0, 0, 0, 4703, 4701, 1, 0, 0, 0, 4704, 4706, 3, 96, 48, 0, 4705, 4704, 1, 0, 0, 0, 4705, 4706, 1, 0, 0, 0, 4706, 413, 1, 0, 0, 0, 4707, 4720, 5, 2, 0, 0, 4708, 4711, 3, 654, 327, 0, 4709, 4710, 5, 6, 0, 0, 4710, 4712, 3, 654, 327, 0, 4711, 4709, 1, 0, 0, 0, 4711, 4712, 1, 0, 0, 0, 4712, 4721, 1, 0, 0, 0, 4713, 4714, 5, 407, 0, 0, 4714, 4715, 5, 6, 0, 0, 4715, 4721, 3, 654, 327, 0, 4716, 4717, 3, 654, 327, 0, 4717, 4718, 5, 6, 0, 0, 4718, 4719, 5, 407, 0, 0, 4719, 4721, 1, 0, 0, 0, 4720, 4708, 1, 0, 0, 0, 4720, 4713, 1, 0, 0, 0, 4720, 4716, 1, 0, 0, 0, 4721, 4722, 1, 0, 0, 0, 4722, 4723, 5, 3, 0, 0, 4723, 415, 1, 0, 0, 0, 4724, 4725, 3, 820, 410, 0, 4725, 4726, 5, 11, 0, 0, 4726, 4728, 1, 0, 0, 0, 4727, 4724, 1, 0, 0, 0, 4728, 4731, 1, 0, 0, 0, 4729, 4727, 1, 0, 0, 0, 4729, 4730, 1, 0, 0, 0, 4730, 4732, 1, 0, 0, 0, 4731, 4729, 1, 0, 0, 0, 4732, 4733, 3, 722, 361, 0, 4733, 417, 1, 0, 0, 0, 4734, 4735, 3, 416, 208, 0, 4735, 4736, 3, 414, 207, 0, 4736, 419, 1, 0, 0, 0, 4737, 4741, 5, 57, 0, 0, 4738, 4742, 3, 810, 405, 0, 4739, 4740, 5, 247, 0, 0, 4740, 4742, 3, 58, 29, 0, 4741, 4738, 1, 0, 0, 0, 4741, 4739, 1, 0, 0, 0, 4742, 4743, 1, 0, 0, 0, 4743, 4741, 1, 0, 0, 0, 4743, 4744, 1, 0, 0, 0, 4744, 421, 1, 0, 0, 0, 4745, 4746, 5, 46, 0, 0, 4746, 4747, 5, 41, 0, 0, 4747, 4748, 5, 2, 0, 0, 4748, 4749, 3, 654, 327, 0, 4749, 4750, 5, 36, 0, 0, 4750, 4751, 3, 654, 327, 0, 4751, 4768, 5, 3, 0, 0, 4752, 4753, 5, 379, 0, 0, 4753, 4756, 5, 211, 0, 0, 4754, 4755, 5, 36, 0, 0, 4755, 4757, 7, 61, 0, 0, 4756, 4754, 1, 0, 0, 0, 4756, 4757, 1, 0, 0, 0, 4757, 4769, 1, 0, 0, 0, 4758, 4762, 5, 105, 0, 0, 4759, 4760, 5, 211, 0, 0, 4760, 4763, 3, 384, 192, 0, 4761, 4763, 5, 400, 0, 0, 4762, 4759, 1, 0, 0, 0, 4762, 4761, 1, 0, 0, 0, 4763, 4766, 1, 0, 0, 0, 4764, 4765, 5, 36, 0, 0, 4765, 4767, 7, 61, 0, 0, 4766, 4764, 1, 0, 0, 0, 4766, 4767, 1, 0, 0, 0, 4767, 4769, 1, 0, 0, 0, 4768, 4752, 1, 0, 0, 0, 4768, 4758, 1, 0, 0, 0, 4769, 423, 1, 0, 0, 0, 4770, 4771, 5, 220, 0, 0, 4771, 4772, 5, 396, 0, 0, 4772, 425, 1, 0, 0, 0, 4773, 4775, 5, 46, 0, 0, 4774, 4776, 3, 368, 184, 0, 4775, 4774, 1, 0, 0, 0, 4775, 4776, 1, 0, 0, 0, 4776, 4777, 1, 0, 0, 0, 4777, 4778, 5, 443, 0, 0, 4778, 4779, 5, 62, 0, 0, 4779, 4780, 3, 654, 327, 0, 4780, 4781, 5, 247, 0, 0, 4781, 4782, 3, 820, 410, 0, 4782, 4797, 5, 2, 0, 0, 4783, 4784, 5, 64, 0, 0, 4784, 4788, 3, 428, 214, 0, 4785, 4786, 5, 6, 0, 0, 4786, 4787, 5, 94, 0, 0, 4787, 4789, 3, 428, 214, 0, 4788, 4785, 1, 0, 0, 0, 4788, 4789, 1, 0, 0, 0, 4789, 4798, 1, 0, 0, 0, 4790, 4791, 5, 94, 0, 0, 4791, 4795, 3, 428, 214, 0, 4792, 4793, 5, 6, 0, 0, 4793, 4794, 5, 64, 0, 0, 4794, 4796, 3, 428, 214, 0, 4795, 4792, 1, 0, 0, 0, 4795, 4796, 1, 0, 0, 0, 4796, 4798, 1, 0, 0, 0, 4797, 4783, 1, 0, 0, 0, 4797, 4790, 1, 0, 0, 0, 4798, 4799, 1, 0, 0, 0, 4799, 4800, 5, 3, 0, 0, 4800, 427, 1, 0, 0, 0, 4801, 4802, 5, 461, 0, 0, 4802, 4803, 5, 105, 0, 0, 4803, 4804, 5, 211, 0, 0, 4804, 4805, 3, 384, 192, 0, 4805, 429, 1, 0, 0, 0, 4806, 4817, 5, 306, 0, 0, 4807, 4808, 5, 2, 0, 0, 4808, 4813, 5, 128, 0, 0, 4809, 4810, 5, 6, 0, 0, 4810, 4812, 5, 128, 0, 0, 4811, 4809, 1, 0, 0, 0, 4812, 4815, 1, 0, 0, 0, 4813, 4811, 1, 0, 0, 0, 4813, 4814, 1, 0, 0, 0, 4814, 4816, 1, 0, 0, 0, 4815, 4813, 1, 0, 0, 0, 4816, 4818, 5, 3, 0, 0, 4817, 4807, 1, 0, 0, 0, 4817, 4818, 1, 0, 0, 0, 4818, 4844, 1, 0, 0, 0, 4819, 4821, 5, 226, 0, 0, 4820, 4822, 5, 109, 0, 0, 4821, 4820, 1, 0, 0, 0, 4821, 4822, 1, 0, 0, 0, 4822, 4823, 1, 0, 0, 0, 4823, 4845, 3, 782, 391, 0, 4824, 4826, 5, 92, 0, 0, 4825, 4827, 5, 109, 0, 0, 4826, 4825, 1, 0, 0, 0, 4826, 4827, 1, 0, 0, 0, 4827, 4828, 1, 0, 0, 0, 4828, 4845, 3, 776, 388, 0, 4829, 4831, 5, 323, 0, 0, 4830, 4832, 5, 109, 0, 0, 4831, 4830, 1, 0, 0, 0, 4831, 4832, 1, 0, 0, 0, 4832, 4833, 1, 0, 0, 0, 4833, 4845, 3, 792, 396, 0, 4834, 4836, 5, 349, 0, 0, 4835, 4837, 5, 109, 0, 0, 4836, 4835, 1, 0, 0, 0, 4836, 4837, 1, 0, 0, 0, 4837, 4838, 1, 0, 0, 0, 4838, 4845, 3, 820, 410, 0, 4839, 4841, 5, 175, 0, 0, 4840, 4842, 5, 109, 0, 0, 4841, 4840, 1, 0, 0, 0, 4841, 4842, 1, 0, 0, 0, 4842, 4843, 1, 0, 0, 0, 4843, 4845, 3, 790, 395, 0, 4844, 4819, 1, 0, 0, 0, 4844, 4824, 1, 0, 0, 0, 4844, 4829, 1, 0, 0, 0, 4844, 4834, 1, 0, 0, 0, 4844, 4839, 1, 0, 0, 0, 4845, 431, 1, 0, 0, 0, 4846, 4847, 5, 138, 0, 0, 4847, 4848, 3, 178, 89, 0, 4848, 4849, 7, 16, 0, 0, 4849, 4850, 3, 100, 50, 0, 4850, 433, 1, 0, 0, 0, 4851, 4856, 5, 138, 0, 0, 4852, 4853, 5, 136, 0, 0, 4853, 4857, 3, 396, 198, 0, 4854, 4855, 5, 442, 0, 0, 4855, 4857, 3, 376, 188, 0, 4856, 4852, 1, 0, 0, 0, 4856, 4854, 1, 0, 0, 0, 4857, 4858, 1, 0, 0, 0, 4858, 4859, 5, 309, 0, 0, 4859, 4860, 5, 94, 0, 0, 4860, 4861, 3, 820, 410, 0, 4861, 5059, 1, 0, 0, 0, 4862, 4863, 5, 138, 0, 0, 4863, 4864, 5, 175, 0, 0, 4864, 4865, 3, 790, 395, 0, 4865, 4866, 5, 309, 0, 0, 4866, 4867, 5, 94, 0, 0, 4867, 4868, 3, 788, 394, 0, 4868, 5059, 1, 0, 0, 0, 4869, 4870, 5, 138, 0, 0, 4870, 4871, 7, 62, 0, 0, 4871, 4872, 3, 318, 159, 0, 4872, 4873, 5, 309, 0, 0, 4873, 4874, 5, 94, 0, 0, 4874, 4875, 3, 820, 410, 0, 4875, 5059, 1, 0, 0, 0, 4876, 4877, 5, 138, 0, 0, 4877, 4878, 5, 211, 0, 0, 4878, 4879, 3, 384, 192, 0, 4879, 4880, 5, 309, 0, 0, 4880, 4881, 5, 94, 0, 0, 4881, 4882, 3, 806, 403, 0, 4882, 5059, 1, 0, 0, 0, 4883, 4884, 5, 138, 0, 0, 4884, 4885, 5, 278, 0, 0, 4885, 4886, 7, 32, 0, 0, 4886, 4887, 3, 318, 159, 0, 4887, 4888, 3, 172, 86, 0, 4888, 4889, 5, 309, 0, 0, 4889, 4890, 5, 94, 0, 0, 4890, 4891, 3, 820, 410, 0, 4891, 5059, 1, 0, 0, 0, 4892, 4893, 5, 138, 0, 0, 4893, 4894, 5, 296, 0, 0, 4894, 4895, 3, 380, 190, 0, 4895, 4896, 5, 309, 0, 0, 4896, 4897, 5, 94, 0, 0, 4897, 4898, 3, 800, 400, 0, 4898, 5059, 1, 0, 0, 0, 4899, 4900, 5, 138, 0, 0, 4900, 4901, 5, 323, 0, 0, 4901, 4902, 3, 792, 396, 0, 4902, 4903, 5, 309, 0, 0, 4903, 4904, 5, 94, 0, 0, 4904, 4905, 3, 32, 16, 0, 4905, 5059, 1, 0, 0, 0, 4906, 4907, 5, 138, 0, 0, 4907, 4909, 7, 63, 0, 0, 4908, 4910, 3, 424, 212, 0, 4909, 4908, 1, 0, 0, 0, 4909, 4910, 1, 0, 0, 0, 4910, 4911, 1, 0, 0, 0, 4911, 4912, 3, 782, 391, 0, 4912, 4913, 5, 309, 0, 0, 4913, 4914, 5, 94, 0, 0, 4914, 4915, 3, 820, 410, 0, 4915, 5059, 1, 0, 0, 0, 4916, 4918, 5, 138, 0, 0, 4917, 4919, 5, 259, 0, 0, 4918, 4917, 1, 0, 0, 0, 4918, 4919, 1, 0, 0, 0, 4919, 4920, 1, 0, 0, 0, 4920, 4922, 5, 376, 0, 0, 4921, 4923, 3, 424, 212, 0, 4922, 4921, 1, 0, 0, 0, 4922, 4923, 1, 0, 0, 0, 4923, 4924, 1, 0, 0, 0, 4924, 4925, 3, 780, 390, 0, 4925, 4926, 5, 309, 0, 0, 4926, 4927, 5, 94, 0, 0, 4927, 4928, 3, 778, 389, 0, 4928, 5059, 1, 0, 0, 0, 4929, 4931, 5, 138, 0, 0, 4930, 4932, 5, 63, 0, 0, 4931, 4930, 1, 0, 0, 0, 4931, 4932, 1, 0, 0, 0, 4932, 4933, 1, 0, 0, 0, 4933, 4935, 5, 92, 0, 0, 4934, 4936, 3, 424, 212, 0, 4935, 4934, 1, 0, 0, 0, 4935, 4936, 1, 0, 0, 0, 4936, 4937, 1, 0, 0, 0, 4937, 4938, 3, 626, 313, 0, 4938, 4939, 5, 309, 0, 0, 4939, 4940, 5, 94, 0, 0, 4940, 4941, 3, 774, 387, 0, 4941, 5059, 1, 0, 0, 0, 4942, 4967, 5, 138, 0, 0, 4943, 4945, 5, 63, 0, 0, 4944, 4943, 1, 0, 0, 0, 4944, 4945, 1, 0, 0, 0, 4945, 4946, 1, 0, 0, 0, 4946, 4948, 5, 92, 0, 0, 4947, 4949, 3, 424, 212, 0, 4948, 4947, 1, 0, 0, 0, 4948, 4949, 1, 0, 0, 0, 4949, 4950, 1, 0, 0, 0, 4950, 4951, 3, 626, 313, 0, 4951, 4953, 5, 309, 0, 0, 4952, 4954, 5, 44, 0, 0, 4953, 4952, 1, 0, 0, 0, 4953, 4954, 1, 0, 0, 0, 4954, 4968, 1, 0, 0, 0, 4955, 4957, 5, 259, 0, 0, 4956, 4955, 1, 0, 0, 0, 4956, 4957, 1, 0, 0, 0, 4957, 4958, 1, 0, 0, 0, 4958, 4960, 5, 376, 0, 0, 4959, 4961, 3, 424, 212, 0, 4960, 4959, 1, 0, 0, 0, 4960, 4961, 1, 0, 0, 0, 4961, 4962, 1, 0, 0, 0, 4962, 4963, 3, 780, 390, 0, 4963, 4965, 5, 309, 0, 0, 4964, 4966, 5, 44, 0, 0, 4965, 4964, 1, 0, 0, 0, 4965, 4966, 1, 0, 0, 0, 4966, 4968, 1, 0, 0, 0, 4967, 4944, 1, 0, 0, 0, 4967, 4956, 1, 0, 0, 0, 4968, 4969, 1, 0, 0, 0, 4969, 4970, 3, 802, 401, 0, 4970, 4971, 5, 94, 0, 0, 4971, 4972, 3, 804, 402, 0, 4972, 5059, 1, 0, 0, 0, 4973, 4981, 5, 138, 0, 0, 4974, 4976, 5, 92, 0, 0, 4975, 4977, 3, 424, 212, 0, 4976, 4975, 1, 0, 0, 0, 4976, 4977, 1, 0, 0, 0, 4977, 4978, 1, 0, 0, 0, 4978, 4982, 3, 626, 313, 0, 4979, 4980, 5, 189, 0, 0, 4980, 4982, 3, 318, 159, 0, 4981, 4974, 1, 0, 0, 0, 4981, 4979, 1, 0, 0, 0, 4982, 4983, 1, 0, 0, 0, 4983, 4984, 5, 309, 0, 0, 4984, 4985, 5, 45, 0, 0, 4985, 4986, 3, 820, 410, 0, 4986, 4987, 5, 94, 0, 0, 4987, 4988, 3, 820, 410, 0, 4988, 5059, 1, 0, 0, 0, 4989, 4996, 5, 138, 0, 0, 4990, 4992, 5, 445, 0, 0, 4991, 4993, 3, 424, 212, 0, 4992, 4991, 1, 0, 0, 0, 4992, 4993, 1, 0, 0, 0, 4993, 4997, 1, 0, 0, 0, 4994, 4997, 5, 321, 0, 0, 4995, 4997, 5, 357, 0, 0, 4996, 4990, 1, 0, 0, 0, 4996, 4994, 1, 0, 0, 0, 4996, 4995, 1, 0, 0, 0, 4997, 4998, 1, 0, 0, 0, 4998, 4999, 3, 820, 410, 0, 4999, 5000, 5, 80, 0, 0, 5000, 5001, 3, 782, 391, 0, 5001, 5002, 5, 309, 0, 0, 5002, 5003, 5, 94, 0, 0, 5003, 5004, 3, 820, 410, 0, 5004, 5059, 1, 0, 0, 0, 5005, 5018, 5, 138, 0, 0, 5006, 5007, 5, 63, 0, 0, 5007, 5008, 5, 174, 0, 0, 5008, 5019, 5, 381, 0, 0, 5009, 5011, 5, 295, 0, 0, 5010, 5009, 1, 0, 0, 0, 5010, 5011, 1, 0, 0, 0, 5011, 5012, 1, 0, 0, 0, 5012, 5019, 5, 247, 0, 0, 5013, 5019, 5, 452, 0, 0, 5014, 5019, 5, 331, 0, 0, 5015, 5019, 5, 451, 0, 0, 5016, 5017, 5, 198, 0, 0, 5017, 5019, 5, 357, 0, 0, 5018, 5006, 1, 0, 0, 0, 5018, 5010, 1, 0, 0, 0, 5018, 5013, 1, 0, 0, 0, 5018, 5014, 1, 0, 0, 0, 5018, 5015, 1, 0, 0, 0, 5018, 5016, 1, 0, 0, 0, 5019, 5020, 1, 0, 0, 0, 5020, 5021, 3, 820, 410, 0, 5021, 5022, 5, 309, 0, 0, 5022, 5023, 5, 94, 0, 0, 5023, 5024, 3, 820, 410, 0, 5024, 5059, 1, 0, 0, 0, 5025, 5026, 5, 138, 0, 0, 5026, 5027, 7, 46, 0, 0, 5027, 5028, 3, 816, 408, 0, 5028, 5029, 5, 309, 0, 0, 5029, 5030, 5, 94, 0, 0, 5030, 5031, 3, 816, 408, 0, 5031, 5059, 1, 0, 0, 0, 5032, 5033, 5, 138, 0, 0, 5033, 5034, 3, 178, 89, 0, 5034, 5035, 5, 309, 0, 0, 5035, 5036, 5, 94, 0, 0, 5036, 5037, 3, 770, 385, 0, 5037, 5059, 1, 0, 0, 0, 5038, 5039, 5, 138, 0, 0, 5039, 5040, 5, 355, 0, 0, 5040, 5041, 5, 325, 0, 0, 5041, 5042, 7, 42, 0, 0, 5042, 5043, 3, 318, 159, 0, 5043, 5044, 5, 309, 0, 0, 5044, 5045, 5, 94, 0, 0, 5045, 5046, 3, 820, 410, 0, 5046, 5059, 1, 0, 0, 0, 5047, 5048, 5, 138, 0, 0, 5048, 5049, 5, 360, 0, 0, 5049, 5050, 3, 318, 159, 0, 5050, 5051, 5, 309, 0, 0, 5051, 5052, 5, 143, 0, 0, 5052, 5053, 3, 820, 410, 0, 5053, 5054, 5, 94, 0, 0, 5054, 5056, 3, 820, 410, 0, 5055, 5057, 3, 96, 48, 0, 5056, 5055, 1, 0, 0, 0, 5056, 5057, 1, 0, 0, 0, 5057, 5059, 1, 0, 0, 0, 5058, 4851, 1, 0, 0, 0, 5058, 4862, 1, 0, 0, 0, 5058, 4869, 1, 0, 0, 0, 5058, 4876, 1, 0, 0, 0, 5058, 4883, 1, 0, 0, 0, 5058, 4892, 1, 0, 0, 0, 5058, 4899, 1, 0, 0, 0, 5058, 4906, 1, 0, 0, 0, 5058, 4916, 1, 0, 0, 0, 5058, 4929, 1, 0, 0, 0, 5058, 4942, 1, 0, 0, 0, 5058, 4973, 1, 0, 0, 0, 5058, 4989, 1, 0, 0, 0, 5058, 5005, 1, 0, 0, 0, 5058, 5025, 1, 0, 0, 0, 5058, 5032, 1, 0, 0, 0, 5058, 5038, 1, 0, 0, 0, 5058, 5047, 1, 0, 0, 0, 5059, 435, 1, 0, 0, 0, 5060, 5077, 5, 138, 0, 0, 5061, 5062, 5, 211, 0, 0, 5062, 5078, 3, 384, 192, 0, 5063, 5064, 5, 296, 0, 0, 5064, 5078, 3, 380, 190, 0, 5065, 5066, 5, 442, 0, 0, 5066, 5078, 3, 376, 188, 0, 5067, 5068, 5, 357, 0, 0, 5068, 5069, 3, 820, 410, 0, 5069, 5070, 5, 80, 0, 0, 5070, 5071, 3, 782, 391, 0, 5071, 5078, 1, 0, 0, 0, 5072, 5073, 5, 259, 0, 0, 5073, 5074, 5, 376, 0, 0, 5074, 5078, 3, 780, 390, 0, 5075, 5076, 5, 226, 0, 0, 5076, 5078, 3, 782, 391, 0, 5077, 5061, 1, 0, 0, 0, 5077, 5063, 1, 0, 0, 0, 5077, 5065, 1, 0, 0, 0, 5077, 5067, 1, 0, 0, 0, 5077, 5072, 1, 0, 0, 0, 5077, 5075, 1, 0, 0, 0, 5078, 5080, 1, 0, 0, 0, 5079, 5081, 5, 269, 0, 0, 5080, 5079, 1, 0, 0, 0, 5080, 5081, 1, 0, 0, 0, 5081, 5082, 1, 0, 0, 0, 5082, 5083, 5, 462, 0, 0, 5083, 5084, 5, 80, 0, 0, 5084, 5085, 5, 204, 0, 0, 5085, 5086, 3, 820, 410, 0, 5086, 437, 1, 0, 0, 0, 5087, 5126, 5, 138, 0, 0, 5088, 5089, 5, 136, 0, 0, 5089, 5127, 3, 396, 198, 0, 5090, 5091, 5, 204, 0, 0, 5091, 5127, 3, 820, 410, 0, 5092, 5093, 5, 211, 0, 0, 5093, 5127, 3, 384, 192, 0, 5094, 5095, 5, 278, 0, 0, 5095, 5127, 3, 418, 209, 0, 5096, 5097, 5, 278, 0, 0, 5097, 5098, 7, 32, 0, 0, 5098, 5099, 3, 318, 159, 0, 5099, 5100, 3, 172, 86, 0, 5100, 5127, 1, 0, 0, 0, 5101, 5102, 5, 296, 0, 0, 5102, 5127, 3, 380, 190, 0, 5103, 5104, 5, 442, 0, 0, 5104, 5127, 3, 376, 188, 0, 5105, 5107, 5, 328, 0, 0, 5106, 5108, 3, 424, 212, 0, 5107, 5106, 1, 0, 0, 0, 5107, 5108, 1, 0, 0, 0, 5108, 5109, 1, 0, 0, 0, 5109, 5127, 3, 782, 391, 0, 5110, 5112, 5, 259, 0, 0, 5111, 5110, 1, 0, 0, 0, 5111, 5112, 1, 0, 0, 0, 5112, 5113, 1, 0, 0, 0, 5113, 5115, 5, 376, 0, 0, 5114, 5116, 3, 424, 212, 0, 5115, 5114, 1, 0, 0, 0, 5115, 5116, 1, 0, 0, 0, 5116, 5117, 1, 0, 0, 0, 5117, 5127, 3, 780, 390, 0, 5118, 5120, 5, 63, 0, 0, 5119, 5118, 1, 0, 0, 0, 5119, 5120, 1, 0, 0, 0, 5120, 5121, 1, 0, 0, 0, 5121, 5123, 5, 92, 0, 0, 5122, 5124, 3, 424, 212, 0, 5123, 5122, 1, 0, 0, 0, 5123, 5124, 1, 0, 0, 0, 5124, 5125, 1, 0, 0, 0, 5125, 5127, 3, 626, 313, 0, 5126, 5088, 1, 0, 0, 0, 5126, 5090, 1, 0, 0, 0, 5126, 5092, 1, 0, 0, 0, 5126, 5094, 1, 0, 0, 0, 5126, 5096, 1, 0, 0, 0, 5126, 5101, 1, 0, 0, 0, 5126, 5103, 1, 0, 0, 0, 5126, 5105, 1, 0, 0, 0, 5126, 5111, 1, 0, 0, 0, 5126, 5119, 1, 0, 0, 0, 5127, 5128, 1, 0, 0, 0, 5128, 5129, 5, 333, 0, 0, 5129, 5130, 5, 323, 0, 0, 5130, 5131, 3, 792, 396, 0, 5131, 5149, 1, 0, 0, 0, 5132, 5141, 5, 138, 0, 0, 5133, 5134, 5, 355, 0, 0, 5134, 5135, 5, 325, 0, 0, 5135, 5142, 7, 42, 0, 0, 5136, 5142, 5, 108, 0, 0, 5137, 5142, 5, 168, 0, 0, 5138, 5142, 5, 189, 0, 0, 5139, 5142, 5, 342, 0, 0, 5140, 5142, 5, 360, 0, 0, 5141, 5133, 1, 0, 0, 0, 5141, 5136, 1, 0, 0, 0, 5141, 5137, 1, 0, 0, 0, 5141, 5138, 1, 0, 0, 0, 5141, 5139, 1, 0, 0, 0, 5141, 5140, 1, 0, 0, 0, 5142, 5143, 1, 0, 0, 0, 5143, 5144, 3, 318, 159, 0, 5144, 5145, 5, 333, 0, 0, 5145, 5146, 5, 323, 0, 0, 5146, 5147, 3, 792, 396, 0, 5147, 5149, 1, 0, 0, 0, 5148, 5087, 1, 0, 0, 0, 5148, 5132, 1, 0, 0, 0, 5149, 439, 1, 0, 0, 0, 5150, 5151, 5, 138, 0, 0, 5151, 5152, 5, 278, 0, 0, 5152, 5153, 3, 418, 209, 0, 5153, 5154, 5, 333, 0, 0, 5154, 5155, 3, 442, 221, 0, 5155, 441, 1, 0, 0, 0, 5156, 5157, 5, 2, 0, 0, 5157, 5162, 3, 444, 222, 0, 5158, 5159, 5, 6, 0, 0, 5159, 5161, 3, 444, 222, 0, 5160, 5158, 1, 0, 0, 0, 5161, 5164, 1, 0, 0, 0, 5162, 5160, 1, 0, 0, 0, 5162, 5163, 1, 0, 0, 0, 5163, 5165, 1, 0, 0, 0, 5164, 5162, 1, 0, 0, 0, 5165, 5166, 5, 3, 0, 0, 5166, 443, 1, 0, 0, 0, 5167, 5168, 3, 826, 413, 0, 5168, 5175, 5, 10, 0, 0, 5169, 5176, 5, 407, 0, 0, 5170, 5176, 3, 390, 195, 0, 5171, 5176, 3, 836, 418, 0, 5172, 5176, 3, 728, 364, 0, 5173, 5176, 3, 204, 102, 0, 5174, 5176, 3, 810, 405, 0, 5175, 5169, 1, 0, 0, 0, 5175, 5170, 1, 0, 0, 0, 5175, 5171, 1, 0, 0, 0, 5175, 5172, 1, 0, 0, 0, 5175, 5173, 1, 0, 0, 0, 5175, 5174, 1, 0, 0, 0, 5176, 445, 1, 0, 0, 0, 5177, 5178, 5, 138, 0, 0, 5178, 5179, 5, 360, 0, 0, 5179, 5180, 3, 318, 159, 0, 5180, 5181, 5, 333, 0, 0, 5181, 5182, 3, 442, 221, 0, 5182, 447, 1, 0, 0, 0, 5183, 5184, 5, 138, 0, 0, 5184, 5185, 5, 278, 0, 0, 5185, 5186, 7, 32, 0, 0, 5186, 5187, 3, 318, 159, 0, 5187, 5188, 3, 172, 86, 0, 5188, 5189, 5, 282, 0, 0, 5189, 5190, 5, 94, 0, 0, 5190, 5191, 3, 816, 408, 0, 5191, 5258, 1, 0, 0, 0, 5192, 5219, 5, 138, 0, 0, 5193, 5194, 5, 136, 0, 0, 5194, 5220, 3, 396, 198, 0, 5195, 5196, 5, 175, 0, 0, 5196, 5220, 3, 790, 395, 0, 5197, 5198, 5, 211, 0, 0, 5198, 5220, 3, 384, 192, 0, 5199, 5201, 5, 295, 0, 0, 5200, 5199, 1, 0, 0, 0, 5200, 5201, 1, 0, 0, 0, 5201, 5202, 1, 0, 0, 0, 5202, 5203, 5, 247, 0, 0, 5203, 5220, 3, 820, 410, 0, 5204, 5205, 5, 248, 0, 0, 5205, 5206, 5, 274, 0, 0, 5206, 5220, 3, 204, 102, 0, 5207, 5208, 5, 248, 0, 0, 5208, 5209, 5, 274, 0, 0, 5209, 5220, 3, 204, 102, 0, 5210, 5211, 5, 278, 0, 0, 5211, 5220, 3, 418, 209, 0, 5212, 5213, 5, 296, 0, 0, 5213, 5220, 3, 380, 190, 0, 5214, 5215, 5, 442, 0, 0, 5215, 5220, 3, 376, 188, 0, 5216, 5217, 5, 323, 0, 0, 5217, 5220, 3, 792, 396, 0, 5218, 5220, 3, 178, 89, 0, 5219, 5193, 1, 0, 0, 0, 5219, 5195, 1, 0, 0, 0, 5219, 5197, 1, 0, 0, 0, 5219, 5200, 1, 0, 0, 0, 5219, 5204, 1, 0, 0, 0, 5219, 5207, 1, 0, 0, 0, 5219, 5210, 1, 0, 0, 0, 5219, 5212, 1, 0, 0, 0, 5219, 5214, 1, 0, 0, 0, 5219, 5216, 1, 0, 0, 0, 5219, 5218, 1, 0, 0, 0, 5220, 5221, 1, 0, 0, 0, 5221, 5222, 5, 282, 0, 0, 5222, 5223, 5, 94, 0, 0, 5223, 5224, 3, 816, 408, 0, 5224, 5258, 1, 0, 0, 0, 5225, 5234, 5, 138, 0, 0, 5226, 5227, 5, 355, 0, 0, 5227, 5228, 5, 325, 0, 0, 5228, 5235, 7, 64, 0, 0, 5229, 5235, 5, 108, 0, 0, 5230, 5235, 5, 168, 0, 0, 5231, 5235, 5, 189, 0, 0, 5232, 5235, 5, 360, 0, 0, 5233, 5235, 5, 342, 0, 0, 5234, 5226, 1, 0, 0, 0, 5234, 5229, 1, 0, 0, 0, 5234, 5230, 1, 0, 0, 0, 5234, 5231, 1, 0, 0, 0, 5234, 5232, 1, 0, 0, 0, 5234, 5233, 1, 0, 0, 0, 5235, 5236, 1, 0, 0, 0, 5236, 5237, 3, 318, 159, 0, 5237, 5238, 5, 282, 0, 0, 5238, 5239, 5, 94, 0, 0, 5239, 5240, 3, 816, 408, 0, 5240, 5258, 1, 0, 0, 0, 5241, 5250, 5, 138, 0, 0, 5242, 5251, 5, 331, 0, 0, 5243, 5244, 5, 63, 0, 0, 5244, 5245, 5, 174, 0, 0, 5245, 5251, 5, 381, 0, 0, 5246, 5247, 5, 198, 0, 0, 5247, 5251, 5, 357, 0, 0, 5248, 5251, 5, 452, 0, 0, 5249, 5251, 5, 451, 0, 0, 5250, 5242, 1, 0, 0, 0, 5250, 5243, 1, 0, 0, 0, 5250, 5246, 1, 0, 0, 0, 5250, 5248, 1, 0, 0, 0, 5250, 5249, 1, 0, 0, 0, 5251, 5252, 1, 0, 0, 0, 5252, 5253, 3, 820, 410, 0, 5253, 5254, 5, 282, 0, 0, 5254, 5255, 5, 94, 0, 0, 5255, 5256, 3, 816, 408, 0, 5256, 5258, 1, 0, 0, 0, 5257, 5183, 1, 0, 0, 0, 5257, 5192, 1, 0, 0, 0, 5257, 5225, 1, 0, 0, 0, 5257, 5241, 1, 0, 0, 0, 5258, 449, 1, 0, 0, 0, 5259, 5260, 5, 46, 0, 0, 5260, 5261, 5, 452, 0, 0, 5261, 5268, 3, 820, 410, 0, 5262, 5263, 5, 62, 0, 0, 5263, 5264, 5, 92, 0, 0, 5264, 5269, 3, 630, 315, 0, 5265, 5266, 5, 62, 0, 0, 5266, 5267, 5, 30, 0, 0, 5267, 5269, 5, 350, 0, 0, 5268, 5262, 1, 0, 0, 0, 5268, 5265, 1, 0, 0, 0, 5268, 5269, 1, 0, 0, 0, 5269, 5271, 1, 0, 0, 0, 5270, 5272, 3, 402, 201, 0, 5271, 5270, 1, 0, 0, 0, 5271, 5272, 1, 0, 0, 0, 5272, 451, 1, 0, 0, 0, 5273, 5274, 5, 138, 0, 0, 5274, 5275, 5, 452, 0, 0, 5275, 5293, 3, 820, 410, 0, 5276, 5277, 5, 282, 0, 0, 5277, 5278, 5, 94, 0, 0, 5278, 5294, 3, 816, 408, 0, 5279, 5280, 5, 333, 0, 0, 5280, 5294, 3, 286, 143, 0, 5281, 5282, 5, 309, 0, 0, 5282, 5283, 5, 94, 0, 0, 5283, 5294, 3, 820, 410, 0, 5284, 5285, 7, 35, 0, 0, 5285, 5290, 3, 628, 314, 0, 5286, 5287, 5, 6, 0, 0, 5287, 5289, 3, 628, 314, 0, 5288, 5286, 1, 0, 0, 0, 5289, 5292, 1, 0, 0, 0, 5290, 5288, 1, 0, 0, 0, 5290, 5291, 1, 0, 0, 0, 5291, 5294, 1, 0, 0, 0, 5292, 5290, 1, 0, 0, 0, 5293, 5276, 1, 0, 0, 0, 5293, 5279, 1, 0, 0, 0, 5293, 5281, 1, 0, 0, 0, 5293, 5284, 1, 0, 0, 0, 5294, 453, 1, 0, 0, 0, 5295, 5296, 5, 46, 0, 0, 5296, 5297, 5, 451, 0, 0, 5297, 5298, 3, 820, 410, 0, 5298, 5299, 5, 164, 0, 0, 5299, 5300, 3, 810, 405, 0, 5300, 5301, 5, 452, 0, 0, 5301, 5306, 3, 826, 413, 0, 5302, 5303, 5, 6, 0, 0, 5303, 5305, 3, 826, 413, 0, 5304, 5302, 1, 0, 0, 0, 5305, 5308, 1, 0, 0, 0, 5306, 5304, 1, 0, 0, 0, 5306, 5307, 1, 0, 0, 0, 5307, 5310, 1, 0, 0, 0, 5308, 5306, 1, 0, 0, 0, 5309, 5311, 3, 402, 201, 0, 5310, 5309, 1, 0, 0, 0, 5310, 5311, 1, 0, 0, 0, 5311, 455, 1, 0, 0, 0, 5312, 5313, 5, 138, 0, 0, 5313, 5314, 5, 451, 0, 0, 5314, 5315, 3, 820, 410, 0, 5315, 5316, 5, 333, 0, 0, 5316, 5317, 3, 286, 143, 0, 5317, 5369, 1, 0, 0, 0, 5318, 5319, 5, 138, 0, 0, 5319, 5320, 5, 451, 0, 0, 5320, 5321, 3, 820, 410, 0, 5321, 5322, 5, 164, 0, 0, 5322, 5323, 3, 810, 405, 0, 5323, 5369, 1, 0, 0, 0, 5324, 5325, 5, 138, 0, 0, 5325, 5326, 5, 451, 0, 0, 5326, 5327, 3, 820, 410, 0, 5327, 5328, 5, 305, 0, 0, 5328, 5330, 5, 452, 0, 0, 5329, 5331, 3, 402, 201, 0, 5330, 5329, 1, 0, 0, 0, 5330, 5331, 1, 0, 0, 0, 5331, 5369, 1, 0, 0, 0, 5332, 5333, 5, 138, 0, 0, 5333, 5334, 5, 451, 0, 0, 5334, 5335, 3, 820, 410, 0, 5335, 5336, 7, 35, 0, 0, 5336, 5337, 5, 452, 0, 0, 5337, 5342, 3, 826, 413, 0, 5338, 5339, 5, 6, 0, 0, 5339, 5341, 3, 826, 413, 0, 5340, 5338, 1, 0, 0, 0, 5341, 5344, 1, 0, 0, 0, 5342, 5340, 1, 0, 0, 0, 5342, 5343, 1, 0, 0, 0, 5343, 5346, 1, 0, 0, 0, 5344, 5342, 1, 0, 0, 0, 5345, 5347, 3, 402, 201, 0, 5346, 5345, 1, 0, 0, 0, 5346, 5347, 1, 0, 0, 0, 5347, 5369, 1, 0, 0, 0, 5348, 5349, 5, 138, 0, 0, 5349, 5350, 5, 451, 0, 0, 5350, 5351, 3, 820, 410, 0, 5351, 5352, 7, 65, 0, 0, 5352, 5369, 1, 0, 0, 0, 5353, 5354, 5, 138, 0, 0, 5354, 5355, 5, 451, 0, 0, 5355, 5356, 3, 820, 410, 0, 5356, 5357, 5, 465, 0, 0, 5357, 5358, 5, 2, 0, 0, 5358, 5359, 3, 292, 146, 0, 5359, 5360, 5, 3, 0, 0, 5360, 5369, 1, 0, 0, 0, 5361, 5362, 5, 138, 0, 0, 5362, 5363, 5, 451, 0, 0, 5363, 5364, 3, 820, 410, 0, 5364, 5365, 5, 282, 0, 0, 5365, 5366, 5, 94, 0, 0, 5366, 5367, 3, 816, 408, 0, 5367, 5369, 1, 0, 0, 0, 5368, 5312, 1, 0, 0, 0, 5368, 5318, 1, 0, 0, 0, 5368, 5324, 1, 0, 0, 0, 5368, 5332, 1, 0, 0, 0, 5368, 5348, 1, 0, 0, 0, 5368, 5353, 1, 0, 0, 0, 5368, 5361, 1, 0, 0, 0, 5369, 457, 1, 0, 0, 0, 5370, 5372, 5, 46, 0, 0, 5371, 5373, 3, 368, 184, 0, 5372, 5371, 1, 0, 0, 0, 5372, 5373, 1, 0, 0, 0, 5373, 5374, 1, 0, 0, 0, 5374, 5375, 5, 321, 0, 0, 5375, 5376, 3, 820, 410, 0, 5376, 5377, 5, 36, 0, 0, 5377, 5378, 5, 80, 0, 0, 5378, 5379, 7, 66, 0, 0, 5379, 5380, 5, 94, 0, 0, 5380, 5382, 3, 782, 391, 0, 5381, 5383, 3, 640, 320, 0, 5382, 5381, 1, 0, 0, 0, 5382, 5383, 1, 0, 0, 0, 5383, 5384, 1, 0, 0, 0, 5384, 5386, 5, 57, 0, 0, 5385, 5387, 7, 67, 0, 0, 5386, 5385, 1, 0, 0, 0, 5386, 5387, 1, 0, 0, 0, 5387, 5404, 1, 0, 0, 0, 5388, 5405, 5, 270, 0, 0, 5389, 5405, 3, 460, 230, 0, 5390, 5392, 5, 2, 0, 0, 5391, 5393, 3, 460, 230, 0, 5392, 5391, 1, 0, 0, 0, 5392, 5393, 1, 0, 0, 0, 5393, 5400, 1, 0, 0, 0, 5394, 5396, 5, 7, 0, 0, 5395, 5397, 3, 460, 230, 0, 5396, 5395, 1, 0, 0, 0, 5396, 5397, 1, 0, 0, 0, 5397, 5399, 1, 0, 0, 0, 5398, 5394, 1, 0, 0, 0, 5399, 5402, 1, 0, 0, 0, 5400, 5398, 1, 0, 0, 0, 5400, 5401, 1, 0, 0, 0, 5401, 5403, 1, 0, 0, 0, 5402, 5400, 1, 0, 0, 0, 5403, 5405, 5, 3, 0, 0, 5404, 5388, 1, 0, 0, 0, 5404, 5389, 1, 0, 0, 0, 5404, 5390, 1, 0, 0, 0, 5405, 459, 1, 0, 0, 0, 5406, 5412, 3, 562, 281, 0, 5407, 5412, 3, 540, 270, 0, 5408, 5412, 3, 554, 277, 0, 5409, 5412, 3, 550, 275, 0, 5410, 5412, 3, 462, 231, 0, 5411, 5406, 1, 0, 0, 0, 5411, 5407, 1, 0, 0, 0, 5411, 5408, 1, 0, 0, 0, 5411, 5409, 1, 0, 0, 0, 5411, 5410, 1, 0, 0, 0, 5412, 461, 1, 0, 0, 0, 5413, 5414, 5, 271, 0, 0, 5414, 5416, 3, 820, 410, 0, 5415, 5417, 3, 464, 232, 0, 5416, 5415, 1, 0, 0, 0, 5416, 5417, 1, 0, 0, 0, 5417, 463, 1, 0, 0, 0, 5418, 5419, 5, 6, 0, 0, 5419, 5420, 3, 810, 405, 0, 5420, 465, 1, 0, 0, 0, 5421, 5422, 5, 252, 0, 0, 5422, 5423, 3, 820, 410, 0, 5423, 467, 1, 0, 0, 0, 5424, 5427, 5, 366, 0, 0, 5425, 5428, 3, 820, 410, 0, 5426, 5428, 5, 9, 0, 0, 5427, 5425, 1, 0, 0, 0, 5427, 5426, 1, 0, 0, 0, 5428, 469, 1, 0, 0, 0, 5429, 5431, 5, 146, 0, 0, 5430, 5432, 3, 472, 236, 0, 5431, 5430, 1, 0, 0, 0, 5431, 5432, 1, 0, 0, 0, 5432, 5434, 1, 0, 0, 0, 5433, 5435, 3, 476, 238, 0, 5434, 5433, 1, 0, 0, 0, 5434, 5435, 1, 0, 0, 0, 5435, 5475, 1, 0, 0, 0, 5436, 5437, 5, 340, 0, 0, 5437, 5439, 5, 356, 0, 0, 5438, 5440, 3, 476, 238, 0, 5439, 5438, 1, 0, 0, 0, 5439, 5440, 1, 0, 0, 0, 5440, 5475, 1, 0, 0, 0, 5441, 5442, 5, 322, 0, 0, 5442, 5475, 3, 820, 410, 0, 5443, 5445, 5, 308, 0, 0, 5444, 5446, 5, 322, 0, 0, 5445, 5444, 1, 0, 0, 0, 5445, 5446, 1, 0, 0, 0, 5446, 5447, 1, 0, 0, 0, 5447, 5475, 3, 820, 410, 0, 5448, 5449, 5, 290, 0, 0, 5449, 5450, 5, 356, 0, 0, 5450, 5475, 3, 810, 405, 0, 5451, 5452, 7, 68, 0, 0, 5452, 5453, 5, 291, 0, 0, 5453, 5475, 3, 810, 405, 0, 5454, 5456, 7, 69, 0, 0, 5455, 5457, 3, 472, 236, 0, 5456, 5455, 1, 0, 0, 0, 5456, 5457, 1, 0, 0, 0, 5457, 5463, 1, 0, 0, 0, 5458, 5460, 5, 33, 0, 0, 5459, 5461, 5, 269, 0, 0, 5460, 5459, 1, 0, 0, 0, 5460, 5461, 1, 0, 0, 0, 5461, 5462, 1, 0, 0, 0, 5462, 5464, 5, 153, 0, 0, 5463, 5458, 1, 0, 0, 0, 5463, 5464, 1, 0, 0, 0, 5464, 5475, 1, 0, 0, 0, 5465, 5467, 5, 319, 0, 0, 5466, 5468, 3, 472, 236, 0, 5467, 5466, 1, 0, 0, 0, 5467, 5468, 1, 0, 0, 0, 5468, 5469, 1, 0, 0, 0, 5469, 5471, 5, 94, 0, 0, 5470, 5472, 5, 322, 0, 0, 5471, 5470, 1, 0, 0, 0, 5471, 5472, 1, 0, 0, 0, 5472, 5473, 1, 0, 0, 0, 5473, 5475, 3, 820, 410, 0, 5474, 5429, 1, 0, 0, 0, 5474, 5436, 1, 0, 0, 0, 5474, 5441, 1, 0, 0, 0, 5474, 5443, 1, 0, 0, 0, 5474, 5448, 1, 0, 0, 0, 5474, 5451, 1, 0, 0, 0, 5474, 5454, 1, 0, 0, 0, 5474, 5465, 1, 0, 0, 0, 5475, 471, 1, 0, 0, 0, 5476, 5477, 7, 70, 0, 0, 5477, 473, 1, 0, 0, 0, 5478, 5479, 5, 244, 0, 0, 5479, 5480, 5, 251, 0, 0, 5480, 5488, 3, 50, 25, 0, 5481, 5482, 5, 300, 0, 0, 5482, 5488, 7, 71, 0, 0, 5483, 5485, 5, 77, 0, 0, 5484, 5483, 1, 0, 0, 0, 5484, 5485, 1, 0, 0, 0, 5485, 5486, 1, 0, 0, 0, 5486, 5488, 5, 54, 0, 0, 5487, 5478, 1, 0, 0, 0, 5487, 5481, 1, 0, 0, 0, 5487, 5484, 1, 0, 0, 0, 5488, 475, 1, 0, 0, 0, 5489, 5496, 3, 474, 237, 0, 5490, 5492, 5, 6, 0, 0, 5491, 5490, 1, 0, 0, 0, 5491, 5492, 1, 0, 0, 0, 5492, 5493, 1, 0, 0, 0, 5493, 5495, 3, 474, 237, 0, 5494, 5491, 1, 0, 0, 0, 5495, 5498, 1, 0, 0, 0, 5496, 5494, 1, 0, 0, 0, 5496, 5497, 1, 0, 0, 0, 5497, 477, 1, 0, 0, 0, 5498, 5496, 1, 0, 0, 0, 5499, 5502, 5, 46, 0, 0, 5500, 5501, 5, 82, 0, 0, 5501, 5503, 5, 311, 0, 0, 5502, 5500, 1, 0, 0, 0, 5502, 5503, 1, 0, 0, 0, 5503, 5505, 1, 0, 0, 0, 5504, 5506, 3, 124, 62, 0, 5505, 5504, 1, 0, 0, 0, 5505, 5506, 1, 0, 0, 0, 5506, 5522, 1, 0, 0, 0, 5507, 5508, 5, 376, 0, 0, 5508, 5510, 3, 778, 389, 0, 5509, 5511, 3, 148, 74, 0, 5510, 5509, 1, 0, 0, 0, 5510, 5511, 1, 0, 0, 0, 5511, 5513, 1, 0, 0, 0, 5512, 5514, 3, 102, 51, 0, 5513, 5512, 1, 0, 0, 0, 5513, 5514, 1, 0, 0, 0, 5514, 5523, 1, 0, 0, 0, 5515, 5516, 5, 303, 0, 0, 5516, 5517, 5, 376, 0, 0, 5517, 5518, 3, 778, 389, 0, 5518, 5520, 3, 146, 73, 0, 5519, 5521, 3, 102, 51, 0, 5520, 5519, 1, 0, 0, 0, 5520, 5521, 1, 0, 0, 0, 5521, 5523, 1, 0, 0, 0, 5522, 5507, 1, 0, 0, 0, 5522, 5515, 1, 0, 0, 0, 5523, 5524, 1, 0, 0, 0, 5524, 5525, 5, 36, 0, 0, 5525, 5532, 3, 562, 281, 0, 5526, 5528, 5, 105, 0, 0, 5527, 5529, 7, 72, 0, 0, 5528, 5527, 1, 0, 0, 0, 5528, 5529, 1, 0, 0, 0, 5529, 5530, 1, 0, 0, 0, 5530, 5531, 5, 42, 0, 0, 5531, 5533, 5, 279, 0, 0, 5532, 5526, 1, 0, 0, 0, 5532, 5533, 1, 0, 0, 0, 5533, 479, 1, 0, 0, 0, 5534, 5535, 5, 253, 0, 0, 5535, 5536, 3, 810, 405, 0, 5536, 481, 1, 0, 0, 0, 5537, 5538, 5, 46, 0, 0, 5538, 5539, 5, 175, 0, 0, 5539, 5541, 3, 788, 394, 0, 5540, 5542, 5, 105, 0, 0, 5541, 5540, 1, 0, 0, 0, 5541, 5542, 1, 0, 0, 0, 5542, 5548, 1, 0, 0, 0, 5543, 5545, 3, 484, 242, 0, 5544, 5543, 1, 0, 0, 0, 5545, 5546, 1, 0, 0, 0, 5546, 5544, 1, 0, 0, 0, 5546, 5547, 1, 0, 0, 0, 5547, 5549, 1, 0, 0, 0, 5548, 5544, 1, 0, 0, 0, 5548, 5549, 1, 0, 0, 0, 5549, 483, 1, 0, 0, 0, 5550, 5551, 5, 164, 0, 0, 5551, 5559, 5, 74, 0, 0, 5552, 5559, 5, 194, 0, 0, 5553, 5559, 5, 255, 0, 0, 5554, 5559, 5, 282, 0, 0, 5555, 5559, 5, 351, 0, 0, 5556, 5559, 5, 353, 0, 0, 5557, 5559, 3, 828, 414, 0, 5558, 5550, 1, 0, 0, 0, 5558, 5552, 1, 0, 0, 0, 5558, 5553, 1, 0, 0, 0, 5558, 5554, 1, 0, 0, 0, 5558, 5555, 1, 0, 0, 0, 5558, 5556, 1, 0, 0, 0, 5558, 5557, 1, 0, 0, 0, 5559, 5561, 1, 0, 0, 0, 5560, 5562, 5, 10, 0, 0, 5561, 5560, 1, 0, 0, 0, 5561, 5562, 1, 0, 0, 0, 5562, 5566, 1, 0, 0, 0, 5563, 5567, 3, 814, 407, 0, 5564, 5567, 3, 54, 27, 0, 5565, 5567, 5, 53, 0, 0, 5566, 5563, 1, 0, 0, 0, 5566, 5564, 1, 0, 0, 0, 5566, 5565, 1, 0, 0, 0, 5567, 485, 1, 0, 0, 0, 5568, 5569, 5, 138, 0, 0, 5569, 5570, 5, 175, 0, 0, 5570, 5586, 3, 790, 395, 0, 5571, 5572, 5, 333, 0, 0, 5572, 5573, 5, 351, 0, 0, 5573, 5575, 3, 770, 385, 0, 5574, 5571, 1, 0, 0, 0, 5574, 5575, 1, 0, 0, 0, 5575, 5587, 1, 0, 0, 0, 5576, 5578, 5, 105, 0, 0, 5577, 5576, 1, 0, 0, 0, 5577, 5578, 1, 0, 0, 0, 5578, 5580, 1, 0, 0, 0, 5579, 5581, 3, 484, 242, 0, 5580, 5579, 1, 0, 0, 0, 5581, 5582, 1, 0, 0, 0, 5582, 5580, 1, 0, 0, 0, 5582, 5583, 1, 0, 0, 0, 5583, 5585, 1, 0, 0, 0, 5584, 5577, 1, 0, 0, 0, 5584, 5585, 1, 0, 0, 0, 5585, 5587, 1, 0, 0, 0, 5586, 5574, 1, 0, 0, 0, 5586, 5584, 1, 0, 0, 0, 5587, 487, 1, 0, 0, 0, 5588, 5589, 5, 138, 0, 0, 5589, 5590, 5, 175, 0, 0, 5590, 5592, 3, 790, 395, 0, 5591, 5593, 3, 64, 32, 0, 5592, 5591, 1, 0, 0, 0, 5592, 5593, 1, 0, 0, 0, 5593, 489, 1, 0, 0, 0, 5594, 5595, 5, 138, 0, 0, 5595, 5596, 5, 108, 0, 0, 5596, 5597, 3, 318, 159, 0, 5597, 5598, 5, 305, 0, 0, 5598, 5599, 5, 375, 0, 0, 5599, 491, 1, 0, 0, 0, 5600, 5601, 5, 138, 0, 0, 5601, 5602, 5, 349, 0, 0, 5602, 5603, 7, 16, 0, 0, 5603, 5604, 3, 40, 20, 0, 5604, 493, 1, 0, 0, 0, 5605, 5606, 5, 46, 0, 0, 5606, 5607, 5, 189, 0, 0, 5607, 5609, 3, 318, 159, 0, 5608, 5610, 5, 36, 0, 0, 5609, 5608, 1, 0, 0, 0, 5609, 5610, 1, 0, 0, 0, 5610, 5611, 1, 0, 0, 0, 5611, 5615, 3, 654, 327, 0, 5612, 5614, 3, 136, 68, 0, 5613, 5612, 1, 0, 0, 0, 5614, 5617, 1, 0, 0, 0, 5615, 5613, 1, 0, 0, 0, 5615, 5616, 1, 0, 0, 0, 5616, 495, 1, 0, 0, 0, 5617, 5615, 1, 0, 0, 0, 5618, 5619, 5, 138, 0, 0, 5619, 5620, 5, 189, 0, 0, 5620, 5643, 3, 318, 159, 0, 5621, 5644, 3, 94, 47, 0, 5622, 5623, 7, 15, 0, 0, 5623, 5624, 5, 77, 0, 0, 5624, 5644, 5, 78, 0, 0, 5625, 5628, 5, 133, 0, 0, 5626, 5627, 5, 45, 0, 0, 5627, 5629, 3, 820, 410, 0, 5628, 5626, 1, 0, 0, 0, 5628, 5629, 1, 0, 0, 0, 5629, 5630, 1, 0, 0, 0, 5630, 5644, 3, 144, 72, 0, 5631, 5632, 5, 191, 0, 0, 5632, 5634, 5, 45, 0, 0, 5633, 5635, 3, 424, 212, 0, 5634, 5633, 1, 0, 0, 0, 5634, 5635, 1, 0, 0, 0, 5635, 5636, 1, 0, 0, 0, 5636, 5638, 3, 820, 410, 0, 5637, 5639, 3, 96, 48, 0, 5638, 5637, 1, 0, 0, 0, 5638, 5639, 1, 0, 0, 0, 5639, 5644, 1, 0, 0, 0, 5640, 5641, 5, 372, 0, 0, 5641, 5642, 5, 45, 0, 0, 5642, 5644, 3, 820, 410, 0, 5643, 5621, 1, 0, 0, 0, 5643, 5622, 1, 0, 0, 0, 5643, 5625, 1, 0, 0, 0, 5643, 5631, 1, 0, 0, 0, 5643, 5640, 1, 0, 0, 0, 5644, 497, 1, 0, 0, 0, 5645, 5646, 5, 138, 0, 0, 5646, 5647, 5, 355, 0, 0, 5647, 5648, 5, 325, 0, 0, 5648, 5649, 5, 185, 0, 0, 5649, 5650, 3, 318, 159, 0, 5650, 5651, 3, 286, 143, 0, 5651, 499, 1, 0, 0, 0, 5652, 5653, 5, 138, 0, 0, 5653, 5654, 5, 355, 0, 0, 5654, 5655, 5, 325, 0, 0, 5655, 5656, 5, 163, 0, 0, 5656, 5657, 3, 318, 159, 0, 5657, 5658, 7, 73, 0, 0, 5658, 5659, 5, 257, 0, 0, 5659, 5660, 5, 62, 0, 0, 5660, 5661, 3, 786, 393, 0, 5661, 5662, 5, 105, 0, 0, 5662, 5663, 3, 316, 158, 0, 5663, 5694, 1, 0, 0, 0, 5664, 5665, 5, 138, 0, 0, 5665, 5666, 5, 355, 0, 0, 5666, 5667, 5, 325, 0, 0, 5667, 5668, 5, 163, 0, 0, 5668, 5669, 3, 318, 159, 0, 5669, 5670, 5, 138, 0, 0, 5670, 5673, 5, 257, 0, 0, 5671, 5672, 5, 62, 0, 0, 5672, 5674, 3, 786, 393, 0, 5673, 5671, 1, 0, 0, 0, 5673, 5674, 1, 0, 0, 0, 5674, 5675, 1, 0, 0, 0, 5675, 5676, 5, 311, 0, 0, 5676, 5677, 3, 318, 159, 0, 5677, 5678, 5, 105, 0, 0, 5678, 5679, 3, 318, 159, 0, 5679, 5694, 1, 0, 0, 0, 5680, 5681, 5, 138, 0, 0, 5681, 5682, 5, 355, 0, 0, 5682, 5683, 5, 325, 0, 0, 5683, 5684, 5, 163, 0, 0, 5684, 5685, 3, 318, 159, 0, 5685, 5686, 5, 191, 0, 0, 5686, 5688, 5, 257, 0, 0, 5687, 5689, 3, 424, 212, 0, 5688, 5687, 1, 0, 0, 0, 5688, 5689, 1, 0, 0, 0, 5689, 5690, 1, 0, 0, 0, 5690, 5691, 5, 62, 0, 0, 5691, 5692, 3, 786, 393, 0, 5692, 5694, 1, 0, 0, 0, 5693, 5652, 1, 0, 0, 0, 5693, 5664, 1, 0, 0, 0, 5693, 5680, 1, 0, 0, 0, 5694, 501, 1, 0, 0, 0, 5695, 5697, 5, 46, 0, 0, 5696, 5698, 5, 53, 0, 0, 5697, 5696, 1, 0, 0, 0, 5697, 5698, 1, 0, 0, 0, 5698, 5699, 1, 0, 0, 0, 5699, 5700, 5, 168, 0, 0, 5700, 5701, 3, 318, 159, 0, 5701, 5702, 5, 62, 0, 0, 5702, 5703, 3, 810, 405, 0, 5703, 5704, 5, 94, 0, 0, 5704, 5705, 3, 810, 405, 0, 5705, 5706, 5, 64, 0, 0, 5706, 5707, 3, 318, 159, 0, 5707, 503, 1, 0, 0, 0, 5708, 5710, 5, 158, 0, 0, 5709, 5711, 3, 516, 258, 0, 5710, 5709, 1, 0, 0, 0, 5710, 5711, 1, 0, 0, 0, 5711, 5716, 1, 0, 0, 0, 5712, 5714, 3, 776, 388, 0, 5713, 5715, 3, 172, 86, 0, 5714, 5713, 1, 0, 0, 0, 5714, 5715, 1, 0, 0, 0, 5715, 5717, 1, 0, 0, 0, 5716, 5712, 1, 0, 0, 0, 5716, 5717, 1, 0, 0, 0, 5717, 5734, 1, 0, 0, 0, 5718, 5719, 5, 158, 0, 0, 5719, 5720, 5, 2, 0, 0, 5720, 5725, 3, 516, 258, 0, 5721, 5722, 5, 6, 0, 0, 5722, 5724, 3, 516, 258, 0, 5723, 5721, 1, 0, 0, 0, 5724, 5727, 1, 0, 0, 0, 5725, 5723, 1, 0, 0, 0, 5725, 5726, 1, 0, 0, 0, 5726, 5728, 1, 0, 0, 0, 5727, 5725, 1, 0, 0, 0, 5728, 5729, 5, 3, 0, 0, 5729, 5731, 3, 776, 388, 0, 5730, 5732, 3, 172, 86, 0, 5731, 5730, 1, 0, 0, 0, 5731, 5732, 1, 0, 0, 0, 5732, 5734, 1, 0, 0, 0, 5733, 5708, 1, 0, 0, 0, 5733, 5718, 1, 0, 0, 0, 5734, 505, 1, 0, 0, 0, 5735, 5751, 5, 370, 0, 0, 5736, 5738, 5, 113, 0, 0, 5737, 5736, 1, 0, 0, 0, 5737, 5738, 1, 0, 0, 0, 5738, 5740, 1, 0, 0, 0, 5739, 5741, 5, 112, 0, 0, 5740, 5739, 1, 0, 0, 0, 5740, 5741, 1, 0, 0, 0, 5741, 5743, 1, 0, 0, 0, 5742, 5744, 3, 516, 258, 0, 5743, 5742, 1, 0, 0, 0, 5743, 5744, 1, 0, 0, 0, 5744, 5746, 1, 0, 0, 0, 5745, 5747, 3, 510, 255, 0, 5746, 5745, 1, 0, 0, 0, 5746, 5747, 1, 0, 0, 0, 5747, 5752, 1, 0, 0, 0, 5748, 5750, 3, 526, 263, 0, 5749, 5748, 1, 0, 0, 0, 5749, 5750, 1, 0, 0, 0, 5750, 5752, 1, 0, 0, 0, 5751, 5737, 1, 0, 0, 0, 5751, 5749, 1, 0, 0, 0, 5752, 5754, 1, 0, 0, 0, 5753, 5755, 3, 520, 260, 0, 5754, 5753, 1, 0, 0, 0, 5754, 5755, 1, 0, 0, 0, 5755, 507, 1, 0, 0, 0, 5756, 5771, 3, 510, 255, 0, 5757, 5759, 3, 516, 258, 0, 5758, 5757, 1, 0, 0, 0, 5758, 5759, 1, 0, 0, 0, 5759, 5772, 1, 0, 0, 0, 5760, 5761, 5, 2, 0, 0, 5761, 5766, 3, 514, 257, 0, 5762, 5763, 5, 6, 0, 0, 5763, 5765, 3, 514, 257, 0, 5764, 5762, 1, 0, 0, 0, 5765, 5768, 1, 0, 0, 0, 5766, 5764, 1, 0, 0, 0, 5766, 5767, 1, 0, 0, 0, 5767, 5769, 1, 0, 0, 0, 5768, 5766, 1, 0, 0, 0, 5769, 5770, 5, 3, 0, 0, 5770, 5772, 1, 0, 0, 0, 5771, 5758, 1, 0, 0, 0, 5771, 5760, 1, 0, 0, 0, 5772, 5774, 1, 0, 0, 0, 5773, 5775, 3, 520, 260, 0, 5774, 5773, 1, 0, 0, 0, 5774, 5775, 1, 0, 0, 0, 5775, 509, 1, 0, 0, 0, 5776, 5777, 7, 74, 0, 0, 5777, 511, 1, 0, 0, 0, 5778, 5781, 3, 824, 412, 0, 5779, 5781, 3, 510, 255, 0, 5780, 5778, 1, 0, 0, 0, 5780, 5779, 1, 0, 0, 0, 5781, 5784, 1, 0, 0, 0, 5782, 5785, 3, 54, 27, 0, 5783, 5785, 3, 204, 102, 0, 5784, 5782, 1, 0, 0, 0, 5784, 5783, 1, 0, 0, 0, 5784, 5785, 1, 0, 0, 0, 5785, 513, 1, 0, 0, 0, 5786, 5788, 7, 75, 0, 0, 5787, 5789, 7, 76, 0, 0, 5788, 5787, 1, 0, 0, 0, 5788, 5789, 1, 0, 0, 0, 5789, 5796, 1, 0, 0, 0, 5790, 5793, 5, 548, 0, 0, 5791, 5794, 3, 204, 102, 0, 5792, 5794, 3, 810, 405, 0, 5793, 5791, 1, 0, 0, 0, 5793, 5792, 1, 0, 0, 0, 5794, 5796, 1, 0, 0, 0, 5795, 5786, 1, 0, 0, 0, 5795, 5790, 1, 0, 0, 0, 5796, 515, 1, 0, 0, 0, 5797, 5799, 5, 128, 0, 0, 5798, 5800, 7, 76, 0, 0, 5799, 5798, 1, 0, 0, 0, 5799, 5800, 1, 0, 0, 0, 5800, 517, 1, 0, 0, 0, 5801, 5803, 3, 776, 388, 0, 5802, 5804, 3, 146, 73, 0, 5803, 5802, 1, 0, 0, 0, 5803, 5804, 1, 0, 0, 0, 5804, 519, 1, 0, 0, 0, 5805, 5810, 3, 518, 259, 0, 5806, 5807, 5, 6, 0, 0, 5807, 5809, 3, 518, 259, 0, 5808, 5806, 1, 0, 0, 0, 5809, 5812, 1, 0, 0, 0, 5810, 5808, 1, 0, 0, 0, 5810, 5811, 1, 0, 0, 0, 5811, 521, 1, 0, 0, 0, 5812, 5810, 1, 0, 0, 0, 5813, 5824, 5, 203, 0, 0, 5814, 5825, 3, 526, 263, 0, 5815, 5817, 5, 128, 0, 0, 5816, 5815, 1, 0, 0, 0, 5816, 5817, 1, 0, 0, 0, 5817, 5825, 1, 0, 0, 0, 5818, 5820, 3, 510, 255, 0, 5819, 5821, 3, 516, 258, 0, 5820, 5819, 1, 0, 0, 0, 5820, 5821, 1, 0, 0, 0, 5821, 5823, 1, 0, 0, 0, 5822, 5818, 1, 0, 0, 0, 5822, 5823, 1, 0, 0, 0, 5823, 5825, 1, 0, 0, 0, 5824, 5814, 1, 0, 0, 0, 5824, 5816, 1, 0, 0, 0, 5824, 5822, 1, 0, 0, 0, 5825, 5826, 1, 0, 0, 0, 5826, 5827, 3, 524, 262, 0, 5827, 523, 1, 0, 0, 0, 5828, 5838, 3, 562, 281, 0, 5829, 5838, 3, 540, 270, 0, 5830, 5838, 3, 554, 277, 0, 5831, 5838, 3, 550, 275, 0, 5832, 5838, 3, 560, 280, 0, 5833, 5838, 3, 188, 94, 0, 5834, 5838, 3, 194, 97, 0, 5835, 5838, 3, 196, 98, 0, 5836, 5838, 3, 534, 267, 0, 5837, 5828, 1, 0, 0, 0, 5837, 5829, 1, 0, 0, 0, 5837, 5830, 1, 0, 0, 0, 5837, 5831, 1, 0, 0, 0, 5837, 5832, 1, 0, 0, 0, 5837, 5833, 1, 0, 0, 0, 5837, 5834, 1, 0, 0, 0, 5837, 5835, 1, 0, 0, 0, 5837, 5836, 1, 0, 0, 0, 5838, 525, 1, 0, 0, 0, 5839, 5840, 5, 2, 0, 0, 5840, 5845, 3, 512, 256, 0, 5841, 5842, 5, 6, 0, 0, 5842, 5844, 3, 512, 256, 0, 5843, 5841, 1, 0, 0, 0, 5844, 5847, 1, 0, 0, 0, 5845, 5843, 1, 0, 0, 0, 5845, 5846, 1, 0, 0, 0, 5846, 5848, 1, 0, 0, 0, 5847, 5845, 1, 0, 0, 0, 5848, 5849, 5, 3, 0, 0, 5849, 527, 1, 0, 0, 0, 5850, 5851, 5, 290, 0, 0, 5851, 5853, 3, 820, 410, 0, 5852, 5854, 3, 530, 265, 0, 5853, 5852, 1, 0, 0, 0, 5853, 5854, 1, 0, 0, 0, 5854, 5855, 1, 0, 0, 0, 5855, 5856, 5, 36, 0, 0, 5856, 5857, 3, 532, 266, 0, 5857, 529, 1, 0, 0, 0, 5858, 5859, 5, 2, 0, 0, 5859, 5864, 3, 654, 327, 0, 5860, 5861, 5, 6, 0, 0, 5861, 5863, 3, 654, 327, 0, 5862, 5860, 1, 0, 0, 0, 5863, 5866, 1, 0, 0, 0, 5864, 5862, 1, 0, 0, 0, 5864, 5865, 1, 0, 0, 0, 5865, 5867, 1, 0, 0, 0, 5866, 5864, 1, 0, 0, 0, 5867, 5868, 5, 3, 0, 0, 5868, 531, 1, 0, 0, 0, 5869, 5875, 3, 562, 281, 0, 5870, 5875, 3, 540, 270, 0, 5871, 5875, 3, 554, 277, 0, 5872, 5875, 3, 550, 275, 0, 5873, 5875, 3, 902, 451, 0, 5874, 5869, 1, 0, 0, 0, 5874, 5870, 1, 0, 0, 0, 5874, 5871, 1, 0, 0, 0, 5874, 5872, 1, 0, 0, 0, 5874, 5873, 1, 0, 0, 0, 5875, 533, 1, 0, 0, 0, 5876, 5877, 5, 202, 0, 0, 5877, 5879, 3, 820, 410, 0, 5878, 5880, 3, 536, 268, 0, 5879, 5878, 1, 0, 0, 0, 5879, 5880, 1, 0, 0, 0, 5880, 5900, 1, 0, 0, 0, 5881, 5883, 5, 46, 0, 0, 5882, 5884, 3, 124, 62, 0, 5883, 5882, 1, 0, 0, 0, 5883, 5884, 1, 0, 0, 0, 5884, 5885, 1, 0, 0, 0, 5885, 5887, 5, 92, 0, 0, 5886, 5888, 3, 296, 148, 0, 5887, 5886, 1, 0, 0, 0, 5887, 5888, 1, 0, 0, 0, 5888, 5889, 1, 0, 0, 0, 5889, 5890, 3, 190, 95, 0, 5890, 5891, 5, 36, 0, 0, 5891, 5892, 5, 202, 0, 0, 5892, 5894, 3, 820, 410, 0, 5893, 5895, 3, 536, 268, 0, 5894, 5893, 1, 0, 0, 0, 5894, 5895, 1, 0, 0, 0, 5895, 5897, 1, 0, 0, 0, 5896, 5898, 3, 192, 96, 0, 5897, 5896, 1, 0, 0, 0, 5897, 5898, 1, 0, 0, 0, 5898, 5900, 1, 0, 0, 0, 5899, 5876, 1, 0, 0, 0, 5899, 5881, 1, 0, 0, 0, 5900, 535, 1, 0, 0, 0, 5901, 5902, 5, 2, 0, 0, 5902, 5903, 3, 732, 366, 0, 5903, 5904, 5, 3, 0, 0, 5904, 537, 1, 0, 0, 0, 5905, 5907, 5, 177, 0, 0, 5906, 5908, 5, 290, 0, 0, 5907, 5906, 1, 0, 0, 0, 5907, 5908, 1, 0, 0, 0, 5908, 5911, 1, 0, 0, 0, 5909, 5912, 3, 820, 410, 0, 5910, 5912, 5, 30, 0, 0, 5911, 5909, 1, 0, 0, 0, 5911, 5910, 1, 0, 0, 0, 5912, 539, 1, 0, 0, 0, 5913, 5915, 3, 574, 287, 0, 5914, 5913, 1, 0, 0, 0, 5914, 5915, 1, 0, 0, 0, 5915, 5916, 1, 0, 0, 0, 5916, 5917, 5, 241, 0, 0, 5917, 5918, 5, 71, 0, 0, 5918, 5921, 3, 776, 388, 0, 5919, 5920, 5, 36, 0, 0, 5920, 5922, 3, 820, 410, 0, 5921, 5919, 1, 0, 0, 0, 5921, 5922, 1, 0, 0, 0, 5922, 5923, 1, 0, 0, 0, 5923, 5945, 3, 542, 271, 0, 5924, 5925, 5, 80, 0, 0, 5925, 5933, 5, 464, 0, 0, 5926, 5928, 3, 362, 181, 0, 5927, 5929, 3, 640, 320, 0, 5928, 5927, 1, 0, 0, 0, 5928, 5929, 1, 0, 0, 0, 5929, 5934, 1, 0, 0, 0, 5930, 5931, 5, 80, 0, 0, 5931, 5932, 5, 45, 0, 0, 5932, 5934, 3, 820, 410, 0, 5933, 5926, 1, 0, 0, 0, 5933, 5930, 1, 0, 0, 0, 5933, 5934, 1, 0, 0, 0, 5934, 5935, 1, 0, 0, 0, 5935, 5943, 5, 57, 0, 0, 5936, 5937, 5, 369, 0, 0, 5937, 5938, 5, 333, 0, 0, 5938, 5940, 3, 556, 278, 0, 5939, 5941, 3, 640, 320, 0, 5940, 5939, 1, 0, 0, 0, 5940, 5941, 1, 0, 0, 0, 5941, 5944, 1, 0, 0, 0, 5942, 5944, 5, 270, 0, 0, 5943, 5936, 1, 0, 0, 0, 5943, 5942, 1, 0, 0, 0, 5944, 5946, 1, 0, 0, 0, 5945, 5924, 1, 0, 0, 0, 5945, 5946, 1, 0, 0, 0, 5946, 5948, 1, 0, 0, 0, 5947, 5949, 3, 548, 274, 0, 5948, 5947, 1, 0, 0, 0, 5948, 5949, 1, 0, 0, 0, 5949, 541, 1, 0, 0, 0, 5950, 5951, 5, 2, 0, 0, 5951, 5952, 3, 544, 272, 0, 5952, 5953, 5, 3, 0, 0, 5953, 5955, 1, 0, 0, 0, 5954, 5950, 1, 0, 0, 0, 5954, 5955, 1, 0, 0, 0, 5955, 5959, 1, 0, 0, 0, 5956, 5957, 5, 463, 0, 0, 5957, 5958, 7, 77, 0, 0, 5958, 5960, 5, 450, 0, 0, 5959, 5956, 1, 0, 0, 0, 5959, 5960, 1, 0, 0, 0, 5960, 5963, 1, 0, 0, 0, 5961, 5964, 3, 912, 456, 0, 5962, 5964, 3, 562, 281, 0, 5963, 5961, 1, 0, 0, 0, 5963, 5962, 1, 0, 0, 0, 5964, 543, 1, 0, 0, 0, 5965, 5970, 3, 546, 273, 0, 5966, 5967, 5, 6, 0, 0, 5967, 5969, 3, 546, 273, 0, 5968, 5966, 1, 0, 0, 0, 5969, 5972, 1, 0, 0, 0, 5970, 5968, 1, 0, 0, 0, 5970, 5971, 1, 0, 0, 0, 5971, 545, 1, 0, 0, 0, 5972, 5970, 1, 0, 0, 0, 5973, 5974, 3, 802, 401, 0, 5974, 5975, 3, 756, 378, 0, 5975, 547, 1, 0, 0, 0, 5976, 5977, 5, 87, 0, 0, 5977, 5978, 3, 758, 379, 0, 5978, 549, 1, 0, 0, 0, 5979, 5981, 3, 574, 287, 0, 5980, 5979, 1, 0, 0, 0, 5980, 5981, 1, 0, 0, 0, 5981, 5982, 1, 0, 0, 0, 5982, 5983, 5, 182, 0, 0, 5983, 5984, 5, 64, 0, 0, 5984, 5987, 3, 632, 316, 0, 5985, 5986, 5, 100, 0, 0, 5986, 5988, 3, 614, 307, 0, 5987, 5985, 1, 0, 0, 0, 5987, 5988, 1, 0, 0, 0, 5988, 5990, 1, 0, 0, 0, 5989, 5991, 3, 642, 321, 0, 5990, 5989, 1, 0, 0, 0, 5990, 5991, 1, 0, 0, 0, 5991, 5993, 1, 0, 0, 0, 5992, 5994, 3, 548, 274, 0, 5993, 5992, 1, 0, 0, 0, 5993, 5994, 1, 0, 0, 0, 5994, 551, 1, 0, 0, 0, 5995, 5997, 5, 256, 0, 0, 5996, 5998, 5, 92, 0, 0, 5997, 5996, 1, 0, 0, 0, 5997, 5998, 1, 0, 0, 0, 5998, 5999, 1, 0, 0, 0, 5999, 6014, 3, 630, 315, 0, 6000, 6011, 5, 68, 0, 0, 6001, 6002, 7, 78, 0, 0, 6002, 6012, 7, 79, 0, 0, 6003, 6008, 5, 334, 0, 0, 6004, 6005, 5, 369, 0, 0, 6005, 6009, 5, 201, 0, 0, 6006, 6007, 5, 414, 0, 0, 6007, 6009, 5, 201, 0, 0, 6008, 6004, 1, 0, 0, 0, 6008, 6006, 1, 0, 0, 0, 6008, 6009, 1, 0, 0, 0, 6009, 6012, 1, 0, 0, 0, 6010, 6012, 5, 201, 0, 0, 6011, 6001, 1, 0, 0, 0, 6011, 6003, 1, 0, 0, 0, 6011, 6010, 1, 0, 0, 0, 6012, 6013, 1, 0, 0, 0, 6013, 6015, 5, 263, 0, 0, 6014, 6000, 1, 0, 0, 0, 6014, 6015, 1, 0, 0, 0, 6015, 6017, 1, 0, 0, 0, 6016, 6018, 5, 272, 0, 0, 6017, 6016, 1, 0, 0, 0, 6017, 6018, 1, 0, 0, 0, 6018, 553, 1, 0, 0, 0, 6019, 6021, 3, 574, 287, 0, 6020, 6019, 1, 0, 0, 0, 6020, 6021, 1, 0, 0, 0, 6021, 6022, 1, 0, 0, 0, 6022, 6023, 5, 369, 0, 0, 6023, 6024, 3, 632, 316, 0, 6024, 6025, 5, 333, 0, 0, 6025, 6027, 3, 556, 278, 0, 6026, 6028, 3, 612, 306, 0, 6027, 6026, 1, 0, 0, 0, 6027, 6028, 1, 0, 0, 0, 6028, 6030, 1, 0, 0, 0, 6029, 6031, 3, 642, 321, 0, 6030, 6029, 1, 0, 0, 0, 6030, 6031, 1, 0, 0, 0, 6031, 6033, 1, 0, 0, 0, 6032, 6034, 3, 548, 274, 0, 6033, 6032, 1, 0, 0, 0, 6033, 6034, 1, 0, 0, 0, 6034, 555, 1, 0, 0, 0, 6035, 6040, 3, 558, 279, 0, 6036, 6037, 5, 6, 0, 0, 6037, 6039, 3, 558, 279, 0, 6038, 6036, 1, 0, 0, 0, 6039, 6042, 1, 0, 0, 0, 6040, 6038, 1, 0, 0, 0, 6040, 6041, 1, 0, 0, 0, 6041, 557, 1, 0, 0, 0, 6042, 6040, 1, 0, 0, 0, 6043, 6044, 3, 546, 273, 0, 6044, 6045, 5, 10, 0, 0, 6045, 6046, 3, 676, 338, 0, 6046, 6062, 1, 0, 0, 0, 6047, 6048, 5, 2, 0, 0, 6048, 6049, 3, 544, 272, 0, 6049, 6050, 5, 3, 0, 0, 6050, 6059, 5, 10, 0, 0, 6051, 6053, 5, 414, 0, 0, 6052, 6051, 1, 0, 0, 0, 6052, 6053, 1, 0, 0, 0, 6053, 6054, 1, 0, 0, 0, 6054, 6060, 3, 676, 338, 0, 6055, 6056, 5, 2, 0, 0, 6056, 6057, 3, 568, 284, 0, 6057, 6058, 5, 3, 0, 0, 6058, 6060, 1, 0, 0, 0, 6059, 6052, 1, 0, 0, 0, 6059, 6055, 1, 0, 0, 0, 6060, 6062, 1, 0, 0, 0, 6061, 6043, 1, 0, 0, 0, 6061, 6047, 1, 0, 0, 0, 6062, 559, 1, 0, 0, 0, 6063, 6064, 5, 178, 0, 0, 6064, 6073, 3, 820, 410, 0, 6065, 6067, 5, 269, 0, 0, 6066, 6065, 1, 0, 0, 0, 6066, 6067, 1, 0, 0, 0, 6067, 6068, 1, 0, 0, 0, 6068, 6072, 5, 324, 0, 0, 6069, 6072, 5, 107, 0, 0, 6070, 6072, 5, 240, 0, 0, 6071, 6066, 1, 0, 0, 0, 6071, 6069, 1, 0, 0, 0, 6071, 6070, 1, 0, 0, 0, 6072, 6075, 1, 0, 0, 0, 6073, 6071, 1, 0, 0, 0, 6073, 6074, 1, 0, 0, 0, 6074, 6076, 1, 0, 0, 0, 6075, 6073, 1, 0, 0, 0, 6076, 6079, 5, 172, 0, 0, 6077, 6078, 7, 27, 0, 0, 6078, 6080, 5, 217, 0, 0, 6079, 6077, 1, 0, 0, 0, 6079, 6080, 1, 0, 0, 0, 6080, 6081, 1, 0, 0, 0, 6081, 6082, 5, 62, 0, 0, 6082, 6083, 3, 562, 281, 0, 6083, 561, 1, 0, 0, 0, 6084, 6087, 3, 566, 283, 0, 6085, 6087, 3, 564, 282, 0, 6086, 6084, 1, 0, 0, 0, 6086, 6085, 1, 0, 0, 0, 6087, 563, 1, 0, 0, 0, 6088, 6091, 5, 2, 0, 0, 6089, 6092, 3, 566, 283, 0, 6090, 6092, 3, 564, 282, 0, 6091, 6089, 1, 0, 0, 0, 6091, 6090, 1, 0, 0, 0, 6092, 6093, 1, 0, 0, 0, 6093, 6094, 5, 3, 0, 0, 6094, 565, 1, 0, 0, 0, 6095, 6097, 3, 574, 287, 0, 6096, 6095, 1, 0, 0, 0, 6096, 6097, 1, 0, 0, 0, 6097, 6098, 1, 0, 0, 0, 6098, 6100, 3, 568, 284, 0, 6099, 6101, 3, 588, 294, 0, 6100, 6099, 1, 0, 0, 0, 6100, 6101, 1, 0, 0, 0, 6101, 6110, 1, 0, 0, 0, 6102, 6104, 3, 608, 304, 0, 6103, 6105, 3, 592, 296, 0, 6104, 6103, 1, 0, 0, 0, 6104, 6105, 1, 0, 0, 0, 6105, 6111, 1, 0, 0, 0, 6106, 6108, 3, 592, 296, 0, 6107, 6109, 3, 608, 304, 0, 6108, 6107, 1, 0, 0, 0, 6108, 6109, 1, 0, 0, 0, 6109, 6111, 1, 0, 0, 0, 6110, 6102, 1, 0, 0, 0, 6110, 6106, 1, 0, 0, 0, 6110, 6111, 1, 0, 0, 0, 6111, 567, 1, 0, 0, 0, 6112, 6115, 3, 570, 285, 0, 6113, 6115, 3, 564, 282, 0, 6114, 6112, 1, 0, 0, 0, 6114, 6113, 1, 0, 0, 0, 6115, 569, 1, 0, 0, 0, 6116, 6126, 5, 88, 0, 0, 6117, 6119, 5, 30, 0, 0, 6118, 6117, 1, 0, 0, 0, 6118, 6119, 1, 0, 0, 0, 6119, 6121, 1, 0, 0, 0, 6120, 6122, 3, 582, 291, 0, 6121, 6120, 1, 0, 0, 0, 6121, 6122, 1, 0, 0, 0, 6122, 6127, 1, 0, 0, 0, 6123, 6125, 3, 586, 293, 0, 6124, 6123, 1, 0, 0, 0, 6124, 6125, 1, 0, 0, 0, 6125, 6127, 1, 0, 0, 0, 6126, 6118, 1, 0, 0, 0, 6126, 6124, 1, 0, 0, 0, 6127, 6128, 1, 0, 0, 0, 6128, 6139, 3, 932, 466, 0, 6129, 6139, 3, 610, 305, 0, 6130, 6131, 5, 92, 0, 0, 6131, 6139, 3, 626, 313, 0, 6132, 6133, 3, 564, 282, 0, 6133, 6136, 3, 572, 286, 0, 6134, 6137, 3, 570, 285, 0, 6135, 6137, 3, 564, 282, 0, 6136, 6134, 1, 0, 0, 0, 6136, 6135, 1, 0, 0, 0, 6137, 6139, 1, 0, 0, 0, 6138, 6116, 1, 0, 0, 0, 6138, 6129, 1, 0, 0, 0, 6138, 6130, 1, 0, 0, 0, 6138, 6132, 1, 0, 0, 0, 6139, 6147, 1, 0, 0, 0, 6140, 6143, 3, 572, 286, 0, 6141, 6144, 3, 570, 285, 0, 6142, 6144, 3, 564, 282, 0, 6143, 6141, 1, 0, 0, 0, 6143, 6142, 1, 0, 0, 0, 6144, 6146, 1, 0, 0, 0, 6145, 6140, 1, 0, 0, 0, 6146, 6149, 1, 0, 0, 0, 6147, 6145, 1, 0, 0, 0, 6147, 6148, 1, 0, 0, 0, 6148, 571, 1, 0, 0, 0, 6149, 6147, 1, 0, 0, 0, 6150, 6152, 7, 80, 0, 0, 6151, 6153, 7, 81, 0, 0, 6152, 6151, 1, 0, 0, 0, 6152, 6153, 1, 0, 0, 0, 6153, 573, 1, 0, 0, 0, 6154, 6156, 5, 105, 0, 0, 6155, 6157, 5, 303, 0, 0, 6156, 6155, 1, 0, 0, 0, 6156, 6157, 1, 0, 0, 0, 6157, 6158, 1, 0, 0, 0, 6158, 6163, 3, 576, 288, 0, 6159, 6160, 5, 6, 0, 0, 6160, 6162, 3, 576, 288, 0, 6161, 6159, 1, 0, 0, 0, 6162, 6165, 1, 0, 0, 0, 6163, 6161, 1, 0, 0, 0, 6163, 6164, 1, 0, 0, 0, 6164, 575, 1, 0, 0, 0, 6165, 6163, 1, 0, 0, 0, 6166, 6168, 3, 820, 410, 0, 6167, 6169, 3, 146, 73, 0, 6168, 6167, 1, 0, 0, 0, 6168, 6169, 1, 0, 0, 0, 6169, 6170, 1, 0, 0, 0, 6170, 6175, 5, 36, 0, 0, 6171, 6173, 5, 77, 0, 0, 6172, 6171, 1, 0, 0, 0, 6172, 6173, 1, 0, 0, 0, 6173, 6174, 1, 0, 0, 0, 6174, 6176, 5, 259, 0, 0, 6175, 6172, 1, 0, 0, 0, 6175, 6176, 1, 0, 0, 0, 6176, 6177, 1, 0, 0, 0, 6177, 6178, 5, 2, 0, 0, 6178, 6179, 3, 532, 266, 0, 6179, 6181, 5, 3, 0, 0, 6180, 6182, 3, 578, 289, 0, 6181, 6180, 1, 0, 0, 0, 6181, 6182, 1, 0, 0, 0, 6182, 6184, 1, 0, 0, 0, 6183, 6185, 3, 580, 290, 0, 6184, 6183, 1, 0, 0, 0, 6184, 6185, 1, 0, 0, 0, 6185, 577, 1, 0, 0, 0, 6186, 6187, 5, 325, 0, 0, 6187, 6188, 7, 82, 0, 0, 6188, 6189, 5, 207, 0, 0, 6189, 6190, 5, 147, 0, 0, 6190, 6191, 3, 150, 75, 0, 6191, 6192, 5, 333, 0, 0, 6192, 6193, 3, 802, 401, 0, 6193, 579, 1, 0, 0, 0, 6194, 6195, 5, 173, 0, 0, 6195, 6196, 3, 150, 75, 0, 6196, 6197, 5, 333, 0, 0, 6197, 6203, 3, 802, 401, 0, 6198, 6199, 5, 94, 0, 0, 6199, 6200, 3, 820, 410, 0, 6200, 6201, 5, 53, 0, 0, 6201, 6202, 3, 820, 410, 0, 6202, 6204, 1, 0, 0, 0, 6203, 6198, 1, 0, 0, 0, 6203, 6204, 1, 0, 0, 0, 6204, 6205, 1, 0, 0, 0, 6205, 6206, 5, 100, 0, 0, 6206, 6207, 3, 802, 401, 0, 6207, 581, 1, 0, 0, 0, 6208, 6214, 5, 71, 0, 0, 6209, 6211, 5, 346, 0, 0, 6210, 6209, 1, 0, 0, 0, 6210, 6211, 1, 0, 0, 0, 6211, 6212, 1, 0, 0, 0, 6212, 6215, 3, 584, 292, 0, 6213, 6215, 3, 732, 366, 0, 6214, 6210, 1, 0, 0, 0, 6214, 6213, 1, 0, 0, 0, 6215, 583, 1, 0, 0, 0, 6216, 6218, 7, 21, 0, 0, 6217, 6216, 1, 0, 0, 0, 6217, 6218, 1, 0, 0, 0, 6218, 6219, 1, 0, 0, 0, 6219, 6221, 7, 22, 0, 0, 6220, 6222, 5, 92, 0, 0, 6221, 6220, 1, 0, 0, 0, 6221, 6222, 1, 0, 0, 0, 6222, 6223, 1, 0, 0, 0, 6223, 6232, 3, 774, 387, 0, 6224, 6226, 5, 367, 0, 0, 6225, 6224, 1, 0, 0, 0, 6225, 6226, 1, 0, 0, 0, 6226, 6228, 1, 0, 0, 0, 6227, 6229, 5, 92, 0, 0, 6228, 6227, 1, 0, 0, 0, 6228, 6229, 1, 0, 0, 0, 6229, 6230, 1, 0, 0, 0, 6230, 6232, 3, 774, 387, 0, 6231, 6217, 1, 0, 0, 0, 6231, 6225, 1, 0, 0, 0, 6232, 585, 1, 0, 0, 0, 6233, 6236, 5, 56, 0, 0, 6234, 6235, 5, 80, 0, 0, 6235, 6237, 3, 536, 268, 0, 6236, 6234, 1, 0, 0, 0, 6236, 6237, 1, 0, 0, 0, 6237, 587, 1, 0, 0, 0, 6238, 6239, 5, 83, 0, 0, 6239, 6240, 5, 147, 0, 0, 6240, 6245, 3, 590, 295, 0, 6241, 6242, 5, 6, 0, 0, 6242, 6244, 3, 590, 295, 0, 6243, 6241, 1, 0, 0, 0, 6244, 6247, 1, 0, 0, 0, 6245, 6243, 1, 0, 0, 0, 6245, 6246, 1, 0, 0, 0, 6246, 589, 1, 0, 0, 0, 6247, 6245, 1, 0, 0, 0, 6248, 6252, 3, 736, 368, 0, 6249, 6250, 5, 100, 0, 0, 6250, 6253, 3, 728, 364, 0, 6251, 6253, 7, 56, 0, 0, 6252, 6249, 1, 0, 0, 0, 6252, 6251, 1, 0, 0, 0, 6252, 6253, 1, 0, 0, 0, 6253, 6256, 1, 0, 0, 0, 6254, 6255, 5, 273, 0, 0, 6255, 6257, 7, 57, 0, 0, 6256, 6254, 1, 0, 0, 0, 6256, 6257, 1, 0, 0, 0, 6257, 591, 1, 0, 0, 0, 6258, 6260, 3, 598, 299, 0, 6259, 6261, 3, 596, 298, 0, 6260, 6259, 1, 0, 0, 0, 6260, 6261, 1, 0, 0, 0, 6261, 6270, 1, 0, 0, 0, 6262, 6265, 3, 594, 297, 0, 6263, 6265, 3, 596, 298, 0, 6264, 6262, 1, 0, 0, 0, 6264, 6263, 1, 0, 0, 0, 6265, 6267, 1, 0, 0, 0, 6266, 6268, 3, 598, 299, 0, 6267, 6266, 1, 0, 0, 0, 6267, 6268, 1, 0, 0, 0, 6268, 6270, 1, 0, 0, 0, 6269, 6258, 1, 0, 0, 0, 6269, 6264, 1, 0, 0, 0, 6270, 593, 1, 0, 0, 0, 6271, 6274, 5, 74, 0, 0, 6272, 6275, 3, 676, 338, 0, 6273, 6275, 5, 30, 0, 0, 6274, 6272, 1, 0, 0, 0, 6274, 6273, 1, 0, 0, 0, 6275, 6278, 1, 0, 0, 0, 6276, 6277, 5, 6, 0, 0, 6277, 6279, 3, 676, 338, 0, 6278, 6276, 1, 0, 0, 0, 6278, 6279, 1, 0, 0, 0, 6279, 595, 1, 0, 0, 0, 6280, 6281, 5, 61, 0, 0, 6281, 6283, 7, 83, 0, 0, 6282, 6284, 3, 600, 300, 0, 6283, 6282, 1, 0, 0, 0, 6283, 6284, 1, 0, 0, 0, 6284, 6285, 1, 0, 0, 0, 6285, 6289, 7, 84, 0, 0, 6286, 6290, 5, 81, 0, 0, 6287, 6288, 5, 105, 0, 0, 6288, 6290, 5, 467, 0, 0, 6289, 6286, 1, 0, 0, 0, 6289, 6287, 1, 0, 0, 0, 6290, 597, 1, 0, 0, 0, 6291, 6296, 5, 79, 0, 0, 6292, 6293, 3, 600, 300, 0, 6293, 6294, 7, 84, 0, 0, 6294, 6297, 1, 0, 0, 0, 6295, 6297, 3, 676, 338, 0, 6296, 6292, 1, 0, 0, 0, 6296, 6295, 1, 0, 0, 0, 6297, 599, 1, 0, 0, 0, 6298, 6299, 7, 30, 0, 0, 6299, 6302, 7, 85, 0, 0, 6300, 6302, 3, 684, 342, 0, 6301, 6298, 1, 0, 0, 0, 6301, 6300, 1, 0, 0, 0, 6302, 601, 1, 0, 0, 0, 6303, 6304, 5, 66, 0, 0, 6304, 6306, 5, 147, 0, 0, 6305, 6307, 7, 81, 0, 0, 6306, 6305, 1, 0, 0, 0, 6306, 6307, 1, 0, 0, 0, 6307, 6308, 1, 0, 0, 0, 6308, 6309, 3, 604, 302, 0, 6309, 603, 1, 0, 0, 0, 6310, 6315, 3, 606, 303, 0, 6311, 6312, 5, 6, 0, 0, 6312, 6314, 3, 606, 303, 0, 6313, 6311, 1, 0, 0, 0, 6314, 6317, 1, 0, 0, 0, 6315, 6313, 1, 0, 0, 0, 6315, 6316, 1, 0, 0, 0, 6316, 605, 1, 0, 0, 0, 6317, 6315, 1, 0, 0, 0, 6318, 6342, 3, 736, 368, 0, 6319, 6320, 5, 2, 0, 0, 6320, 6342, 5, 3, 0, 0, 6321, 6323, 7, 86, 0, 0, 6322, 6321, 1, 0, 0, 0, 6322, 6323, 1, 0, 0, 0, 6323, 6324, 1, 0, 0, 0, 6324, 6325, 5, 2, 0, 0, 6325, 6330, 3, 736, 368, 0, 6326, 6327, 5, 6, 0, 0, 6327, 6329, 3, 736, 368, 0, 6328, 6326, 1, 0, 0, 0, 6329, 6332, 1, 0, 0, 0, 6330, 6328, 1, 0, 0, 0, 6330, 6331, 1, 0, 0, 0, 6331, 6333, 1, 0, 0, 0, 6332, 6330, 1, 0, 0, 0, 6333, 6334, 5, 3, 0, 0, 6334, 6342, 1, 0, 0, 0, 6335, 6336, 5, 470, 0, 0, 6336, 6337, 5, 471, 0, 0, 6337, 6338, 5, 2, 0, 0, 6338, 6339, 3, 604, 302, 0, 6339, 6340, 5, 3, 0, 0, 6340, 6342, 1, 0, 0, 0, 6341, 6318, 1, 0, 0, 0, 6341, 6319, 1, 0, 0, 0, 6341, 6322, 1, 0, 0, 0, 6341, 6335, 1, 0, 0, 0, 6342, 607, 1, 0, 0, 0, 6343, 6353, 5, 62, 0, 0, 6344, 6345, 5, 269, 0, 0, 6345, 6347, 5, 245, 0, 0, 6346, 6344, 1, 0, 0, 0, 6346, 6347, 1, 0, 0, 0, 6347, 6348, 1, 0, 0, 0, 6348, 6354, 5, 369, 0, 0, 6349, 6351, 5, 245, 0, 0, 6350, 6349, 1, 0, 0, 0, 6350, 6351, 1, 0, 0, 0, 6351, 6352, 1, 0, 0, 0, 6352, 6354, 5, 334, 0, 0, 6353, 6346, 1, 0, 0, 0, 6353, 6350, 1, 0, 0, 0, 6354, 6357, 1, 0, 0, 0, 6355, 6356, 5, 275, 0, 0, 6356, 6358, 3, 762, 381, 0, 6357, 6355, 1, 0, 0, 0, 6357, 6358, 1, 0, 0, 0, 6358, 6362, 1, 0, 0, 0, 6359, 6363, 5, 272, 0, 0, 6360, 6361, 5, 465, 0, 0, 6361, 6363, 5, 466, 0, 0, 6362, 6359, 1, 0, 0, 0, 6362, 6360, 1, 0, 0, 0, 6362, 6363, 1, 0, 0, 0, 6363, 6365, 1, 0, 0, 0, 6364, 6343, 1, 0, 0, 0, 6365, 6366, 1, 0, 0, 0, 6366, 6364, 1, 0, 0, 0, 6366, 6367, 1, 0, 0, 0, 6367, 6372, 1, 0, 0, 0, 6368, 6369, 5, 62, 0, 0, 6369, 6370, 5, 300, 0, 0, 6370, 6372, 5, 81, 0, 0, 6371, 6364, 1, 0, 0, 0, 6371, 6368, 1, 0, 0, 0, 6372, 609, 1, 0, 0, 0, 6373, 6374, 5, 422, 0, 0, 6374, 6379, 3, 536, 268, 0, 6375, 6376, 5, 6, 0, 0, 6376, 6378, 3, 536, 268, 0, 6377, 6375, 1, 0, 0, 0, 6378, 6381, 1, 0, 0, 0, 6379, 6377, 1, 0, 0, 0, 6379, 6380, 1, 0, 0, 0, 6380, 611, 1, 0, 0, 0, 6381, 6379, 1, 0, 0, 0, 6382, 6383, 5, 64, 0, 0, 6383, 6384, 3, 614, 307, 0, 6384, 613, 1, 0, 0, 0, 6385, 6390, 3, 616, 308, 0, 6386, 6387, 5, 6, 0, 0, 6387, 6389, 3, 616, 308, 0, 6388, 6386, 1, 0, 0, 0, 6389, 6392, 1, 0, 0, 0, 6390, 6388, 1, 0, 0, 0, 6390, 6391, 1, 0, 0, 0, 6391, 615, 1, 0, 0, 0, 6392, 6390, 1, 0, 0, 0, 6393, 6408, 3, 626, 313, 0, 6394, 6396, 5, 81, 0, 0, 6395, 6394, 1, 0, 0, 0, 6395, 6396, 1, 0, 0, 0, 6396, 6397, 1, 0, 0, 0, 6397, 6399, 3, 780, 390, 0, 6398, 6400, 5, 9, 0, 0, 6399, 6398, 1, 0, 0, 0, 6399, 6400, 1, 0, 0, 0, 6400, 6402, 1, 0, 0, 0, 6401, 6403, 3, 150, 75, 0, 6402, 6401, 1, 0, 0, 0, 6402, 6403, 1, 0, 0, 0, 6403, 6405, 1, 0, 0, 0, 6404, 6406, 3, 640, 320, 0, 6405, 6404, 1, 0, 0, 0, 6405, 6406, 1, 0, 0, 0, 6406, 6408, 1, 0, 0, 0, 6407, 6393, 1, 0, 0, 0, 6407, 6395, 1, 0, 0, 0, 6408, 6410, 1, 0, 0, 0, 6409, 6411, 3, 618, 309, 0, 6410, 6409, 1, 0, 0, 0, 6410, 6411, 1, 0, 0, 0, 6411, 6413, 1, 0, 0, 0, 6412, 6414, 3, 634, 317, 0, 6413, 6412, 1, 0, 0, 0, 6413, 6414, 1, 0, 0, 0, 6414, 6457, 1, 0, 0, 0, 6415, 6417, 5, 72, 0, 0, 6416, 6415, 1, 0, 0, 0, 6416, 6417, 1, 0, 0, 0, 6417, 6430, 1, 0, 0, 0, 6418, 6420, 3, 648, 324, 0, 6419, 6421, 3, 618, 309, 0, 6420, 6419, 1, 0, 0, 0, 6420, 6421, 1, 0, 0, 0, 6421, 6431, 1, 0, 0, 0, 6422, 6424, 3, 636, 318, 0, 6423, 6425, 3, 620, 310, 0, 6424, 6423, 1, 0, 0, 0, 6424, 6425, 1, 0, 0, 0, 6425, 6431, 1, 0, 0, 0, 6426, 6428, 3, 564, 282, 0, 6427, 6429, 3, 618, 309, 0, 6428, 6427, 1, 0, 0, 0, 6428, 6429, 1, 0, 0, 0, 6429, 6431, 1, 0, 0, 0, 6430, 6418, 1, 0, 0, 0, 6430, 6422, 1, 0, 0, 0, 6430, 6426, 1, 0, 0, 0, 6431, 6457, 1, 0, 0, 0, 6432, 6433, 5, 2, 0, 0, 6433, 6450, 3, 616, 308, 0, 6434, 6435, 5, 110, 0, 0, 6435, 6436, 5, 118, 0, 0, 6436, 6451, 3, 616, 308, 0, 6437, 6439, 5, 121, 0, 0, 6438, 6440, 3, 622, 311, 0, 6439, 6438, 1, 0, 0, 0, 6439, 6440, 1, 0, 0, 0, 6440, 6441, 1, 0, 0, 0, 6441, 6442, 5, 118, 0, 0, 6442, 6451, 3, 616, 308, 0, 6443, 6445, 3, 622, 311, 0, 6444, 6443, 1, 0, 0, 0, 6444, 6445, 1, 0, 0, 0, 6445, 6446, 1, 0, 0, 0, 6446, 6447, 5, 118, 0, 0, 6447, 6448, 3, 616, 308, 0, 6448, 6449, 3, 624, 312, 0, 6449, 6451, 1, 0, 0, 0, 6450, 6434, 1, 0, 0, 0, 6450, 6437, 1, 0, 0, 0, 6450, 6444, 1, 0, 0, 0, 6450, 6451, 1, 0, 0, 0, 6451, 6452, 1, 0, 0, 0, 6452, 6454, 5, 3, 0, 0, 6453, 6455, 3, 618, 309, 0, 6454, 6453, 1, 0, 0, 0, 6454, 6455, 1, 0, 0, 0, 6455, 6457, 1, 0, 0, 0, 6456, 6407, 1, 0, 0, 0, 6456, 6416, 1, 0, 0, 0, 6456, 6432, 1, 0, 0, 0, 6457, 6476, 1, 0, 0, 0, 6458, 6459, 5, 110, 0, 0, 6459, 6460, 5, 118, 0, 0, 6460, 6475, 3, 616, 308, 0, 6461, 6463, 5, 121, 0, 0, 6462, 6464, 3, 622, 311, 0, 6463, 6462, 1, 0, 0, 0, 6463, 6464, 1, 0, 0, 0, 6464, 6465, 1, 0, 0, 0, 6465, 6466, 5, 118, 0, 0, 6466, 6475, 3, 616, 308, 0, 6467, 6469, 3, 622, 311, 0, 6468, 6467, 1, 0, 0, 0, 6468, 6469, 1, 0, 0, 0, 6469, 6470, 1, 0, 0, 0, 6470, 6471, 5, 118, 0, 0, 6471, 6472, 3, 616, 308, 0, 6472, 6473, 3, 624, 312, 0, 6473, 6475, 1, 0, 0, 0, 6474, 6458, 1, 0, 0, 0, 6474, 6461, 1, 0, 0, 0, 6474, 6468, 1, 0, 0, 0, 6475, 6478, 1, 0, 0, 0, 6476, 6474, 1, 0, 0, 0, 6476, 6477, 1, 0, 0, 0, 6477, 617, 1, 0, 0, 0, 6478, 6476, 1, 0, 0, 0, 6479, 6481, 5, 36, 0, 0, 6480, 6479, 1, 0, 0, 0, 6480, 6481, 1, 0, 0, 0, 6481, 6482, 1, 0, 0, 0, 6482, 6487, 3, 820, 410, 0, 6483, 6484, 5, 2, 0, 0, 6484, 6485, 3, 786, 393, 0, 6485, 6486, 5, 3, 0, 0, 6486, 6488, 1, 0, 0, 0, 6487, 6483, 1, 0, 0, 0, 6487, 6488, 1, 0, 0, 0, 6488, 619, 1, 0, 0, 0, 6489, 6502, 3, 618, 309, 0, 6490, 6492, 5, 36, 0, 0, 6491, 6493, 3, 820, 410, 0, 6492, 6491, 1, 0, 0, 0, 6492, 6493, 1, 0, 0, 0, 6493, 6496, 1, 0, 0, 0, 6494, 6496, 3, 820, 410, 0, 6495, 6490, 1, 0, 0, 0, 6495, 6494, 1, 0, 0, 0, 6496, 6497, 1, 0, 0, 0, 6497, 6498, 5, 2, 0, 0, 6498, 6499, 3, 644, 322, 0, 6499, 6500, 5, 3, 0, 0, 6500, 6502, 1, 0, 0, 0, 6501, 6489, 1, 0, 0, 0, 6501, 6495, 1, 0, 0, 0, 6502, 621, 1, 0, 0, 0, 6503, 6505, 7, 87, 0, 0, 6504, 6506, 5, 123, 0, 0, 6505, 6504, 1, 0, 0, 0, 6505, 6506, 1, 0, 0, 0, 6506, 623, 1, 0, 0, 0, 6507, 6508, 5, 100, 0, 0, 6508, 6512, 3, 146, 73, 0, 6509, 6510, 5, 80, 0, 0, 6510, 6512, 3, 676, 338, 0, 6511, 6507, 1, 0, 0, 0, 6511, 6509, 1, 0, 0, 0, 6512, 625, 1, 0, 0, 0, 6513, 6529, 3, 324, 162, 0, 6514, 6520, 5, 81, 0, 0, 6515, 6521, 3, 776, 388, 0, 6516, 6517, 5, 2, 0, 0, 6517, 6518, 3, 776, 388, 0, 6518, 6519, 5, 3, 0, 0, 6519, 6521, 1, 0, 0, 0, 6520, 6515, 1, 0, 0, 0, 6520, 6516, 1, 0, 0, 0, 6521, 6529, 1, 0, 0, 0, 6522, 6523, 5, 68, 0, 0, 6523, 6526, 5, 323, 0, 0, 6524, 6527, 3, 792, 396, 0, 6525, 6527, 5, 111, 0, 0, 6526, 6524, 1, 0, 0, 0, 6526, 6525, 1, 0, 0, 0, 6527, 6529, 1, 0, 0, 0, 6528, 6513, 1, 0, 0, 0, 6528, 6514, 1, 0, 0, 0, 6528, 6522, 1, 0, 0, 0, 6529, 627, 1, 0, 0, 0, 6530, 6531, 5, 92, 0, 0, 6531, 6533, 3, 324, 162, 0, 6532, 6534, 3, 146, 73, 0, 6533, 6532, 1, 0, 0, 0, 6533, 6534, 1, 0, 0, 0, 6534, 6536, 1, 0, 0, 0, 6535, 6537, 3, 640, 320, 0, 6536, 6535, 1, 0, 0, 0, 6536, 6537, 1, 0, 0, 0, 6537, 6555, 1, 0, 0, 0, 6538, 6539, 5, 92, 0, 0, 6539, 6545, 5, 81, 0, 0, 6540, 6546, 3, 776, 388, 0, 6541, 6542, 5, 2, 0, 0, 6542, 6543, 3, 776, 388, 0, 6543, 6544, 5, 3, 0, 0, 6544, 6546, 1, 0, 0, 0, 6545, 6540, 1, 0, 0, 0, 6545, 6541, 1, 0, 0, 0, 6546, 6555, 1, 0, 0, 0, 6547, 6548, 5, 350, 0, 0, 6548, 6549, 5, 68, 0, 0, 6549, 6552, 5, 323, 0, 0, 6550, 6553, 3, 792, 396, 0, 6551, 6553, 5, 111, 0, 0, 6552, 6550, 1, 0, 0, 0, 6552, 6551, 1, 0, 0, 0, 6553, 6555, 1, 0, 0, 0, 6554, 6530, 1, 0, 0, 0, 6554, 6538, 1, 0, 0, 0, 6554, 6547, 1, 0, 0, 0, 6555, 629, 1, 0, 0, 0, 6556, 6561, 3, 626, 313, 0, 6557, 6558, 5, 6, 0, 0, 6558, 6560, 3, 626, 313, 0, 6559, 6557, 1, 0, 0, 0, 6560, 6563, 1, 0, 0, 0, 6561, 6559, 1, 0, 0, 0, 6561, 6562, 1, 0, 0, 0, 6562, 631, 1, 0, 0, 0, 6563, 6561, 1, 0, 0, 0, 6564, 6569, 3, 626, 313, 0, 6565, 6567, 5, 36, 0, 0, 6566, 6565, 1, 0, 0, 0, 6566, 6567, 1, 0, 0, 0, 6567, 6568, 1, 0, 0, 0, 6568, 6570, 3, 820, 410, 0, 6569, 6566, 1, 0, 0, 0, 6569, 6570, 1, 0, 0, 0, 6570, 633, 1, 0, 0, 0, 6571, 6572, 5, 472, 0, 0, 6572, 6573, 3, 808, 404, 0, 6573, 6579, 3, 536, 268, 0, 6574, 6575, 5, 310, 0, 0, 6575, 6576, 5, 2, 0, 0, 6576, 6577, 3, 676, 338, 0, 6577, 6578, 5, 3, 0, 0, 6578, 6580, 1, 0, 0, 0, 6579, 6574, 1, 0, 0, 0, 6579, 6580, 1, 0, 0, 0, 6580, 635, 1, 0, 0, 0, 6581, 6596, 3, 690, 345, 0, 6582, 6583, 5, 320, 0, 0, 6583, 6584, 5, 64, 0, 0, 6584, 6585, 5, 2, 0, 0, 6585, 6590, 3, 638, 319, 0, 6586, 6587, 5, 6, 0, 0, 6587, 6589, 3, 638, 319, 0, 6588, 6586, 1, 0, 0, 0, 6589, 6592, 1, 0, 0, 0, 6590, 6588, 1, 0, 0, 0, 6590, 6591, 1, 0, 0, 0, 6591, 6593, 1, 0, 0, 0, 6592, 6590, 1, 0, 0, 0, 6593, 6594, 5, 3, 0, 0, 6594, 6596, 1, 0, 0, 0, 6595, 6581, 1, 0, 0, 0, 6595, 6582, 1, 0, 0, 0, 6596, 6599, 1, 0, 0, 0, 6597, 6598, 5, 105, 0, 0, 6598, 6600, 5, 473, 0, 0, 6599, 6597, 1, 0, 0, 0, 6599, 6600, 1, 0, 0, 0, 6600, 637, 1, 0, 0, 0, 6601, 6607, 3, 690, 345, 0, 6602, 6603, 5, 36, 0, 0, 6603, 6604, 5, 2, 0, 0, 6604, 6605, 3, 644, 322, 0, 6605, 6606, 5, 3, 0, 0, 6606, 6608, 1, 0, 0, 0, 6607, 6602, 1, 0, 0, 0, 6607, 6608, 1, 0, 0, 0, 6608, 639, 1, 0, 0, 0, 6609, 6610, 5, 103, 0, 0, 6610, 6611, 3, 736, 368, 0, 6611, 641, 1, 0, 0, 0, 6612, 6617, 5, 103, 0, 0, 6613, 6614, 5, 434, 0, 0, 6614, 6615, 5, 275, 0, 0, 6615, 6618, 3, 820, 410, 0, 6616, 6618, 3, 676, 338, 0, 6617, 6613, 1, 0, 0, 0, 6617, 6616, 1, 0, 0, 0, 6618, 643, 1, 0, 0, 0, 6619, 6624, 3, 646, 323, 0, 6620, 6621, 5, 6, 0, 0, 6621, 6623, 3, 646, 323, 0, 6622, 6620, 1, 0, 0, 0, 6623, 6626, 1, 0, 0, 0, 6624, 6622, 1, 0, 0, 0, 6624, 6625, 1, 0, 0, 0, 6625, 645, 1, 0, 0, 0, 6626, 6624, 1, 0, 0, 0, 6627, 6628, 3, 820, 410, 0, 6628, 6630, 3, 654, 327, 0, 6629, 6631, 3, 98, 49, 0, 6630, 6629, 1, 0, 0, 0, 6630, 6631, 1, 0, 0, 0, 6631, 647, 1, 0, 0, 0, 6632, 6633, 5, 474, 0, 0, 6633, 6647, 5, 2, 0, 0, 6634, 6635, 5, 476, 0, 0, 6635, 6636, 5, 2, 0, 0, 6636, 6641, 3, 652, 326, 0, 6637, 6638, 5, 6, 0, 0, 6638, 6640, 3, 652, 326, 0, 6639, 6637, 1, 0, 0, 0, 6640, 6643, 1, 0, 0, 0, 6641, 6639, 1, 0, 0, 0, 6641, 6642, 1, 0, 0, 0, 6642, 6644, 1, 0, 0, 0, 6643, 6641, 1, 0, 0, 0, 6644, 6645, 5, 3, 0, 0, 6645, 6646, 5, 6, 0, 0, 6646, 6648, 1, 0, 0, 0, 6647, 6634, 1, 0, 0, 0, 6647, 6648, 1, 0, 0, 0, 6648, 6649, 1, 0, 0, 0, 6649, 6650, 3, 684, 342, 0, 6650, 6651, 3, 700, 350, 0, 6651, 6652, 5, 475, 0, 0, 6652, 6657, 3, 650, 325, 0, 6653, 6654, 5, 6, 0, 0, 6654, 6656, 3, 650, 325, 0, 6655, 6653, 1, 0, 0, 0, 6656, 6659, 1, 0, 0, 0, 6657, 6655, 1, 0, 0, 0, 6657, 6658, 1, 0, 0, 0, 6658, 6660, 1, 0, 0, 0, 6659, 6657, 1, 0, 0, 0, 6660, 6661, 5, 3, 0, 0, 6661, 649, 1, 0, 0, 0, 6662, 6681, 3, 820, 410, 0, 6663, 6677, 3, 654, 327, 0, 6664, 6667, 5, 53, 0, 0, 6665, 6667, 3, 828, 414, 0, 6666, 6664, 1, 0, 0, 0, 6666, 6665, 1, 0, 0, 0, 6667, 6668, 1, 0, 0, 0, 6668, 6674, 3, 676, 338, 0, 6669, 6671, 5, 77, 0, 0, 6670, 6669, 1, 0, 0, 0, 6670, 6671, 1, 0, 0, 0, 6671, 6672, 1, 0, 0, 0, 6672, 6674, 5, 78, 0, 0, 6673, 6666, 1, 0, 0, 0, 6673, 6670, 1, 0, 0, 0, 6674, 6675, 1, 0, 0, 0, 6675, 6673, 1, 0, 0, 0, 6675, 6676, 1, 0, 0, 0, 6676, 6678, 1, 0, 0, 0, 6677, 6673, 1, 0, 0, 0, 6677, 6678, 1, 0, 0, 0, 6678, 6682, 1, 0, 0, 0, 6679, 6680, 5, 62, 0, 0, 6680, 6682, 5, 473, 0, 0, 6681, 6663, 1, 0, 0, 0, 6681, 6679, 1, 0, 0, 0, 6682, 651, 1, 0, 0, 0, 6683, 6684, 3, 684, 342, 0, 6684, 6685, 5, 36, 0, 0, 6685, 6686, 3, 826, 413, 0, 6686, 6690, 1, 0, 0, 0, 6687, 6688, 5, 53, 0, 0, 6688, 6690, 3, 684, 342, 0, 6689, 6683, 1, 0, 0, 0, 6689, 6687, 1, 0, 0, 0, 6690, 653, 1, 0, 0, 0, 6691, 6693, 5, 415, 0, 0, 6692, 6691, 1, 0, 0, 0, 6692, 6693, 1, 0, 0, 0, 6693, 6694, 1, 0, 0, 0, 6694, 6711, 3, 656, 328, 0, 6695, 6697, 5, 4, 0, 0, 6696, 6698, 5, 574, 0, 0, 6697, 6696, 1, 0, 0, 0, 6697, 6698, 1, 0, 0, 0, 6698, 6699, 1, 0, 0, 0, 6699, 6701, 5, 5, 0, 0, 6700, 6695, 1, 0, 0, 0, 6701, 6704, 1, 0, 0, 0, 6702, 6700, 1, 0, 0, 0, 6702, 6703, 1, 0, 0, 0, 6703, 6712, 1, 0, 0, 0, 6704, 6702, 1, 0, 0, 0, 6705, 6709, 5, 35, 0, 0, 6706, 6707, 5, 4, 0, 0, 6707, 6708, 5, 574, 0, 0, 6708, 6710, 5, 5, 0, 0, 6709, 6706, 1, 0, 0, 0, 6709, 6710, 1, 0, 0, 0, 6710, 6712, 1, 0, 0, 0, 6711, 6702, 1, 0, 0, 0, 6711, 6705, 1, 0, 0, 0, 6712, 6718, 1, 0, 0, 0, 6713, 6714, 3, 782, 391, 0, 6714, 6715, 5, 27, 0, 0, 6715, 6716, 7, 88, 0, 0, 6716, 6718, 1, 0, 0, 0, 6717, 6692, 1, 0, 0, 0, 6717, 6713, 1, 0, 0, 0, 6718, 655, 1, 0, 0, 0, 6719, 6721, 3, 822, 411, 0, 6720, 6722, 3, 320, 160, 0, 6721, 6720, 1, 0, 0, 0, 6721, 6722, 1, 0, 0, 0, 6722, 6724, 1, 0, 0, 0, 6723, 6725, 3, 536, 268, 0, 6724, 6723, 1, 0, 0, 0, 6724, 6725, 1, 0, 0, 0, 6725, 6735, 1, 0, 0, 0, 6726, 6735, 3, 658, 329, 0, 6727, 6732, 5, 403, 0, 0, 6728, 6730, 3, 670, 335, 0, 6729, 6728, 1, 0, 0, 0, 6729, 6730, 1, 0, 0, 0, 6730, 6733, 1, 0, 0, 0, 6731, 6733, 3, 662, 331, 0, 6732, 6729, 1, 0, 0, 0, 6732, 6731, 1, 0, 0, 0, 6733, 6735, 1, 0, 0, 0, 6734, 6719, 1, 0, 0, 0, 6734, 6726, 1, 0, 0, 0, 6734, 6727, 1, 0, 0, 0, 6735, 657, 1, 0, 0, 0, 6736, 6741, 3, 660, 330, 0, 6737, 6741, 3, 664, 332, 0, 6738, 6741, 3, 666, 333, 0, 6739, 6741, 3, 668, 334, 0, 6740, 6736, 1, 0, 0, 0, 6740, 6737, 1, 0, 0, 0, 6740, 6738, 1, 0, 0, 0, 6740, 6739, 1, 0, 0, 0, 6741, 659, 1, 0, 0, 0, 6742, 6759, 5, 401, 0, 0, 6743, 6759, 5, 402, 0, 0, 6744, 6759, 5, 416, 0, 0, 6745, 6759, 5, 388, 0, 0, 6746, 6759, 5, 413, 0, 0, 6747, 6749, 5, 398, 0, 0, 6748, 6750, 3, 662, 331, 0, 6749, 6748, 1, 0, 0, 0, 6749, 6750, 1, 0, 0, 0, 6750, 6759, 1, 0, 0, 0, 6751, 6752, 5, 190, 0, 0, 6752, 6759, 5, 412, 0, 0, 6753, 6755, 7, 89, 0, 0, 6754, 6756, 3, 536, 268, 0, 6755, 6754, 1, 0, 0, 0, 6755, 6756, 1, 0, 0, 0, 6756, 6759, 1, 0, 0, 0, 6757, 6759, 5, 390, 0, 0, 6758, 6742, 1, 0, 0, 0, 6758, 6743, 1, 0, 0, 0, 6758, 6744, 1, 0, 0, 0, 6758, 6745, 1, 0, 0, 0, 6758, 6746, 1, 0, 0, 0, 6758, 6747, 1, 0, 0, 0, 6758, 6751, 1, 0, 0, 0, 6758, 6753, 1, 0, 0, 0, 6758, 6757, 1, 0, 0, 0, 6759, 661, 1, 0, 0, 0, 6760, 6761, 5, 2, 0, 0, 6761, 6762, 5, 574, 0, 0, 6762, 6763, 5, 3, 0, 0, 6763, 663, 1, 0, 0, 0, 6764, 6766, 5, 389, 0, 0, 6765, 6767, 5, 374, 0, 0, 6766, 6765, 1, 0, 0, 0, 6766, 6767, 1, 0, 0, 0, 6767, 6769, 1, 0, 0, 0, 6768, 6770, 3, 536, 268, 0, 6769, 6768, 1, 0, 0, 0, 6769, 6770, 1, 0, 0, 0, 6770, 665, 1, 0, 0, 0, 6771, 6773, 7, 90, 0, 0, 6772, 6774, 5, 374, 0, 0, 6773, 6772, 1, 0, 0, 0, 6773, 6774, 1, 0, 0, 0, 6774, 6782, 1, 0, 0, 0, 6775, 6782, 5, 423, 0, 0, 6776, 6777, 5, 405, 0, 0, 6777, 6779, 7, 91, 0, 0, 6778, 6780, 5, 374, 0, 0, 6779, 6778, 1, 0, 0, 0, 6779, 6780, 1, 0, 0, 0, 6780, 6782, 1, 0, 0, 0, 6781, 6771, 1, 0, 0, 0, 6781, 6775, 1, 0, 0, 0, 6781, 6776, 1, 0, 0, 0, 6782, 6784, 1, 0, 0, 0, 6783, 6785, 3, 662, 331, 0, 6784, 6783, 1, 0, 0, 0, 6784, 6785, 1, 0, 0, 0, 6785, 667, 1, 0, 0, 0, 6786, 6788, 7, 92, 0, 0, 6787, 6789, 3, 662, 331, 0, 6788, 6787, 1, 0, 0, 0, 6788, 6789, 1, 0, 0, 0, 6789, 6793, 1, 0, 0, 0, 6790, 6791, 7, 27, 0, 0, 6791, 6792, 5, 418, 0, 0, 6792, 6794, 5, 386, 0, 0, 6793, 6790, 1, 0, 0, 0, 6793, 6794, 1, 0, 0, 0, 6794, 669, 1, 0, 0, 0, 6795, 6825, 5, 264, 0, 0, 6796, 6825, 3, 672, 336, 0, 6797, 6800, 5, 384, 0, 0, 6798, 6799, 5, 94, 0, 0, 6799, 6801, 5, 264, 0, 0, 6800, 6798, 1, 0, 0, 0, 6800, 6801, 1, 0, 0, 0, 6801, 6825, 1, 0, 0, 0, 6802, 6809, 5, 176, 0, 0, 6803, 6807, 5, 94, 0, 0, 6804, 6808, 5, 218, 0, 0, 6805, 6808, 5, 261, 0, 0, 6806, 6808, 3, 672, 336, 0, 6807, 6804, 1, 0, 0, 0, 6807, 6805, 1, 0, 0, 0, 6807, 6806, 1, 0, 0, 0, 6808, 6810, 1, 0, 0, 0, 6809, 6803, 1, 0, 0, 0, 6809, 6810, 1, 0, 0, 0, 6810, 6825, 1, 0, 0, 0, 6811, 6817, 5, 218, 0, 0, 6812, 6815, 5, 94, 0, 0, 6813, 6816, 5, 261, 0, 0, 6814, 6816, 3, 672, 336, 0, 6815, 6813, 1, 0, 0, 0, 6815, 6814, 1, 0, 0, 0, 6816, 6818, 1, 0, 0, 0, 6817, 6812, 1, 0, 0, 0, 6817, 6818, 1, 0, 0, 0, 6818, 6825, 1, 0, 0, 0, 6819, 6822, 5, 261, 0, 0, 6820, 6821, 5, 94, 0, 0, 6821, 6823, 3, 672, 336, 0, 6822, 6820, 1, 0, 0, 0, 6822, 6823, 1, 0, 0, 0, 6823, 6825, 1, 0, 0, 0, 6824, 6795, 1, 0, 0, 0, 6824, 6796, 1, 0, 0, 0, 6824, 6797, 1, 0, 0, 0, 6824, 6802, 1, 0, 0, 0, 6824, 6811, 1, 0, 0, 0, 6824, 6819, 1, 0, 0, 0, 6825, 671, 1, 0, 0, 0, 6826, 6828, 5, 326, 0, 0, 6827, 6829, 3, 662, 331, 0, 6828, 6827, 1, 0, 0, 0, 6828, 6829, 1, 0, 0, 0, 6829, 673, 1, 0, 0, 0, 6830, 6831, 7, 93, 0, 0, 6831, 675, 1, 0, 0, 0, 6832, 6833, 3, 678, 339, 0, 6833, 677, 1, 0, 0, 0, 6834, 6835, 6, 339, -1, 0, 6835, 6837, 3, 682, 341, 0, 6836, 6838, 3, 680, 340, 0, 6837, 6836, 1, 0, 0, 0, 6837, 6838, 1, 0, 0, 0, 6838, 6842, 1, 0, 0, 0, 6839, 6840, 5, 77, 0, 0, 6840, 6842, 3, 678, 339, 3, 6841, 6834, 1, 0, 0, 0, 6841, 6839, 1, 0, 0, 0, 6842, 6851, 1, 0, 0, 0, 6843, 6844, 10, 2, 0, 0, 6844, 6845, 5, 33, 0, 0, 6845, 6850, 3, 678, 339, 3, 6846, 6847, 10, 1, 0, 0, 6847, 6848, 5, 82, 0, 0, 6848, 6850, 3, 678, 339, 2, 6849, 6843, 1, 0, 0, 0, 6849, 6846, 1, 0, 0, 0, 6850, 6853, 1, 0, 0, 0, 6851, 6849, 1, 0, 0, 0, 6851, 6852, 1, 0, 0, 0, 6852, 679, 1, 0, 0, 0, 6853, 6851, 1, 0, 0, 0, 6854, 6855, 3, 674, 337, 0, 6855, 6856, 3, 682, 341, 0, 6856, 6926, 1, 0, 0, 0, 6857, 6858, 3, 674, 337, 0, 6858, 6859, 3, 730, 365, 0, 6859, 6865, 3, 720, 360, 0, 6860, 6866, 3, 564, 282, 0, 6861, 6862, 5, 2, 0, 0, 6862, 6863, 3, 676, 338, 0, 6863, 6864, 5, 3, 0, 0, 6864, 6866, 1, 0, 0, 0, 6865, 6860, 1, 0, 0, 0, 6865, 6861, 1, 0, 0, 0, 6866, 6926, 1, 0, 0, 0, 6867, 6869, 5, 77, 0, 0, 6868, 6867, 1, 0, 0, 0, 6868, 6869, 1, 0, 0, 0, 6869, 6870, 1, 0, 0, 0, 6870, 6871, 5, 387, 0, 0, 6871, 6872, 3, 682, 341, 0, 6872, 6873, 5, 33, 0, 0, 6873, 6874, 3, 682, 341, 0, 6874, 6926, 1, 0, 0, 0, 6875, 6877, 5, 77, 0, 0, 6876, 6875, 1, 0, 0, 0, 6876, 6877, 1, 0, 0, 0, 6877, 6878, 1, 0, 0, 0, 6878, 6879, 5, 68, 0, 0, 6879, 6880, 5, 2, 0, 0, 6880, 6885, 3, 676, 338, 0, 6881, 6882, 5, 6, 0, 0, 6882, 6884, 3, 676, 338, 0, 6883, 6881, 1, 0, 0, 0, 6884, 6887, 1, 0, 0, 0, 6885, 6883, 1, 0, 0, 0, 6885, 6886, 1, 0, 0, 0, 6886, 6888, 1, 0, 0, 0, 6887, 6885, 1, 0, 0, 0, 6888, 6889, 5, 3, 0, 0, 6889, 6926, 1, 0, 0, 0, 6890, 6892, 5, 77, 0, 0, 6891, 6890, 1, 0, 0, 0, 6891, 6892, 1, 0, 0, 0, 6892, 6893, 1, 0, 0, 0, 6893, 6894, 5, 68, 0, 0, 6894, 6926, 3, 564, 282, 0, 6895, 6897, 5, 77, 0, 0, 6896, 6895, 1, 0, 0, 0, 6896, 6897, 1, 0, 0, 0, 6897, 6906, 1, 0, 0, 0, 6898, 6907, 5, 120, 0, 0, 6899, 6907, 5, 114, 0, 0, 6900, 6901, 5, 127, 0, 0, 6901, 6907, 5, 94, 0, 0, 6902, 6904, 5, 387, 0, 0, 6903, 6905, 5, 91, 0, 0, 6904, 6903, 1, 0, 0, 0, 6904, 6905, 1, 0, 0, 0, 6905, 6907, 1, 0, 0, 0, 6906, 6898, 1, 0, 0, 0, 6906, 6899, 1, 0, 0, 0, 6906, 6900, 1, 0, 0, 0, 6906, 6902, 1, 0, 0, 0, 6907, 6908, 1, 0, 0, 0, 6908, 6911, 3, 682, 341, 0, 6909, 6910, 5, 197, 0, 0, 6910, 6912, 3, 682, 341, 0, 6911, 6909, 1, 0, 0, 0, 6911, 6912, 1, 0, 0, 0, 6912, 6926, 1, 0, 0, 0, 6913, 6915, 5, 116, 0, 0, 6914, 6916, 5, 77, 0, 0, 6915, 6914, 1, 0, 0, 0, 6915, 6916, 1, 0, 0, 0, 6916, 6917, 1, 0, 0, 0, 6917, 6926, 5, 78, 0, 0, 6918, 6920, 5, 116, 0, 0, 6919, 6921, 5, 77, 0, 0, 6920, 6919, 1, 0, 0, 0, 6920, 6921, 1, 0, 0, 0, 6921, 6922, 1, 0, 0, 0, 6922, 6923, 5, 56, 0, 0, 6923, 6924, 5, 64, 0, 0, 6924, 6926, 3, 682, 341, 0, 6925, 6854, 1, 0, 0, 0, 6925, 6857, 1, 0, 0, 0, 6925, 6868, 1, 0, 0, 0, 6925, 6876, 1, 0, 0, 0, 6925, 6891, 1, 0, 0, 0, 6925, 6896, 1, 0, 0, 0, 6925, 6913, 1, 0, 0, 0, 6925, 6918, 1, 0, 0, 0, 6926, 681, 1, 0, 0, 0, 6927, 6928, 6, 341, -1, 0, 6928, 6932, 3, 684, 342, 0, 6929, 6930, 7, 30, 0, 0, 6930, 6932, 3, 682, 341, 4, 6931, 6927, 1, 0, 0, 0, 6931, 6929, 1, 0, 0, 0, 6932, 6949, 1, 0, 0, 0, 6933, 6934, 10, 3, 0, 0, 6934, 6935, 7, 94, 0, 0, 6935, 6948, 3, 682, 341, 4, 6936, 6937, 10, 2, 0, 0, 6937, 6938, 7, 30, 0, 0, 6938, 6948, 3, 682, 341, 3, 6939, 6940, 10, 1, 0, 0, 6940, 6941, 5, 15, 0, 0, 6941, 6948, 3, 682, 341, 2, 6942, 6943, 10, 5, 0, 0, 6943, 6944, 5, 142, 0, 0, 6944, 6945, 5, 418, 0, 0, 6945, 6946, 5, 386, 0, 0, 6946, 6948, 3, 676, 338, 0, 6947, 6933, 1, 0, 0, 0, 6947, 6936, 1, 0, 0, 0, 6947, 6939, 1, 0, 0, 0, 6947, 6942, 1, 0, 0, 0, 6948, 6951, 1, 0, 0, 0, 6949, 6947, 1, 0, 0, 0, 6949, 6950, 1, 0, 0, 0, 6950, 683, 1, 0, 0, 0, 6951, 6949, 1, 0, 0, 0, 6952, 6953, 6, 342, -1, 0, 6953, 6954, 7, 95, 0, 0, 6954, 7041, 3, 564, 282, 0, 6955, 6958, 5, 35, 0, 0, 6956, 6959, 3, 564, 282, 0, 6957, 6959, 3, 742, 371, 0, 6958, 6956, 1, 0, 0, 0, 6958, 6957, 1, 0, 0, 0, 6959, 7041, 1, 0, 0, 0, 6960, 6961, 5, 28, 0, 0, 6961, 7041, 3, 756, 378, 0, 6962, 6963, 5, 470, 0, 0, 6963, 7041, 3, 536, 268, 0, 6964, 7041, 5, 574, 0, 0, 6965, 7041, 5, 576, 0, 0, 6966, 7041, 5, 566, 0, 0, 6967, 7041, 5, 570, 0, 0, 6968, 6978, 3, 808, 404, 0, 6969, 6979, 3, 810, 405, 0, 6970, 6971, 5, 2, 0, 0, 6971, 6973, 3, 738, 369, 0, 6972, 6974, 3, 588, 294, 0, 6973, 6972, 1, 0, 0, 0, 6973, 6974, 1, 0, 0, 0, 6974, 6975, 1, 0, 0, 0, 6975, 6976, 5, 3, 0, 0, 6976, 6977, 3, 810, 405, 0, 6977, 6979, 1, 0, 0, 0, 6978, 6969, 1, 0, 0, 0, 6978, 6970, 1, 0, 0, 0, 6979, 7041, 1, 0, 0, 0, 6980, 6982, 3, 658, 329, 0, 6981, 6980, 1, 0, 0, 0, 6981, 6982, 1, 0, 0, 0, 6982, 6983, 1, 0, 0, 0, 6983, 7041, 3, 810, 405, 0, 6984, 6992, 5, 403, 0, 0, 6985, 6987, 3, 810, 405, 0, 6986, 6988, 3, 670, 335, 0, 6987, 6986, 1, 0, 0, 0, 6987, 6988, 1, 0, 0, 0, 6988, 6993, 1, 0, 0, 0, 6989, 6990, 3, 662, 331, 0, 6990, 6991, 3, 810, 405, 0, 6991, 6993, 1, 0, 0, 0, 6992, 6985, 1, 0, 0, 0, 6992, 6989, 1, 0, 0, 0, 6993, 7041, 1, 0, 0, 0, 6994, 7041, 5, 96, 0, 0, 6995, 7041, 5, 60, 0, 0, 6996, 7041, 5, 78, 0, 0, 6997, 7041, 5, 577, 0, 0, 6998, 6999, 5, 2, 0, 0, 6999, 7000, 3, 676, 338, 0, 7000, 7001, 5, 3, 0, 0, 7001, 7002, 3, 756, 378, 0, 7002, 7041, 1, 0, 0, 0, 7003, 7005, 5, 40, 0, 0, 7004, 7006, 3, 676, 338, 0, 7005, 7004, 1, 0, 0, 0, 7005, 7006, 1, 0, 0, 0, 7006, 7008, 1, 0, 0, 0, 7007, 7009, 3, 750, 375, 0, 7008, 7007, 1, 0, 0, 0, 7009, 7010, 1, 0, 0, 0, 7010, 7008, 1, 0, 0, 0, 7010, 7011, 1, 0, 0, 0, 7011, 7014, 1, 0, 0, 0, 7012, 7013, 5, 58, 0, 0, 7013, 7015, 3, 676, 338, 0, 7014, 7012, 1, 0, 0, 0, 7014, 7015, 1, 0, 0, 0, 7015, 7016, 1, 0, 0, 0, 7016, 7017, 5, 454, 0, 0, 7017, 7041, 1, 0, 0, 0, 7018, 7041, 3, 688, 344, 0, 7019, 7021, 3, 564, 282, 0, 7020, 7022, 3, 754, 377, 0, 7021, 7020, 1, 0, 0, 0, 7021, 7022, 1, 0, 0, 0, 7022, 7041, 1, 0, 0, 0, 7023, 7041, 3, 718, 359, 0, 7024, 7025, 5, 2, 0, 0, 7025, 7026, 3, 676, 338, 0, 7026, 7027, 5, 6, 0, 0, 7027, 7028, 3, 732, 366, 0, 7028, 7029, 5, 3, 0, 0, 7029, 7041, 1, 0, 0, 0, 7030, 7031, 3, 716, 358, 0, 7031, 7032, 5, 125, 0, 0, 7032, 7033, 3, 716, 358, 0, 7033, 7041, 1, 0, 0, 0, 7034, 7041, 3, 782, 391, 0, 7035, 7036, 7, 30, 0, 0, 7036, 7041, 3, 684, 342, 5, 7037, 7038, 3, 726, 363, 0, 7038, 7039, 3, 684, 342, 2, 7039, 7041, 1, 0, 0, 0, 7040, 6952, 1, 0, 0, 0, 7040, 6955, 1, 0, 0, 0, 7040, 6960, 1, 0, 0, 0, 7040, 6962, 1, 0, 0, 0, 7040, 6964, 1, 0, 0, 0, 7040, 6965, 1, 0, 0, 0, 7040, 6966, 1, 0, 0, 0, 7040, 6967, 1, 0, 0, 0, 7040, 6968, 1, 0, 0, 0, 7040, 6981, 1, 0, 0, 0, 7040, 6984, 1, 0, 0, 0, 7040, 6994, 1, 0, 0, 0, 7040, 6995, 1, 0, 0, 0, 7040, 6996, 1, 0, 0, 0, 7040, 6997, 1, 0, 0, 0, 7040, 6998, 1, 0, 0, 0, 7040, 7003, 1, 0, 0, 0, 7040, 7018, 1, 0, 0, 0, 7040, 7019, 1, 0, 0, 0, 7040, 7023, 1, 0, 0, 0, 7040, 7024, 1, 0, 0, 0, 7040, 7030, 1, 0, 0, 0, 7040, 7034, 1, 0, 0, 0, 7040, 7035, 1, 0, 0, 0, 7040, 7037, 1, 0, 0, 0, 7041, 7069, 1, 0, 0, 0, 7042, 7043, 10, 3, 0, 0, 7043, 7044, 3, 724, 362, 0, 7044, 7045, 3, 684, 342, 4, 7045, 7068, 1, 0, 0, 0, 7046, 7047, 10, 6, 0, 0, 7047, 7048, 5, 26, 0, 0, 7048, 7068, 3, 654, 327, 0, 7049, 7050, 10, 4, 0, 0, 7050, 7052, 3, 726, 363, 0, 7051, 7053, 3, 684, 342, 0, 7052, 7051, 1, 0, 0, 0, 7052, 7053, 1, 0, 0, 0, 7053, 7068, 1, 0, 0, 0, 7054, 7055, 10, 1, 0, 0, 7055, 7057, 5, 116, 0, 0, 7056, 7058, 5, 77, 0, 0, 7057, 7056, 1, 0, 0, 0, 7057, 7058, 1, 0, 0, 0, 7058, 7065, 1, 0, 0, 0, 7059, 7060, 5, 56, 0, 0, 7060, 7061, 5, 64, 0, 0, 7061, 7066, 3, 684, 342, 0, 7062, 7063, 5, 275, 0, 0, 7063, 7066, 3, 530, 265, 0, 7064, 7066, 5, 188, 0, 0, 7065, 7059, 1, 0, 0, 0, 7065, 7062, 1, 0, 0, 0, 7065, 7064, 1, 0, 0, 0, 7066, 7068, 1, 0, 0, 0, 7067, 7042, 1, 0, 0, 0, 7067, 7046, 1, 0, 0, 0, 7067, 7049, 1, 0, 0, 0, 7067, 7054, 1, 0, 0, 0, 7068, 7071, 1, 0, 0, 0, 7069, 7067, 1, 0, 0, 0, 7069, 7070, 1, 0, 0, 0, 7070, 685, 1, 0, 0, 0, 7071, 7069, 1, 0, 0, 0, 7072, 7073, 3, 808, 404, 0, 7073, 7094, 5, 2, 0, 0, 7074, 7078, 3, 738, 369, 0, 7075, 7076, 5, 6, 0, 0, 7076, 7077, 5, 101, 0, 0, 7077, 7079, 3, 740, 370, 0, 7078, 7075, 1, 0, 0, 0, 7078, 7079, 1, 0, 0, 0, 7079, 7081, 1, 0, 0, 0, 7080, 7082, 3, 588, 294, 0, 7081, 7080, 1, 0, 0, 0, 7081, 7082, 1, 0, 0, 0, 7082, 7095, 1, 0, 0, 0, 7083, 7084, 5, 101, 0, 0, 7084, 7086, 3, 740, 370, 0, 7085, 7087, 3, 588, 294, 0, 7086, 7085, 1, 0, 0, 0, 7086, 7087, 1, 0, 0, 0, 7087, 7095, 1, 0, 0, 0, 7088, 7089, 7, 81, 0, 0, 7089, 7091, 3, 738, 369, 0, 7090, 7092, 3, 588, 294, 0, 7091, 7090, 1, 0, 0, 0, 7091, 7092, 1, 0, 0, 0, 7092, 7095, 1, 0, 0, 0, 7093, 7095, 5, 9, 0, 0, 7094, 7074, 1, 0, 0, 0, 7094, 7083, 1, 0, 0, 0, 7094, 7088, 1, 0, 0, 0, 7094, 7093, 1, 0, 0, 0, 7094, 7095, 1, 0, 0, 0, 7095, 7096, 1, 0, 0, 0, 7096, 7097, 5, 3, 0, 0, 7097, 687, 1, 0, 0, 0, 7098, 7105, 3, 686, 343, 0, 7099, 7100, 5, 479, 0, 0, 7100, 7101, 5, 66, 0, 0, 7101, 7102, 5, 2, 0, 0, 7102, 7103, 3, 588, 294, 0, 7103, 7104, 5, 3, 0, 0, 7104, 7106, 1, 0, 0, 0, 7105, 7099, 1, 0, 0, 0, 7105, 7106, 1, 0, 0, 0, 7106, 7113, 1, 0, 0, 0, 7107, 7108, 5, 480, 0, 0, 7108, 7109, 5, 2, 0, 0, 7109, 7110, 5, 103, 0, 0, 7110, 7111, 3, 676, 338, 0, 7111, 7112, 5, 3, 0, 0, 7112, 7114, 1, 0, 0, 0, 7113, 7107, 1, 0, 0, 0, 7113, 7114, 1, 0, 0, 0, 7114, 7120, 1, 0, 0, 0, 7115, 7118, 5, 124, 0, 0, 7116, 7119, 3, 710, 355, 0, 7117, 7119, 3, 820, 410, 0, 7118, 7116, 1, 0, 0, 0, 7118, 7117, 1, 0, 0, 0, 7119, 7121, 1, 0, 0, 0, 7120, 7115, 1, 0, 0, 0, 7120, 7121, 1, 0, 0, 0, 7121, 7124, 1, 0, 0, 0, 7122, 7124, 3, 692, 346, 0, 7123, 7098, 1, 0, 0, 0, 7123, 7122, 1, 0, 0, 0, 7124, 689, 1, 0, 0, 0, 7125, 7128, 3, 686, 343, 0, 7126, 7128, 3, 692, 346, 0, 7127, 7125, 1, 0, 0, 0, 7127, 7126, 1, 0, 0, 0, 7128, 691, 1, 0, 0, 0, 7129, 7130, 5, 108, 0, 0, 7130, 7131, 5, 62, 0, 0, 7131, 7132, 5, 2, 0, 0, 7132, 7133, 3, 676, 338, 0, 7133, 7134, 5, 3, 0, 0, 7134, 7304, 1, 0, 0, 0, 7135, 7304, 5, 48, 0, 0, 7136, 7138, 7, 96, 0, 0, 7137, 7139, 3, 662, 331, 0, 7138, 7137, 1, 0, 0, 0, 7138, 7139, 1, 0, 0, 0, 7139, 7304, 1, 0, 0, 0, 7140, 7304, 5, 49, 0, 0, 7141, 7304, 5, 52, 0, 0, 7142, 7304, 5, 89, 0, 0, 7143, 7304, 5, 99, 0, 0, 7144, 7304, 5, 47, 0, 0, 7145, 7304, 5, 111, 0, 0, 7146, 7147, 7, 97, 0, 0, 7147, 7148, 5, 2, 0, 0, 7148, 7149, 3, 676, 338, 0, 7149, 7150, 5, 36, 0, 0, 7150, 7151, 3, 654, 327, 0, 7151, 7152, 5, 3, 0, 0, 7152, 7304, 1, 0, 0, 0, 7153, 7154, 5, 397, 0, 0, 7154, 7159, 5, 2, 0, 0, 7155, 7156, 3, 744, 372, 0, 7156, 7157, 5, 64, 0, 0, 7157, 7158, 3, 676, 338, 0, 7158, 7160, 1, 0, 0, 0, 7159, 7155, 1, 0, 0, 0, 7159, 7160, 1, 0, 0, 0, 7160, 7161, 1, 0, 0, 0, 7161, 7304, 5, 3, 0, 0, 7162, 7163, 5, 489, 0, 0, 7163, 7164, 5, 2, 0, 0, 7164, 7167, 3, 676, 338, 0, 7165, 7166, 5, 6, 0, 0, 7166, 7168, 3, 746, 373, 0, 7167, 7165, 1, 0, 0, 0, 7167, 7168, 1, 0, 0, 0, 7168, 7169, 1, 0, 0, 0, 7169, 7170, 5, 3, 0, 0, 7170, 7304, 1, 0, 0, 0, 7171, 7172, 5, 410, 0, 0, 7172, 7173, 5, 2, 0, 0, 7173, 7174, 3, 676, 338, 0, 7174, 7175, 5, 84, 0, 0, 7175, 7176, 3, 676, 338, 0, 7176, 7177, 5, 64, 0, 0, 7177, 7180, 3, 676, 338, 0, 7178, 7179, 5, 62, 0, 0, 7179, 7181, 3, 676, 338, 0, 7180, 7178, 1, 0, 0, 0, 7180, 7181, 1, 0, 0, 0, 7181, 7182, 1, 0, 0, 0, 7182, 7183, 5, 3, 0, 0, 7183, 7304, 1, 0, 0, 0, 7184, 7185, 5, 411, 0, 0, 7185, 7190, 5, 2, 0, 0, 7186, 7187, 3, 684, 342, 0, 7187, 7188, 5, 68, 0, 0, 7188, 7189, 3, 684, 342, 0, 7189, 7191, 1, 0, 0, 0, 7190, 7186, 1, 0, 0, 0, 7190, 7191, 1, 0, 0, 0, 7191, 7192, 1, 0, 0, 0, 7192, 7304, 5, 3, 0, 0, 7193, 7194, 5, 417, 0, 0, 7194, 7196, 5, 2, 0, 0, 7195, 7197, 3, 748, 374, 0, 7196, 7195, 1, 0, 0, 0, 7196, 7197, 1, 0, 0, 0, 7197, 7198, 1, 0, 0, 0, 7198, 7304, 5, 3, 0, 0, 7199, 7200, 5, 421, 0, 0, 7200, 7202, 5, 2, 0, 0, 7201, 7203, 7, 98, 0, 0, 7202, 7201, 1, 0, 0, 0, 7202, 7203, 1, 0, 0, 0, 7203, 7208, 1, 0, 0, 0, 7204, 7206, 3, 676, 338, 0, 7205, 7204, 1, 0, 0, 0, 7205, 7206, 1, 0, 0, 0, 7206, 7207, 1, 0, 0, 0, 7207, 7209, 5, 64, 0, 0, 7208, 7205, 1, 0, 0, 0, 7208, 7209, 1, 0, 0, 0, 7209, 7210, 1, 0, 0, 0, 7210, 7211, 3, 732, 366, 0, 7211, 7212, 1, 0, 0, 0, 7212, 7213, 5, 3, 0, 0, 7213, 7304, 1, 0, 0, 0, 7214, 7215, 5, 408, 0, 0, 7215, 7216, 5, 2, 0, 0, 7216, 7217, 3, 676, 338, 0, 7217, 7218, 5, 6, 0, 0, 7218, 7219, 3, 676, 338, 0, 7219, 7220, 5, 3, 0, 0, 7220, 7304, 1, 0, 0, 0, 7221, 7222, 7, 99, 0, 0, 7222, 7304, 3, 536, 268, 0, 7223, 7224, 5, 426, 0, 0, 7224, 7225, 5, 2, 0, 0, 7225, 7226, 5, 266, 0, 0, 7226, 7236, 3, 826, 413, 0, 7227, 7234, 5, 6, 0, 0, 7228, 7229, 5, 424, 0, 0, 7229, 7230, 5, 2, 0, 0, 7230, 7231, 3, 694, 347, 0, 7231, 7232, 5, 3, 0, 0, 7232, 7235, 1, 0, 0, 0, 7233, 7235, 3, 732, 366, 0, 7234, 7228, 1, 0, 0, 0, 7234, 7233, 1, 0, 0, 0, 7235, 7237, 1, 0, 0, 0, 7236, 7227, 1, 0, 0, 0, 7236, 7237, 1, 0, 0, 0, 7237, 7238, 1, 0, 0, 0, 7238, 7239, 5, 3, 0, 0, 7239, 7304, 1, 0, 0, 0, 7240, 7241, 5, 427, 0, 0, 7241, 7242, 5, 2, 0, 0, 7242, 7243, 3, 684, 342, 0, 7243, 7244, 3, 700, 350, 0, 7244, 7245, 5, 3, 0, 0, 7245, 7304, 1, 0, 0, 0, 7246, 7247, 5, 428, 0, 0, 7247, 7248, 5, 2, 0, 0, 7248, 7249, 3, 694, 347, 0, 7249, 7250, 5, 3, 0, 0, 7250, 7304, 1, 0, 0, 0, 7251, 7252, 5, 429, 0, 0, 7252, 7253, 5, 2, 0, 0, 7253, 7254, 3, 698, 349, 0, 7254, 7257, 3, 676, 338, 0, 7255, 7256, 7, 100, 0, 0, 7256, 7258, 5, 378, 0, 0, 7257, 7255, 1, 0, 0, 0, 7257, 7258, 1, 0, 0, 0, 7258, 7259, 1, 0, 0, 0, 7259, 7260, 5, 3, 0, 0, 7260, 7304, 1, 0, 0, 0, 7261, 7262, 5, 430, 0, 0, 7262, 7263, 5, 2, 0, 0, 7263, 7264, 5, 266, 0, 0, 7264, 7267, 3, 826, 413, 0, 7265, 7266, 5, 6, 0, 0, 7266, 7268, 3, 676, 338, 0, 7267, 7265, 1, 0, 0, 0, 7267, 7268, 1, 0, 0, 0, 7268, 7269, 1, 0, 0, 0, 7269, 7270, 5, 3, 0, 0, 7270, 7304, 1, 0, 0, 0, 7271, 7272, 5, 431, 0, 0, 7272, 7273, 5, 2, 0, 0, 7273, 7274, 5, 383, 0, 0, 7274, 7275, 3, 676, 338, 0, 7275, 7276, 5, 6, 0, 0, 7276, 7280, 5, 375, 0, 0, 7277, 7278, 5, 269, 0, 0, 7278, 7281, 5, 450, 0, 0, 7279, 7281, 3, 676, 338, 0, 7280, 7277, 1, 0, 0, 0, 7280, 7279, 1, 0, 0, 0, 7281, 7291, 1, 0, 0, 0, 7282, 7283, 5, 6, 0, 0, 7283, 7289, 5, 339, 0, 0, 7284, 7286, 5, 269, 0, 0, 7285, 7284, 1, 0, 0, 0, 7285, 7286, 1, 0, 0, 0, 7286, 7287, 1, 0, 0, 0, 7287, 7290, 5, 450, 0, 0, 7288, 7290, 5, 385, 0, 0, 7289, 7285, 1, 0, 0, 0, 7289, 7288, 1, 0, 0, 0, 7290, 7292, 1, 0, 0, 0, 7291, 7282, 1, 0, 0, 0, 7291, 7292, 1, 0, 0, 0, 7292, 7293, 1, 0, 0, 0, 7293, 7294, 5, 3, 0, 0, 7294, 7304, 1, 0, 0, 0, 7295, 7296, 5, 432, 0, 0, 7296, 7297, 5, 2, 0, 0, 7297, 7298, 3, 698, 349, 0, 7298, 7299, 3, 676, 338, 0, 7299, 7300, 5, 36, 0, 0, 7300, 7301, 3, 656, 328, 0, 7301, 7302, 5, 3, 0, 0, 7302, 7304, 1, 0, 0, 0, 7303, 7129, 1, 0, 0, 0, 7303, 7135, 1, 0, 0, 0, 7303, 7136, 1, 0, 0, 0, 7303, 7140, 1, 0, 0, 0, 7303, 7141, 1, 0, 0, 0, 7303, 7142, 1, 0, 0, 0, 7303, 7143, 1, 0, 0, 0, 7303, 7144, 1, 0, 0, 0, 7303, 7145, 1, 0, 0, 0, 7303, 7146, 1, 0, 0, 0, 7303, 7153, 1, 0, 0, 0, 7303, 7162, 1, 0, 0, 0, 7303, 7171, 1, 0, 0, 0, 7303, 7184, 1, 0, 0, 0, 7303, 7193, 1, 0, 0, 0, 7303, 7199, 1, 0, 0, 0, 7303, 7214, 1, 0, 0, 0, 7303, 7221, 1, 0, 0, 0, 7303, 7223, 1, 0, 0, 0, 7303, 7240, 1, 0, 0, 0, 7303, 7246, 1, 0, 0, 0, 7303, 7251, 1, 0, 0, 0, 7303, 7261, 1, 0, 0, 0, 7303, 7271, 1, 0, 0, 0, 7303, 7295, 1, 0, 0, 0, 7304, 693, 1, 0, 0, 0, 7305, 7310, 3, 696, 348, 0, 7306, 7307, 5, 6, 0, 0, 7307, 7309, 3, 696, 348, 0, 7308, 7306, 1, 0, 0, 0, 7309, 7312, 1, 0, 0, 0, 7310, 7308, 1, 0, 0, 0, 7310, 7311, 1, 0, 0, 0, 7311, 695, 1, 0, 0, 0, 7312, 7310, 1, 0, 0, 0, 7313, 7316, 3, 676, 338, 0, 7314, 7315, 5, 36, 0, 0, 7315, 7317, 3, 826, 413, 0, 7316, 7314, 1, 0, 0, 0, 7316, 7317, 1, 0, 0, 0, 7317, 697, 1, 0, 0, 0, 7318, 7319, 7, 101, 0, 0, 7319, 699, 1, 0, 0, 0, 7320, 7322, 5, 286, 0, 0, 7321, 7323, 3, 702, 351, 0, 7322, 7321, 1, 0, 0, 0, 7322, 7323, 1, 0, 0, 0, 7323, 7324, 1, 0, 0, 0, 7324, 7326, 3, 684, 342, 0, 7325, 7327, 3, 702, 351, 0, 7326, 7325, 1, 0, 0, 0, 7326, 7327, 1, 0, 0, 0, 7327, 701, 1, 0, 0, 0, 7328, 7329, 5, 147, 0, 0, 7329, 7330, 7, 102, 0, 0, 7330, 703, 1, 0, 0, 0, 7331, 7332, 5, 104, 0, 0, 7332, 7337, 3, 706, 353, 0, 7333, 7334, 5, 6, 0, 0, 7334, 7336, 3, 706, 353, 0, 7335, 7333, 1, 0, 0, 0, 7336, 7339, 1, 0, 0, 0, 7337, 7335, 1, 0, 0, 0, 7337, 7338, 1, 0, 0, 0, 7338, 705, 1, 0, 0, 0, 7339, 7337, 1, 0, 0, 0, 7340, 7341, 3, 820, 410, 0, 7341, 7342, 5, 36, 0, 0, 7342, 7343, 3, 710, 355, 0, 7343, 707, 1, 0, 0, 0, 7344, 7347, 5, 124, 0, 0, 7345, 7348, 3, 710, 355, 0, 7346, 7348, 3, 820, 410, 0, 7347, 7345, 1, 0, 0, 0, 7347, 7346, 1, 0, 0, 0, 7348, 709, 1, 0, 0, 0, 7349, 7351, 5, 2, 0, 0, 7350, 7352, 3, 820, 410, 0, 7351, 7350, 1, 0, 0, 0, 7351, 7352, 1, 0, 0, 0, 7352, 7356, 1, 0, 0, 0, 7353, 7354, 5, 285, 0, 0, 7354, 7355, 5, 147, 0, 0, 7355, 7357, 3, 732, 366, 0, 7356, 7353, 1, 0, 0, 0, 7356, 7357, 1, 0, 0, 0, 7357, 7359, 1, 0, 0, 0, 7358, 7360, 3, 588, 294, 0, 7359, 7358, 1, 0, 0, 0, 7359, 7360, 1, 0, 0, 0, 7360, 7362, 1, 0, 0, 0, 7361, 7363, 3, 712, 356, 0, 7362, 7361, 1, 0, 0, 0, 7362, 7363, 1, 0, 0, 0, 7363, 7364, 1, 0, 0, 0, 7364, 7365, 5, 3, 0, 0, 7365, 711, 1, 0, 0, 0, 7366, 7371, 7, 103, 0, 0, 7367, 7368, 5, 387, 0, 0, 7368, 7369, 3, 714, 357, 0, 7369, 7370, 5, 33, 0, 0, 7370, 7372, 1, 0, 0, 0, 7371, 7367, 1, 0, 0, 0, 7371, 7372, 1, 0, 0, 0, 7372, 7373, 1, 0, 0, 0, 7373, 7374, 3, 714, 357, 0, 7374, 7384, 1, 0, 0, 0, 7375, 7382, 5, 199, 0, 0, 7376, 7377, 5, 434, 0, 0, 7377, 7383, 5, 414, 0, 0, 7378, 7383, 5, 66, 0, 0, 7379, 7383, 5, 467, 0, 0, 7380, 7381, 5, 269, 0, 0, 7381, 7383, 5, 482, 0, 0, 7382, 7376, 1, 0, 0, 0, 7382, 7378, 1, 0, 0, 0, 7382, 7379, 1, 0, 0, 0, 7382, 7380, 1, 0, 0, 0, 7383, 7385, 1, 0, 0, 0, 7384, 7375, 1, 0, 0, 0, 7384, 7385, 1, 0, 0, 0, 7385, 713, 1, 0, 0, 0, 7386, 7389, 5, 362, 0, 0, 7387, 7389, 3, 676, 338, 0, 7388, 7386, 1, 0, 0, 0, 7388, 7387, 1, 0, 0, 0, 7389, 7390, 1, 0, 0, 0, 7390, 7394, 7, 104, 0, 0, 7391, 7392, 5, 434, 0, 0, 7392, 7394, 5, 414, 0, 0, 7393, 7388, 1, 0, 0, 0, 7393, 7391, 1, 0, 0, 0, 7394, 715, 1, 0, 0, 0, 7395, 7403, 3, 718, 359, 0, 7396, 7397, 5, 2, 0, 0, 7397, 7398, 3, 732, 366, 0, 7398, 7399, 5, 6, 0, 0, 7399, 7400, 3, 676, 338, 0, 7400, 7401, 5, 3, 0, 0, 7401, 7403, 1, 0, 0, 0, 7402, 7395, 1, 0, 0, 0, 7402, 7396, 1, 0, 0, 0, 7403, 717, 1, 0, 0, 0, 7404, 7405, 5, 414, 0, 0, 7405, 7407, 5, 2, 0, 0, 7406, 7408, 3, 732, 366, 0, 7407, 7406, 1, 0, 0, 0, 7407, 7408, 1, 0, 0, 0, 7408, 7409, 1, 0, 0, 0, 7409, 7410, 5, 3, 0, 0, 7410, 719, 1, 0, 0, 0, 7411, 7412, 7, 105, 0, 0, 7412, 721, 1, 0, 0, 0, 7413, 7416, 5, 29, 0, 0, 7414, 7416, 3, 724, 362, 0, 7415, 7413, 1, 0, 0, 0, 7415, 7414, 1, 0, 0, 0, 7416, 723, 1, 0, 0, 0, 7417, 7418, 7, 106, 0, 0, 7418, 725, 1, 0, 0, 0, 7419, 7426, 5, 29, 0, 0, 7420, 7421, 5, 278, 0, 0, 7421, 7422, 5, 2, 0, 0, 7422, 7423, 3, 416, 208, 0, 7423, 7424, 5, 3, 0, 0, 7424, 7426, 1, 0, 0, 0, 7425, 7419, 1, 0, 0, 0, 7425, 7420, 1, 0, 0, 0, 7426, 727, 1, 0, 0, 0, 7427, 7434, 3, 722, 361, 0, 7428, 7429, 5, 278, 0, 0, 7429, 7430, 5, 2, 0, 0, 7430, 7431, 3, 416, 208, 0, 7431, 7432, 5, 3, 0, 0, 7432, 7434, 1, 0, 0, 0, 7433, 7427, 1, 0, 0, 0, 7433, 7428, 1, 0, 0, 0, 7434, 729, 1, 0, 0, 0, 7435, 7441, 3, 728, 364, 0, 7436, 7438, 5, 77, 0, 0, 7437, 7436, 1, 0, 0, 0, 7437, 7438, 1, 0, 0, 0, 7438, 7439, 1, 0, 0, 0, 7439, 7441, 7, 107, 0, 0, 7440, 7435, 1, 0, 0, 0, 7440, 7437, 1, 0, 0, 0, 7441, 731, 1, 0, 0, 0, 7442, 7447, 3, 676, 338, 0, 7443, 7444, 5, 6, 0, 0, 7444, 7446, 3, 676, 338, 0, 7445, 7443, 1, 0, 0, 0, 7446, 7449, 1, 0, 0, 0, 7447, 7445, 1, 0, 0, 0, 7447, 7448, 1, 0, 0, 0, 7448, 733, 1, 0, 0, 0, 7449, 7447, 1, 0, 0, 0, 7450, 7451, 5, 2, 0, 0, 7451, 7452, 3, 676, 338, 0, 7452, 7453, 5, 3, 0, 0, 7453, 7456, 1, 0, 0, 0, 7454, 7456, 3, 802, 401, 0, 7455, 7450, 1, 0, 0, 0, 7455, 7454, 1, 0, 0, 0, 7456, 735, 1, 0, 0, 0, 7457, 7460, 3, 676, 338, 0, 7458, 7460, 3, 802, 401, 0, 7459, 7457, 1, 0, 0, 0, 7459, 7458, 1, 0, 0, 0, 7460, 737, 1, 0, 0, 0, 7461, 7466, 3, 740, 370, 0, 7462, 7463, 5, 6, 0, 0, 7463, 7465, 3, 740, 370, 0, 7464, 7462, 1, 0, 0, 0, 7465, 7468, 1, 0, 0, 0, 7466, 7464, 1, 0, 0, 0, 7466, 7467, 1, 0, 0, 0, 7467, 739, 1, 0, 0, 0, 7468, 7466, 1, 0, 0, 0, 7469, 7477, 3, 802, 401, 0, 7470, 7477, 3, 676, 338, 0, 7471, 7474, 3, 822, 411, 0, 7472, 7473, 7, 108, 0, 0, 7473, 7475, 3, 676, 338, 0, 7474, 7472, 1, 0, 0, 0, 7474, 7475, 1, 0, 0, 0, 7475, 7477, 1, 0, 0, 0, 7476, 7469, 1, 0, 0, 0, 7476, 7470, 1, 0, 0, 0, 7476, 7471, 1, 0, 0, 0, 7477, 741, 1, 0, 0, 0, 7478, 7488, 5, 4, 0, 0, 7479, 7489, 3, 732, 366, 0, 7480, 7485, 3, 742, 371, 0, 7481, 7482, 5, 6, 0, 0, 7482, 7484, 3, 742, 371, 0, 7483, 7481, 1, 0, 0, 0, 7484, 7487, 1, 0, 0, 0, 7485, 7483, 1, 0, 0, 0, 7485, 7486, 1, 0, 0, 0, 7486, 7489, 1, 0, 0, 0, 7487, 7485, 1, 0, 0, 0, 7488, 7479, 1, 0, 0, 0, 7488, 7480, 1, 0, 0, 0, 7488, 7489, 1, 0, 0, 0, 7489, 7490, 1, 0, 0, 0, 7490, 7491, 5, 5, 0, 0, 7491, 743, 1, 0, 0, 0, 7492, 7501, 3, 828, 414, 0, 7493, 7501, 5, 384, 0, 0, 7494, 7501, 5, 264, 0, 0, 7495, 7501, 5, 176, 0, 0, 7496, 7501, 5, 218, 0, 0, 7497, 7501, 5, 261, 0, 0, 7498, 7501, 5, 326, 0, 0, 7499, 7501, 3, 810, 405, 0, 7500, 7492, 1, 0, 0, 0, 7500, 7493, 1, 0, 0, 0, 7500, 7494, 1, 0, 0, 0, 7500, 7495, 1, 0, 0, 0, 7500, 7496, 1, 0, 0, 0, 7500, 7497, 1, 0, 0, 0, 7500, 7498, 1, 0, 0, 0, 7500, 7499, 1, 0, 0, 0, 7501, 745, 1, 0, 0, 0, 7502, 7503, 7, 109, 0, 0, 7503, 747, 1, 0, 0, 0, 7504, 7505, 3, 676, 338, 0, 7505, 7506, 5, 64, 0, 0, 7506, 7509, 3, 676, 338, 0, 7507, 7508, 5, 62, 0, 0, 7508, 7510, 3, 676, 338, 0, 7509, 7507, 1, 0, 0, 0, 7509, 7510, 1, 0, 0, 0, 7510, 7526, 1, 0, 0, 0, 7511, 7512, 3, 676, 338, 0, 7512, 7513, 5, 62, 0, 0, 7513, 7516, 3, 676, 338, 0, 7514, 7515, 5, 64, 0, 0, 7515, 7517, 3, 676, 338, 0, 7516, 7514, 1, 0, 0, 0, 7516, 7517, 1, 0, 0, 0, 7517, 7526, 1, 0, 0, 0, 7518, 7519, 3, 676, 338, 0, 7519, 7520, 5, 127, 0, 0, 7520, 7521, 3, 676, 338, 0, 7521, 7522, 5, 197, 0, 0, 7522, 7523, 3, 676, 338, 0, 7523, 7526, 1, 0, 0, 0, 7524, 7526, 3, 732, 366, 0, 7525, 7504, 1, 0, 0, 0, 7525, 7511, 1, 0, 0, 0, 7525, 7518, 1, 0, 0, 0, 7525, 7524, 1, 0, 0, 0, 7526, 749, 1, 0, 0, 0, 7527, 7528, 5, 102, 0, 0, 7528, 7529, 3, 676, 338, 0, 7529, 7530, 5, 93, 0, 0, 7530, 7531, 3, 676, 338, 0, 7531, 751, 1, 0, 0, 0, 7532, 7535, 5, 11, 0, 0, 7533, 7536, 3, 826, 413, 0, 7534, 7536, 5, 9, 0, 0, 7535, 7533, 1, 0, 0, 0, 7535, 7534, 1, 0, 0, 0, 7536, 7550, 1, 0, 0, 0, 7537, 7546, 5, 4, 0, 0, 7538, 7547, 3, 676, 338, 0, 7539, 7541, 3, 676, 338, 0, 7540, 7539, 1, 0, 0, 0, 7540, 7541, 1, 0, 0, 0, 7541, 7542, 1, 0, 0, 0, 7542, 7544, 5, 8, 0, 0, 7543, 7545, 3, 676, 338, 0, 7544, 7543, 1, 0, 0, 0, 7544, 7545, 1, 0, 0, 0, 7545, 7547, 1, 0, 0, 0, 7546, 7538, 1, 0, 0, 0, 7546, 7540, 1, 0, 0, 0, 7547, 7548, 1, 0, 0, 0, 7548, 7550, 5, 5, 0, 0, 7549, 7532, 1, 0, 0, 0, 7549, 7537, 1, 0, 0, 0, 7550, 753, 1, 0, 0, 0, 7551, 7553, 3, 752, 376, 0, 7552, 7551, 1, 0, 0, 0, 7553, 7554, 1, 0, 0, 0, 7554, 7552, 1, 0, 0, 0, 7554, 7555, 1, 0, 0, 0, 7555, 755, 1, 0, 0, 0, 7556, 7558, 3, 752, 376, 0, 7557, 7556, 1, 0, 0, 0, 7558, 7561, 1, 0, 0, 0, 7559, 7557, 1, 0, 0, 0, 7559, 7560, 1, 0, 0, 0, 7560, 757, 1, 0, 0, 0, 7561, 7559, 1, 0, 0, 0, 7562, 7567, 3, 760, 380, 0, 7563, 7564, 5, 6, 0, 0, 7564, 7566, 3, 760, 380, 0, 7565, 7563, 1, 0, 0, 0, 7566, 7569, 1, 0, 0, 0, 7567, 7565, 1, 0, 0, 0, 7567, 7568, 1, 0, 0, 0, 7568, 759, 1, 0, 0, 0, 7569, 7567, 1, 0, 0, 0, 7570, 7575, 3, 736, 368, 0, 7571, 7572, 5, 36, 0, 0, 7572, 7576, 3, 826, 413, 0, 7573, 7576, 3, 828, 414, 0, 7574, 7576, 1, 0, 0, 0, 7575, 7571, 1, 0, 0, 0, 7575, 7573, 1, 0, 0, 0, 7575, 7574, 1, 0, 0, 0, 7576, 7579, 1, 0, 0, 0, 7577, 7579, 5, 9, 0, 0, 7578, 7570, 1, 0, 0, 0, 7578, 7577, 1, 0, 0, 0, 7579, 761, 1, 0, 0, 0, 7580, 7585, 3, 782, 391, 0, 7581, 7582, 5, 6, 0, 0, 7582, 7584, 3, 782, 391, 0, 7583, 7581, 1, 0, 0, 0, 7584, 7587, 1, 0, 0, 0, 7585, 7583, 1, 0, 0, 0, 7585, 7586, 1, 0, 0, 0, 7586, 763, 1, 0, 0, 0, 7587, 7585, 1, 0, 0, 0, 7588, 7593, 3, 776, 388, 0, 7589, 7590, 5, 6, 0, 0, 7590, 7592, 3, 776, 388, 0, 7591, 7589, 1, 0, 0, 0, 7592, 7595, 1, 0, 0, 0, 7593, 7591, 1, 0, 0, 0, 7593, 7594, 1, 0, 0, 0, 7594, 765, 1, 0, 0, 0, 7595, 7593, 1, 0, 0, 0, 7596, 7601, 3, 792, 396, 0, 7597, 7598, 5, 6, 0, 0, 7598, 7600, 3, 792, 396, 0, 7599, 7597, 1, 0, 0, 0, 7600, 7603, 1, 0, 0, 0, 7601, 7599, 1, 0, 0, 0, 7601, 7602, 1, 0, 0, 0, 7602, 767, 1, 0, 0, 0, 7603, 7601, 1, 0, 0, 0, 7604, 7609, 3, 790, 395, 0, 7605, 7606, 5, 6, 0, 0, 7606, 7608, 3, 790, 395, 0, 7607, 7605, 1, 0, 0, 0, 7608, 7611, 1, 0, 0, 0, 7609, 7607, 1, 0, 0, 0, 7609, 7610, 1, 0, 0, 0, 7610, 769, 1, 0, 0, 0, 7611, 7609, 1, 0, 0, 0, 7612, 7613, 3, 782, 391, 0, 7613, 771, 1, 0, 0, 0, 7614, 7615, 3, 782, 391, 0, 7615, 773, 1, 0, 0, 0, 7616, 7617, 3, 782, 391, 0, 7617, 775, 1, 0, 0, 0, 7618, 7619, 3, 782, 391, 0, 7619, 777, 1, 0, 0, 0, 7620, 7621, 3, 782, 391, 0, 7621, 779, 1, 0, 0, 0, 7622, 7623, 3, 318, 159, 0, 7623, 781, 1, 0, 0, 0, 7624, 7626, 3, 820, 410, 0, 7625, 7627, 3, 754, 377, 0, 7626, 7625, 1, 0, 0, 0, 7626, 7627, 1, 0, 0, 0, 7627, 783, 1, 0, 0, 0, 7628, 7633, 3, 772, 386, 0, 7629, 7630, 5, 6, 0, 0, 7630, 7632, 3, 772, 386, 0, 7631, 7629, 1, 0, 0, 0, 7632, 7635, 1, 0, 0, 0, 7633, 7631, 1, 0, 0, 0, 7633, 7634, 1, 0, 0, 0, 7634, 785, 1, 0, 0, 0, 7635, 7633, 1, 0, 0, 0, 7636, 7641, 3, 820, 410, 0, 7637, 7638, 5, 6, 0, 0, 7638, 7640, 3, 820, 410, 0, 7639, 7637, 1, 0, 0, 0, 7640, 7643, 1, 0, 0, 0, 7641, 7639, 1, 0, 0, 0, 7641, 7642, 1, 0, 0, 0, 7642, 787, 1, 0, 0, 0, 7643, 7641, 1, 0, 0, 0, 7644, 7645, 3, 318, 159, 0, 7645, 789, 1, 0, 0, 0, 7646, 7647, 3, 318, 159, 0, 7647, 791, 1, 0, 0, 0, 7648, 7649, 3, 318, 159, 0, 7649, 793, 1, 0, 0, 0, 7650, 7651, 3, 820, 410, 0, 7651, 795, 1, 0, 0, 0, 7652, 7653, 3, 820, 410, 0, 7653, 797, 1, 0, 0, 0, 7654, 7659, 3, 822, 411, 0, 7655, 7656, 3, 820, 410, 0, 7656, 7657, 3, 754, 377, 0, 7657, 7659, 1, 0, 0, 0, 7658, 7654, 1, 0, 0, 0, 7658, 7655, 1, 0, 0, 0, 7659, 799, 1, 0, 0, 0, 7660, 7665, 3, 822, 411, 0, 7661, 7662, 3, 820, 410, 0, 7662, 7663, 3, 754, 377, 0, 7663, 7665, 1, 0, 0, 0, 7664, 7660, 1, 0, 0, 0, 7664, 7661, 1, 0, 0, 0, 7665, 801, 1, 0, 0, 0, 7666, 7667, 3, 820, 410, 0, 7667, 7668, 3, 756, 378, 0, 7668, 7671, 1, 0, 0, 0, 7669, 7671, 4, 401, 10, 0, 7670, 7666, 1, 0, 0, 0, 7670, 7669, 1, 0, 0, 0, 7671, 803, 1, 0, 0, 0, 7672, 7673, 3, 820, 410, 0, 7673, 805, 1, 0, 0, 0, 7674, 7679, 3, 822, 411, 0, 7675, 7676, 3, 820, 410, 0, 7676, 7677, 3, 754, 377, 0, 7677, 7679, 1, 0, 0, 0, 7678, 7674, 1, 0, 0, 0, 7678, 7675, 1, 0, 0, 0, 7679, 807, 1, 0, 0, 0, 7680, 7685, 3, 822, 411, 0, 7681, 7682, 3, 820, 410, 0, 7682, 7683, 3, 754, 377, 0, 7683, 7685, 1, 0, 0, 0, 7684, 7680, 1, 0, 0, 0, 7684, 7681, 1, 0, 0, 0, 7685, 809, 1, 0, 0, 0, 7686, 7689, 3, 812, 406, 0, 7687, 7688, 5, 487, 0, 0, 7688, 7690, 3, 812, 406, 0, 7689, 7687, 1, 0, 0, 0, 7689, 7690, 1, 0, 0, 0, 7690, 811, 1, 0, 0, 0, 7691, 7703, 5, 561, 0, 0, 7692, 7703, 5, 563, 0, 0, 7693, 7697, 5, 565, 0, 0, 7694, 7696, 5, 591, 0, 0, 7695, 7694, 1, 0, 0, 0, 7696, 7699, 1, 0, 0, 0, 7697, 7695, 1, 0, 0, 0, 7697, 7698, 1, 0, 0, 0, 7698, 7700, 1, 0, 0, 0, 7699, 7697, 1, 0, 0, 0, 7700, 7703, 5, 592, 0, 0, 7701, 7703, 5, 587, 0, 0, 7702, 7691, 1, 0, 0, 0, 7702, 7692, 1, 0, 0, 0, 7702, 7693, 1, 0, 0, 0, 7702, 7701, 1, 0, 0, 0, 7703, 813, 1, 0, 0, 0, 7704, 7706, 7, 30, 0, 0, 7705, 7704, 1, 0, 0, 0, 7705, 7706, 1, 0, 0, 0, 7706, 7707, 1, 0, 0, 0, 7707, 7708, 5, 574, 0, 0, 7708, 815, 1, 0, 0, 0, 7709, 7715, 3, 824, 412, 0, 7710, 7715, 5, 52, 0, 0, 7711, 7715, 5, 49, 0, 0, 7712, 7715, 5, 89, 0, 0, 7713, 7715, 5, 524, 0, 0, 7714, 7709, 1, 0, 0, 0, 7714, 7710, 1, 0, 0, 0, 7714, 7711, 1, 0, 0, 0, 7714, 7712, 1, 0, 0, 0, 7714, 7713, 1, 0, 0, 0, 7715, 817, 1, 0, 0, 0, 7716, 7721, 3, 816, 408, 0, 7717, 7718, 5, 6, 0, 0, 7718, 7720, 3, 816, 408, 0, 7719, 7717, 1, 0, 0, 0, 7720, 7723, 1, 0, 0, 0, 7721, 7719, 1, 0, 0, 0, 7721, 7722, 1, 0, 0, 0, 7722, 819, 1, 0, 0, 0, 7723, 7721, 1, 0, 0, 0, 7724, 7727, 3, 828, 414, 0, 7725, 7727, 3, 832, 416, 0, 7726, 7724, 1, 0, 0, 0, 7726, 7725, 1, 0, 0, 0, 7727, 821, 1, 0, 0, 0, 7728, 7731, 3, 828, 414, 0, 7729, 7731, 3, 834, 417, 0, 7730, 7728, 1, 0, 0, 0, 7730, 7729, 1, 0, 0, 0, 7731, 823, 1, 0, 0, 0, 7732, 7736, 3, 828, 414, 0, 7733, 7736, 3, 832, 416, 0, 7734, 7736, 3, 834, 417, 0, 7735, 7732, 1, 0, 0, 0, 7735, 7733, 1, 0, 0, 0, 7735, 7734, 1, 0, 0, 0, 7736, 825, 1, 0, 0, 0, 7737, 7742, 3, 828, 414, 0, 7738, 7742, 3, 832, 416, 0, 7739, 7742, 3, 834, 417, 0, 7740, 7742, 3, 836, 418, 0, 7741, 7737, 1, 0, 0, 0, 7741, 7738, 1, 0, 0, 0, 7741, 7739, 1, 0, 0, 0, 7741, 7740, 1, 0, 0, 0, 7742, 827, 1, 0, 0, 0, 7743, 7746, 5, 552, 0, 0, 7744, 7745, 5, 487, 0, 0, 7745, 7747, 3, 812, 406, 0, 7746, 7744, 1, 0, 0, 0, 7746, 7747, 1, 0, 0, 0, 7747, 7755, 1, 0, 0, 0, 7748, 7755, 3, 810, 405, 0, 7749, 7755, 5, 553, 0, 0, 7750, 7755, 5, 557, 0, 0, 7751, 7755, 5, 577, 0, 0, 7752, 7755, 5, 578, 0, 0, 7753, 7755, 3, 830, 415, 0, 7754, 7743, 1, 0, 0, 0, 7754, 7748, 1, 0, 0, 0, 7754, 7749, 1, 0, 0, 0, 7754, 7750, 1, 0, 0, 0, 7754, 7751, 1, 0, 0, 0, 7754, 7752, 1, 0, 0, 0, 7754, 7753, 1, 0, 0, 0, 7755, 829, 1, 0, 0, 0, 7756, 7757, 7, 110, 0, 0, 7757, 831, 1, 0, 0, 0, 7758, 7810, 5, 387, 0, 0, 7759, 7810, 5, 388, 0, 0, 7760, 7810, 3, 664, 332, 0, 7761, 7810, 5, 390, 0, 0, 7762, 7810, 5, 391, 0, 0, 7763, 7810, 3, 666, 333, 0, 7764, 7810, 5, 393, 0, 0, 7765, 7810, 5, 394, 0, 0, 7766, 7810, 5, 395, 0, 0, 7767, 7810, 5, 396, 0, 0, 7768, 7810, 5, 397, 0, 0, 7769, 7810, 5, 398, 0, 0, 7770, 7810, 5, 399, 0, 0, 7771, 7810, 5, 470, 0, 0, 7772, 7810, 5, 400, 0, 0, 7773, 7810, 5, 401, 0, 0, 7774, 7810, 5, 402, 0, 0, 7775, 7810, 5, 403, 0, 0, 7776, 7810, 5, 404, 0, 0, 7777, 7810, 5, 405, 0, 0, 7778, 7810, 5, 406, 0, 0, 7779, 7810, 5, 407, 0, 0, 7780, 7810, 5, 489, 0, 0, 7781, 7810, 5, 408, 0, 0, 7782, 7810, 3, 660, 330, 0, 7783, 7810, 5, 453, 0, 0, 7784, 7810, 5, 410, 0, 0, 7785, 7810, 5, 411, 0, 0, 7786, 7810, 5, 412, 0, 0, 7787, 7810, 5, 413, 0, 0, 7788, 7810, 5, 414, 0, 0, 7789, 7810, 5, 415, 0, 0, 7790, 7810, 5, 416, 0, 0, 7791, 7810, 5, 417, 0, 0, 7792, 7810, 5, 418, 0, 0, 7793, 7810, 5, 419, 0, 0, 7794, 7810, 5, 420, 0, 0, 7795, 7810, 5, 421, 0, 0, 7796, 7810, 5, 422, 0, 0, 7797, 7810, 5, 423, 0, 0, 7798, 7810, 5, 424, 0, 0, 7799, 7810, 5, 425, 0, 0, 7800, 7810, 5, 426, 0, 0, 7801, 7810, 5, 427, 0, 0, 7802, 7810, 5, 428, 0, 0, 7803, 7810, 5, 476, 0, 0, 7804, 7810, 5, 429, 0, 0, 7805, 7810, 5, 430, 0, 0, 7806, 7810, 5, 431, 0, 0, 7807, 7810, 5, 432, 0, 0, 7808, 7810, 5, 474, 0, 0, 7809, 7758, 1, 0, 0, 0, 7809, 7759, 1, 0, 0, 0, 7809, 7760, 1, 0, 0, 0, 7809, 7761, 1, 0, 0, 0, 7809, 7762, 1, 0, 0, 0, 7809, 7763, 1, 0, 0, 0, 7809, 7764, 1, 0, 0, 0, 7809, 7765, 1, 0, 0, 0, 7809, 7766, 1, 0, 0, 0, 7809, 7767, 1, 0, 0, 0, 7809, 7768, 1, 0, 0, 0, 7809, 7769, 1, 0, 0, 0, 7809, 7770, 1, 0, 0, 0, 7809, 7771, 1, 0, 0, 0, 7809, 7772, 1, 0, 0, 0, 7809, 7773, 1, 0, 0, 0, 7809, 7774, 1, 0, 0, 0, 7809, 7775, 1, 0, 0, 0, 7809, 7776, 1, 0, 0, 0, 7809, 7777, 1, 0, 0, 0, 7809, 7778, 1, 0, 0, 0, 7809, 7779, 1, 0, 0, 0, 7809, 7780, 1, 0, 0, 0, 7809, 7781, 1, 0, 0, 0, 7809, 7782, 1, 0, 0, 0, 7809, 7783, 1, 0, 0, 0, 7809, 7784, 1, 0, 0, 0, 7809, 7785, 1, 0, 0, 0, 7809, 7786, 1, 0, 0, 0, 7809, 7787, 1, 0, 0, 0, 7809, 7788, 1, 0, 0, 0, 7809, 7789, 1, 0, 0, 0, 7809, 7790, 1, 0, 0, 0, 7809, 7791, 1, 0, 0, 0, 7809, 7792, 1, 0, 0, 0, 7809, 7793, 1, 0, 0, 0, 7809, 7794, 1, 0, 0, 0, 7809, 7795, 1, 0, 0, 0, 7809, 7796, 1, 0, 0, 0, 7809, 7797, 1, 0, 0, 0, 7809, 7798, 1, 0, 0, 0, 7809, 7799, 1, 0, 0, 0, 7809, 7800, 1, 0, 0, 0, 7809, 7801, 1, 0, 0, 0, 7809, 7802, 1, 0, 0, 0, 7809, 7803, 1, 0, 0, 0, 7809, 7804, 1, 0, 0, 0, 7809, 7805, 1, 0, 0, 0, 7809, 7806, 1, 0, 0, 0, 7809, 7807, 1, 0, 0, 0, 7809, 7808, 1, 0, 0, 0, 7810, 833, 1, 0, 0, 0, 7811, 7812, 7, 111, 0, 0, 7812, 835, 1, 0, 0, 0, 7813, 7814, 7, 112, 0, 0, 7814, 837, 1, 0, 0, 0, 7815, 7817, 3, 840, 420, 0, 7816, 7815, 1, 0, 0, 0, 7816, 7817, 1, 0, 0, 0, 7817, 7828, 1, 0, 0, 0, 7818, 7826, 5, 178, 0, 0, 7819, 7823, 3, 842, 421, 0, 7820, 7823, 5, 178, 0, 0, 7821, 7823, 3, 840, 420, 0, 7822, 7819, 1, 0, 0, 0, 7822, 7820, 1, 0, 0, 0, 7822, 7821, 1, 0, 0, 0, 7823, 7824, 1, 0, 0, 0, 7824, 7822, 1, 0, 0, 0, 7824, 7825, 1, 0, 0, 0, 7825, 7827, 1, 0, 0, 0, 7826, 7822, 1, 0, 0, 0, 7826, 7827, 1, 0, 0, 0, 7827, 7829, 1, 0, 0, 0, 7828, 7818, 1, 0, 0, 0, 7828, 7829, 1, 0, 0, 0, 7829, 7830, 1, 0, 0, 0, 7830, 7834, 5, 146, 0, 0, 7831, 7833, 3, 848, 424, 0, 7832, 7831, 1, 0, 0, 0, 7833, 7836, 1, 0, 0, 0, 7834, 7832, 1, 0, 0, 0, 7834, 7835, 1, 0, 0, 0, 7835, 7838, 1, 0, 0, 0, 7836, 7834, 1, 0, 0, 0, 7837, 7839, 3, 926, 463, 0, 7838, 7837, 1, 0, 0, 0, 7838, 7839, 1, 0, 0, 0, 7839, 7840, 1, 0, 0, 0, 7840, 7842, 5, 454, 0, 0, 7841, 7843, 3, 930, 465, 0, 7842, 7841, 1, 0, 0, 0, 7842, 7843, 1, 0, 0, 0, 7843, 839, 1, 0, 0, 0, 7844, 7845, 5, 18, 0, 0, 7845, 7846, 3, 930, 465, 0, 7846, 7847, 5, 19, 0, 0, 7847, 841, 1, 0, 0, 0, 7848, 7895, 3, 930, 465, 0, 7849, 7850, 5, 496, 0, 0, 7850, 7853, 5, 62, 0, 0, 7851, 7854, 5, 28, 0, 0, 7852, 7854, 3, 820, 410, 0, 7853, 7851, 1, 0, 0, 0, 7853, 7852, 1, 0, 0, 0, 7854, 7896, 1, 0, 0, 0, 7855, 7857, 5, 497, 0, 0, 7856, 7855, 1, 0, 0, 0, 7856, 7857, 1, 0, 0, 0, 7857, 7858, 1, 0, 0, 0, 7858, 7860, 3, 654, 327, 0, 7859, 7861, 3, 98, 49, 0, 7860, 7859, 1, 0, 0, 0, 7860, 7861, 1, 0, 0, 0, 7861, 7864, 1, 0, 0, 0, 7862, 7863, 5, 77, 0, 0, 7863, 7865, 5, 78, 0, 0, 7864, 7862, 1, 0, 0, 0, 7864, 7865, 1, 0, 0, 0, 7865, 7871, 1, 0, 0, 0, 7866, 7869, 3, 846, 423, 0, 7867, 7869, 5, 53, 0, 0, 7868, 7866, 1, 0, 0, 0, 7868, 7867, 1, 0, 0, 0, 7869, 7870, 1, 0, 0, 0, 7870, 7872, 3, 932, 466, 0, 7871, 7868, 1, 0, 0, 0, 7871, 7872, 1, 0, 0, 0, 7872, 7896, 1, 0, 0, 0, 7873, 7875, 5, 269, 0, 0, 7874, 7873, 1, 0, 0, 0, 7874, 7875, 1, 0, 0, 0, 7875, 7876, 1, 0, 0, 0, 7876, 7878, 5, 324, 0, 0, 7877, 7874, 1, 0, 0, 0, 7877, 7878, 1, 0, 0, 0, 7878, 7879, 1, 0, 0, 0, 7879, 7891, 5, 172, 0, 0, 7880, 7881, 5, 2, 0, 0, 7881, 7886, 3, 844, 422, 0, 7882, 7883, 5, 6, 0, 0, 7883, 7885, 3, 844, 422, 0, 7884, 7882, 1, 0, 0, 0, 7885, 7888, 1, 0, 0, 0, 7886, 7884, 1, 0, 0, 0, 7886, 7887, 1, 0, 0, 0, 7887, 7889, 1, 0, 0, 0, 7888, 7886, 1, 0, 0, 0, 7889, 7890, 5, 3, 0, 0, 7890, 7892, 1, 0, 0, 0, 7891, 7880, 1, 0, 0, 0, 7891, 7892, 1, 0, 0, 0, 7892, 7893, 1, 0, 0, 0, 7893, 7894, 7, 113, 0, 0, 7894, 7896, 3, 562, 281, 0, 7895, 7849, 1, 0, 0, 0, 7895, 7856, 1, 0, 0, 0, 7895, 7877, 1, 0, 0, 0, 7896, 7897, 1, 0, 0, 0, 7897, 7898, 5, 7, 0, 0, 7898, 843, 1, 0, 0, 0, 7899, 7900, 3, 930, 465, 0, 7900, 7901, 3, 654, 327, 0, 7901, 845, 1, 0, 0, 0, 7902, 7903, 7, 114, 0, 0, 7903, 847, 1, 0, 0, 0, 7904, 7905, 3, 838, 419, 0, 7905, 7906, 5, 7, 0, 0, 7906, 7929, 1, 0, 0, 0, 7907, 7929, 3, 876, 438, 0, 7908, 7929, 3, 878, 439, 0, 7909, 7929, 3, 854, 427, 0, 7910, 7929, 3, 862, 431, 0, 7911, 7929, 3, 866, 433, 0, 7912, 7929, 3, 868, 434, 0, 7913, 7929, 3, 872, 436, 0, 7914, 7929, 3, 874, 437, 0, 7915, 7929, 3, 882, 441, 0, 7916, 7929, 3, 886, 443, 0, 7917, 7929, 3, 888, 444, 0, 7918, 7929, 3, 850, 425, 0, 7919, 7929, 3, 852, 426, 0, 7920, 7929, 3, 856, 428, 0, 7921, 7929, 3, 892, 446, 0, 7922, 7929, 3, 896, 448, 0, 7923, 7929, 3, 900, 450, 0, 7924, 7929, 3, 916, 458, 0, 7925, 7929, 3, 918, 459, 0, 7926, 7929, 3, 920, 460, 0, 7927, 7929, 3, 922, 461, 0, 7928, 7904, 1, 0, 0, 0, 7928, 7907, 1, 0, 0, 0, 7928, 7908, 1, 0, 0, 0, 7928, 7909, 1, 0, 0, 0, 7928, 7910, 1, 0, 0, 0, 7928, 7911, 1, 0, 0, 0, 7928, 7912, 1, 0, 0, 0, 7928, 7913, 1, 0, 0, 0, 7928, 7914, 1, 0, 0, 0, 7928, 7915, 1, 0, 0, 0, 7928, 7916, 1, 0, 0, 0, 7928, 7917, 1, 0, 0, 0, 7928, 7918, 1, 0, 0, 0, 7928, 7919, 1, 0, 0, 0, 7928, 7920, 1, 0, 0, 0, 7928, 7921, 1, 0, 0, 0, 7928, 7922, 1, 0, 0, 0, 7928, 7923, 1, 0, 0, 0, 7928, 7924, 1, 0, 0, 0, 7928, 7925, 1, 0, 0, 0, 7928, 7926, 1, 0, 0, 0, 7928, 7927, 1, 0, 0, 0, 7929, 849, 1, 0, 0, 0, 7930, 7931, 5, 498, 0, 0, 7931, 7932, 3, 932, 466, 0, 7932, 7933, 5, 7, 0, 0, 7933, 851, 1, 0, 0, 0, 7934, 7935, 5, 433, 0, 0, 7935, 7942, 3, 930, 465, 0, 7936, 7938, 5, 2, 0, 0, 7937, 7939, 3, 732, 366, 0, 7938, 7937, 1, 0, 0, 0, 7938, 7939, 1, 0, 0, 0, 7939, 7940, 1, 0, 0, 0, 7940, 7941, 5, 3, 0, 0, 7941, 7943, 5, 7, 0, 0, 7942, 7936, 1, 0, 0, 0, 7942, 7943, 1, 0, 0, 0, 7943, 7954, 1, 0, 0, 0, 7944, 7945, 5, 57, 0, 0, 7945, 7946, 3, 930, 465, 0, 7946, 7948, 5, 2, 0, 0, 7947, 7949, 3, 732, 366, 0, 7948, 7947, 1, 0, 0, 0, 7948, 7949, 1, 0, 0, 0, 7949, 7950, 1, 0, 0, 0, 7950, 7951, 5, 3, 0, 0, 7951, 7952, 5, 7, 0, 0, 7952, 7954, 1, 0, 0, 0, 7953, 7934, 1, 0, 0, 0, 7953, 7944, 1, 0, 0, 0, 7954, 853, 1, 0, 0, 0, 7955, 7956, 3, 860, 430, 0, 7956, 7957, 3, 846, 423, 0, 7957, 7958, 3, 932, 466, 0, 7958, 7959, 5, 7, 0, 0, 7959, 855, 1, 0, 0, 0, 7960, 7962, 5, 499, 0, 0, 7961, 7963, 7, 115, 0, 0, 7962, 7961, 1, 0, 0, 0, 7962, 7963, 1, 0, 0, 0, 7963, 7964, 1, 0, 0, 0, 7964, 7965, 5, 500, 0, 0, 7965, 7970, 3, 858, 429, 0, 7966, 7967, 5, 6, 0, 0, 7967, 7969, 3, 858, 429, 0, 7968, 7966, 1, 0, 0, 0, 7969, 7972, 1, 0, 0, 0, 7970, 7968, 1, 0, 0, 0, 7970, 7971, 1, 0, 0, 0, 7971, 7973, 1, 0, 0, 0, 7972, 7970, 1, 0, 0, 0, 7973, 7974, 5, 7, 0, 0, 7974, 857, 1, 0, 0, 0, 7975, 7976, 3, 860, 430, 0, 7976, 7977, 3, 846, 423, 0, 7977, 7978, 3, 820, 410, 0, 7978, 859, 1, 0, 0, 0, 7979, 7982, 3, 318, 159, 0, 7980, 7982, 5, 28, 0, 0, 7981, 7979, 1, 0, 0, 0, 7981, 7980, 1, 0, 0, 0, 7982, 7989, 1, 0, 0, 0, 7983, 7984, 5, 4, 0, 0, 7984, 7985, 3, 676, 338, 0, 7985, 7986, 5, 5, 0, 0, 7986, 7988, 1, 0, 0, 0, 7987, 7983, 1, 0, 0, 0, 7988, 7991, 1, 0, 0, 0, 7989, 7987, 1, 0, 0, 0, 7989, 7990, 1, 0, 0, 0, 7990, 861, 1, 0, 0, 0, 7991, 7989, 1, 0, 0, 0, 7992, 7993, 5, 220, 0, 0, 7993, 7994, 3, 932, 466, 0, 7994, 7998, 5, 93, 0, 0, 7995, 7997, 3, 848, 424, 0, 7996, 7995, 1, 0, 0, 0, 7997, 8000, 1, 0, 0, 0, 7998, 7996, 1, 0, 0, 0, 7998, 7999, 1, 0, 0, 0, 7999, 8012, 1, 0, 0, 0, 8000, 7998, 1, 0, 0, 0, 8001, 8002, 5, 502, 0, 0, 8002, 8003, 3, 676, 338, 0, 8003, 8007, 5, 93, 0, 0, 8004, 8006, 3, 848, 424, 0, 8005, 8004, 1, 0, 0, 0, 8006, 8009, 1, 0, 0, 0, 8007, 8005, 1, 0, 0, 0, 8007, 8008, 1, 0, 0, 0, 8008, 8011, 1, 0, 0, 0, 8009, 8007, 1, 0, 0, 0, 8010, 8001, 1, 0, 0, 0, 8011, 8014, 1, 0, 0, 0, 8012, 8010, 1, 0, 0, 0, 8012, 8013, 1, 0, 0, 0, 8013, 8016, 1, 0, 0, 0, 8014, 8012, 1, 0, 0, 0, 8015, 8017, 3, 864, 432, 0, 8016, 8015, 1, 0, 0, 0, 8016, 8017, 1, 0, 0, 0, 8017, 8018, 1, 0, 0, 0, 8018, 8019, 5, 454, 0, 0, 8019, 8020, 5, 220, 0, 0, 8020, 8021, 5, 7, 0, 0, 8021, 863, 1, 0, 0, 0, 8022, 8026, 5, 58, 0, 0, 8023, 8025, 3, 848, 424, 0, 8024, 8023, 1, 0, 0, 0, 8025, 8028, 1, 0, 0, 0, 8026, 8024, 1, 0, 0, 0, 8026, 8027, 1, 0, 0, 0, 8027, 865, 1, 0, 0, 0, 8028, 8026, 1, 0, 0, 0, 8029, 8031, 5, 40, 0, 0, 8030, 8032, 3, 932, 466, 0, 8031, 8030, 1, 0, 0, 0, 8031, 8032, 1, 0, 0, 0, 8032, 8042, 1, 0, 0, 0, 8033, 8034, 5, 102, 0, 0, 8034, 8035, 3, 732, 366, 0, 8035, 8039, 5, 93, 0, 0, 8036, 8038, 3, 848, 424, 0, 8037, 8036, 1, 0, 0, 0, 8038, 8041, 1, 0, 0, 0, 8039, 8037, 1, 0, 0, 0, 8039, 8040, 1, 0, 0, 0, 8040, 8043, 1, 0, 0, 0, 8041, 8039, 1, 0, 0, 0, 8042, 8033, 1, 0, 0, 0, 8043, 8044, 1, 0, 0, 0, 8044, 8042, 1, 0, 0, 0, 8044, 8045, 1, 0, 0, 0, 8045, 8047, 1, 0, 0, 0, 8046, 8048, 3, 864, 432, 0, 8047, 8046, 1, 0, 0, 0, 8047, 8048, 1, 0, 0, 0, 8048, 8049, 1, 0, 0, 0, 8049, 8050, 5, 454, 0, 0, 8050, 8051, 5, 40, 0, 0, 8051, 8052, 5, 7, 0, 0, 8052, 867, 1, 0, 0, 0, 8053, 8055, 3, 840, 420, 0, 8054, 8053, 1, 0, 0, 0, 8054, 8055, 1, 0, 0, 0, 8055, 8060, 1, 0, 0, 0, 8056, 8057, 5, 503, 0, 0, 8057, 8061, 3, 676, 338, 0, 8058, 8059, 5, 62, 0, 0, 8059, 8061, 3, 870, 435, 0, 8060, 8056, 1, 0, 0, 0, 8060, 8058, 1, 0, 0, 0, 8060, 8061, 1, 0, 0, 0, 8061, 8062, 1, 0, 0, 0, 8062, 8063, 3, 884, 442, 0, 8063, 869, 1, 0, 0, 0, 8064, 8065, 3, 316, 158, 0, 8065, 8088, 5, 68, 0, 0, 8066, 8068, 3, 820, 410, 0, 8067, 8069, 3, 536, 268, 0, 8068, 8067, 1, 0, 0, 0, 8068, 8069, 1, 0, 0, 0, 8069, 8089, 1, 0, 0, 0, 8070, 8089, 3, 562, 281, 0, 8071, 8089, 3, 522, 261, 0, 8072, 8073, 5, 202, 0, 0, 8073, 8076, 3, 676, 338, 0, 8074, 8075, 5, 100, 0, 0, 8075, 8077, 3, 732, 366, 0, 8076, 8074, 1, 0, 0, 0, 8076, 8077, 1, 0, 0, 0, 8077, 8089, 1, 0, 0, 0, 8078, 8080, 5, 504, 0, 0, 8079, 8078, 1, 0, 0, 0, 8079, 8080, 1, 0, 0, 0, 8080, 8081, 1, 0, 0, 0, 8081, 8082, 3, 676, 338, 0, 8082, 8083, 5, 24, 0, 0, 8083, 8086, 3, 676, 338, 0, 8084, 8085, 5, 147, 0, 0, 8085, 8087, 3, 676, 338, 0, 8086, 8084, 1, 0, 0, 0, 8086, 8087, 1, 0, 0, 0, 8087, 8089, 1, 0, 0, 0, 8088, 8066, 1, 0, 0, 0, 8088, 8070, 1, 0, 0, 0, 8088, 8071, 1, 0, 0, 0, 8088, 8072, 1, 0, 0, 0, 8088, 8079, 1, 0, 0, 0, 8089, 871, 1, 0, 0, 0, 8090, 8092, 3, 840, 420, 0, 8091, 8090, 1, 0, 0, 0, 8091, 8092, 1, 0, 0, 0, 8092, 8093, 1, 0, 0, 0, 8093, 8094, 5, 505, 0, 0, 8094, 8097, 3, 316, 158, 0, 8095, 8096, 5, 506, 0, 0, 8096, 8098, 5, 574, 0, 0, 8097, 8095, 1, 0, 0, 0, 8097, 8098, 1, 0, 0, 0, 8098, 8099, 1, 0, 0, 0, 8099, 8100, 5, 68, 0, 0, 8100, 8101, 5, 35, 0, 0, 8101, 8102, 3, 676, 338, 0, 8102, 8103, 3, 884, 442, 0, 8103, 873, 1, 0, 0, 0, 8104, 8106, 7, 116, 0, 0, 8105, 8107, 3, 930, 465, 0, 8106, 8105, 1, 0, 0, 0, 8106, 8107, 1, 0, 0, 0, 8107, 8110, 1, 0, 0, 0, 8108, 8109, 5, 102, 0, 0, 8109, 8111, 3, 932, 466, 0, 8110, 8108, 1, 0, 0, 0, 8110, 8111, 1, 0, 0, 0, 8111, 8112, 1, 0, 0, 0, 8112, 8113, 5, 7, 0, 0, 8113, 875, 1, 0, 0, 0, 8114, 8129, 5, 508, 0, 0, 8115, 8116, 5, 268, 0, 0, 8116, 8130, 3, 932, 466, 0, 8117, 8124, 5, 509, 0, 0, 8118, 8119, 5, 202, 0, 0, 8119, 8120, 3, 676, 338, 0, 8120, 8121, 5, 100, 0, 0, 8121, 8122, 3, 732, 366, 0, 8122, 8125, 1, 0, 0, 0, 8123, 8125, 3, 562, 281, 0, 8124, 8118, 1, 0, 0, 0, 8124, 8123, 1, 0, 0, 0, 8125, 8130, 1, 0, 0, 0, 8126, 8128, 3, 932, 466, 0, 8127, 8126, 1, 0, 0, 0, 8127, 8128, 1, 0, 0, 0, 8128, 8130, 1, 0, 0, 0, 8129, 8115, 1, 0, 0, 0, 8129, 8117, 1, 0, 0, 0, 8129, 8127, 1, 0, 0, 0, 8130, 8131, 1, 0, 0, 0, 8131, 8132, 5, 7, 0, 0, 8132, 877, 1, 0, 0, 0, 8133, 8163, 5, 510, 0, 0, 8134, 8136, 7, 117, 0, 0, 8135, 8134, 1, 0, 0, 0, 8135, 8136, 1, 0, 0, 0, 8136, 8149, 1, 0, 0, 0, 8137, 8150, 3, 828, 414, 0, 8138, 8139, 5, 511, 0, 0, 8139, 8150, 3, 810, 405, 0, 8140, 8147, 3, 810, 405, 0, 8141, 8142, 5, 6, 0, 0, 8142, 8144, 3, 676, 338, 0, 8143, 8141, 1, 0, 0, 0, 8144, 8145, 1, 0, 0, 0, 8145, 8143, 1, 0, 0, 0, 8145, 8146, 1, 0, 0, 0, 8146, 8148, 1, 0, 0, 0, 8147, 8143, 1, 0, 0, 0, 8147, 8148, 1, 0, 0, 0, 8148, 8150, 1, 0, 0, 0, 8149, 8137, 1, 0, 0, 0, 8149, 8138, 1, 0, 0, 0, 8149, 8140, 1, 0, 0, 0, 8149, 8150, 1, 0, 0, 0, 8150, 8160, 1, 0, 0, 0, 8151, 8152, 5, 100, 0, 0, 8152, 8157, 3, 880, 440, 0, 8153, 8154, 5, 6, 0, 0, 8154, 8156, 3, 880, 440, 0, 8155, 8153, 1, 0, 0, 0, 8156, 8159, 1, 0, 0, 0, 8157, 8155, 1, 0, 0, 0, 8157, 8158, 1, 0, 0, 0, 8158, 8161, 1, 0, 0, 0, 8159, 8157, 1, 0, 0, 0, 8160, 8151, 1, 0, 0, 0, 8160, 8161, 1, 0, 0, 0, 8161, 8162, 1, 0, 0, 0, 8162, 8164, 5, 7, 0, 0, 8163, 8135, 1, 0, 0, 0, 8163, 8164, 1, 0, 0, 0, 8164, 879, 1, 0, 0, 0, 8165, 8166, 3, 828, 414, 0, 8166, 8167, 5, 10, 0, 0, 8167, 8168, 3, 676, 338, 0, 8168, 881, 1, 0, 0, 0, 8169, 8170, 5, 518, 0, 0, 8170, 8173, 3, 932, 466, 0, 8171, 8172, 5, 6, 0, 0, 8172, 8174, 3, 932, 466, 0, 8173, 8171, 1, 0, 0, 0, 8173, 8174, 1, 0, 0, 0, 8174, 8175, 1, 0, 0, 0, 8175, 8176, 5, 7, 0, 0, 8176, 883, 1, 0, 0, 0, 8177, 8181, 5, 519, 0, 0, 8178, 8180, 3, 848, 424, 0, 8179, 8178, 1, 0, 0, 0, 8180, 8183, 1, 0, 0, 0, 8181, 8179, 1, 0, 0, 0, 8181, 8182, 1, 0, 0, 0, 8182, 8184, 1, 0, 0, 0, 8183, 8181, 1, 0, 0, 0, 8184, 8185, 5, 454, 0, 0, 8185, 8187, 5, 519, 0, 0, 8186, 8188, 3, 930, 465, 0, 8187, 8186, 1, 0, 0, 0, 8187, 8188, 1, 0, 0, 0, 8188, 8189, 1, 0, 0, 0, 8189, 8190, 5, 7, 0, 0, 8190, 885, 1, 0, 0, 0, 8191, 8193, 3, 4, 2, 0, 8192, 8194, 3, 890, 445, 0, 8193, 8192, 1, 0, 0, 0, 8193, 8194, 1, 0, 0, 0, 8194, 8195, 1, 0, 0, 0, 8195, 8196, 5, 7, 0, 0, 8196, 887, 1, 0, 0, 0, 8197, 8198, 5, 202, 0, 0, 8198, 8214, 3, 676, 338, 0, 8199, 8201, 3, 890, 445, 0, 8200, 8199, 1, 0, 0, 0, 8200, 8201, 1, 0, 0, 0, 8201, 8204, 1, 0, 0, 0, 8202, 8203, 5, 100, 0, 0, 8203, 8205, 3, 732, 366, 0, 8204, 8202, 1, 0, 0, 0, 8204, 8205, 1, 0, 0, 0, 8205, 8215, 1, 0, 0, 0, 8206, 8207, 5, 100, 0, 0, 8207, 8209, 3, 732, 366, 0, 8208, 8206, 1, 0, 0, 0, 8208, 8209, 1, 0, 0, 0, 8209, 8211, 1, 0, 0, 0, 8210, 8212, 3, 890, 445, 0, 8211, 8210, 1, 0, 0, 0, 8211, 8212, 1, 0, 0, 0, 8212, 8215, 1, 0, 0, 0, 8213, 8215, 1, 0, 0, 0, 8214, 8200, 1, 0, 0, 0, 8214, 8208, 1, 0, 0, 0, 8214, 8213, 1, 0, 0, 0, 8215, 8216, 1, 0, 0, 0, 8216, 8217, 5, 7, 0, 0, 8217, 889, 1, 0, 0, 0, 8218, 8220, 5, 71, 0, 0, 8219, 8221, 5, 346, 0, 0, 8220, 8219, 1, 0, 0, 0, 8220, 8221, 1, 0, 0, 0, 8221, 8222, 1, 0, 0, 0, 8222, 8223, 3, 732, 366, 0, 8223, 891, 1, 0, 0, 0, 8224, 8256, 5, 520, 0, 0, 8225, 8230, 3, 924, 462, 0, 8226, 8228, 5, 269, 0, 0, 8227, 8226, 1, 0, 0, 0, 8227, 8228, 1, 0, 0, 0, 8228, 8229, 1, 0, 0, 0, 8229, 8231, 5, 324, 0, 0, 8230, 8227, 1, 0, 0, 0, 8230, 8231, 1, 0, 0, 0, 8231, 8232, 1, 0, 0, 0, 8232, 8240, 5, 62, 0, 0, 8233, 8241, 3, 562, 281, 0, 8234, 8235, 5, 202, 0, 0, 8235, 8238, 3, 932, 466, 0, 8236, 8237, 5, 100, 0, 0, 8237, 8239, 3, 732, 366, 0, 8238, 8236, 1, 0, 0, 0, 8238, 8239, 1, 0, 0, 0, 8239, 8241, 1, 0, 0, 0, 8240, 8233, 1, 0, 0, 0, 8240, 8234, 1, 0, 0, 0, 8241, 8257, 1, 0, 0, 0, 8242, 8254, 3, 820, 410, 0, 8243, 8244, 5, 2, 0, 0, 8244, 8249, 3, 894, 447, 0, 8245, 8246, 5, 6, 0, 0, 8246, 8248, 3, 894, 447, 0, 8247, 8245, 1, 0, 0, 0, 8248, 8251, 1, 0, 0, 0, 8249, 8247, 1, 0, 0, 0, 8249, 8250, 1, 0, 0, 0, 8250, 8252, 1, 0, 0, 0, 8251, 8249, 1, 0, 0, 0, 8252, 8253, 5, 3, 0, 0, 8253, 8255, 1, 0, 0, 0, 8254, 8243, 1, 0, 0, 0, 8254, 8255, 1, 0, 0, 0, 8255, 8257, 1, 0, 0, 0, 8256, 8225, 1, 0, 0, 0, 8256, 8242, 1, 0, 0, 0, 8257, 8258, 1, 0, 0, 0, 8258, 8259, 5, 7, 0, 0, 8259, 893, 1, 0, 0, 0, 8260, 8261, 3, 820, 410, 0, 8261, 8262, 5, 20, 0, 0, 8262, 8264, 1, 0, 0, 0, 8263, 8260, 1, 0, 0, 0, 8263, 8264, 1, 0, 0, 0, 8264, 8265, 1, 0, 0, 0, 8265, 8266, 3, 676, 338, 0, 8266, 895, 1, 0, 0, 0, 8267, 8269, 5, 61, 0, 0, 8268, 8270, 3, 898, 449, 0, 8269, 8268, 1, 0, 0, 0, 8269, 8270, 1, 0, 0, 0, 8270, 8272, 1, 0, 0, 0, 8271, 8273, 3, 334, 167, 0, 8272, 8271, 1, 0, 0, 0, 8272, 8273, 1, 0, 0, 0, 8273, 8274, 1, 0, 0, 0, 8274, 8275, 3, 924, 462, 0, 8275, 8276, 5, 71, 0, 0, 8276, 8277, 3, 732, 366, 0, 8277, 8278, 5, 7, 0, 0, 8278, 897, 1, 0, 0, 0, 8279, 8294, 5, 268, 0, 0, 8280, 8294, 5, 293, 0, 0, 8281, 8294, 5, 207, 0, 0, 8282, 8294, 5, 249, 0, 0, 8283, 8285, 7, 51, 0, 0, 8284, 8283, 1, 0, 0, 0, 8284, 8285, 1, 0, 0, 0, 8285, 8286, 1, 0, 0, 0, 8286, 8294, 3, 676, 338, 0, 8287, 8294, 5, 30, 0, 0, 8288, 8291, 7, 118, 0, 0, 8289, 8292, 3, 676, 338, 0, 8290, 8292, 5, 30, 0, 0, 8291, 8289, 1, 0, 0, 0, 8291, 8290, 1, 0, 0, 0, 8291, 8292, 1, 0, 0, 0, 8292, 8294, 1, 0, 0, 0, 8293, 8279, 1, 0, 0, 0, 8293, 8280, 1, 0, 0, 0, 8293, 8281, 1, 0, 0, 0, 8293, 8282, 1, 0, 0, 0, 8293, 8284, 1, 0, 0, 0, 8293, 8287, 1, 0, 0, 0, 8293, 8288, 1, 0, 0, 0, 8294, 899, 1, 0, 0, 0, 8295, 8297, 5, 265, 0, 0, 8296, 8298, 3, 898, 449, 0, 8297, 8296, 1, 0, 0, 0, 8297, 8298, 1, 0, 0, 0, 8298, 8299, 1, 0, 0, 0, 8299, 8300, 3, 924, 462, 0, 8300, 8301, 5, 7, 0, 0, 8301, 901, 1, 0, 0, 0, 8302, 8304, 3, 574, 287, 0, 8303, 8302, 1, 0, 0, 0, 8303, 8304, 1, 0, 0, 0, 8304, 8305, 1, 0, 0, 0, 8305, 8306, 5, 525, 0, 0, 8306, 8308, 5, 71, 0, 0, 8307, 8309, 5, 81, 0, 0, 8308, 8307, 1, 0, 0, 0, 8308, 8309, 1, 0, 0, 0, 8309, 8310, 1, 0, 0, 0, 8310, 8312, 3, 776, 388, 0, 8311, 8313, 5, 9, 0, 0, 8312, 8311, 1, 0, 0, 0, 8312, 8313, 1, 0, 0, 0, 8313, 8318, 1, 0, 0, 0, 8314, 8316, 5, 36, 0, 0, 8315, 8314, 1, 0, 0, 0, 8315, 8316, 1, 0, 0, 0, 8316, 8317, 1, 0, 0, 0, 8317, 8319, 3, 820, 410, 0, 8318, 8315, 1, 0, 0, 0, 8318, 8319, 1, 0, 0, 0, 8319, 8320, 1, 0, 0, 0, 8320, 8321, 5, 100, 0, 0, 8321, 8322, 3, 904, 452, 0, 8322, 8323, 5, 80, 0, 0, 8323, 8325, 3, 676, 338, 0, 8324, 8326, 3, 906, 453, 0, 8325, 8324, 1, 0, 0, 0, 8326, 8327, 1, 0, 0, 0, 8327, 8325, 1, 0, 0, 0, 8327, 8328, 1, 0, 0, 0, 8328, 903, 1, 0, 0, 0, 8329, 8331, 5, 81, 0, 0, 8330, 8329, 1, 0, 0, 0, 8330, 8331, 1, 0, 0, 0, 8331, 8332, 1, 0, 0, 0, 8332, 8334, 3, 776, 388, 0, 8333, 8335, 5, 9, 0, 0, 8334, 8333, 1, 0, 0, 0, 8334, 8335, 1, 0, 0, 0, 8335, 8341, 1, 0, 0, 0, 8336, 8339, 3, 566, 283, 0, 8337, 8339, 3, 610, 305, 0, 8338, 8336, 1, 0, 0, 0, 8338, 8337, 1, 0, 0, 0, 8339, 8341, 1, 0, 0, 0, 8340, 8330, 1, 0, 0, 0, 8340, 8338, 1, 0, 0, 0, 8341, 8346, 1, 0, 0, 0, 8342, 8344, 5, 36, 0, 0, 8343, 8342, 1, 0, 0, 0, 8343, 8344, 1, 0, 0, 0, 8344, 8345, 1, 0, 0, 0, 8345, 8347, 3, 820, 410, 0, 8346, 8343, 1, 0, 0, 0, 8346, 8347, 1, 0, 0, 0, 8347, 905, 1, 0, 0, 0, 8348, 8349, 5, 102, 0, 0, 8349, 8352, 5, 526, 0, 0, 8350, 8351, 5, 33, 0, 0, 8351, 8353, 3, 676, 338, 0, 8352, 8350, 1, 0, 0, 0, 8352, 8353, 1, 0, 0, 0, 8353, 8354, 1, 0, 0, 0, 8354, 8359, 5, 93, 0, 0, 8355, 8360, 3, 910, 455, 0, 8356, 8360, 5, 182, 0, 0, 8357, 8358, 5, 57, 0, 0, 8358, 8360, 5, 270, 0, 0, 8359, 8355, 1, 0, 0, 0, 8359, 8356, 1, 0, 0, 0, 8359, 8357, 1, 0, 0, 0, 8360, 8375, 1, 0, 0, 0, 8361, 8362, 5, 102, 0, 0, 8362, 8363, 5, 77, 0, 0, 8363, 8366, 5, 526, 0, 0, 8364, 8365, 5, 33, 0, 0, 8365, 8367, 3, 676, 338, 0, 8366, 8364, 1, 0, 0, 0, 8366, 8367, 1, 0, 0, 0, 8367, 8368, 1, 0, 0, 0, 8368, 8372, 5, 93, 0, 0, 8369, 8373, 3, 908, 454, 0, 8370, 8371, 5, 57, 0, 0, 8371, 8373, 5, 270, 0, 0, 8372, 8369, 1, 0, 0, 0, 8372, 8370, 1, 0, 0, 0, 8373, 8375, 1, 0, 0, 0, 8374, 8348, 1, 0, 0, 0, 8374, 8361, 1, 0, 0, 0, 8375, 907, 1, 0, 0, 0, 8376, 8378, 5, 241, 0, 0, 8377, 8379, 3, 146, 73, 0, 8378, 8377, 1, 0, 0, 0, 8378, 8379, 1, 0, 0, 0, 8379, 8383, 1, 0, 0, 0, 8380, 8381, 5, 463, 0, 0, 8381, 8382, 7, 77, 0, 0, 8382, 8384, 5, 450, 0, 0, 8383, 8380, 1, 0, 0, 0, 8383, 8384, 1, 0, 0, 0, 8384, 8385, 1, 0, 0, 0, 8385, 8386, 3, 912, 456, 0, 8386, 909, 1, 0, 0, 0, 8387, 8388, 5, 369, 0, 0, 8388, 8406, 5, 333, 0, 0, 8389, 8390, 3, 802, 401, 0, 8390, 8391, 5, 10, 0, 0, 8391, 8392, 3, 914, 457, 0, 8392, 8407, 1, 0, 0, 0, 8393, 8394, 3, 146, 73, 0, 8394, 8395, 5, 10, 0, 0, 8395, 8396, 5, 2, 0, 0, 8396, 8401, 3, 914, 457, 0, 8397, 8398, 5, 6, 0, 0, 8398, 8400, 3, 914, 457, 0, 8399, 8397, 1, 0, 0, 0, 8400, 8403, 1, 0, 0, 0, 8401, 8399, 1, 0, 0, 0, 8401, 8402, 1, 0, 0, 0, 8402, 8404, 1, 0, 0, 0, 8403, 8401, 1, 0, 0, 0, 8404, 8405, 5, 3, 0, 0, 8405, 8407, 1, 0, 0, 0, 8406, 8389, 1, 0, 0, 0, 8406, 8393, 1, 0, 0, 0, 8407, 8408, 1, 0, 0, 0, 8408, 8406, 1, 0, 0, 0, 8408, 8409, 1, 0, 0, 0, 8409, 911, 1, 0, 0, 0, 8410, 8411, 5, 422, 0, 0, 8411, 8412, 5, 2, 0, 0, 8412, 8417, 3, 914, 457, 0, 8413, 8414, 5, 6, 0, 0, 8414, 8416, 3, 914, 457, 0, 8415, 8413, 1, 0, 0, 0, 8416, 8419, 1, 0, 0, 0, 8417, 8415, 1, 0, 0, 0, 8417, 8418, 1, 0, 0, 0, 8418, 8420, 1, 0, 0, 0, 8419, 8417, 1, 0, 0, 0, 8420, 8421, 5, 3, 0, 0, 8421, 8425, 1, 0, 0, 0, 8422, 8423, 5, 53, 0, 0, 8423, 8425, 5, 422, 0, 0, 8424, 8410, 1, 0, 0, 0, 8424, 8422, 1, 0, 0, 0, 8425, 913, 1, 0, 0, 0, 8426, 8429, 3, 590, 295, 0, 8427, 8429, 5, 53, 0, 0, 8428, 8426, 1, 0, 0, 0, 8428, 8427, 1, 0, 0, 0, 8429, 915, 1, 0, 0, 0, 8430, 8431, 5, 157, 0, 0, 8431, 8432, 3, 924, 462, 0, 8432, 8433, 5, 7, 0, 0, 8433, 917, 1, 0, 0, 0, 8434, 8435, 5, 78, 0, 0, 8435, 8436, 5, 7, 0, 0, 8436, 919, 1, 0, 0, 0, 8437, 8443, 7, 68, 0, 0, 8438, 8440, 5, 33, 0, 0, 8439, 8441, 5, 269, 0, 0, 8440, 8439, 1, 0, 0, 0, 8440, 8441, 1, 0, 0, 0, 8441, 8442, 1, 0, 0, 0, 8442, 8444, 5, 153, 0, 0, 8443, 8438, 1, 0, 0, 0, 8443, 8444, 1, 0, 0, 0, 8444, 8445, 1, 0, 0, 0, 8445, 8446, 5, 7, 0, 0, 8446, 921, 1, 0, 0, 0, 8447, 8448, 5, 333, 0, 0, 8448, 8449, 3, 318, 159, 0, 8449, 8450, 5, 94, 0, 0, 8450, 8451, 5, 53, 0, 0, 8451, 8452, 5, 7, 0, 0, 8452, 8460, 1, 0, 0, 0, 8453, 8456, 5, 313, 0, 0, 8454, 8457, 3, 318, 159, 0, 8455, 8457, 5, 30, 0, 0, 8456, 8454, 1, 0, 0, 0, 8456, 8455, 1, 0, 0, 0, 8457, 8458, 1, 0, 0, 0, 8458, 8460, 5, 7, 0, 0, 8459, 8447, 1, 0, 0, 0, 8459, 8453, 1, 0, 0, 0, 8460, 923, 1, 0, 0, 0, 8461, 8464, 3, 820, 410, 0, 8462, 8464, 5, 28, 0, 0, 8463, 8461, 1, 0, 0, 0, 8463, 8462, 1, 0, 0, 0, 8464, 925, 1, 0, 0, 0, 8465, 8482, 5, 517, 0, 0, 8466, 8467, 5, 102, 0, 0, 8467, 8472, 3, 928, 464, 0, 8468, 8469, 5, 82, 0, 0, 8469, 8471, 3, 928, 464, 0, 8470, 8468, 1, 0, 0, 0, 8471, 8474, 1, 0, 0, 0, 8472, 8470, 1, 0, 0, 0, 8472, 8473, 1, 0, 0, 0, 8473, 8475, 1, 0, 0, 0, 8474, 8472, 1, 0, 0, 0, 8475, 8479, 5, 93, 0, 0, 8476, 8478, 3, 848, 424, 0, 8477, 8476, 1, 0, 0, 0, 8478, 8481, 1, 0, 0, 0, 8479, 8477, 1, 0, 0, 0, 8479, 8480, 1, 0, 0, 0, 8480, 8483, 1, 0, 0, 0, 8481, 8479, 1, 0, 0, 0, 8482, 8466, 1, 0, 0, 0, 8483, 8484, 1, 0, 0, 0, 8484, 8482, 1, 0, 0, 0, 8484, 8485, 1, 0, 0, 0, 8485, 927, 1, 0, 0, 0, 8486, 8490, 3, 930, 465, 0, 8487, 8488, 5, 511, 0, 0, 8488, 8490, 3, 810, 405, 0, 8489, 8486, 1, 0, 0, 0, 8489, 8487, 1, 0, 0, 0, 8490, 929, 1, 0, 0, 0, 8491, 8494, 3, 820, 410, 0, 8492, 8494, 3, 830, 415, 0, 8493, 8491, 1, 0, 0, 0, 8493, 8492, 1, 0, 0, 0, 8494, 931, 1, 0, 0, 0, 8495, 8497, 3, 758, 379, 0, 8496, 8495, 1, 0, 0, 0, 8496, 8497, 1, 0, 0, 0, 8497, 8499, 1, 0, 0, 0, 8498, 8500, 3, 582, 291, 0, 8499, 8498, 1, 0, 0, 0, 8499, 8500, 1, 0, 0, 0, 8500, 8502, 1, 0, 0, 0, 8501, 8503, 3, 612, 306, 0, 8502, 8501, 1, 0, 0, 0, 8502, 8503, 1, 0, 0, 0, 8503, 8505, 1, 0, 0, 0, 8504, 8506, 3, 640, 320, 0, 8505, 8504, 1, 0, 0, 0, 8505, 8506, 1, 0, 0, 0, 8506, 8508, 1, 0, 0, 0, 8507, 8509, 3, 602, 301, 0, 8508, 8507, 1, 0, 0, 0, 8508, 8509, 1, 0, 0, 0, 8509, 8512, 1, 0, 0, 0, 8510, 8511, 5, 67, 0, 0, 8511, 8513, 3, 676, 338, 0, 8512, 8510, 1, 0, 0, 0, 8512, 8513, 1, 0, 0, 0, 8513, 8515, 1, 0, 0, 0, 8514, 8516, 3, 704, 352, 0, 8515, 8514, 1, 0, 0, 0, 8515, 8516, 1, 0, 0, 0, 8516, 933, 1, 0, 0, 0, 1193, 937, 944, 1064, 1066, 1075, 1080, 1086, 1121, 1131, 1137, 1142, 1149, 1154, 1161, 1172, 1180, 1184, 1196, 1202, 1208, 1212, 1217, 1221, 1234, 1244, 1246, 1252, 1257, 1270, 1273, 1278, 1283, 1294, 1298, 1310, 1314, 1317, 1321, 1333, 1351, 1358, 1366, 1371, 1378, 1386, 1392, 1400, 1408, 1412, 1426, 1431, 1436, 1448, 1454, 1466, 1471, 1481, 1487, 1492, 1500, 1505, 1512, 1517, 1522, 1532, 1537, 1542, 1549, 1553, 1567, 1573, 1579, 1584, 1591, 1603, 1611, 1619, 1635, 1644, 1653, 1662, 1666, 1678, 1686, 1696, 1716, 1721, 1724, 1731, 1734, 1738, 1742, 1745, 1750, 1755, 1759, 1768, 1774, 1778, 1787, 1790, 1796, 1805, 1817, 1821, 1825, 1830, 1833, 1839, 1841, 1843, 1847, 1853, 1857, 1862, 1867, 1871, 1874, 1881, 1894, 1907, 1931, 1941, 1948, 1953, 1957, 1964, 1969, 1972, 1974, 1979, 1983, 1987, 1991, 1996, 1999, 2003, 2006, 2010, 2018, 2023, 2026, 2030, 2036, 2045, 2049, 2059, 2064, 2068, 2072, 2074, 2076, 2083, 2088, 2092, 2097, 2109, 2114, 2118, 2122, 2127, 2131, 2134, 2137, 2140, 2143, 2146, 2151, 2154, 2157, 2160, 2163, 2166, 2172, 2176, 2179, 2182, 2185, 2188, 2190, 2197, 2205, 2215, 2220, 2230, 2233, 2238, 2243, 2248, 2251, 2256, 2265, 2267, 2271, 2274, 2278, 2283, 2288, 2292, 2295, 2299, 2302, 2307, 2310, 2315, 2318, 2322, 2325, 2328, 2333, 2336, 2344, 2356, 2360, 2367, 2372, 2375, 2378, 2381, 2386, 2397, 2403, 2407, 2410, 2413, 2418, 2425, 2428, 2432, 2440, 2445, 2448, 2451, 2458, 2463, 2472, 2475, 2478, 2483, 2486, 2498, 2508, 2525, 2529, 2533, 2535, 2552, 2554, 2570, 2581, 2584, 2587, 2596, 2605, 2621, 2624, 2627, 2635, 2639, 2646, 2655, 2659, 2665, 2669, 2672, 2675, 2678, 2681, 2687, 2691, 2696, 2700, 2703, 2706, 2709, 2714, 2720, 2724, 2728, 2732, 2738, 2740, 2745, 2751, 2757, 2761, 2776, 2781, 2784, 2786, 2789, 2793, 2797, 2800, 2803, 2811, 2817, 2819, 2825, 2830, 2835, 2839, 2846, 2848, 2859, 2898, 2908, 2910, 2913, 2917, 2921, 2931, 2933, 2939, 2941, 2950, 2962, 2976, 2981, 2984, 2991, 2996, 3004, 3006, 3012, 3017, 3021, 3026, 3032, 3039, 3045, 3047, 3056, 3062, 3070, 3076, 3081, 3086, 3094, 3109, 3111, 3115, 3119, 3122, 3125, 3134, 3137, 3140, 3146, 3152, 3156, 3168, 3174, 3177, 3182, 3186, 3193, 3203, 3205, 3229, 3241, 3246, 3248, 3252, 3255, 3258, 3268, 3271, 3281, 3286, 3291, 3294, 3297, 3305, 3311, 3318, 3326, 3329, 3340, 3344, 3350, 3357, 3360, 3369, 3383, 3386, 3400, 3411, 3414, 3426, 3431, 3444, 3449, 3462, 3471, 3474, 3477, 3484, 3487, 3499, 3505, 3507, 3515, 3523, 3531, 3543, 3548, 3559, 3570, 3578, 3586, 3593, 3600, 3602, 3605, 3610, 3615, 3634, 3643, 3646, 3673, 3682, 3685, 3689, 3693, 3697, 3704, 3708, 3712, 3716, 3720, 3725, 3729, 3734, 3740, 3745, 3752, 3756, 3762, 3766, 3771, 3779, 3785, 3790, 3797, 3802, 3806, 3811, 3817, 3824, 3829, 3836, 3841, 3848, 3852, 3860, 3864, 3866, 3869, 3874, 3884, 3899, 3902, 3910, 3917, 3922, 3928, 3932, 3939, 3944, 3947, 3950, 3954, 3963, 3981, 3984, 4016, 4021, 4027, 4047, 4052, 4058, 4061, 4065, 4069, 4075, 4078, 4082, 4086, 4091, 4094, 4097, 4100, 4113, 4119, 4127, 4134, 4139, 4142, 4149, 4152, 4160, 4163, 4168, 4175, 4178, 4198, 4210, 4213, 4219, 4224, 4233, 4241, 4246, 4252, 4259, 4267, 4270, 4281, 4283, 4297, 4303, 4311, 4313, 4319, 4323, 4326, 4329, 4334, 4339, 4343, 4346, 4349, 4352, 4355, 4363, 4374, 4377, 4380, 4385, 4388, 4392, 4396, 4402, 4410, 4413, 4426, 4431, 4433, 4438, 4445, 4452, 4461, 4469, 4477, 4484, 4492, 4499, 4507, 4511, 4515, 4517, 4523, 4528, 4532, 4539, 4544, 4549, 4554, 4556, 4566, 4576, 4592, 4610, 4622, 4629, 4644, 4649, 4652, 4657, 4662, 4667, 4670, 4673, 4678, 4685, 4689, 4694, 4701, 4705, 4711, 4720, 4729, 4741, 4743, 4756, 4762, 4766, 4768, 4775, 4788, 4795, 4797, 4813, 4817, 4821, 4826, 4831, 4836, 4841, 4844, 4856, 4909, 4918, 4922, 4931, 4935, 4944, 4948, 4953, 4956, 4960, 4965, 4967, 4976, 4981, 4992, 4996, 5010, 5018, 5056, 5058, 5077, 5080, 5107, 5111, 5115, 5119, 5123, 5126, 5141, 5148, 5162, 5175, 5200, 5219, 5234, 5250, 5257, 5268, 5271, 5290, 5293, 5306, 5310, 5330, 5342, 5346, 5368, 5372, 5382, 5386, 5392, 5396, 5400, 5404, 5411, 5416, 5427, 5431, 5434, 5439, 5445, 5456, 5460, 5463, 5467, 5471, 5474, 5484, 5487, 5491, 5496, 5502, 5505, 5510, 5513, 5520, 5522, 5528, 5532, 5541, 5546, 5548, 5558, 5561, 5566, 5574, 5577, 5582, 5584, 5586, 5592, 5609, 5615, 5628, 5634, 5638, 5643, 5673, 5688, 5693, 5697, 5710, 5714, 5716, 5725, 5731, 5733, 5737, 5740, 5743, 5746, 5749, 5751, 5754, 5758, 5766, 5771, 5774, 5780, 5784, 5788, 5793, 5795, 5799, 5803, 5810, 5816, 5820, 5822, 5824, 5837, 5845, 5853, 5864, 5874, 5879, 5883, 5887, 5894, 5897, 5899, 5907, 5911, 5914, 5921, 5928, 5933, 5940, 5943, 5945, 5948, 5954, 5959, 5963, 5970, 5980, 5987, 5990, 5993, 5997, 6008, 6011, 6014, 6017, 6020, 6027, 6030, 6033, 6040, 6052, 6059, 6061, 6066, 6071, 6073, 6079, 6086, 6091, 6096, 6100, 6104, 6108, 6110, 6114, 6118, 6121, 6124, 6126, 6136, 6138, 6143, 6147, 6152, 6156, 6163, 6168, 6172, 6175, 6181, 6184, 6203, 6210, 6214, 6217, 6221, 6225, 6228, 6231, 6236, 6245, 6252, 6256, 6260, 6264, 6267, 6269, 6274, 6278, 6283, 6289, 6296, 6301, 6306, 6315, 6322, 6330, 6341, 6346, 6350, 6353, 6357, 6362, 6366, 6371, 6379, 6390, 6395, 6399, 6402, 6405, 6407, 6410, 6413, 6416, 6420, 6424, 6428, 6430, 6439, 6444, 6450, 6454, 6456, 6463, 6468, 6474, 6476, 6480, 6487, 6492, 6495, 6501, 6505, 6511, 6520, 6526, 6528, 6533, 6536, 6545, 6552, 6554, 6561, 6566, 6569, 6579, 6590, 6595, 6599, 6607, 6617, 6624, 6630, 6641, 6647, 6657, 6666, 6670, 6673, 6675, 6677, 6681, 6689, 6692, 6697, 6702, 6709, 6711, 6717, 6721, 6724, 6729, 6732, 6734, 6740, 6749, 6755, 6758, 6766, 6769, 6773, 6779, 6781, 6784, 6788, 6793, 6800, 6807, 6809, 6815, 6817, 6822, 6824, 6828, 6837, 6841, 6849, 6851, 6865, 6868, 6876, 6885, 6891, 6896, 6904, 6906, 6911, 6915, 6920, 6925, 6931, 6947, 6949, 6958, 6973, 6978, 6981, 6987, 6992, 7005, 7010, 7014, 7021, 7040, 7052, 7057, 7065, 7067, 7069, 7078, 7081, 7086, 7091, 7094, 7105, 7113, 7118, 7120, 7123, 7127, 7138, 7159, 7167, 7180, 7190, 7196, 7202, 7205, 7208, 7234, 7236, 7257, 7267, 7280, 7285, 7289, 7291, 7303, 7310, 7316, 7322, 7326, 7337, 7347, 7351, 7356, 7359, 7362, 7371, 7382, 7384, 7388, 7393, 7402, 7407, 7415, 7425, 7433, 7437, 7440, 7447, 7455, 7459, 7466, 7474, 7476, 7485, 7488, 7500, 7509, 7516, 7525, 7535, 7540, 7544, 7546, 7549, 7554, 7559, 7567, 7575, 7578, 7585, 7593, 7601, 7609, 7626, 7633, 7641, 7658, 7664, 7670, 7678, 7684, 7689, 7697, 7702, 7705, 7714, 7721, 7726, 7730, 7735, 7741, 7746, 7754, 7809, 7816, 7822, 7824, 7826, 7828, 7834, 7838, 7842, 7853, 7856, 7860, 7864, 7868, 7871, 7874, 7877, 7886, 7891, 7895, 7928, 7938, 7942, 7948, 7953, 7962, 7970, 7981, 7989, 7998, 8007, 8012, 8016, 8026, 8031, 8039, 8044, 8047, 8054, 8060, 8068, 8076, 8079, 8086, 8088, 8091, 8097, 8106, 8110, 8124, 8127, 8129, 8135, 8145, 8147, 8149, 8157, 8160, 8163, 8173, 8181, 8187, 8193, 8200, 8204, 8208, 8211, 8214, 8220, 8227, 8230, 8238, 8240, 8249, 8254, 8256, 8263, 8269, 8272, 8284, 8291, 8293, 8297, 8303, 8308, 8312, 8315, 8318, 8327, 8330, 8334, 8338, 8340, 8343, 8346, 8352, 8359, 8366, 8372, 8374, 8378, 8383, 8401, 8406, 8408, 8417, 8424, 8428, 8440, 8443, 8456, 8459, 8463, 8472, 8479, 8484, 8489, 8493, 8496, 8499, 8502, 8505, 8508, 8512, 8515] \ No newline at end of file +[4, 1, 593, 8475, 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, 1, 0, 5, 0, 928, 8, 0, 10, 0, 12, 0, 931, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, 937, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1057, 8, 2, 3, 2, 1059, 8, 2, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 1068, 8, 4, 1, 4, 5, 4, 1071, 8, 4, 10, 4, 12, 4, 1074, 9, 4, 1, 5, 1, 5, 1, 5, 3, 5, 1079, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 1114, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 1124, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 1130, 8, 7, 1, 7, 5, 7, 1133, 8, 7, 10, 7, 12, 7, 1136, 9, 7, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 1142, 8, 8, 1, 8, 5, 8, 1145, 8, 8, 10, 8, 12, 8, 1148, 9, 8, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 1154, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 1165, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 5, 11, 1171, 8, 11, 10, 11, 12, 11, 1174, 9, 11, 1, 11, 3, 11, 1177, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 1189, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 1195, 8, 11, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1201, 8, 12, 1, 12, 1, 12, 3, 12, 1205, 8, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1210, 8, 12, 1, 12, 1, 12, 3, 12, 1214, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1227, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1237, 8, 12, 3, 12, 1239, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 1245, 8, 13, 1, 13, 5, 13, 1248, 8, 13, 10, 13, 12, 13, 1251, 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 3, 15, 1263, 8, 15, 1, 15, 3, 15, 1266, 8, 15, 1, 15, 1, 15, 1, 15, 3, 15, 1271, 8, 15, 1, 15, 5, 15, 1274, 8, 15, 10, 15, 12, 15, 1277, 9, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 1287, 8, 17, 1, 18, 1, 18, 3, 18, 1291, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 1303, 8, 19, 1, 20, 1, 20, 3, 20, 1307, 8, 20, 1, 20, 3, 20, 1310, 8, 20, 1, 20, 1, 20, 3, 20, 1314, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 1326, 8, 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, 21, 1, 21, 1, 21, 3, 21, 1344, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 1349, 8, 22, 10, 22, 12, 22, 1352, 9, 22, 1, 23, 1, 23, 1, 23, 5, 23, 1357, 8, 23, 10, 23, 12, 23, 1360, 9, 23, 1, 24, 1, 24, 3, 24, 1364, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1371, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1379, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 1385, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1393, 8, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1401, 8, 28, 1, 29, 1, 29, 3, 29, 1405, 8, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 1419, 8, 31, 1, 32, 1, 32, 1, 32, 3, 32, 1424, 8, 32, 1, 33, 1, 33, 1, 33, 3, 33, 1429, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 1441, 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 1447, 8, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 3, 38, 1459, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1464, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1474, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1480, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1485, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1494, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1501, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1506, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1511, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1521, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1526, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1531, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1538, 8, 38, 1, 38, 1, 38, 3, 38, 1542, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1556, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1562, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1568, 8, 38, 1, 38, 1, 38, 1, 38, 3, 38, 1573, 8, 38, 1, 39, 1, 39, 1, 39, 5, 39, 1578, 8, 39, 10, 39, 12, 39, 1581, 9, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 1589, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 3, 42, 1598, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, 1605, 8, 42, 10, 42, 12, 42, 1608, 9, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1616, 8, 42, 1, 42, 1, 42, 3, 42, 1620, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1632, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1640, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1650, 8, 42, 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, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1670, 8, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1675, 8, 42, 1, 42, 3, 42, 1678, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1685, 8, 42, 1, 42, 3, 42, 1688, 8, 42, 1, 42, 1, 42, 3, 42, 1692, 8, 42, 1, 42, 1, 42, 3, 42, 1696, 8, 42, 1, 42, 3, 42, 1699, 8, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1704, 8, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1709, 8, 42, 1, 42, 1, 42, 3, 42, 1713, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1722, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1728, 8, 42, 1, 42, 1, 42, 3, 42, 1732, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1741, 8, 42, 1, 42, 3, 42, 1744, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1750, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1759, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 4, 42, 1769, 8, 42, 11, 42, 12, 42, 1770, 1, 42, 1, 42, 3, 42, 1775, 8, 42, 1, 42, 1, 42, 3, 42, 1779, 8, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1784, 8, 42, 1, 42, 3, 42, 1787, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1793, 8, 42, 4, 42, 1795, 8, 42, 11, 42, 12, 42, 1796, 1, 42, 1, 42, 3, 42, 1801, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1807, 8, 42, 1, 42, 1, 42, 3, 42, 1811, 8, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1816, 8, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1821, 8, 42, 1, 42, 1, 42, 3, 42, 1825, 8, 42, 1, 42, 3, 42, 1828, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 1835, 8, 43, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 5, 46, 1846, 8, 46, 10, 46, 12, 46, 1849, 9, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 1861, 8, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 1886, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 5, 50, 1894, 8, 50, 10, 50, 12, 50, 1897, 9, 50, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 1903, 8, 51, 1, 51, 1, 51, 1, 51, 3, 51, 1908, 8, 51, 1, 51, 1, 51, 3, 51, 1912, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 1919, 8, 51, 1, 51, 1, 51, 1, 51, 3, 51, 1924, 8, 51, 1, 51, 3, 51, 1927, 8, 51, 3, 51, 1929, 8, 51, 1, 52, 1, 52, 1, 52, 3, 52, 1934, 8, 52, 1, 53, 1, 53, 3, 53, 1938, 8, 53, 1, 53, 1, 53, 3, 53, 1942, 8, 53, 1, 53, 1, 53, 3, 53, 1946, 8, 53, 1, 53, 1, 53, 1, 53, 3, 53, 1951, 8, 53, 1, 53, 3, 53, 1954, 8, 53, 1, 53, 1, 53, 3, 53, 1958, 8, 53, 1, 53, 3, 53, 1961, 8, 53, 1, 53, 1, 53, 3, 53, 1965, 8, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 1973, 8, 53, 1, 53, 1, 53, 1, 53, 3, 53, 1978, 8, 53, 1, 53, 3, 53, 1981, 8, 53, 1, 53, 1, 53, 3, 53, 1985, 8, 53, 1, 54, 1, 54, 1, 54, 1, 54, 3, 54, 1991, 8, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 3, 54, 2000, 8, 54, 1, 54, 1, 54, 3, 54, 2004, 8, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 3, 54, 2014, 8, 54, 1, 54, 1, 54, 1, 54, 3, 54, 2019, 8, 54, 5, 54, 2021, 8, 54, 10, 54, 12, 54, 2024, 9, 54, 1, 54, 3, 54, 2027, 8, 54, 5, 54, 2029, 8, 54, 10, 54, 12, 54, 2032, 9, 54, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 2038, 8, 55, 1, 55, 1, 55, 1, 55, 3, 55, 2043, 8, 55, 5, 55, 2045, 8, 55, 10, 55, 12, 55, 2048, 9, 55, 1, 55, 1, 55, 3, 55, 2052, 8, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 2062, 8, 56, 10, 56, 12, 56, 2065, 9, 56, 1, 56, 1, 56, 3, 56, 2069, 8, 56, 1, 57, 1, 57, 3, 57, 2073, 8, 57, 1, 57, 1, 57, 3, 57, 2077, 8, 57, 1, 57, 1, 57, 1, 57, 3, 57, 2082, 8, 57, 1, 57, 1, 57, 3, 57, 2086, 8, 57, 1, 57, 3, 57, 2089, 8, 57, 1, 57, 3, 57, 2092, 8, 57, 1, 57, 3, 57, 2095, 8, 57, 1, 57, 3, 57, 2098, 8, 57, 1, 57, 3, 57, 2101, 8, 57, 1, 57, 1, 57, 1, 57, 3, 57, 2106, 8, 57, 1, 57, 3, 57, 2109, 8, 57, 1, 57, 3, 57, 2112, 8, 57, 1, 57, 3, 57, 2115, 8, 57, 1, 57, 3, 57, 2118, 8, 57, 1, 57, 3, 57, 2121, 8, 57, 1, 57, 1, 57, 1, 57, 1, 57, 3, 57, 2127, 8, 57, 1, 57, 1, 57, 3, 57, 2131, 8, 57, 1, 57, 3, 57, 2134, 8, 57, 1, 57, 3, 57, 2137, 8, 57, 1, 57, 3, 57, 2140, 8, 57, 1, 57, 3, 57, 2143, 8, 57, 3, 57, 2145, 8, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 2152, 8, 58, 1, 59, 1, 59, 1, 59, 1, 59, 5, 59, 2158, 8, 59, 10, 59, 12, 59, 2161, 9, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 5, 60, 2168, 8, 60, 10, 60, 12, 60, 2171, 9, 60, 1, 61, 1, 61, 3, 61, 2175, 8, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 5, 61, 2183, 8, 61, 10, 61, 12, 61, 2186, 9, 61, 3, 61, 2188, 8, 61, 1, 62, 1, 62, 1, 62, 3, 62, 2193, 8, 62, 1, 62, 5, 62, 2196, 8, 62, 10, 62, 12, 62, 2199, 9, 62, 1, 62, 1, 62, 3, 62, 2203, 8, 62, 1, 62, 3, 62, 2206, 8, 62, 1, 63, 1, 63, 1, 63, 3, 63, 2211, 8, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 3, 63, 2220, 8, 63, 3, 63, 2222, 8, 63, 1, 63, 1, 63, 3, 63, 2226, 8, 63, 1, 63, 3, 63, 2229, 8, 63, 1, 63, 1, 63, 3, 63, 2233, 8, 63, 1, 63, 5, 63, 2236, 8, 63, 10, 63, 12, 63, 2239, 9, 63, 1, 64, 1, 64, 3, 64, 2243, 8, 64, 1, 64, 1, 64, 3, 64, 2247, 8, 64, 1, 64, 3, 64, 2250, 8, 64, 1, 64, 1, 64, 3, 64, 2254, 8, 64, 1, 65, 3, 65, 2257, 8, 65, 1, 65, 1, 65, 1, 65, 3, 65, 2262, 8, 65, 1, 65, 3, 65, 2265, 8, 65, 1, 65, 1, 65, 1, 65, 3, 65, 2270, 8, 65, 1, 65, 3, 65, 2273, 8, 65, 1, 65, 1, 65, 3, 65, 2277, 8, 65, 1, 65, 3, 65, 2280, 8, 65, 1, 65, 3, 65, 2283, 8, 65, 1, 65, 1, 65, 1, 65, 3, 65, 2288, 8, 65, 1, 65, 3, 65, 2291, 8, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 3, 65, 2299, 8, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 4, 65, 2309, 8, 65, 11, 65, 12, 65, 2310, 1, 65, 1, 65, 3, 65, 2315, 8, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 3, 65, 2322, 8, 65, 1, 65, 1, 65, 1, 65, 3, 65, 2327, 8, 65, 1, 65, 3, 65, 2330, 8, 65, 1, 65, 3, 65, 2333, 8, 65, 1, 65, 3, 65, 2336, 8, 65, 1, 66, 1, 66, 1, 66, 3, 66, 2341, 8, 66, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 5, 68, 2350, 8, 68, 10, 68, 12, 68, 2353, 9, 68, 1, 68, 1, 68, 1, 68, 3, 68, 2358, 8, 68, 1, 68, 1, 68, 3, 68, 2362, 8, 68, 1, 68, 3, 68, 2365, 8, 68, 1, 68, 3, 68, 2368, 8, 68, 1, 68, 5, 68, 2371, 8, 68, 10, 68, 12, 68, 2374, 9, 68, 1, 68, 1, 68, 5, 68, 2378, 8, 68, 10, 68, 12, 68, 2381, 9, 68, 3, 68, 2383, 8, 68, 1, 68, 1, 68, 3, 68, 2387, 8, 68, 1, 68, 1, 68, 1, 68, 1, 68, 5, 68, 2393, 8, 68, 10, 68, 12, 68, 2396, 9, 68, 1, 68, 1, 68, 3, 68, 2400, 8, 68, 1, 68, 3, 68, 2403, 8, 68, 1, 68, 3, 68, 2406, 8, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 2413, 8, 68, 1, 68, 5, 68, 2416, 8, 68, 10, 68, 12, 68, 2419, 9, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 2427, 8, 68, 1, 68, 3, 68, 2430, 8, 68, 1, 68, 3, 68, 2433, 8, 68, 1, 68, 5, 68, 2436, 8, 68, 10, 68, 12, 68, 2439, 9, 68, 3, 68, 2441, 8, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 5, 70, 2451, 8, 70, 10, 70, 12, 70, 2454, 9, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 5, 71, 2461, 8, 71, 10, 71, 12, 71, 2464, 9, 71, 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, 3, 74, 2480, 8, 74, 1, 75, 1, 75, 3, 75, 2484, 8, 75, 1, 75, 1, 75, 3, 75, 2488, 8, 75, 3, 75, 2490, 8, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 3, 78, 2507, 8, 78, 3, 78, 2509, 8, 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, 5, 80, 2523, 8, 80, 10, 80, 12, 80, 2526, 9, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 3, 81, 2536, 8, 81, 1, 81, 3, 81, 2539, 8, 81, 1, 81, 3, 81, 2542, 8, 81, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 3, 83, 2551, 8, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 3, 84, 2560, 8, 84, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 3, 88, 2576, 8, 88, 1, 88, 3, 88, 2579, 8, 88, 1, 88, 3, 88, 2582, 8, 88, 1, 88, 1, 88, 1, 88, 1, 88, 5, 88, 2588, 8, 88, 10, 88, 12, 88, 2591, 9, 88, 1, 88, 3, 88, 2594, 8, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 3, 89, 2601, 8, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 3, 90, 2610, 8, 90, 1, 90, 1, 90, 3, 90, 2614, 8, 90, 1, 90, 1, 90, 1, 90, 1, 90, 3, 90, 2620, 8, 90, 1, 91, 1, 91, 3, 91, 2624, 8, 91, 1, 91, 3, 91, 2627, 8, 91, 1, 91, 3, 91, 2630, 8, 91, 1, 91, 3, 91, 2633, 8, 91, 1, 91, 3, 91, 2636, 8, 91, 1, 92, 1, 92, 1, 92, 1, 92, 3, 92, 2642, 8, 92, 1, 93, 1, 93, 3, 93, 2646, 8, 93, 1, 93, 1, 93, 1, 93, 3, 93, 2651, 8, 93, 1, 93, 1, 93, 3, 93, 2655, 8, 93, 1, 93, 3, 93, 2658, 8, 93, 1, 93, 3, 93, 2661, 8, 93, 1, 93, 3, 93, 2664, 8, 93, 1, 93, 1, 93, 1, 93, 3, 93, 2669, 8, 93, 1, 94, 1, 94, 1, 94, 1, 94, 3, 94, 2675, 8, 94, 1, 94, 1, 94, 3, 94, 2679, 8, 94, 1, 95, 1, 95, 3, 95, 2683, 8, 95, 1, 95, 1, 95, 3, 95, 2687, 8, 95, 1, 95, 1, 95, 4, 95, 2691, 8, 95, 11, 95, 12, 95, 2692, 3, 95, 2695, 8, 95, 1, 96, 1, 96, 1, 96, 3, 96, 2700, 8, 96, 1, 96, 1, 96, 4, 96, 2704, 8, 96, 11, 96, 12, 96, 2705, 1, 97, 1, 97, 1, 97, 1, 97, 3, 97, 2712, 8, 97, 1, 97, 1, 97, 3, 97, 2716, 8, 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, 3, 97, 2731, 8, 97, 1, 97, 1, 97, 1, 97, 3, 97, 2736, 8, 97, 1, 97, 3, 97, 2739, 8, 97, 3, 97, 2741, 8, 97, 1, 98, 3, 98, 2744, 8, 98, 1, 98, 1, 98, 3, 98, 2748, 8, 98, 1, 99, 1, 99, 3, 99, 2752, 8, 99, 1, 99, 3, 99, 2755, 8, 99, 1, 99, 3, 99, 2758, 8, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 3, 99, 2766, 8, 99, 1, 99, 1, 99, 1, 99, 1, 99, 3, 99, 2772, 8, 99, 3, 99, 2774, 8, 99, 1, 100, 1, 100, 1, 100, 1, 100, 3, 100, 2780, 8, 100, 1, 100, 1, 100, 1, 100, 3, 100, 2785, 8, 100, 1, 101, 1, 101, 1, 101, 3, 101, 2790, 8, 101, 1, 101, 1, 101, 3, 101, 2794, 8, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 5, 101, 2801, 8, 101, 10, 101, 12, 101, 2804, 9, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 5, 102, 2812, 8, 102, 10, 102, 12, 102, 2815, 9, 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, 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, 3, 103, 2853, 8, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 4, 104, 2861, 8, 104, 11, 104, 12, 104, 2862, 3, 104, 2865, 8, 104, 1, 104, 3, 104, 2868, 8, 104, 1, 105, 1, 105, 3, 105, 2872, 8, 105, 1, 105, 1, 105, 3, 105, 2876, 8, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 4, 106, 2884, 8, 106, 11, 106, 12, 106, 2885, 3, 106, 2888, 8, 106, 1, 106, 1, 106, 4, 106, 2892, 8, 106, 11, 106, 12, 106, 2893, 3, 106, 2896, 8, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 5, 107, 2903, 8, 107, 10, 107, 12, 107, 2906, 9, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 5, 108, 2915, 8, 108, 10, 108, 12, 108, 2918, 9, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 3, 111, 2931, 8, 111, 1, 111, 1, 111, 1, 111, 3, 111, 2936, 8, 111, 1, 111, 3, 111, 2939, 8, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 3, 111, 2946, 8, 111, 1, 112, 1, 112, 1, 112, 3, 112, 2951, 8, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 3, 113, 2959, 8, 113, 3, 113, 2961, 8, 113, 1, 114, 1, 114, 1, 114, 1, 114, 3, 114, 2967, 8, 114, 1, 114, 1, 114, 1, 114, 3, 114, 2972, 8, 114, 1, 114, 1, 114, 3, 114, 2976, 8, 114, 1, 114, 1, 114, 1, 114, 3, 114, 2981, 8, 114, 1, 114, 1, 114, 1, 114, 1, 114, 3, 114, 2987, 8, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 3, 114, 2994, 8, 114, 1, 114, 1, 114, 1, 114, 1, 114, 3, 114, 3000, 8, 114, 3, 114, 3002, 8, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 3, 115, 3011, 8, 115, 1, 115, 1, 115, 1, 115, 1, 115, 3, 115, 3017, 8, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 3, 115, 3025, 8, 115, 1, 116, 1, 116, 1, 116, 1, 116, 3, 116, 3031, 8, 116, 1, 116, 1, 116, 1, 116, 3, 116, 3036, 8, 116, 1, 116, 1, 116, 1, 116, 3, 116, 3041, 8, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 3, 117, 3049, 8, 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, 118, 3, 118, 3064, 8, 118, 3, 118, 3066, 8, 118, 1, 118, 1, 118, 3, 118, 3070, 8, 118, 1, 118, 1, 118, 3, 118, 3074, 8, 118, 1, 118, 3, 118, 3077, 8, 118, 1, 118, 3, 118, 3080, 8, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 3089, 8, 119, 1, 119, 3, 119, 3092, 8, 119, 1, 119, 3, 119, 3095, 8, 119, 1, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3101, 8, 120, 1, 120, 1, 120, 5, 120, 3105, 8, 120, 10, 120, 12, 120, 3108, 9, 120, 1, 120, 3, 120, 3111, 8, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3123, 8, 120, 1, 120, 1, 120, 1, 120, 1, 120, 3, 120, 3129, 8, 120, 1, 121, 3, 121, 3132, 8, 121, 1, 121, 1, 121, 1, 121, 3, 121, 3137, 8, 121, 1, 121, 1, 121, 3, 121, 3141, 8, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 3, 121, 3148, 8, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 3, 121, 3158, 8, 121, 3, 121, 3160, 8, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 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, 3, 125, 3184, 8, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3196, 8, 125, 1, 125, 4, 125, 3199, 8, 125, 11, 125, 12, 125, 3200, 3, 125, 3203, 8, 125, 1, 125, 1, 125, 3, 125, 3207, 8, 125, 1, 125, 3, 125, 3210, 8, 125, 1, 125, 3, 125, 3213, 8, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3223, 8, 125, 1, 125, 3, 125, 3226, 8, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3236, 8, 125, 1, 125, 5, 125, 3239, 8, 125, 10, 125, 12, 125, 3242, 9, 125, 1, 125, 1, 125, 3, 125, 3246, 8, 125, 1, 125, 3, 125, 3249, 8, 125, 1, 125, 3, 125, 3252, 8, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 3, 125, 3260, 8, 125, 1, 126, 1, 126, 1, 126, 1, 126, 3, 126, 3266, 8, 126, 1, 127, 1, 127, 1, 127, 5, 127, 3271, 8, 127, 10, 127, 12, 127, 3274, 9, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 3, 128, 3281, 8, 128, 1, 128, 3, 128, 3284, 8, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 3, 130, 3295, 8, 130, 1, 131, 1, 131, 3, 131, 3299, 8, 131, 1, 131, 1, 131, 5, 131, 3303, 8, 131, 10, 131, 12, 131, 3306, 9, 131, 1, 132, 1, 132, 1, 132, 1, 132, 3, 132, 3312, 8, 132, 1, 133, 3, 133, 3315, 8, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 3, 133, 3324, 8, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 5, 134, 3336, 8, 134, 10, 134, 12, 134, 3339, 9, 134, 3, 134, 3341, 8, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 5, 135, 3353, 8, 135, 10, 135, 12, 135, 3356, 9, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 3, 136, 3366, 8, 136, 1, 136, 3, 136, 3369, 8, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 5, 137, 3379, 8, 137, 10, 137, 12, 137, 3382, 9, 137, 1, 138, 1, 138, 3, 138, 3386, 8, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 5, 138, 3397, 8, 138, 10, 138, 12, 138, 3400, 9, 138, 1, 138, 1, 138, 3, 138, 3404, 8, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 3, 138, 3417, 8, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 5, 138, 3424, 8, 138, 10, 138, 12, 138, 3427, 9, 138, 3, 138, 3429, 8, 138, 1, 138, 3, 138, 3432, 8, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 3, 138, 3439, 8, 138, 1, 138, 3, 138, 3442, 8, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 3, 138, 3454, 8, 138, 1, 138, 1, 138, 1, 138, 1, 138, 3, 138, 3460, 8, 138, 3, 138, 3462, 8, 138, 1, 139, 1, 139, 1, 139, 1, 139, 5, 139, 3468, 8, 139, 10, 139, 12, 139, 3471, 9, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 3, 140, 3478, 8, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 3, 141, 3486, 8, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 3, 143, 3498, 8, 143, 1, 143, 1, 143, 1, 143, 3, 143, 3503, 8, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 3, 143, 3514, 8, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 3, 145, 3525, 8, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 3, 145, 3533, 8, 145, 1, 145, 1, 145, 1, 145, 1, 145, 5, 145, 3539, 8, 145, 10, 145, 12, 145, 3542, 9, 145, 1, 146, 1, 146, 1, 146, 1, 146, 3, 146, 3548, 8, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 3, 146, 3555, 8, 146, 3, 146, 3557, 8, 146, 1, 146, 3, 146, 3560, 8, 146, 1, 146, 1, 146, 1, 146, 3, 146, 3565, 8, 146, 1, 146, 1, 146, 1, 146, 3, 146, 3570, 8, 146, 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, 148, 5, 148, 3587, 8, 148, 10, 148, 12, 148, 3590, 9, 148, 1, 148, 1, 148, 1, 148, 1, 148, 5, 148, 3596, 8, 148, 10, 148, 12, 148, 3599, 9, 148, 3, 148, 3601, 8, 148, 1, 149, 1, 149, 1, 149, 1, 149, 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, 151, 1, 151, 3, 151, 3628, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3637, 8, 151, 1, 151, 3, 151, 3640, 8, 151, 1, 151, 1, 151, 3, 151, 3644, 8, 151, 1, 151, 1, 151, 3, 151, 3648, 8, 151, 1, 151, 1, 151, 3, 151, 3652, 8, 151, 1, 151, 1, 151, 1, 151, 5, 151, 3657, 8, 151, 10, 151, 12, 151, 3660, 9, 151, 1, 151, 3, 151, 3663, 8, 151, 1, 151, 1, 151, 3, 151, 3667, 8, 151, 1, 151, 1, 151, 3, 151, 3671, 8, 151, 1, 151, 1, 151, 3, 151, 3675, 8, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3680, 8, 151, 1, 151, 1, 151, 3, 151, 3684, 8, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3689, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3695, 8, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3700, 8, 151, 1, 151, 1, 151, 1, 151, 5, 151, 3705, 8, 151, 10, 151, 12, 151, 3708, 9, 151, 1, 151, 3, 151, 3711, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3717, 8, 151, 1, 151, 1, 151, 3, 151, 3721, 8, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3726, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3734, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3740, 8, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3745, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3752, 8, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3757, 8, 151, 1, 151, 1, 151, 3, 151, 3761, 8, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3766, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3772, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3779, 8, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3784, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3791, 8, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3796, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 3, 151, 3803, 8, 151, 1, 151, 1, 151, 3, 151, 3807, 8, 151, 1, 151, 1, 151, 1, 151, 1, 151, 5, 151, 3813, 8, 151, 10, 151, 12, 151, 3816, 9, 151, 1, 151, 3, 151, 3819, 8, 151, 3, 151, 3821, 8, 151, 1, 152, 3, 152, 3824, 8, 152, 1, 152, 1, 152, 1, 152, 3, 152, 3829, 8, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 3, 152, 3839, 8, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 3, 153, 3854, 8, 153, 1, 153, 3, 153, 3857, 8, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 3, 153, 3865, 8, 153, 1, 154, 1, 154, 1, 154, 5, 154, 3870, 8, 154, 10, 154, 12, 154, 3873, 9, 154, 1, 155, 1, 155, 3, 155, 3877, 8, 155, 1, 156, 1, 156, 4, 156, 3881, 8, 156, 11, 156, 12, 156, 3882, 1, 157, 1, 157, 3, 157, 3887, 8, 157, 1, 157, 1, 157, 1, 157, 5, 157, 3892, 8, 157, 10, 157, 12, 157, 3895, 9, 157, 1, 157, 1, 157, 3, 157, 3899, 8, 157, 1, 157, 3, 157, 3902, 8, 157, 1, 158, 3, 158, 3905, 8, 158, 1, 158, 1, 158, 3, 158, 3909, 8, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 3, 159, 3918, 8, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 3, 159, 3936, 8, 159, 1, 159, 3, 159, 3939, 8, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 3, 159, 3971, 8, 159, 1, 159, 1, 159, 1, 159, 3, 159, 3976, 8, 159, 1, 160, 1, 160, 1, 160, 1, 160, 3, 160, 3982, 8, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 3, 160, 4002, 8, 160, 1, 160, 1, 160, 1, 160, 3, 160, 4007, 8, 160, 1, 161, 1, 161, 1, 161, 1, 162, 3, 162, 4013, 8, 162, 1, 162, 3, 162, 4016, 8, 162, 1, 162, 1, 162, 3, 162, 4020, 8, 162, 1, 162, 1, 162, 3, 162, 4024, 8, 162, 1, 162, 1, 162, 1, 162, 1, 162, 3, 162, 4030, 8, 162, 1, 162, 3, 162, 4033, 8, 162, 1, 162, 1, 162, 3, 162, 4037, 8, 162, 1, 162, 1, 162, 3, 162, 4041, 8, 162, 1, 162, 1, 162, 1, 162, 3, 162, 4046, 8, 162, 1, 162, 3, 162, 4049, 8, 162, 1, 162, 3, 162, 4052, 8, 162, 1, 162, 3, 162, 4055, 8, 162, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 3, 164, 4068, 8, 164, 1, 165, 1, 165, 1, 165, 1, 165, 3, 165, 4074, 8, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 3, 165, 4082, 8, 165, 1, 166, 1, 166, 1, 166, 5, 166, 4087, 8, 166, 10, 166, 12, 166, 4090, 9, 166, 1, 166, 1, 166, 3, 166, 4094, 8, 166, 1, 166, 3, 166, 4097, 8, 166, 1, 166, 1, 166, 1, 166, 5, 166, 4102, 8, 166, 10, 166, 12, 166, 4105, 9, 166, 3, 166, 4107, 8, 166, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 3, 168, 4115, 8, 168, 1, 168, 3, 168, 4118, 8, 168, 1, 169, 1, 169, 1, 169, 3, 169, 4123, 8, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 3, 169, 4130, 8, 169, 1, 169, 3, 169, 4133, 8, 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, 5, 169, 4151, 8, 169, 10, 169, 12, 169, 4154, 9, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 3, 169, 4165, 8, 169, 1, 170, 3, 170, 4168, 8, 170, 1, 170, 1, 170, 1, 170, 1, 170, 3, 170, 4174, 8, 170, 1, 170, 5, 170, 4177, 8, 170, 10, 170, 12, 170, 4180, 9, 170, 1, 171, 1, 171, 1, 171, 1, 171, 5, 171, 4186, 8, 171, 10, 171, 12, 171, 4189, 9, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 3, 171, 4196, 8, 171, 1, 171, 1, 171, 1, 171, 3, 171, 4201, 8, 171, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 4207, 8, 172, 1, 172, 1, 172, 1, 172, 5, 172, 4212, 8, 172, 10, 172, 12, 172, 4215, 9, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 4222, 8, 172, 1, 172, 3, 172, 4225, 8, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 5, 173, 4236, 8, 173, 10, 173, 12, 173, 4239, 9, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 3, 174, 4252, 8, 174, 1, 174, 1, 174, 1, 174, 1, 174, 3, 174, 4258, 8, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 3, 174, 4266, 8, 174, 3, 174, 4268, 8, 174, 1, 175, 1, 175, 1, 176, 1, 176, 3, 176, 4274, 8, 176, 1, 176, 1, 176, 3, 176, 4278, 8, 176, 1, 176, 3, 176, 4281, 8, 176, 1, 176, 3, 176, 4284, 8, 176, 1, 176, 1, 176, 1, 176, 3, 176, 4289, 8, 176, 1, 176, 1, 176, 1, 176, 3, 176, 4294, 8, 176, 1, 176, 1, 176, 3, 176, 4298, 8, 176, 1, 176, 3, 176, 4301, 8, 176, 1, 176, 3, 176, 4304, 8, 176, 1, 176, 3, 176, 4307, 8, 176, 1, 176, 3, 176, 4310, 8, 176, 1, 177, 1, 177, 1, 177, 1, 177, 5, 177, 4316, 8, 177, 10, 177, 12, 177, 4319, 9, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 4329, 8, 178, 1, 178, 3, 178, 4332, 8, 178, 1, 178, 3, 178, 4335, 8, 178, 1, 178, 1, 178, 1, 178, 3, 178, 4340, 8, 178, 1, 178, 3, 178, 4343, 8, 178, 1, 178, 1, 178, 3, 178, 4347, 8, 178, 1, 179, 1, 179, 3, 179, 4351, 8, 179, 1, 179, 1, 179, 1, 179, 1, 179, 3, 179, 4357, 8, 179, 1, 179, 1, 179, 1, 179, 1, 179, 5, 179, 4363, 8, 179, 10, 179, 12, 179, 4366, 9, 179, 3, 179, 4368, 8, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 5, 179, 4379, 8, 179, 10, 179, 12, 179, 4382, 9, 179, 1, 179, 1, 179, 3, 179, 4386, 8, 179, 3, 179, 4388, 8, 179, 1, 179, 4, 179, 4391, 8, 179, 11, 179, 12, 179, 4392, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 3, 179, 4400, 8, 179, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 3, 181, 4407, 8, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 5, 182, 4414, 8, 182, 10, 182, 12, 182, 4417, 9, 182, 1, 183, 1, 183, 1, 183, 5, 183, 4422, 8, 183, 10, 183, 12, 183, 4425, 9, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 3, 184, 4432, 8, 184, 1, 185, 1, 185, 1, 185, 5, 185, 4437, 8, 185, 10, 185, 12, 185, 4440, 9, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 3, 186, 4447, 8, 186, 1, 187, 1, 187, 1, 187, 5, 187, 4452, 8, 187, 10, 187, 12, 187, 4455, 9, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 3, 188, 4462, 8, 188, 1, 189, 1, 189, 3, 189, 4466, 8, 189, 1, 189, 1, 189, 3, 189, 4470, 8, 189, 3, 189, 4472, 8, 189, 1, 189, 1, 189, 1, 190, 1, 190, 3, 190, 4478, 8, 190, 1, 190, 1, 190, 1, 190, 3, 190, 4483, 8, 190, 1, 191, 1, 191, 3, 191, 4487, 8, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 3, 191, 4494, 8, 191, 1, 192, 1, 192, 1, 192, 3, 192, 4499, 8, 192, 1, 193, 1, 193, 1, 193, 3, 193, 4504, 8, 193, 1, 193, 1, 193, 1, 193, 3, 193, 4509, 8, 193, 3, 193, 4511, 8, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 3, 195, 4521, 8, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 3, 195, 4531, 8, 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, 195, 1, 195, 3, 195, 4547, 8, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 5, 196, 4563, 8, 196, 10, 196, 12, 196, 4566, 9, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 3, 196, 4577, 8, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 3, 196, 4584, 8, 196, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 3, 199, 4599, 8, 199, 1, 199, 4, 199, 4602, 8, 199, 11, 199, 12, 199, 4603, 1, 199, 3, 199, 4607, 8, 199, 1, 200, 1, 200, 1, 200, 3, 200, 4612, 8, 200, 1, 200, 1, 200, 1, 200, 3, 200, 4617, 8, 200, 1, 200, 1, 200, 1, 200, 3, 200, 4622, 8, 200, 1, 200, 3, 200, 4625, 8, 200, 1, 200, 3, 200, 4628, 8, 200, 1, 201, 1, 201, 1, 201, 3, 201, 4633, 8, 201, 1, 201, 1, 201, 1, 201, 5, 201, 4638, 8, 201, 10, 201, 12, 201, 4641, 9, 201, 1, 201, 3, 201, 4644, 8, 201, 1, 202, 1, 202, 1, 202, 3, 202, 4649, 8, 202, 1, 202, 1, 202, 1, 202, 5, 202, 4654, 8, 202, 10, 202, 12, 202, 4657, 9, 202, 1, 202, 3, 202, 4660, 8, 202, 1, 203, 1, 203, 1, 203, 1, 203, 3, 203, 4666, 8, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 3, 203, 4675, 8, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 5, 204, 4682, 8, 204, 10, 204, 12, 204, 4685, 9, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 4, 206, 4696, 8, 206, 11, 206, 12, 206, 4697, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 3, 207, 4711, 8, 207, 1, 207, 1, 207, 1, 207, 1, 207, 3, 207, 4717, 8, 207, 1, 207, 1, 207, 3, 207, 4721, 8, 207, 3, 207, 4723, 8, 207, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 3, 209, 4730, 8, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 3, 209, 4743, 8, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 3, 209, 4750, 8, 209, 3, 209, 4752, 8, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 5, 211, 4766, 8, 211, 10, 211, 12, 211, 4769, 9, 211, 1, 211, 3, 211, 4772, 8, 211, 1, 211, 1, 211, 3, 211, 4776, 8, 211, 1, 211, 1, 211, 1, 211, 3, 211, 4781, 8, 211, 1, 211, 1, 211, 1, 211, 3, 211, 4786, 8, 211, 1, 211, 1, 211, 1, 211, 3, 211, 4791, 8, 211, 1, 211, 1, 211, 1, 211, 3, 211, 4796, 8, 211, 1, 211, 3, 211, 4799, 8, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4811, 8, 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, 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, 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, 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, 3, 213, 4864, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4873, 8, 213, 1, 213, 1, 213, 3, 213, 4877, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4886, 8, 213, 1, 213, 1, 213, 3, 213, 4890, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4899, 8, 213, 1, 213, 1, 213, 3, 213, 4903, 8, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4908, 8, 213, 1, 213, 3, 213, 4911, 8, 213, 1, 213, 1, 213, 3, 213, 4915, 8, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4920, 8, 213, 3, 213, 4922, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4931, 8, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4936, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4947, 8, 213, 1, 213, 1, 213, 3, 213, 4951, 8, 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, 3, 213, 4965, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 4973, 8, 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, 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, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 5011, 8, 213, 3, 213, 5013, 8, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 3, 214, 5032, 8, 214, 1, 214, 3, 214, 5035, 8, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 3, 215, 5062, 8, 215, 1, 215, 1, 215, 3, 215, 5066, 8, 215, 1, 215, 1, 215, 3, 215, 5070, 8, 215, 1, 215, 1, 215, 3, 215, 5074, 8, 215, 1, 215, 1, 215, 3, 215, 5078, 8, 215, 1, 215, 3, 215, 5081, 8, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 3, 215, 5096, 8, 215, 1, 215, 1, 215, 1, 215, 1, 215, 1, 215, 3, 215, 5103, 8, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 5, 217, 5115, 8, 217, 10, 217, 12, 217, 5118, 9, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 3, 218, 5130, 8, 218, 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, 3, 220, 5155, 8, 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, 220, 3, 220, 5174, 8, 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, 3, 220, 5189, 8, 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, 3, 220, 5205, 8, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 3, 220, 5212, 8, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 3, 221, 5223, 8, 221, 1, 221, 3, 221, 5226, 8, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 5, 222, 5243, 8, 222, 10, 222, 12, 222, 5246, 9, 222, 3, 222, 5248, 8, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 5, 223, 5259, 8, 223, 10, 223, 12, 223, 5262, 9, 223, 1, 223, 3, 223, 5265, 8, 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, 224, 1, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5285, 8, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 5, 224, 5295, 8, 224, 10, 224, 12, 224, 5298, 9, 224, 1, 224, 3, 224, 5301, 8, 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, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 3, 224, 5323, 8, 224, 1, 225, 1, 225, 3, 225, 5327, 8, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 3, 225, 5337, 8, 225, 1, 225, 1, 225, 3, 225, 5341, 8, 225, 1, 225, 1, 225, 1, 225, 1, 225, 3, 225, 5347, 8, 225, 1, 225, 1, 225, 3, 225, 5351, 8, 225, 5, 225, 5353, 8, 225, 10, 225, 12, 225, 5356, 9, 225, 1, 225, 3, 225, 5359, 8, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 3, 226, 5366, 8, 226, 1, 227, 1, 227, 1, 227, 3, 227, 5371, 8, 227, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 3, 230, 5382, 8, 230, 1, 231, 1, 231, 3, 231, 5386, 8, 231, 1, 231, 3, 231, 5389, 8, 231, 1, 231, 1, 231, 1, 231, 3, 231, 5394, 8, 231, 1, 231, 1, 231, 1, 231, 1, 231, 3, 231, 5400, 8, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 3, 231, 5411, 8, 231, 1, 231, 1, 231, 3, 231, 5415, 8, 231, 1, 231, 3, 231, 5418, 8, 231, 1, 231, 1, 231, 3, 231, 5422, 8, 231, 1, 231, 1, 231, 3, 231, 5426, 8, 231, 1, 231, 3, 231, 5429, 8, 231, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 3, 233, 5439, 8, 233, 1, 233, 3, 233, 5442, 8, 233, 1, 234, 1, 234, 3, 234, 5446, 8, 234, 1, 234, 5, 234, 5449, 8, 234, 10, 234, 12, 234, 5452, 9, 234, 1, 235, 1, 235, 1, 235, 3, 235, 5457, 8, 235, 1, 235, 3, 235, 5460, 8, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5465, 8, 235, 1, 235, 3, 235, 5468, 8, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5475, 8, 235, 3, 235, 5477, 8, 235, 1, 235, 1, 235, 1, 235, 1, 235, 3, 235, 5483, 8, 235, 1, 235, 1, 235, 3, 235, 5487, 8, 235, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 3, 237, 5496, 8, 237, 1, 237, 4, 237, 5499, 8, 237, 11, 237, 12, 237, 5500, 3, 237, 5503, 8, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 3, 238, 5513, 8, 238, 1, 238, 3, 238, 5516, 8, 238, 1, 238, 1, 238, 1, 238, 3, 238, 5521, 8, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 3, 239, 5529, 8, 239, 1, 239, 3, 239, 5532, 8, 239, 1, 239, 4, 239, 5535, 8, 239, 11, 239, 12, 239, 5536, 3, 239, 5539, 8, 239, 3, 239, 5541, 8, 239, 1, 240, 1, 240, 1, 240, 1, 240, 3, 240, 5547, 8, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 3, 243, 5564, 8, 243, 1, 243, 1, 243, 5, 243, 5568, 8, 243, 10, 243, 12, 243, 5571, 9, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 3, 244, 5583, 8, 244, 1, 244, 1, 244, 1, 244, 1, 244, 3, 244, 5589, 8, 244, 1, 244, 1, 244, 3, 244, 5593, 8, 244, 1, 244, 1, 244, 1, 244, 3, 244, 5598, 8, 244, 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, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 3, 246, 5628, 8, 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, 3, 246, 5643, 8, 246, 1, 246, 1, 246, 1, 246, 3, 246, 5648, 8, 246, 1, 247, 1, 247, 3, 247, 5652, 8, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 3, 248, 5665, 8, 248, 1, 248, 1, 248, 3, 248, 5669, 8, 248, 3, 248, 5671, 8, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 5, 248, 5678, 8, 248, 10, 248, 12, 248, 5681, 9, 248, 1, 248, 1, 248, 1, 248, 3, 248, 5686, 8, 248, 3, 248, 5688, 8, 248, 1, 249, 1, 249, 3, 249, 5692, 8, 249, 1, 249, 3, 249, 5695, 8, 249, 1, 249, 3, 249, 5698, 8, 249, 1, 249, 3, 249, 5701, 8, 249, 1, 249, 3, 249, 5704, 8, 249, 3, 249, 5706, 8, 249, 1, 249, 3, 249, 5709, 8, 249, 1, 250, 1, 250, 3, 250, 5713, 8, 250, 1, 250, 1, 250, 1, 250, 1, 250, 5, 250, 5719, 8, 250, 10, 250, 12, 250, 5722, 9, 250, 1, 250, 1, 250, 3, 250, 5726, 8, 250, 1, 250, 3, 250, 5729, 8, 250, 1, 251, 1, 251, 1, 252, 1, 252, 3, 252, 5735, 8, 252, 1, 252, 1, 252, 3, 252, 5739, 8, 252, 1, 253, 1, 253, 3, 253, 5743, 8, 253, 1, 253, 1, 253, 1, 253, 3, 253, 5748, 8, 253, 3, 253, 5750, 8, 253, 1, 254, 1, 254, 3, 254, 5754, 8, 254, 1, 255, 1, 255, 3, 255, 5758, 8, 255, 1, 256, 1, 256, 1, 256, 5, 256, 5763, 8, 256, 10, 256, 12, 256, 5766, 9, 256, 1, 257, 1, 257, 1, 257, 3, 257, 5771, 8, 257, 1, 257, 1, 257, 3, 257, 5775, 8, 257, 3, 257, 5777, 8, 257, 3, 257, 5779, 8, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 3, 258, 5792, 8, 258, 1, 259, 1, 259, 1, 259, 1, 259, 5, 259, 5798, 8, 259, 10, 259, 12, 259, 5801, 9, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 3, 260, 5808, 8, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 5, 261, 5817, 8, 261, 10, 261, 12, 261, 5820, 9, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 3, 262, 5829, 8, 262, 1, 263, 1, 263, 1, 263, 3, 263, 5834, 8, 263, 1, 263, 1, 263, 3, 263, 5838, 8, 263, 1, 263, 1, 263, 3, 263, 5842, 8, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 3, 263, 5849, 8, 263, 1, 263, 3, 263, 5852, 8, 263, 3, 263, 5854, 8, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 3, 265, 5862, 8, 265, 1, 265, 1, 265, 3, 265, 5866, 8, 265, 1, 266, 3, 266, 5869, 8, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 3, 266, 5876, 8, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 3, 266, 5883, 8, 266, 1, 266, 1, 266, 1, 266, 3, 266, 5888, 8, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 3, 266, 5895, 8, 266, 1, 266, 3, 266, 5898, 8, 266, 3, 266, 5900, 8, 266, 1, 266, 3, 266, 5903, 8, 266, 1, 267, 1, 267, 1, 267, 1, 267, 3, 267, 5909, 8, 267, 1, 267, 1, 267, 1, 267, 3, 267, 5914, 8, 267, 1, 267, 1, 267, 3, 267, 5918, 8, 267, 1, 268, 1, 268, 1, 268, 5, 268, 5923, 8, 268, 10, 268, 12, 268, 5926, 9, 268, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 270, 1, 271, 3, 271, 5935, 8, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 3, 271, 5942, 8, 271, 1, 271, 3, 271, 5945, 8, 271, 1, 271, 3, 271, 5948, 8, 271, 1, 272, 1, 272, 3, 272, 5952, 8, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 3, 272, 5963, 8, 272, 1, 272, 3, 272, 5966, 8, 272, 1, 272, 3, 272, 5969, 8, 272, 1, 272, 3, 272, 5972, 8, 272, 1, 273, 3, 273, 5975, 8, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 3, 273, 5982, 8, 273, 1, 273, 3, 273, 5985, 8, 273, 1, 273, 3, 273, 5988, 8, 273, 1, 274, 1, 274, 1, 274, 5, 274, 5993, 8, 274, 10, 274, 12, 274, 5996, 9, 274, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 3, 275, 6007, 8, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 3, 275, 6014, 8, 275, 3, 275, 6016, 8, 275, 1, 276, 1, 276, 1, 276, 3, 276, 6021, 8, 276, 1, 276, 1, 276, 1, 276, 5, 276, 6026, 8, 276, 10, 276, 12, 276, 6029, 9, 276, 1, 276, 1, 276, 1, 276, 3, 276, 6034, 8, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 3, 277, 6041, 8, 277, 1, 278, 1, 278, 1, 278, 3, 278, 6046, 8, 278, 1, 278, 1, 278, 1, 279, 3, 279, 6051, 8, 279, 1, 279, 1, 279, 3, 279, 6055, 8, 279, 1, 279, 1, 279, 3, 279, 6059, 8, 279, 1, 279, 1, 279, 3, 279, 6063, 8, 279, 3, 279, 6065, 8, 279, 1, 280, 1, 280, 3, 280, 6069, 8, 280, 1, 281, 1, 281, 3, 281, 6073, 8, 281, 1, 281, 3, 281, 6076, 8, 281, 1, 281, 3, 281, 6079, 8, 281, 3, 281, 6081, 8, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 3, 281, 6091, 8, 281, 3, 281, 6093, 8, 281, 1, 281, 1, 281, 1, 281, 3, 281, 6098, 8, 281, 5, 281, 6100, 8, 281, 10, 281, 12, 281, 6103, 9, 281, 1, 282, 1, 282, 3, 282, 6107, 8, 282, 1, 283, 1, 283, 3, 283, 6111, 8, 283, 1, 283, 1, 283, 1, 283, 5, 283, 6116, 8, 283, 10, 283, 12, 283, 6119, 9, 283, 1, 284, 1, 284, 3, 284, 6123, 8, 284, 1, 284, 1, 284, 3, 284, 6127, 8, 284, 1, 284, 3, 284, 6130, 8, 284, 1, 284, 1, 284, 1, 284, 1, 284, 3, 284, 6136, 8, 284, 1, 284, 3, 284, 6139, 8, 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, 3, 286, 6158, 8, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 3, 287, 6165, 8, 287, 1, 287, 1, 287, 3, 287, 6169, 8, 287, 1, 288, 3, 288, 6172, 8, 288, 1, 288, 1, 288, 3, 288, 6176, 8, 288, 1, 288, 1, 288, 3, 288, 6180, 8, 288, 1, 288, 3, 288, 6183, 8, 288, 1, 288, 3, 288, 6186, 8, 288, 1, 289, 1, 289, 1, 289, 3, 289, 6191, 8, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 5, 290, 6198, 8, 290, 10, 290, 12, 290, 6201, 9, 290, 1, 291, 1, 291, 1, 291, 1, 291, 3, 291, 6207, 8, 291, 1, 291, 1, 291, 3, 291, 6211, 8, 291, 1, 292, 1, 292, 3, 292, 6215, 8, 292, 1, 292, 1, 292, 3, 292, 6219, 8, 292, 1, 292, 3, 292, 6222, 8, 292, 3, 292, 6224, 8, 292, 1, 293, 1, 293, 1, 293, 3, 293, 6229, 8, 293, 1, 293, 1, 293, 3, 293, 6233, 8, 293, 1, 294, 1, 294, 1, 294, 3, 294, 6238, 8, 294, 1, 294, 1, 294, 1, 294, 1, 294, 3, 294, 6244, 8, 294, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 3, 295, 6251, 8, 295, 1, 296, 1, 296, 1, 296, 3, 296, 6256, 8, 296, 1, 297, 1, 297, 1, 297, 3, 297, 6261, 8, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 5, 298, 6268, 8, 298, 10, 298, 12, 298, 6271, 9, 298, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 6277, 8, 299, 1, 299, 1, 299, 1, 299, 1, 299, 5, 299, 6283, 8, 299, 10, 299, 12, 299, 6286, 9, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 6296, 8, 299, 1, 300, 1, 300, 1, 300, 3, 300, 6301, 8, 300, 1, 300, 1, 300, 3, 300, 6305, 8, 300, 1, 300, 3, 300, 6308, 8, 300, 1, 300, 1, 300, 3, 300, 6312, 8, 300, 1, 300, 1, 300, 1, 300, 3, 300, 6317, 8, 300, 4, 300, 6319, 8, 300, 11, 300, 12, 300, 6320, 1, 300, 1, 300, 1, 300, 3, 300, 6326, 8, 300, 1, 301, 1, 301, 1, 301, 1, 301, 5, 301, 6332, 8, 301, 10, 301, 12, 301, 6335, 9, 301, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 5, 303, 6343, 8, 303, 10, 303, 12, 303, 6346, 9, 303, 1, 304, 1, 304, 3, 304, 6350, 8, 304, 1, 304, 1, 304, 3, 304, 6354, 8, 304, 1, 304, 3, 304, 6357, 8, 304, 1, 304, 3, 304, 6360, 8, 304, 3, 304, 6362, 8, 304, 1, 304, 3, 304, 6365, 8, 304, 1, 304, 3, 304, 6368, 8, 304, 1, 304, 3, 304, 6371, 8, 304, 1, 304, 1, 304, 3, 304, 6375, 8, 304, 1, 304, 1, 304, 3, 304, 6379, 8, 304, 1, 304, 1, 304, 3, 304, 6383, 8, 304, 3, 304, 6385, 8, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 3, 304, 6394, 8, 304, 1, 304, 1, 304, 1, 304, 3, 304, 6399, 8, 304, 1, 304, 1, 304, 1, 304, 1, 304, 3, 304, 6405, 8, 304, 1, 304, 1, 304, 3, 304, 6409, 8, 304, 3, 304, 6411, 8, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 3, 304, 6418, 8, 304, 1, 304, 1, 304, 1, 304, 3, 304, 6423, 8, 304, 1, 304, 1, 304, 1, 304, 1, 304, 5, 304, 6429, 8, 304, 10, 304, 12, 304, 6432, 9, 304, 1, 305, 3, 305, 6435, 8, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 3, 305, 6442, 8, 305, 1, 306, 1, 306, 1, 306, 3, 306, 6447, 8, 306, 1, 306, 3, 306, 6450, 8, 306, 1, 306, 1, 306, 1, 306, 1, 306, 3, 306, 6456, 8, 306, 1, 307, 1, 307, 3, 307, 6460, 8, 307, 1, 308, 1, 308, 1, 308, 1, 308, 3, 308, 6466, 8, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 3, 309, 6475, 8, 309, 1, 309, 1, 309, 1, 309, 1, 309, 3, 309, 6481, 8, 309, 3, 309, 6483, 8, 309, 1, 310, 1, 310, 1, 310, 3, 310, 6488, 8, 310, 1, 310, 3, 310, 6491, 8, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 3, 310, 6500, 8, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 3, 310, 6507, 8, 310, 3, 310, 6509, 8, 310, 1, 311, 1, 311, 1, 311, 5, 311, 6514, 8, 311, 10, 311, 12, 311, 6517, 9, 311, 1, 312, 1, 312, 3, 312, 6521, 8, 312, 1, 312, 3, 312, 6524, 8, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 3, 313, 6534, 8, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 5, 314, 6543, 8, 314, 10, 314, 12, 314, 6546, 9, 314, 1, 314, 1, 314, 3, 314, 6550, 8, 314, 1, 314, 1, 314, 3, 314, 6554, 8, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 3, 315, 6562, 8, 315, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 3, 317, 6572, 8, 317, 1, 318, 1, 318, 1, 318, 5, 318, 6577, 8, 318, 10, 318, 12, 318, 6580, 9, 318, 1, 319, 1, 319, 1, 319, 3, 319, 6585, 8, 319, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 5, 320, 6594, 8, 320, 10, 320, 12, 320, 6597, 9, 320, 1, 320, 1, 320, 1, 320, 3, 320, 6602, 8, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 5, 320, 6610, 8, 320, 10, 320, 12, 320, 6613, 9, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 3, 321, 6621, 8, 321, 1, 321, 1, 321, 3, 321, 6625, 8, 321, 1, 321, 4, 321, 6628, 8, 321, 11, 321, 12, 321, 6629, 3, 321, 6632, 8, 321, 1, 321, 1, 321, 3, 321, 6636, 8, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 3, 322, 6644, 8, 322, 1, 323, 3, 323, 6647, 8, 323, 1, 323, 1, 323, 1, 323, 3, 323, 6652, 8, 323, 1, 323, 5, 323, 6655, 8, 323, 10, 323, 12, 323, 6658, 9, 323, 1, 323, 1, 323, 1, 323, 1, 323, 3, 323, 6664, 8, 323, 3, 323, 6666, 8, 323, 1, 323, 1, 323, 1, 323, 1, 323, 3, 323, 6672, 8, 323, 1, 324, 1, 324, 3, 324, 6676, 8, 324, 1, 324, 3, 324, 6679, 8, 324, 1, 324, 1, 324, 1, 324, 3, 324, 6684, 8, 324, 1, 324, 3, 324, 6687, 8, 324, 3, 324, 6689, 8, 324, 1, 325, 1, 325, 1, 325, 1, 325, 3, 325, 6695, 8, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 3, 326, 6704, 8, 326, 1, 326, 1, 326, 1, 326, 1, 326, 3, 326, 6710, 8, 326, 1, 326, 3, 326, 6713, 8, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 328, 1, 328, 3, 328, 6721, 8, 328, 1, 328, 3, 328, 6724, 8, 328, 1, 329, 1, 329, 3, 329, 6728, 8, 329, 1, 329, 1, 329, 1, 329, 1, 329, 3, 329, 6734, 8, 329, 3, 329, 6736, 8, 329, 1, 329, 3, 329, 6739, 8, 329, 1, 330, 1, 330, 3, 330, 6743, 8, 330, 1, 330, 1, 330, 1, 330, 3, 330, 6748, 8, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 3, 331, 6755, 8, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 3, 331, 6762, 8, 331, 3, 331, 6764, 8, 331, 1, 331, 1, 331, 1, 331, 1, 331, 3, 331, 6770, 8, 331, 3, 331, 6772, 8, 331, 1, 331, 1, 331, 1, 331, 3, 331, 6777, 8, 331, 3, 331, 6779, 8, 331, 1, 332, 1, 332, 3, 332, 6783, 8, 332, 1, 333, 1, 333, 1, 334, 1, 334, 1, 335, 1, 335, 1, 335, 3, 335, 6792, 8, 335, 1, 335, 1, 335, 3, 335, 6796, 8, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 5, 335, 6804, 8, 335, 10, 335, 12, 335, 6807, 9, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 3, 336, 6820, 8, 336, 1, 336, 3, 336, 6823, 8, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 3, 336, 6831, 8, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 5, 336, 6838, 8, 336, 10, 336, 12, 336, 6841, 9, 336, 1, 336, 1, 336, 1, 336, 3, 336, 6846, 8, 336, 1, 336, 1, 336, 1, 336, 3, 336, 6851, 8, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 3, 336, 6859, 8, 336, 3, 336, 6861, 8, 336, 1, 336, 1, 336, 1, 336, 3, 336, 6866, 8, 336, 1, 336, 1, 336, 3, 336, 6870, 8, 336, 1, 336, 1, 336, 1, 336, 3, 336, 6875, 8, 336, 1, 336, 1, 336, 1, 336, 3, 336, 6880, 8, 336, 1, 337, 1, 337, 1, 337, 1, 337, 3, 337, 6886, 8, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 5, 337, 6902, 8, 337, 10, 337, 12, 337, 6905, 9, 337, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 3, 338, 6913, 8, 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, 3, 338, 6928, 8, 338, 1, 338, 1, 338, 1, 338, 3, 338, 6933, 8, 338, 1, 338, 3, 338, 6936, 8, 338, 1, 338, 1, 338, 1, 338, 1, 338, 3, 338, 6942, 8, 338, 1, 338, 1, 338, 1, 338, 3, 338, 6947, 8, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 3, 338, 6960, 8, 338, 1, 338, 4, 338, 6963, 8, 338, 11, 338, 12, 338, 6964, 1, 338, 1, 338, 3, 338, 6969, 8, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 3, 338, 6976, 8, 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, 3, 338, 6995, 8, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 3, 338, 7007, 8, 338, 1, 338, 1, 338, 1, 338, 3, 338, 7012, 8, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 3, 338, 7020, 8, 338, 5, 338, 7022, 8, 338, 10, 338, 12, 338, 7025, 9, 338, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 3, 339, 7033, 8, 339, 1, 339, 3, 339, 7036, 8, 339, 1, 339, 1, 339, 1, 339, 3, 339, 7041, 8, 339, 1, 339, 1, 339, 1, 339, 3, 339, 7046, 8, 339, 1, 339, 3, 339, 7049, 8, 339, 1, 339, 1, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 7060, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 7068, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 7073, 8, 340, 3, 340, 7075, 8, 340, 1, 340, 3, 340, 7078, 8, 340, 1, 341, 1, 341, 3, 341, 7082, 8, 341, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7093, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7114, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7122, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7135, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7145, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7151, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7157, 8, 342, 1, 342, 3, 342, 7160, 8, 342, 1, 342, 3, 342, 7163, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7189, 8, 342, 3, 342, 7191, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7212, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7222, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7235, 8, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7240, 8, 342, 1, 342, 1, 342, 3, 342, 7244, 8, 342, 3, 342, 7246, 8, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 3, 342, 7258, 8, 342, 1, 343, 1, 343, 1, 343, 5, 343, 7263, 8, 343, 10, 343, 12, 343, 7266, 9, 343, 1, 344, 1, 344, 1, 344, 3, 344, 7271, 8, 344, 1, 345, 1, 345, 1, 346, 1, 346, 3, 346, 7277, 8, 346, 1, 346, 1, 346, 3, 346, 7281, 8, 346, 1, 347, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 1, 348, 5, 348, 7290, 8, 348, 10, 348, 12, 348, 7293, 9, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 1, 350, 3, 350, 7302, 8, 350, 1, 351, 1, 351, 3, 351, 7306, 8, 351, 1, 351, 1, 351, 1, 351, 3, 351, 7311, 8, 351, 1, 351, 3, 351, 7314, 8, 351, 1, 351, 3, 351, 7317, 8, 351, 1, 351, 1, 351, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 3, 352, 7326, 8, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 1, 352, 3, 352, 7337, 8, 352, 3, 352, 7339, 8, 352, 1, 353, 1, 353, 3, 353, 7343, 8, 353, 1, 353, 1, 353, 1, 353, 3, 353, 7348, 8, 353, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 3, 354, 7357, 8, 354, 1, 355, 1, 355, 1, 355, 3, 355, 7362, 8, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 357, 1, 357, 3, 357, 7370, 8, 357, 1, 358, 1, 358, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 3, 359, 7380, 8, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 3, 360, 7388, 8, 360, 1, 361, 1, 361, 3, 361, 7392, 8, 361, 1, 361, 3, 361, 7395, 8, 361, 1, 362, 1, 362, 1, 362, 5, 362, 7400, 8, 362, 10, 362, 12, 362, 7403, 9, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 3, 363, 7410, 8, 363, 1, 364, 1, 364, 3, 364, 7414, 8, 364, 1, 365, 1, 365, 1, 365, 5, 365, 7419, 8, 365, 10, 365, 12, 365, 7422, 9, 365, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 3, 366, 7429, 8, 366, 3, 366, 7431, 8, 366, 1, 367, 1, 367, 1, 367, 1, 367, 1, 367, 5, 367, 7438, 8, 367, 10, 367, 12, 367, 7441, 9, 367, 3, 367, 7443, 8, 367, 1, 367, 1, 367, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 1, 368, 3, 368, 7455, 8, 368, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 3, 370, 7464, 8, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 3, 370, 7471, 8, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 1, 370, 3, 370, 7480, 8, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 3, 372, 7490, 8, 372, 1, 372, 1, 372, 1, 372, 3, 372, 7495, 8, 372, 1, 372, 1, 372, 3, 372, 7499, 8, 372, 3, 372, 7501, 8, 372, 1, 372, 3, 372, 7504, 8, 372, 1, 373, 4, 373, 7507, 8, 373, 11, 373, 12, 373, 7508, 1, 374, 5, 374, 7512, 8, 374, 10, 374, 12, 374, 7515, 9, 374, 1, 375, 1, 375, 1, 375, 5, 375, 7520, 8, 375, 10, 375, 12, 375, 7523, 9, 375, 1, 376, 1, 376, 1, 376, 1, 376, 1, 376, 3, 376, 7530, 8, 376, 1, 376, 3, 376, 7533, 8, 376, 1, 377, 1, 377, 1, 377, 5, 377, 7538, 8, 377, 10, 377, 12, 377, 7541, 9, 377, 1, 378, 1, 378, 1, 378, 5, 378, 7546, 8, 378, 10, 378, 12, 378, 7549, 9, 378, 1, 379, 1, 379, 1, 379, 5, 379, 7554, 8, 379, 10, 379, 12, 379, 7557, 9, 379, 1, 380, 1, 380, 1, 380, 5, 380, 7562, 8, 380, 10, 380, 12, 380, 7565, 9, 380, 1, 381, 1, 381, 1, 382, 1, 382, 1, 383, 1, 383, 1, 384, 1, 384, 1, 385, 1, 385, 1, 386, 1, 386, 1, 387, 1, 387, 3, 387, 7581, 8, 387, 1, 388, 1, 388, 1, 388, 5, 388, 7586, 8, 388, 10, 388, 12, 388, 7589, 9, 388, 1, 389, 1, 389, 1, 389, 5, 389, 7594, 8, 389, 10, 389, 12, 389, 7597, 9, 389, 1, 390, 1, 390, 1, 391, 1, 391, 1, 392, 1, 392, 1, 393, 1, 393, 1, 394, 1, 394, 1, 395, 1, 395, 1, 395, 1, 395, 3, 395, 7613, 8, 395, 1, 396, 1, 396, 1, 396, 1, 396, 3, 396, 7619, 8, 396, 1, 397, 1, 397, 1, 397, 1, 397, 3, 397, 7625, 8, 397, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 3, 399, 7633, 8, 399, 1, 400, 1, 400, 1, 400, 1, 400, 3, 400, 7639, 8, 400, 1, 401, 1, 401, 1, 401, 3, 401, 7644, 8, 401, 1, 402, 1, 402, 1, 402, 1, 402, 5, 402, 7650, 8, 402, 10, 402, 12, 402, 7653, 9, 402, 1, 402, 1, 402, 3, 402, 7657, 8, 402, 1, 403, 3, 403, 7660, 8, 403, 1, 403, 1, 403, 1, 404, 1, 404, 1, 404, 1, 404, 1, 404, 3, 404, 7669, 8, 404, 1, 405, 1, 405, 1, 405, 5, 405, 7674, 8, 405, 10, 405, 12, 405, 7677, 9, 405, 1, 406, 1, 406, 3, 406, 7681, 8, 406, 1, 407, 1, 407, 3, 407, 7685, 8, 407, 1, 408, 1, 408, 1, 408, 3, 408, 7690, 8, 408, 1, 409, 1, 409, 1, 409, 1, 409, 3, 409, 7696, 8, 409, 1, 410, 1, 410, 1, 410, 3, 410, 7701, 8, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 3, 410, 7709, 8, 410, 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, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 3, 412, 7764, 8, 412, 1, 413, 1, 413, 1, 414, 1, 414, 1, 415, 3, 415, 7771, 8, 415, 1, 415, 1, 415, 1, 415, 1, 415, 4, 415, 7777, 8, 415, 11, 415, 12, 415, 7778, 3, 415, 7781, 8, 415, 3, 415, 7783, 8, 415, 1, 415, 1, 415, 5, 415, 7787, 8, 415, 10, 415, 12, 415, 7790, 9, 415, 1, 415, 3, 415, 7793, 8, 415, 1, 415, 1, 415, 3, 415, 7797, 8, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 3, 417, 7808, 8, 417, 1, 417, 3, 417, 7811, 8, 417, 1, 417, 1, 417, 3, 417, 7815, 8, 417, 1, 417, 1, 417, 3, 417, 7819, 8, 417, 1, 417, 1, 417, 3, 417, 7823, 8, 417, 1, 417, 3, 417, 7826, 8, 417, 1, 417, 3, 417, 7829, 8, 417, 1, 417, 3, 417, 7832, 8, 417, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 5, 417, 7839, 8, 417, 10, 417, 12, 417, 7842, 9, 417, 1, 417, 1, 417, 3, 417, 7846, 8, 417, 1, 417, 1, 417, 3, 417, 7850, 8, 417, 1, 417, 1, 417, 1, 418, 1, 418, 1, 418, 1, 419, 1, 419, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 1, 420, 3, 420, 7883, 8, 420, 1, 421, 1, 421, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 1, 422, 3, 422, 7893, 8, 422, 1, 422, 1, 422, 3, 422, 7897, 8, 422, 1, 422, 1, 422, 1, 422, 1, 422, 3, 422, 7903, 8, 422, 1, 422, 1, 422, 1, 422, 3, 422, 7908, 8, 422, 1, 423, 1, 423, 1, 423, 1, 423, 1, 423, 1, 424, 1, 424, 3, 424, 7917, 8, 424, 1, 424, 1, 424, 1, 424, 1, 424, 5, 424, 7923, 8, 424, 10, 424, 12, 424, 7926, 9, 424, 1, 424, 1, 424, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 3, 426, 7936, 8, 426, 1, 426, 1, 426, 1, 426, 1, 426, 5, 426, 7942, 8, 426, 10, 426, 12, 426, 7945, 9, 426, 1, 427, 1, 427, 1, 427, 1, 427, 5, 427, 7951, 8, 427, 10, 427, 12, 427, 7954, 9, 427, 1, 427, 1, 427, 1, 427, 1, 427, 5, 427, 7960, 8, 427, 10, 427, 12, 427, 7963, 9, 427, 5, 427, 7965, 8, 427, 10, 427, 12, 427, 7968, 9, 427, 1, 427, 3, 427, 7971, 8, 427, 1, 427, 1, 427, 1, 427, 1, 427, 1, 428, 1, 428, 5, 428, 7979, 8, 428, 10, 428, 12, 428, 7982, 9, 428, 1, 429, 1, 429, 3, 429, 7986, 8, 429, 1, 429, 1, 429, 1, 429, 1, 429, 5, 429, 7992, 8, 429, 10, 429, 12, 429, 7995, 9, 429, 4, 429, 7997, 8, 429, 11, 429, 12, 429, 7998, 1, 429, 3, 429, 8002, 8, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 3, 430, 8009, 8, 430, 1, 430, 1, 430, 1, 430, 1, 430, 3, 430, 8015, 8, 430, 1, 430, 1, 430, 1, 431, 1, 431, 1, 431, 1, 431, 3, 431, 8023, 8, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 3, 431, 8031, 8, 431, 1, 431, 3, 431, 8034, 8, 431, 1, 431, 1, 431, 1, 431, 1, 431, 1, 431, 3, 431, 8041, 8, 431, 3, 431, 8043, 8, 431, 1, 432, 3, 432, 8046, 8, 432, 1, 432, 1, 432, 1, 432, 1, 432, 3, 432, 8052, 8, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 433, 1, 433, 3, 433, 8061, 8, 433, 1, 433, 1, 433, 3, 433, 8065, 8, 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, 3, 434, 8079, 8, 434, 1, 434, 3, 434, 8082, 8, 434, 3, 434, 8084, 8, 434, 1, 434, 1, 434, 1, 435, 1, 435, 3, 435, 8090, 8, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 1, 435, 4, 435, 8098, 8, 435, 11, 435, 12, 435, 8099, 3, 435, 8102, 8, 435, 3, 435, 8104, 8, 435, 1, 435, 1, 435, 1, 435, 1, 435, 5, 435, 8110, 8, 435, 10, 435, 12, 435, 8113, 9, 435, 3, 435, 8115, 8, 435, 1, 435, 3, 435, 8118, 8, 435, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 1, 437, 1, 437, 3, 437, 8128, 8, 437, 1, 437, 1, 437, 1, 438, 1, 438, 5, 438, 8134, 8, 438, 10, 438, 12, 438, 8137, 9, 438, 1, 438, 1, 438, 1, 438, 3, 438, 8142, 8, 438, 1, 438, 1, 438, 1, 439, 1, 439, 3, 439, 8148, 8, 439, 1, 439, 1, 439, 1, 440, 1, 440, 1, 440, 3, 440, 8155, 8, 440, 1, 440, 1, 440, 3, 440, 8159, 8, 440, 1, 440, 1, 440, 3, 440, 8163, 8, 440, 1, 440, 3, 440, 8166, 8, 440, 1, 440, 3, 440, 8169, 8, 440, 1, 440, 1, 440, 1, 441, 1, 441, 3, 441, 8175, 8, 441, 1, 441, 1, 441, 1, 442, 1, 442, 1, 442, 3, 442, 8182, 8, 442, 1, 442, 3, 442, 8185, 8, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 3, 442, 8193, 8, 442, 3, 442, 8195, 8, 442, 1, 442, 1, 442, 1, 442, 1, 442, 1, 442, 5, 442, 8202, 8, 442, 10, 442, 12, 442, 8205, 9, 442, 1, 442, 1, 442, 3, 442, 8209, 8, 442, 3, 442, 8211, 8, 442, 1, 442, 1, 442, 1, 443, 1, 443, 1, 443, 3, 443, 8218, 8, 443, 1, 443, 1, 443, 1, 444, 1, 444, 3, 444, 8224, 8, 444, 1, 444, 3, 444, 8227, 8, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 3, 445, 8239, 8, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 3, 445, 8246, 8, 445, 3, 445, 8248, 8, 445, 1, 446, 1, 446, 3, 446, 8252, 8, 446, 1, 446, 1, 446, 1, 446, 1, 447, 3, 447, 8258, 8, 447, 1, 447, 1, 447, 1, 447, 3, 447, 8263, 8, 447, 1, 447, 1, 447, 3, 447, 8267, 8, 447, 1, 447, 3, 447, 8270, 8, 447, 1, 447, 3, 447, 8273, 8, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 4, 447, 8280, 8, 447, 11, 447, 12, 447, 8281, 1, 447, 3, 447, 8285, 8, 447, 1, 448, 3, 448, 8288, 8, 448, 1, 448, 1, 448, 3, 448, 8292, 8, 448, 1, 448, 1, 448, 3, 448, 8296, 8, 448, 3, 448, 8298, 8, 448, 1, 448, 3, 448, 8301, 8, 448, 1, 448, 3, 448, 8304, 8, 448, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 8310, 8, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 8317, 8, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 8324, 8, 449, 1, 449, 1, 449, 1, 449, 1, 449, 3, 449, 8330, 8, 449, 3, 449, 8332, 8, 449, 1, 450, 1, 450, 3, 450, 8336, 8, 450, 1, 450, 1, 450, 1, 450, 3, 450, 8341, 8, 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, 5, 451, 8357, 8, 451, 10, 451, 12, 451, 8360, 9, 451, 1, 451, 1, 451, 4, 451, 8364, 8, 451, 11, 451, 12, 451, 8365, 1, 452, 1, 452, 1, 452, 1, 452, 1, 452, 5, 452, 8373, 8, 452, 10, 452, 12, 452, 8376, 9, 452, 1, 452, 1, 452, 1, 452, 1, 452, 3, 452, 8382, 8, 452, 1, 453, 1, 453, 3, 453, 8386, 8, 453, 1, 454, 1, 454, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 456, 1, 456, 1, 456, 3, 456, 8398, 8, 456, 1, 456, 3, 456, 8401, 8, 456, 1, 456, 1, 456, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 1, 457, 3, 457, 8414, 8, 457, 1, 457, 3, 457, 8417, 8, 457, 1, 458, 1, 458, 3, 458, 8421, 8, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 5, 459, 8428, 8, 459, 10, 459, 12, 459, 8431, 9, 459, 1, 459, 1, 459, 5, 459, 8435, 8, 459, 10, 459, 12, 459, 8438, 9, 459, 4, 459, 8440, 8, 459, 11, 459, 12, 459, 8441, 1, 460, 1, 460, 1, 460, 3, 460, 8447, 8, 460, 1, 461, 1, 461, 3, 461, 8451, 8, 461, 1, 462, 3, 462, 8454, 8, 462, 1, 462, 3, 462, 8457, 8, 462, 1, 462, 3, 462, 8460, 8, 462, 1, 462, 3, 462, 8463, 8, 462, 1, 462, 3, 462, 8466, 8, 462, 1, 462, 1, 462, 3, 462, 8470, 8, 462, 1, 462, 3, 462, 8473, 8, 462, 1, 462, 0, 3, 670, 674, 676, 463, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 500, 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, 924, 0, 119, 2, 0, 195, 195, 364, 364, 2, 0, 66, 66, 318, 318, 2, 0, 99, 99, 318, 318, 2, 0, 134, 134, 318, 318, 1, 0, 529, 531, 2, 0, 10, 10, 94, 94, 2, 0, 133, 133, 191, 191, 2, 0, 254, 254, 332, 332, 2, 0, 162, 162, 363, 363, 2, 0, 180, 180, 221, 221, 5, 0, 30, 30, 288, 288, 329, 329, 352, 352, 354, 354, 2, 0, 109, 109, 532, 532, 2, 0, 158, 158, 277, 277, 2, 0, 367, 367, 439, 439, 2, 0, 139, 139, 312, 312, 2, 0, 191, 191, 333, 333, 2, 0, 313, 313, 333, 333, 2, 0, 150, 150, 315, 315, 2, 0, 64, 64, 94, 94, 4, 0, 78, 78, 183, 183, 197, 197, 298, 298, 1, 0, 549, 551, 2, 0, 213, 213, 254, 254, 2, 0, 352, 352, 354, 354, 2, 0, 200, 200, 224, 224, 9, 0, 30, 30, 160, 160, 165, 165, 179, 179, 219, 219, 227, 227, 342, 342, 345, 345, 438, 438, 3, 0, 113, 113, 284, 284, 336, 336, 2, 0, 53, 53, 78, 78, 2, 0, 105, 105, 379, 379, 2, 0, 260, 260, 262, 262, 3, 0, 173, 173, 260, 260, 262, 262, 1, 0, 12, 13, 2, 0, 64, 64, 375, 375, 2, 0, 156, 156, 206, 206, 2, 0, 189, 189, 360, 360, 2, 0, 215, 215, 373, 373, 3, 0, 133, 133, 191, 191, 333, 333, 5, 0, 30, 30, 88, 88, 182, 182, 241, 241, 369, 369, 2, 0, 9, 9, 94, 94, 2, 0, 92, 92, 226, 226, 1, 0, 448, 449, 2, 0, 92, 92, 414, 414, 2, 0, 341, 341, 414, 414, 4, 0, 163, 163, 185, 185, 283, 283, 353, 353, 2, 0, 135, 135, 145, 145, 2, 0, 211, 211, 278, 278, 3, 0, 321, 321, 357, 357, 445, 445, 3, 0, 66, 66, 99, 99, 318, 318, 5, 0, 108, 108, 168, 168, 226, 226, 328, 328, 342, 342, 2, 0, 167, 167, 314, 314, 2, 0, 61, 61, 265, 265, 4, 0, 207, 207, 249, 249, 268, 268, 293, 293, 2, 0, 130, 130, 307, 307, 2, 0, 64, 64, 68, 68, 10, 0, 46, 46, 88, 88, 182, 182, 202, 202, 241, 241, 352, 352, 354, 354, 357, 358, 369, 369, 521, 523, 5, 0, 212, 212, 329, 329, 350, 350, 455, 455, 457, 457, 5, 0, 212, 212, 329, 329, 350, 350, 361, 361, 455, 456, 2, 0, 37, 37, 55, 55, 2, 0, 207, 207, 249, 249, 2, 0, 10, 10, 53, 53, 2, 0, 181, 181, 243, 243, 2, 0, 170, 170, 320, 320, 2, 0, 141, 141, 223, 223, 5, 0, 108, 108, 168, 168, 189, 189, 342, 342, 360, 360, 2, 0, 226, 226, 328, 328, 2, 0, 163, 163, 185, 185, 2, 0, 186, 186, 193, 193, 4, 0, 88, 88, 182, 182, 241, 241, 369, 369, 2, 0, 137, 137, 242, 242, 2, 0, 161, 161, 319, 319, 4, 0, 129, 129, 161, 161, 319, 319, 454, 454, 2, 0, 356, 356, 380, 380, 2, 0, 81, 81, 382, 382, 2, 0, 151, 151, 254, 254, 2, 0, 133, 133, 138, 138, 1, 0, 31, 32, 2, 0, 128, 128, 547, 547, 2, 0, 60, 60, 96, 96, 2, 0, 99, 99, 349, 349, 2, 0, 131, 131, 414, 414, 2, 0, 201, 201, 334, 334, 3, 0, 59, 59, 70, 70, 97, 97, 2, 0, 30, 30, 56, 56, 1, 0, 527, 528, 2, 0, 207, 207, 268, 268, 2, 0, 320, 320, 414, 414, 2, 0, 574, 574, 576, 576, 1, 0, 468, 469, 4, 0, 113, 113, 115, 115, 119, 119, 126, 126, 2, 0, 360, 360, 477, 477, 2, 0, 394, 395, 409, 409, 2, 0, 391, 392, 406, 406, 1, 0, 391, 392, 1, 0, 418, 419, 5, 0, 10, 10, 16, 17, 21, 21, 23, 23, 25, 25, 3, 0, 9, 9, 14, 14, 27, 27, 2, 0, 98, 98, 396, 396, 2, 0, 50, 51, 75, 76, 2, 0, 41, 41, 420, 420, 3, 0, 39, 39, 73, 73, 95, 95, 4, 0, 393, 393, 399, 399, 404, 404, 425, 425, 2, 0, 292, 292, 347, 347, 2, 0, 166, 166, 188, 188, 2, 0, 304, 304, 450, 450, 3, 0, 299, 299, 320, 320, 481, 481, 2, 0, 208, 208, 289, 289, 3, 0, 30, 30, 34, 34, 90, 90, 6, 0, 9, 10, 12, 17, 21, 21, 23, 23, 25, 25, 27, 27, 2, 0, 114, 114, 120, 120, 2, 0, 20, 20, 22, 22, 1, 0, 483, 486, 17, 0, 53, 53, 116, 116, 123, 124, 129, 228, 238, 386, 433, 452, 455, 469, 471, 471, 473, 473, 475, 475, 477, 488, 490, 502, 504, 504, 506, 518, 520, 520, 524, 524, 547, 548, 3, 0, 106, 123, 125, 128, 472, 472, 4, 0, 30, 52, 54, 70, 72, 105, 454, 454, 2, 0, 62, 62, 116, 116, 2, 0, 10, 10, 20, 20, 2, 0, 434, 434, 501, 501, 2, 0, 167, 167, 507, 507, 1, 0, 512, 517, 2, 0, 144, 144, 210, 210, 9915, 0, 929, 1, 0, 0, 0, 2, 934, 1, 0, 0, 0, 4, 1058, 1, 0, 0, 0, 6, 1060, 1, 0, 0, 0, 8, 1063, 1, 0, 0, 0, 10, 1113, 1, 0, 0, 0, 12, 1123, 1, 0, 0, 0, 14, 1125, 1, 0, 0, 0, 16, 1137, 1, 0, 0, 0, 18, 1149, 1, 0, 0, 0, 20, 1160, 1, 0, 0, 0, 22, 1194, 1, 0, 0, 0, 24, 1238, 1, 0, 0, 0, 26, 1240, 1, 0, 0, 0, 28, 1252, 1, 0, 0, 0, 30, 1259, 1, 0, 0, 0, 32, 1278, 1, 0, 0, 0, 34, 1286, 1, 0, 0, 0, 36, 1288, 1, 0, 0, 0, 38, 1302, 1, 0, 0, 0, 40, 1306, 1, 0, 0, 0, 42, 1343, 1, 0, 0, 0, 44, 1345, 1, 0, 0, 0, 46, 1353, 1, 0, 0, 0, 48, 1363, 1, 0, 0, 0, 50, 1370, 1, 0, 0, 0, 52, 1378, 1, 0, 0, 0, 54, 1384, 1, 0, 0, 0, 56, 1400, 1, 0, 0, 0, 58, 1404, 1, 0, 0, 0, 60, 1406, 1, 0, 0, 0, 62, 1418, 1, 0, 0, 0, 64, 1423, 1, 0, 0, 0, 66, 1428, 1, 0, 0, 0, 68, 1430, 1, 0, 0, 0, 70, 1442, 1, 0, 0, 0, 72, 1450, 1, 0, 0, 0, 74, 1452, 1, 0, 0, 0, 76, 1572, 1, 0, 0, 0, 78, 1574, 1, 0, 0, 0, 80, 1588, 1, 0, 0, 0, 82, 1590, 1, 0, 0, 0, 84, 1827, 1, 0, 0, 0, 86, 1834, 1, 0, 0, 0, 88, 1836, 1, 0, 0, 0, 90, 1838, 1, 0, 0, 0, 92, 1841, 1, 0, 0, 0, 94, 1852, 1, 0, 0, 0, 96, 1855, 1, 0, 0, 0, 98, 1885, 1, 0, 0, 0, 100, 1887, 1, 0, 0, 0, 102, 1928, 1, 0, 0, 0, 104, 1930, 1, 0, 0, 0, 106, 1984, 1, 0, 0, 0, 108, 2030, 1, 0, 0, 0, 110, 2051, 1, 0, 0, 0, 112, 2053, 1, 0, 0, 0, 114, 2070, 1, 0, 0, 0, 116, 2151, 1, 0, 0, 0, 118, 2153, 1, 0, 0, 0, 120, 2164, 1, 0, 0, 0, 122, 2187, 1, 0, 0, 0, 124, 2205, 1, 0, 0, 0, 126, 2207, 1, 0, 0, 0, 128, 2242, 1, 0, 0, 0, 130, 2335, 1, 0, 0, 0, 132, 2340, 1, 0, 0, 0, 134, 2342, 1, 0, 0, 0, 136, 2440, 1, 0, 0, 0, 138, 2442, 1, 0, 0, 0, 140, 2446, 1, 0, 0, 0, 142, 2457, 1, 0, 0, 0, 144, 2465, 1, 0, 0, 0, 146, 2468, 1, 0, 0, 0, 148, 2471, 1, 0, 0, 0, 150, 2489, 1, 0, 0, 0, 152, 2491, 1, 0, 0, 0, 154, 2495, 1, 0, 0, 0, 156, 2508, 1, 0, 0, 0, 158, 2510, 1, 0, 0, 0, 160, 2515, 1, 0, 0, 0, 162, 2535, 1, 0, 0, 0, 164, 2543, 1, 0, 0, 0, 166, 2550, 1, 0, 0, 0, 168, 2552, 1, 0, 0, 0, 170, 2561, 1, 0, 0, 0, 172, 2564, 1, 0, 0, 0, 174, 2568, 1, 0, 0, 0, 176, 2572, 1, 0, 0, 0, 178, 2597, 1, 0, 0, 0, 180, 2607, 1, 0, 0, 0, 182, 2621, 1, 0, 0, 0, 184, 2637, 1, 0, 0, 0, 186, 2643, 1, 0, 0, 0, 188, 2670, 1, 0, 0, 0, 190, 2680, 1, 0, 0, 0, 192, 2696, 1, 0, 0, 0, 194, 2740, 1, 0, 0, 0, 196, 2747, 1, 0, 0, 0, 198, 2749, 1, 0, 0, 0, 200, 2775, 1, 0, 0, 0, 202, 2786, 1, 0, 0, 0, 204, 2805, 1, 0, 0, 0, 206, 2816, 1, 0, 0, 0, 208, 2854, 1, 0, 0, 0, 210, 2875, 1, 0, 0, 0, 212, 2877, 1, 0, 0, 0, 214, 2897, 1, 0, 0, 0, 216, 2909, 1, 0, 0, 0, 218, 2921, 1, 0, 0, 0, 220, 2924, 1, 0, 0, 0, 222, 2927, 1, 0, 0, 0, 224, 2947, 1, 0, 0, 0, 226, 2952, 1, 0, 0, 0, 228, 3001, 1, 0, 0, 0, 230, 3003, 1, 0, 0, 0, 232, 3026, 1, 0, 0, 0, 234, 3042, 1, 0, 0, 0, 236, 3054, 1, 0, 0, 0, 238, 3081, 1, 0, 0, 0, 240, 3096, 1, 0, 0, 0, 242, 3159, 1, 0, 0, 0, 244, 3161, 1, 0, 0, 0, 246, 3166, 1, 0, 0, 0, 248, 3172, 1, 0, 0, 0, 250, 3259, 1, 0, 0, 0, 252, 3265, 1, 0, 0, 0, 254, 3267, 1, 0, 0, 0, 256, 3283, 1, 0, 0, 0, 258, 3285, 1, 0, 0, 0, 260, 3294, 1, 0, 0, 0, 262, 3298, 1, 0, 0, 0, 264, 3311, 1, 0, 0, 0, 266, 3323, 1, 0, 0, 0, 268, 3325, 1, 0, 0, 0, 270, 3347, 1, 0, 0, 0, 272, 3359, 1, 0, 0, 0, 274, 3370, 1, 0, 0, 0, 276, 3461, 1, 0, 0, 0, 278, 3463, 1, 0, 0, 0, 280, 3474, 1, 0, 0, 0, 282, 3485, 1, 0, 0, 0, 284, 3487, 1, 0, 0, 0, 286, 3513, 1, 0, 0, 0, 288, 3515, 1, 0, 0, 0, 290, 3519, 1, 0, 0, 0, 292, 3569, 1, 0, 0, 0, 294, 3571, 1, 0, 0, 0, 296, 3577, 1, 0, 0, 0, 298, 3602, 1, 0, 0, 0, 300, 3606, 1, 0, 0, 0, 302, 3820, 1, 0, 0, 0, 304, 3838, 1, 0, 0, 0, 306, 3864, 1, 0, 0, 0, 308, 3866, 1, 0, 0, 0, 310, 3874, 1, 0, 0, 0, 312, 3880, 1, 0, 0, 0, 314, 3884, 1, 0, 0, 0, 316, 3904, 1, 0, 0, 0, 318, 3910, 1, 0, 0, 0, 320, 3977, 1, 0, 0, 0, 322, 4008, 1, 0, 0, 0, 324, 4054, 1, 0, 0, 0, 326, 4056, 1, 0, 0, 0, 328, 4058, 1, 0, 0, 0, 330, 4069, 1, 0, 0, 0, 332, 4106, 1, 0, 0, 0, 334, 4108, 1, 0, 0, 0, 336, 4114, 1, 0, 0, 0, 338, 4164, 1, 0, 0, 0, 340, 4167, 1, 0, 0, 0, 342, 4181, 1, 0, 0, 0, 344, 4202, 1, 0, 0, 0, 346, 4226, 1, 0, 0, 0, 348, 4267, 1, 0, 0, 0, 350, 4269, 1, 0, 0, 0, 352, 4271, 1, 0, 0, 0, 354, 4311, 1, 0, 0, 0, 356, 4328, 1, 0, 0, 0, 358, 4348, 1, 0, 0, 0, 360, 4401, 1, 0, 0, 0, 362, 4404, 1, 0, 0, 0, 364, 4410, 1, 0, 0, 0, 366, 4418, 1, 0, 0, 0, 368, 4431, 1, 0, 0, 0, 370, 4433, 1, 0, 0, 0, 372, 4446, 1, 0, 0, 0, 374, 4448, 1, 0, 0, 0, 376, 4461, 1, 0, 0, 0, 378, 4471, 1, 0, 0, 0, 380, 4482, 1, 0, 0, 0, 382, 4493, 1, 0, 0, 0, 384, 4495, 1, 0, 0, 0, 386, 4500, 1, 0, 0, 0, 388, 4514, 1, 0, 0, 0, 390, 4546, 1, 0, 0, 0, 392, 4583, 1, 0, 0, 0, 394, 4585, 1, 0, 0, 0, 396, 4588, 1, 0, 0, 0, 398, 4591, 1, 0, 0, 0, 400, 4608, 1, 0, 0, 0, 402, 4629, 1, 0, 0, 0, 404, 4645, 1, 0, 0, 0, 406, 4661, 1, 0, 0, 0, 408, 4683, 1, 0, 0, 0, 410, 4688, 1, 0, 0, 0, 412, 4691, 1, 0, 0, 0, 414, 4699, 1, 0, 0, 0, 416, 4724, 1, 0, 0, 0, 418, 4727, 1, 0, 0, 0, 420, 4755, 1, 0, 0, 0, 422, 4760, 1, 0, 0, 0, 424, 4800, 1, 0, 0, 0, 426, 5012, 1, 0, 0, 0, 428, 5014, 1, 0, 0, 0, 430, 5102, 1, 0, 0, 0, 432, 5104, 1, 0, 0, 0, 434, 5110, 1, 0, 0, 0, 436, 5121, 1, 0, 0, 0, 438, 5131, 1, 0, 0, 0, 440, 5211, 1, 0, 0, 0, 442, 5213, 1, 0, 0, 0, 444, 5227, 1, 0, 0, 0, 446, 5249, 1, 0, 0, 0, 448, 5322, 1, 0, 0, 0, 450, 5324, 1, 0, 0, 0, 452, 5365, 1, 0, 0, 0, 454, 5367, 1, 0, 0, 0, 456, 5372, 1, 0, 0, 0, 458, 5375, 1, 0, 0, 0, 460, 5378, 1, 0, 0, 0, 462, 5428, 1, 0, 0, 0, 464, 5430, 1, 0, 0, 0, 466, 5441, 1, 0, 0, 0, 468, 5443, 1, 0, 0, 0, 470, 5453, 1, 0, 0, 0, 472, 5488, 1, 0, 0, 0, 474, 5491, 1, 0, 0, 0, 476, 5512, 1, 0, 0, 0, 478, 5522, 1, 0, 0, 0, 480, 5542, 1, 0, 0, 0, 482, 5548, 1, 0, 0, 0, 484, 5554, 1, 0, 0, 0, 486, 5559, 1, 0, 0, 0, 488, 5572, 1, 0, 0, 0, 490, 5599, 1, 0, 0, 0, 492, 5647, 1, 0, 0, 0, 494, 5649, 1, 0, 0, 0, 496, 5687, 1, 0, 0, 0, 498, 5689, 1, 0, 0, 0, 500, 5710, 1, 0, 0, 0, 502, 5730, 1, 0, 0, 0, 504, 5734, 1, 0, 0, 0, 506, 5749, 1, 0, 0, 0, 508, 5751, 1, 0, 0, 0, 510, 5755, 1, 0, 0, 0, 512, 5759, 1, 0, 0, 0, 514, 5767, 1, 0, 0, 0, 516, 5791, 1, 0, 0, 0, 518, 5793, 1, 0, 0, 0, 520, 5804, 1, 0, 0, 0, 522, 5812, 1, 0, 0, 0, 524, 5828, 1, 0, 0, 0, 526, 5853, 1, 0, 0, 0, 528, 5855, 1, 0, 0, 0, 530, 5859, 1, 0, 0, 0, 532, 5868, 1, 0, 0, 0, 534, 5908, 1, 0, 0, 0, 536, 5919, 1, 0, 0, 0, 538, 5927, 1, 0, 0, 0, 540, 5930, 1, 0, 0, 0, 542, 5934, 1, 0, 0, 0, 544, 5949, 1, 0, 0, 0, 546, 5974, 1, 0, 0, 0, 548, 5989, 1, 0, 0, 0, 550, 6015, 1, 0, 0, 0, 552, 6017, 1, 0, 0, 0, 554, 6040, 1, 0, 0, 0, 556, 6042, 1, 0, 0, 0, 558, 6050, 1, 0, 0, 0, 560, 6068, 1, 0, 0, 0, 562, 6092, 1, 0, 0, 0, 564, 6104, 1, 0, 0, 0, 566, 6108, 1, 0, 0, 0, 568, 6120, 1, 0, 0, 0, 570, 6140, 1, 0, 0, 0, 572, 6148, 1, 0, 0, 0, 574, 6162, 1, 0, 0, 0, 576, 6185, 1, 0, 0, 0, 578, 6187, 1, 0, 0, 0, 580, 6192, 1, 0, 0, 0, 582, 6202, 1, 0, 0, 0, 584, 6223, 1, 0, 0, 0, 586, 6225, 1, 0, 0, 0, 588, 6234, 1, 0, 0, 0, 590, 6245, 1, 0, 0, 0, 592, 6255, 1, 0, 0, 0, 594, 6257, 1, 0, 0, 0, 596, 6264, 1, 0, 0, 0, 598, 6295, 1, 0, 0, 0, 600, 6325, 1, 0, 0, 0, 602, 6327, 1, 0, 0, 0, 604, 6336, 1, 0, 0, 0, 606, 6339, 1, 0, 0, 0, 608, 6410, 1, 0, 0, 0, 610, 6434, 1, 0, 0, 0, 612, 6455, 1, 0, 0, 0, 614, 6457, 1, 0, 0, 0, 616, 6465, 1, 0, 0, 0, 618, 6482, 1, 0, 0, 0, 620, 6508, 1, 0, 0, 0, 622, 6510, 1, 0, 0, 0, 624, 6518, 1, 0, 0, 0, 626, 6525, 1, 0, 0, 0, 628, 6549, 1, 0, 0, 0, 630, 6555, 1, 0, 0, 0, 632, 6563, 1, 0, 0, 0, 634, 6566, 1, 0, 0, 0, 636, 6573, 1, 0, 0, 0, 638, 6581, 1, 0, 0, 0, 640, 6586, 1, 0, 0, 0, 642, 6616, 1, 0, 0, 0, 644, 6643, 1, 0, 0, 0, 646, 6671, 1, 0, 0, 0, 648, 6688, 1, 0, 0, 0, 650, 6694, 1, 0, 0, 0, 652, 6712, 1, 0, 0, 0, 654, 6714, 1, 0, 0, 0, 656, 6718, 1, 0, 0, 0, 658, 6735, 1, 0, 0, 0, 660, 6740, 1, 0, 0, 0, 662, 6778, 1, 0, 0, 0, 664, 6780, 1, 0, 0, 0, 666, 6784, 1, 0, 0, 0, 668, 6786, 1, 0, 0, 0, 670, 6795, 1, 0, 0, 0, 672, 6879, 1, 0, 0, 0, 674, 6885, 1, 0, 0, 0, 676, 6994, 1, 0, 0, 0, 678, 7026, 1, 0, 0, 0, 680, 7077, 1, 0, 0, 0, 682, 7081, 1, 0, 0, 0, 684, 7257, 1, 0, 0, 0, 686, 7259, 1, 0, 0, 0, 688, 7267, 1, 0, 0, 0, 690, 7272, 1, 0, 0, 0, 692, 7274, 1, 0, 0, 0, 694, 7282, 1, 0, 0, 0, 696, 7285, 1, 0, 0, 0, 698, 7294, 1, 0, 0, 0, 700, 7298, 1, 0, 0, 0, 702, 7303, 1, 0, 0, 0, 704, 7320, 1, 0, 0, 0, 706, 7347, 1, 0, 0, 0, 708, 7356, 1, 0, 0, 0, 710, 7358, 1, 0, 0, 0, 712, 7365, 1, 0, 0, 0, 714, 7369, 1, 0, 0, 0, 716, 7371, 1, 0, 0, 0, 718, 7379, 1, 0, 0, 0, 720, 7387, 1, 0, 0, 0, 722, 7394, 1, 0, 0, 0, 724, 7396, 1, 0, 0, 0, 726, 7409, 1, 0, 0, 0, 728, 7413, 1, 0, 0, 0, 730, 7415, 1, 0, 0, 0, 732, 7430, 1, 0, 0, 0, 734, 7432, 1, 0, 0, 0, 736, 7454, 1, 0, 0, 0, 738, 7456, 1, 0, 0, 0, 740, 7479, 1, 0, 0, 0, 742, 7481, 1, 0, 0, 0, 744, 7503, 1, 0, 0, 0, 746, 7506, 1, 0, 0, 0, 748, 7513, 1, 0, 0, 0, 750, 7516, 1, 0, 0, 0, 752, 7532, 1, 0, 0, 0, 754, 7534, 1, 0, 0, 0, 756, 7542, 1, 0, 0, 0, 758, 7550, 1, 0, 0, 0, 760, 7558, 1, 0, 0, 0, 762, 7566, 1, 0, 0, 0, 764, 7568, 1, 0, 0, 0, 766, 7570, 1, 0, 0, 0, 768, 7572, 1, 0, 0, 0, 770, 7574, 1, 0, 0, 0, 772, 7576, 1, 0, 0, 0, 774, 7578, 1, 0, 0, 0, 776, 7582, 1, 0, 0, 0, 778, 7590, 1, 0, 0, 0, 780, 7598, 1, 0, 0, 0, 782, 7600, 1, 0, 0, 0, 784, 7602, 1, 0, 0, 0, 786, 7604, 1, 0, 0, 0, 788, 7606, 1, 0, 0, 0, 790, 7612, 1, 0, 0, 0, 792, 7618, 1, 0, 0, 0, 794, 7624, 1, 0, 0, 0, 796, 7626, 1, 0, 0, 0, 798, 7632, 1, 0, 0, 0, 800, 7638, 1, 0, 0, 0, 802, 7640, 1, 0, 0, 0, 804, 7656, 1, 0, 0, 0, 806, 7659, 1, 0, 0, 0, 808, 7668, 1, 0, 0, 0, 810, 7670, 1, 0, 0, 0, 812, 7680, 1, 0, 0, 0, 814, 7684, 1, 0, 0, 0, 816, 7689, 1, 0, 0, 0, 818, 7695, 1, 0, 0, 0, 820, 7708, 1, 0, 0, 0, 822, 7710, 1, 0, 0, 0, 824, 7763, 1, 0, 0, 0, 826, 7765, 1, 0, 0, 0, 828, 7767, 1, 0, 0, 0, 830, 7770, 1, 0, 0, 0, 832, 7798, 1, 0, 0, 0, 834, 7802, 1, 0, 0, 0, 836, 7853, 1, 0, 0, 0, 838, 7856, 1, 0, 0, 0, 840, 7882, 1, 0, 0, 0, 842, 7884, 1, 0, 0, 0, 844, 7907, 1, 0, 0, 0, 846, 7909, 1, 0, 0, 0, 848, 7914, 1, 0, 0, 0, 850, 7929, 1, 0, 0, 0, 852, 7935, 1, 0, 0, 0, 854, 7946, 1, 0, 0, 0, 856, 7976, 1, 0, 0, 0, 858, 7983, 1, 0, 0, 0, 860, 8008, 1, 0, 0, 0, 862, 8018, 1, 0, 0, 0, 864, 8045, 1, 0, 0, 0, 866, 8058, 1, 0, 0, 0, 868, 8068, 1, 0, 0, 0, 870, 8087, 1, 0, 0, 0, 872, 8119, 1, 0, 0, 0, 874, 8123, 1, 0, 0, 0, 876, 8131, 1, 0, 0, 0, 878, 8145, 1, 0, 0, 0, 880, 8151, 1, 0, 0, 0, 882, 8172, 1, 0, 0, 0, 884, 8178, 1, 0, 0, 0, 886, 8217, 1, 0, 0, 0, 888, 8221, 1, 0, 0, 0, 890, 8247, 1, 0, 0, 0, 892, 8249, 1, 0, 0, 0, 894, 8257, 1, 0, 0, 0, 896, 8297, 1, 0, 0, 0, 898, 8331, 1, 0, 0, 0, 900, 8333, 1, 0, 0, 0, 902, 8344, 1, 0, 0, 0, 904, 8381, 1, 0, 0, 0, 906, 8385, 1, 0, 0, 0, 908, 8387, 1, 0, 0, 0, 910, 8391, 1, 0, 0, 0, 912, 8394, 1, 0, 0, 0, 914, 8416, 1, 0, 0, 0, 916, 8420, 1, 0, 0, 0, 918, 8422, 1, 0, 0, 0, 920, 8446, 1, 0, 0, 0, 922, 8450, 1, 0, 0, 0, 924, 8453, 1, 0, 0, 0, 926, 928, 3, 2, 1, 0, 927, 926, 1, 0, 0, 0, 928, 931, 1, 0, 0, 0, 929, 927, 1, 0, 0, 0, 929, 930, 1, 0, 0, 0, 930, 932, 1, 0, 0, 0, 931, 929, 1, 0, 0, 0, 932, 933, 5, 0, 0, 1, 933, 1, 1, 0, 0, 0, 934, 936, 3, 4, 2, 0, 935, 937, 5, 7, 0, 0, 936, 935, 1, 0, 0, 0, 936, 937, 1, 0, 0, 0, 937, 3, 1, 0, 0, 0, 938, 1059, 3, 272, 136, 0, 939, 1059, 3, 482, 241, 0, 940, 1059, 3, 478, 239, 0, 941, 1059, 3, 480, 240, 0, 942, 1059, 3, 346, 173, 0, 943, 1059, 3, 488, 244, 0, 944, 1059, 3, 286, 143, 0, 945, 1059, 3, 204, 102, 0, 946, 1059, 3, 206, 103, 0, 947, 1059, 3, 212, 106, 0, 948, 1059, 3, 226, 113, 0, 949, 1059, 3, 398, 199, 0, 950, 1059, 3, 28, 14, 0, 951, 1059, 3, 428, 214, 0, 952, 1059, 3, 430, 215, 0, 953, 1059, 3, 440, 220, 0, 954, 1059, 3, 432, 216, 0, 955, 1059, 3, 438, 219, 0, 956, 1059, 3, 238, 119, 0, 957, 1059, 3, 240, 120, 0, 958, 1059, 3, 192, 96, 0, 959, 1059, 3, 484, 242, 0, 960, 1059, 3, 76, 38, 0, 961, 1059, 3, 424, 212, 0, 962, 1059, 3, 100, 50, 0, 963, 1059, 3, 444, 222, 0, 964, 1059, 3, 18, 9, 0, 965, 1059, 3, 20, 10, 0, 966, 1059, 3, 16, 8, 0, 967, 1059, 3, 448, 224, 0, 968, 1059, 3, 178, 89, 0, 969, 1059, 3, 492, 246, 0, 970, 1059, 3, 490, 245, 0, 971, 1059, 3, 234, 117, 0, 972, 1059, 3, 500, 250, 0, 973, 1059, 3, 6, 3, 0, 974, 1059, 3, 72, 36, 0, 975, 1059, 3, 104, 52, 0, 976, 1059, 3, 496, 248, 0, 977, 1059, 3, 318, 159, 0, 978, 1059, 3, 70, 35, 0, 979, 1059, 3, 106, 53, 0, 980, 1059, 3, 248, 124, 0, 981, 1059, 3, 180, 90, 0, 982, 1059, 3, 274, 137, 0, 983, 1059, 3, 414, 207, 0, 984, 1059, 3, 494, 247, 0, 985, 1059, 3, 486, 243, 0, 986, 1059, 3, 202, 101, 0, 987, 1059, 3, 208, 104, 0, 988, 1059, 3, 222, 111, 0, 989, 1059, 3, 228, 114, 0, 990, 1059, 3, 358, 179, 0, 991, 1059, 3, 26, 13, 0, 992, 1059, 3, 186, 93, 0, 993, 1059, 3, 290, 145, 0, 994, 1059, 3, 294, 147, 0, 995, 1059, 3, 442, 221, 0, 996, 1059, 3, 296, 148, 0, 997, 1059, 3, 236, 118, 0, 998, 1059, 3, 198, 99, 0, 999, 1059, 3, 30, 15, 0, 1000, 1059, 3, 190, 95, 0, 1001, 1059, 3, 114, 57, 0, 1002, 1059, 3, 446, 223, 0, 1003, 1059, 3, 176, 88, 0, 1004, 1059, 3, 200, 100, 0, 1005, 1059, 3, 418, 209, 0, 1006, 1059, 3, 250, 125, 0, 1007, 1059, 3, 268, 134, 0, 1008, 1059, 3, 8, 4, 0, 1009, 1059, 3, 14, 7, 0, 1010, 1059, 3, 232, 116, 0, 1011, 1059, 3, 474, 237, 0, 1012, 1059, 3, 530, 265, 0, 1013, 1059, 3, 552, 276, 0, 1014, 1059, 3, 276, 138, 0, 1015, 1059, 3, 542, 271, 0, 1016, 1059, 3, 74, 37, 0, 1017, 1059, 3, 412, 206, 0, 1018, 1059, 3, 302, 151, 0, 1019, 1059, 3, 526, 263, 0, 1020, 1059, 3, 514, 257, 0, 1021, 1059, 3, 322, 161, 0, 1022, 1059, 3, 328, 164, 0, 1023, 1059, 3, 342, 171, 0, 1024, 1059, 3, 894, 447, 0, 1025, 1059, 3, 230, 115, 0, 1026, 1059, 3, 352, 176, 0, 1027, 1059, 3, 532, 266, 0, 1028, 1059, 3, 458, 229, 0, 1029, 1059, 3, 188, 94, 0, 1030, 1059, 3, 472, 236, 0, 1031, 1059, 3, 544, 272, 0, 1032, 1059, 3, 454, 227, 0, 1033, 1059, 3, 520, 260, 0, 1034, 1059, 3, 300, 150, 0, 1035, 1059, 3, 422, 211, 0, 1036, 1059, 3, 402, 201, 0, 1037, 1059, 3, 400, 200, 0, 1038, 1059, 3, 404, 202, 0, 1039, 1059, 3, 426, 213, 0, 1040, 1059, 3, 330, 165, 0, 1041, 1059, 3, 344, 172, 0, 1042, 1059, 3, 450, 225, 0, 1043, 1059, 3, 320, 160, 0, 1044, 1059, 3, 554, 277, 0, 1045, 1059, 3, 462, 231, 0, 1046, 1059, 3, 314, 157, 0, 1047, 1059, 3, 460, 230, 0, 1048, 1059, 3, 546, 273, 0, 1049, 1059, 3, 498, 249, 0, 1050, 1059, 3, 60, 30, 0, 1051, 1059, 3, 36, 18, 0, 1052, 1059, 3, 68, 34, 0, 1053, 1059, 3, 470, 235, 0, 1054, 1056, 5, 584, 0, 0, 1055, 1057, 5, 585, 0, 0, 1056, 1055, 1, 0, 0, 0, 1056, 1057, 1, 0, 0, 0, 1057, 1059, 1, 0, 0, 0, 1058, 938, 1, 0, 0, 0, 1058, 939, 1, 0, 0, 0, 1058, 940, 1, 0, 0, 0, 1058, 941, 1, 0, 0, 0, 1058, 942, 1, 0, 0, 0, 1058, 943, 1, 0, 0, 0, 1058, 944, 1, 0, 0, 0, 1058, 945, 1, 0, 0, 0, 1058, 946, 1, 0, 0, 0, 1058, 947, 1, 0, 0, 0, 1058, 948, 1, 0, 0, 0, 1058, 949, 1, 0, 0, 0, 1058, 950, 1, 0, 0, 0, 1058, 951, 1, 0, 0, 0, 1058, 952, 1, 0, 0, 0, 1058, 953, 1, 0, 0, 0, 1058, 954, 1, 0, 0, 0, 1058, 955, 1, 0, 0, 0, 1058, 956, 1, 0, 0, 0, 1058, 957, 1, 0, 0, 0, 1058, 958, 1, 0, 0, 0, 1058, 959, 1, 0, 0, 0, 1058, 960, 1, 0, 0, 0, 1058, 961, 1, 0, 0, 0, 1058, 962, 1, 0, 0, 0, 1058, 963, 1, 0, 0, 0, 1058, 964, 1, 0, 0, 0, 1058, 965, 1, 0, 0, 0, 1058, 966, 1, 0, 0, 0, 1058, 967, 1, 0, 0, 0, 1058, 968, 1, 0, 0, 0, 1058, 969, 1, 0, 0, 0, 1058, 970, 1, 0, 0, 0, 1058, 971, 1, 0, 0, 0, 1058, 972, 1, 0, 0, 0, 1058, 973, 1, 0, 0, 0, 1058, 974, 1, 0, 0, 0, 1058, 975, 1, 0, 0, 0, 1058, 976, 1, 0, 0, 0, 1058, 977, 1, 0, 0, 0, 1058, 978, 1, 0, 0, 0, 1058, 979, 1, 0, 0, 0, 1058, 980, 1, 0, 0, 0, 1058, 981, 1, 0, 0, 0, 1058, 982, 1, 0, 0, 0, 1058, 983, 1, 0, 0, 0, 1058, 984, 1, 0, 0, 0, 1058, 985, 1, 0, 0, 0, 1058, 986, 1, 0, 0, 0, 1058, 987, 1, 0, 0, 0, 1058, 988, 1, 0, 0, 0, 1058, 989, 1, 0, 0, 0, 1058, 990, 1, 0, 0, 0, 1058, 991, 1, 0, 0, 0, 1058, 992, 1, 0, 0, 0, 1058, 993, 1, 0, 0, 0, 1058, 994, 1, 0, 0, 0, 1058, 995, 1, 0, 0, 0, 1058, 996, 1, 0, 0, 0, 1058, 997, 1, 0, 0, 0, 1058, 998, 1, 0, 0, 0, 1058, 999, 1, 0, 0, 0, 1058, 1000, 1, 0, 0, 0, 1058, 1001, 1, 0, 0, 0, 1058, 1002, 1, 0, 0, 0, 1058, 1003, 1, 0, 0, 0, 1058, 1004, 1, 0, 0, 0, 1058, 1005, 1, 0, 0, 0, 1058, 1006, 1, 0, 0, 0, 1058, 1007, 1, 0, 0, 0, 1058, 1008, 1, 0, 0, 0, 1058, 1009, 1, 0, 0, 0, 1058, 1010, 1, 0, 0, 0, 1058, 1011, 1, 0, 0, 0, 1058, 1012, 1, 0, 0, 0, 1058, 1013, 1, 0, 0, 0, 1058, 1014, 1, 0, 0, 0, 1058, 1015, 1, 0, 0, 0, 1058, 1016, 1, 0, 0, 0, 1058, 1017, 1, 0, 0, 0, 1058, 1018, 1, 0, 0, 0, 1058, 1019, 1, 0, 0, 0, 1058, 1020, 1, 0, 0, 0, 1058, 1021, 1, 0, 0, 0, 1058, 1022, 1, 0, 0, 0, 1058, 1023, 1, 0, 0, 0, 1058, 1024, 1, 0, 0, 0, 1058, 1025, 1, 0, 0, 0, 1058, 1026, 1, 0, 0, 0, 1058, 1027, 1, 0, 0, 0, 1058, 1028, 1, 0, 0, 0, 1058, 1029, 1, 0, 0, 0, 1058, 1030, 1, 0, 0, 0, 1058, 1031, 1, 0, 0, 0, 1058, 1032, 1, 0, 0, 0, 1058, 1033, 1, 0, 0, 0, 1058, 1034, 1, 0, 0, 0, 1058, 1035, 1, 0, 0, 0, 1058, 1036, 1, 0, 0, 0, 1058, 1037, 1, 0, 0, 0, 1058, 1038, 1, 0, 0, 0, 1058, 1039, 1, 0, 0, 0, 1058, 1040, 1, 0, 0, 0, 1058, 1041, 1, 0, 0, 0, 1058, 1042, 1, 0, 0, 0, 1058, 1043, 1, 0, 0, 0, 1058, 1044, 1, 0, 0, 0, 1058, 1045, 1, 0, 0, 0, 1058, 1046, 1, 0, 0, 0, 1058, 1047, 1, 0, 0, 0, 1058, 1048, 1, 0, 0, 0, 1058, 1049, 1, 0, 0, 0, 1058, 1050, 1, 0, 0, 0, 1058, 1051, 1, 0, 0, 0, 1058, 1052, 1, 0, 0, 0, 1058, 1053, 1, 0, 0, 0, 1058, 1054, 1, 0, 0, 0, 1059, 5, 1, 0, 0, 0, 1060, 1061, 5, 433, 0, 0, 1061, 1062, 3, 678, 339, 0, 1062, 7, 1, 0, 0, 0, 1063, 1064, 5, 46, 0, 0, 1064, 1065, 5, 318, 0, 0, 1065, 1067, 3, 808, 404, 0, 1066, 1068, 5, 105, 0, 0, 1067, 1066, 1, 0, 0, 0, 1067, 1068, 1, 0, 0, 0, 1068, 1072, 1, 0, 0, 0, 1069, 1071, 3, 12, 6, 0, 1070, 1069, 1, 0, 0, 0, 1071, 1074, 1, 0, 0, 0, 1072, 1070, 1, 0, 0, 0, 1072, 1073, 1, 0, 0, 0, 1073, 9, 1, 0, 0, 0, 1074, 1072, 1, 0, 0, 0, 1075, 1078, 5, 287, 0, 0, 1076, 1079, 3, 802, 401, 0, 1077, 1079, 5, 78, 0, 0, 1078, 1076, 1, 0, 0, 0, 1078, 1077, 1, 0, 0, 0, 1079, 1114, 1, 0, 0, 0, 1080, 1081, 7, 0, 0, 0, 1081, 1082, 5, 287, 0, 0, 1082, 1114, 3, 802, 401, 0, 1083, 1114, 5, 228, 0, 0, 1084, 1114, 5, 229, 0, 0, 1085, 1114, 5, 236, 0, 0, 1086, 1114, 5, 237, 0, 0, 1087, 1114, 5, 234, 0, 0, 1088, 1114, 5, 235, 0, 0, 1089, 1114, 5, 232, 0, 0, 1090, 1114, 5, 233, 0, 0, 1091, 1114, 5, 230, 0, 0, 1092, 1114, 5, 231, 0, 0, 1093, 1114, 5, 535, 0, 0, 1094, 1114, 5, 536, 0, 0, 1095, 1114, 5, 537, 0, 0, 1096, 1114, 5, 538, 0, 0, 1097, 1114, 5, 539, 0, 0, 1098, 1114, 5, 540, 0, 0, 1099, 1100, 5, 164, 0, 0, 1100, 1101, 5, 74, 0, 0, 1101, 1114, 3, 806, 403, 0, 1102, 1103, 5, 371, 0, 0, 1103, 1104, 5, 368, 0, 0, 1104, 1114, 3, 802, 401, 0, 1105, 1106, 5, 68, 0, 0, 1106, 1107, 7, 1, 0, 0, 1107, 1114, 3, 778, 389, 0, 1108, 1109, 7, 2, 0, 0, 1109, 1114, 3, 810, 405, 0, 1110, 1111, 5, 134, 0, 0, 1111, 1114, 3, 778, 389, 0, 1112, 1114, 3, 820, 410, 0, 1113, 1075, 1, 0, 0, 0, 1113, 1080, 1, 0, 0, 0, 1113, 1083, 1, 0, 0, 0, 1113, 1084, 1, 0, 0, 0, 1113, 1085, 1, 0, 0, 0, 1113, 1086, 1, 0, 0, 0, 1113, 1087, 1, 0, 0, 0, 1113, 1088, 1, 0, 0, 0, 1113, 1089, 1, 0, 0, 0, 1113, 1090, 1, 0, 0, 0, 1113, 1091, 1, 0, 0, 0, 1113, 1092, 1, 0, 0, 0, 1113, 1093, 1, 0, 0, 0, 1113, 1094, 1, 0, 0, 0, 1113, 1095, 1, 0, 0, 0, 1113, 1096, 1, 0, 0, 0, 1113, 1097, 1, 0, 0, 0, 1113, 1098, 1, 0, 0, 0, 1113, 1099, 1, 0, 0, 0, 1113, 1102, 1, 0, 0, 0, 1113, 1105, 1, 0, 0, 0, 1113, 1108, 1, 0, 0, 0, 1113, 1110, 1, 0, 0, 0, 1113, 1112, 1, 0, 0, 0, 1114, 11, 1, 0, 0, 0, 1115, 1124, 3, 10, 5, 0, 1116, 1117, 5, 348, 0, 0, 1117, 1124, 5, 574, 0, 0, 1118, 1119, 7, 3, 0, 0, 1119, 1124, 3, 810, 405, 0, 1120, 1121, 5, 68, 0, 0, 1121, 1122, 7, 1, 0, 0, 1122, 1124, 3, 810, 405, 0, 1123, 1115, 1, 0, 0, 0, 1123, 1116, 1, 0, 0, 0, 1123, 1118, 1, 0, 0, 0, 1123, 1120, 1, 0, 0, 0, 1124, 13, 1, 0, 0, 0, 1125, 1126, 5, 46, 0, 0, 1126, 1127, 5, 99, 0, 0, 1127, 1129, 3, 808, 404, 0, 1128, 1130, 5, 105, 0, 0, 1129, 1128, 1, 0, 0, 0, 1129, 1130, 1, 0, 0, 0, 1130, 1134, 1, 0, 0, 0, 1131, 1133, 3, 12, 6, 0, 1132, 1131, 1, 0, 0, 0, 1133, 1136, 1, 0, 0, 0, 1134, 1132, 1, 0, 0, 0, 1134, 1135, 1, 0, 0, 0, 1135, 15, 1, 0, 0, 0, 1136, 1134, 1, 0, 0, 0, 1137, 1138, 5, 138, 0, 0, 1138, 1139, 7, 2, 0, 0, 1139, 1141, 3, 808, 404, 0, 1140, 1142, 5, 105, 0, 0, 1141, 1140, 1, 0, 0, 0, 1141, 1142, 1, 0, 0, 0, 1142, 1146, 1, 0, 0, 0, 1143, 1145, 3, 10, 5, 0, 1144, 1143, 1, 0, 0, 0, 1145, 1148, 1, 0, 0, 0, 1146, 1144, 1, 0, 0, 0, 1146, 1147, 1, 0, 0, 0, 1147, 17, 1, 0, 0, 0, 1148, 1146, 1, 0, 0, 0, 1149, 1150, 5, 138, 0, 0, 1150, 1153, 7, 2, 0, 0, 1151, 1154, 5, 30, 0, 0, 1152, 1154, 3, 808, 404, 0, 1153, 1151, 1, 0, 0, 0, 1153, 1152, 1, 0, 0, 0, 1154, 1155, 1, 0, 0, 0, 1155, 1156, 5, 68, 0, 0, 1156, 1157, 5, 175, 0, 0, 1157, 1158, 3, 782, 391, 0, 1158, 1159, 3, 64, 32, 0, 1159, 19, 1, 0, 0, 0, 1160, 1161, 5, 138, 0, 0, 1161, 1162, 5, 442, 0, 0, 1162, 1164, 3, 788, 394, 0, 1163, 1165, 3, 362, 181, 0, 1164, 1163, 1, 0, 0, 0, 1164, 1165, 1, 0, 0, 0, 1165, 1166, 1, 0, 0, 0, 1166, 1167, 3, 22, 11, 0, 1167, 21, 1, 0, 0, 0, 1168, 1172, 3, 24, 12, 0, 1169, 1171, 3, 24, 12, 0, 1170, 1169, 1, 0, 0, 0, 1171, 1174, 1, 0, 0, 0, 1172, 1170, 1, 0, 0, 0, 1172, 1173, 1, 0, 0, 0, 1173, 1176, 1, 0, 0, 0, 1174, 1172, 1, 0, 0, 0, 1175, 1177, 5, 315, 0, 0, 1176, 1175, 1, 0, 0, 0, 1176, 1177, 1, 0, 0, 0, 1177, 1195, 1, 0, 0, 0, 1178, 1179, 5, 309, 0, 0, 1179, 1180, 5, 94, 0, 0, 1180, 1195, 3, 786, 393, 0, 1181, 1182, 5, 282, 0, 0, 1182, 1183, 5, 94, 0, 0, 1183, 1195, 3, 808, 404, 0, 1184, 1185, 5, 333, 0, 0, 1185, 1186, 5, 323, 0, 0, 1186, 1195, 3, 32, 16, 0, 1187, 1189, 5, 269, 0, 0, 1188, 1187, 1, 0, 0, 0, 1188, 1189, 1, 0, 0, 0, 1189, 1190, 1, 0, 0, 0, 1190, 1191, 5, 462, 0, 0, 1191, 1192, 5, 80, 0, 0, 1192, 1193, 5, 204, 0, 0, 1193, 1195, 3, 812, 406, 0, 1194, 1168, 1, 0, 0, 0, 1194, 1178, 1, 0, 0, 0, 1194, 1181, 1, 0, 0, 0, 1194, 1184, 1, 0, 0, 0, 1194, 1188, 1, 0, 0, 0, 1195, 23, 1, 0, 0, 0, 1196, 1239, 5, 222, 0, 0, 1197, 1239, 5, 338, 0, 0, 1198, 1239, 5, 377, 0, 0, 1199, 1201, 5, 77, 0, 0, 1200, 1199, 1, 0, 0, 0, 1200, 1201, 1, 0, 0, 0, 1201, 1202, 1, 0, 0, 0, 1202, 1239, 5, 250, 0, 0, 1203, 1205, 5, 205, 0, 0, 1204, 1203, 1, 0, 0, 0, 1204, 1205, 1, 0, 0, 0, 1205, 1206, 1, 0, 0, 0, 1206, 1207, 5, 327, 0, 0, 1207, 1214, 5, 243, 0, 0, 1208, 1210, 5, 205, 0, 0, 1209, 1208, 1, 0, 0, 0, 1209, 1210, 1, 0, 0, 0, 1210, 1211, 1, 0, 0, 0, 1211, 1212, 5, 327, 0, 0, 1212, 1214, 5, 181, 0, 0, 1213, 1204, 1, 0, 0, 0, 1213, 1209, 1, 0, 0, 0, 1214, 1239, 1, 0, 0, 0, 1215, 1216, 5, 460, 0, 0, 1216, 1239, 7, 4, 0, 0, 1217, 1218, 5, 170, 0, 0, 1218, 1239, 3, 818, 409, 0, 1219, 1220, 5, 320, 0, 0, 1220, 1239, 3, 812, 406, 0, 1221, 1222, 5, 333, 0, 0, 1222, 1223, 3, 812, 406, 0, 1223, 1226, 7, 5, 0, 0, 1224, 1227, 3, 812, 406, 0, 1225, 1227, 5, 53, 0, 0, 1226, 1224, 1, 0, 0, 0, 1226, 1225, 1, 0, 0, 0, 1227, 1239, 1, 0, 0, 0, 1228, 1229, 5, 333, 0, 0, 1229, 1230, 3, 812, 406, 0, 1230, 1231, 5, 64, 0, 0, 1231, 1232, 5, 434, 0, 0, 1232, 1239, 1, 0, 0, 0, 1233, 1236, 5, 313, 0, 0, 1234, 1237, 3, 812, 406, 0, 1235, 1237, 5, 30, 0, 0, 1236, 1234, 1, 0, 0, 0, 1236, 1235, 1, 0, 0, 0, 1237, 1239, 1, 0, 0, 0, 1238, 1196, 1, 0, 0, 0, 1238, 1197, 1, 0, 0, 0, 1238, 1198, 1, 0, 0, 0, 1238, 1200, 1, 0, 0, 0, 1238, 1213, 1, 0, 0, 0, 1238, 1215, 1, 0, 0, 0, 1238, 1217, 1, 0, 0, 0, 1238, 1219, 1, 0, 0, 0, 1238, 1221, 1, 0, 0, 0, 1238, 1228, 1, 0, 0, 0, 1238, 1233, 1, 0, 0, 0, 1239, 25, 1, 0, 0, 0, 1240, 1241, 5, 46, 0, 0, 1241, 1242, 5, 66, 0, 0, 1242, 1244, 3, 808, 404, 0, 1243, 1245, 5, 105, 0, 0, 1244, 1243, 1, 0, 0, 0, 1244, 1245, 1, 0, 0, 0, 1245, 1249, 1, 0, 0, 0, 1246, 1248, 3, 12, 6, 0, 1247, 1246, 1, 0, 0, 0, 1248, 1251, 1, 0, 0, 0, 1249, 1247, 1, 0, 0, 0, 1249, 1250, 1, 0, 0, 0, 1250, 27, 1, 0, 0, 0, 1251, 1249, 1, 0, 0, 0, 1252, 1253, 5, 138, 0, 0, 1253, 1254, 5, 66, 0, 0, 1254, 1255, 3, 808, 404, 0, 1255, 1256, 7, 6, 0, 0, 1256, 1257, 5, 99, 0, 0, 1257, 1258, 3, 810, 405, 0, 1258, 29, 1, 0, 0, 0, 1259, 1260, 5, 46, 0, 0, 1260, 1262, 5, 323, 0, 0, 1261, 1263, 3, 288, 144, 0, 1262, 1261, 1, 0, 0, 0, 1262, 1263, 1, 0, 0, 0, 1263, 1270, 1, 0, 0, 0, 1264, 1266, 3, 32, 16, 0, 1265, 1264, 1, 0, 0, 0, 1265, 1266, 1, 0, 0, 0, 1266, 1267, 1, 0, 0, 0, 1267, 1268, 5, 106, 0, 0, 1268, 1271, 3, 808, 404, 0, 1269, 1271, 3, 32, 16, 0, 1270, 1265, 1, 0, 0, 0, 1270, 1269, 1, 0, 0, 0, 1271, 1275, 1, 0, 0, 0, 1272, 1274, 3, 34, 17, 0, 1273, 1272, 1, 0, 0, 0, 1274, 1277, 1, 0, 0, 0, 1275, 1273, 1, 0, 0, 0, 1275, 1276, 1, 0, 0, 0, 1276, 31, 1, 0, 0, 0, 1277, 1275, 1, 0, 0, 0, 1278, 1279, 3, 310, 155, 0, 1279, 33, 1, 0, 0, 0, 1280, 1287, 3, 114, 57, 0, 1281, 1287, 3, 352, 176, 0, 1282, 1287, 3, 190, 95, 0, 1283, 1287, 3, 250, 125, 0, 1284, 1287, 3, 328, 164, 0, 1285, 1287, 3, 470, 235, 0, 1286, 1280, 1, 0, 0, 0, 1286, 1281, 1, 0, 0, 0, 1286, 1282, 1, 0, 0, 0, 1286, 1283, 1, 0, 0, 0, 1286, 1284, 1, 0, 0, 0, 1286, 1285, 1, 0, 0, 0, 1287, 35, 1, 0, 0, 0, 1288, 1290, 5, 333, 0, 0, 1289, 1291, 7, 7, 0, 0, 1290, 1289, 1, 0, 0, 0, 1290, 1291, 1, 0, 0, 0, 1291, 1292, 1, 0, 0, 0, 1292, 1293, 3, 38, 19, 0, 1293, 37, 1, 0, 0, 0, 1294, 1295, 5, 356, 0, 0, 1295, 1303, 3, 468, 234, 0, 1296, 1297, 5, 332, 0, 0, 1297, 1298, 5, 154, 0, 0, 1298, 1299, 5, 36, 0, 0, 1299, 1300, 5, 356, 0, 0, 1300, 1303, 3, 468, 234, 0, 1301, 1303, 3, 42, 21, 0, 1302, 1294, 1, 0, 0, 0, 1302, 1296, 1, 0, 0, 0, 1302, 1301, 1, 0, 0, 0, 1303, 39, 1, 0, 0, 0, 1304, 1307, 5, 30, 0, 0, 1305, 1307, 3, 44, 22, 0, 1306, 1304, 1, 0, 0, 0, 1306, 1305, 1, 0, 0, 0, 1307, 1309, 1, 0, 0, 0, 1308, 1310, 7, 5, 0, 0, 1309, 1308, 1, 0, 0, 0, 1309, 1310, 1, 0, 0, 0, 1310, 1313, 1, 0, 0, 0, 1311, 1314, 5, 53, 0, 0, 1312, 1314, 3, 46, 23, 0, 1313, 1311, 1, 0, 0, 0, 1313, 1312, 1, 0, 0, 0, 1313, 1314, 1, 0, 0, 0, 1314, 41, 1, 0, 0, 0, 1315, 1316, 5, 418, 0, 0, 1316, 1317, 5, 386, 0, 0, 1317, 1344, 3, 56, 28, 0, 1318, 1319, 5, 152, 0, 0, 1319, 1344, 3, 802, 401, 0, 1320, 1321, 5, 323, 0, 0, 1321, 1344, 3, 784, 392, 0, 1322, 1325, 5, 267, 0, 0, 1323, 1326, 3, 802, 401, 0, 1324, 1326, 5, 53, 0, 0, 1325, 1323, 1, 0, 0, 0, 1325, 1324, 1, 0, 0, 0, 1325, 1326, 1, 0, 0, 0, 1326, 1344, 1, 0, 0, 0, 1327, 1328, 5, 318, 0, 0, 1328, 1344, 3, 58, 29, 0, 1329, 1330, 5, 332, 0, 0, 1330, 1331, 5, 106, 0, 0, 1331, 1344, 3, 58, 29, 0, 1332, 1333, 5, 383, 0, 0, 1333, 1334, 5, 279, 0, 0, 1334, 1344, 3, 690, 345, 0, 1335, 1336, 5, 356, 0, 0, 1336, 1337, 5, 337, 0, 0, 1337, 1344, 3, 802, 401, 0, 1338, 1339, 3, 44, 22, 0, 1339, 1340, 5, 64, 0, 0, 1340, 1341, 5, 434, 0, 0, 1341, 1344, 1, 0, 0, 0, 1342, 1344, 3, 40, 20, 0, 1343, 1315, 1, 0, 0, 0, 1343, 1318, 1, 0, 0, 0, 1343, 1320, 1, 0, 0, 0, 1343, 1322, 1, 0, 0, 0, 1343, 1327, 1, 0, 0, 0, 1343, 1329, 1, 0, 0, 0, 1343, 1332, 1, 0, 0, 0, 1343, 1335, 1, 0, 0, 0, 1343, 1338, 1, 0, 0, 0, 1343, 1342, 1, 0, 0, 0, 1344, 43, 1, 0, 0, 0, 1345, 1350, 3, 812, 406, 0, 1346, 1347, 5, 11, 0, 0, 1347, 1349, 3, 812, 406, 0, 1348, 1346, 1, 0, 0, 0, 1349, 1352, 1, 0, 0, 0, 1350, 1348, 1, 0, 0, 0, 1350, 1351, 1, 0, 0, 0, 1351, 45, 1, 0, 0, 0, 1352, 1350, 1, 0, 0, 0, 1353, 1358, 3, 48, 24, 0, 1354, 1355, 5, 6, 0, 0, 1355, 1357, 3, 48, 24, 0, 1356, 1354, 1, 0, 0, 0, 1357, 1360, 1, 0, 0, 0, 1358, 1356, 1, 0, 0, 0, 1358, 1359, 1, 0, 0, 0, 1359, 47, 1, 0, 0, 0, 1360, 1358, 1, 0, 0, 0, 1361, 1364, 3, 54, 27, 0, 1362, 1364, 3, 196, 98, 0, 1363, 1361, 1, 0, 0, 0, 1363, 1362, 1, 0, 0, 0, 1364, 49, 1, 0, 0, 0, 1365, 1366, 5, 300, 0, 0, 1366, 1371, 7, 8, 0, 0, 1367, 1368, 5, 310, 0, 0, 1368, 1371, 5, 300, 0, 0, 1369, 1371, 5, 330, 0, 0, 1370, 1365, 1, 0, 0, 0, 1370, 1367, 1, 0, 0, 0, 1370, 1369, 1, 0, 0, 0, 1371, 51, 1, 0, 0, 0, 1372, 1379, 5, 96, 0, 0, 1373, 1379, 5, 60, 0, 0, 1374, 1379, 5, 80, 0, 0, 1375, 1379, 3, 794, 397, 0, 1376, 1379, 3, 826, 413, 0, 1377, 1379, 3, 802, 401, 0, 1378, 1372, 1, 0, 0, 0, 1378, 1373, 1, 0, 0, 0, 1378, 1374, 1, 0, 0, 0, 1378, 1375, 1, 0, 0, 0, 1378, 1376, 1, 0, 0, 0, 1378, 1377, 1, 0, 0, 0, 1379, 53, 1, 0, 0, 0, 1380, 1385, 5, 96, 0, 0, 1381, 1385, 5, 60, 0, 0, 1382, 1385, 5, 80, 0, 0, 1383, 1385, 3, 58, 29, 0, 1384, 1380, 1, 0, 0, 0, 1384, 1381, 1, 0, 0, 0, 1384, 1382, 1, 0, 0, 0, 1384, 1383, 1, 0, 0, 0, 1385, 55, 1, 0, 0, 0, 1386, 1401, 3, 802, 401, 0, 1387, 1401, 5, 53, 0, 0, 1388, 1401, 3, 820, 410, 0, 1389, 1390, 5, 403, 0, 0, 1390, 1392, 3, 802, 401, 0, 1391, 1393, 3, 662, 331, 0, 1392, 1391, 1, 0, 0, 0, 1392, 1393, 1, 0, 0, 0, 1393, 1401, 1, 0, 0, 0, 1394, 1395, 5, 403, 0, 0, 1395, 1396, 3, 654, 327, 0, 1396, 1397, 3, 802, 401, 0, 1397, 1401, 1, 0, 0, 0, 1398, 1401, 3, 196, 98, 0, 1399, 1401, 5, 254, 0, 0, 1400, 1386, 1, 0, 0, 0, 1400, 1387, 1, 0, 0, 0, 1400, 1388, 1, 0, 0, 0, 1400, 1389, 1, 0, 0, 0, 1400, 1394, 1, 0, 0, 0, 1400, 1398, 1, 0, 0, 0, 1400, 1399, 1, 0, 0, 0, 1401, 57, 1, 0, 0, 0, 1402, 1405, 3, 816, 408, 0, 1403, 1405, 3, 802, 401, 0, 1404, 1402, 1, 0, 0, 0, 1404, 1403, 1, 0, 0, 0, 1405, 59, 1, 0, 0, 0, 1406, 1407, 5, 313, 0, 0, 1407, 1408, 3, 62, 31, 0, 1408, 61, 1, 0, 0, 0, 1409, 1410, 5, 418, 0, 0, 1410, 1419, 5, 386, 0, 0, 1411, 1412, 5, 356, 0, 0, 1412, 1413, 5, 244, 0, 0, 1413, 1419, 5, 251, 0, 0, 1414, 1415, 5, 332, 0, 0, 1415, 1419, 5, 106, 0, 0, 1416, 1419, 5, 30, 0, 0, 1417, 1419, 3, 44, 22, 0, 1418, 1409, 1, 0, 0, 0, 1418, 1411, 1, 0, 0, 0, 1418, 1414, 1, 0, 0, 0, 1418, 1416, 1, 0, 0, 0, 1418, 1417, 1, 0, 0, 0, 1419, 63, 1, 0, 0, 0, 1420, 1421, 5, 333, 0, 0, 1421, 1424, 3, 38, 19, 0, 1422, 1424, 3, 60, 30, 0, 1423, 1420, 1, 0, 0, 0, 1423, 1422, 1, 0, 0, 0, 1424, 65, 1, 0, 0, 0, 1425, 1426, 5, 333, 0, 0, 1426, 1429, 3, 42, 21, 0, 1427, 1429, 3, 60, 30, 0, 1428, 1425, 1, 0, 0, 0, 1428, 1427, 1, 0, 0, 0, 1429, 67, 1, 0, 0, 0, 1430, 1440, 5, 335, 0, 0, 1431, 1441, 3, 44, 22, 0, 1432, 1433, 5, 418, 0, 0, 1433, 1441, 5, 386, 0, 0, 1434, 1435, 5, 356, 0, 0, 1435, 1436, 5, 244, 0, 0, 1436, 1441, 5, 251, 0, 0, 1437, 1438, 5, 332, 0, 0, 1438, 1441, 5, 106, 0, 0, 1439, 1441, 5, 30, 0, 0, 1440, 1431, 1, 0, 0, 0, 1440, 1432, 1, 0, 0, 0, 1440, 1434, 1, 0, 0, 0, 1440, 1437, 1, 0, 0, 0, 1440, 1439, 1, 0, 0, 0, 1441, 69, 1, 0, 0, 0, 1442, 1443, 5, 333, 0, 0, 1443, 1446, 5, 165, 0, 0, 1444, 1447, 5, 30, 0, 0, 1445, 1447, 3, 754, 377, 0, 1446, 1444, 1, 0, 0, 0, 1446, 1445, 1, 0, 0, 0, 1447, 1448, 1, 0, 0, 0, 1448, 1449, 7, 9, 0, 0, 1449, 71, 1, 0, 0, 0, 1450, 1451, 5, 155, 0, 0, 1451, 73, 1, 0, 0, 0, 1452, 1453, 5, 187, 0, 0, 1453, 1454, 7, 10, 0, 0, 1454, 75, 1, 0, 0, 0, 1455, 1456, 5, 138, 0, 0, 1456, 1458, 5, 92, 0, 0, 1457, 1459, 3, 416, 208, 0, 1458, 1457, 1, 0, 0, 0, 1458, 1459, 1, 0, 0, 0, 1459, 1460, 1, 0, 0, 0, 1460, 1463, 3, 618, 309, 0, 1461, 1464, 3, 78, 39, 0, 1462, 1464, 3, 80, 40, 0, 1463, 1461, 1, 0, 0, 0, 1463, 1462, 1, 0, 0, 0, 1464, 1573, 1, 0, 0, 0, 1465, 1466, 5, 138, 0, 0, 1466, 1467, 5, 92, 0, 0, 1467, 1468, 5, 30, 0, 0, 1468, 1469, 5, 68, 0, 0, 1469, 1473, 3, 170, 85, 0, 1470, 1471, 5, 281, 0, 0, 1471, 1472, 5, 147, 0, 0, 1472, 1474, 3, 810, 405, 0, 1473, 1470, 1, 0, 0, 0, 1473, 1474, 1, 0, 0, 0, 1474, 1475, 1, 0, 0, 0, 1475, 1476, 5, 333, 0, 0, 1476, 1477, 5, 351, 0, 0, 1477, 1479, 3, 764, 382, 0, 1478, 1480, 5, 272, 0, 0, 1479, 1478, 1, 0, 0, 0, 1479, 1480, 1, 0, 0, 0, 1480, 1573, 1, 0, 0, 0, 1481, 1482, 5, 138, 0, 0, 1482, 1484, 5, 92, 0, 0, 1483, 1485, 3, 416, 208, 0, 1484, 1483, 1, 0, 0, 0, 1484, 1485, 1, 0, 0, 0, 1485, 1486, 1, 0, 0, 0, 1486, 1487, 3, 768, 384, 0, 1487, 1488, 3, 82, 41, 0, 1488, 1489, 3, 98, 49, 0, 1489, 1573, 1, 0, 0, 0, 1490, 1491, 5, 138, 0, 0, 1491, 1493, 5, 92, 0, 0, 1492, 1494, 3, 416, 208, 0, 1493, 1492, 1, 0, 0, 0, 1493, 1494, 1, 0, 0, 0, 1494, 1495, 1, 0, 0, 0, 1495, 1496, 3, 768, 384, 0, 1496, 1497, 5, 436, 0, 0, 1497, 1498, 5, 285, 0, 0, 1498, 1500, 3, 774, 387, 0, 1499, 1501, 7, 11, 0, 0, 1500, 1499, 1, 0, 0, 0, 1500, 1501, 1, 0, 0, 0, 1501, 1573, 1, 0, 0, 0, 1502, 1503, 5, 138, 0, 0, 1503, 1505, 5, 226, 0, 0, 1504, 1506, 3, 416, 208, 0, 1505, 1504, 1, 0, 0, 0, 1505, 1506, 1, 0, 0, 0, 1506, 1507, 1, 0, 0, 0, 1507, 1510, 3, 774, 387, 0, 1508, 1511, 3, 78, 39, 0, 1509, 1511, 3, 82, 41, 0, 1510, 1508, 1, 0, 0, 0, 1510, 1509, 1, 0, 0, 0, 1511, 1573, 1, 0, 0, 0, 1512, 1513, 5, 138, 0, 0, 1513, 1514, 5, 226, 0, 0, 1514, 1515, 5, 30, 0, 0, 1515, 1516, 5, 68, 0, 0, 1516, 1520, 3, 170, 85, 0, 1517, 1518, 5, 281, 0, 0, 1518, 1519, 5, 147, 0, 0, 1519, 1521, 3, 810, 405, 0, 1520, 1517, 1, 0, 0, 0, 1520, 1521, 1, 0, 0, 0, 1521, 1522, 1, 0, 0, 0, 1522, 1523, 5, 333, 0, 0, 1523, 1525, 3, 170, 85, 0, 1524, 1526, 5, 272, 0, 0, 1525, 1524, 1, 0, 0, 0, 1525, 1526, 1, 0, 0, 0, 1526, 1573, 1, 0, 0, 0, 1527, 1528, 5, 138, 0, 0, 1528, 1530, 5, 328, 0, 0, 1529, 1531, 3, 416, 208, 0, 1530, 1529, 1, 0, 0, 0, 1530, 1531, 1, 0, 0, 0, 1531, 1532, 1, 0, 0, 0, 1532, 1533, 3, 774, 387, 0, 1533, 1534, 3, 78, 39, 0, 1534, 1573, 1, 0, 0, 0, 1535, 1537, 5, 138, 0, 0, 1536, 1538, 5, 259, 0, 0, 1537, 1536, 1, 0, 0, 0, 1537, 1538, 1, 0, 0, 0, 1538, 1539, 1, 0, 0, 0, 1539, 1541, 5, 376, 0, 0, 1540, 1542, 3, 416, 208, 0, 1541, 1540, 1, 0, 0, 0, 1541, 1542, 1, 0, 0, 0, 1542, 1543, 1, 0, 0, 0, 1543, 1544, 3, 772, 386, 0, 1544, 1545, 3, 78, 39, 0, 1545, 1573, 1, 0, 0, 0, 1546, 1547, 5, 138, 0, 0, 1547, 1548, 5, 259, 0, 0, 1548, 1549, 5, 376, 0, 0, 1549, 1550, 5, 30, 0, 0, 1550, 1551, 5, 68, 0, 0, 1551, 1555, 3, 170, 85, 0, 1552, 1553, 5, 281, 0, 0, 1553, 1554, 5, 147, 0, 0, 1554, 1556, 3, 810, 405, 0, 1555, 1552, 1, 0, 0, 0, 1555, 1556, 1, 0, 0, 0, 1556, 1557, 1, 0, 0, 0, 1557, 1558, 5, 333, 0, 0, 1558, 1559, 5, 351, 0, 0, 1559, 1561, 3, 764, 382, 0, 1560, 1562, 5, 272, 0, 0, 1561, 1560, 1, 0, 0, 0, 1561, 1562, 1, 0, 0, 0, 1562, 1573, 1, 0, 0, 0, 1563, 1564, 5, 138, 0, 0, 1564, 1565, 5, 63, 0, 0, 1565, 1567, 5, 92, 0, 0, 1566, 1568, 3, 416, 208, 0, 1567, 1566, 1, 0, 0, 0, 1567, 1568, 1, 0, 0, 0, 1568, 1569, 1, 0, 0, 0, 1569, 1570, 3, 618, 309, 0, 1570, 1571, 3, 78, 39, 0, 1571, 1573, 1, 0, 0, 0, 1572, 1455, 1, 0, 0, 0, 1572, 1465, 1, 0, 0, 0, 1572, 1481, 1, 0, 0, 0, 1572, 1490, 1, 0, 0, 0, 1572, 1502, 1, 0, 0, 0, 1572, 1512, 1, 0, 0, 0, 1572, 1527, 1, 0, 0, 0, 1572, 1535, 1, 0, 0, 0, 1572, 1546, 1, 0, 0, 0, 1572, 1563, 1, 0, 0, 0, 1573, 77, 1, 0, 0, 0, 1574, 1579, 3, 84, 42, 0, 1575, 1576, 5, 6, 0, 0, 1576, 1578, 3, 84, 42, 0, 1577, 1575, 1, 0, 0, 0, 1578, 1581, 1, 0, 0, 0, 1579, 1577, 1, 0, 0, 0, 1579, 1580, 1, 0, 0, 0, 1580, 79, 1, 0, 0, 0, 1581, 1579, 1, 0, 0, 0, 1582, 1583, 3, 82, 41, 0, 1583, 1584, 3, 98, 49, 0, 1584, 1589, 1, 0, 0, 0, 1585, 1586, 5, 436, 0, 0, 1586, 1587, 5, 285, 0, 0, 1587, 1589, 3, 774, 387, 0, 1588, 1582, 1, 0, 0, 0, 1588, 1585, 1, 0, 0, 0, 1589, 81, 1, 0, 0, 0, 1590, 1591, 5, 435, 0, 0, 1591, 1592, 5, 285, 0, 0, 1592, 1593, 3, 774, 387, 0, 1593, 83, 1, 0, 0, 0, 1594, 1597, 5, 133, 0, 0, 1595, 1596, 5, 45, 0, 0, 1596, 1598, 3, 812, 406, 0, 1597, 1595, 1, 0, 0, 0, 1597, 1598, 1, 0, 0, 0, 1598, 1599, 1, 0, 0, 0, 1599, 1828, 3, 136, 68, 0, 1600, 1601, 5, 138, 0, 0, 1601, 1602, 5, 45, 0, 0, 1602, 1606, 3, 812, 406, 0, 1603, 1605, 3, 266, 133, 0, 1604, 1603, 1, 0, 0, 0, 1605, 1608, 1, 0, 0, 0, 1606, 1604, 1, 0, 0, 0, 1606, 1607, 1, 0, 0, 0, 1607, 1828, 1, 0, 0, 0, 1608, 1606, 1, 0, 0, 0, 1609, 1610, 5, 372, 0, 0, 1610, 1611, 5, 45, 0, 0, 1611, 1828, 3, 812, 406, 0, 1612, 1613, 5, 191, 0, 0, 1613, 1615, 5, 45, 0, 0, 1614, 1616, 3, 416, 208, 0, 1615, 1614, 1, 0, 0, 0, 1615, 1616, 1, 0, 0, 0, 1616, 1617, 1, 0, 0, 0, 1617, 1619, 3, 812, 406, 0, 1618, 1620, 3, 88, 44, 0, 1619, 1618, 1, 0, 0, 0, 1619, 1620, 1, 0, 0, 0, 1620, 1828, 1, 0, 0, 0, 1621, 1622, 5, 333, 0, 0, 1622, 1623, 5, 379, 0, 0, 1623, 1828, 7, 12, 0, 0, 1624, 1625, 5, 158, 0, 0, 1625, 1626, 5, 80, 0, 0, 1626, 1828, 3, 812, 406, 0, 1627, 1628, 5, 333, 0, 0, 1628, 1828, 7, 13, 0, 0, 1629, 1631, 5, 193, 0, 0, 1630, 1632, 7, 14, 0, 0, 1631, 1630, 1, 0, 0, 0, 1631, 1632, 1, 0, 0, 0, 1632, 1633, 1, 0, 0, 0, 1633, 1828, 5, 357, 0, 0, 1634, 1635, 5, 186, 0, 0, 1635, 1639, 5, 357, 0, 0, 1636, 1640, 5, 30, 0, 0, 1637, 1640, 5, 99, 0, 0, 1638, 1640, 3, 812, 406, 0, 1639, 1636, 1, 0, 0, 0, 1639, 1637, 1, 0, 0, 0, 1639, 1638, 1, 0, 0, 0, 1640, 1828, 1, 0, 0, 0, 1641, 1642, 5, 193, 0, 0, 1642, 1643, 7, 14, 0, 0, 1643, 1644, 5, 321, 0, 0, 1644, 1828, 3, 812, 406, 0, 1645, 1646, 5, 186, 0, 0, 1646, 1647, 5, 321, 0, 0, 1647, 1828, 3, 812, 406, 0, 1648, 1650, 5, 269, 0, 0, 1649, 1648, 1, 0, 0, 0, 1649, 1650, 1, 0, 0, 0, 1650, 1651, 1, 0, 0, 0, 1651, 1652, 5, 228, 0, 0, 1652, 1828, 3, 774, 387, 0, 1653, 1654, 5, 275, 0, 0, 1654, 1828, 3, 310, 155, 0, 1655, 1656, 5, 77, 0, 0, 1656, 1828, 5, 275, 0, 0, 1657, 1658, 5, 282, 0, 0, 1658, 1659, 5, 94, 0, 0, 1659, 1828, 3, 808, 404, 0, 1660, 1661, 5, 333, 0, 0, 1661, 1662, 5, 351, 0, 0, 1662, 1828, 3, 764, 382, 0, 1663, 1664, 5, 312, 0, 0, 1664, 1669, 5, 219, 0, 0, 1665, 1670, 5, 270, 0, 0, 1666, 1670, 5, 113, 0, 0, 1667, 1670, 5, 53, 0, 0, 1668, 1670, 3, 174, 87, 0, 1669, 1665, 1, 0, 0, 0, 1669, 1666, 1, 0, 0, 0, 1669, 1667, 1, 0, 0, 0, 1669, 1668, 1, 0, 0, 0, 1670, 1828, 1, 0, 0, 0, 1671, 1678, 5, 193, 0, 0, 1672, 1678, 5, 186, 0, 0, 1673, 1675, 5, 269, 0, 0, 1674, 1673, 1, 0, 0, 0, 1674, 1675, 1, 0, 0, 0, 1675, 1676, 1, 0, 0, 0, 1676, 1678, 5, 209, 0, 0, 1677, 1671, 1, 0, 0, 0, 1677, 1672, 1, 0, 0, 0, 1677, 1674, 1, 0, 0, 0, 1678, 1679, 1, 0, 0, 0, 1679, 1680, 5, 414, 0, 0, 1680, 1681, 5, 251, 0, 0, 1681, 1828, 5, 327, 0, 0, 1682, 1684, 5, 191, 0, 0, 1683, 1685, 5, 44, 0, 0, 1684, 1683, 1, 0, 0, 0, 1684, 1685, 1, 0, 0, 0, 1685, 1687, 1, 0, 0, 0, 1686, 1688, 3, 416, 208, 0, 1687, 1686, 1, 0, 0, 0, 1687, 1688, 1, 0, 0, 0, 1688, 1689, 1, 0, 0, 0, 1689, 1691, 3, 794, 397, 0, 1690, 1692, 3, 88, 44, 0, 1691, 1690, 1, 0, 0, 0, 1691, 1692, 1, 0, 0, 0, 1692, 1828, 1, 0, 0, 0, 1693, 1695, 5, 133, 0, 0, 1694, 1696, 5, 44, 0, 0, 1695, 1694, 1, 0, 0, 0, 1695, 1696, 1, 0, 0, 0, 1696, 1698, 1, 0, 0, 0, 1697, 1699, 3, 288, 144, 0, 1698, 1697, 1, 0, 0, 0, 1698, 1699, 1, 0, 0, 0, 1699, 1700, 1, 0, 0, 0, 1700, 1828, 3, 126, 63, 0, 1701, 1703, 5, 138, 0, 0, 1702, 1704, 5, 44, 0, 0, 1703, 1702, 1, 0, 0, 0, 1703, 1704, 1, 0, 0, 0, 1704, 1705, 1, 0, 0, 0, 1705, 1708, 3, 794, 397, 0, 1706, 1709, 3, 86, 43, 0, 1707, 1709, 3, 216, 108, 0, 1708, 1706, 1, 0, 0, 0, 1708, 1707, 1, 0, 0, 0, 1709, 1828, 1, 0, 0, 0, 1710, 1712, 5, 138, 0, 0, 1711, 1713, 5, 44, 0, 0, 1712, 1711, 1, 0, 0, 0, 1712, 1713, 1, 0, 0, 0, 1713, 1714, 1, 0, 0, 0, 1714, 1715, 3, 794, 397, 0, 1715, 1716, 7, 15, 0, 0, 1716, 1717, 5, 77, 0, 0, 1717, 1718, 5, 78, 0, 0, 1718, 1828, 1, 0, 0, 0, 1719, 1721, 5, 138, 0, 0, 1720, 1722, 5, 44, 0, 0, 1721, 1720, 1, 0, 0, 0, 1721, 1722, 1, 0, 0, 0, 1722, 1723, 1, 0, 0, 0, 1723, 1724, 3, 794, 397, 0, 1724, 1725, 5, 191, 0, 0, 1725, 1727, 5, 437, 0, 0, 1726, 1728, 3, 416, 208, 0, 1727, 1726, 1, 0, 0, 0, 1727, 1728, 1, 0, 0, 0, 1728, 1828, 1, 0, 0, 0, 1729, 1731, 5, 138, 0, 0, 1730, 1732, 5, 44, 0, 0, 1731, 1730, 1, 0, 0, 0, 1731, 1732, 1, 0, 0, 0, 1732, 1733, 1, 0, 0, 0, 1733, 1734, 3, 794, 397, 0, 1734, 1735, 5, 333, 0, 0, 1735, 1736, 5, 342, 0, 0, 1736, 1737, 3, 806, 403, 0, 1737, 1828, 1, 0, 0, 0, 1738, 1740, 5, 138, 0, 0, 1739, 1741, 5, 44, 0, 0, 1740, 1739, 1, 0, 0, 0, 1740, 1741, 1, 0, 0, 0, 1741, 1742, 1, 0, 0, 0, 1742, 1744, 3, 794, 397, 0, 1743, 1738, 1, 0, 0, 0, 1743, 1744, 1, 0, 0, 0, 1744, 1745, 1, 0, 0, 0, 1745, 1746, 7, 16, 0, 0, 1746, 1828, 3, 92, 46, 0, 1747, 1749, 5, 138, 0, 0, 1748, 1750, 5, 44, 0, 0, 1749, 1748, 1, 0, 0, 0, 1749, 1750, 1, 0, 0, 0, 1750, 1751, 1, 0, 0, 0, 1751, 1752, 3, 794, 397, 0, 1752, 1753, 5, 333, 0, 0, 1753, 1754, 5, 345, 0, 0, 1754, 1755, 3, 812, 406, 0, 1755, 1828, 1, 0, 0, 0, 1756, 1758, 5, 138, 0, 0, 1757, 1759, 5, 44, 0, 0, 1758, 1757, 1, 0, 0, 0, 1758, 1759, 1, 0, 0, 0, 1759, 1760, 1, 0, 0, 0, 1760, 1761, 3, 794, 397, 0, 1761, 1762, 5, 133, 0, 0, 1762, 1763, 5, 438, 0, 0, 1763, 1764, 3, 132, 66, 0, 1764, 1765, 5, 36, 0, 0, 1765, 1774, 5, 219, 0, 0, 1766, 1768, 5, 2, 0, 0, 1767, 1769, 3, 194, 97, 0, 1768, 1767, 1, 0, 0, 0, 1769, 1770, 1, 0, 0, 0, 1770, 1768, 1, 0, 0, 0, 1770, 1771, 1, 0, 0, 0, 1771, 1772, 1, 0, 0, 0, 1772, 1773, 5, 3, 0, 0, 1773, 1775, 1, 0, 0, 0, 1774, 1766, 1, 0, 0, 0, 1774, 1775, 1, 0, 0, 0, 1775, 1828, 1, 0, 0, 0, 1776, 1778, 5, 138, 0, 0, 1777, 1779, 5, 44, 0, 0, 1778, 1777, 1, 0, 0, 0, 1778, 1779, 1, 0, 0, 0, 1779, 1780, 1, 0, 0, 0, 1780, 1794, 3, 794, 397, 0, 1781, 1786, 5, 314, 0, 0, 1782, 1784, 5, 105, 0, 0, 1783, 1782, 1, 0, 0, 0, 1783, 1784, 1, 0, 0, 0, 1784, 1785, 1, 0, 0, 0, 1785, 1787, 3, 196, 98, 0, 1786, 1783, 1, 0, 0, 0, 1786, 1787, 1, 0, 0, 0, 1787, 1795, 1, 0, 0, 0, 1788, 1792, 5, 333, 0, 0, 1789, 1793, 3, 194, 97, 0, 1790, 1791, 5, 438, 0, 0, 1791, 1793, 3, 132, 66, 0, 1792, 1789, 1, 0, 0, 0, 1792, 1790, 1, 0, 0, 0, 1793, 1795, 1, 0, 0, 0, 1794, 1781, 1, 0, 0, 0, 1794, 1788, 1, 0, 0, 0, 1795, 1796, 1, 0, 0, 0, 1796, 1794, 1, 0, 0, 0, 1796, 1797, 1, 0, 0, 0, 1797, 1828, 1, 0, 0, 0, 1798, 1800, 5, 138, 0, 0, 1799, 1801, 5, 44, 0, 0, 1800, 1799, 1, 0, 0, 0, 1800, 1801, 1, 0, 0, 0, 1801, 1802, 1, 0, 0, 0, 1802, 1803, 3, 794, 397, 0, 1803, 1804, 5, 191, 0, 0, 1804, 1806, 5, 219, 0, 0, 1805, 1807, 3, 416, 208, 0, 1806, 1805, 1, 0, 0, 0, 1806, 1807, 1, 0, 0, 0, 1807, 1828, 1, 0, 0, 0, 1808, 1810, 5, 138, 0, 0, 1809, 1811, 5, 44, 0, 0, 1810, 1809, 1, 0, 0, 0, 1810, 1811, 1, 0, 0, 0, 1811, 1812, 1, 0, 0, 0, 1812, 1815, 3, 794, 397, 0, 1813, 1814, 5, 333, 0, 0, 1814, 1816, 5, 174, 0, 0, 1815, 1813, 1, 0, 0, 0, 1815, 1816, 1, 0, 0, 0, 1816, 1817, 1, 0, 0, 0, 1817, 1818, 5, 360, 0, 0, 1818, 1820, 3, 646, 323, 0, 1819, 1821, 3, 90, 45, 0, 1820, 1819, 1, 0, 0, 0, 1820, 1821, 1, 0, 0, 0, 1821, 1824, 1, 0, 0, 0, 1822, 1823, 5, 100, 0, 0, 1823, 1825, 3, 668, 334, 0, 1824, 1822, 1, 0, 0, 0, 1824, 1825, 1, 0, 0, 0, 1825, 1828, 1, 0, 0, 0, 1826, 1828, 3, 216, 108, 0, 1827, 1594, 1, 0, 0, 0, 1827, 1600, 1, 0, 0, 0, 1827, 1609, 1, 0, 0, 0, 1827, 1612, 1, 0, 0, 0, 1827, 1621, 1, 0, 0, 0, 1827, 1624, 1, 0, 0, 0, 1827, 1627, 1, 0, 0, 0, 1827, 1629, 1, 0, 0, 0, 1827, 1634, 1, 0, 0, 0, 1827, 1641, 1, 0, 0, 0, 1827, 1645, 1, 0, 0, 0, 1827, 1649, 1, 0, 0, 0, 1827, 1653, 1, 0, 0, 0, 1827, 1655, 1, 0, 0, 0, 1827, 1657, 1, 0, 0, 0, 1827, 1660, 1, 0, 0, 0, 1827, 1663, 1, 0, 0, 0, 1827, 1677, 1, 0, 0, 0, 1827, 1682, 1, 0, 0, 0, 1827, 1693, 1, 0, 0, 0, 1827, 1701, 1, 0, 0, 0, 1827, 1710, 1, 0, 0, 0, 1827, 1719, 1, 0, 0, 0, 1827, 1729, 1, 0, 0, 0, 1827, 1743, 1, 0, 0, 0, 1827, 1747, 1, 0, 0, 0, 1827, 1756, 1, 0, 0, 0, 1827, 1776, 1, 0, 0, 0, 1827, 1798, 1, 0, 0, 0, 1827, 1808, 1, 0, 0, 0, 1827, 1826, 1, 0, 0, 0, 1828, 85, 1, 0, 0, 0, 1829, 1830, 5, 333, 0, 0, 1830, 1831, 5, 53, 0, 0, 1831, 1835, 3, 668, 334, 0, 1832, 1833, 5, 191, 0, 0, 1833, 1835, 5, 53, 0, 0, 1834, 1829, 1, 0, 0, 0, 1834, 1832, 1, 0, 0, 0, 1835, 87, 1, 0, 0, 0, 1836, 1837, 7, 17, 0, 0, 1837, 89, 1, 0, 0, 0, 1838, 1839, 5, 43, 0, 0, 1839, 1840, 3, 310, 155, 0, 1840, 91, 1, 0, 0, 0, 1841, 1842, 5, 2, 0, 0, 1842, 1847, 3, 96, 48, 0, 1843, 1844, 5, 6, 0, 0, 1844, 1846, 3, 96, 48, 0, 1845, 1843, 1, 0, 0, 0, 1846, 1849, 1, 0, 0, 0, 1847, 1845, 1, 0, 0, 0, 1847, 1848, 1, 0, 0, 0, 1848, 1850, 1, 0, 0, 0, 1849, 1847, 1, 0, 0, 0, 1850, 1851, 5, 3, 0, 0, 1851, 93, 1, 0, 0, 0, 1852, 1853, 5, 105, 0, 0, 1853, 1854, 3, 92, 46, 0, 1854, 95, 1, 0, 0, 0, 1855, 1860, 3, 818, 409, 0, 1856, 1857, 5, 10, 0, 0, 1857, 1861, 3, 282, 141, 0, 1858, 1859, 5, 11, 0, 0, 1859, 1861, 3, 280, 140, 0, 1860, 1856, 1, 0, 0, 0, 1860, 1858, 1, 0, 0, 0, 1860, 1861, 1, 0, 0, 0, 1861, 97, 1, 0, 0, 0, 1862, 1863, 5, 62, 0, 0, 1863, 1864, 5, 422, 0, 0, 1864, 1865, 5, 105, 0, 0, 1865, 1866, 5, 2, 0, 0, 1866, 1867, 5, 533, 0, 0, 1867, 1868, 3, 196, 98, 0, 1868, 1869, 5, 6, 0, 0, 1869, 1870, 5, 534, 0, 0, 1870, 1871, 3, 196, 98, 0, 1871, 1872, 5, 3, 0, 0, 1872, 1886, 1, 0, 0, 0, 1873, 1874, 5, 62, 0, 0, 1874, 1875, 5, 422, 0, 0, 1875, 1876, 5, 68, 0, 0, 1876, 1886, 3, 528, 264, 0, 1877, 1878, 5, 62, 0, 0, 1878, 1879, 5, 422, 0, 0, 1879, 1880, 5, 64, 0, 0, 1880, 1881, 3, 528, 264, 0, 1881, 1882, 5, 94, 0, 0, 1882, 1883, 3, 528, 264, 0, 1883, 1886, 1, 0, 0, 0, 1884, 1886, 5, 53, 0, 0, 1885, 1862, 1, 0, 0, 0, 1885, 1873, 1, 0, 0, 0, 1885, 1877, 1, 0, 0, 0, 1885, 1884, 1, 0, 0, 0, 1886, 99, 1, 0, 0, 0, 1887, 1888, 5, 138, 0, 0, 1888, 1889, 5, 360, 0, 0, 1889, 1890, 3, 310, 155, 0, 1890, 1895, 3, 102, 51, 0, 1891, 1892, 5, 6, 0, 0, 1892, 1894, 3, 102, 51, 0, 1893, 1891, 1, 0, 0, 0, 1894, 1897, 1, 0, 0, 0, 1895, 1893, 1, 0, 0, 0, 1895, 1896, 1, 0, 0, 0, 1896, 101, 1, 0, 0, 0, 1897, 1895, 1, 0, 0, 0, 1898, 1899, 5, 133, 0, 0, 1899, 1900, 5, 143, 0, 0, 1900, 1902, 3, 638, 319, 0, 1901, 1903, 3, 88, 44, 0, 1902, 1901, 1, 0, 0, 0, 1902, 1903, 1, 0, 0, 0, 1903, 1929, 1, 0, 0, 0, 1904, 1905, 5, 191, 0, 0, 1905, 1907, 5, 143, 0, 0, 1906, 1908, 3, 416, 208, 0, 1907, 1906, 1, 0, 0, 0, 1907, 1908, 1, 0, 0, 0, 1908, 1909, 1, 0, 0, 0, 1909, 1911, 3, 812, 406, 0, 1910, 1912, 3, 88, 44, 0, 1911, 1910, 1, 0, 0, 0, 1911, 1912, 1, 0, 0, 0, 1912, 1929, 1, 0, 0, 0, 1913, 1914, 5, 138, 0, 0, 1914, 1915, 5, 143, 0, 0, 1915, 1918, 3, 812, 406, 0, 1916, 1917, 5, 333, 0, 0, 1917, 1919, 5, 174, 0, 0, 1918, 1916, 1, 0, 0, 0, 1918, 1919, 1, 0, 0, 0, 1919, 1920, 1, 0, 0, 0, 1920, 1921, 5, 360, 0, 0, 1921, 1923, 3, 646, 323, 0, 1922, 1924, 3, 90, 45, 0, 1923, 1922, 1, 0, 0, 0, 1923, 1924, 1, 0, 0, 0, 1924, 1926, 1, 0, 0, 0, 1925, 1927, 3, 88, 44, 0, 1926, 1925, 1, 0, 0, 0, 1926, 1927, 1, 0, 0, 0, 1927, 1929, 1, 0, 0, 0, 1928, 1898, 1, 0, 0, 0, 1928, 1904, 1, 0, 0, 0, 1928, 1913, 1, 0, 0, 0, 1929, 103, 1, 0, 0, 0, 1930, 1933, 5, 157, 0, 0, 1931, 1934, 3, 812, 406, 0, 1932, 1934, 5, 30, 0, 0, 1933, 1931, 1, 0, 0, 0, 1933, 1932, 1, 0, 0, 0, 1934, 105, 1, 0, 0, 0, 1935, 1937, 5, 169, 0, 0, 1936, 1938, 5, 107, 0, 0, 1937, 1936, 1, 0, 0, 0, 1937, 1938, 1, 0, 0, 0, 1938, 1939, 1, 0, 0, 0, 1939, 1941, 3, 768, 384, 0, 1940, 1942, 3, 138, 69, 0, 1941, 1940, 1, 0, 0, 0, 1941, 1942, 1, 0, 0, 0, 1942, 1943, 1, 0, 0, 0, 1943, 1945, 7, 18, 0, 0, 1944, 1946, 5, 297, 0, 0, 1945, 1944, 1, 0, 0, 0, 1945, 1946, 1, 0, 0, 0, 1946, 1950, 1, 0, 0, 0, 1947, 1951, 3, 802, 401, 0, 1948, 1951, 5, 343, 0, 0, 1949, 1951, 5, 344, 0, 0, 1950, 1947, 1, 0, 0, 0, 1950, 1948, 1, 0, 0, 0, 1950, 1949, 1, 0, 0, 0, 1951, 1957, 1, 0, 0, 0, 1952, 1954, 5, 100, 0, 0, 1953, 1952, 1, 0, 0, 0, 1953, 1954, 1, 0, 0, 0, 1954, 1955, 1, 0, 0, 0, 1955, 1956, 5, 184, 0, 0, 1956, 1958, 3, 802, 401, 0, 1957, 1953, 1, 0, 0, 0, 1957, 1958, 1, 0, 0, 0, 1958, 1960, 1, 0, 0, 0, 1959, 1961, 5, 105, 0, 0, 1960, 1959, 1, 0, 0, 0, 1960, 1961, 1, 0, 0, 0, 1961, 1962, 1, 0, 0, 0, 1962, 1964, 3, 110, 55, 0, 1963, 1965, 3, 632, 316, 0, 1964, 1963, 1, 0, 0, 0, 1964, 1965, 1, 0, 0, 0, 1965, 1985, 1, 0, 0, 0, 1966, 1967, 5, 169, 0, 0, 1967, 1968, 5, 2, 0, 0, 1968, 1969, 3, 524, 262, 0, 1969, 1970, 5, 3, 0, 0, 1970, 1972, 5, 94, 0, 0, 1971, 1973, 5, 297, 0, 0, 1972, 1971, 1, 0, 0, 0, 1972, 1973, 1, 0, 0, 0, 1973, 1977, 1, 0, 0, 0, 1974, 1978, 3, 802, 401, 0, 1975, 1978, 5, 343, 0, 0, 1976, 1978, 5, 344, 0, 0, 1977, 1974, 1, 0, 0, 0, 1977, 1975, 1, 0, 0, 0, 1977, 1976, 1, 0, 0, 0, 1978, 1980, 1, 0, 0, 0, 1979, 1981, 5, 105, 0, 0, 1980, 1979, 1, 0, 0, 0, 1980, 1981, 1, 0, 0, 0, 1981, 1982, 1, 0, 0, 0, 1982, 1983, 3, 110, 55, 0, 1983, 1985, 1, 0, 0, 0, 1984, 1935, 1, 0, 0, 0, 1984, 1966, 1, 0, 0, 0, 1985, 107, 1, 0, 0, 0, 1986, 2029, 5, 107, 0, 0, 1987, 2029, 5, 112, 0, 0, 1988, 1990, 7, 19, 0, 0, 1989, 1991, 5, 36, 0, 0, 1990, 1989, 1, 0, 0, 0, 1990, 1991, 1, 0, 0, 0, 1991, 1992, 1, 0, 0, 0, 1992, 2029, 3, 802, 401, 0, 1993, 2029, 5, 171, 0, 0, 1994, 2029, 5, 216, 0, 0, 1995, 1996, 5, 209, 0, 0, 1996, 1999, 5, 298, 0, 0, 1997, 2000, 3, 142, 71, 0, 1998, 2000, 5, 9, 0, 0, 1999, 1997, 1, 0, 0, 0, 1999, 1998, 1, 0, 0, 0, 2000, 2029, 1, 0, 0, 0, 2001, 2003, 5, 209, 0, 0, 2002, 2004, 5, 77, 0, 0, 2003, 2002, 1, 0, 0, 0, 2003, 2004, 1, 0, 0, 0, 2004, 2005, 1, 0, 0, 0, 2005, 2006, 5, 78, 0, 0, 2006, 2029, 3, 142, 71, 0, 2007, 2008, 5, 194, 0, 0, 2008, 2029, 3, 802, 401, 0, 2009, 2026, 7, 20, 0, 0, 2010, 2013, 5, 2, 0, 0, 2011, 2014, 3, 142, 71, 0, 2012, 2014, 5, 9, 0, 0, 2013, 2011, 1, 0, 0, 0, 2013, 2012, 1, 0, 0, 0, 2014, 2022, 1, 0, 0, 0, 2015, 2018, 5, 6, 0, 0, 2016, 2019, 3, 142, 71, 0, 2017, 2019, 5, 9, 0, 0, 2018, 2016, 1, 0, 0, 0, 2018, 2017, 1, 0, 0, 0, 2019, 2021, 1, 0, 0, 0, 2020, 2015, 1, 0, 0, 0, 2021, 2024, 1, 0, 0, 0, 2022, 2020, 1, 0, 0, 0, 2022, 2023, 1, 0, 0, 0, 2023, 2025, 1, 0, 0, 0, 2024, 2022, 1, 0, 0, 0, 2025, 2027, 5, 3, 0, 0, 2026, 2010, 1, 0, 0, 0, 2026, 2027, 1, 0, 0, 0, 2027, 2029, 1, 0, 0, 0, 2028, 1986, 1, 0, 0, 0, 2028, 1987, 1, 0, 0, 0, 2028, 1988, 1, 0, 0, 0, 2028, 1993, 1, 0, 0, 0, 2028, 1994, 1, 0, 0, 0, 2028, 1995, 1, 0, 0, 0, 2028, 2001, 1, 0, 0, 0, 2028, 2007, 1, 0, 0, 0, 2028, 2009, 1, 0, 0, 0, 2029, 2032, 1, 0, 0, 0, 2030, 2028, 1, 0, 0, 0, 2030, 2031, 1, 0, 0, 0, 2031, 109, 1, 0, 0, 0, 2032, 2030, 1, 0, 0, 0, 2033, 2052, 3, 108, 54, 0, 2034, 2037, 5, 2, 0, 0, 2035, 2038, 3, 108, 54, 0, 2036, 2038, 3, 112, 56, 0, 2037, 2035, 1, 0, 0, 0, 2037, 2036, 1, 0, 0, 0, 2038, 2046, 1, 0, 0, 0, 2039, 2042, 5, 6, 0, 0, 2040, 2043, 3, 108, 54, 0, 2041, 2043, 3, 112, 56, 0, 2042, 2040, 1, 0, 0, 0, 2042, 2041, 1, 0, 0, 0, 2043, 2045, 1, 0, 0, 0, 2044, 2039, 1, 0, 0, 0, 2045, 2048, 1, 0, 0, 0, 2046, 2044, 1, 0, 0, 0, 2046, 2047, 1, 0, 0, 0, 2047, 2049, 1, 0, 0, 0, 2048, 2046, 1, 0, 0, 0, 2049, 2050, 5, 3, 0, 0, 2050, 2052, 1, 0, 0, 0, 2051, 2033, 1, 0, 0, 0, 2051, 2034, 1, 0, 0, 0, 2052, 111, 1, 0, 0, 0, 2053, 2068, 3, 818, 409, 0, 2054, 2069, 3, 54, 27, 0, 2055, 2069, 3, 196, 98, 0, 2056, 2069, 5, 9, 0, 0, 2057, 2058, 5, 2, 0, 0, 2058, 2063, 3, 52, 26, 0, 2059, 2060, 5, 6, 0, 0, 2060, 2062, 3, 52, 26, 0, 2061, 2059, 1, 0, 0, 0, 2062, 2065, 1, 0, 0, 0, 2063, 2061, 1, 0, 0, 0, 2063, 2064, 1, 0, 0, 0, 2064, 2066, 1, 0, 0, 0, 2065, 2063, 1, 0, 0, 0, 2066, 2067, 5, 3, 0, 0, 2067, 2069, 1, 0, 0, 0, 2068, 2054, 1, 0, 0, 0, 2068, 2055, 1, 0, 0, 0, 2068, 2056, 1, 0, 0, 0, 2068, 2057, 1, 0, 0, 0, 2068, 2069, 1, 0, 0, 0, 2069, 113, 1, 0, 0, 0, 2070, 2072, 5, 46, 0, 0, 2071, 2073, 3, 116, 58, 0, 2072, 2071, 1, 0, 0, 0, 2072, 2073, 1, 0, 0, 0, 2073, 2074, 1, 0, 0, 0, 2074, 2076, 5, 92, 0, 0, 2075, 2077, 3, 288, 144, 0, 2076, 2075, 1, 0, 0, 0, 2076, 2077, 1, 0, 0, 0, 2077, 2078, 1, 0, 0, 0, 2078, 2144, 3, 766, 383, 0, 2079, 2081, 5, 2, 0, 0, 2080, 2082, 3, 120, 60, 0, 2081, 2080, 1, 0, 0, 0, 2081, 2082, 1, 0, 0, 0, 2082, 2083, 1, 0, 0, 0, 2083, 2085, 5, 3, 0, 0, 2084, 2086, 3, 158, 79, 0, 2085, 2084, 1, 0, 0, 0, 2085, 2086, 1, 0, 0, 0, 2086, 2088, 1, 0, 0, 0, 2087, 2089, 3, 160, 80, 0, 2088, 2087, 1, 0, 0, 0, 2088, 2089, 1, 0, 0, 0, 2089, 2091, 1, 0, 0, 0, 2090, 2092, 3, 164, 82, 0, 2091, 2090, 1, 0, 0, 0, 2091, 2092, 1, 0, 0, 0, 2092, 2094, 1, 0, 0, 0, 2093, 2095, 3, 166, 83, 0, 2094, 2093, 1, 0, 0, 0, 2094, 2095, 1, 0, 0, 0, 2095, 2097, 1, 0, 0, 0, 2096, 2098, 3, 168, 84, 0, 2097, 2096, 1, 0, 0, 0, 2097, 2098, 1, 0, 0, 0, 2098, 2100, 1, 0, 0, 0, 2099, 2101, 3, 170, 85, 0, 2100, 2099, 1, 0, 0, 0, 2100, 2101, 1, 0, 0, 0, 2101, 2145, 1, 0, 0, 0, 2102, 2103, 5, 275, 0, 0, 2103, 2105, 3, 310, 155, 0, 2104, 2106, 3, 118, 59, 0, 2105, 2104, 1, 0, 0, 0, 2105, 2106, 1, 0, 0, 0, 2106, 2108, 1, 0, 0, 0, 2107, 2109, 3, 160, 80, 0, 2108, 2107, 1, 0, 0, 0, 2108, 2109, 1, 0, 0, 0, 2109, 2111, 1, 0, 0, 0, 2110, 2112, 3, 164, 82, 0, 2111, 2110, 1, 0, 0, 0, 2111, 2112, 1, 0, 0, 0, 2112, 2114, 1, 0, 0, 0, 2113, 2115, 3, 166, 83, 0, 2114, 2113, 1, 0, 0, 0, 2114, 2115, 1, 0, 0, 0, 2115, 2117, 1, 0, 0, 0, 2116, 2118, 3, 168, 84, 0, 2117, 2116, 1, 0, 0, 0, 2117, 2118, 1, 0, 0, 0, 2118, 2120, 1, 0, 0, 0, 2119, 2121, 3, 170, 85, 0, 2120, 2119, 1, 0, 0, 0, 2120, 2121, 1, 0, 0, 0, 2121, 2145, 1, 0, 0, 0, 2122, 2123, 5, 285, 0, 0, 2123, 2124, 5, 275, 0, 0, 2124, 2126, 3, 774, 387, 0, 2125, 2127, 3, 118, 59, 0, 2126, 2125, 1, 0, 0, 0, 2126, 2127, 1, 0, 0, 0, 2127, 2128, 1, 0, 0, 0, 2128, 2130, 3, 98, 49, 0, 2129, 2131, 3, 160, 80, 0, 2130, 2129, 1, 0, 0, 0, 2130, 2131, 1, 0, 0, 0, 2131, 2133, 1, 0, 0, 0, 2132, 2134, 3, 164, 82, 0, 2133, 2132, 1, 0, 0, 0, 2133, 2134, 1, 0, 0, 0, 2134, 2136, 1, 0, 0, 0, 2135, 2137, 3, 166, 83, 0, 2136, 2135, 1, 0, 0, 0, 2136, 2137, 1, 0, 0, 0, 2137, 2139, 1, 0, 0, 0, 2138, 2140, 3, 168, 84, 0, 2139, 2138, 1, 0, 0, 0, 2139, 2140, 1, 0, 0, 0, 2140, 2142, 1, 0, 0, 0, 2141, 2143, 3, 170, 85, 0, 2142, 2141, 1, 0, 0, 0, 2142, 2143, 1, 0, 0, 0, 2143, 2145, 1, 0, 0, 0, 2144, 2079, 1, 0, 0, 0, 2144, 2102, 1, 0, 0, 0, 2144, 2122, 1, 0, 0, 0, 2145, 115, 1, 0, 0, 0, 2146, 2152, 5, 354, 0, 0, 2147, 2152, 5, 352, 0, 0, 2148, 2149, 7, 21, 0, 0, 2149, 2152, 7, 22, 0, 0, 2150, 2152, 5, 367, 0, 0, 2151, 2146, 1, 0, 0, 0, 2151, 2147, 1, 0, 0, 0, 2151, 2148, 1, 0, 0, 0, 2151, 2150, 1, 0, 0, 0, 2152, 117, 1, 0, 0, 0, 2153, 2154, 5, 2, 0, 0, 2154, 2159, 3, 124, 62, 0, 2155, 2156, 5, 6, 0, 0, 2156, 2158, 3, 124, 62, 0, 2157, 2155, 1, 0, 0, 0, 2158, 2161, 1, 0, 0, 0, 2159, 2157, 1, 0, 0, 0, 2159, 2160, 1, 0, 0, 0, 2160, 2162, 1, 0, 0, 0, 2161, 2159, 1, 0, 0, 0, 2162, 2163, 5, 3, 0, 0, 2163, 119, 1, 0, 0, 0, 2164, 2169, 3, 122, 61, 0, 2165, 2166, 5, 6, 0, 0, 2166, 2168, 3, 122, 61, 0, 2167, 2165, 1, 0, 0, 0, 2168, 2171, 1, 0, 0, 0, 2169, 2167, 1, 0, 0, 0, 2169, 2170, 1, 0, 0, 0, 2170, 121, 1, 0, 0, 0, 2171, 2169, 1, 0, 0, 0, 2172, 2173, 5, 45, 0, 0, 2173, 2175, 3, 812, 406, 0, 2174, 2172, 1, 0, 0, 0, 2174, 2175, 1, 0, 0, 0, 2175, 2176, 1, 0, 0, 0, 2176, 2188, 3, 136, 68, 0, 2177, 2188, 3, 126, 63, 0, 2178, 2179, 5, 120, 0, 0, 2179, 2184, 3, 774, 387, 0, 2180, 2181, 7, 23, 0, 0, 2181, 2183, 3, 134, 67, 0, 2182, 2180, 1, 0, 0, 0, 2183, 2186, 1, 0, 0, 0, 2184, 2182, 1, 0, 0, 0, 2184, 2185, 1, 0, 0, 0, 2185, 2188, 1, 0, 0, 0, 2186, 2184, 1, 0, 0, 0, 2187, 2174, 1, 0, 0, 0, 2187, 2177, 1, 0, 0, 0, 2187, 2178, 1, 0, 0, 0, 2188, 123, 1, 0, 0, 0, 2189, 2192, 3, 796, 398, 0, 2190, 2191, 5, 105, 0, 0, 2191, 2193, 5, 280, 0, 0, 2192, 2190, 1, 0, 0, 0, 2192, 2193, 1, 0, 0, 0, 2193, 2197, 1, 0, 0, 0, 2194, 2196, 3, 128, 64, 0, 2195, 2194, 1, 0, 0, 0, 2196, 2199, 1, 0, 0, 0, 2197, 2195, 1, 0, 0, 0, 2197, 2198, 1, 0, 0, 0, 2198, 2206, 1, 0, 0, 0, 2199, 2197, 1, 0, 0, 0, 2200, 2201, 5, 45, 0, 0, 2201, 2203, 3, 812, 406, 0, 2202, 2200, 1, 0, 0, 0, 2202, 2203, 1, 0, 0, 0, 2203, 2204, 1, 0, 0, 0, 2204, 2206, 3, 136, 68, 0, 2205, 2189, 1, 0, 0, 0, 2205, 2202, 1, 0, 0, 0, 2206, 125, 1, 0, 0, 0, 2207, 2208, 3, 796, 398, 0, 2208, 2210, 3, 646, 323, 0, 2209, 2211, 3, 214, 107, 0, 2210, 2209, 1, 0, 0, 0, 2210, 2211, 1, 0, 0, 0, 2211, 2221, 1, 0, 0, 0, 2212, 2219, 5, 345, 0, 0, 2213, 2220, 5, 544, 0, 0, 2214, 2220, 5, 205, 0, 0, 2215, 2220, 5, 545, 0, 0, 2216, 2220, 5, 546, 0, 0, 2217, 2220, 5, 53, 0, 0, 2218, 2220, 3, 812, 406, 0, 2219, 2213, 1, 0, 0, 0, 2219, 2214, 1, 0, 0, 0, 2219, 2215, 1, 0, 0, 0, 2219, 2216, 1, 0, 0, 0, 2219, 2217, 1, 0, 0, 0, 2219, 2218, 1, 0, 0, 0, 2220, 2222, 1, 0, 0, 0, 2221, 2212, 1, 0, 0, 0, 2221, 2222, 1, 0, 0, 0, 2222, 2225, 1, 0, 0, 0, 2223, 2224, 5, 543, 0, 0, 2224, 2226, 3, 812, 406, 0, 2225, 2223, 1, 0, 0, 0, 2225, 2226, 1, 0, 0, 0, 2226, 2228, 1, 0, 0, 0, 2227, 2229, 3, 90, 45, 0, 2228, 2227, 1, 0, 0, 0, 2228, 2229, 1, 0, 0, 0, 2229, 2232, 1, 0, 0, 0, 2230, 2231, 5, 105, 0, 0, 2231, 2233, 5, 280, 0, 0, 2232, 2230, 1, 0, 0, 0, 2232, 2233, 1, 0, 0, 0, 2233, 2237, 1, 0, 0, 0, 2234, 2236, 3, 128, 64, 0, 2235, 2234, 1, 0, 0, 0, 2236, 2239, 1, 0, 0, 0, 2237, 2235, 1, 0, 0, 0, 2237, 2238, 1, 0, 0, 0, 2238, 127, 1, 0, 0, 0, 2239, 2237, 1, 0, 0, 0, 2240, 2241, 5, 45, 0, 0, 2241, 2243, 3, 812, 406, 0, 2242, 2240, 1, 0, 0, 0, 2242, 2243, 1, 0, 0, 0, 2243, 2244, 1, 0, 0, 0, 2244, 2249, 3, 130, 65, 0, 2245, 2247, 5, 77, 0, 0, 2246, 2245, 1, 0, 0, 0, 2246, 2247, 1, 0, 0, 0, 2247, 2248, 1, 0, 0, 0, 2248, 2250, 5, 54, 0, 0, 2249, 2246, 1, 0, 0, 0, 2249, 2250, 1, 0, 0, 0, 2250, 2253, 1, 0, 0, 0, 2251, 2252, 5, 69, 0, 0, 2252, 2254, 7, 9, 0, 0, 2253, 2251, 1, 0, 0, 0, 2253, 2254, 1, 0, 0, 0, 2254, 129, 1, 0, 0, 0, 2255, 2257, 5, 77, 0, 0, 2256, 2255, 1, 0, 0, 0, 2256, 2257, 1, 0, 0, 0, 2257, 2258, 1, 0, 0, 0, 2258, 2336, 5, 78, 0, 0, 2259, 2261, 5, 98, 0, 0, 2260, 2262, 3, 394, 197, 0, 2261, 2260, 1, 0, 0, 0, 2261, 2262, 1, 0, 0, 0, 2262, 2264, 1, 0, 0, 0, 2263, 2265, 3, 172, 86, 0, 2264, 2263, 1, 0, 0, 0, 2264, 2265, 1, 0, 0, 0, 2265, 2336, 1, 0, 0, 0, 2266, 2272, 5, 98, 0, 0, 2267, 2269, 5, 273, 0, 0, 2268, 2270, 5, 77, 0, 0, 2269, 2268, 1, 0, 0, 0, 2269, 2270, 1, 0, 0, 0, 2270, 2271, 1, 0, 0, 0, 2271, 2273, 5, 56, 0, 0, 2272, 2267, 1, 0, 0, 0, 2272, 2273, 1, 0, 0, 0, 2273, 2276, 1, 0, 0, 0, 2274, 2275, 5, 441, 0, 0, 2275, 2277, 3, 354, 177, 0, 2276, 2274, 1, 0, 0, 0, 2276, 2277, 1, 0, 0, 0, 2277, 2279, 1, 0, 0, 0, 2278, 2280, 3, 566, 283, 0, 2279, 2278, 1, 0, 0, 0, 2279, 2280, 1, 0, 0, 0, 2280, 2282, 1, 0, 0, 0, 2281, 2283, 3, 172, 86, 0, 2282, 2281, 1, 0, 0, 0, 2282, 2283, 1, 0, 0, 0, 2283, 2336, 1, 0, 0, 0, 2284, 2285, 5, 85, 0, 0, 2285, 2287, 5, 245, 0, 0, 2286, 2288, 3, 394, 197, 0, 2287, 2286, 1, 0, 0, 0, 2287, 2288, 1, 0, 0, 0, 2288, 2290, 1, 0, 0, 0, 2289, 2291, 3, 172, 86, 0, 2290, 2289, 1, 0, 0, 0, 2290, 2291, 1, 0, 0, 0, 2291, 2336, 1, 0, 0, 0, 2292, 2293, 5, 42, 0, 0, 2293, 2294, 5, 2, 0, 0, 2294, 2295, 3, 668, 334, 0, 2295, 2298, 5, 3, 0, 0, 2296, 2297, 5, 269, 0, 0, 2297, 2299, 5, 228, 0, 0, 2298, 2296, 1, 0, 0, 0, 2298, 2299, 1, 0, 0, 0, 2299, 2336, 1, 0, 0, 0, 2300, 2301, 5, 53, 0, 0, 2301, 2336, 3, 676, 338, 0, 2302, 2303, 5, 438, 0, 0, 2303, 2304, 3, 132, 66, 0, 2304, 2321, 5, 36, 0, 0, 2305, 2314, 5, 219, 0, 0, 2306, 2308, 5, 2, 0, 0, 2307, 2309, 3, 194, 97, 0, 2308, 2307, 1, 0, 0, 0, 2309, 2310, 1, 0, 0, 0, 2310, 2308, 1, 0, 0, 0, 2310, 2311, 1, 0, 0, 0, 2311, 2312, 1, 0, 0, 0, 2312, 2313, 5, 3, 0, 0, 2313, 2315, 1, 0, 0, 0, 2314, 2306, 1, 0, 0, 0, 2314, 2315, 1, 0, 0, 0, 2315, 2322, 1, 0, 0, 0, 2316, 2317, 5, 2, 0, 0, 2317, 2318, 3, 668, 334, 0, 2318, 2319, 5, 3, 0, 0, 2319, 2320, 5, 440, 0, 0, 2320, 2322, 1, 0, 0, 0, 2321, 2305, 1, 0, 0, 0, 2321, 2316, 1, 0, 0, 0, 2322, 2336, 1, 0, 0, 0, 2323, 2324, 5, 86, 0, 0, 2324, 2326, 3, 774, 387, 0, 2325, 2327, 3, 138, 69, 0, 2326, 2325, 1, 0, 0, 0, 2326, 2327, 1, 0, 0, 0, 2327, 2329, 1, 0, 0, 0, 2328, 2330, 3, 146, 73, 0, 2329, 2328, 1, 0, 0, 0, 2329, 2330, 1, 0, 0, 0, 2330, 2332, 1, 0, 0, 0, 2331, 2333, 3, 150, 75, 0, 2332, 2331, 1, 0, 0, 0, 2332, 2333, 1, 0, 0, 0, 2333, 2336, 1, 0, 0, 0, 2334, 2336, 3, 90, 45, 0, 2335, 2256, 1, 0, 0, 0, 2335, 2259, 1, 0, 0, 0, 2335, 2266, 1, 0, 0, 0, 2335, 2284, 1, 0, 0, 0, 2335, 2292, 1, 0, 0, 0, 2335, 2300, 1, 0, 0, 0, 2335, 2302, 1, 0, 0, 0, 2335, 2323, 1, 0, 0, 0, 2335, 2334, 1, 0, 0, 0, 2336, 131, 1, 0, 0, 0, 2337, 2341, 5, 139, 0, 0, 2338, 2339, 5, 147, 0, 0, 2339, 2341, 5, 53, 0, 0, 2340, 2337, 1, 0, 0, 0, 2340, 2338, 1, 0, 0, 0, 2341, 133, 1, 0, 0, 0, 2342, 2343, 7, 24, 0, 0, 2343, 135, 1, 0, 0, 0, 2344, 2345, 5, 42, 0, 0, 2345, 2346, 5, 2, 0, 0, 2346, 2347, 3, 668, 334, 0, 2347, 2351, 5, 3, 0, 0, 2348, 2350, 3, 266, 133, 0, 2349, 2348, 1, 0, 0, 0, 2350, 2353, 1, 0, 0, 0, 2351, 2349, 1, 0, 0, 0, 2351, 2352, 1, 0, 0, 0, 2352, 2441, 1, 0, 0, 0, 2353, 2351, 1, 0, 0, 0, 2354, 2358, 5, 98, 0, 0, 2355, 2356, 5, 85, 0, 0, 2356, 2358, 5, 245, 0, 0, 2357, 2354, 1, 0, 0, 0, 2357, 2355, 1, 0, 0, 0, 2358, 2382, 1, 0, 0, 0, 2359, 2361, 3, 138, 69, 0, 2360, 2362, 3, 144, 72, 0, 2361, 2360, 1, 0, 0, 0, 2361, 2362, 1, 0, 0, 0, 2362, 2364, 1, 0, 0, 0, 2363, 2365, 3, 394, 197, 0, 2364, 2363, 1, 0, 0, 0, 2364, 2365, 1, 0, 0, 0, 2365, 2367, 1, 0, 0, 0, 2366, 2368, 3, 172, 86, 0, 2367, 2366, 1, 0, 0, 0, 2367, 2368, 1, 0, 0, 0, 2368, 2372, 1, 0, 0, 0, 2369, 2371, 3, 266, 133, 0, 2370, 2369, 1, 0, 0, 0, 2371, 2374, 1, 0, 0, 0, 2372, 2370, 1, 0, 0, 0, 2372, 2373, 1, 0, 0, 0, 2373, 2383, 1, 0, 0, 0, 2374, 2372, 1, 0, 0, 0, 2375, 2379, 3, 174, 87, 0, 2376, 2378, 3, 266, 133, 0, 2377, 2376, 1, 0, 0, 0, 2378, 2381, 1, 0, 0, 0, 2379, 2377, 1, 0, 0, 0, 2379, 2380, 1, 0, 0, 0, 2380, 2383, 1, 0, 0, 0, 2381, 2379, 1, 0, 0, 0, 2382, 2359, 1, 0, 0, 0, 2382, 2375, 1, 0, 0, 0, 2383, 2441, 1, 0, 0, 0, 2384, 2386, 5, 199, 0, 0, 2385, 2387, 3, 164, 82, 0, 2386, 2385, 1, 0, 0, 0, 2386, 2387, 1, 0, 0, 0, 2387, 2388, 1, 0, 0, 0, 2388, 2389, 5, 2, 0, 0, 2389, 2394, 3, 148, 74, 0, 2390, 2391, 5, 6, 0, 0, 2391, 2393, 3, 148, 74, 0, 2392, 2390, 1, 0, 0, 0, 2393, 2396, 1, 0, 0, 0, 2394, 2392, 1, 0, 0, 0, 2394, 2395, 1, 0, 0, 0, 2395, 2397, 1, 0, 0, 0, 2396, 2394, 1, 0, 0, 0, 2397, 2399, 5, 3, 0, 0, 2398, 2400, 3, 144, 72, 0, 2399, 2398, 1, 0, 0, 0, 2399, 2400, 1, 0, 0, 0, 2400, 2402, 1, 0, 0, 0, 2401, 2403, 3, 394, 197, 0, 2402, 2401, 1, 0, 0, 0, 2402, 2403, 1, 0, 0, 0, 2403, 2405, 1, 0, 0, 0, 2404, 2406, 3, 172, 86, 0, 2405, 2404, 1, 0, 0, 0, 2405, 2406, 1, 0, 0, 0, 2406, 2412, 1, 0, 0, 0, 2407, 2408, 5, 103, 0, 0, 2408, 2409, 5, 2, 0, 0, 2409, 2410, 3, 668, 334, 0, 2410, 2411, 5, 3, 0, 0, 2411, 2413, 1, 0, 0, 0, 2412, 2407, 1, 0, 0, 0, 2412, 2413, 1, 0, 0, 0, 2413, 2417, 1, 0, 0, 0, 2414, 2416, 3, 266, 133, 0, 2415, 2414, 1, 0, 0, 0, 2416, 2419, 1, 0, 0, 0, 2417, 2415, 1, 0, 0, 0, 2417, 2418, 1, 0, 0, 0, 2418, 2441, 1, 0, 0, 0, 2419, 2417, 1, 0, 0, 0, 2420, 2421, 5, 63, 0, 0, 2421, 2422, 5, 245, 0, 0, 2422, 2423, 3, 138, 69, 0, 2423, 2424, 5, 86, 0, 0, 2424, 2426, 3, 774, 387, 0, 2425, 2427, 3, 138, 69, 0, 2426, 2425, 1, 0, 0, 0, 2426, 2427, 1, 0, 0, 0, 2427, 2429, 1, 0, 0, 0, 2428, 2430, 3, 146, 73, 0, 2429, 2428, 1, 0, 0, 0, 2429, 2430, 1, 0, 0, 0, 2430, 2432, 1, 0, 0, 0, 2431, 2433, 3, 150, 75, 0, 2432, 2431, 1, 0, 0, 0, 2432, 2433, 1, 0, 0, 0, 2433, 2437, 1, 0, 0, 0, 2434, 2436, 3, 266, 133, 0, 2435, 2434, 1, 0, 0, 0, 2436, 2439, 1, 0, 0, 0, 2437, 2435, 1, 0, 0, 0, 2437, 2438, 1, 0, 0, 0, 2438, 2441, 1, 0, 0, 0, 2439, 2437, 1, 0, 0, 0, 2440, 2344, 1, 0, 0, 0, 2440, 2357, 1, 0, 0, 0, 2440, 2384, 1, 0, 0, 0, 2440, 2420, 1, 0, 0, 0, 2441, 137, 1, 0, 0, 0, 2442, 2443, 5, 2, 0, 0, 2443, 2444, 3, 142, 71, 0, 2444, 2445, 5, 3, 0, 0, 2445, 139, 1, 0, 0, 0, 2446, 2447, 5, 2, 0, 0, 2447, 2452, 3, 796, 398, 0, 2448, 2449, 5, 6, 0, 0, 2449, 2451, 3, 796, 398, 0, 2450, 2448, 1, 0, 0, 0, 2451, 2454, 1, 0, 0, 0, 2452, 2450, 1, 0, 0, 0, 2452, 2453, 1, 0, 0, 0, 2453, 2455, 1, 0, 0, 0, 2454, 2452, 1, 0, 0, 0, 2455, 2456, 5, 3, 0, 0, 2456, 141, 1, 0, 0, 0, 2457, 2462, 3, 794, 397, 0, 2458, 2459, 5, 6, 0, 0, 2459, 2461, 3, 794, 397, 0, 2460, 2458, 1, 0, 0, 0, 2461, 2464, 1, 0, 0, 0, 2462, 2460, 1, 0, 0, 0, 2462, 2463, 1, 0, 0, 0, 2463, 143, 1, 0, 0, 0, 2464, 2462, 1, 0, 0, 0, 2465, 2466, 5, 441, 0, 0, 2466, 2467, 3, 138, 69, 0, 2467, 145, 1, 0, 0, 0, 2468, 2469, 5, 258, 0, 0, 2469, 2470, 7, 25, 0, 0, 2470, 147, 1, 0, 0, 0, 2471, 2472, 3, 356, 178, 0, 2472, 2479, 5, 105, 0, 0, 2473, 2480, 3, 408, 204, 0, 2474, 2475, 5, 278, 0, 0, 2475, 2476, 5, 2, 0, 0, 2476, 2477, 3, 408, 204, 0, 2477, 2478, 5, 3, 0, 0, 2478, 2480, 1, 0, 0, 0, 2479, 2473, 1, 0, 0, 0, 2479, 2474, 1, 0, 0, 0, 2480, 149, 1, 0, 0, 0, 2481, 2483, 3, 152, 76, 0, 2482, 2484, 3, 154, 77, 0, 2483, 2482, 1, 0, 0, 0, 2483, 2484, 1, 0, 0, 0, 2484, 2490, 1, 0, 0, 0, 2485, 2487, 3, 154, 77, 0, 2486, 2488, 3, 152, 76, 0, 2487, 2486, 1, 0, 0, 0, 2487, 2488, 1, 0, 0, 0, 2488, 2490, 1, 0, 0, 0, 2489, 2481, 1, 0, 0, 0, 2489, 2485, 1, 0, 0, 0, 2490, 151, 1, 0, 0, 0, 2491, 2492, 5, 80, 0, 0, 2492, 2493, 5, 369, 0, 0, 2493, 2494, 3, 156, 78, 0, 2494, 153, 1, 0, 0, 0, 2495, 2496, 5, 80, 0, 0, 2496, 2497, 5, 182, 0, 0, 2497, 2498, 3, 156, 78, 0, 2498, 155, 1, 0, 0, 0, 2499, 2500, 5, 269, 0, 0, 2500, 2509, 5, 132, 0, 0, 2501, 2509, 5, 315, 0, 0, 2502, 2509, 5, 150, 0, 0, 2503, 2504, 5, 333, 0, 0, 2504, 2506, 7, 26, 0, 0, 2505, 2507, 3, 142, 71, 0, 2506, 2505, 1, 0, 0, 0, 2506, 2507, 1, 0, 0, 0, 2507, 2509, 1, 0, 0, 0, 2508, 2499, 1, 0, 0, 0, 2508, 2501, 1, 0, 0, 0, 2508, 2502, 1, 0, 0, 0, 2508, 2503, 1, 0, 0, 0, 2509, 157, 1, 0, 0, 0, 2510, 2511, 5, 238, 0, 0, 2511, 2512, 5, 2, 0, 0, 2512, 2513, 3, 754, 377, 0, 2513, 2514, 5, 3, 0, 0, 2514, 159, 1, 0, 0, 0, 2515, 2516, 5, 285, 0, 0, 2516, 2517, 5, 147, 0, 0, 2517, 2518, 3, 812, 406, 0, 2518, 2519, 5, 2, 0, 0, 2519, 2524, 3, 162, 81, 0, 2520, 2521, 5, 6, 0, 0, 2521, 2523, 3, 162, 81, 0, 2522, 2520, 1, 0, 0, 0, 2523, 2526, 1, 0, 0, 0, 2524, 2522, 1, 0, 0, 0, 2524, 2525, 1, 0, 0, 0, 2525, 2527, 1, 0, 0, 0, 2526, 2524, 1, 0, 0, 0, 2527, 2528, 5, 3, 0, 0, 2528, 161, 1, 0, 0, 0, 2529, 2536, 3, 794, 397, 0, 2530, 2536, 3, 682, 341, 0, 2531, 2532, 5, 2, 0, 0, 2532, 2533, 3, 668, 334, 0, 2533, 2534, 5, 3, 0, 0, 2534, 2536, 1, 0, 0, 0, 2535, 2529, 1, 0, 0, 0, 2535, 2530, 1, 0, 0, 0, 2535, 2531, 1, 0, 0, 0, 2536, 2538, 1, 0, 0, 0, 2537, 2539, 3, 90, 45, 0, 2538, 2537, 1, 0, 0, 0, 2538, 2539, 1, 0, 0, 0, 2539, 2541, 1, 0, 0, 0, 2540, 2542, 3, 310, 155, 0, 2541, 2540, 1, 0, 0, 0, 2541, 2542, 1, 0, 0, 0, 2542, 163, 1, 0, 0, 0, 2543, 2544, 5, 100, 0, 0, 2544, 2545, 3, 812, 406, 0, 2545, 165, 1, 0, 0, 0, 2546, 2547, 5, 105, 0, 0, 2547, 2551, 3, 92, 46, 0, 2548, 2549, 7, 27, 0, 0, 2549, 2551, 5, 277, 0, 0, 2550, 2546, 1, 0, 0, 0, 2550, 2548, 1, 0, 0, 0, 2551, 167, 1, 0, 0, 0, 2552, 2553, 5, 80, 0, 0, 2553, 2559, 5, 161, 0, 0, 2554, 2560, 5, 191, 0, 0, 2555, 2556, 5, 182, 0, 0, 2556, 2560, 5, 320, 0, 0, 2557, 2558, 5, 292, 0, 0, 2558, 2560, 5, 320, 0, 0, 2559, 2554, 1, 0, 0, 0, 2559, 2555, 1, 0, 0, 0, 2559, 2557, 1, 0, 0, 0, 2560, 169, 1, 0, 0, 0, 2561, 2562, 5, 351, 0, 0, 2562, 2563, 3, 764, 382, 0, 2563, 171, 1, 0, 0, 0, 2564, 2565, 5, 100, 0, 0, 2565, 2566, 5, 226, 0, 0, 2566, 2567, 3, 170, 85, 0, 2567, 173, 1, 0, 0, 0, 2568, 2569, 5, 100, 0, 0, 2569, 2570, 5, 226, 0, 0, 2570, 2571, 3, 812, 406, 0, 2571, 175, 1, 0, 0, 0, 2572, 2573, 5, 46, 0, 0, 2573, 2578, 5, 342, 0, 0, 2574, 2576, 3, 288, 144, 0, 2575, 2574, 1, 0, 0, 0, 2575, 2576, 1, 0, 0, 0, 2576, 2577, 1, 0, 0, 0, 2577, 2579, 3, 310, 155, 0, 2578, 2575, 1, 0, 0, 0, 2578, 2579, 1, 0, 0, 0, 2579, 2581, 1, 0, 0, 0, 2580, 2582, 3, 138, 69, 0, 2581, 2580, 1, 0, 0, 0, 2581, 2582, 1, 0, 0, 0, 2582, 2583, 1, 0, 0, 0, 2583, 2593, 5, 80, 0, 0, 2584, 2589, 3, 726, 363, 0, 2585, 2586, 5, 6, 0, 0, 2586, 2588, 3, 726, 363, 0, 2587, 2585, 1, 0, 0, 0, 2588, 2591, 1, 0, 0, 0, 2589, 2587, 1, 0, 0, 0, 2589, 2590, 1, 0, 0, 0, 2590, 2594, 1, 0, 0, 0, 2591, 2589, 1, 0, 0, 0, 2592, 2594, 3, 724, 362, 0, 2593, 2584, 1, 0, 0, 0, 2593, 2592, 1, 0, 0, 0, 2594, 2595, 1, 0, 0, 0, 2595, 2596, 3, 604, 302, 0, 2596, 177, 1, 0, 0, 0, 2597, 2598, 5, 138, 0, 0, 2598, 2600, 5, 342, 0, 0, 2599, 2601, 3, 416, 208, 0, 2600, 2599, 1, 0, 0, 0, 2600, 2601, 1, 0, 0, 0, 2601, 2602, 1, 0, 0, 0, 2602, 2603, 3, 310, 155, 0, 2603, 2604, 5, 333, 0, 0, 2604, 2605, 5, 342, 0, 0, 2605, 2606, 3, 806, 403, 0, 2606, 179, 1, 0, 0, 0, 2607, 2609, 5, 46, 0, 0, 2608, 2610, 3, 116, 58, 0, 2609, 2608, 1, 0, 0, 0, 2609, 2610, 1, 0, 0, 0, 2610, 2611, 1, 0, 0, 0, 2611, 2613, 5, 92, 0, 0, 2612, 2614, 3, 288, 144, 0, 2613, 2612, 1, 0, 0, 0, 2613, 2614, 1, 0, 0, 0, 2614, 2615, 1, 0, 0, 0, 2615, 2616, 3, 182, 91, 0, 2616, 2617, 5, 36, 0, 0, 2617, 2619, 3, 554, 277, 0, 2618, 2620, 3, 184, 92, 0, 2619, 2618, 1, 0, 0, 0, 2619, 2620, 1, 0, 0, 0, 2620, 181, 1, 0, 0, 0, 2621, 2623, 3, 766, 383, 0, 2622, 2624, 3, 140, 70, 0, 2623, 2622, 1, 0, 0, 0, 2623, 2624, 1, 0, 0, 0, 2624, 2626, 1, 0, 0, 0, 2625, 2627, 3, 164, 82, 0, 2626, 2625, 1, 0, 0, 0, 2626, 2627, 1, 0, 0, 0, 2627, 2629, 1, 0, 0, 0, 2628, 2630, 3, 166, 83, 0, 2629, 2628, 1, 0, 0, 0, 2629, 2630, 1, 0, 0, 0, 2630, 2632, 1, 0, 0, 0, 2631, 2633, 3, 168, 84, 0, 2632, 2631, 1, 0, 0, 0, 2632, 2633, 1, 0, 0, 0, 2633, 2635, 1, 0, 0, 0, 2634, 2636, 3, 170, 85, 0, 2635, 2634, 1, 0, 0, 0, 2635, 2636, 1, 0, 0, 0, 2636, 183, 1, 0, 0, 0, 2637, 2641, 5, 105, 0, 0, 2638, 2642, 5, 174, 0, 0, 2639, 2640, 5, 269, 0, 0, 2640, 2642, 5, 174, 0, 0, 2641, 2638, 1, 0, 0, 0, 2641, 2639, 1, 0, 0, 0, 2642, 185, 1, 0, 0, 0, 2643, 2645, 5, 46, 0, 0, 2644, 2646, 5, 367, 0, 0, 2645, 2644, 1, 0, 0, 0, 2645, 2646, 1, 0, 0, 0, 2646, 2647, 1, 0, 0, 0, 2647, 2648, 5, 259, 0, 0, 2648, 2650, 5, 376, 0, 0, 2649, 2651, 3, 288, 144, 0, 2650, 2649, 1, 0, 0, 0, 2650, 2651, 1, 0, 0, 0, 2651, 2652, 1, 0, 0, 0, 2652, 2654, 3, 770, 385, 0, 2653, 2655, 3, 140, 70, 0, 2654, 2653, 1, 0, 0, 0, 2654, 2655, 1, 0, 0, 0, 2655, 2657, 1, 0, 0, 0, 2656, 2658, 3, 164, 82, 0, 2657, 2656, 1, 0, 0, 0, 2657, 2658, 1, 0, 0, 0, 2658, 2660, 1, 0, 0, 0, 2659, 2661, 3, 94, 47, 0, 2660, 2659, 1, 0, 0, 0, 2660, 2661, 1, 0, 0, 0, 2661, 2663, 1, 0, 0, 0, 2662, 2664, 3, 170, 85, 0, 2663, 2662, 1, 0, 0, 0, 2663, 2664, 1, 0, 0, 0, 2664, 2665, 1, 0, 0, 0, 2665, 2666, 5, 36, 0, 0, 2666, 2668, 3, 554, 277, 0, 2667, 2669, 3, 184, 92, 0, 2668, 2667, 1, 0, 0, 0, 2668, 2669, 1, 0, 0, 0, 2669, 187, 1, 0, 0, 0, 2670, 2671, 5, 305, 0, 0, 2671, 2672, 5, 259, 0, 0, 2672, 2674, 5, 376, 0, 0, 2673, 2675, 5, 109, 0, 0, 2674, 2673, 1, 0, 0, 0, 2674, 2675, 1, 0, 0, 0, 2675, 2676, 1, 0, 0, 0, 2676, 2678, 3, 772, 386, 0, 2677, 2679, 3, 184, 92, 0, 2678, 2677, 1, 0, 0, 0, 2678, 2679, 1, 0, 0, 0, 2679, 189, 1, 0, 0, 0, 2680, 2682, 5, 46, 0, 0, 2681, 2683, 3, 116, 58, 0, 2682, 2681, 1, 0, 0, 0, 2682, 2683, 1, 0, 0, 0, 2683, 2684, 1, 0, 0, 0, 2684, 2686, 5, 328, 0, 0, 2685, 2687, 3, 288, 144, 0, 2686, 2685, 1, 0, 0, 0, 2686, 2687, 1, 0, 0, 0, 2687, 2688, 1, 0, 0, 0, 2688, 2694, 3, 774, 387, 0, 2689, 2691, 3, 194, 97, 0, 2690, 2689, 1, 0, 0, 0, 2691, 2692, 1, 0, 0, 0, 2692, 2690, 1, 0, 0, 0, 2692, 2693, 1, 0, 0, 0, 2693, 2695, 1, 0, 0, 0, 2694, 2690, 1, 0, 0, 0, 2694, 2695, 1, 0, 0, 0, 2695, 191, 1, 0, 0, 0, 2696, 2697, 5, 138, 0, 0, 2697, 2699, 5, 328, 0, 0, 2698, 2700, 3, 416, 208, 0, 2699, 2698, 1, 0, 0, 0, 2699, 2700, 1, 0, 0, 0, 2700, 2701, 1, 0, 0, 0, 2701, 2703, 3, 774, 387, 0, 2702, 2704, 3, 194, 97, 0, 2703, 2702, 1, 0, 0, 0, 2704, 2705, 1, 0, 0, 0, 2705, 2703, 1, 0, 0, 0, 2705, 2706, 1, 0, 0, 0, 2706, 193, 1, 0, 0, 0, 2707, 2708, 5, 36, 0, 0, 2708, 2741, 3, 648, 324, 0, 2709, 2711, 5, 148, 0, 0, 2710, 2712, 3, 196, 98, 0, 2711, 2710, 1, 0, 0, 0, 2711, 2712, 1, 0, 0, 0, 2712, 2741, 1, 0, 0, 0, 2713, 2715, 5, 225, 0, 0, 2714, 2716, 5, 147, 0, 0, 2715, 2714, 1, 0, 0, 0, 2715, 2716, 1, 0, 0, 0, 2716, 2717, 1, 0, 0, 0, 2717, 2741, 3, 196, 98, 0, 2718, 2719, 7, 28, 0, 0, 2719, 2741, 3, 196, 98, 0, 2720, 2721, 5, 269, 0, 0, 2721, 2741, 7, 29, 0, 0, 2722, 2723, 5, 281, 0, 0, 2723, 2724, 5, 147, 0, 0, 2724, 2741, 3, 794, 397, 0, 2725, 2726, 5, 328, 0, 0, 2726, 2727, 5, 266, 0, 0, 2727, 2741, 3, 310, 155, 0, 2728, 2730, 5, 340, 0, 0, 2729, 2731, 5, 105, 0, 0, 2730, 2729, 1, 0, 0, 0, 2730, 2731, 1, 0, 0, 0, 2731, 2732, 1, 0, 0, 0, 2732, 2741, 3, 196, 98, 0, 2733, 2735, 5, 314, 0, 0, 2734, 2736, 5, 105, 0, 0, 2735, 2734, 1, 0, 0, 0, 2735, 2736, 1, 0, 0, 0, 2736, 2738, 1, 0, 0, 0, 2737, 2739, 3, 196, 98, 0, 2738, 2737, 1, 0, 0, 0, 2738, 2739, 1, 0, 0, 0, 2739, 2741, 1, 0, 0, 0, 2740, 2707, 1, 0, 0, 0, 2740, 2709, 1, 0, 0, 0, 2740, 2713, 1, 0, 0, 0, 2740, 2718, 1, 0, 0, 0, 2740, 2720, 1, 0, 0, 0, 2740, 2722, 1, 0, 0, 0, 2740, 2725, 1, 0, 0, 0, 2740, 2728, 1, 0, 0, 0, 2740, 2733, 1, 0, 0, 0, 2741, 195, 1, 0, 0, 0, 2742, 2744, 7, 30, 0, 0, 2743, 2742, 1, 0, 0, 0, 2743, 2744, 1, 0, 0, 0, 2744, 2745, 1, 0, 0, 0, 2745, 2748, 5, 576, 0, 0, 2746, 2748, 3, 806, 403, 0, 2747, 2743, 1, 0, 0, 0, 2747, 2746, 1, 0, 0, 0, 2748, 197, 1, 0, 0, 0, 2749, 2751, 5, 46, 0, 0, 2750, 2752, 3, 360, 180, 0, 2751, 2750, 1, 0, 0, 0, 2751, 2752, 1, 0, 0, 0, 2752, 2754, 1, 0, 0, 0, 2753, 2755, 5, 359, 0, 0, 2754, 2753, 1, 0, 0, 0, 2754, 2755, 1, 0, 0, 0, 2755, 2757, 1, 0, 0, 0, 2756, 2758, 5, 295, 0, 0, 2757, 2756, 1, 0, 0, 0, 2757, 2758, 1, 0, 0, 0, 2758, 2759, 1, 0, 0, 0, 2759, 2760, 5, 247, 0, 0, 2760, 2773, 3, 812, 406, 0, 2761, 2762, 5, 215, 0, 0, 2762, 2765, 3, 310, 155, 0, 2763, 2764, 5, 239, 0, 0, 2764, 2766, 3, 310, 155, 0, 2765, 2763, 1, 0, 0, 0, 2765, 2766, 1, 0, 0, 0, 2766, 2771, 1, 0, 0, 0, 2767, 2768, 5, 373, 0, 0, 2768, 2772, 3, 310, 155, 0, 2769, 2770, 5, 269, 0, 0, 2770, 2772, 5, 373, 0, 0, 2771, 2767, 1, 0, 0, 0, 2771, 2769, 1, 0, 0, 0, 2771, 2772, 1, 0, 0, 0, 2772, 2774, 1, 0, 0, 0, 2773, 2761, 1, 0, 0, 0, 2773, 2774, 1, 0, 0, 0, 2774, 199, 1, 0, 0, 0, 2775, 2776, 5, 46, 0, 0, 2776, 2779, 3, 170, 85, 0, 2777, 2778, 5, 282, 0, 0, 2778, 2780, 3, 808, 404, 0, 2779, 2777, 1, 0, 0, 0, 2779, 2780, 1, 0, 0, 0, 2780, 2781, 1, 0, 0, 0, 2781, 2782, 5, 255, 0, 0, 2782, 2784, 3, 802, 401, 0, 2783, 2785, 3, 94, 47, 0, 2784, 2783, 1, 0, 0, 0, 2784, 2785, 1, 0, 0, 0, 2785, 201, 1, 0, 0, 0, 2786, 2787, 5, 46, 0, 0, 2787, 2789, 5, 204, 0, 0, 2788, 2790, 3, 288, 144, 0, 2789, 2788, 1, 0, 0, 0, 2789, 2790, 1, 0, 0, 0, 2790, 2791, 1, 0, 0, 0, 2791, 2793, 3, 812, 406, 0, 2792, 2794, 5, 105, 0, 0, 2793, 2792, 1, 0, 0, 0, 2793, 2794, 1, 0, 0, 0, 2794, 2802, 1, 0, 0, 0, 2795, 2796, 5, 323, 0, 0, 2796, 2801, 3, 784, 392, 0, 2797, 2798, 7, 31, 0, 0, 2798, 2801, 3, 58, 29, 0, 2799, 2801, 5, 150, 0, 0, 2800, 2795, 1, 0, 0, 0, 2800, 2797, 1, 0, 0, 0, 2800, 2799, 1, 0, 0, 0, 2801, 2804, 1, 0, 0, 0, 2802, 2800, 1, 0, 0, 0, 2802, 2803, 1, 0, 0, 0, 2803, 203, 1, 0, 0, 0, 2804, 2802, 1, 0, 0, 0, 2805, 2806, 5, 138, 0, 0, 2806, 2807, 5, 204, 0, 0, 2807, 2808, 3, 812, 406, 0, 2808, 2813, 5, 369, 0, 0, 2809, 2810, 5, 94, 0, 0, 2810, 2812, 3, 58, 29, 0, 2811, 2809, 1, 0, 0, 0, 2812, 2815, 1, 0, 0, 0, 2813, 2811, 1, 0, 0, 0, 2813, 2814, 1, 0, 0, 0, 2814, 205, 1, 0, 0, 0, 2815, 2813, 1, 0, 0, 0, 2816, 2817, 5, 138, 0, 0, 2817, 2818, 5, 204, 0, 0, 2818, 2819, 3, 812, 406, 0, 2819, 2852, 7, 6, 0, 0, 2820, 2821, 5, 443, 0, 0, 2821, 2822, 5, 62, 0, 0, 2822, 2823, 3, 646, 323, 0, 2823, 2824, 5, 247, 0, 0, 2824, 2825, 3, 812, 406, 0, 2825, 2853, 1, 0, 0, 0, 2826, 2827, 5, 442, 0, 0, 2827, 2853, 3, 368, 184, 0, 2828, 2829, 5, 296, 0, 0, 2829, 2853, 3, 372, 186, 0, 2830, 2831, 5, 278, 0, 0, 2831, 2832, 7, 32, 0, 0, 2832, 2833, 3, 310, 155, 0, 2833, 2834, 3, 164, 82, 0, 2834, 2853, 1, 0, 0, 0, 2835, 2836, 5, 278, 0, 0, 2836, 2853, 3, 410, 205, 0, 2837, 2838, 5, 211, 0, 0, 2838, 2853, 3, 376, 188, 0, 2839, 2840, 7, 33, 0, 0, 2840, 2853, 3, 646, 323, 0, 2841, 2842, 5, 41, 0, 0, 2842, 2843, 5, 2, 0, 0, 2843, 2844, 3, 646, 323, 0, 2844, 2845, 5, 36, 0, 0, 2845, 2846, 3, 646, 323, 0, 2846, 2847, 5, 3, 0, 0, 2847, 2853, 1, 0, 0, 0, 2848, 2849, 5, 136, 0, 0, 2849, 2853, 3, 388, 194, 0, 2850, 2853, 3, 306, 153, 0, 2851, 2853, 3, 304, 152, 0, 2852, 2820, 1, 0, 0, 0, 2852, 2826, 1, 0, 0, 0, 2852, 2828, 1, 0, 0, 0, 2852, 2830, 1, 0, 0, 0, 2852, 2835, 1, 0, 0, 0, 2852, 2837, 1, 0, 0, 0, 2852, 2839, 1, 0, 0, 0, 2852, 2841, 1, 0, 0, 0, 2852, 2848, 1, 0, 0, 0, 2852, 2850, 1, 0, 0, 0, 2852, 2851, 1, 0, 0, 0, 2853, 207, 1, 0, 0, 0, 2854, 2855, 5, 46, 0, 0, 2855, 2856, 5, 63, 0, 0, 2856, 2857, 5, 174, 0, 0, 2857, 2858, 5, 381, 0, 0, 2858, 2864, 3, 812, 406, 0, 2859, 2861, 3, 210, 105, 0, 2860, 2859, 1, 0, 0, 0, 2861, 2862, 1, 0, 0, 0, 2862, 2860, 1, 0, 0, 0, 2862, 2863, 1, 0, 0, 0, 2863, 2865, 1, 0, 0, 0, 2864, 2860, 1, 0, 0, 0, 2864, 2865, 1, 0, 0, 0, 2865, 2867, 1, 0, 0, 0, 2866, 2868, 3, 214, 107, 0, 2867, 2866, 1, 0, 0, 0, 2867, 2868, 1, 0, 0, 0, 2868, 209, 1, 0, 0, 0, 2869, 2871, 7, 34, 0, 0, 2870, 2872, 3, 310, 155, 0, 2871, 2870, 1, 0, 0, 0, 2871, 2872, 1, 0, 0, 0, 2872, 2876, 1, 0, 0, 0, 2873, 2874, 5, 269, 0, 0, 2874, 2876, 7, 34, 0, 0, 2875, 2869, 1, 0, 0, 0, 2875, 2873, 1, 0, 0, 0, 2876, 211, 1, 0, 0, 0, 2877, 2878, 5, 138, 0, 0, 2878, 2879, 5, 63, 0, 0, 2879, 2880, 5, 174, 0, 0, 2880, 2881, 5, 381, 0, 0, 2881, 2895, 3, 812, 406, 0, 2882, 2884, 3, 210, 105, 0, 2883, 2882, 1, 0, 0, 0, 2884, 2885, 1, 0, 0, 0, 2885, 2883, 1, 0, 0, 0, 2885, 2886, 1, 0, 0, 0, 2886, 2888, 1, 0, 0, 0, 2887, 2883, 1, 0, 0, 0, 2887, 2888, 1, 0, 0, 0, 2888, 2889, 1, 0, 0, 0, 2889, 2896, 3, 216, 108, 0, 2890, 2892, 3, 210, 105, 0, 2891, 2890, 1, 0, 0, 0, 2892, 2893, 1, 0, 0, 0, 2893, 2891, 1, 0, 0, 0, 2893, 2894, 1, 0, 0, 0, 2894, 2896, 1, 0, 0, 0, 2895, 2887, 1, 0, 0, 0, 2895, 2891, 1, 0, 0, 0, 2896, 213, 1, 0, 0, 0, 2897, 2898, 5, 280, 0, 0, 2898, 2899, 5, 2, 0, 0, 2899, 2904, 3, 220, 110, 0, 2900, 2901, 5, 6, 0, 0, 2901, 2903, 3, 220, 110, 0, 2902, 2900, 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, 2908, 5, 3, 0, 0, 2908, 215, 1, 0, 0, 0, 2909, 2910, 5, 280, 0, 0, 2910, 2911, 5, 2, 0, 0, 2911, 2916, 3, 218, 109, 0, 2912, 2913, 5, 6, 0, 0, 2913, 2915, 3, 218, 109, 0, 2914, 2912, 1, 0, 0, 0, 2915, 2918, 1, 0, 0, 0, 2916, 2914, 1, 0, 0, 0, 2916, 2917, 1, 0, 0, 0, 2917, 2919, 1, 0, 0, 0, 2918, 2916, 1, 0, 0, 0, 2919, 2920, 5, 3, 0, 0, 2920, 217, 1, 0, 0, 0, 2921, 2922, 7, 35, 0, 0, 2922, 2923, 3, 220, 110, 0, 2923, 219, 1, 0, 0, 0, 2924, 2925, 3, 818, 409, 0, 2925, 2926, 3, 802, 401, 0, 2926, 221, 1, 0, 0, 0, 2927, 2928, 5, 46, 0, 0, 2928, 2930, 5, 331, 0, 0, 2929, 2931, 3, 288, 144, 0, 2930, 2929, 1, 0, 0, 0, 2930, 2931, 1, 0, 0, 0, 2931, 2932, 1, 0, 0, 0, 2932, 2935, 3, 812, 406, 0, 2933, 2934, 5, 360, 0, 0, 2934, 2936, 3, 802, 401, 0, 2935, 2933, 1, 0, 0, 0, 2935, 2936, 1, 0, 0, 0, 2936, 2938, 1, 0, 0, 0, 2937, 2939, 3, 224, 112, 0, 2938, 2937, 1, 0, 0, 0, 2938, 2939, 1, 0, 0, 0, 2939, 2940, 1, 0, 0, 0, 2940, 2941, 5, 63, 0, 0, 2941, 2942, 5, 174, 0, 0, 2942, 2943, 5, 381, 0, 0, 2943, 2945, 3, 812, 406, 0, 2944, 2946, 3, 214, 107, 0, 2945, 2944, 1, 0, 0, 0, 2945, 2946, 1, 0, 0, 0, 2946, 223, 1, 0, 0, 0, 2947, 2950, 5, 375, 0, 0, 2948, 2951, 3, 802, 401, 0, 2949, 2951, 5, 78, 0, 0, 2950, 2948, 1, 0, 0, 0, 2950, 2949, 1, 0, 0, 0, 2951, 225, 1, 0, 0, 0, 2952, 2953, 5, 138, 0, 0, 2953, 2954, 5, 331, 0, 0, 2954, 2960, 3, 812, 406, 0, 2955, 2961, 3, 216, 108, 0, 2956, 2958, 3, 224, 112, 0, 2957, 2959, 3, 216, 108, 0, 2958, 2957, 1, 0, 0, 0, 2958, 2959, 1, 0, 0, 0, 2959, 2961, 1, 0, 0, 0, 2960, 2955, 1, 0, 0, 0, 2960, 2956, 1, 0, 0, 0, 2961, 227, 1, 0, 0, 0, 2962, 2963, 5, 46, 0, 0, 2963, 2964, 5, 63, 0, 0, 2964, 2966, 5, 92, 0, 0, 2965, 2967, 3, 288, 144, 0, 2966, 2965, 1, 0, 0, 0, 2966, 2967, 1, 0, 0, 0, 2967, 2968, 1, 0, 0, 0, 2968, 2969, 3, 766, 383, 0, 2969, 2971, 5, 2, 0, 0, 2970, 2972, 3, 120, 60, 0, 2971, 2970, 1, 0, 0, 0, 2971, 2972, 1, 0, 0, 0, 2972, 2973, 1, 0, 0, 0, 2973, 2975, 5, 3, 0, 0, 2974, 2976, 3, 158, 79, 0, 2975, 2974, 1, 0, 0, 0, 2975, 2976, 1, 0, 0, 0, 2976, 2977, 1, 0, 0, 0, 2977, 2978, 5, 331, 0, 0, 2978, 2980, 3, 812, 406, 0, 2979, 2981, 3, 214, 107, 0, 2980, 2979, 1, 0, 0, 0, 2980, 2981, 1, 0, 0, 0, 2981, 3002, 1, 0, 0, 0, 2982, 2983, 5, 46, 0, 0, 2983, 2984, 5, 63, 0, 0, 2984, 2986, 5, 92, 0, 0, 2985, 2987, 3, 288, 144, 0, 2986, 2985, 1, 0, 0, 0, 2986, 2987, 1, 0, 0, 0, 2987, 2988, 1, 0, 0, 0, 2988, 2989, 3, 766, 383, 0, 2989, 2990, 5, 285, 0, 0, 2990, 2991, 5, 275, 0, 0, 2991, 2993, 3, 768, 384, 0, 2992, 2994, 3, 118, 59, 0, 2993, 2992, 1, 0, 0, 0, 2993, 2994, 1, 0, 0, 0, 2994, 2995, 1, 0, 0, 0, 2995, 2996, 3, 98, 49, 0, 2996, 2997, 5, 331, 0, 0, 2997, 2999, 3, 812, 406, 0, 2998, 3000, 3, 214, 107, 0, 2999, 2998, 1, 0, 0, 0, 2999, 3000, 1, 0, 0, 0, 3000, 3002, 1, 0, 0, 0, 3001, 2962, 1, 0, 0, 0, 3001, 2982, 1, 0, 0, 0, 3002, 229, 1, 0, 0, 0, 3003, 3004, 5, 444, 0, 0, 3004, 3005, 5, 63, 0, 0, 3005, 3006, 5, 323, 0, 0, 3006, 3016, 3, 784, 392, 0, 3007, 3008, 5, 74, 0, 0, 3008, 3011, 5, 94, 0, 0, 3009, 3011, 5, 59, 0, 0, 3010, 3007, 1, 0, 0, 0, 3010, 3009, 1, 0, 0, 0, 3011, 3012, 1, 0, 0, 0, 3012, 3013, 5, 2, 0, 0, 3013, 3014, 3, 622, 311, 0, 3014, 3015, 5, 3, 0, 0, 3015, 3017, 1, 0, 0, 0, 3016, 3010, 1, 0, 0, 0, 3016, 3017, 1, 0, 0, 0, 3017, 3018, 1, 0, 0, 0, 3018, 3019, 5, 64, 0, 0, 3019, 3020, 5, 331, 0, 0, 3020, 3021, 3, 812, 406, 0, 3021, 3022, 5, 71, 0, 0, 3022, 3024, 3, 812, 406, 0, 3023, 3025, 3, 214, 107, 0, 3024, 3023, 1, 0, 0, 0, 3024, 3025, 1, 0, 0, 0, 3025, 231, 1, 0, 0, 0, 3026, 3027, 5, 46, 0, 0, 3027, 3028, 5, 99, 0, 0, 3028, 3030, 5, 257, 0, 0, 3029, 3031, 3, 288, 144, 0, 3030, 3029, 1, 0, 0, 0, 3030, 3031, 1, 0, 0, 0, 3031, 3032, 1, 0, 0, 0, 3032, 3035, 5, 62, 0, 0, 3033, 3036, 3, 808, 404, 0, 3034, 3036, 5, 99, 0, 0, 3035, 3033, 1, 0, 0, 0, 3035, 3034, 1, 0, 0, 0, 3036, 3037, 1, 0, 0, 0, 3037, 3038, 5, 331, 0, 0, 3038, 3040, 3, 812, 406, 0, 3039, 3041, 3, 214, 107, 0, 3040, 3039, 1, 0, 0, 0, 3040, 3041, 1, 0, 0, 0, 3041, 233, 1, 0, 0, 0, 3042, 3043, 5, 138, 0, 0, 3043, 3044, 5, 99, 0, 0, 3044, 3045, 5, 257, 0, 0, 3045, 3048, 5, 62, 0, 0, 3046, 3049, 3, 808, 404, 0, 3047, 3049, 5, 99, 0, 0, 3048, 3046, 1, 0, 0, 0, 3048, 3047, 1, 0, 0, 0, 3049, 3050, 1, 0, 0, 0, 3050, 3051, 5, 331, 0, 0, 3051, 3052, 3, 812, 406, 0, 3052, 3053, 3, 216, 108, 0, 3053, 235, 1, 0, 0, 0, 3054, 3055, 5, 46, 0, 0, 3055, 3056, 5, 445, 0, 0, 3056, 3057, 3, 812, 406, 0, 3057, 3058, 5, 80, 0, 0, 3058, 3065, 3, 774, 387, 0, 3059, 3063, 5, 36, 0, 0, 3060, 3064, 5, 541, 0, 0, 3061, 3064, 5, 542, 0, 0, 3062, 3064, 3, 820, 410, 0, 3063, 3060, 1, 0, 0, 0, 3063, 3061, 1, 0, 0, 0, 3063, 3062, 1, 0, 0, 0, 3064, 3066, 1, 0, 0, 0, 3065, 3059, 1, 0, 0, 0, 3065, 3066, 1, 0, 0, 0, 3066, 3069, 1, 0, 0, 0, 3067, 3068, 5, 62, 0, 0, 3068, 3070, 7, 36, 0, 0, 3069, 3067, 1, 0, 0, 0, 3069, 3070, 1, 0, 0, 0, 3070, 3073, 1, 0, 0, 0, 3071, 3072, 5, 94, 0, 0, 3072, 3074, 3, 810, 405, 0, 3073, 3071, 1, 0, 0, 0, 3073, 3074, 1, 0, 0, 0, 3074, 3076, 1, 0, 0, 0, 3075, 3077, 3, 244, 122, 0, 3076, 3075, 1, 0, 0, 0, 3076, 3077, 1, 0, 0, 0, 3077, 3079, 1, 0, 0, 0, 3078, 3080, 3, 246, 123, 0, 3079, 3078, 1, 0, 0, 0, 3079, 3080, 1, 0, 0, 0, 3080, 237, 1, 0, 0, 0, 3081, 3082, 5, 138, 0, 0, 3082, 3083, 5, 445, 0, 0, 3083, 3084, 3, 812, 406, 0, 3084, 3085, 5, 80, 0, 0, 3085, 3088, 3, 774, 387, 0, 3086, 3087, 5, 94, 0, 0, 3087, 3089, 3, 810, 405, 0, 3088, 3086, 1, 0, 0, 0, 3088, 3089, 1, 0, 0, 0, 3089, 3091, 1, 0, 0, 0, 3090, 3092, 3, 244, 122, 0, 3091, 3090, 1, 0, 0, 0, 3091, 3092, 1, 0, 0, 0, 3092, 3094, 1, 0, 0, 0, 3093, 3095, 3, 246, 123, 0, 3094, 3093, 1, 0, 0, 0, 3094, 3095, 1, 0, 0, 0, 3095, 239, 1, 0, 0, 0, 3096, 3097, 5, 138, 0, 0, 3097, 3098, 5, 296, 0, 0, 3098, 3100, 3, 790, 395, 0, 3099, 3101, 3, 362, 181, 0, 3100, 3099, 1, 0, 0, 0, 3100, 3101, 1, 0, 0, 0, 3101, 3128, 1, 0, 0, 0, 3102, 3106, 3, 242, 121, 0, 3103, 3105, 3, 242, 121, 0, 3104, 3103, 1, 0, 0, 0, 3105, 3108, 1, 0, 0, 0, 3106, 3104, 1, 0, 0, 0, 3106, 3107, 1, 0, 0, 0, 3107, 3110, 1, 0, 0, 0, 3108, 3106, 1, 0, 0, 0, 3109, 3111, 5, 315, 0, 0, 3110, 3109, 1, 0, 0, 0, 3110, 3111, 1, 0, 0, 0, 3111, 3129, 1, 0, 0, 0, 3112, 3113, 5, 309, 0, 0, 3113, 3114, 5, 94, 0, 0, 3114, 3129, 3, 792, 396, 0, 3115, 3116, 5, 282, 0, 0, 3116, 3117, 5, 94, 0, 0, 3117, 3129, 3, 808, 404, 0, 3118, 3119, 5, 333, 0, 0, 3119, 3120, 5, 323, 0, 0, 3120, 3129, 3, 32, 16, 0, 3121, 3123, 5, 269, 0, 0, 3122, 3121, 1, 0, 0, 0, 3122, 3123, 1, 0, 0, 0, 3123, 3124, 1, 0, 0, 0, 3124, 3125, 5, 462, 0, 0, 3125, 3126, 5, 80, 0, 0, 3126, 3127, 5, 204, 0, 0, 3127, 3129, 3, 812, 406, 0, 3128, 3102, 1, 0, 0, 0, 3128, 3112, 1, 0, 0, 0, 3128, 3115, 1, 0, 0, 0, 3128, 3118, 1, 0, 0, 0, 3128, 3122, 1, 0, 0, 0, 3129, 241, 1, 0, 0, 0, 3130, 3132, 5, 205, 0, 0, 3131, 3130, 1, 0, 0, 0, 3131, 3132, 1, 0, 0, 0, 3132, 3133, 1, 0, 0, 0, 3133, 3134, 5, 327, 0, 0, 3134, 3141, 5, 243, 0, 0, 3135, 3137, 5, 205, 0, 0, 3136, 3135, 1, 0, 0, 0, 3136, 3137, 1, 0, 0, 0, 3137, 3138, 1, 0, 0, 0, 3138, 3139, 5, 327, 0, 0, 3139, 3141, 5, 181, 0, 0, 3140, 3131, 1, 0, 0, 0, 3140, 3136, 1, 0, 0, 0, 3141, 3160, 1, 0, 0, 0, 3142, 3143, 5, 333, 0, 0, 3143, 3144, 3, 812, 406, 0, 3144, 3147, 7, 37, 0, 0, 3145, 3148, 3, 812, 406, 0, 3146, 3148, 5, 53, 0, 0, 3147, 3145, 1, 0, 0, 0, 3147, 3146, 1, 0, 0, 0, 3148, 3160, 1, 0, 0, 0, 3149, 3150, 5, 333, 0, 0, 3150, 3151, 3, 812, 406, 0, 3151, 3152, 5, 64, 0, 0, 3152, 3153, 5, 434, 0, 0, 3153, 3160, 1, 0, 0, 0, 3154, 3157, 5, 313, 0, 0, 3155, 3158, 3, 812, 406, 0, 3156, 3158, 5, 30, 0, 0, 3157, 3155, 1, 0, 0, 0, 3157, 3156, 1, 0, 0, 0, 3158, 3160, 1, 0, 0, 0, 3159, 3140, 1, 0, 0, 0, 3159, 3142, 1, 0, 0, 0, 3159, 3149, 1, 0, 0, 0, 3159, 3154, 1, 0, 0, 0, 3160, 243, 1, 0, 0, 0, 3161, 3162, 5, 100, 0, 0, 3162, 3163, 5, 2, 0, 0, 3163, 3164, 3, 668, 334, 0, 3164, 3165, 5, 3, 0, 0, 3165, 245, 1, 0, 0, 0, 3166, 3167, 5, 105, 0, 0, 3167, 3168, 5, 42, 0, 0, 3168, 3169, 5, 2, 0, 0, 3169, 3170, 3, 668, 334, 0, 3170, 3171, 5, 3, 0, 0, 3171, 247, 1, 0, 0, 0, 3172, 3173, 5, 46, 0, 0, 3173, 3174, 5, 131, 0, 0, 3174, 3175, 5, 446, 0, 0, 3175, 3176, 3, 812, 406, 0, 3176, 3177, 5, 360, 0, 0, 3177, 3178, 7, 38, 0, 0, 3178, 3179, 5, 215, 0, 0, 3179, 3180, 3, 310, 155, 0, 3180, 249, 1, 0, 0, 0, 3181, 3183, 5, 46, 0, 0, 3182, 3184, 3, 360, 180, 0, 3183, 3182, 1, 0, 0, 0, 3183, 3184, 1, 0, 0, 0, 3184, 3185, 1, 0, 0, 0, 3185, 3186, 5, 357, 0, 0, 3186, 3187, 3, 812, 406, 0, 3187, 3188, 3, 252, 126, 0, 3188, 3189, 3, 254, 127, 0, 3189, 3190, 5, 80, 0, 0, 3190, 3202, 3, 768, 384, 0, 3191, 3198, 5, 447, 0, 0, 3192, 3193, 7, 39, 0, 0, 3193, 3195, 7, 40, 0, 0, 3194, 3196, 5, 36, 0, 0, 3195, 3194, 1, 0, 0, 0, 3195, 3196, 1, 0, 0, 0, 3196, 3197, 1, 0, 0, 0, 3197, 3199, 3, 812, 406, 0, 3198, 3192, 1, 0, 0, 0, 3199, 3200, 1, 0, 0, 0, 3200, 3198, 1, 0, 0, 0, 3200, 3201, 1, 0, 0, 0, 3201, 3203, 1, 0, 0, 0, 3202, 3191, 1, 0, 0, 0, 3202, 3203, 1, 0, 0, 0, 3203, 3209, 1, 0, 0, 0, 3204, 3206, 5, 62, 0, 0, 3205, 3207, 5, 192, 0, 0, 3206, 3205, 1, 0, 0, 0, 3206, 3207, 1, 0, 0, 0, 3207, 3208, 1, 0, 0, 0, 3208, 3210, 7, 41, 0, 0, 3209, 3204, 1, 0, 0, 0, 3209, 3210, 1, 0, 0, 0, 3210, 3212, 1, 0, 0, 0, 3211, 3213, 3, 258, 129, 0, 3212, 3211, 1, 0, 0, 0, 3212, 3213, 1, 0, 0, 0, 3213, 3214, 1, 0, 0, 0, 3214, 3215, 5, 202, 0, 0, 3215, 3216, 3, 260, 130, 0, 3216, 3217, 5, 2, 0, 0, 3217, 3218, 3, 262, 131, 0, 3218, 3219, 5, 3, 0, 0, 3219, 3260, 1, 0, 0, 0, 3220, 3222, 5, 46, 0, 0, 3221, 3223, 3, 360, 180, 0, 3222, 3221, 1, 0, 0, 0, 3222, 3223, 1, 0, 0, 0, 3223, 3225, 1, 0, 0, 0, 3224, 3226, 5, 45, 0, 0, 3225, 3224, 1, 0, 0, 0, 3225, 3226, 1, 0, 0, 0, 3226, 3227, 1, 0, 0, 0, 3227, 3228, 5, 357, 0, 0, 3228, 3229, 3, 812, 406, 0, 3229, 3230, 3, 252, 126, 0, 3230, 3231, 3, 254, 127, 0, 3231, 3232, 5, 80, 0, 0, 3232, 3235, 3, 768, 384, 0, 3233, 3234, 5, 64, 0, 0, 3234, 3236, 3, 774, 387, 0, 3235, 3233, 1, 0, 0, 0, 3235, 3236, 1, 0, 0, 0, 3236, 3240, 1, 0, 0, 0, 3237, 3239, 3, 266, 133, 0, 3238, 3237, 1, 0, 0, 0, 3239, 3242, 1, 0, 0, 0, 3240, 3238, 1, 0, 0, 0, 3240, 3241, 1, 0, 0, 0, 3241, 3248, 1, 0, 0, 0, 3242, 3240, 1, 0, 0, 0, 3243, 3245, 5, 62, 0, 0, 3244, 3246, 5, 192, 0, 0, 3245, 3244, 1, 0, 0, 0, 3245, 3246, 1, 0, 0, 0, 3246, 3247, 1, 0, 0, 0, 3247, 3249, 7, 41, 0, 0, 3248, 3243, 1, 0, 0, 0, 3248, 3249, 1, 0, 0, 0, 3249, 3251, 1, 0, 0, 0, 3250, 3252, 3, 258, 129, 0, 3251, 3250, 1, 0, 0, 0, 3251, 3252, 1, 0, 0, 0, 3252, 3253, 1, 0, 0, 0, 3253, 3254, 5, 202, 0, 0, 3254, 3255, 3, 260, 130, 0, 3255, 3256, 5, 2, 0, 0, 3256, 3257, 3, 262, 131, 0, 3257, 3258, 5, 3, 0, 0, 3258, 3260, 1, 0, 0, 0, 3259, 3181, 1, 0, 0, 0, 3259, 3220, 1, 0, 0, 0, 3260, 251, 1, 0, 0, 0, 3261, 3266, 5, 145, 0, 0, 3262, 3266, 5, 135, 0, 0, 3263, 3264, 5, 242, 0, 0, 3264, 3266, 5, 275, 0, 0, 3265, 3261, 1, 0, 0, 0, 3265, 3262, 1, 0, 0, 0, 3265, 3263, 1, 0, 0, 0, 3266, 253, 1, 0, 0, 0, 3267, 3272, 3, 256, 128, 0, 3268, 3269, 5, 82, 0, 0, 3269, 3271, 3, 256, 128, 0, 3270, 3268, 1, 0, 0, 0, 3271, 3274, 1, 0, 0, 0, 3272, 3270, 1, 0, 0, 0, 3272, 3273, 1, 0, 0, 0, 3273, 255, 1, 0, 0, 0, 3274, 3272, 1, 0, 0, 0, 3275, 3284, 5, 241, 0, 0, 3276, 3284, 5, 182, 0, 0, 3277, 3280, 5, 369, 0, 0, 3278, 3279, 5, 275, 0, 0, 3279, 3281, 3, 142, 71, 0, 3280, 3278, 1, 0, 0, 0, 3280, 3281, 1, 0, 0, 0, 3281, 3284, 1, 0, 0, 0, 3282, 3284, 5, 358, 0, 0, 3283, 3275, 1, 0, 0, 0, 3283, 3276, 1, 0, 0, 0, 3283, 3277, 1, 0, 0, 0, 3283, 3282, 1, 0, 0, 0, 3284, 257, 1, 0, 0, 0, 3285, 3286, 5, 102, 0, 0, 3286, 3287, 5, 2, 0, 0, 3287, 3288, 3, 668, 334, 0, 3288, 3289, 5, 3, 0, 0, 3289, 259, 1, 0, 0, 0, 3290, 3291, 5, 211, 0, 0, 3291, 3295, 3, 800, 400, 0, 3292, 3293, 5, 296, 0, 0, 3293, 3295, 3, 790, 395, 0, 3294, 3290, 1, 0, 0, 0, 3294, 3292, 1, 0, 0, 0, 3295, 261, 1, 0, 0, 0, 3296, 3299, 3, 264, 132, 0, 3297, 3299, 1, 0, 0, 0, 3298, 3296, 1, 0, 0, 0, 3298, 3297, 1, 0, 0, 0, 3299, 3304, 1, 0, 0, 0, 3300, 3301, 5, 6, 0, 0, 3301, 3303, 3, 264, 132, 0, 3302, 3300, 1, 0, 0, 0, 3303, 3306, 1, 0, 0, 0, 3304, 3302, 1, 0, 0, 0, 3304, 3305, 1, 0, 0, 0, 3305, 263, 1, 0, 0, 0, 3306, 3304, 1, 0, 0, 0, 3307, 3312, 5, 574, 0, 0, 3308, 3312, 5, 576, 0, 0, 3309, 3312, 3, 802, 401, 0, 3310, 3312, 3, 818, 409, 0, 3311, 3307, 1, 0, 0, 0, 3311, 3308, 1, 0, 0, 0, 3311, 3309, 1, 0, 0, 0, 3311, 3310, 1, 0, 0, 0, 3312, 265, 1, 0, 0, 0, 3313, 3315, 5, 77, 0, 0, 3314, 3313, 1, 0, 0, 0, 3314, 3315, 1, 0, 0, 0, 3315, 3316, 1, 0, 0, 0, 3316, 3324, 5, 54, 0, 0, 3317, 3318, 5, 69, 0, 0, 3318, 3324, 7, 9, 0, 0, 3319, 3320, 5, 77, 0, 0, 3320, 3324, 5, 371, 0, 0, 3321, 3322, 5, 269, 0, 0, 3322, 3324, 5, 228, 0, 0, 3323, 3314, 1, 0, 0, 0, 3323, 3317, 1, 0, 0, 0, 3323, 3319, 1, 0, 0, 0, 3323, 3321, 1, 0, 0, 0, 3324, 267, 1, 0, 0, 0, 3325, 3326, 5, 46, 0, 0, 3326, 3327, 5, 198, 0, 0, 3327, 3328, 5, 357, 0, 0, 3328, 3329, 3, 812, 406, 0, 3329, 3330, 5, 80, 0, 0, 3330, 3340, 3, 818, 409, 0, 3331, 3332, 5, 102, 0, 0, 3332, 3337, 3, 270, 135, 0, 3333, 3334, 5, 33, 0, 0, 3334, 3336, 3, 270, 135, 0, 3335, 3333, 1, 0, 0, 0, 3336, 3339, 1, 0, 0, 0, 3337, 3335, 1, 0, 0, 0, 3337, 3338, 1, 0, 0, 0, 3338, 3341, 1, 0, 0, 0, 3339, 3337, 1, 0, 0, 0, 3340, 3331, 1, 0, 0, 0, 3340, 3341, 1, 0, 0, 0, 3341, 3342, 1, 0, 0, 0, 3342, 3343, 5, 202, 0, 0, 3343, 3344, 3, 260, 130, 0, 3344, 3345, 5, 2, 0, 0, 3345, 3346, 5, 3, 0, 0, 3346, 269, 1, 0, 0, 0, 3347, 3348, 3, 812, 406, 0, 3348, 3349, 5, 68, 0, 0, 3349, 3350, 5, 2, 0, 0, 3350, 3354, 3, 802, 401, 0, 3351, 3353, 3, 456, 228, 0, 3352, 3351, 1, 0, 0, 0, 3353, 3356, 1, 0, 0, 0, 3354, 3352, 1, 0, 0, 0, 3354, 3355, 1, 0, 0, 0, 3355, 3357, 1, 0, 0, 0, 3356, 3354, 1, 0, 0, 0, 3357, 3358, 5, 3, 0, 0, 3358, 271, 1, 0, 0, 0, 3359, 3360, 5, 138, 0, 0, 3360, 3361, 5, 198, 0, 0, 3361, 3362, 5, 357, 0, 0, 3362, 3368, 3, 812, 406, 0, 3363, 3365, 5, 193, 0, 0, 3364, 3366, 7, 14, 0, 0, 3365, 3364, 1, 0, 0, 0, 3365, 3366, 1, 0, 0, 0, 3366, 3369, 1, 0, 0, 0, 3367, 3369, 5, 186, 0, 0, 3368, 3363, 1, 0, 0, 0, 3368, 3367, 1, 0, 0, 0, 3369, 273, 1, 0, 0, 0, 3370, 3371, 5, 46, 0, 0, 3371, 3372, 5, 140, 0, 0, 3372, 3373, 3, 310, 155, 0, 3373, 3374, 5, 42, 0, 0, 3374, 3375, 5, 2, 0, 0, 3375, 3376, 3, 668, 334, 0, 3376, 3380, 5, 3, 0, 0, 3377, 3379, 3, 266, 133, 0, 3378, 3377, 1, 0, 0, 0, 3379, 3382, 1, 0, 0, 0, 3380, 3378, 1, 0, 0, 0, 3380, 3381, 1, 0, 0, 0, 3381, 275, 1, 0, 0, 0, 3382, 3380, 1, 0, 0, 0, 3383, 3385, 5, 46, 0, 0, 3384, 3386, 3, 360, 180, 0, 3385, 3384, 1, 0, 0, 0, 3385, 3386, 1, 0, 0, 0, 3386, 3387, 1, 0, 0, 0, 3387, 3388, 5, 136, 0, 0, 3388, 3403, 3, 800, 400, 0, 3389, 3390, 3, 386, 193, 0, 3390, 3391, 3, 278, 139, 0, 3391, 3404, 1, 0, 0, 0, 3392, 3393, 5, 2, 0, 0, 3393, 3398, 3, 284, 142, 0, 3394, 3395, 5, 6, 0, 0, 3395, 3397, 3, 284, 142, 0, 3396, 3394, 1, 0, 0, 0, 3397, 3400, 1, 0, 0, 0, 3398, 3396, 1, 0, 0, 0, 3398, 3399, 1, 0, 0, 0, 3399, 3401, 1, 0, 0, 0, 3400, 3398, 1, 0, 0, 0, 3401, 3402, 5, 3, 0, 0, 3402, 3404, 1, 0, 0, 0, 3403, 3389, 1, 0, 0, 0, 3403, 3392, 1, 0, 0, 0, 3404, 3462, 1, 0, 0, 0, 3405, 3406, 5, 46, 0, 0, 3406, 3407, 5, 278, 0, 0, 3407, 3408, 3, 408, 204, 0, 3408, 3409, 3, 278, 139, 0, 3409, 3462, 1, 0, 0, 0, 3410, 3411, 5, 46, 0, 0, 3411, 3412, 5, 360, 0, 0, 3412, 3413, 3, 310, 155, 0, 3413, 3431, 5, 36, 0, 0, 3414, 3416, 5, 2, 0, 0, 3415, 3417, 3, 636, 318, 0, 3416, 3415, 1, 0, 0, 0, 3416, 3417, 1, 0, 0, 0, 3417, 3418, 1, 0, 0, 0, 3418, 3432, 5, 3, 0, 0, 3419, 3420, 5, 196, 0, 0, 3420, 3428, 5, 2, 0, 0, 3421, 3425, 3, 802, 401, 0, 3422, 3424, 3, 456, 228, 0, 3423, 3422, 1, 0, 0, 0, 3424, 3427, 1, 0, 0, 0, 3425, 3423, 1, 0, 0, 0, 3425, 3426, 1, 0, 0, 0, 3426, 3429, 1, 0, 0, 0, 3427, 3425, 1, 0, 0, 0, 3428, 3421, 1, 0, 0, 0, 3428, 3429, 1, 0, 0, 0, 3429, 3430, 1, 0, 0, 0, 3430, 3432, 5, 3, 0, 0, 3431, 3414, 1, 0, 0, 0, 3431, 3419, 1, 0, 0, 0, 3432, 3462, 1, 0, 0, 0, 3433, 3434, 5, 46, 0, 0, 3434, 3435, 5, 360, 0, 0, 3435, 3441, 3, 310, 155, 0, 3436, 3437, 5, 36, 0, 0, 3437, 3439, 5, 299, 0, 0, 3438, 3436, 1, 0, 0, 0, 3438, 3439, 1, 0, 0, 0, 3439, 3440, 1, 0, 0, 0, 3440, 3442, 3, 278, 139, 0, 3441, 3438, 1, 0, 0, 0, 3441, 3442, 1, 0, 0, 0, 3442, 3462, 1, 0, 0, 0, 3443, 3444, 5, 46, 0, 0, 3444, 3445, 5, 355, 0, 0, 3445, 3446, 5, 325, 0, 0, 3446, 3447, 7, 42, 0, 0, 3447, 3448, 3, 310, 155, 0, 3448, 3449, 3, 278, 139, 0, 3449, 3462, 1, 0, 0, 0, 3450, 3451, 5, 46, 0, 0, 3451, 3453, 5, 108, 0, 0, 3452, 3454, 3, 288, 144, 0, 3453, 3452, 1, 0, 0, 0, 3453, 3454, 1, 0, 0, 0, 3454, 3455, 1, 0, 0, 0, 3455, 3459, 3, 310, 155, 0, 3456, 3460, 3, 278, 139, 0, 3457, 3458, 5, 64, 0, 0, 3458, 3460, 3, 310, 155, 0, 3459, 3456, 1, 0, 0, 0, 3459, 3457, 1, 0, 0, 0, 3460, 3462, 1, 0, 0, 0, 3461, 3383, 1, 0, 0, 0, 3461, 3405, 1, 0, 0, 0, 3461, 3410, 1, 0, 0, 0, 3461, 3433, 1, 0, 0, 0, 3461, 3443, 1, 0, 0, 0, 3461, 3450, 1, 0, 0, 0, 3462, 277, 1, 0, 0, 0, 3463, 3464, 5, 2, 0, 0, 3464, 3469, 3, 280, 140, 0, 3465, 3466, 5, 6, 0, 0, 3466, 3468, 3, 280, 140, 0, 3467, 3465, 1, 0, 0, 0, 3468, 3471, 1, 0, 0, 0, 3469, 3467, 1, 0, 0, 0, 3469, 3470, 1, 0, 0, 0, 3470, 3472, 1, 0, 0, 0, 3471, 3469, 1, 0, 0, 0, 3472, 3473, 5, 3, 0, 0, 3473, 279, 1, 0, 0, 0, 3474, 3477, 3, 818, 409, 0, 3475, 3476, 5, 10, 0, 0, 3476, 3478, 3, 282, 141, 0, 3477, 3475, 1, 0, 0, 0, 3477, 3478, 1, 0, 0, 0, 3478, 281, 1, 0, 0, 0, 3479, 3486, 3, 382, 191, 0, 3480, 3486, 3, 828, 414, 0, 3481, 3486, 3, 720, 360, 0, 3482, 3486, 3, 196, 98, 0, 3483, 3486, 3, 802, 401, 0, 3484, 3486, 5, 407, 0, 0, 3485, 3479, 1, 0, 0, 0, 3485, 3480, 1, 0, 0, 0, 3485, 3481, 1, 0, 0, 0, 3485, 3482, 1, 0, 0, 0, 3485, 3483, 1, 0, 0, 0, 3485, 3484, 1, 0, 0, 0, 3486, 283, 1, 0, 0, 0, 3487, 3488, 3, 820, 410, 0, 3488, 3489, 5, 10, 0, 0, 3489, 3490, 3, 282, 141, 0, 3490, 285, 1, 0, 0, 0, 3491, 3492, 5, 138, 0, 0, 3492, 3493, 5, 360, 0, 0, 3493, 3494, 3, 310, 155, 0, 3494, 3495, 5, 133, 0, 0, 3495, 3497, 5, 450, 0, 0, 3496, 3498, 3, 288, 144, 0, 3497, 3496, 1, 0, 0, 0, 3497, 3498, 1, 0, 0, 0, 3498, 3499, 1, 0, 0, 0, 3499, 3502, 3, 802, 401, 0, 3500, 3501, 7, 43, 0, 0, 3501, 3503, 3, 802, 401, 0, 3502, 3500, 1, 0, 0, 0, 3502, 3503, 1, 0, 0, 0, 3503, 3514, 1, 0, 0, 0, 3504, 3505, 5, 138, 0, 0, 3505, 3506, 5, 360, 0, 0, 3506, 3507, 3, 310, 155, 0, 3507, 3508, 5, 309, 0, 0, 3508, 3509, 5, 450, 0, 0, 3509, 3510, 3, 802, 401, 0, 3510, 3511, 5, 94, 0, 0, 3511, 3512, 3, 802, 401, 0, 3512, 3514, 1, 0, 0, 0, 3513, 3491, 1, 0, 0, 0, 3513, 3504, 1, 0, 0, 0, 3514, 287, 1, 0, 0, 0, 3515, 3516, 5, 220, 0, 0, 3516, 3517, 5, 77, 0, 0, 3517, 3518, 5, 396, 0, 0, 3518, 289, 1, 0, 0, 0, 3519, 3520, 5, 46, 0, 0, 3520, 3521, 5, 278, 0, 0, 3521, 3522, 5, 156, 0, 0, 3522, 3524, 3, 310, 155, 0, 3523, 3525, 5, 53, 0, 0, 3524, 3523, 1, 0, 0, 0, 3524, 3525, 1, 0, 0, 0, 3525, 3526, 1, 0, 0, 0, 3526, 3527, 5, 62, 0, 0, 3527, 3528, 5, 360, 0, 0, 3528, 3529, 3, 646, 323, 0, 3529, 3532, 3, 164, 82, 0, 3530, 3531, 5, 206, 0, 0, 3531, 3533, 3, 310, 155, 0, 3532, 3530, 1, 0, 0, 0, 3532, 3533, 1, 0, 0, 0, 3533, 3534, 1, 0, 0, 0, 3534, 3535, 5, 36, 0, 0, 3535, 3540, 3, 292, 146, 0, 3536, 3537, 5, 6, 0, 0, 3537, 3539, 3, 292, 146, 0, 3538, 3536, 1, 0, 0, 0, 3539, 3542, 1, 0, 0, 0, 3540, 3538, 1, 0, 0, 0, 3540, 3541, 1, 0, 0, 0, 3541, 291, 1, 0, 0, 0, 3542, 3540, 1, 0, 0, 0, 3543, 3544, 5, 278, 0, 0, 3544, 3545, 5, 574, 0, 0, 3545, 3547, 3, 408, 204, 0, 3546, 3548, 3, 406, 203, 0, 3547, 3546, 1, 0, 0, 0, 3547, 3548, 1, 0, 0, 0, 3548, 3556, 1, 0, 0, 0, 3549, 3554, 5, 62, 0, 0, 3550, 3555, 5, 325, 0, 0, 3551, 3552, 5, 83, 0, 0, 3552, 3553, 5, 147, 0, 0, 3553, 3555, 3, 310, 155, 0, 3554, 3550, 1, 0, 0, 0, 3554, 3551, 1, 0, 0, 0, 3555, 3557, 1, 0, 0, 0, 3556, 3549, 1, 0, 0, 0, 3556, 3557, 1, 0, 0, 0, 3557, 3559, 1, 0, 0, 0, 3558, 3560, 5, 302, 0, 0, 3559, 3558, 1, 0, 0, 0, 3559, 3560, 1, 0, 0, 0, 3560, 3570, 1, 0, 0, 0, 3561, 3562, 5, 211, 0, 0, 3562, 3564, 5, 574, 0, 0, 3563, 3565, 3, 522, 261, 0, 3564, 3563, 1, 0, 0, 0, 3564, 3565, 1, 0, 0, 0, 3565, 3566, 1, 0, 0, 0, 3566, 3570, 3, 376, 188, 0, 3567, 3568, 5, 345, 0, 0, 3568, 3570, 3, 646, 323, 0, 3569, 3543, 1, 0, 0, 0, 3569, 3561, 1, 0, 0, 0, 3569, 3567, 1, 0, 0, 0, 3570, 293, 1, 0, 0, 0, 3571, 3572, 5, 46, 0, 0, 3572, 3573, 5, 278, 0, 0, 3573, 3574, 5, 206, 0, 0, 3574, 3575, 3, 310, 155, 0, 3575, 3576, 3, 164, 82, 0, 3576, 295, 1, 0, 0, 0, 3577, 3578, 5, 138, 0, 0, 3578, 3579, 5, 278, 0, 0, 3579, 3580, 5, 206, 0, 0, 3580, 3581, 3, 310, 155, 0, 3581, 3600, 3, 164, 82, 0, 3582, 3583, 5, 133, 0, 0, 3583, 3588, 3, 292, 146, 0, 3584, 3585, 5, 6, 0, 0, 3585, 3587, 3, 292, 146, 0, 3586, 3584, 1, 0, 0, 0, 3587, 3590, 1, 0, 0, 0, 3588, 3586, 1, 0, 0, 0, 3588, 3589, 1, 0, 0, 0, 3589, 3601, 1, 0, 0, 0, 3590, 3588, 1, 0, 0, 0, 3591, 3592, 5, 191, 0, 0, 3592, 3597, 3, 298, 149, 0, 3593, 3594, 5, 6, 0, 0, 3594, 3596, 3, 298, 149, 0, 3595, 3593, 1, 0, 0, 0, 3596, 3599, 1, 0, 0, 0, 3597, 3595, 1, 0, 0, 0, 3597, 3598, 1, 0, 0, 0, 3598, 3601, 1, 0, 0, 0, 3599, 3597, 1, 0, 0, 0, 3600, 3582, 1, 0, 0, 0, 3600, 3591, 1, 0, 0, 0, 3601, 297, 1, 0, 0, 0, 3602, 3603, 7, 44, 0, 0, 3603, 3604, 5, 574, 0, 0, 3604, 3605, 3, 522, 261, 0, 3605, 299, 1, 0, 0, 0, 3606, 3607, 5, 301, 0, 0, 3607, 3608, 5, 281, 0, 0, 3608, 3609, 5, 147, 0, 0, 3609, 3610, 3, 810, 405, 0, 3610, 3611, 5, 94, 0, 0, 3611, 3612, 3, 808, 404, 0, 3612, 301, 1, 0, 0, 0, 3613, 3636, 5, 191, 0, 0, 3614, 3637, 5, 328, 0, 0, 3615, 3637, 5, 226, 0, 0, 3616, 3637, 5, 108, 0, 0, 3617, 3637, 5, 168, 0, 0, 3618, 3637, 5, 342, 0, 0, 3619, 3637, 5, 452, 0, 0, 3620, 3637, 5, 331, 0, 0, 3621, 3622, 5, 131, 0, 0, 3622, 3637, 5, 446, 0, 0, 3623, 3624, 5, 198, 0, 0, 3624, 3637, 5, 357, 0, 0, 3625, 3637, 5, 204, 0, 0, 3626, 3628, 5, 295, 0, 0, 3627, 3626, 1, 0, 0, 0, 3627, 3628, 1, 0, 0, 0, 3628, 3629, 1, 0, 0, 0, 3629, 3637, 5, 247, 0, 0, 3630, 3631, 5, 63, 0, 0, 3631, 3632, 5, 174, 0, 0, 3632, 3637, 5, 381, 0, 0, 3633, 3634, 5, 355, 0, 0, 3634, 3635, 5, 325, 0, 0, 3635, 3637, 7, 42, 0, 0, 3636, 3614, 1, 0, 0, 0, 3636, 3615, 1, 0, 0, 0, 3636, 3616, 1, 0, 0, 0, 3636, 3617, 1, 0, 0, 0, 3636, 3618, 1, 0, 0, 0, 3636, 3619, 1, 0, 0, 0, 3636, 3620, 1, 0, 0, 0, 3636, 3621, 1, 0, 0, 0, 3636, 3623, 1, 0, 0, 0, 3636, 3625, 1, 0, 0, 0, 3636, 3627, 1, 0, 0, 0, 3636, 3630, 1, 0, 0, 0, 3636, 3633, 1, 0, 0, 0, 3637, 3639, 1, 0, 0, 0, 3638, 3640, 3, 416, 208, 0, 3639, 3638, 1, 0, 0, 0, 3639, 3640, 1, 0, 0, 0, 3640, 3641, 1, 0, 0, 0, 3641, 3643, 3, 778, 389, 0, 3642, 3644, 3, 88, 44, 0, 3643, 3642, 1, 0, 0, 0, 3643, 3644, 1, 0, 0, 0, 3644, 3821, 1, 0, 0, 0, 3645, 3647, 5, 191, 0, 0, 3646, 3648, 5, 259, 0, 0, 3647, 3646, 1, 0, 0, 0, 3647, 3648, 1, 0, 0, 0, 3648, 3649, 1, 0, 0, 0, 3649, 3651, 5, 376, 0, 0, 3650, 3652, 3, 416, 208, 0, 3651, 3650, 1, 0, 0, 0, 3651, 3652, 1, 0, 0, 0, 3652, 3653, 1, 0, 0, 0, 3653, 3658, 3, 772, 386, 0, 3654, 3655, 5, 6, 0, 0, 3655, 3657, 3, 772, 386, 0, 3656, 3654, 1, 0, 0, 0, 3657, 3660, 1, 0, 0, 0, 3658, 3656, 1, 0, 0, 0, 3658, 3659, 1, 0, 0, 0, 3659, 3662, 1, 0, 0, 0, 3660, 3658, 1, 0, 0, 0, 3661, 3663, 3, 88, 44, 0, 3662, 3661, 1, 0, 0, 0, 3662, 3663, 1, 0, 0, 0, 3663, 3821, 1, 0, 0, 0, 3664, 3666, 5, 191, 0, 0, 3665, 3667, 5, 63, 0, 0, 3666, 3665, 1, 0, 0, 0, 3666, 3667, 1, 0, 0, 0, 3667, 3668, 1, 0, 0, 0, 3668, 3670, 5, 92, 0, 0, 3669, 3671, 3, 416, 208, 0, 3670, 3669, 1, 0, 0, 0, 3670, 3671, 1, 0, 0, 0, 3671, 3672, 1, 0, 0, 0, 3672, 3674, 3, 756, 378, 0, 3673, 3675, 3, 88, 44, 0, 3674, 3673, 1, 0, 0, 0, 3674, 3675, 1, 0, 0, 0, 3675, 3821, 1, 0, 0, 0, 3676, 3677, 5, 191, 0, 0, 3677, 3679, 5, 323, 0, 0, 3678, 3680, 3, 416, 208, 0, 3679, 3678, 1, 0, 0, 0, 3679, 3680, 1, 0, 0, 0, 3680, 3681, 1, 0, 0, 0, 3681, 3683, 3, 758, 379, 0, 3682, 3684, 3, 88, 44, 0, 3683, 3682, 1, 0, 0, 0, 3683, 3684, 1, 0, 0, 0, 3684, 3821, 1, 0, 0, 0, 3685, 3686, 5, 191, 0, 0, 3686, 3688, 7, 45, 0, 0, 3687, 3689, 3, 416, 208, 0, 3688, 3687, 1, 0, 0, 0, 3688, 3689, 1, 0, 0, 0, 3689, 3690, 1, 0, 0, 0, 3690, 3691, 3, 812, 406, 0, 3691, 3692, 5, 80, 0, 0, 3692, 3694, 3, 310, 155, 0, 3693, 3695, 3, 88, 44, 0, 3694, 3693, 1, 0, 0, 0, 3694, 3695, 1, 0, 0, 0, 3695, 3821, 1, 0, 0, 0, 3696, 3697, 5, 191, 0, 0, 3697, 3699, 7, 33, 0, 0, 3698, 3700, 3, 416, 208, 0, 3699, 3698, 1, 0, 0, 0, 3699, 3700, 1, 0, 0, 0, 3700, 3701, 1, 0, 0, 0, 3701, 3706, 3, 646, 323, 0, 3702, 3703, 5, 6, 0, 0, 3703, 3705, 3, 646, 323, 0, 3704, 3702, 1, 0, 0, 0, 3705, 3708, 1, 0, 0, 0, 3706, 3704, 1, 0, 0, 0, 3706, 3707, 1, 0, 0, 0, 3707, 3710, 1, 0, 0, 0, 3708, 3706, 1, 0, 0, 0, 3709, 3711, 3, 88, 44, 0, 3710, 3709, 1, 0, 0, 0, 3710, 3711, 1, 0, 0, 0, 3711, 3821, 1, 0, 0, 0, 3712, 3713, 5, 191, 0, 0, 3713, 3714, 5, 226, 0, 0, 3714, 3716, 5, 109, 0, 0, 3715, 3717, 3, 416, 208, 0, 3716, 3715, 1, 0, 0, 0, 3716, 3717, 1, 0, 0, 0, 3717, 3718, 1, 0, 0, 0, 3718, 3720, 3, 308, 154, 0, 3719, 3721, 3, 88, 44, 0, 3720, 3719, 1, 0, 0, 0, 3720, 3721, 1, 0, 0, 0, 3721, 3821, 1, 0, 0, 0, 3722, 3723, 5, 191, 0, 0, 3723, 3725, 5, 41, 0, 0, 3724, 3726, 3, 416, 208, 0, 3725, 3724, 1, 0, 0, 0, 3725, 3726, 1, 0, 0, 0, 3726, 3727, 1, 0, 0, 0, 3727, 3728, 5, 2, 0, 0, 3728, 3729, 3, 646, 323, 0, 3729, 3730, 5, 36, 0, 0, 3730, 3731, 3, 646, 323, 0, 3731, 3733, 5, 3, 0, 0, 3732, 3734, 3, 88, 44, 0, 3733, 3732, 1, 0, 0, 0, 3733, 3734, 1, 0, 0, 0, 3734, 3821, 1, 0, 0, 0, 3735, 3736, 5, 191, 0, 0, 3736, 3737, 5, 278, 0, 0, 3737, 3739, 7, 32, 0, 0, 3738, 3740, 3, 416, 208, 0, 3739, 3738, 1, 0, 0, 0, 3739, 3740, 1, 0, 0, 0, 3740, 3741, 1, 0, 0, 0, 3741, 3742, 3, 310, 155, 0, 3742, 3744, 3, 164, 82, 0, 3743, 3745, 3, 88, 44, 0, 3744, 3743, 1, 0, 0, 0, 3744, 3745, 1, 0, 0, 0, 3745, 3821, 1, 0, 0, 0, 3746, 3747, 5, 191, 0, 0, 3747, 3748, 5, 281, 0, 0, 3748, 3749, 5, 147, 0, 0, 3749, 3751, 3, 810, 405, 0, 3750, 3752, 3, 88, 44, 0, 3751, 3750, 1, 0, 0, 0, 3751, 3752, 1, 0, 0, 0, 3752, 3821, 1, 0, 0, 0, 3753, 3754, 5, 191, 0, 0, 3754, 3756, 5, 451, 0, 0, 3755, 3757, 3, 416, 208, 0, 3756, 3755, 1, 0, 0, 0, 3756, 3757, 1, 0, 0, 0, 3757, 3758, 1, 0, 0, 0, 3758, 3760, 3, 812, 406, 0, 3759, 3761, 3, 88, 44, 0, 3760, 3759, 1, 0, 0, 0, 3760, 3761, 1, 0, 0, 0, 3761, 3821, 1, 0, 0, 0, 3762, 3763, 5, 191, 0, 0, 3763, 3765, 5, 351, 0, 0, 3764, 3766, 3, 416, 208, 0, 3765, 3764, 1, 0, 0, 0, 3765, 3766, 1, 0, 0, 0, 3766, 3767, 1, 0, 0, 0, 3767, 3821, 3, 764, 382, 0, 3768, 3769, 5, 191, 0, 0, 3769, 3771, 5, 443, 0, 0, 3770, 3772, 3, 416, 208, 0, 3771, 3770, 1, 0, 0, 0, 3771, 3772, 1, 0, 0, 0, 3772, 3773, 1, 0, 0, 0, 3773, 3774, 5, 62, 0, 0, 3774, 3775, 3, 646, 323, 0, 3775, 3776, 5, 247, 0, 0, 3776, 3778, 3, 812, 406, 0, 3777, 3779, 3, 88, 44, 0, 3778, 3777, 1, 0, 0, 0, 3778, 3779, 1, 0, 0, 0, 3779, 3821, 1, 0, 0, 0, 3780, 3781, 5, 191, 0, 0, 3781, 3783, 7, 46, 0, 0, 3782, 3784, 3, 416, 208, 0, 3783, 3782, 1, 0, 0, 0, 3783, 3784, 1, 0, 0, 0, 3784, 3785, 1, 0, 0, 0, 3785, 3821, 3, 810, 405, 0, 3786, 3787, 5, 191, 0, 0, 3787, 3788, 5, 99, 0, 0, 3788, 3790, 5, 257, 0, 0, 3789, 3791, 3, 416, 208, 0, 3790, 3789, 1, 0, 0, 0, 3790, 3791, 1, 0, 0, 0, 3791, 3792, 1, 0, 0, 0, 3792, 3795, 5, 62, 0, 0, 3793, 3796, 3, 808, 404, 0, 3794, 3796, 5, 99, 0, 0, 3795, 3793, 1, 0, 0, 0, 3795, 3794, 1, 0, 0, 0, 3796, 3797, 1, 0, 0, 0, 3797, 3798, 5, 331, 0, 0, 3798, 3821, 3, 812, 406, 0, 3799, 3800, 5, 191, 0, 0, 3800, 3802, 5, 175, 0, 0, 3801, 3803, 3, 416, 208, 0, 3802, 3801, 1, 0, 0, 0, 3802, 3803, 1, 0, 0, 0, 3803, 3804, 1, 0, 0, 0, 3804, 3818, 3, 782, 391, 0, 3805, 3807, 5, 105, 0, 0, 3806, 3805, 1, 0, 0, 0, 3806, 3807, 1, 0, 0, 0, 3807, 3808, 1, 0, 0, 0, 3808, 3809, 5, 2, 0, 0, 3809, 3814, 5, 209, 0, 0, 3810, 3811, 5, 6, 0, 0, 3811, 3813, 5, 209, 0, 0, 3812, 3810, 1, 0, 0, 0, 3813, 3816, 1, 0, 0, 0, 3814, 3812, 1, 0, 0, 0, 3814, 3815, 1, 0, 0, 0, 3815, 3817, 1, 0, 0, 0, 3816, 3814, 1, 0, 0, 0, 3817, 3819, 5, 3, 0, 0, 3818, 3806, 1, 0, 0, 0, 3818, 3819, 1, 0, 0, 0, 3819, 3821, 1, 0, 0, 0, 3820, 3613, 1, 0, 0, 0, 3820, 3645, 1, 0, 0, 0, 3820, 3664, 1, 0, 0, 0, 3820, 3676, 1, 0, 0, 0, 3820, 3685, 1, 0, 0, 0, 3820, 3696, 1, 0, 0, 0, 3820, 3712, 1, 0, 0, 0, 3820, 3722, 1, 0, 0, 0, 3820, 3735, 1, 0, 0, 0, 3820, 3746, 1, 0, 0, 0, 3820, 3753, 1, 0, 0, 0, 3820, 3762, 1, 0, 0, 0, 3820, 3768, 1, 0, 0, 0, 3820, 3780, 1, 0, 0, 0, 3820, 3786, 1, 0, 0, 0, 3820, 3799, 1, 0, 0, 0, 3821, 303, 1, 0, 0, 0, 3822, 3824, 5, 63, 0, 0, 3823, 3822, 1, 0, 0, 0, 3823, 3824, 1, 0, 0, 0, 3824, 3825, 1, 0, 0, 0, 3825, 3826, 5, 92, 0, 0, 3826, 3839, 3, 768, 384, 0, 3827, 3829, 5, 259, 0, 0, 3828, 3827, 1, 0, 0, 0, 3828, 3829, 1, 0, 0, 0, 3829, 3830, 1, 0, 0, 0, 3830, 3831, 5, 376, 0, 0, 3831, 3839, 3, 772, 386, 0, 3832, 3833, 7, 47, 0, 0, 3833, 3839, 3, 310, 155, 0, 3834, 3835, 5, 355, 0, 0, 3835, 3836, 5, 325, 0, 0, 3836, 3837, 7, 42, 0, 0, 3837, 3839, 3, 310, 155, 0, 3838, 3823, 1, 0, 0, 0, 3838, 3828, 1, 0, 0, 0, 3838, 3832, 1, 0, 0, 0, 3838, 3834, 1, 0, 0, 0, 3839, 305, 1, 0, 0, 0, 3840, 3841, 5, 198, 0, 0, 3841, 3857, 5, 357, 0, 0, 3842, 3843, 5, 131, 0, 0, 3843, 3857, 5, 446, 0, 0, 3844, 3857, 5, 204, 0, 0, 3845, 3857, 5, 452, 0, 0, 3846, 3857, 5, 331, 0, 0, 3847, 3857, 5, 318, 0, 0, 3848, 3857, 5, 451, 0, 0, 3849, 3850, 5, 63, 0, 0, 3850, 3851, 5, 174, 0, 0, 3851, 3857, 5, 381, 0, 0, 3852, 3854, 5, 295, 0, 0, 3853, 3852, 1, 0, 0, 0, 3853, 3854, 1, 0, 0, 0, 3854, 3855, 1, 0, 0, 0, 3855, 3857, 5, 247, 0, 0, 3856, 3840, 1, 0, 0, 0, 3856, 3842, 1, 0, 0, 0, 3856, 3844, 1, 0, 0, 0, 3856, 3845, 1, 0, 0, 0, 3856, 3846, 1, 0, 0, 0, 3856, 3847, 1, 0, 0, 0, 3856, 3848, 1, 0, 0, 0, 3856, 3849, 1, 0, 0, 0, 3856, 3853, 1, 0, 0, 0, 3857, 3858, 1, 0, 0, 0, 3858, 3865, 3, 812, 406, 0, 3859, 3860, 5, 323, 0, 0, 3860, 3865, 3, 784, 392, 0, 3861, 3862, 5, 175, 0, 0, 3862, 3865, 3, 782, 391, 0, 3863, 3865, 3, 170, 85, 0, 3864, 3856, 1, 0, 0, 0, 3864, 3859, 1, 0, 0, 0, 3864, 3861, 1, 0, 0, 0, 3864, 3863, 1, 0, 0, 0, 3865, 307, 1, 0, 0, 0, 3866, 3871, 3, 310, 155, 0, 3867, 3868, 5, 6, 0, 0, 3868, 3870, 3, 310, 155, 0, 3869, 3867, 1, 0, 0, 0, 3870, 3873, 1, 0, 0, 0, 3871, 3869, 1, 0, 0, 0, 3871, 3872, 1, 0, 0, 0, 3872, 309, 1, 0, 0, 0, 3873, 3871, 1, 0, 0, 0, 3874, 3876, 3, 812, 406, 0, 3875, 3877, 3, 312, 156, 0, 3876, 3875, 1, 0, 0, 0, 3876, 3877, 1, 0, 0, 0, 3877, 311, 1, 0, 0, 0, 3878, 3879, 5, 11, 0, 0, 3879, 3881, 3, 818, 409, 0, 3880, 3878, 1, 0, 0, 0, 3881, 3882, 1, 0, 0, 0, 3882, 3880, 1, 0, 0, 0, 3882, 3883, 1, 0, 0, 0, 3883, 313, 1, 0, 0, 0, 3884, 3886, 5, 358, 0, 0, 3885, 3887, 5, 92, 0, 0, 3886, 3885, 1, 0, 0, 0, 3886, 3887, 1, 0, 0, 0, 3887, 3888, 1, 0, 0, 0, 3888, 3893, 3, 316, 158, 0, 3889, 3890, 5, 6, 0, 0, 3890, 3892, 3, 316, 158, 0, 3891, 3889, 1, 0, 0, 0, 3892, 3895, 1, 0, 0, 0, 3893, 3891, 1, 0, 0, 0, 3893, 3894, 1, 0, 0, 0, 3894, 3898, 1, 0, 0, 0, 3895, 3893, 1, 0, 0, 0, 3896, 3897, 7, 48, 0, 0, 3897, 3899, 5, 219, 0, 0, 3898, 3896, 1, 0, 0, 0, 3898, 3899, 1, 0, 0, 0, 3899, 3901, 1, 0, 0, 0, 3900, 3902, 3, 88, 44, 0, 3901, 3900, 1, 0, 0, 0, 3901, 3902, 1, 0, 0, 0, 3902, 315, 1, 0, 0, 0, 3903, 3905, 5, 81, 0, 0, 3904, 3903, 1, 0, 0, 0, 3904, 3905, 1, 0, 0, 0, 3905, 3906, 1, 0, 0, 0, 3906, 3908, 3, 768, 384, 0, 3907, 3909, 5, 9, 0, 0, 3908, 3907, 1, 0, 0, 0, 3908, 3909, 1, 0, 0, 0, 3909, 317, 1, 0, 0, 0, 3910, 3911, 5, 159, 0, 0, 3911, 3970, 5, 80, 0, 0, 3912, 3971, 3, 304, 152, 0, 3913, 3971, 3, 306, 153, 0, 3914, 3915, 5, 44, 0, 0, 3915, 3917, 3, 812, 406, 0, 3916, 3918, 3, 312, 156, 0, 3917, 3916, 1, 0, 0, 0, 3917, 3918, 1, 0, 0, 0, 3918, 3919, 1, 0, 0, 0, 3919, 3920, 5, 11, 0, 0, 3920, 3921, 3, 794, 397, 0, 3921, 3971, 1, 0, 0, 0, 3922, 3923, 7, 33, 0, 0, 3923, 3971, 3, 646, 323, 0, 3924, 3925, 5, 136, 0, 0, 3925, 3971, 3, 388, 194, 0, 3926, 3927, 5, 211, 0, 0, 3927, 3971, 3, 376, 188, 0, 3928, 3929, 5, 278, 0, 0, 3929, 3971, 3, 410, 205, 0, 3930, 3931, 5, 45, 0, 0, 3931, 3932, 3, 812, 406, 0, 3932, 3938, 5, 80, 0, 0, 3933, 3939, 3, 768, 384, 0, 3934, 3936, 5, 189, 0, 0, 3935, 3934, 1, 0, 0, 0, 3935, 3936, 1, 0, 0, 0, 3936, 3937, 1, 0, 0, 0, 3937, 3939, 3, 310, 155, 0, 3938, 3933, 1, 0, 0, 0, 3938, 3935, 1, 0, 0, 0, 3939, 3971, 1, 0, 0, 0, 3940, 3941, 7, 45, 0, 0, 3941, 3942, 3, 812, 406, 0, 3942, 3943, 5, 80, 0, 0, 3943, 3944, 3, 310, 155, 0, 3944, 3971, 1, 0, 0, 0, 3945, 3946, 5, 296, 0, 0, 3946, 3971, 3, 372, 186, 0, 3947, 3948, 5, 442, 0, 0, 3948, 3971, 3, 368, 184, 0, 3949, 3950, 5, 443, 0, 0, 3950, 3951, 5, 62, 0, 0, 3951, 3952, 3, 646, 323, 0, 3952, 3953, 5, 247, 0, 0, 3953, 3954, 3, 812, 406, 0, 3954, 3971, 1, 0, 0, 0, 3955, 3956, 5, 278, 0, 0, 3956, 3957, 7, 32, 0, 0, 3957, 3958, 3, 310, 155, 0, 3958, 3959, 3, 164, 82, 0, 3959, 3971, 1, 0, 0, 0, 3960, 3961, 5, 248, 0, 0, 3961, 3962, 5, 274, 0, 0, 3962, 3971, 3, 196, 98, 0, 3963, 3964, 5, 41, 0, 0, 3964, 3965, 5, 2, 0, 0, 3965, 3966, 3, 646, 323, 0, 3966, 3967, 5, 36, 0, 0, 3967, 3968, 3, 646, 323, 0, 3968, 3969, 5, 3, 0, 0, 3969, 3971, 1, 0, 0, 0, 3970, 3912, 1, 0, 0, 0, 3970, 3913, 1, 0, 0, 0, 3970, 3914, 1, 0, 0, 0, 3970, 3922, 1, 0, 0, 0, 3970, 3924, 1, 0, 0, 0, 3970, 3926, 1, 0, 0, 0, 3970, 3928, 1, 0, 0, 0, 3970, 3930, 1, 0, 0, 0, 3970, 3940, 1, 0, 0, 0, 3970, 3945, 1, 0, 0, 0, 3970, 3947, 1, 0, 0, 0, 3970, 3949, 1, 0, 0, 0, 3970, 3955, 1, 0, 0, 0, 3970, 3960, 1, 0, 0, 0, 3970, 3963, 1, 0, 0, 0, 3971, 3972, 1, 0, 0, 0, 3972, 3975, 5, 116, 0, 0, 3973, 3976, 3, 802, 401, 0, 3974, 3976, 5, 78, 0, 0, 3975, 3973, 1, 0, 0, 0, 3975, 3974, 1, 0, 0, 0, 3976, 319, 1, 0, 0, 0, 3977, 3978, 5, 327, 0, 0, 3978, 3981, 5, 246, 0, 0, 3979, 3980, 5, 62, 0, 0, 3980, 3982, 3, 58, 29, 0, 3981, 3979, 1, 0, 0, 0, 3981, 3982, 1, 0, 0, 0, 3982, 3983, 1, 0, 0, 0, 3983, 4001, 5, 80, 0, 0, 3984, 3985, 7, 33, 0, 0, 3985, 4002, 3, 646, 323, 0, 3986, 3987, 5, 136, 0, 0, 3987, 4002, 3, 388, 194, 0, 3988, 3989, 5, 44, 0, 0, 3989, 4002, 3, 794, 397, 0, 3990, 3991, 5, 211, 0, 0, 3991, 4002, 3, 376, 188, 0, 3992, 3993, 5, 248, 0, 0, 3993, 3994, 5, 274, 0, 0, 3994, 4002, 3, 196, 98, 0, 3995, 3996, 5, 296, 0, 0, 3996, 4002, 3, 372, 186, 0, 3997, 3998, 5, 442, 0, 0, 3998, 4002, 3, 368, 184, 0, 3999, 4002, 3, 304, 152, 0, 4000, 4002, 3, 306, 153, 0, 4001, 3984, 1, 0, 0, 0, 4001, 3986, 1, 0, 0, 0, 4001, 3988, 1, 0, 0, 0, 4001, 3990, 1, 0, 0, 0, 4001, 3992, 1, 0, 0, 0, 4001, 3995, 1, 0, 0, 0, 4001, 3997, 1, 0, 0, 0, 4001, 3999, 1, 0, 0, 0, 4001, 4000, 1, 0, 0, 0, 4002, 4003, 1, 0, 0, 0, 4003, 4006, 5, 116, 0, 0, 4004, 4007, 3, 802, 401, 0, 4005, 4007, 5, 78, 0, 0, 4006, 4004, 1, 0, 0, 0, 4006, 4005, 1, 0, 0, 0, 4007, 321, 1, 0, 0, 0, 4008, 4009, 7, 49, 0, 0, 4009, 4010, 3, 324, 162, 0, 4010, 323, 1, 0, 0, 0, 4011, 4013, 7, 50, 0, 0, 4012, 4011, 1, 0, 0, 0, 4012, 4013, 1, 0, 0, 0, 4013, 4015, 1, 0, 0, 0, 4014, 4016, 3, 326, 163, 0, 4015, 4014, 1, 0, 0, 0, 4015, 4016, 1, 0, 0, 0, 4016, 4017, 1, 0, 0, 0, 4017, 4055, 3, 812, 406, 0, 4018, 4020, 7, 51, 0, 0, 4019, 4018, 1, 0, 0, 0, 4019, 4020, 1, 0, 0, 0, 4020, 4021, 1, 0, 0, 0, 4021, 4023, 3, 806, 403, 0, 4022, 4024, 3, 326, 163, 0, 4023, 4022, 1, 0, 0, 0, 4023, 4024, 1, 0, 0, 0, 4024, 4025, 1, 0, 0, 0, 4025, 4026, 3, 812, 406, 0, 4026, 4055, 1, 0, 0, 0, 4027, 4029, 5, 210, 0, 0, 4028, 4030, 3, 806, 403, 0, 4029, 4028, 1, 0, 0, 0, 4029, 4030, 1, 0, 0, 0, 4030, 4032, 1, 0, 0, 0, 4031, 4033, 3, 326, 163, 0, 4032, 4031, 1, 0, 0, 0, 4032, 4033, 1, 0, 0, 0, 4033, 4034, 1, 0, 0, 0, 4034, 4055, 3, 812, 406, 0, 4035, 4037, 5, 210, 0, 0, 4036, 4035, 1, 0, 0, 0, 4036, 4037, 1, 0, 0, 0, 4037, 4038, 1, 0, 0, 0, 4038, 4040, 5, 30, 0, 0, 4039, 4041, 3, 326, 163, 0, 4040, 4039, 1, 0, 0, 0, 4040, 4041, 1, 0, 0, 0, 4041, 4042, 1, 0, 0, 0, 4042, 4055, 3, 812, 406, 0, 4043, 4048, 5, 144, 0, 0, 4044, 4046, 5, 30, 0, 0, 4045, 4044, 1, 0, 0, 0, 4045, 4046, 1, 0, 0, 0, 4046, 4049, 1, 0, 0, 0, 4047, 4049, 3, 806, 403, 0, 4048, 4045, 1, 0, 0, 0, 4048, 4047, 1, 0, 0, 0, 4049, 4051, 1, 0, 0, 0, 4050, 4052, 3, 326, 163, 0, 4051, 4050, 1, 0, 0, 0, 4051, 4052, 1, 0, 0, 0, 4052, 4053, 1, 0, 0, 0, 4053, 4055, 3, 812, 406, 0, 4054, 4012, 1, 0, 0, 0, 4054, 4019, 1, 0, 0, 0, 4054, 4027, 1, 0, 0, 0, 4054, 4036, 1, 0, 0, 0, 4054, 4043, 1, 0, 0, 0, 4055, 325, 1, 0, 0, 0, 4056, 4057, 7, 52, 0, 0, 4057, 327, 1, 0, 0, 0, 4058, 4059, 5, 65, 0, 0, 4059, 4060, 3, 332, 166, 0, 4060, 4061, 5, 80, 0, 0, 4061, 4062, 3, 338, 169, 0, 4062, 4063, 5, 94, 0, 0, 4063, 4067, 3, 340, 170, 0, 4064, 4065, 5, 105, 0, 0, 4065, 4066, 5, 65, 0, 0, 4066, 4068, 5, 279, 0, 0, 4067, 4064, 1, 0, 0, 0, 4067, 4068, 1, 0, 0, 0, 4068, 329, 1, 0, 0, 0, 4069, 4073, 5, 317, 0, 0, 4070, 4071, 5, 65, 0, 0, 4071, 4072, 5, 279, 0, 0, 4072, 4074, 5, 62, 0, 0, 4073, 4070, 1, 0, 0, 0, 4073, 4074, 1, 0, 0, 0, 4074, 4075, 1, 0, 0, 0, 4075, 4076, 3, 332, 166, 0, 4076, 4077, 5, 80, 0, 0, 4077, 4078, 3, 338, 169, 0, 4078, 4079, 5, 64, 0, 0, 4079, 4081, 3, 340, 170, 0, 4080, 4082, 3, 88, 44, 0, 4081, 4080, 1, 0, 0, 0, 4081, 4082, 1, 0, 0, 0, 4082, 331, 1, 0, 0, 0, 4083, 4088, 3, 336, 168, 0, 4084, 4085, 5, 6, 0, 0, 4085, 4087, 3, 336, 168, 0, 4086, 4084, 1, 0, 0, 0, 4087, 4090, 1, 0, 0, 0, 4088, 4086, 1, 0, 0, 0, 4088, 4089, 1, 0, 0, 0, 4089, 4107, 1, 0, 0, 0, 4090, 4088, 1, 0, 0, 0, 4091, 4093, 5, 30, 0, 0, 4092, 4094, 5, 294, 0, 0, 4093, 4092, 1, 0, 0, 0, 4093, 4094, 1, 0, 0, 0, 4094, 4096, 1, 0, 0, 0, 4095, 4097, 3, 138, 69, 0, 4096, 4095, 1, 0, 0, 0, 4096, 4097, 1, 0, 0, 0, 4097, 4107, 1, 0, 0, 0, 4098, 4103, 3, 334, 167, 0, 4099, 4100, 5, 6, 0, 0, 4100, 4102, 3, 334, 167, 0, 4101, 4099, 1, 0, 0, 0, 4102, 4105, 1, 0, 0, 0, 4103, 4101, 1, 0, 0, 0, 4103, 4104, 1, 0, 0, 0, 4104, 4107, 1, 0, 0, 0, 4105, 4103, 1, 0, 0, 0, 4106, 4083, 1, 0, 0, 0, 4106, 4091, 1, 0, 0, 0, 4106, 4098, 1, 0, 0, 0, 4107, 333, 1, 0, 0, 0, 4108, 4109, 7, 53, 0, 0, 4109, 335, 1, 0, 0, 0, 4110, 4115, 5, 88, 0, 0, 4111, 4115, 5, 86, 0, 0, 4112, 4115, 5, 46, 0, 0, 4113, 4115, 3, 812, 406, 0, 4114, 4110, 1, 0, 0, 0, 4114, 4111, 1, 0, 0, 0, 4114, 4112, 1, 0, 0, 0, 4114, 4113, 1, 0, 0, 0, 4115, 4117, 1, 0, 0, 0, 4116, 4118, 3, 138, 69, 0, 4117, 4116, 1, 0, 0, 0, 4117, 4118, 1, 0, 0, 0, 4118, 337, 1, 0, 0, 0, 4119, 4120, 5, 92, 0, 0, 4120, 4165, 3, 756, 378, 0, 4121, 4123, 5, 328, 0, 0, 4122, 4121, 1, 0, 0, 0, 4122, 4123, 1, 0, 0, 0, 4123, 4124, 1, 0, 0, 0, 4124, 4165, 3, 754, 377, 0, 4125, 4129, 5, 63, 0, 0, 4126, 4127, 5, 174, 0, 0, 4127, 4130, 5, 381, 0, 0, 4128, 4130, 5, 331, 0, 0, 4129, 4126, 1, 0, 0, 0, 4129, 4128, 1, 0, 0, 0, 4130, 4133, 1, 0, 0, 0, 4131, 4133, 5, 247, 0, 0, 4132, 4125, 1, 0, 0, 0, 4132, 4131, 1, 0, 0, 0, 4133, 4134, 1, 0, 0, 0, 4134, 4165, 3, 778, 389, 0, 4135, 4136, 5, 211, 0, 0, 4136, 4165, 3, 374, 187, 0, 4137, 4138, 5, 296, 0, 0, 4138, 4165, 3, 370, 185, 0, 4139, 4140, 5, 442, 0, 0, 4140, 4165, 3, 366, 183, 0, 4141, 4142, 5, 175, 0, 0, 4142, 4165, 3, 760, 380, 0, 4143, 4144, 7, 33, 0, 0, 4144, 4165, 3, 308, 154, 0, 4145, 4146, 5, 248, 0, 0, 4146, 4147, 5, 274, 0, 0, 4147, 4152, 3, 196, 98, 0, 4148, 4149, 5, 6, 0, 0, 4149, 4151, 3, 196, 98, 0, 4150, 4148, 1, 0, 0, 0, 4151, 4154, 1, 0, 0, 0, 4152, 4150, 1, 0, 0, 0, 4152, 4153, 1, 0, 0, 0, 4153, 4165, 1, 0, 0, 0, 4154, 4152, 1, 0, 0, 0, 4155, 4156, 5, 323, 0, 0, 4156, 4165, 3, 758, 379, 0, 4157, 4158, 5, 351, 0, 0, 4158, 4165, 3, 776, 388, 0, 4159, 4160, 5, 30, 0, 0, 4160, 4161, 7, 54, 0, 0, 4161, 4162, 5, 68, 0, 0, 4162, 4163, 5, 323, 0, 0, 4163, 4165, 3, 758, 379, 0, 4164, 4119, 1, 0, 0, 0, 4164, 4122, 1, 0, 0, 0, 4164, 4132, 1, 0, 0, 0, 4164, 4135, 1, 0, 0, 0, 4164, 4137, 1, 0, 0, 0, 4164, 4139, 1, 0, 0, 0, 4164, 4141, 1, 0, 0, 0, 4164, 4143, 1, 0, 0, 0, 4164, 4145, 1, 0, 0, 0, 4164, 4155, 1, 0, 0, 0, 4164, 4157, 1, 0, 0, 0, 4164, 4159, 1, 0, 0, 0, 4165, 339, 1, 0, 0, 0, 4166, 4168, 5, 66, 0, 0, 4167, 4166, 1, 0, 0, 0, 4167, 4168, 1, 0, 0, 0, 4168, 4169, 1, 0, 0, 0, 4169, 4170, 3, 808, 404, 0, 4170, 4178, 1, 0, 0, 0, 4171, 4173, 5, 6, 0, 0, 4172, 4174, 5, 66, 0, 0, 4173, 4172, 1, 0, 0, 0, 4173, 4174, 1, 0, 0, 0, 4174, 4175, 1, 0, 0, 0, 4175, 4177, 3, 808, 404, 0, 4176, 4171, 1, 0, 0, 0, 4177, 4180, 1, 0, 0, 0, 4178, 4176, 1, 0, 0, 0, 4178, 4179, 1, 0, 0, 0, 4179, 341, 1, 0, 0, 0, 4180, 4178, 1, 0, 0, 0, 4181, 4182, 5, 65, 0, 0, 4182, 4187, 3, 336, 168, 0, 4183, 4184, 5, 6, 0, 0, 4184, 4186, 3, 336, 168, 0, 4185, 4183, 1, 0, 0, 0, 4186, 4189, 1, 0, 0, 0, 4187, 4185, 1, 0, 0, 0, 4187, 4188, 1, 0, 0, 0, 4188, 4190, 1, 0, 0, 0, 4189, 4187, 1, 0, 0, 0, 4190, 4191, 5, 94, 0, 0, 4191, 4195, 3, 810, 405, 0, 4192, 4193, 5, 105, 0, 0, 4193, 4194, 5, 134, 0, 0, 4194, 4196, 5, 279, 0, 0, 4195, 4192, 1, 0, 0, 0, 4195, 4196, 1, 0, 0, 0, 4196, 4200, 1, 0, 0, 0, 4197, 4198, 5, 214, 0, 0, 4198, 4199, 5, 147, 0, 0, 4199, 4201, 3, 808, 404, 0, 4200, 4197, 1, 0, 0, 0, 4200, 4201, 1, 0, 0, 0, 4201, 343, 1, 0, 0, 0, 4202, 4206, 5, 317, 0, 0, 4203, 4204, 5, 134, 0, 0, 4204, 4205, 5, 279, 0, 0, 4205, 4207, 5, 62, 0, 0, 4206, 4203, 1, 0, 0, 0, 4206, 4207, 1, 0, 0, 0, 4207, 4208, 1, 0, 0, 0, 4208, 4213, 3, 336, 168, 0, 4209, 4210, 5, 6, 0, 0, 4210, 4212, 3, 336, 168, 0, 4211, 4209, 1, 0, 0, 0, 4212, 4215, 1, 0, 0, 0, 4213, 4211, 1, 0, 0, 0, 4213, 4214, 1, 0, 0, 0, 4214, 4216, 1, 0, 0, 0, 4215, 4213, 1, 0, 0, 0, 4216, 4217, 5, 64, 0, 0, 4217, 4221, 3, 810, 405, 0, 4218, 4219, 5, 214, 0, 0, 4219, 4220, 5, 147, 0, 0, 4220, 4222, 3, 808, 404, 0, 4221, 4218, 1, 0, 0, 0, 4221, 4222, 1, 0, 0, 0, 4222, 4224, 1, 0, 0, 0, 4223, 4225, 3, 88, 44, 0, 4224, 4223, 1, 0, 0, 0, 4224, 4225, 1, 0, 0, 0, 4225, 345, 1, 0, 0, 0, 4226, 4227, 5, 138, 0, 0, 4227, 4228, 5, 53, 0, 0, 4228, 4237, 5, 294, 0, 0, 4229, 4230, 5, 68, 0, 0, 4230, 4231, 5, 323, 0, 0, 4231, 4236, 3, 758, 379, 0, 4232, 4233, 5, 62, 0, 0, 4233, 4234, 7, 2, 0, 0, 4234, 4236, 3, 810, 405, 0, 4235, 4229, 1, 0, 0, 0, 4235, 4232, 1, 0, 0, 0, 4236, 4239, 1, 0, 0, 0, 4237, 4235, 1, 0, 0, 0, 4237, 4238, 1, 0, 0, 0, 4238, 4240, 1, 0, 0, 0, 4239, 4237, 1, 0, 0, 0, 4240, 4241, 3, 348, 174, 0, 4241, 347, 1, 0, 0, 0, 4242, 4243, 5, 65, 0, 0, 4243, 4244, 3, 332, 166, 0, 4244, 4245, 5, 80, 0, 0, 4245, 4246, 3, 350, 175, 0, 4246, 4247, 5, 94, 0, 0, 4247, 4251, 3, 340, 170, 0, 4248, 4249, 5, 105, 0, 0, 4249, 4250, 5, 65, 0, 0, 4250, 4252, 5, 279, 0, 0, 4251, 4248, 1, 0, 0, 0, 4251, 4252, 1, 0, 0, 0, 4252, 4268, 1, 0, 0, 0, 4253, 4257, 5, 317, 0, 0, 4254, 4255, 5, 65, 0, 0, 4255, 4256, 5, 279, 0, 0, 4256, 4258, 5, 62, 0, 0, 4257, 4254, 1, 0, 0, 0, 4257, 4258, 1, 0, 0, 0, 4258, 4259, 1, 0, 0, 0, 4259, 4260, 3, 332, 166, 0, 4260, 4261, 5, 80, 0, 0, 4261, 4262, 3, 350, 175, 0, 4262, 4263, 5, 64, 0, 0, 4263, 4265, 3, 340, 170, 0, 4264, 4266, 3, 88, 44, 0, 4265, 4264, 1, 0, 0, 0, 4265, 4266, 1, 0, 0, 0, 4266, 4268, 1, 0, 0, 0, 4267, 4242, 1, 0, 0, 0, 4267, 4253, 1, 0, 0, 0, 4268, 349, 1, 0, 0, 0, 4269, 4270, 7, 55, 0, 0, 4270, 351, 1, 0, 0, 0, 4271, 4273, 5, 46, 0, 0, 4272, 4274, 5, 98, 0, 0, 4273, 4272, 1, 0, 0, 0, 4273, 4274, 1, 0, 0, 0, 4274, 4275, 1, 0, 0, 0, 4275, 4277, 5, 226, 0, 0, 4276, 4278, 5, 109, 0, 0, 4277, 4276, 1, 0, 0, 0, 4277, 4278, 1, 0, 0, 0, 4278, 4280, 1, 0, 0, 0, 4279, 4281, 3, 288, 144, 0, 4280, 4279, 1, 0, 0, 0, 4280, 4281, 1, 0, 0, 0, 4281, 4283, 1, 0, 0, 0, 4282, 4284, 3, 812, 406, 0, 4283, 4282, 1, 0, 0, 0, 4283, 4284, 1, 0, 0, 0, 4284, 4285, 1, 0, 0, 0, 4285, 4286, 5, 80, 0, 0, 4286, 4288, 3, 618, 309, 0, 4287, 4289, 3, 164, 82, 0, 4288, 4287, 1, 0, 0, 0, 4288, 4289, 1, 0, 0, 0, 4289, 4290, 1, 0, 0, 0, 4290, 4293, 3, 354, 177, 0, 4291, 4292, 5, 441, 0, 0, 4292, 4294, 3, 354, 177, 0, 4293, 4291, 1, 0, 0, 0, 4293, 4294, 1, 0, 0, 0, 4294, 4300, 1, 0, 0, 0, 4295, 4297, 5, 273, 0, 0, 4296, 4298, 5, 77, 0, 0, 4297, 4296, 1, 0, 0, 0, 4297, 4298, 1, 0, 0, 0, 4298, 4299, 1, 0, 0, 0, 4299, 4301, 5, 56, 0, 0, 4300, 4295, 1, 0, 0, 0, 4300, 4301, 1, 0, 0, 0, 4301, 4303, 1, 0, 0, 0, 4302, 4304, 3, 94, 47, 0, 4303, 4302, 1, 0, 0, 0, 4303, 4304, 1, 0, 0, 0, 4304, 4306, 1, 0, 0, 0, 4305, 4307, 3, 170, 85, 0, 4306, 4305, 1, 0, 0, 0, 4306, 4307, 1, 0, 0, 0, 4307, 4309, 1, 0, 0, 0, 4308, 4310, 3, 632, 316, 0, 4309, 4308, 1, 0, 0, 0, 4309, 4310, 1, 0, 0, 0, 4310, 353, 1, 0, 0, 0, 4311, 4312, 5, 2, 0, 0, 4312, 4317, 3, 356, 178, 0, 4313, 4314, 5, 6, 0, 0, 4314, 4316, 3, 356, 178, 0, 4315, 4313, 1, 0, 0, 0, 4316, 4319, 1, 0, 0, 0, 4317, 4315, 1, 0, 0, 0, 4317, 4318, 1, 0, 0, 0, 4318, 4320, 1, 0, 0, 0, 4319, 4317, 1, 0, 0, 0, 4320, 4321, 5, 3, 0, 0, 4321, 355, 1, 0, 0, 0, 4322, 4329, 3, 794, 397, 0, 4323, 4329, 3, 682, 341, 0, 4324, 4325, 5, 2, 0, 0, 4325, 4326, 3, 668, 334, 0, 4326, 4327, 5, 3, 0, 0, 4327, 4329, 1, 0, 0, 0, 4328, 4322, 1, 0, 0, 0, 4328, 4323, 1, 0, 0, 0, 4328, 4324, 1, 0, 0, 0, 4329, 4331, 1, 0, 0, 0, 4330, 4332, 3, 90, 45, 0, 4331, 4330, 1, 0, 0, 0, 4331, 4332, 1, 0, 0, 0, 4332, 4339, 1, 0, 0, 0, 4333, 4335, 3, 310, 155, 0, 4334, 4333, 1, 0, 0, 0, 4334, 4335, 1, 0, 0, 0, 4335, 4340, 1, 0, 0, 0, 4336, 4337, 3, 310, 155, 0, 4337, 4338, 3, 92, 46, 0, 4338, 4340, 1, 0, 0, 0, 4339, 4334, 1, 0, 0, 0, 4339, 4336, 1, 0, 0, 0, 4340, 4342, 1, 0, 0, 0, 4341, 4343, 7, 56, 0, 0, 4342, 4341, 1, 0, 0, 0, 4342, 4343, 1, 0, 0, 0, 4343, 4346, 1, 0, 0, 0, 4344, 4345, 5, 273, 0, 0, 4345, 4347, 7, 57, 0, 0, 4346, 4344, 1, 0, 0, 0, 4346, 4347, 1, 0, 0, 0, 4347, 357, 1, 0, 0, 0, 4348, 4350, 5, 46, 0, 0, 4349, 4351, 3, 360, 180, 0, 4350, 4349, 1, 0, 0, 0, 4350, 4351, 1, 0, 0, 0, 4351, 4356, 1, 0, 0, 0, 4352, 4353, 5, 211, 0, 0, 4353, 4357, 3, 798, 399, 0, 4354, 4355, 5, 296, 0, 0, 4355, 4357, 3, 792, 396, 0, 4356, 4352, 1, 0, 0, 0, 4356, 4354, 1, 0, 0, 0, 4357, 4358, 1, 0, 0, 0, 4358, 4367, 5, 2, 0, 0, 4359, 4364, 3, 384, 192, 0, 4360, 4361, 5, 6, 0, 0, 4361, 4363, 3, 384, 192, 0, 4362, 4360, 1, 0, 0, 0, 4363, 4366, 1, 0, 0, 0, 4364, 4362, 1, 0, 0, 0, 4364, 4365, 1, 0, 0, 0, 4365, 4368, 1, 0, 0, 0, 4366, 4364, 1, 0, 0, 0, 4367, 4359, 1, 0, 0, 0, 4367, 4368, 1, 0, 0, 0, 4368, 4369, 1, 0, 0, 0, 4369, 4370, 5, 3, 0, 0, 4370, 4387, 1, 0, 0, 0, 4371, 4385, 5, 316, 0, 0, 4372, 4386, 3, 382, 191, 0, 4373, 4374, 5, 92, 0, 0, 4374, 4375, 5, 2, 0, 0, 4375, 4380, 3, 396, 198, 0, 4376, 4377, 5, 6, 0, 0, 4377, 4379, 3, 396, 198, 0, 4378, 4376, 1, 0, 0, 0, 4379, 4382, 1, 0, 0, 0, 4380, 4378, 1, 0, 0, 0, 4380, 4381, 1, 0, 0, 0, 4381, 4383, 1, 0, 0, 0, 4382, 4380, 1, 0, 0, 0, 4383, 4384, 5, 3, 0, 0, 4384, 4386, 1, 0, 0, 0, 4385, 4372, 1, 0, 0, 0, 4385, 4373, 1, 0, 0, 0, 4386, 4388, 1, 0, 0, 0, 4387, 4371, 1, 0, 0, 0, 4387, 4388, 1, 0, 0, 0, 4388, 4390, 1, 0, 0, 0, 4389, 4391, 3, 392, 196, 0, 4390, 4389, 1, 0, 0, 0, 4391, 4392, 1, 0, 0, 0, 4392, 4390, 1, 0, 0, 0, 4392, 4393, 1, 0, 0, 0, 4393, 4399, 1, 0, 0, 0, 4394, 4395, 5, 105, 0, 0, 4395, 4396, 5, 2, 0, 0, 4396, 4397, 3, 778, 389, 0, 4397, 4398, 5, 3, 0, 0, 4398, 4400, 1, 0, 0, 0, 4399, 4394, 1, 0, 0, 0, 4399, 4400, 1, 0, 0, 0, 4400, 359, 1, 0, 0, 0, 4401, 4402, 5, 82, 0, 0, 4402, 4403, 5, 311, 0, 0, 4403, 361, 1, 0, 0, 0, 4404, 4406, 5, 2, 0, 0, 4405, 4407, 3, 364, 182, 0, 4406, 4405, 1, 0, 0, 0, 4406, 4407, 1, 0, 0, 0, 4407, 4408, 1, 0, 0, 0, 4408, 4409, 5, 3, 0, 0, 4409, 363, 1, 0, 0, 0, 4410, 4415, 3, 378, 189, 0, 4411, 4412, 5, 6, 0, 0, 4412, 4414, 3, 378, 189, 0, 4413, 4411, 1, 0, 0, 0, 4414, 4417, 1, 0, 0, 0, 4415, 4413, 1, 0, 0, 0, 4415, 4416, 1, 0, 0, 0, 4416, 365, 1, 0, 0, 0, 4417, 4415, 1, 0, 0, 0, 4418, 4423, 3, 368, 184, 0, 4419, 4420, 5, 6, 0, 0, 4420, 4422, 3, 368, 184, 0, 4421, 4419, 1, 0, 0, 0, 4422, 4425, 1, 0, 0, 0, 4423, 4421, 1, 0, 0, 0, 4423, 4424, 1, 0, 0, 0, 4424, 367, 1, 0, 0, 0, 4425, 4423, 1, 0, 0, 0, 4426, 4427, 3, 788, 394, 0, 4427, 4428, 3, 362, 181, 0, 4428, 4432, 1, 0, 0, 0, 4429, 4432, 3, 826, 413, 0, 4430, 4432, 3, 774, 387, 0, 4431, 4426, 1, 0, 0, 0, 4431, 4429, 1, 0, 0, 0, 4431, 4430, 1, 0, 0, 0, 4432, 369, 1, 0, 0, 0, 4433, 4438, 3, 372, 186, 0, 4434, 4435, 5, 6, 0, 0, 4435, 4437, 3, 372, 186, 0, 4436, 4434, 1, 0, 0, 0, 4437, 4440, 1, 0, 0, 0, 4438, 4436, 1, 0, 0, 0, 4438, 4439, 1, 0, 0, 0, 4439, 371, 1, 0, 0, 0, 4440, 4438, 1, 0, 0, 0, 4441, 4442, 3, 790, 395, 0, 4442, 4443, 3, 362, 181, 0, 4443, 4447, 1, 0, 0, 0, 4444, 4447, 3, 826, 413, 0, 4445, 4447, 3, 774, 387, 0, 4446, 4441, 1, 0, 0, 0, 4446, 4444, 1, 0, 0, 0, 4446, 4445, 1, 0, 0, 0, 4447, 373, 1, 0, 0, 0, 4448, 4453, 3, 376, 188, 0, 4449, 4450, 5, 6, 0, 0, 4450, 4452, 3, 376, 188, 0, 4451, 4449, 1, 0, 0, 0, 4452, 4455, 1, 0, 0, 0, 4453, 4451, 1, 0, 0, 0, 4453, 4454, 1, 0, 0, 0, 4454, 375, 1, 0, 0, 0, 4455, 4453, 1, 0, 0, 0, 4456, 4457, 3, 800, 400, 0, 4457, 4458, 3, 362, 181, 0, 4458, 4462, 1, 0, 0, 0, 4459, 4462, 3, 826, 413, 0, 4460, 4462, 3, 774, 387, 0, 4461, 4456, 1, 0, 0, 0, 4461, 4459, 1, 0, 0, 0, 4461, 4460, 1, 0, 0, 0, 4462, 377, 1, 0, 0, 0, 4463, 4465, 3, 380, 190, 0, 4464, 4466, 3, 814, 407, 0, 4465, 4464, 1, 0, 0, 0, 4465, 4466, 1, 0, 0, 0, 4466, 4472, 1, 0, 0, 0, 4467, 4469, 3, 814, 407, 0, 4468, 4470, 3, 380, 190, 0, 4469, 4468, 1, 0, 0, 0, 4469, 4470, 1, 0, 0, 0, 4470, 4472, 1, 0, 0, 0, 4471, 4463, 1, 0, 0, 0, 4471, 4467, 1, 0, 0, 0, 4471, 4472, 1, 0, 0, 0, 4472, 4473, 1, 0, 0, 0, 4473, 4474, 3, 382, 191, 0, 4474, 379, 1, 0, 0, 0, 4475, 4477, 5, 68, 0, 0, 4476, 4478, 5, 453, 0, 0, 4477, 4476, 1, 0, 0, 0, 4477, 4478, 1, 0, 0, 0, 4478, 4483, 1, 0, 0, 0, 4479, 4483, 5, 453, 0, 0, 4480, 4483, 5, 400, 0, 0, 4481, 4483, 5, 101, 0, 0, 4482, 4475, 1, 0, 0, 0, 4482, 4479, 1, 0, 0, 0, 4482, 4480, 1, 0, 0, 0, 4482, 4481, 1, 0, 0, 0, 4483, 381, 1, 0, 0, 0, 4484, 4494, 3, 646, 323, 0, 4485, 4487, 5, 415, 0, 0, 4486, 4485, 1, 0, 0, 0, 4486, 4487, 1, 0, 0, 0, 4487, 4488, 1, 0, 0, 0, 4488, 4489, 3, 814, 407, 0, 4489, 4490, 3, 312, 156, 0, 4490, 4491, 5, 27, 0, 0, 4491, 4492, 5, 360, 0, 0, 4492, 4494, 1, 0, 0, 0, 4493, 4484, 1, 0, 0, 0, 4493, 4486, 1, 0, 0, 0, 4494, 383, 1, 0, 0, 0, 4495, 4498, 3, 378, 189, 0, 4496, 4497, 7, 58, 0, 0, 4497, 4499, 3, 668, 334, 0, 4498, 4496, 1, 0, 0, 0, 4498, 4499, 1, 0, 0, 0, 4499, 385, 1, 0, 0, 0, 4500, 4510, 5, 2, 0, 0, 4501, 4511, 5, 9, 0, 0, 4502, 4504, 3, 364, 182, 0, 4503, 4502, 1, 0, 0, 0, 4503, 4504, 1, 0, 0, 0, 4504, 4508, 1, 0, 0, 0, 4505, 4506, 5, 83, 0, 0, 4506, 4507, 5, 147, 0, 0, 4507, 4509, 3, 364, 182, 0, 4508, 4505, 1, 0, 0, 0, 4508, 4509, 1, 0, 0, 0, 4509, 4511, 1, 0, 0, 0, 4510, 4501, 1, 0, 0, 0, 4510, 4503, 1, 0, 0, 0, 4511, 4512, 1, 0, 0, 0, 4512, 4513, 5, 3, 0, 0, 4513, 387, 1, 0, 0, 0, 4514, 4515, 3, 800, 400, 0, 4515, 4516, 3, 386, 193, 0, 4516, 389, 1, 0, 0, 0, 4517, 4518, 5, 316, 0, 0, 4518, 4521, 5, 78, 0, 0, 4519, 4521, 5, 149, 0, 0, 4520, 4517, 1, 0, 0, 0, 4520, 4519, 1, 0, 0, 0, 4521, 4522, 1, 0, 0, 0, 4522, 4523, 5, 80, 0, 0, 4523, 4524, 5, 78, 0, 0, 4524, 4547, 5, 458, 0, 0, 4525, 4547, 5, 346, 0, 0, 4526, 4547, 5, 222, 0, 0, 4527, 4547, 5, 338, 0, 0, 4528, 4547, 5, 377, 0, 0, 4529, 4531, 5, 205, 0, 0, 4530, 4529, 1, 0, 0, 0, 4530, 4531, 1, 0, 0, 0, 4531, 4532, 1, 0, 0, 0, 4532, 4533, 5, 327, 0, 0, 4533, 4547, 7, 59, 0, 0, 4534, 4547, 5, 250, 0, 0, 4535, 4536, 5, 77, 0, 0, 4536, 4547, 5, 250, 0, 0, 4537, 4538, 7, 60, 0, 0, 4538, 4547, 3, 196, 98, 0, 4539, 4540, 5, 459, 0, 0, 4540, 4547, 3, 310, 155, 0, 4541, 4542, 5, 333, 0, 0, 4542, 4547, 3, 42, 21, 0, 4543, 4547, 3, 60, 30, 0, 4544, 4545, 5, 460, 0, 0, 4545, 4547, 3, 812, 406, 0, 4546, 4520, 1, 0, 0, 0, 4546, 4525, 1, 0, 0, 0, 4546, 4526, 1, 0, 0, 0, 4546, 4527, 1, 0, 0, 0, 4546, 4528, 1, 0, 0, 0, 4546, 4530, 1, 0, 0, 0, 4546, 4534, 1, 0, 0, 0, 4546, 4535, 1, 0, 0, 0, 4546, 4537, 1, 0, 0, 0, 4546, 4539, 1, 0, 0, 0, 4546, 4541, 1, 0, 0, 0, 4546, 4543, 1, 0, 0, 0, 4546, 4544, 1, 0, 0, 0, 4547, 391, 1, 0, 0, 0, 4548, 4549, 5, 36, 0, 0, 4549, 4550, 3, 802, 401, 0, 4550, 4551, 3, 456, 228, 0, 4551, 4584, 1, 0, 0, 0, 4552, 4553, 5, 247, 0, 0, 4553, 4584, 3, 58, 29, 0, 4554, 4555, 5, 443, 0, 0, 4555, 4556, 5, 62, 0, 0, 4556, 4557, 5, 360, 0, 0, 4557, 4564, 3, 646, 323, 0, 4558, 4559, 5, 6, 0, 0, 4559, 4560, 5, 62, 0, 0, 4560, 4561, 5, 360, 0, 0, 4561, 4563, 3, 646, 323, 0, 4562, 4558, 1, 0, 0, 0, 4563, 4566, 1, 0, 0, 0, 4564, 4562, 1, 0, 0, 0, 4564, 4565, 1, 0, 0, 0, 4565, 4584, 1, 0, 0, 0, 4566, 4564, 1, 0, 0, 0, 4567, 4584, 5, 104, 0, 0, 4568, 4569, 5, 333, 0, 0, 4569, 4576, 3, 812, 406, 0, 4570, 4571, 5, 94, 0, 0, 4571, 4577, 3, 812, 406, 0, 4572, 4573, 5, 10, 0, 0, 4573, 4577, 3, 812, 406, 0, 4574, 4575, 5, 64, 0, 0, 4575, 4577, 5, 434, 0, 0, 4576, 4570, 1, 0, 0, 0, 4576, 4572, 1, 0, 0, 0, 4576, 4574, 1, 0, 0, 0, 4577, 4584, 1, 0, 0, 0, 4578, 4579, 5, 36, 0, 0, 4579, 4584, 3, 812, 406, 0, 4580, 4584, 3, 4, 2, 0, 4581, 4584, 3, 390, 195, 0, 4582, 4584, 3, 812, 406, 0, 4583, 4548, 1, 0, 0, 0, 4583, 4552, 1, 0, 0, 0, 4583, 4554, 1, 0, 0, 0, 4583, 4567, 1, 0, 0, 0, 4583, 4568, 1, 0, 0, 0, 4583, 4578, 1, 0, 0, 0, 4583, 4580, 1, 0, 0, 0, 4583, 4581, 1, 0, 0, 0, 4583, 4582, 1, 0, 0, 0, 4584, 393, 1, 0, 0, 0, 4585, 4586, 5, 105, 0, 0, 4586, 4587, 3, 278, 139, 0, 4587, 395, 1, 0, 0, 0, 4588, 4589, 3, 794, 397, 0, 4589, 4590, 3, 382, 191, 0, 4590, 397, 1, 0, 0, 0, 4591, 4598, 5, 138, 0, 0, 4592, 4593, 5, 211, 0, 0, 4593, 4599, 3, 376, 188, 0, 4594, 4595, 5, 296, 0, 0, 4595, 4599, 3, 372, 186, 0, 4596, 4597, 5, 442, 0, 0, 4597, 4599, 3, 368, 184, 0, 4598, 4592, 1, 0, 0, 0, 4598, 4594, 1, 0, 0, 0, 4598, 4596, 1, 0, 0, 0, 4599, 4601, 1, 0, 0, 0, 4600, 4602, 3, 390, 195, 0, 4601, 4600, 1, 0, 0, 0, 4602, 4603, 1, 0, 0, 0, 4603, 4601, 1, 0, 0, 0, 4603, 4604, 1, 0, 0, 0, 4604, 4606, 1, 0, 0, 0, 4605, 4607, 5, 315, 0, 0, 4606, 4605, 1, 0, 0, 0, 4606, 4607, 1, 0, 0, 0, 4607, 399, 1, 0, 0, 0, 4608, 4624, 5, 191, 0, 0, 4609, 4611, 5, 211, 0, 0, 4610, 4612, 3, 416, 208, 0, 4611, 4610, 1, 0, 0, 0, 4611, 4612, 1, 0, 0, 0, 4612, 4613, 1, 0, 0, 0, 4613, 4625, 3, 374, 187, 0, 4614, 4616, 5, 296, 0, 0, 4615, 4617, 3, 416, 208, 0, 4616, 4615, 1, 0, 0, 0, 4616, 4617, 1, 0, 0, 0, 4617, 4618, 1, 0, 0, 0, 4618, 4625, 3, 370, 185, 0, 4619, 4621, 5, 442, 0, 0, 4620, 4622, 3, 416, 208, 0, 4621, 4620, 1, 0, 0, 0, 4621, 4622, 1, 0, 0, 0, 4622, 4623, 1, 0, 0, 0, 4623, 4625, 3, 366, 183, 0, 4624, 4609, 1, 0, 0, 0, 4624, 4614, 1, 0, 0, 0, 4624, 4619, 1, 0, 0, 0, 4625, 4627, 1, 0, 0, 0, 4626, 4628, 3, 88, 44, 0, 4627, 4626, 1, 0, 0, 0, 4627, 4628, 1, 0, 0, 0, 4628, 401, 1, 0, 0, 0, 4629, 4630, 5, 191, 0, 0, 4630, 4632, 5, 136, 0, 0, 4631, 4633, 3, 416, 208, 0, 4632, 4631, 1, 0, 0, 0, 4632, 4633, 1, 0, 0, 0, 4633, 4634, 1, 0, 0, 0, 4634, 4639, 3, 388, 194, 0, 4635, 4636, 5, 6, 0, 0, 4636, 4638, 3, 388, 194, 0, 4637, 4635, 1, 0, 0, 0, 4638, 4641, 1, 0, 0, 0, 4639, 4637, 1, 0, 0, 0, 4639, 4640, 1, 0, 0, 0, 4640, 4643, 1, 0, 0, 0, 4641, 4639, 1, 0, 0, 0, 4642, 4644, 3, 88, 44, 0, 4643, 4642, 1, 0, 0, 0, 4643, 4644, 1, 0, 0, 0, 4644, 403, 1, 0, 0, 0, 4645, 4646, 5, 191, 0, 0, 4646, 4648, 5, 278, 0, 0, 4647, 4649, 3, 416, 208, 0, 4648, 4647, 1, 0, 0, 0, 4648, 4649, 1, 0, 0, 0, 4649, 4650, 1, 0, 0, 0, 4650, 4655, 3, 410, 205, 0, 4651, 4652, 5, 6, 0, 0, 4652, 4654, 3, 410, 205, 0, 4653, 4651, 1, 0, 0, 0, 4654, 4657, 1, 0, 0, 0, 4655, 4653, 1, 0, 0, 0, 4655, 4656, 1, 0, 0, 0, 4656, 4659, 1, 0, 0, 0, 4657, 4655, 1, 0, 0, 0, 4658, 4660, 3, 88, 44, 0, 4659, 4658, 1, 0, 0, 0, 4659, 4660, 1, 0, 0, 0, 4660, 405, 1, 0, 0, 0, 4661, 4674, 5, 2, 0, 0, 4662, 4665, 3, 646, 323, 0, 4663, 4664, 5, 6, 0, 0, 4664, 4666, 3, 646, 323, 0, 4665, 4663, 1, 0, 0, 0, 4665, 4666, 1, 0, 0, 0, 4666, 4675, 1, 0, 0, 0, 4667, 4668, 5, 407, 0, 0, 4668, 4669, 5, 6, 0, 0, 4669, 4675, 3, 646, 323, 0, 4670, 4671, 3, 646, 323, 0, 4671, 4672, 5, 6, 0, 0, 4672, 4673, 5, 407, 0, 0, 4673, 4675, 1, 0, 0, 0, 4674, 4662, 1, 0, 0, 0, 4674, 4667, 1, 0, 0, 0, 4674, 4670, 1, 0, 0, 0, 4675, 4676, 1, 0, 0, 0, 4676, 4677, 5, 3, 0, 0, 4677, 407, 1, 0, 0, 0, 4678, 4679, 3, 812, 406, 0, 4679, 4680, 5, 11, 0, 0, 4680, 4682, 1, 0, 0, 0, 4681, 4678, 1, 0, 0, 0, 4682, 4685, 1, 0, 0, 0, 4683, 4681, 1, 0, 0, 0, 4683, 4684, 1, 0, 0, 0, 4684, 4686, 1, 0, 0, 0, 4685, 4683, 1, 0, 0, 0, 4686, 4687, 3, 714, 357, 0, 4687, 409, 1, 0, 0, 0, 4688, 4689, 3, 408, 204, 0, 4689, 4690, 3, 406, 203, 0, 4690, 411, 1, 0, 0, 0, 4691, 4695, 5, 57, 0, 0, 4692, 4696, 3, 802, 401, 0, 4693, 4694, 5, 247, 0, 0, 4694, 4696, 3, 58, 29, 0, 4695, 4692, 1, 0, 0, 0, 4695, 4693, 1, 0, 0, 0, 4696, 4697, 1, 0, 0, 0, 4697, 4695, 1, 0, 0, 0, 4697, 4698, 1, 0, 0, 0, 4698, 413, 1, 0, 0, 0, 4699, 4700, 5, 46, 0, 0, 4700, 4701, 5, 41, 0, 0, 4701, 4702, 5, 2, 0, 0, 4702, 4703, 3, 646, 323, 0, 4703, 4704, 5, 36, 0, 0, 4704, 4705, 3, 646, 323, 0, 4705, 4722, 5, 3, 0, 0, 4706, 4707, 5, 379, 0, 0, 4707, 4710, 5, 211, 0, 0, 4708, 4709, 5, 36, 0, 0, 4709, 4711, 7, 61, 0, 0, 4710, 4708, 1, 0, 0, 0, 4710, 4711, 1, 0, 0, 0, 4711, 4723, 1, 0, 0, 0, 4712, 4716, 5, 105, 0, 0, 4713, 4714, 5, 211, 0, 0, 4714, 4717, 3, 376, 188, 0, 4715, 4717, 5, 400, 0, 0, 4716, 4713, 1, 0, 0, 0, 4716, 4715, 1, 0, 0, 0, 4717, 4720, 1, 0, 0, 0, 4718, 4719, 5, 36, 0, 0, 4719, 4721, 7, 61, 0, 0, 4720, 4718, 1, 0, 0, 0, 4720, 4721, 1, 0, 0, 0, 4721, 4723, 1, 0, 0, 0, 4722, 4706, 1, 0, 0, 0, 4722, 4712, 1, 0, 0, 0, 4723, 415, 1, 0, 0, 0, 4724, 4725, 5, 220, 0, 0, 4725, 4726, 5, 396, 0, 0, 4726, 417, 1, 0, 0, 0, 4727, 4729, 5, 46, 0, 0, 4728, 4730, 3, 360, 180, 0, 4729, 4728, 1, 0, 0, 0, 4729, 4730, 1, 0, 0, 0, 4730, 4731, 1, 0, 0, 0, 4731, 4732, 5, 443, 0, 0, 4732, 4733, 5, 62, 0, 0, 4733, 4734, 3, 646, 323, 0, 4734, 4735, 5, 247, 0, 0, 4735, 4736, 3, 812, 406, 0, 4736, 4751, 5, 2, 0, 0, 4737, 4738, 5, 64, 0, 0, 4738, 4742, 3, 420, 210, 0, 4739, 4740, 5, 6, 0, 0, 4740, 4741, 5, 94, 0, 0, 4741, 4743, 3, 420, 210, 0, 4742, 4739, 1, 0, 0, 0, 4742, 4743, 1, 0, 0, 0, 4743, 4752, 1, 0, 0, 0, 4744, 4745, 5, 94, 0, 0, 4745, 4749, 3, 420, 210, 0, 4746, 4747, 5, 6, 0, 0, 4747, 4748, 5, 64, 0, 0, 4748, 4750, 3, 420, 210, 0, 4749, 4746, 1, 0, 0, 0, 4749, 4750, 1, 0, 0, 0, 4750, 4752, 1, 0, 0, 0, 4751, 4737, 1, 0, 0, 0, 4751, 4744, 1, 0, 0, 0, 4752, 4753, 1, 0, 0, 0, 4753, 4754, 5, 3, 0, 0, 4754, 419, 1, 0, 0, 0, 4755, 4756, 5, 461, 0, 0, 4756, 4757, 5, 105, 0, 0, 4757, 4758, 5, 211, 0, 0, 4758, 4759, 3, 376, 188, 0, 4759, 421, 1, 0, 0, 0, 4760, 4771, 5, 306, 0, 0, 4761, 4762, 5, 2, 0, 0, 4762, 4767, 5, 128, 0, 0, 4763, 4764, 5, 6, 0, 0, 4764, 4766, 5, 128, 0, 0, 4765, 4763, 1, 0, 0, 0, 4766, 4769, 1, 0, 0, 0, 4767, 4765, 1, 0, 0, 0, 4767, 4768, 1, 0, 0, 0, 4768, 4770, 1, 0, 0, 0, 4769, 4767, 1, 0, 0, 0, 4770, 4772, 5, 3, 0, 0, 4771, 4761, 1, 0, 0, 0, 4771, 4772, 1, 0, 0, 0, 4772, 4798, 1, 0, 0, 0, 4773, 4775, 5, 226, 0, 0, 4774, 4776, 5, 109, 0, 0, 4775, 4774, 1, 0, 0, 0, 4775, 4776, 1, 0, 0, 0, 4776, 4777, 1, 0, 0, 0, 4777, 4799, 3, 774, 387, 0, 4778, 4780, 5, 92, 0, 0, 4779, 4781, 5, 109, 0, 0, 4780, 4779, 1, 0, 0, 0, 4780, 4781, 1, 0, 0, 0, 4781, 4782, 1, 0, 0, 0, 4782, 4799, 3, 768, 384, 0, 4783, 4785, 5, 323, 0, 0, 4784, 4786, 5, 109, 0, 0, 4785, 4784, 1, 0, 0, 0, 4785, 4786, 1, 0, 0, 0, 4786, 4787, 1, 0, 0, 0, 4787, 4799, 3, 784, 392, 0, 4788, 4790, 5, 349, 0, 0, 4789, 4791, 5, 109, 0, 0, 4790, 4789, 1, 0, 0, 0, 4790, 4791, 1, 0, 0, 0, 4791, 4792, 1, 0, 0, 0, 4792, 4799, 3, 812, 406, 0, 4793, 4795, 5, 175, 0, 0, 4794, 4796, 5, 109, 0, 0, 4795, 4794, 1, 0, 0, 0, 4795, 4796, 1, 0, 0, 0, 4796, 4797, 1, 0, 0, 0, 4797, 4799, 3, 782, 391, 0, 4798, 4773, 1, 0, 0, 0, 4798, 4778, 1, 0, 0, 0, 4798, 4783, 1, 0, 0, 0, 4798, 4788, 1, 0, 0, 0, 4798, 4793, 1, 0, 0, 0, 4799, 423, 1, 0, 0, 0, 4800, 4801, 5, 138, 0, 0, 4801, 4802, 3, 170, 85, 0, 4802, 4803, 7, 16, 0, 0, 4803, 4804, 3, 92, 46, 0, 4804, 425, 1, 0, 0, 0, 4805, 4810, 5, 138, 0, 0, 4806, 4807, 5, 136, 0, 0, 4807, 4811, 3, 388, 194, 0, 4808, 4809, 5, 442, 0, 0, 4809, 4811, 3, 368, 184, 0, 4810, 4806, 1, 0, 0, 0, 4810, 4808, 1, 0, 0, 0, 4811, 4812, 1, 0, 0, 0, 4812, 4813, 5, 309, 0, 0, 4813, 4814, 5, 94, 0, 0, 4814, 4815, 3, 812, 406, 0, 4815, 5013, 1, 0, 0, 0, 4816, 4817, 5, 138, 0, 0, 4817, 4818, 5, 175, 0, 0, 4818, 4819, 3, 782, 391, 0, 4819, 4820, 5, 309, 0, 0, 4820, 4821, 5, 94, 0, 0, 4821, 4822, 3, 780, 390, 0, 4822, 5013, 1, 0, 0, 0, 4823, 4824, 5, 138, 0, 0, 4824, 4825, 7, 62, 0, 0, 4825, 4826, 3, 310, 155, 0, 4826, 4827, 5, 309, 0, 0, 4827, 4828, 5, 94, 0, 0, 4828, 4829, 3, 812, 406, 0, 4829, 5013, 1, 0, 0, 0, 4830, 4831, 5, 138, 0, 0, 4831, 4832, 5, 211, 0, 0, 4832, 4833, 3, 376, 188, 0, 4833, 4834, 5, 309, 0, 0, 4834, 4835, 5, 94, 0, 0, 4835, 4836, 3, 798, 399, 0, 4836, 5013, 1, 0, 0, 0, 4837, 4838, 5, 138, 0, 0, 4838, 4839, 5, 278, 0, 0, 4839, 4840, 7, 32, 0, 0, 4840, 4841, 3, 310, 155, 0, 4841, 4842, 3, 164, 82, 0, 4842, 4843, 5, 309, 0, 0, 4843, 4844, 5, 94, 0, 0, 4844, 4845, 3, 812, 406, 0, 4845, 5013, 1, 0, 0, 0, 4846, 4847, 5, 138, 0, 0, 4847, 4848, 5, 296, 0, 0, 4848, 4849, 3, 372, 186, 0, 4849, 4850, 5, 309, 0, 0, 4850, 4851, 5, 94, 0, 0, 4851, 4852, 3, 792, 396, 0, 4852, 5013, 1, 0, 0, 0, 4853, 4854, 5, 138, 0, 0, 4854, 4855, 5, 323, 0, 0, 4855, 4856, 3, 784, 392, 0, 4856, 4857, 5, 309, 0, 0, 4857, 4858, 5, 94, 0, 0, 4858, 4859, 3, 32, 16, 0, 4859, 5013, 1, 0, 0, 0, 4860, 4861, 5, 138, 0, 0, 4861, 4863, 7, 63, 0, 0, 4862, 4864, 3, 416, 208, 0, 4863, 4862, 1, 0, 0, 0, 4863, 4864, 1, 0, 0, 0, 4864, 4865, 1, 0, 0, 0, 4865, 4866, 3, 774, 387, 0, 4866, 4867, 5, 309, 0, 0, 4867, 4868, 5, 94, 0, 0, 4868, 4869, 3, 812, 406, 0, 4869, 5013, 1, 0, 0, 0, 4870, 4872, 5, 138, 0, 0, 4871, 4873, 5, 259, 0, 0, 4872, 4871, 1, 0, 0, 0, 4872, 4873, 1, 0, 0, 0, 4873, 4874, 1, 0, 0, 0, 4874, 4876, 5, 376, 0, 0, 4875, 4877, 3, 416, 208, 0, 4876, 4875, 1, 0, 0, 0, 4876, 4877, 1, 0, 0, 0, 4877, 4878, 1, 0, 0, 0, 4878, 4879, 3, 772, 386, 0, 4879, 4880, 5, 309, 0, 0, 4880, 4881, 5, 94, 0, 0, 4881, 4882, 3, 770, 385, 0, 4882, 5013, 1, 0, 0, 0, 4883, 4885, 5, 138, 0, 0, 4884, 4886, 5, 63, 0, 0, 4885, 4884, 1, 0, 0, 0, 4885, 4886, 1, 0, 0, 0, 4886, 4887, 1, 0, 0, 0, 4887, 4889, 5, 92, 0, 0, 4888, 4890, 3, 416, 208, 0, 4889, 4888, 1, 0, 0, 0, 4889, 4890, 1, 0, 0, 0, 4890, 4891, 1, 0, 0, 0, 4891, 4892, 3, 618, 309, 0, 4892, 4893, 5, 309, 0, 0, 4893, 4894, 5, 94, 0, 0, 4894, 4895, 3, 766, 383, 0, 4895, 5013, 1, 0, 0, 0, 4896, 4921, 5, 138, 0, 0, 4897, 4899, 5, 63, 0, 0, 4898, 4897, 1, 0, 0, 0, 4898, 4899, 1, 0, 0, 0, 4899, 4900, 1, 0, 0, 0, 4900, 4902, 5, 92, 0, 0, 4901, 4903, 3, 416, 208, 0, 4902, 4901, 1, 0, 0, 0, 4902, 4903, 1, 0, 0, 0, 4903, 4904, 1, 0, 0, 0, 4904, 4905, 3, 618, 309, 0, 4905, 4907, 5, 309, 0, 0, 4906, 4908, 5, 44, 0, 0, 4907, 4906, 1, 0, 0, 0, 4907, 4908, 1, 0, 0, 0, 4908, 4922, 1, 0, 0, 0, 4909, 4911, 5, 259, 0, 0, 4910, 4909, 1, 0, 0, 0, 4910, 4911, 1, 0, 0, 0, 4911, 4912, 1, 0, 0, 0, 4912, 4914, 5, 376, 0, 0, 4913, 4915, 3, 416, 208, 0, 4914, 4913, 1, 0, 0, 0, 4914, 4915, 1, 0, 0, 0, 4915, 4916, 1, 0, 0, 0, 4916, 4917, 3, 772, 386, 0, 4917, 4919, 5, 309, 0, 0, 4918, 4920, 5, 44, 0, 0, 4919, 4918, 1, 0, 0, 0, 4919, 4920, 1, 0, 0, 0, 4920, 4922, 1, 0, 0, 0, 4921, 4898, 1, 0, 0, 0, 4921, 4910, 1, 0, 0, 0, 4922, 4923, 1, 0, 0, 0, 4923, 4924, 3, 794, 397, 0, 4924, 4925, 5, 94, 0, 0, 4925, 4926, 3, 796, 398, 0, 4926, 5013, 1, 0, 0, 0, 4927, 4935, 5, 138, 0, 0, 4928, 4930, 5, 92, 0, 0, 4929, 4931, 3, 416, 208, 0, 4930, 4929, 1, 0, 0, 0, 4930, 4931, 1, 0, 0, 0, 4931, 4932, 1, 0, 0, 0, 4932, 4936, 3, 618, 309, 0, 4933, 4934, 5, 189, 0, 0, 4934, 4936, 3, 310, 155, 0, 4935, 4928, 1, 0, 0, 0, 4935, 4933, 1, 0, 0, 0, 4936, 4937, 1, 0, 0, 0, 4937, 4938, 5, 309, 0, 0, 4938, 4939, 5, 45, 0, 0, 4939, 4940, 3, 812, 406, 0, 4940, 4941, 5, 94, 0, 0, 4941, 4942, 3, 812, 406, 0, 4942, 5013, 1, 0, 0, 0, 4943, 4950, 5, 138, 0, 0, 4944, 4946, 5, 445, 0, 0, 4945, 4947, 3, 416, 208, 0, 4946, 4945, 1, 0, 0, 0, 4946, 4947, 1, 0, 0, 0, 4947, 4951, 1, 0, 0, 0, 4948, 4951, 5, 321, 0, 0, 4949, 4951, 5, 357, 0, 0, 4950, 4944, 1, 0, 0, 0, 4950, 4948, 1, 0, 0, 0, 4950, 4949, 1, 0, 0, 0, 4951, 4952, 1, 0, 0, 0, 4952, 4953, 3, 812, 406, 0, 4953, 4954, 5, 80, 0, 0, 4954, 4955, 3, 774, 387, 0, 4955, 4956, 5, 309, 0, 0, 4956, 4957, 5, 94, 0, 0, 4957, 4958, 3, 812, 406, 0, 4958, 5013, 1, 0, 0, 0, 4959, 4972, 5, 138, 0, 0, 4960, 4961, 5, 63, 0, 0, 4961, 4962, 5, 174, 0, 0, 4962, 4973, 5, 381, 0, 0, 4963, 4965, 5, 295, 0, 0, 4964, 4963, 1, 0, 0, 0, 4964, 4965, 1, 0, 0, 0, 4965, 4966, 1, 0, 0, 0, 4966, 4973, 5, 247, 0, 0, 4967, 4973, 5, 452, 0, 0, 4968, 4973, 5, 331, 0, 0, 4969, 4973, 5, 451, 0, 0, 4970, 4971, 5, 198, 0, 0, 4971, 4973, 5, 357, 0, 0, 4972, 4960, 1, 0, 0, 0, 4972, 4964, 1, 0, 0, 0, 4972, 4967, 1, 0, 0, 0, 4972, 4968, 1, 0, 0, 0, 4972, 4969, 1, 0, 0, 0, 4972, 4970, 1, 0, 0, 0, 4973, 4974, 1, 0, 0, 0, 4974, 4975, 3, 812, 406, 0, 4975, 4976, 5, 309, 0, 0, 4976, 4977, 5, 94, 0, 0, 4977, 4978, 3, 812, 406, 0, 4978, 5013, 1, 0, 0, 0, 4979, 4980, 5, 138, 0, 0, 4980, 4981, 7, 46, 0, 0, 4981, 4982, 3, 808, 404, 0, 4982, 4983, 5, 309, 0, 0, 4983, 4984, 5, 94, 0, 0, 4984, 4985, 3, 808, 404, 0, 4985, 5013, 1, 0, 0, 0, 4986, 4987, 5, 138, 0, 0, 4987, 4988, 3, 170, 85, 0, 4988, 4989, 5, 309, 0, 0, 4989, 4990, 5, 94, 0, 0, 4990, 4991, 3, 764, 382, 0, 4991, 5013, 1, 0, 0, 0, 4992, 4993, 5, 138, 0, 0, 4993, 4994, 5, 355, 0, 0, 4994, 4995, 5, 325, 0, 0, 4995, 4996, 7, 42, 0, 0, 4996, 4997, 3, 310, 155, 0, 4997, 4998, 5, 309, 0, 0, 4998, 4999, 5, 94, 0, 0, 4999, 5000, 3, 812, 406, 0, 5000, 5013, 1, 0, 0, 0, 5001, 5002, 5, 138, 0, 0, 5002, 5003, 5, 360, 0, 0, 5003, 5004, 3, 310, 155, 0, 5004, 5005, 5, 309, 0, 0, 5005, 5006, 5, 143, 0, 0, 5006, 5007, 3, 812, 406, 0, 5007, 5008, 5, 94, 0, 0, 5008, 5010, 3, 812, 406, 0, 5009, 5011, 3, 88, 44, 0, 5010, 5009, 1, 0, 0, 0, 5010, 5011, 1, 0, 0, 0, 5011, 5013, 1, 0, 0, 0, 5012, 4805, 1, 0, 0, 0, 5012, 4816, 1, 0, 0, 0, 5012, 4823, 1, 0, 0, 0, 5012, 4830, 1, 0, 0, 0, 5012, 4837, 1, 0, 0, 0, 5012, 4846, 1, 0, 0, 0, 5012, 4853, 1, 0, 0, 0, 5012, 4860, 1, 0, 0, 0, 5012, 4870, 1, 0, 0, 0, 5012, 4883, 1, 0, 0, 0, 5012, 4896, 1, 0, 0, 0, 5012, 4927, 1, 0, 0, 0, 5012, 4943, 1, 0, 0, 0, 5012, 4959, 1, 0, 0, 0, 5012, 4979, 1, 0, 0, 0, 5012, 4986, 1, 0, 0, 0, 5012, 4992, 1, 0, 0, 0, 5012, 5001, 1, 0, 0, 0, 5013, 427, 1, 0, 0, 0, 5014, 5031, 5, 138, 0, 0, 5015, 5016, 5, 211, 0, 0, 5016, 5032, 3, 376, 188, 0, 5017, 5018, 5, 296, 0, 0, 5018, 5032, 3, 372, 186, 0, 5019, 5020, 5, 442, 0, 0, 5020, 5032, 3, 368, 184, 0, 5021, 5022, 5, 357, 0, 0, 5022, 5023, 3, 812, 406, 0, 5023, 5024, 5, 80, 0, 0, 5024, 5025, 3, 774, 387, 0, 5025, 5032, 1, 0, 0, 0, 5026, 5027, 5, 259, 0, 0, 5027, 5028, 5, 376, 0, 0, 5028, 5032, 3, 772, 386, 0, 5029, 5030, 5, 226, 0, 0, 5030, 5032, 3, 774, 387, 0, 5031, 5015, 1, 0, 0, 0, 5031, 5017, 1, 0, 0, 0, 5031, 5019, 1, 0, 0, 0, 5031, 5021, 1, 0, 0, 0, 5031, 5026, 1, 0, 0, 0, 5031, 5029, 1, 0, 0, 0, 5032, 5034, 1, 0, 0, 0, 5033, 5035, 5, 269, 0, 0, 5034, 5033, 1, 0, 0, 0, 5034, 5035, 1, 0, 0, 0, 5035, 5036, 1, 0, 0, 0, 5036, 5037, 5, 462, 0, 0, 5037, 5038, 5, 80, 0, 0, 5038, 5039, 5, 204, 0, 0, 5039, 5040, 3, 812, 406, 0, 5040, 429, 1, 0, 0, 0, 5041, 5080, 5, 138, 0, 0, 5042, 5043, 5, 136, 0, 0, 5043, 5081, 3, 388, 194, 0, 5044, 5045, 5, 204, 0, 0, 5045, 5081, 3, 812, 406, 0, 5046, 5047, 5, 211, 0, 0, 5047, 5081, 3, 376, 188, 0, 5048, 5049, 5, 278, 0, 0, 5049, 5081, 3, 410, 205, 0, 5050, 5051, 5, 278, 0, 0, 5051, 5052, 7, 32, 0, 0, 5052, 5053, 3, 310, 155, 0, 5053, 5054, 3, 164, 82, 0, 5054, 5081, 1, 0, 0, 0, 5055, 5056, 5, 296, 0, 0, 5056, 5081, 3, 372, 186, 0, 5057, 5058, 5, 442, 0, 0, 5058, 5081, 3, 368, 184, 0, 5059, 5061, 5, 328, 0, 0, 5060, 5062, 3, 416, 208, 0, 5061, 5060, 1, 0, 0, 0, 5061, 5062, 1, 0, 0, 0, 5062, 5063, 1, 0, 0, 0, 5063, 5081, 3, 774, 387, 0, 5064, 5066, 5, 259, 0, 0, 5065, 5064, 1, 0, 0, 0, 5065, 5066, 1, 0, 0, 0, 5066, 5067, 1, 0, 0, 0, 5067, 5069, 5, 376, 0, 0, 5068, 5070, 3, 416, 208, 0, 5069, 5068, 1, 0, 0, 0, 5069, 5070, 1, 0, 0, 0, 5070, 5071, 1, 0, 0, 0, 5071, 5081, 3, 772, 386, 0, 5072, 5074, 5, 63, 0, 0, 5073, 5072, 1, 0, 0, 0, 5073, 5074, 1, 0, 0, 0, 5074, 5075, 1, 0, 0, 0, 5075, 5077, 5, 92, 0, 0, 5076, 5078, 3, 416, 208, 0, 5077, 5076, 1, 0, 0, 0, 5077, 5078, 1, 0, 0, 0, 5078, 5079, 1, 0, 0, 0, 5079, 5081, 3, 618, 309, 0, 5080, 5042, 1, 0, 0, 0, 5080, 5044, 1, 0, 0, 0, 5080, 5046, 1, 0, 0, 0, 5080, 5048, 1, 0, 0, 0, 5080, 5050, 1, 0, 0, 0, 5080, 5055, 1, 0, 0, 0, 5080, 5057, 1, 0, 0, 0, 5080, 5059, 1, 0, 0, 0, 5080, 5065, 1, 0, 0, 0, 5080, 5073, 1, 0, 0, 0, 5081, 5082, 1, 0, 0, 0, 5082, 5083, 5, 333, 0, 0, 5083, 5084, 5, 323, 0, 0, 5084, 5085, 3, 784, 392, 0, 5085, 5103, 1, 0, 0, 0, 5086, 5095, 5, 138, 0, 0, 5087, 5088, 5, 355, 0, 0, 5088, 5089, 5, 325, 0, 0, 5089, 5096, 7, 42, 0, 0, 5090, 5096, 5, 108, 0, 0, 5091, 5096, 5, 168, 0, 0, 5092, 5096, 5, 189, 0, 0, 5093, 5096, 5, 342, 0, 0, 5094, 5096, 5, 360, 0, 0, 5095, 5087, 1, 0, 0, 0, 5095, 5090, 1, 0, 0, 0, 5095, 5091, 1, 0, 0, 0, 5095, 5092, 1, 0, 0, 0, 5095, 5093, 1, 0, 0, 0, 5095, 5094, 1, 0, 0, 0, 5096, 5097, 1, 0, 0, 0, 5097, 5098, 3, 310, 155, 0, 5098, 5099, 5, 333, 0, 0, 5099, 5100, 5, 323, 0, 0, 5100, 5101, 3, 784, 392, 0, 5101, 5103, 1, 0, 0, 0, 5102, 5041, 1, 0, 0, 0, 5102, 5086, 1, 0, 0, 0, 5103, 431, 1, 0, 0, 0, 5104, 5105, 5, 138, 0, 0, 5105, 5106, 5, 278, 0, 0, 5106, 5107, 3, 410, 205, 0, 5107, 5108, 5, 333, 0, 0, 5108, 5109, 3, 434, 217, 0, 5109, 433, 1, 0, 0, 0, 5110, 5111, 5, 2, 0, 0, 5111, 5116, 3, 436, 218, 0, 5112, 5113, 5, 6, 0, 0, 5113, 5115, 3, 436, 218, 0, 5114, 5112, 1, 0, 0, 0, 5115, 5118, 1, 0, 0, 0, 5116, 5114, 1, 0, 0, 0, 5116, 5117, 1, 0, 0, 0, 5117, 5119, 1, 0, 0, 0, 5118, 5116, 1, 0, 0, 0, 5119, 5120, 5, 3, 0, 0, 5120, 435, 1, 0, 0, 0, 5121, 5122, 3, 818, 409, 0, 5122, 5129, 5, 10, 0, 0, 5123, 5130, 5, 407, 0, 0, 5124, 5130, 3, 382, 191, 0, 5125, 5130, 3, 828, 414, 0, 5126, 5130, 3, 720, 360, 0, 5127, 5130, 3, 196, 98, 0, 5128, 5130, 3, 802, 401, 0, 5129, 5123, 1, 0, 0, 0, 5129, 5124, 1, 0, 0, 0, 5129, 5125, 1, 0, 0, 0, 5129, 5126, 1, 0, 0, 0, 5129, 5127, 1, 0, 0, 0, 5129, 5128, 1, 0, 0, 0, 5130, 437, 1, 0, 0, 0, 5131, 5132, 5, 138, 0, 0, 5132, 5133, 5, 360, 0, 0, 5133, 5134, 3, 310, 155, 0, 5134, 5135, 5, 333, 0, 0, 5135, 5136, 3, 434, 217, 0, 5136, 439, 1, 0, 0, 0, 5137, 5138, 5, 138, 0, 0, 5138, 5139, 5, 278, 0, 0, 5139, 5140, 7, 32, 0, 0, 5140, 5141, 3, 310, 155, 0, 5141, 5142, 3, 164, 82, 0, 5142, 5143, 5, 282, 0, 0, 5143, 5144, 5, 94, 0, 0, 5144, 5145, 3, 808, 404, 0, 5145, 5212, 1, 0, 0, 0, 5146, 5173, 5, 138, 0, 0, 5147, 5148, 5, 136, 0, 0, 5148, 5174, 3, 388, 194, 0, 5149, 5150, 5, 175, 0, 0, 5150, 5174, 3, 782, 391, 0, 5151, 5152, 5, 211, 0, 0, 5152, 5174, 3, 376, 188, 0, 5153, 5155, 5, 295, 0, 0, 5154, 5153, 1, 0, 0, 0, 5154, 5155, 1, 0, 0, 0, 5155, 5156, 1, 0, 0, 0, 5156, 5157, 5, 247, 0, 0, 5157, 5174, 3, 812, 406, 0, 5158, 5159, 5, 248, 0, 0, 5159, 5160, 5, 274, 0, 0, 5160, 5174, 3, 196, 98, 0, 5161, 5162, 5, 248, 0, 0, 5162, 5163, 5, 274, 0, 0, 5163, 5174, 3, 196, 98, 0, 5164, 5165, 5, 278, 0, 0, 5165, 5174, 3, 410, 205, 0, 5166, 5167, 5, 296, 0, 0, 5167, 5174, 3, 372, 186, 0, 5168, 5169, 5, 442, 0, 0, 5169, 5174, 3, 368, 184, 0, 5170, 5171, 5, 323, 0, 0, 5171, 5174, 3, 784, 392, 0, 5172, 5174, 3, 170, 85, 0, 5173, 5147, 1, 0, 0, 0, 5173, 5149, 1, 0, 0, 0, 5173, 5151, 1, 0, 0, 0, 5173, 5154, 1, 0, 0, 0, 5173, 5158, 1, 0, 0, 0, 5173, 5161, 1, 0, 0, 0, 5173, 5164, 1, 0, 0, 0, 5173, 5166, 1, 0, 0, 0, 5173, 5168, 1, 0, 0, 0, 5173, 5170, 1, 0, 0, 0, 5173, 5172, 1, 0, 0, 0, 5174, 5175, 1, 0, 0, 0, 5175, 5176, 5, 282, 0, 0, 5176, 5177, 5, 94, 0, 0, 5177, 5178, 3, 808, 404, 0, 5178, 5212, 1, 0, 0, 0, 5179, 5188, 5, 138, 0, 0, 5180, 5181, 5, 355, 0, 0, 5181, 5182, 5, 325, 0, 0, 5182, 5189, 7, 64, 0, 0, 5183, 5189, 5, 108, 0, 0, 5184, 5189, 5, 168, 0, 0, 5185, 5189, 5, 189, 0, 0, 5186, 5189, 5, 360, 0, 0, 5187, 5189, 5, 342, 0, 0, 5188, 5180, 1, 0, 0, 0, 5188, 5183, 1, 0, 0, 0, 5188, 5184, 1, 0, 0, 0, 5188, 5185, 1, 0, 0, 0, 5188, 5186, 1, 0, 0, 0, 5188, 5187, 1, 0, 0, 0, 5189, 5190, 1, 0, 0, 0, 5190, 5191, 3, 310, 155, 0, 5191, 5192, 5, 282, 0, 0, 5192, 5193, 5, 94, 0, 0, 5193, 5194, 3, 808, 404, 0, 5194, 5212, 1, 0, 0, 0, 5195, 5204, 5, 138, 0, 0, 5196, 5205, 5, 331, 0, 0, 5197, 5198, 5, 63, 0, 0, 5198, 5199, 5, 174, 0, 0, 5199, 5205, 5, 381, 0, 0, 5200, 5201, 5, 198, 0, 0, 5201, 5205, 5, 357, 0, 0, 5202, 5205, 5, 452, 0, 0, 5203, 5205, 5, 451, 0, 0, 5204, 5196, 1, 0, 0, 0, 5204, 5197, 1, 0, 0, 0, 5204, 5200, 1, 0, 0, 0, 5204, 5202, 1, 0, 0, 0, 5204, 5203, 1, 0, 0, 0, 5205, 5206, 1, 0, 0, 0, 5206, 5207, 3, 812, 406, 0, 5207, 5208, 5, 282, 0, 0, 5208, 5209, 5, 94, 0, 0, 5209, 5210, 3, 808, 404, 0, 5210, 5212, 1, 0, 0, 0, 5211, 5137, 1, 0, 0, 0, 5211, 5146, 1, 0, 0, 0, 5211, 5179, 1, 0, 0, 0, 5211, 5195, 1, 0, 0, 0, 5212, 441, 1, 0, 0, 0, 5213, 5214, 5, 46, 0, 0, 5214, 5215, 5, 452, 0, 0, 5215, 5222, 3, 812, 406, 0, 5216, 5217, 5, 62, 0, 0, 5217, 5218, 5, 92, 0, 0, 5218, 5223, 3, 622, 311, 0, 5219, 5220, 5, 62, 0, 0, 5220, 5221, 5, 30, 0, 0, 5221, 5223, 5, 350, 0, 0, 5222, 5216, 1, 0, 0, 0, 5222, 5219, 1, 0, 0, 0, 5222, 5223, 1, 0, 0, 0, 5223, 5225, 1, 0, 0, 0, 5224, 5226, 3, 394, 197, 0, 5225, 5224, 1, 0, 0, 0, 5225, 5226, 1, 0, 0, 0, 5226, 443, 1, 0, 0, 0, 5227, 5228, 5, 138, 0, 0, 5228, 5229, 5, 452, 0, 0, 5229, 5247, 3, 812, 406, 0, 5230, 5231, 5, 282, 0, 0, 5231, 5232, 5, 94, 0, 0, 5232, 5248, 3, 808, 404, 0, 5233, 5234, 5, 333, 0, 0, 5234, 5248, 3, 278, 139, 0, 5235, 5236, 5, 309, 0, 0, 5236, 5237, 5, 94, 0, 0, 5237, 5248, 3, 812, 406, 0, 5238, 5239, 7, 35, 0, 0, 5239, 5244, 3, 620, 310, 0, 5240, 5241, 5, 6, 0, 0, 5241, 5243, 3, 620, 310, 0, 5242, 5240, 1, 0, 0, 0, 5243, 5246, 1, 0, 0, 0, 5244, 5242, 1, 0, 0, 0, 5244, 5245, 1, 0, 0, 0, 5245, 5248, 1, 0, 0, 0, 5246, 5244, 1, 0, 0, 0, 5247, 5230, 1, 0, 0, 0, 5247, 5233, 1, 0, 0, 0, 5247, 5235, 1, 0, 0, 0, 5247, 5238, 1, 0, 0, 0, 5248, 445, 1, 0, 0, 0, 5249, 5250, 5, 46, 0, 0, 5250, 5251, 5, 451, 0, 0, 5251, 5252, 3, 812, 406, 0, 5252, 5253, 5, 164, 0, 0, 5253, 5254, 3, 802, 401, 0, 5254, 5255, 5, 452, 0, 0, 5255, 5260, 3, 818, 409, 0, 5256, 5257, 5, 6, 0, 0, 5257, 5259, 3, 818, 409, 0, 5258, 5256, 1, 0, 0, 0, 5259, 5262, 1, 0, 0, 0, 5260, 5258, 1, 0, 0, 0, 5260, 5261, 1, 0, 0, 0, 5261, 5264, 1, 0, 0, 0, 5262, 5260, 1, 0, 0, 0, 5263, 5265, 3, 394, 197, 0, 5264, 5263, 1, 0, 0, 0, 5264, 5265, 1, 0, 0, 0, 5265, 447, 1, 0, 0, 0, 5266, 5267, 5, 138, 0, 0, 5267, 5268, 5, 451, 0, 0, 5268, 5269, 3, 812, 406, 0, 5269, 5270, 5, 333, 0, 0, 5270, 5271, 3, 278, 139, 0, 5271, 5323, 1, 0, 0, 0, 5272, 5273, 5, 138, 0, 0, 5273, 5274, 5, 451, 0, 0, 5274, 5275, 3, 812, 406, 0, 5275, 5276, 5, 164, 0, 0, 5276, 5277, 3, 802, 401, 0, 5277, 5323, 1, 0, 0, 0, 5278, 5279, 5, 138, 0, 0, 5279, 5280, 5, 451, 0, 0, 5280, 5281, 3, 812, 406, 0, 5281, 5282, 5, 305, 0, 0, 5282, 5284, 5, 452, 0, 0, 5283, 5285, 3, 394, 197, 0, 5284, 5283, 1, 0, 0, 0, 5284, 5285, 1, 0, 0, 0, 5285, 5323, 1, 0, 0, 0, 5286, 5287, 5, 138, 0, 0, 5287, 5288, 5, 451, 0, 0, 5288, 5289, 3, 812, 406, 0, 5289, 5290, 7, 35, 0, 0, 5290, 5291, 5, 452, 0, 0, 5291, 5296, 3, 818, 409, 0, 5292, 5293, 5, 6, 0, 0, 5293, 5295, 3, 818, 409, 0, 5294, 5292, 1, 0, 0, 0, 5295, 5298, 1, 0, 0, 0, 5296, 5294, 1, 0, 0, 0, 5296, 5297, 1, 0, 0, 0, 5297, 5300, 1, 0, 0, 0, 5298, 5296, 1, 0, 0, 0, 5299, 5301, 3, 394, 197, 0, 5300, 5299, 1, 0, 0, 0, 5300, 5301, 1, 0, 0, 0, 5301, 5323, 1, 0, 0, 0, 5302, 5303, 5, 138, 0, 0, 5303, 5304, 5, 451, 0, 0, 5304, 5305, 3, 812, 406, 0, 5305, 5306, 7, 65, 0, 0, 5306, 5323, 1, 0, 0, 0, 5307, 5308, 5, 138, 0, 0, 5308, 5309, 5, 451, 0, 0, 5309, 5310, 3, 812, 406, 0, 5310, 5311, 5, 465, 0, 0, 5311, 5312, 5, 2, 0, 0, 5312, 5313, 3, 284, 142, 0, 5313, 5314, 5, 3, 0, 0, 5314, 5323, 1, 0, 0, 0, 5315, 5316, 5, 138, 0, 0, 5316, 5317, 5, 451, 0, 0, 5317, 5318, 3, 812, 406, 0, 5318, 5319, 5, 282, 0, 0, 5319, 5320, 5, 94, 0, 0, 5320, 5321, 3, 808, 404, 0, 5321, 5323, 1, 0, 0, 0, 5322, 5266, 1, 0, 0, 0, 5322, 5272, 1, 0, 0, 0, 5322, 5278, 1, 0, 0, 0, 5322, 5286, 1, 0, 0, 0, 5322, 5302, 1, 0, 0, 0, 5322, 5307, 1, 0, 0, 0, 5322, 5315, 1, 0, 0, 0, 5323, 449, 1, 0, 0, 0, 5324, 5326, 5, 46, 0, 0, 5325, 5327, 3, 360, 180, 0, 5326, 5325, 1, 0, 0, 0, 5326, 5327, 1, 0, 0, 0, 5327, 5328, 1, 0, 0, 0, 5328, 5329, 5, 321, 0, 0, 5329, 5330, 3, 812, 406, 0, 5330, 5331, 5, 36, 0, 0, 5331, 5332, 5, 80, 0, 0, 5332, 5333, 7, 66, 0, 0, 5333, 5334, 5, 94, 0, 0, 5334, 5336, 3, 774, 387, 0, 5335, 5337, 3, 632, 316, 0, 5336, 5335, 1, 0, 0, 0, 5336, 5337, 1, 0, 0, 0, 5337, 5338, 1, 0, 0, 0, 5338, 5340, 5, 57, 0, 0, 5339, 5341, 7, 67, 0, 0, 5340, 5339, 1, 0, 0, 0, 5340, 5341, 1, 0, 0, 0, 5341, 5358, 1, 0, 0, 0, 5342, 5359, 5, 270, 0, 0, 5343, 5359, 3, 452, 226, 0, 5344, 5346, 5, 2, 0, 0, 5345, 5347, 3, 452, 226, 0, 5346, 5345, 1, 0, 0, 0, 5346, 5347, 1, 0, 0, 0, 5347, 5354, 1, 0, 0, 0, 5348, 5350, 5, 7, 0, 0, 5349, 5351, 3, 452, 226, 0, 5350, 5349, 1, 0, 0, 0, 5350, 5351, 1, 0, 0, 0, 5351, 5353, 1, 0, 0, 0, 5352, 5348, 1, 0, 0, 0, 5353, 5356, 1, 0, 0, 0, 5354, 5352, 1, 0, 0, 0, 5354, 5355, 1, 0, 0, 0, 5355, 5357, 1, 0, 0, 0, 5356, 5354, 1, 0, 0, 0, 5357, 5359, 5, 3, 0, 0, 5358, 5342, 1, 0, 0, 0, 5358, 5343, 1, 0, 0, 0, 5358, 5344, 1, 0, 0, 0, 5359, 451, 1, 0, 0, 0, 5360, 5366, 3, 554, 277, 0, 5361, 5366, 3, 532, 266, 0, 5362, 5366, 3, 546, 273, 0, 5363, 5366, 3, 542, 271, 0, 5364, 5366, 3, 454, 227, 0, 5365, 5360, 1, 0, 0, 0, 5365, 5361, 1, 0, 0, 0, 5365, 5362, 1, 0, 0, 0, 5365, 5363, 1, 0, 0, 0, 5365, 5364, 1, 0, 0, 0, 5366, 453, 1, 0, 0, 0, 5367, 5368, 5, 271, 0, 0, 5368, 5370, 3, 812, 406, 0, 5369, 5371, 3, 456, 228, 0, 5370, 5369, 1, 0, 0, 0, 5370, 5371, 1, 0, 0, 0, 5371, 455, 1, 0, 0, 0, 5372, 5373, 5, 6, 0, 0, 5373, 5374, 3, 802, 401, 0, 5374, 457, 1, 0, 0, 0, 5375, 5376, 5, 252, 0, 0, 5376, 5377, 3, 812, 406, 0, 5377, 459, 1, 0, 0, 0, 5378, 5381, 5, 366, 0, 0, 5379, 5382, 3, 812, 406, 0, 5380, 5382, 5, 9, 0, 0, 5381, 5379, 1, 0, 0, 0, 5381, 5380, 1, 0, 0, 0, 5382, 461, 1, 0, 0, 0, 5383, 5385, 5, 146, 0, 0, 5384, 5386, 3, 464, 232, 0, 5385, 5384, 1, 0, 0, 0, 5385, 5386, 1, 0, 0, 0, 5386, 5388, 1, 0, 0, 0, 5387, 5389, 3, 468, 234, 0, 5388, 5387, 1, 0, 0, 0, 5388, 5389, 1, 0, 0, 0, 5389, 5429, 1, 0, 0, 0, 5390, 5391, 5, 340, 0, 0, 5391, 5393, 5, 356, 0, 0, 5392, 5394, 3, 468, 234, 0, 5393, 5392, 1, 0, 0, 0, 5393, 5394, 1, 0, 0, 0, 5394, 5429, 1, 0, 0, 0, 5395, 5396, 5, 322, 0, 0, 5396, 5429, 3, 812, 406, 0, 5397, 5399, 5, 308, 0, 0, 5398, 5400, 5, 322, 0, 0, 5399, 5398, 1, 0, 0, 0, 5399, 5400, 1, 0, 0, 0, 5400, 5401, 1, 0, 0, 0, 5401, 5429, 3, 812, 406, 0, 5402, 5403, 5, 290, 0, 0, 5403, 5404, 5, 356, 0, 0, 5404, 5429, 3, 802, 401, 0, 5405, 5406, 7, 68, 0, 0, 5406, 5407, 5, 291, 0, 0, 5407, 5429, 3, 802, 401, 0, 5408, 5410, 7, 69, 0, 0, 5409, 5411, 3, 464, 232, 0, 5410, 5409, 1, 0, 0, 0, 5410, 5411, 1, 0, 0, 0, 5411, 5417, 1, 0, 0, 0, 5412, 5414, 5, 33, 0, 0, 5413, 5415, 5, 269, 0, 0, 5414, 5413, 1, 0, 0, 0, 5414, 5415, 1, 0, 0, 0, 5415, 5416, 1, 0, 0, 0, 5416, 5418, 5, 153, 0, 0, 5417, 5412, 1, 0, 0, 0, 5417, 5418, 1, 0, 0, 0, 5418, 5429, 1, 0, 0, 0, 5419, 5421, 5, 319, 0, 0, 5420, 5422, 3, 464, 232, 0, 5421, 5420, 1, 0, 0, 0, 5421, 5422, 1, 0, 0, 0, 5422, 5423, 1, 0, 0, 0, 5423, 5425, 5, 94, 0, 0, 5424, 5426, 5, 322, 0, 0, 5425, 5424, 1, 0, 0, 0, 5425, 5426, 1, 0, 0, 0, 5426, 5427, 1, 0, 0, 0, 5427, 5429, 3, 812, 406, 0, 5428, 5383, 1, 0, 0, 0, 5428, 5390, 1, 0, 0, 0, 5428, 5395, 1, 0, 0, 0, 5428, 5397, 1, 0, 0, 0, 5428, 5402, 1, 0, 0, 0, 5428, 5405, 1, 0, 0, 0, 5428, 5408, 1, 0, 0, 0, 5428, 5419, 1, 0, 0, 0, 5429, 463, 1, 0, 0, 0, 5430, 5431, 7, 70, 0, 0, 5431, 465, 1, 0, 0, 0, 5432, 5433, 5, 244, 0, 0, 5433, 5434, 5, 251, 0, 0, 5434, 5442, 3, 50, 25, 0, 5435, 5436, 5, 300, 0, 0, 5436, 5442, 7, 71, 0, 0, 5437, 5439, 5, 77, 0, 0, 5438, 5437, 1, 0, 0, 0, 5438, 5439, 1, 0, 0, 0, 5439, 5440, 1, 0, 0, 0, 5440, 5442, 5, 54, 0, 0, 5441, 5432, 1, 0, 0, 0, 5441, 5435, 1, 0, 0, 0, 5441, 5438, 1, 0, 0, 0, 5442, 467, 1, 0, 0, 0, 5443, 5450, 3, 466, 233, 0, 5444, 5446, 5, 6, 0, 0, 5445, 5444, 1, 0, 0, 0, 5445, 5446, 1, 0, 0, 0, 5446, 5447, 1, 0, 0, 0, 5447, 5449, 3, 466, 233, 0, 5448, 5445, 1, 0, 0, 0, 5449, 5452, 1, 0, 0, 0, 5450, 5448, 1, 0, 0, 0, 5450, 5451, 1, 0, 0, 0, 5451, 469, 1, 0, 0, 0, 5452, 5450, 1, 0, 0, 0, 5453, 5456, 5, 46, 0, 0, 5454, 5455, 5, 82, 0, 0, 5455, 5457, 5, 311, 0, 0, 5456, 5454, 1, 0, 0, 0, 5456, 5457, 1, 0, 0, 0, 5457, 5459, 1, 0, 0, 0, 5458, 5460, 3, 116, 58, 0, 5459, 5458, 1, 0, 0, 0, 5459, 5460, 1, 0, 0, 0, 5460, 5476, 1, 0, 0, 0, 5461, 5462, 5, 376, 0, 0, 5462, 5464, 3, 770, 385, 0, 5463, 5465, 3, 140, 70, 0, 5464, 5463, 1, 0, 0, 0, 5464, 5465, 1, 0, 0, 0, 5465, 5467, 1, 0, 0, 0, 5466, 5468, 3, 94, 47, 0, 5467, 5466, 1, 0, 0, 0, 5467, 5468, 1, 0, 0, 0, 5468, 5477, 1, 0, 0, 0, 5469, 5470, 5, 303, 0, 0, 5470, 5471, 5, 376, 0, 0, 5471, 5472, 3, 770, 385, 0, 5472, 5474, 3, 138, 69, 0, 5473, 5475, 3, 94, 47, 0, 5474, 5473, 1, 0, 0, 0, 5474, 5475, 1, 0, 0, 0, 5475, 5477, 1, 0, 0, 0, 5476, 5461, 1, 0, 0, 0, 5476, 5469, 1, 0, 0, 0, 5477, 5478, 1, 0, 0, 0, 5478, 5479, 5, 36, 0, 0, 5479, 5486, 3, 554, 277, 0, 5480, 5482, 5, 105, 0, 0, 5481, 5483, 7, 72, 0, 0, 5482, 5481, 1, 0, 0, 0, 5482, 5483, 1, 0, 0, 0, 5483, 5484, 1, 0, 0, 0, 5484, 5485, 5, 42, 0, 0, 5485, 5487, 5, 279, 0, 0, 5486, 5480, 1, 0, 0, 0, 5486, 5487, 1, 0, 0, 0, 5487, 471, 1, 0, 0, 0, 5488, 5489, 5, 253, 0, 0, 5489, 5490, 3, 802, 401, 0, 5490, 473, 1, 0, 0, 0, 5491, 5492, 5, 46, 0, 0, 5492, 5493, 5, 175, 0, 0, 5493, 5495, 3, 780, 390, 0, 5494, 5496, 5, 105, 0, 0, 5495, 5494, 1, 0, 0, 0, 5495, 5496, 1, 0, 0, 0, 5496, 5502, 1, 0, 0, 0, 5497, 5499, 3, 476, 238, 0, 5498, 5497, 1, 0, 0, 0, 5499, 5500, 1, 0, 0, 0, 5500, 5498, 1, 0, 0, 0, 5500, 5501, 1, 0, 0, 0, 5501, 5503, 1, 0, 0, 0, 5502, 5498, 1, 0, 0, 0, 5502, 5503, 1, 0, 0, 0, 5503, 475, 1, 0, 0, 0, 5504, 5505, 5, 164, 0, 0, 5505, 5513, 5, 74, 0, 0, 5506, 5513, 5, 194, 0, 0, 5507, 5513, 5, 255, 0, 0, 5508, 5513, 5, 282, 0, 0, 5509, 5513, 5, 351, 0, 0, 5510, 5513, 5, 353, 0, 0, 5511, 5513, 3, 820, 410, 0, 5512, 5504, 1, 0, 0, 0, 5512, 5506, 1, 0, 0, 0, 5512, 5507, 1, 0, 0, 0, 5512, 5508, 1, 0, 0, 0, 5512, 5509, 1, 0, 0, 0, 5512, 5510, 1, 0, 0, 0, 5512, 5511, 1, 0, 0, 0, 5513, 5515, 1, 0, 0, 0, 5514, 5516, 5, 10, 0, 0, 5515, 5514, 1, 0, 0, 0, 5515, 5516, 1, 0, 0, 0, 5516, 5520, 1, 0, 0, 0, 5517, 5521, 3, 806, 403, 0, 5518, 5521, 3, 54, 27, 0, 5519, 5521, 5, 53, 0, 0, 5520, 5517, 1, 0, 0, 0, 5520, 5518, 1, 0, 0, 0, 5520, 5519, 1, 0, 0, 0, 5521, 477, 1, 0, 0, 0, 5522, 5523, 5, 138, 0, 0, 5523, 5524, 5, 175, 0, 0, 5524, 5540, 3, 782, 391, 0, 5525, 5526, 5, 333, 0, 0, 5526, 5527, 5, 351, 0, 0, 5527, 5529, 3, 764, 382, 0, 5528, 5525, 1, 0, 0, 0, 5528, 5529, 1, 0, 0, 0, 5529, 5541, 1, 0, 0, 0, 5530, 5532, 5, 105, 0, 0, 5531, 5530, 1, 0, 0, 0, 5531, 5532, 1, 0, 0, 0, 5532, 5534, 1, 0, 0, 0, 5533, 5535, 3, 476, 238, 0, 5534, 5533, 1, 0, 0, 0, 5535, 5536, 1, 0, 0, 0, 5536, 5534, 1, 0, 0, 0, 5536, 5537, 1, 0, 0, 0, 5537, 5539, 1, 0, 0, 0, 5538, 5531, 1, 0, 0, 0, 5538, 5539, 1, 0, 0, 0, 5539, 5541, 1, 0, 0, 0, 5540, 5528, 1, 0, 0, 0, 5540, 5538, 1, 0, 0, 0, 5541, 479, 1, 0, 0, 0, 5542, 5543, 5, 138, 0, 0, 5543, 5544, 5, 175, 0, 0, 5544, 5546, 3, 782, 391, 0, 5545, 5547, 3, 64, 32, 0, 5546, 5545, 1, 0, 0, 0, 5546, 5547, 1, 0, 0, 0, 5547, 481, 1, 0, 0, 0, 5548, 5549, 5, 138, 0, 0, 5549, 5550, 5, 108, 0, 0, 5550, 5551, 3, 310, 155, 0, 5551, 5552, 5, 305, 0, 0, 5552, 5553, 5, 375, 0, 0, 5553, 483, 1, 0, 0, 0, 5554, 5555, 5, 138, 0, 0, 5555, 5556, 5, 349, 0, 0, 5556, 5557, 7, 16, 0, 0, 5557, 5558, 3, 40, 20, 0, 5558, 485, 1, 0, 0, 0, 5559, 5560, 5, 46, 0, 0, 5560, 5561, 5, 189, 0, 0, 5561, 5563, 3, 310, 155, 0, 5562, 5564, 5, 36, 0, 0, 5563, 5562, 1, 0, 0, 0, 5563, 5564, 1, 0, 0, 0, 5564, 5565, 1, 0, 0, 0, 5565, 5569, 3, 646, 323, 0, 5566, 5568, 3, 128, 64, 0, 5567, 5566, 1, 0, 0, 0, 5568, 5571, 1, 0, 0, 0, 5569, 5567, 1, 0, 0, 0, 5569, 5570, 1, 0, 0, 0, 5570, 487, 1, 0, 0, 0, 5571, 5569, 1, 0, 0, 0, 5572, 5573, 5, 138, 0, 0, 5573, 5574, 5, 189, 0, 0, 5574, 5597, 3, 310, 155, 0, 5575, 5598, 3, 86, 43, 0, 5576, 5577, 7, 15, 0, 0, 5577, 5578, 5, 77, 0, 0, 5578, 5598, 5, 78, 0, 0, 5579, 5582, 5, 133, 0, 0, 5580, 5581, 5, 45, 0, 0, 5581, 5583, 3, 812, 406, 0, 5582, 5580, 1, 0, 0, 0, 5582, 5583, 1, 0, 0, 0, 5583, 5584, 1, 0, 0, 0, 5584, 5598, 3, 136, 68, 0, 5585, 5586, 5, 191, 0, 0, 5586, 5588, 5, 45, 0, 0, 5587, 5589, 3, 416, 208, 0, 5588, 5587, 1, 0, 0, 0, 5588, 5589, 1, 0, 0, 0, 5589, 5590, 1, 0, 0, 0, 5590, 5592, 3, 812, 406, 0, 5591, 5593, 3, 88, 44, 0, 5592, 5591, 1, 0, 0, 0, 5592, 5593, 1, 0, 0, 0, 5593, 5598, 1, 0, 0, 0, 5594, 5595, 5, 372, 0, 0, 5595, 5596, 5, 45, 0, 0, 5596, 5598, 3, 812, 406, 0, 5597, 5575, 1, 0, 0, 0, 5597, 5576, 1, 0, 0, 0, 5597, 5579, 1, 0, 0, 0, 5597, 5585, 1, 0, 0, 0, 5597, 5594, 1, 0, 0, 0, 5598, 489, 1, 0, 0, 0, 5599, 5600, 5, 138, 0, 0, 5600, 5601, 5, 355, 0, 0, 5601, 5602, 5, 325, 0, 0, 5602, 5603, 5, 185, 0, 0, 5603, 5604, 3, 310, 155, 0, 5604, 5605, 3, 278, 139, 0, 5605, 491, 1, 0, 0, 0, 5606, 5607, 5, 138, 0, 0, 5607, 5608, 5, 355, 0, 0, 5608, 5609, 5, 325, 0, 0, 5609, 5610, 5, 163, 0, 0, 5610, 5611, 3, 310, 155, 0, 5611, 5612, 7, 73, 0, 0, 5612, 5613, 5, 257, 0, 0, 5613, 5614, 5, 62, 0, 0, 5614, 5615, 3, 778, 389, 0, 5615, 5616, 5, 105, 0, 0, 5616, 5617, 3, 308, 154, 0, 5617, 5648, 1, 0, 0, 0, 5618, 5619, 5, 138, 0, 0, 5619, 5620, 5, 355, 0, 0, 5620, 5621, 5, 325, 0, 0, 5621, 5622, 5, 163, 0, 0, 5622, 5623, 3, 310, 155, 0, 5623, 5624, 5, 138, 0, 0, 5624, 5627, 5, 257, 0, 0, 5625, 5626, 5, 62, 0, 0, 5626, 5628, 3, 778, 389, 0, 5627, 5625, 1, 0, 0, 0, 5627, 5628, 1, 0, 0, 0, 5628, 5629, 1, 0, 0, 0, 5629, 5630, 5, 311, 0, 0, 5630, 5631, 3, 310, 155, 0, 5631, 5632, 5, 105, 0, 0, 5632, 5633, 3, 310, 155, 0, 5633, 5648, 1, 0, 0, 0, 5634, 5635, 5, 138, 0, 0, 5635, 5636, 5, 355, 0, 0, 5636, 5637, 5, 325, 0, 0, 5637, 5638, 5, 163, 0, 0, 5638, 5639, 3, 310, 155, 0, 5639, 5640, 5, 191, 0, 0, 5640, 5642, 5, 257, 0, 0, 5641, 5643, 3, 416, 208, 0, 5642, 5641, 1, 0, 0, 0, 5642, 5643, 1, 0, 0, 0, 5643, 5644, 1, 0, 0, 0, 5644, 5645, 5, 62, 0, 0, 5645, 5646, 3, 778, 389, 0, 5646, 5648, 1, 0, 0, 0, 5647, 5606, 1, 0, 0, 0, 5647, 5618, 1, 0, 0, 0, 5647, 5634, 1, 0, 0, 0, 5648, 493, 1, 0, 0, 0, 5649, 5651, 5, 46, 0, 0, 5650, 5652, 5, 53, 0, 0, 5651, 5650, 1, 0, 0, 0, 5651, 5652, 1, 0, 0, 0, 5652, 5653, 1, 0, 0, 0, 5653, 5654, 5, 168, 0, 0, 5654, 5655, 3, 310, 155, 0, 5655, 5656, 5, 62, 0, 0, 5656, 5657, 3, 802, 401, 0, 5657, 5658, 5, 94, 0, 0, 5658, 5659, 3, 802, 401, 0, 5659, 5660, 5, 64, 0, 0, 5660, 5661, 3, 310, 155, 0, 5661, 495, 1, 0, 0, 0, 5662, 5664, 5, 158, 0, 0, 5663, 5665, 3, 508, 254, 0, 5664, 5663, 1, 0, 0, 0, 5664, 5665, 1, 0, 0, 0, 5665, 5670, 1, 0, 0, 0, 5666, 5668, 3, 768, 384, 0, 5667, 5669, 3, 164, 82, 0, 5668, 5667, 1, 0, 0, 0, 5668, 5669, 1, 0, 0, 0, 5669, 5671, 1, 0, 0, 0, 5670, 5666, 1, 0, 0, 0, 5670, 5671, 1, 0, 0, 0, 5671, 5688, 1, 0, 0, 0, 5672, 5673, 5, 158, 0, 0, 5673, 5674, 5, 2, 0, 0, 5674, 5679, 3, 508, 254, 0, 5675, 5676, 5, 6, 0, 0, 5676, 5678, 3, 508, 254, 0, 5677, 5675, 1, 0, 0, 0, 5678, 5681, 1, 0, 0, 0, 5679, 5677, 1, 0, 0, 0, 5679, 5680, 1, 0, 0, 0, 5680, 5682, 1, 0, 0, 0, 5681, 5679, 1, 0, 0, 0, 5682, 5683, 5, 3, 0, 0, 5683, 5685, 3, 768, 384, 0, 5684, 5686, 3, 164, 82, 0, 5685, 5684, 1, 0, 0, 0, 5685, 5686, 1, 0, 0, 0, 5686, 5688, 1, 0, 0, 0, 5687, 5662, 1, 0, 0, 0, 5687, 5672, 1, 0, 0, 0, 5688, 497, 1, 0, 0, 0, 5689, 5705, 5, 370, 0, 0, 5690, 5692, 5, 113, 0, 0, 5691, 5690, 1, 0, 0, 0, 5691, 5692, 1, 0, 0, 0, 5692, 5694, 1, 0, 0, 0, 5693, 5695, 5, 112, 0, 0, 5694, 5693, 1, 0, 0, 0, 5694, 5695, 1, 0, 0, 0, 5695, 5697, 1, 0, 0, 0, 5696, 5698, 3, 508, 254, 0, 5697, 5696, 1, 0, 0, 0, 5697, 5698, 1, 0, 0, 0, 5698, 5700, 1, 0, 0, 0, 5699, 5701, 3, 502, 251, 0, 5700, 5699, 1, 0, 0, 0, 5700, 5701, 1, 0, 0, 0, 5701, 5706, 1, 0, 0, 0, 5702, 5704, 3, 518, 259, 0, 5703, 5702, 1, 0, 0, 0, 5703, 5704, 1, 0, 0, 0, 5704, 5706, 1, 0, 0, 0, 5705, 5691, 1, 0, 0, 0, 5705, 5703, 1, 0, 0, 0, 5706, 5708, 1, 0, 0, 0, 5707, 5709, 3, 512, 256, 0, 5708, 5707, 1, 0, 0, 0, 5708, 5709, 1, 0, 0, 0, 5709, 499, 1, 0, 0, 0, 5710, 5725, 3, 502, 251, 0, 5711, 5713, 3, 508, 254, 0, 5712, 5711, 1, 0, 0, 0, 5712, 5713, 1, 0, 0, 0, 5713, 5726, 1, 0, 0, 0, 5714, 5715, 5, 2, 0, 0, 5715, 5720, 3, 506, 253, 0, 5716, 5717, 5, 6, 0, 0, 5717, 5719, 3, 506, 253, 0, 5718, 5716, 1, 0, 0, 0, 5719, 5722, 1, 0, 0, 0, 5720, 5718, 1, 0, 0, 0, 5720, 5721, 1, 0, 0, 0, 5721, 5723, 1, 0, 0, 0, 5722, 5720, 1, 0, 0, 0, 5723, 5724, 5, 3, 0, 0, 5724, 5726, 1, 0, 0, 0, 5725, 5712, 1, 0, 0, 0, 5725, 5714, 1, 0, 0, 0, 5726, 5728, 1, 0, 0, 0, 5727, 5729, 3, 512, 256, 0, 5728, 5727, 1, 0, 0, 0, 5728, 5729, 1, 0, 0, 0, 5729, 501, 1, 0, 0, 0, 5730, 5731, 7, 74, 0, 0, 5731, 503, 1, 0, 0, 0, 5732, 5735, 3, 816, 408, 0, 5733, 5735, 3, 502, 251, 0, 5734, 5732, 1, 0, 0, 0, 5734, 5733, 1, 0, 0, 0, 5735, 5738, 1, 0, 0, 0, 5736, 5739, 3, 54, 27, 0, 5737, 5739, 3, 196, 98, 0, 5738, 5736, 1, 0, 0, 0, 5738, 5737, 1, 0, 0, 0, 5738, 5739, 1, 0, 0, 0, 5739, 505, 1, 0, 0, 0, 5740, 5742, 7, 75, 0, 0, 5741, 5743, 7, 76, 0, 0, 5742, 5741, 1, 0, 0, 0, 5742, 5743, 1, 0, 0, 0, 5743, 5750, 1, 0, 0, 0, 5744, 5747, 5, 548, 0, 0, 5745, 5748, 3, 196, 98, 0, 5746, 5748, 3, 802, 401, 0, 5747, 5745, 1, 0, 0, 0, 5747, 5746, 1, 0, 0, 0, 5748, 5750, 1, 0, 0, 0, 5749, 5740, 1, 0, 0, 0, 5749, 5744, 1, 0, 0, 0, 5750, 507, 1, 0, 0, 0, 5751, 5753, 5, 128, 0, 0, 5752, 5754, 7, 76, 0, 0, 5753, 5752, 1, 0, 0, 0, 5753, 5754, 1, 0, 0, 0, 5754, 509, 1, 0, 0, 0, 5755, 5757, 3, 768, 384, 0, 5756, 5758, 3, 138, 69, 0, 5757, 5756, 1, 0, 0, 0, 5757, 5758, 1, 0, 0, 0, 5758, 511, 1, 0, 0, 0, 5759, 5764, 3, 510, 255, 0, 5760, 5761, 5, 6, 0, 0, 5761, 5763, 3, 510, 255, 0, 5762, 5760, 1, 0, 0, 0, 5763, 5766, 1, 0, 0, 0, 5764, 5762, 1, 0, 0, 0, 5764, 5765, 1, 0, 0, 0, 5765, 513, 1, 0, 0, 0, 5766, 5764, 1, 0, 0, 0, 5767, 5778, 5, 203, 0, 0, 5768, 5779, 3, 518, 259, 0, 5769, 5771, 5, 128, 0, 0, 5770, 5769, 1, 0, 0, 0, 5770, 5771, 1, 0, 0, 0, 5771, 5779, 1, 0, 0, 0, 5772, 5774, 3, 502, 251, 0, 5773, 5775, 3, 508, 254, 0, 5774, 5773, 1, 0, 0, 0, 5774, 5775, 1, 0, 0, 0, 5775, 5777, 1, 0, 0, 0, 5776, 5772, 1, 0, 0, 0, 5776, 5777, 1, 0, 0, 0, 5777, 5779, 1, 0, 0, 0, 5778, 5768, 1, 0, 0, 0, 5778, 5770, 1, 0, 0, 0, 5778, 5776, 1, 0, 0, 0, 5779, 5780, 1, 0, 0, 0, 5780, 5781, 3, 516, 258, 0, 5781, 515, 1, 0, 0, 0, 5782, 5792, 3, 554, 277, 0, 5783, 5792, 3, 532, 266, 0, 5784, 5792, 3, 546, 273, 0, 5785, 5792, 3, 542, 271, 0, 5786, 5792, 3, 552, 276, 0, 5787, 5792, 3, 180, 90, 0, 5788, 5792, 3, 186, 93, 0, 5789, 5792, 3, 188, 94, 0, 5790, 5792, 3, 526, 263, 0, 5791, 5782, 1, 0, 0, 0, 5791, 5783, 1, 0, 0, 0, 5791, 5784, 1, 0, 0, 0, 5791, 5785, 1, 0, 0, 0, 5791, 5786, 1, 0, 0, 0, 5791, 5787, 1, 0, 0, 0, 5791, 5788, 1, 0, 0, 0, 5791, 5789, 1, 0, 0, 0, 5791, 5790, 1, 0, 0, 0, 5792, 517, 1, 0, 0, 0, 5793, 5794, 5, 2, 0, 0, 5794, 5799, 3, 504, 252, 0, 5795, 5796, 5, 6, 0, 0, 5796, 5798, 3, 504, 252, 0, 5797, 5795, 1, 0, 0, 0, 5798, 5801, 1, 0, 0, 0, 5799, 5797, 1, 0, 0, 0, 5799, 5800, 1, 0, 0, 0, 5800, 5802, 1, 0, 0, 0, 5801, 5799, 1, 0, 0, 0, 5802, 5803, 5, 3, 0, 0, 5803, 519, 1, 0, 0, 0, 5804, 5805, 5, 290, 0, 0, 5805, 5807, 3, 812, 406, 0, 5806, 5808, 3, 522, 261, 0, 5807, 5806, 1, 0, 0, 0, 5807, 5808, 1, 0, 0, 0, 5808, 5809, 1, 0, 0, 0, 5809, 5810, 5, 36, 0, 0, 5810, 5811, 3, 524, 262, 0, 5811, 521, 1, 0, 0, 0, 5812, 5813, 5, 2, 0, 0, 5813, 5818, 3, 646, 323, 0, 5814, 5815, 5, 6, 0, 0, 5815, 5817, 3, 646, 323, 0, 5816, 5814, 1, 0, 0, 0, 5817, 5820, 1, 0, 0, 0, 5818, 5816, 1, 0, 0, 0, 5818, 5819, 1, 0, 0, 0, 5819, 5821, 1, 0, 0, 0, 5820, 5818, 1, 0, 0, 0, 5821, 5822, 5, 3, 0, 0, 5822, 523, 1, 0, 0, 0, 5823, 5829, 3, 554, 277, 0, 5824, 5829, 3, 532, 266, 0, 5825, 5829, 3, 546, 273, 0, 5826, 5829, 3, 542, 271, 0, 5827, 5829, 3, 894, 447, 0, 5828, 5823, 1, 0, 0, 0, 5828, 5824, 1, 0, 0, 0, 5828, 5825, 1, 0, 0, 0, 5828, 5826, 1, 0, 0, 0, 5828, 5827, 1, 0, 0, 0, 5829, 525, 1, 0, 0, 0, 5830, 5831, 5, 202, 0, 0, 5831, 5833, 3, 812, 406, 0, 5832, 5834, 3, 528, 264, 0, 5833, 5832, 1, 0, 0, 0, 5833, 5834, 1, 0, 0, 0, 5834, 5854, 1, 0, 0, 0, 5835, 5837, 5, 46, 0, 0, 5836, 5838, 3, 116, 58, 0, 5837, 5836, 1, 0, 0, 0, 5837, 5838, 1, 0, 0, 0, 5838, 5839, 1, 0, 0, 0, 5839, 5841, 5, 92, 0, 0, 5840, 5842, 3, 288, 144, 0, 5841, 5840, 1, 0, 0, 0, 5841, 5842, 1, 0, 0, 0, 5842, 5843, 1, 0, 0, 0, 5843, 5844, 3, 182, 91, 0, 5844, 5845, 5, 36, 0, 0, 5845, 5846, 5, 202, 0, 0, 5846, 5848, 3, 812, 406, 0, 5847, 5849, 3, 528, 264, 0, 5848, 5847, 1, 0, 0, 0, 5848, 5849, 1, 0, 0, 0, 5849, 5851, 1, 0, 0, 0, 5850, 5852, 3, 184, 92, 0, 5851, 5850, 1, 0, 0, 0, 5851, 5852, 1, 0, 0, 0, 5852, 5854, 1, 0, 0, 0, 5853, 5830, 1, 0, 0, 0, 5853, 5835, 1, 0, 0, 0, 5854, 527, 1, 0, 0, 0, 5855, 5856, 5, 2, 0, 0, 5856, 5857, 3, 724, 362, 0, 5857, 5858, 5, 3, 0, 0, 5858, 529, 1, 0, 0, 0, 5859, 5861, 5, 177, 0, 0, 5860, 5862, 5, 290, 0, 0, 5861, 5860, 1, 0, 0, 0, 5861, 5862, 1, 0, 0, 0, 5862, 5865, 1, 0, 0, 0, 5863, 5866, 3, 812, 406, 0, 5864, 5866, 5, 30, 0, 0, 5865, 5863, 1, 0, 0, 0, 5865, 5864, 1, 0, 0, 0, 5866, 531, 1, 0, 0, 0, 5867, 5869, 3, 566, 283, 0, 5868, 5867, 1, 0, 0, 0, 5868, 5869, 1, 0, 0, 0, 5869, 5870, 1, 0, 0, 0, 5870, 5871, 5, 241, 0, 0, 5871, 5872, 5, 71, 0, 0, 5872, 5875, 3, 768, 384, 0, 5873, 5874, 5, 36, 0, 0, 5874, 5876, 3, 812, 406, 0, 5875, 5873, 1, 0, 0, 0, 5875, 5876, 1, 0, 0, 0, 5876, 5877, 1, 0, 0, 0, 5877, 5899, 3, 534, 267, 0, 5878, 5879, 5, 80, 0, 0, 5879, 5887, 5, 464, 0, 0, 5880, 5882, 3, 354, 177, 0, 5881, 5883, 3, 632, 316, 0, 5882, 5881, 1, 0, 0, 0, 5882, 5883, 1, 0, 0, 0, 5883, 5888, 1, 0, 0, 0, 5884, 5885, 5, 80, 0, 0, 5885, 5886, 5, 45, 0, 0, 5886, 5888, 3, 812, 406, 0, 5887, 5880, 1, 0, 0, 0, 5887, 5884, 1, 0, 0, 0, 5887, 5888, 1, 0, 0, 0, 5888, 5889, 1, 0, 0, 0, 5889, 5897, 5, 57, 0, 0, 5890, 5891, 5, 369, 0, 0, 5891, 5892, 5, 333, 0, 0, 5892, 5894, 3, 548, 274, 0, 5893, 5895, 3, 632, 316, 0, 5894, 5893, 1, 0, 0, 0, 5894, 5895, 1, 0, 0, 0, 5895, 5898, 1, 0, 0, 0, 5896, 5898, 5, 270, 0, 0, 5897, 5890, 1, 0, 0, 0, 5897, 5896, 1, 0, 0, 0, 5898, 5900, 1, 0, 0, 0, 5899, 5878, 1, 0, 0, 0, 5899, 5900, 1, 0, 0, 0, 5900, 5902, 1, 0, 0, 0, 5901, 5903, 3, 540, 270, 0, 5902, 5901, 1, 0, 0, 0, 5902, 5903, 1, 0, 0, 0, 5903, 533, 1, 0, 0, 0, 5904, 5905, 5, 2, 0, 0, 5905, 5906, 3, 536, 268, 0, 5906, 5907, 5, 3, 0, 0, 5907, 5909, 1, 0, 0, 0, 5908, 5904, 1, 0, 0, 0, 5908, 5909, 1, 0, 0, 0, 5909, 5913, 1, 0, 0, 0, 5910, 5911, 5, 463, 0, 0, 5911, 5912, 7, 77, 0, 0, 5912, 5914, 5, 450, 0, 0, 5913, 5910, 1, 0, 0, 0, 5913, 5914, 1, 0, 0, 0, 5914, 5917, 1, 0, 0, 0, 5915, 5918, 3, 904, 452, 0, 5916, 5918, 3, 554, 277, 0, 5917, 5915, 1, 0, 0, 0, 5917, 5916, 1, 0, 0, 0, 5918, 535, 1, 0, 0, 0, 5919, 5924, 3, 538, 269, 0, 5920, 5921, 5, 6, 0, 0, 5921, 5923, 3, 538, 269, 0, 5922, 5920, 1, 0, 0, 0, 5923, 5926, 1, 0, 0, 0, 5924, 5922, 1, 0, 0, 0, 5924, 5925, 1, 0, 0, 0, 5925, 537, 1, 0, 0, 0, 5926, 5924, 1, 0, 0, 0, 5927, 5928, 3, 794, 397, 0, 5928, 5929, 3, 748, 374, 0, 5929, 539, 1, 0, 0, 0, 5930, 5931, 5, 87, 0, 0, 5931, 5932, 3, 750, 375, 0, 5932, 541, 1, 0, 0, 0, 5933, 5935, 3, 566, 283, 0, 5934, 5933, 1, 0, 0, 0, 5934, 5935, 1, 0, 0, 0, 5935, 5936, 1, 0, 0, 0, 5936, 5937, 5, 182, 0, 0, 5937, 5938, 5, 64, 0, 0, 5938, 5941, 3, 624, 312, 0, 5939, 5940, 5, 100, 0, 0, 5940, 5942, 3, 606, 303, 0, 5941, 5939, 1, 0, 0, 0, 5941, 5942, 1, 0, 0, 0, 5942, 5944, 1, 0, 0, 0, 5943, 5945, 3, 634, 317, 0, 5944, 5943, 1, 0, 0, 0, 5944, 5945, 1, 0, 0, 0, 5945, 5947, 1, 0, 0, 0, 5946, 5948, 3, 540, 270, 0, 5947, 5946, 1, 0, 0, 0, 5947, 5948, 1, 0, 0, 0, 5948, 543, 1, 0, 0, 0, 5949, 5951, 5, 256, 0, 0, 5950, 5952, 5, 92, 0, 0, 5951, 5950, 1, 0, 0, 0, 5951, 5952, 1, 0, 0, 0, 5952, 5953, 1, 0, 0, 0, 5953, 5968, 3, 622, 311, 0, 5954, 5965, 5, 68, 0, 0, 5955, 5956, 7, 78, 0, 0, 5956, 5966, 7, 79, 0, 0, 5957, 5962, 5, 334, 0, 0, 5958, 5959, 5, 369, 0, 0, 5959, 5963, 5, 201, 0, 0, 5960, 5961, 5, 414, 0, 0, 5961, 5963, 5, 201, 0, 0, 5962, 5958, 1, 0, 0, 0, 5962, 5960, 1, 0, 0, 0, 5962, 5963, 1, 0, 0, 0, 5963, 5966, 1, 0, 0, 0, 5964, 5966, 5, 201, 0, 0, 5965, 5955, 1, 0, 0, 0, 5965, 5957, 1, 0, 0, 0, 5965, 5964, 1, 0, 0, 0, 5966, 5967, 1, 0, 0, 0, 5967, 5969, 5, 263, 0, 0, 5968, 5954, 1, 0, 0, 0, 5968, 5969, 1, 0, 0, 0, 5969, 5971, 1, 0, 0, 0, 5970, 5972, 5, 272, 0, 0, 5971, 5970, 1, 0, 0, 0, 5971, 5972, 1, 0, 0, 0, 5972, 545, 1, 0, 0, 0, 5973, 5975, 3, 566, 283, 0, 5974, 5973, 1, 0, 0, 0, 5974, 5975, 1, 0, 0, 0, 5975, 5976, 1, 0, 0, 0, 5976, 5977, 5, 369, 0, 0, 5977, 5978, 3, 624, 312, 0, 5978, 5979, 5, 333, 0, 0, 5979, 5981, 3, 548, 274, 0, 5980, 5982, 3, 604, 302, 0, 5981, 5980, 1, 0, 0, 0, 5981, 5982, 1, 0, 0, 0, 5982, 5984, 1, 0, 0, 0, 5983, 5985, 3, 634, 317, 0, 5984, 5983, 1, 0, 0, 0, 5984, 5985, 1, 0, 0, 0, 5985, 5987, 1, 0, 0, 0, 5986, 5988, 3, 540, 270, 0, 5987, 5986, 1, 0, 0, 0, 5987, 5988, 1, 0, 0, 0, 5988, 547, 1, 0, 0, 0, 5989, 5994, 3, 550, 275, 0, 5990, 5991, 5, 6, 0, 0, 5991, 5993, 3, 550, 275, 0, 5992, 5990, 1, 0, 0, 0, 5993, 5996, 1, 0, 0, 0, 5994, 5992, 1, 0, 0, 0, 5994, 5995, 1, 0, 0, 0, 5995, 549, 1, 0, 0, 0, 5996, 5994, 1, 0, 0, 0, 5997, 5998, 3, 538, 269, 0, 5998, 5999, 5, 10, 0, 0, 5999, 6000, 3, 668, 334, 0, 6000, 6016, 1, 0, 0, 0, 6001, 6002, 5, 2, 0, 0, 6002, 6003, 3, 536, 268, 0, 6003, 6004, 5, 3, 0, 0, 6004, 6013, 5, 10, 0, 0, 6005, 6007, 5, 414, 0, 0, 6006, 6005, 1, 0, 0, 0, 6006, 6007, 1, 0, 0, 0, 6007, 6008, 1, 0, 0, 0, 6008, 6014, 3, 668, 334, 0, 6009, 6010, 5, 2, 0, 0, 6010, 6011, 3, 560, 280, 0, 6011, 6012, 5, 3, 0, 0, 6012, 6014, 1, 0, 0, 0, 6013, 6006, 1, 0, 0, 0, 6013, 6009, 1, 0, 0, 0, 6014, 6016, 1, 0, 0, 0, 6015, 5997, 1, 0, 0, 0, 6015, 6001, 1, 0, 0, 0, 6016, 551, 1, 0, 0, 0, 6017, 6018, 5, 178, 0, 0, 6018, 6027, 3, 812, 406, 0, 6019, 6021, 5, 269, 0, 0, 6020, 6019, 1, 0, 0, 0, 6020, 6021, 1, 0, 0, 0, 6021, 6022, 1, 0, 0, 0, 6022, 6026, 5, 324, 0, 0, 6023, 6026, 5, 107, 0, 0, 6024, 6026, 5, 240, 0, 0, 6025, 6020, 1, 0, 0, 0, 6025, 6023, 1, 0, 0, 0, 6025, 6024, 1, 0, 0, 0, 6026, 6029, 1, 0, 0, 0, 6027, 6025, 1, 0, 0, 0, 6027, 6028, 1, 0, 0, 0, 6028, 6030, 1, 0, 0, 0, 6029, 6027, 1, 0, 0, 0, 6030, 6033, 5, 172, 0, 0, 6031, 6032, 7, 27, 0, 0, 6032, 6034, 5, 217, 0, 0, 6033, 6031, 1, 0, 0, 0, 6033, 6034, 1, 0, 0, 0, 6034, 6035, 1, 0, 0, 0, 6035, 6036, 5, 62, 0, 0, 6036, 6037, 3, 554, 277, 0, 6037, 553, 1, 0, 0, 0, 6038, 6041, 3, 558, 279, 0, 6039, 6041, 3, 556, 278, 0, 6040, 6038, 1, 0, 0, 0, 6040, 6039, 1, 0, 0, 0, 6041, 555, 1, 0, 0, 0, 6042, 6045, 5, 2, 0, 0, 6043, 6046, 3, 558, 279, 0, 6044, 6046, 3, 556, 278, 0, 6045, 6043, 1, 0, 0, 0, 6045, 6044, 1, 0, 0, 0, 6046, 6047, 1, 0, 0, 0, 6047, 6048, 5, 3, 0, 0, 6048, 557, 1, 0, 0, 0, 6049, 6051, 3, 566, 283, 0, 6050, 6049, 1, 0, 0, 0, 6050, 6051, 1, 0, 0, 0, 6051, 6052, 1, 0, 0, 0, 6052, 6054, 3, 560, 280, 0, 6053, 6055, 3, 580, 290, 0, 6054, 6053, 1, 0, 0, 0, 6054, 6055, 1, 0, 0, 0, 6055, 6064, 1, 0, 0, 0, 6056, 6058, 3, 600, 300, 0, 6057, 6059, 3, 584, 292, 0, 6058, 6057, 1, 0, 0, 0, 6058, 6059, 1, 0, 0, 0, 6059, 6065, 1, 0, 0, 0, 6060, 6062, 3, 584, 292, 0, 6061, 6063, 3, 600, 300, 0, 6062, 6061, 1, 0, 0, 0, 6062, 6063, 1, 0, 0, 0, 6063, 6065, 1, 0, 0, 0, 6064, 6056, 1, 0, 0, 0, 6064, 6060, 1, 0, 0, 0, 6064, 6065, 1, 0, 0, 0, 6065, 559, 1, 0, 0, 0, 6066, 6069, 3, 562, 281, 0, 6067, 6069, 3, 556, 278, 0, 6068, 6066, 1, 0, 0, 0, 6068, 6067, 1, 0, 0, 0, 6069, 561, 1, 0, 0, 0, 6070, 6080, 5, 88, 0, 0, 6071, 6073, 5, 30, 0, 0, 6072, 6071, 1, 0, 0, 0, 6072, 6073, 1, 0, 0, 0, 6073, 6075, 1, 0, 0, 0, 6074, 6076, 3, 574, 287, 0, 6075, 6074, 1, 0, 0, 0, 6075, 6076, 1, 0, 0, 0, 6076, 6081, 1, 0, 0, 0, 6077, 6079, 3, 578, 289, 0, 6078, 6077, 1, 0, 0, 0, 6078, 6079, 1, 0, 0, 0, 6079, 6081, 1, 0, 0, 0, 6080, 6072, 1, 0, 0, 0, 6080, 6078, 1, 0, 0, 0, 6081, 6082, 1, 0, 0, 0, 6082, 6093, 3, 924, 462, 0, 6083, 6093, 3, 602, 301, 0, 6084, 6085, 5, 92, 0, 0, 6085, 6093, 3, 618, 309, 0, 6086, 6087, 3, 556, 278, 0, 6087, 6090, 3, 564, 282, 0, 6088, 6091, 3, 562, 281, 0, 6089, 6091, 3, 556, 278, 0, 6090, 6088, 1, 0, 0, 0, 6090, 6089, 1, 0, 0, 0, 6091, 6093, 1, 0, 0, 0, 6092, 6070, 1, 0, 0, 0, 6092, 6083, 1, 0, 0, 0, 6092, 6084, 1, 0, 0, 0, 6092, 6086, 1, 0, 0, 0, 6093, 6101, 1, 0, 0, 0, 6094, 6097, 3, 564, 282, 0, 6095, 6098, 3, 562, 281, 0, 6096, 6098, 3, 556, 278, 0, 6097, 6095, 1, 0, 0, 0, 6097, 6096, 1, 0, 0, 0, 6098, 6100, 1, 0, 0, 0, 6099, 6094, 1, 0, 0, 0, 6100, 6103, 1, 0, 0, 0, 6101, 6099, 1, 0, 0, 0, 6101, 6102, 1, 0, 0, 0, 6102, 563, 1, 0, 0, 0, 6103, 6101, 1, 0, 0, 0, 6104, 6106, 7, 80, 0, 0, 6105, 6107, 7, 81, 0, 0, 6106, 6105, 1, 0, 0, 0, 6106, 6107, 1, 0, 0, 0, 6107, 565, 1, 0, 0, 0, 6108, 6110, 5, 105, 0, 0, 6109, 6111, 5, 303, 0, 0, 6110, 6109, 1, 0, 0, 0, 6110, 6111, 1, 0, 0, 0, 6111, 6112, 1, 0, 0, 0, 6112, 6117, 3, 568, 284, 0, 6113, 6114, 5, 6, 0, 0, 6114, 6116, 3, 568, 284, 0, 6115, 6113, 1, 0, 0, 0, 6116, 6119, 1, 0, 0, 0, 6117, 6115, 1, 0, 0, 0, 6117, 6118, 1, 0, 0, 0, 6118, 567, 1, 0, 0, 0, 6119, 6117, 1, 0, 0, 0, 6120, 6122, 3, 812, 406, 0, 6121, 6123, 3, 138, 69, 0, 6122, 6121, 1, 0, 0, 0, 6122, 6123, 1, 0, 0, 0, 6123, 6124, 1, 0, 0, 0, 6124, 6129, 5, 36, 0, 0, 6125, 6127, 5, 77, 0, 0, 6126, 6125, 1, 0, 0, 0, 6126, 6127, 1, 0, 0, 0, 6127, 6128, 1, 0, 0, 0, 6128, 6130, 5, 259, 0, 0, 6129, 6126, 1, 0, 0, 0, 6129, 6130, 1, 0, 0, 0, 6130, 6131, 1, 0, 0, 0, 6131, 6132, 5, 2, 0, 0, 6132, 6133, 3, 524, 262, 0, 6133, 6135, 5, 3, 0, 0, 6134, 6136, 3, 570, 285, 0, 6135, 6134, 1, 0, 0, 0, 6135, 6136, 1, 0, 0, 0, 6136, 6138, 1, 0, 0, 0, 6137, 6139, 3, 572, 286, 0, 6138, 6137, 1, 0, 0, 0, 6138, 6139, 1, 0, 0, 0, 6139, 569, 1, 0, 0, 0, 6140, 6141, 5, 325, 0, 0, 6141, 6142, 7, 82, 0, 0, 6142, 6143, 5, 207, 0, 0, 6143, 6144, 5, 147, 0, 0, 6144, 6145, 3, 142, 71, 0, 6145, 6146, 5, 333, 0, 0, 6146, 6147, 3, 794, 397, 0, 6147, 571, 1, 0, 0, 0, 6148, 6149, 5, 173, 0, 0, 6149, 6150, 3, 142, 71, 0, 6150, 6151, 5, 333, 0, 0, 6151, 6157, 3, 794, 397, 0, 6152, 6153, 5, 94, 0, 0, 6153, 6154, 3, 812, 406, 0, 6154, 6155, 5, 53, 0, 0, 6155, 6156, 3, 812, 406, 0, 6156, 6158, 1, 0, 0, 0, 6157, 6152, 1, 0, 0, 0, 6157, 6158, 1, 0, 0, 0, 6158, 6159, 1, 0, 0, 0, 6159, 6160, 5, 100, 0, 0, 6160, 6161, 3, 794, 397, 0, 6161, 573, 1, 0, 0, 0, 6162, 6168, 5, 71, 0, 0, 6163, 6165, 5, 346, 0, 0, 6164, 6163, 1, 0, 0, 0, 6164, 6165, 1, 0, 0, 0, 6165, 6166, 1, 0, 0, 0, 6166, 6169, 3, 576, 288, 0, 6167, 6169, 3, 724, 362, 0, 6168, 6164, 1, 0, 0, 0, 6168, 6167, 1, 0, 0, 0, 6169, 575, 1, 0, 0, 0, 6170, 6172, 7, 21, 0, 0, 6171, 6170, 1, 0, 0, 0, 6171, 6172, 1, 0, 0, 0, 6172, 6173, 1, 0, 0, 0, 6173, 6175, 7, 22, 0, 0, 6174, 6176, 5, 92, 0, 0, 6175, 6174, 1, 0, 0, 0, 6175, 6176, 1, 0, 0, 0, 6176, 6177, 1, 0, 0, 0, 6177, 6186, 3, 766, 383, 0, 6178, 6180, 5, 367, 0, 0, 6179, 6178, 1, 0, 0, 0, 6179, 6180, 1, 0, 0, 0, 6180, 6182, 1, 0, 0, 0, 6181, 6183, 5, 92, 0, 0, 6182, 6181, 1, 0, 0, 0, 6182, 6183, 1, 0, 0, 0, 6183, 6184, 1, 0, 0, 0, 6184, 6186, 3, 766, 383, 0, 6185, 6171, 1, 0, 0, 0, 6185, 6179, 1, 0, 0, 0, 6186, 577, 1, 0, 0, 0, 6187, 6190, 5, 56, 0, 0, 6188, 6189, 5, 80, 0, 0, 6189, 6191, 3, 528, 264, 0, 6190, 6188, 1, 0, 0, 0, 6190, 6191, 1, 0, 0, 0, 6191, 579, 1, 0, 0, 0, 6192, 6193, 5, 83, 0, 0, 6193, 6194, 5, 147, 0, 0, 6194, 6199, 3, 582, 291, 0, 6195, 6196, 5, 6, 0, 0, 6196, 6198, 3, 582, 291, 0, 6197, 6195, 1, 0, 0, 0, 6198, 6201, 1, 0, 0, 0, 6199, 6197, 1, 0, 0, 0, 6199, 6200, 1, 0, 0, 0, 6200, 581, 1, 0, 0, 0, 6201, 6199, 1, 0, 0, 0, 6202, 6206, 3, 728, 364, 0, 6203, 6204, 5, 100, 0, 0, 6204, 6207, 3, 720, 360, 0, 6205, 6207, 7, 56, 0, 0, 6206, 6203, 1, 0, 0, 0, 6206, 6205, 1, 0, 0, 0, 6206, 6207, 1, 0, 0, 0, 6207, 6210, 1, 0, 0, 0, 6208, 6209, 5, 273, 0, 0, 6209, 6211, 7, 57, 0, 0, 6210, 6208, 1, 0, 0, 0, 6210, 6211, 1, 0, 0, 0, 6211, 583, 1, 0, 0, 0, 6212, 6214, 3, 590, 295, 0, 6213, 6215, 3, 588, 294, 0, 6214, 6213, 1, 0, 0, 0, 6214, 6215, 1, 0, 0, 0, 6215, 6224, 1, 0, 0, 0, 6216, 6219, 3, 586, 293, 0, 6217, 6219, 3, 588, 294, 0, 6218, 6216, 1, 0, 0, 0, 6218, 6217, 1, 0, 0, 0, 6219, 6221, 1, 0, 0, 0, 6220, 6222, 3, 590, 295, 0, 6221, 6220, 1, 0, 0, 0, 6221, 6222, 1, 0, 0, 0, 6222, 6224, 1, 0, 0, 0, 6223, 6212, 1, 0, 0, 0, 6223, 6218, 1, 0, 0, 0, 6224, 585, 1, 0, 0, 0, 6225, 6228, 5, 74, 0, 0, 6226, 6229, 3, 668, 334, 0, 6227, 6229, 5, 30, 0, 0, 6228, 6226, 1, 0, 0, 0, 6228, 6227, 1, 0, 0, 0, 6229, 6232, 1, 0, 0, 0, 6230, 6231, 5, 6, 0, 0, 6231, 6233, 3, 668, 334, 0, 6232, 6230, 1, 0, 0, 0, 6232, 6233, 1, 0, 0, 0, 6233, 587, 1, 0, 0, 0, 6234, 6235, 5, 61, 0, 0, 6235, 6237, 7, 83, 0, 0, 6236, 6238, 3, 592, 296, 0, 6237, 6236, 1, 0, 0, 0, 6237, 6238, 1, 0, 0, 0, 6238, 6239, 1, 0, 0, 0, 6239, 6243, 7, 84, 0, 0, 6240, 6244, 5, 81, 0, 0, 6241, 6242, 5, 105, 0, 0, 6242, 6244, 5, 467, 0, 0, 6243, 6240, 1, 0, 0, 0, 6243, 6241, 1, 0, 0, 0, 6244, 589, 1, 0, 0, 0, 6245, 6250, 5, 79, 0, 0, 6246, 6247, 3, 592, 296, 0, 6247, 6248, 7, 84, 0, 0, 6248, 6251, 1, 0, 0, 0, 6249, 6251, 3, 668, 334, 0, 6250, 6246, 1, 0, 0, 0, 6250, 6249, 1, 0, 0, 0, 6251, 591, 1, 0, 0, 0, 6252, 6253, 7, 30, 0, 0, 6253, 6256, 7, 85, 0, 0, 6254, 6256, 3, 676, 338, 0, 6255, 6252, 1, 0, 0, 0, 6255, 6254, 1, 0, 0, 0, 6256, 593, 1, 0, 0, 0, 6257, 6258, 5, 66, 0, 0, 6258, 6260, 5, 147, 0, 0, 6259, 6261, 7, 81, 0, 0, 6260, 6259, 1, 0, 0, 0, 6260, 6261, 1, 0, 0, 0, 6261, 6262, 1, 0, 0, 0, 6262, 6263, 3, 596, 298, 0, 6263, 595, 1, 0, 0, 0, 6264, 6269, 3, 598, 299, 0, 6265, 6266, 5, 6, 0, 0, 6266, 6268, 3, 598, 299, 0, 6267, 6265, 1, 0, 0, 0, 6268, 6271, 1, 0, 0, 0, 6269, 6267, 1, 0, 0, 0, 6269, 6270, 1, 0, 0, 0, 6270, 597, 1, 0, 0, 0, 6271, 6269, 1, 0, 0, 0, 6272, 6296, 3, 728, 364, 0, 6273, 6274, 5, 2, 0, 0, 6274, 6296, 5, 3, 0, 0, 6275, 6277, 7, 86, 0, 0, 6276, 6275, 1, 0, 0, 0, 6276, 6277, 1, 0, 0, 0, 6277, 6278, 1, 0, 0, 0, 6278, 6279, 5, 2, 0, 0, 6279, 6284, 3, 728, 364, 0, 6280, 6281, 5, 6, 0, 0, 6281, 6283, 3, 728, 364, 0, 6282, 6280, 1, 0, 0, 0, 6283, 6286, 1, 0, 0, 0, 6284, 6282, 1, 0, 0, 0, 6284, 6285, 1, 0, 0, 0, 6285, 6287, 1, 0, 0, 0, 6286, 6284, 1, 0, 0, 0, 6287, 6288, 5, 3, 0, 0, 6288, 6296, 1, 0, 0, 0, 6289, 6290, 5, 470, 0, 0, 6290, 6291, 5, 471, 0, 0, 6291, 6292, 5, 2, 0, 0, 6292, 6293, 3, 596, 298, 0, 6293, 6294, 5, 3, 0, 0, 6294, 6296, 1, 0, 0, 0, 6295, 6272, 1, 0, 0, 0, 6295, 6273, 1, 0, 0, 0, 6295, 6276, 1, 0, 0, 0, 6295, 6289, 1, 0, 0, 0, 6296, 599, 1, 0, 0, 0, 6297, 6307, 5, 62, 0, 0, 6298, 6299, 5, 269, 0, 0, 6299, 6301, 5, 245, 0, 0, 6300, 6298, 1, 0, 0, 0, 6300, 6301, 1, 0, 0, 0, 6301, 6302, 1, 0, 0, 0, 6302, 6308, 5, 369, 0, 0, 6303, 6305, 5, 245, 0, 0, 6304, 6303, 1, 0, 0, 0, 6304, 6305, 1, 0, 0, 0, 6305, 6306, 1, 0, 0, 0, 6306, 6308, 5, 334, 0, 0, 6307, 6300, 1, 0, 0, 0, 6307, 6304, 1, 0, 0, 0, 6308, 6311, 1, 0, 0, 0, 6309, 6310, 5, 275, 0, 0, 6310, 6312, 3, 754, 377, 0, 6311, 6309, 1, 0, 0, 0, 6311, 6312, 1, 0, 0, 0, 6312, 6316, 1, 0, 0, 0, 6313, 6317, 5, 272, 0, 0, 6314, 6315, 5, 465, 0, 0, 6315, 6317, 5, 466, 0, 0, 6316, 6313, 1, 0, 0, 0, 6316, 6314, 1, 0, 0, 0, 6316, 6317, 1, 0, 0, 0, 6317, 6319, 1, 0, 0, 0, 6318, 6297, 1, 0, 0, 0, 6319, 6320, 1, 0, 0, 0, 6320, 6318, 1, 0, 0, 0, 6320, 6321, 1, 0, 0, 0, 6321, 6326, 1, 0, 0, 0, 6322, 6323, 5, 62, 0, 0, 6323, 6324, 5, 300, 0, 0, 6324, 6326, 5, 81, 0, 0, 6325, 6318, 1, 0, 0, 0, 6325, 6322, 1, 0, 0, 0, 6326, 601, 1, 0, 0, 0, 6327, 6328, 5, 422, 0, 0, 6328, 6333, 3, 528, 264, 0, 6329, 6330, 5, 6, 0, 0, 6330, 6332, 3, 528, 264, 0, 6331, 6329, 1, 0, 0, 0, 6332, 6335, 1, 0, 0, 0, 6333, 6331, 1, 0, 0, 0, 6333, 6334, 1, 0, 0, 0, 6334, 603, 1, 0, 0, 0, 6335, 6333, 1, 0, 0, 0, 6336, 6337, 5, 64, 0, 0, 6337, 6338, 3, 606, 303, 0, 6338, 605, 1, 0, 0, 0, 6339, 6344, 3, 608, 304, 0, 6340, 6341, 5, 6, 0, 0, 6341, 6343, 3, 608, 304, 0, 6342, 6340, 1, 0, 0, 0, 6343, 6346, 1, 0, 0, 0, 6344, 6342, 1, 0, 0, 0, 6344, 6345, 1, 0, 0, 0, 6345, 607, 1, 0, 0, 0, 6346, 6344, 1, 0, 0, 0, 6347, 6362, 3, 618, 309, 0, 6348, 6350, 5, 81, 0, 0, 6349, 6348, 1, 0, 0, 0, 6349, 6350, 1, 0, 0, 0, 6350, 6351, 1, 0, 0, 0, 6351, 6353, 3, 772, 386, 0, 6352, 6354, 5, 9, 0, 0, 6353, 6352, 1, 0, 0, 0, 6353, 6354, 1, 0, 0, 0, 6354, 6356, 1, 0, 0, 0, 6355, 6357, 3, 142, 71, 0, 6356, 6355, 1, 0, 0, 0, 6356, 6357, 1, 0, 0, 0, 6357, 6359, 1, 0, 0, 0, 6358, 6360, 3, 632, 316, 0, 6359, 6358, 1, 0, 0, 0, 6359, 6360, 1, 0, 0, 0, 6360, 6362, 1, 0, 0, 0, 6361, 6347, 1, 0, 0, 0, 6361, 6349, 1, 0, 0, 0, 6362, 6364, 1, 0, 0, 0, 6363, 6365, 3, 610, 305, 0, 6364, 6363, 1, 0, 0, 0, 6364, 6365, 1, 0, 0, 0, 6365, 6367, 1, 0, 0, 0, 6366, 6368, 3, 626, 313, 0, 6367, 6366, 1, 0, 0, 0, 6367, 6368, 1, 0, 0, 0, 6368, 6411, 1, 0, 0, 0, 6369, 6371, 5, 72, 0, 0, 6370, 6369, 1, 0, 0, 0, 6370, 6371, 1, 0, 0, 0, 6371, 6384, 1, 0, 0, 0, 6372, 6374, 3, 640, 320, 0, 6373, 6375, 3, 610, 305, 0, 6374, 6373, 1, 0, 0, 0, 6374, 6375, 1, 0, 0, 0, 6375, 6385, 1, 0, 0, 0, 6376, 6378, 3, 628, 314, 0, 6377, 6379, 3, 612, 306, 0, 6378, 6377, 1, 0, 0, 0, 6378, 6379, 1, 0, 0, 0, 6379, 6385, 1, 0, 0, 0, 6380, 6382, 3, 556, 278, 0, 6381, 6383, 3, 610, 305, 0, 6382, 6381, 1, 0, 0, 0, 6382, 6383, 1, 0, 0, 0, 6383, 6385, 1, 0, 0, 0, 6384, 6372, 1, 0, 0, 0, 6384, 6376, 1, 0, 0, 0, 6384, 6380, 1, 0, 0, 0, 6385, 6411, 1, 0, 0, 0, 6386, 6387, 5, 2, 0, 0, 6387, 6404, 3, 608, 304, 0, 6388, 6389, 5, 110, 0, 0, 6389, 6390, 5, 118, 0, 0, 6390, 6405, 3, 608, 304, 0, 6391, 6393, 5, 121, 0, 0, 6392, 6394, 3, 614, 307, 0, 6393, 6392, 1, 0, 0, 0, 6393, 6394, 1, 0, 0, 0, 6394, 6395, 1, 0, 0, 0, 6395, 6396, 5, 118, 0, 0, 6396, 6405, 3, 608, 304, 0, 6397, 6399, 3, 614, 307, 0, 6398, 6397, 1, 0, 0, 0, 6398, 6399, 1, 0, 0, 0, 6399, 6400, 1, 0, 0, 0, 6400, 6401, 5, 118, 0, 0, 6401, 6402, 3, 608, 304, 0, 6402, 6403, 3, 616, 308, 0, 6403, 6405, 1, 0, 0, 0, 6404, 6388, 1, 0, 0, 0, 6404, 6391, 1, 0, 0, 0, 6404, 6398, 1, 0, 0, 0, 6404, 6405, 1, 0, 0, 0, 6405, 6406, 1, 0, 0, 0, 6406, 6408, 5, 3, 0, 0, 6407, 6409, 3, 610, 305, 0, 6408, 6407, 1, 0, 0, 0, 6408, 6409, 1, 0, 0, 0, 6409, 6411, 1, 0, 0, 0, 6410, 6361, 1, 0, 0, 0, 6410, 6370, 1, 0, 0, 0, 6410, 6386, 1, 0, 0, 0, 6411, 6430, 1, 0, 0, 0, 6412, 6413, 5, 110, 0, 0, 6413, 6414, 5, 118, 0, 0, 6414, 6429, 3, 608, 304, 0, 6415, 6417, 5, 121, 0, 0, 6416, 6418, 3, 614, 307, 0, 6417, 6416, 1, 0, 0, 0, 6417, 6418, 1, 0, 0, 0, 6418, 6419, 1, 0, 0, 0, 6419, 6420, 5, 118, 0, 0, 6420, 6429, 3, 608, 304, 0, 6421, 6423, 3, 614, 307, 0, 6422, 6421, 1, 0, 0, 0, 6422, 6423, 1, 0, 0, 0, 6423, 6424, 1, 0, 0, 0, 6424, 6425, 5, 118, 0, 0, 6425, 6426, 3, 608, 304, 0, 6426, 6427, 3, 616, 308, 0, 6427, 6429, 1, 0, 0, 0, 6428, 6412, 1, 0, 0, 0, 6428, 6415, 1, 0, 0, 0, 6428, 6422, 1, 0, 0, 0, 6429, 6432, 1, 0, 0, 0, 6430, 6428, 1, 0, 0, 0, 6430, 6431, 1, 0, 0, 0, 6431, 609, 1, 0, 0, 0, 6432, 6430, 1, 0, 0, 0, 6433, 6435, 5, 36, 0, 0, 6434, 6433, 1, 0, 0, 0, 6434, 6435, 1, 0, 0, 0, 6435, 6436, 1, 0, 0, 0, 6436, 6441, 3, 812, 406, 0, 6437, 6438, 5, 2, 0, 0, 6438, 6439, 3, 778, 389, 0, 6439, 6440, 5, 3, 0, 0, 6440, 6442, 1, 0, 0, 0, 6441, 6437, 1, 0, 0, 0, 6441, 6442, 1, 0, 0, 0, 6442, 611, 1, 0, 0, 0, 6443, 6456, 3, 610, 305, 0, 6444, 6446, 5, 36, 0, 0, 6445, 6447, 3, 812, 406, 0, 6446, 6445, 1, 0, 0, 0, 6446, 6447, 1, 0, 0, 0, 6447, 6450, 1, 0, 0, 0, 6448, 6450, 3, 812, 406, 0, 6449, 6444, 1, 0, 0, 0, 6449, 6448, 1, 0, 0, 0, 6450, 6451, 1, 0, 0, 0, 6451, 6452, 5, 2, 0, 0, 6452, 6453, 3, 636, 318, 0, 6453, 6454, 5, 3, 0, 0, 6454, 6456, 1, 0, 0, 0, 6455, 6443, 1, 0, 0, 0, 6455, 6449, 1, 0, 0, 0, 6456, 613, 1, 0, 0, 0, 6457, 6459, 7, 87, 0, 0, 6458, 6460, 5, 123, 0, 0, 6459, 6458, 1, 0, 0, 0, 6459, 6460, 1, 0, 0, 0, 6460, 615, 1, 0, 0, 0, 6461, 6462, 5, 100, 0, 0, 6462, 6466, 3, 138, 69, 0, 6463, 6464, 5, 80, 0, 0, 6464, 6466, 3, 668, 334, 0, 6465, 6461, 1, 0, 0, 0, 6465, 6463, 1, 0, 0, 0, 6466, 617, 1, 0, 0, 0, 6467, 6483, 3, 316, 158, 0, 6468, 6474, 5, 81, 0, 0, 6469, 6475, 3, 768, 384, 0, 6470, 6471, 5, 2, 0, 0, 6471, 6472, 3, 768, 384, 0, 6472, 6473, 5, 3, 0, 0, 6473, 6475, 1, 0, 0, 0, 6474, 6469, 1, 0, 0, 0, 6474, 6470, 1, 0, 0, 0, 6475, 6483, 1, 0, 0, 0, 6476, 6477, 5, 68, 0, 0, 6477, 6480, 5, 323, 0, 0, 6478, 6481, 3, 784, 392, 0, 6479, 6481, 5, 111, 0, 0, 6480, 6478, 1, 0, 0, 0, 6480, 6479, 1, 0, 0, 0, 6481, 6483, 1, 0, 0, 0, 6482, 6467, 1, 0, 0, 0, 6482, 6468, 1, 0, 0, 0, 6482, 6476, 1, 0, 0, 0, 6483, 619, 1, 0, 0, 0, 6484, 6485, 5, 92, 0, 0, 6485, 6487, 3, 316, 158, 0, 6486, 6488, 3, 138, 69, 0, 6487, 6486, 1, 0, 0, 0, 6487, 6488, 1, 0, 0, 0, 6488, 6490, 1, 0, 0, 0, 6489, 6491, 3, 632, 316, 0, 6490, 6489, 1, 0, 0, 0, 6490, 6491, 1, 0, 0, 0, 6491, 6509, 1, 0, 0, 0, 6492, 6493, 5, 92, 0, 0, 6493, 6499, 5, 81, 0, 0, 6494, 6500, 3, 768, 384, 0, 6495, 6496, 5, 2, 0, 0, 6496, 6497, 3, 768, 384, 0, 6497, 6498, 5, 3, 0, 0, 6498, 6500, 1, 0, 0, 0, 6499, 6494, 1, 0, 0, 0, 6499, 6495, 1, 0, 0, 0, 6500, 6509, 1, 0, 0, 0, 6501, 6502, 5, 350, 0, 0, 6502, 6503, 5, 68, 0, 0, 6503, 6506, 5, 323, 0, 0, 6504, 6507, 3, 784, 392, 0, 6505, 6507, 5, 111, 0, 0, 6506, 6504, 1, 0, 0, 0, 6506, 6505, 1, 0, 0, 0, 6507, 6509, 1, 0, 0, 0, 6508, 6484, 1, 0, 0, 0, 6508, 6492, 1, 0, 0, 0, 6508, 6501, 1, 0, 0, 0, 6509, 621, 1, 0, 0, 0, 6510, 6515, 3, 618, 309, 0, 6511, 6512, 5, 6, 0, 0, 6512, 6514, 3, 618, 309, 0, 6513, 6511, 1, 0, 0, 0, 6514, 6517, 1, 0, 0, 0, 6515, 6513, 1, 0, 0, 0, 6515, 6516, 1, 0, 0, 0, 6516, 623, 1, 0, 0, 0, 6517, 6515, 1, 0, 0, 0, 6518, 6523, 3, 618, 309, 0, 6519, 6521, 5, 36, 0, 0, 6520, 6519, 1, 0, 0, 0, 6520, 6521, 1, 0, 0, 0, 6521, 6522, 1, 0, 0, 0, 6522, 6524, 3, 812, 406, 0, 6523, 6520, 1, 0, 0, 0, 6523, 6524, 1, 0, 0, 0, 6524, 625, 1, 0, 0, 0, 6525, 6526, 5, 472, 0, 0, 6526, 6527, 3, 800, 400, 0, 6527, 6533, 3, 528, 264, 0, 6528, 6529, 5, 310, 0, 0, 6529, 6530, 5, 2, 0, 0, 6530, 6531, 3, 668, 334, 0, 6531, 6532, 5, 3, 0, 0, 6532, 6534, 1, 0, 0, 0, 6533, 6528, 1, 0, 0, 0, 6533, 6534, 1, 0, 0, 0, 6534, 627, 1, 0, 0, 0, 6535, 6550, 3, 682, 341, 0, 6536, 6537, 5, 320, 0, 0, 6537, 6538, 5, 64, 0, 0, 6538, 6539, 5, 2, 0, 0, 6539, 6544, 3, 630, 315, 0, 6540, 6541, 5, 6, 0, 0, 6541, 6543, 3, 630, 315, 0, 6542, 6540, 1, 0, 0, 0, 6543, 6546, 1, 0, 0, 0, 6544, 6542, 1, 0, 0, 0, 6544, 6545, 1, 0, 0, 0, 6545, 6547, 1, 0, 0, 0, 6546, 6544, 1, 0, 0, 0, 6547, 6548, 5, 3, 0, 0, 6548, 6550, 1, 0, 0, 0, 6549, 6535, 1, 0, 0, 0, 6549, 6536, 1, 0, 0, 0, 6550, 6553, 1, 0, 0, 0, 6551, 6552, 5, 105, 0, 0, 6552, 6554, 5, 473, 0, 0, 6553, 6551, 1, 0, 0, 0, 6553, 6554, 1, 0, 0, 0, 6554, 629, 1, 0, 0, 0, 6555, 6561, 3, 682, 341, 0, 6556, 6557, 5, 36, 0, 0, 6557, 6558, 5, 2, 0, 0, 6558, 6559, 3, 636, 318, 0, 6559, 6560, 5, 3, 0, 0, 6560, 6562, 1, 0, 0, 0, 6561, 6556, 1, 0, 0, 0, 6561, 6562, 1, 0, 0, 0, 6562, 631, 1, 0, 0, 0, 6563, 6564, 5, 103, 0, 0, 6564, 6565, 3, 728, 364, 0, 6565, 633, 1, 0, 0, 0, 6566, 6571, 5, 103, 0, 0, 6567, 6568, 5, 434, 0, 0, 6568, 6569, 5, 275, 0, 0, 6569, 6572, 3, 812, 406, 0, 6570, 6572, 3, 668, 334, 0, 6571, 6567, 1, 0, 0, 0, 6571, 6570, 1, 0, 0, 0, 6572, 635, 1, 0, 0, 0, 6573, 6578, 3, 638, 319, 0, 6574, 6575, 5, 6, 0, 0, 6575, 6577, 3, 638, 319, 0, 6576, 6574, 1, 0, 0, 0, 6577, 6580, 1, 0, 0, 0, 6578, 6576, 1, 0, 0, 0, 6578, 6579, 1, 0, 0, 0, 6579, 637, 1, 0, 0, 0, 6580, 6578, 1, 0, 0, 0, 6581, 6582, 3, 812, 406, 0, 6582, 6584, 3, 646, 323, 0, 6583, 6585, 3, 90, 45, 0, 6584, 6583, 1, 0, 0, 0, 6584, 6585, 1, 0, 0, 0, 6585, 639, 1, 0, 0, 0, 6586, 6587, 5, 474, 0, 0, 6587, 6601, 5, 2, 0, 0, 6588, 6589, 5, 476, 0, 0, 6589, 6590, 5, 2, 0, 0, 6590, 6595, 3, 644, 322, 0, 6591, 6592, 5, 6, 0, 0, 6592, 6594, 3, 644, 322, 0, 6593, 6591, 1, 0, 0, 0, 6594, 6597, 1, 0, 0, 0, 6595, 6593, 1, 0, 0, 0, 6595, 6596, 1, 0, 0, 0, 6596, 6598, 1, 0, 0, 0, 6597, 6595, 1, 0, 0, 0, 6598, 6599, 5, 3, 0, 0, 6599, 6600, 5, 6, 0, 0, 6600, 6602, 1, 0, 0, 0, 6601, 6588, 1, 0, 0, 0, 6601, 6602, 1, 0, 0, 0, 6602, 6603, 1, 0, 0, 0, 6603, 6604, 3, 676, 338, 0, 6604, 6605, 3, 692, 346, 0, 6605, 6606, 5, 475, 0, 0, 6606, 6611, 3, 642, 321, 0, 6607, 6608, 5, 6, 0, 0, 6608, 6610, 3, 642, 321, 0, 6609, 6607, 1, 0, 0, 0, 6610, 6613, 1, 0, 0, 0, 6611, 6609, 1, 0, 0, 0, 6611, 6612, 1, 0, 0, 0, 6612, 6614, 1, 0, 0, 0, 6613, 6611, 1, 0, 0, 0, 6614, 6615, 5, 3, 0, 0, 6615, 641, 1, 0, 0, 0, 6616, 6635, 3, 812, 406, 0, 6617, 6631, 3, 646, 323, 0, 6618, 6621, 5, 53, 0, 0, 6619, 6621, 3, 820, 410, 0, 6620, 6618, 1, 0, 0, 0, 6620, 6619, 1, 0, 0, 0, 6621, 6622, 1, 0, 0, 0, 6622, 6628, 3, 668, 334, 0, 6623, 6625, 5, 77, 0, 0, 6624, 6623, 1, 0, 0, 0, 6624, 6625, 1, 0, 0, 0, 6625, 6626, 1, 0, 0, 0, 6626, 6628, 5, 78, 0, 0, 6627, 6620, 1, 0, 0, 0, 6627, 6624, 1, 0, 0, 0, 6628, 6629, 1, 0, 0, 0, 6629, 6627, 1, 0, 0, 0, 6629, 6630, 1, 0, 0, 0, 6630, 6632, 1, 0, 0, 0, 6631, 6627, 1, 0, 0, 0, 6631, 6632, 1, 0, 0, 0, 6632, 6636, 1, 0, 0, 0, 6633, 6634, 5, 62, 0, 0, 6634, 6636, 5, 473, 0, 0, 6635, 6617, 1, 0, 0, 0, 6635, 6633, 1, 0, 0, 0, 6636, 643, 1, 0, 0, 0, 6637, 6638, 3, 676, 338, 0, 6638, 6639, 5, 36, 0, 0, 6639, 6640, 3, 818, 409, 0, 6640, 6644, 1, 0, 0, 0, 6641, 6642, 5, 53, 0, 0, 6642, 6644, 3, 676, 338, 0, 6643, 6637, 1, 0, 0, 0, 6643, 6641, 1, 0, 0, 0, 6644, 645, 1, 0, 0, 0, 6645, 6647, 5, 415, 0, 0, 6646, 6645, 1, 0, 0, 0, 6646, 6647, 1, 0, 0, 0, 6647, 6648, 1, 0, 0, 0, 6648, 6665, 3, 648, 324, 0, 6649, 6651, 5, 4, 0, 0, 6650, 6652, 5, 574, 0, 0, 6651, 6650, 1, 0, 0, 0, 6651, 6652, 1, 0, 0, 0, 6652, 6653, 1, 0, 0, 0, 6653, 6655, 5, 5, 0, 0, 6654, 6649, 1, 0, 0, 0, 6655, 6658, 1, 0, 0, 0, 6656, 6654, 1, 0, 0, 0, 6656, 6657, 1, 0, 0, 0, 6657, 6666, 1, 0, 0, 0, 6658, 6656, 1, 0, 0, 0, 6659, 6663, 5, 35, 0, 0, 6660, 6661, 5, 4, 0, 0, 6661, 6662, 5, 574, 0, 0, 6662, 6664, 5, 5, 0, 0, 6663, 6660, 1, 0, 0, 0, 6663, 6664, 1, 0, 0, 0, 6664, 6666, 1, 0, 0, 0, 6665, 6656, 1, 0, 0, 0, 6665, 6659, 1, 0, 0, 0, 6666, 6672, 1, 0, 0, 0, 6667, 6668, 3, 774, 387, 0, 6668, 6669, 5, 27, 0, 0, 6669, 6670, 7, 88, 0, 0, 6670, 6672, 1, 0, 0, 0, 6671, 6646, 1, 0, 0, 0, 6671, 6667, 1, 0, 0, 0, 6672, 647, 1, 0, 0, 0, 6673, 6675, 3, 814, 407, 0, 6674, 6676, 3, 312, 156, 0, 6675, 6674, 1, 0, 0, 0, 6675, 6676, 1, 0, 0, 0, 6676, 6678, 1, 0, 0, 0, 6677, 6679, 3, 528, 264, 0, 6678, 6677, 1, 0, 0, 0, 6678, 6679, 1, 0, 0, 0, 6679, 6689, 1, 0, 0, 0, 6680, 6689, 3, 650, 325, 0, 6681, 6686, 5, 403, 0, 0, 6682, 6684, 3, 662, 331, 0, 6683, 6682, 1, 0, 0, 0, 6683, 6684, 1, 0, 0, 0, 6684, 6687, 1, 0, 0, 0, 6685, 6687, 3, 654, 327, 0, 6686, 6683, 1, 0, 0, 0, 6686, 6685, 1, 0, 0, 0, 6687, 6689, 1, 0, 0, 0, 6688, 6673, 1, 0, 0, 0, 6688, 6680, 1, 0, 0, 0, 6688, 6681, 1, 0, 0, 0, 6689, 649, 1, 0, 0, 0, 6690, 6695, 3, 652, 326, 0, 6691, 6695, 3, 656, 328, 0, 6692, 6695, 3, 658, 329, 0, 6693, 6695, 3, 660, 330, 0, 6694, 6690, 1, 0, 0, 0, 6694, 6691, 1, 0, 0, 0, 6694, 6692, 1, 0, 0, 0, 6694, 6693, 1, 0, 0, 0, 6695, 651, 1, 0, 0, 0, 6696, 6713, 5, 401, 0, 0, 6697, 6713, 5, 402, 0, 0, 6698, 6713, 5, 416, 0, 0, 6699, 6713, 5, 388, 0, 0, 6700, 6713, 5, 413, 0, 0, 6701, 6703, 5, 398, 0, 0, 6702, 6704, 3, 654, 327, 0, 6703, 6702, 1, 0, 0, 0, 6703, 6704, 1, 0, 0, 0, 6704, 6713, 1, 0, 0, 0, 6705, 6706, 5, 190, 0, 0, 6706, 6713, 5, 412, 0, 0, 6707, 6709, 7, 89, 0, 0, 6708, 6710, 3, 528, 264, 0, 6709, 6708, 1, 0, 0, 0, 6709, 6710, 1, 0, 0, 0, 6710, 6713, 1, 0, 0, 0, 6711, 6713, 5, 390, 0, 0, 6712, 6696, 1, 0, 0, 0, 6712, 6697, 1, 0, 0, 0, 6712, 6698, 1, 0, 0, 0, 6712, 6699, 1, 0, 0, 0, 6712, 6700, 1, 0, 0, 0, 6712, 6701, 1, 0, 0, 0, 6712, 6705, 1, 0, 0, 0, 6712, 6707, 1, 0, 0, 0, 6712, 6711, 1, 0, 0, 0, 6713, 653, 1, 0, 0, 0, 6714, 6715, 5, 2, 0, 0, 6715, 6716, 5, 574, 0, 0, 6716, 6717, 5, 3, 0, 0, 6717, 655, 1, 0, 0, 0, 6718, 6720, 5, 389, 0, 0, 6719, 6721, 5, 374, 0, 0, 6720, 6719, 1, 0, 0, 0, 6720, 6721, 1, 0, 0, 0, 6721, 6723, 1, 0, 0, 0, 6722, 6724, 3, 528, 264, 0, 6723, 6722, 1, 0, 0, 0, 6723, 6724, 1, 0, 0, 0, 6724, 657, 1, 0, 0, 0, 6725, 6727, 7, 90, 0, 0, 6726, 6728, 5, 374, 0, 0, 6727, 6726, 1, 0, 0, 0, 6727, 6728, 1, 0, 0, 0, 6728, 6736, 1, 0, 0, 0, 6729, 6736, 5, 423, 0, 0, 6730, 6731, 5, 405, 0, 0, 6731, 6733, 7, 91, 0, 0, 6732, 6734, 5, 374, 0, 0, 6733, 6732, 1, 0, 0, 0, 6733, 6734, 1, 0, 0, 0, 6734, 6736, 1, 0, 0, 0, 6735, 6725, 1, 0, 0, 0, 6735, 6729, 1, 0, 0, 0, 6735, 6730, 1, 0, 0, 0, 6736, 6738, 1, 0, 0, 0, 6737, 6739, 3, 654, 327, 0, 6738, 6737, 1, 0, 0, 0, 6738, 6739, 1, 0, 0, 0, 6739, 659, 1, 0, 0, 0, 6740, 6742, 7, 92, 0, 0, 6741, 6743, 3, 654, 327, 0, 6742, 6741, 1, 0, 0, 0, 6742, 6743, 1, 0, 0, 0, 6743, 6747, 1, 0, 0, 0, 6744, 6745, 7, 27, 0, 0, 6745, 6746, 5, 418, 0, 0, 6746, 6748, 5, 386, 0, 0, 6747, 6744, 1, 0, 0, 0, 6747, 6748, 1, 0, 0, 0, 6748, 661, 1, 0, 0, 0, 6749, 6779, 5, 264, 0, 0, 6750, 6779, 3, 664, 332, 0, 6751, 6754, 5, 384, 0, 0, 6752, 6753, 5, 94, 0, 0, 6753, 6755, 5, 264, 0, 0, 6754, 6752, 1, 0, 0, 0, 6754, 6755, 1, 0, 0, 0, 6755, 6779, 1, 0, 0, 0, 6756, 6763, 5, 176, 0, 0, 6757, 6761, 5, 94, 0, 0, 6758, 6762, 5, 218, 0, 0, 6759, 6762, 5, 261, 0, 0, 6760, 6762, 3, 664, 332, 0, 6761, 6758, 1, 0, 0, 0, 6761, 6759, 1, 0, 0, 0, 6761, 6760, 1, 0, 0, 0, 6762, 6764, 1, 0, 0, 0, 6763, 6757, 1, 0, 0, 0, 6763, 6764, 1, 0, 0, 0, 6764, 6779, 1, 0, 0, 0, 6765, 6771, 5, 218, 0, 0, 6766, 6769, 5, 94, 0, 0, 6767, 6770, 5, 261, 0, 0, 6768, 6770, 3, 664, 332, 0, 6769, 6767, 1, 0, 0, 0, 6769, 6768, 1, 0, 0, 0, 6770, 6772, 1, 0, 0, 0, 6771, 6766, 1, 0, 0, 0, 6771, 6772, 1, 0, 0, 0, 6772, 6779, 1, 0, 0, 0, 6773, 6776, 5, 261, 0, 0, 6774, 6775, 5, 94, 0, 0, 6775, 6777, 3, 664, 332, 0, 6776, 6774, 1, 0, 0, 0, 6776, 6777, 1, 0, 0, 0, 6777, 6779, 1, 0, 0, 0, 6778, 6749, 1, 0, 0, 0, 6778, 6750, 1, 0, 0, 0, 6778, 6751, 1, 0, 0, 0, 6778, 6756, 1, 0, 0, 0, 6778, 6765, 1, 0, 0, 0, 6778, 6773, 1, 0, 0, 0, 6779, 663, 1, 0, 0, 0, 6780, 6782, 5, 326, 0, 0, 6781, 6783, 3, 654, 327, 0, 6782, 6781, 1, 0, 0, 0, 6782, 6783, 1, 0, 0, 0, 6783, 665, 1, 0, 0, 0, 6784, 6785, 7, 93, 0, 0, 6785, 667, 1, 0, 0, 0, 6786, 6787, 3, 670, 335, 0, 6787, 669, 1, 0, 0, 0, 6788, 6789, 6, 335, -1, 0, 6789, 6791, 3, 674, 337, 0, 6790, 6792, 3, 672, 336, 0, 6791, 6790, 1, 0, 0, 0, 6791, 6792, 1, 0, 0, 0, 6792, 6796, 1, 0, 0, 0, 6793, 6794, 5, 77, 0, 0, 6794, 6796, 3, 670, 335, 3, 6795, 6788, 1, 0, 0, 0, 6795, 6793, 1, 0, 0, 0, 6796, 6805, 1, 0, 0, 0, 6797, 6798, 10, 2, 0, 0, 6798, 6799, 5, 33, 0, 0, 6799, 6804, 3, 670, 335, 3, 6800, 6801, 10, 1, 0, 0, 6801, 6802, 5, 82, 0, 0, 6802, 6804, 3, 670, 335, 2, 6803, 6797, 1, 0, 0, 0, 6803, 6800, 1, 0, 0, 0, 6804, 6807, 1, 0, 0, 0, 6805, 6803, 1, 0, 0, 0, 6805, 6806, 1, 0, 0, 0, 6806, 671, 1, 0, 0, 0, 6807, 6805, 1, 0, 0, 0, 6808, 6809, 3, 666, 333, 0, 6809, 6810, 3, 674, 337, 0, 6810, 6880, 1, 0, 0, 0, 6811, 6812, 3, 666, 333, 0, 6812, 6813, 3, 722, 361, 0, 6813, 6819, 3, 712, 356, 0, 6814, 6820, 3, 556, 278, 0, 6815, 6816, 5, 2, 0, 0, 6816, 6817, 3, 668, 334, 0, 6817, 6818, 5, 3, 0, 0, 6818, 6820, 1, 0, 0, 0, 6819, 6814, 1, 0, 0, 0, 6819, 6815, 1, 0, 0, 0, 6820, 6880, 1, 0, 0, 0, 6821, 6823, 5, 77, 0, 0, 6822, 6821, 1, 0, 0, 0, 6822, 6823, 1, 0, 0, 0, 6823, 6824, 1, 0, 0, 0, 6824, 6825, 5, 387, 0, 0, 6825, 6826, 3, 674, 337, 0, 6826, 6827, 5, 33, 0, 0, 6827, 6828, 3, 674, 337, 0, 6828, 6880, 1, 0, 0, 0, 6829, 6831, 5, 77, 0, 0, 6830, 6829, 1, 0, 0, 0, 6830, 6831, 1, 0, 0, 0, 6831, 6832, 1, 0, 0, 0, 6832, 6833, 5, 68, 0, 0, 6833, 6834, 5, 2, 0, 0, 6834, 6839, 3, 668, 334, 0, 6835, 6836, 5, 6, 0, 0, 6836, 6838, 3, 668, 334, 0, 6837, 6835, 1, 0, 0, 0, 6838, 6841, 1, 0, 0, 0, 6839, 6837, 1, 0, 0, 0, 6839, 6840, 1, 0, 0, 0, 6840, 6842, 1, 0, 0, 0, 6841, 6839, 1, 0, 0, 0, 6842, 6843, 5, 3, 0, 0, 6843, 6880, 1, 0, 0, 0, 6844, 6846, 5, 77, 0, 0, 6845, 6844, 1, 0, 0, 0, 6845, 6846, 1, 0, 0, 0, 6846, 6847, 1, 0, 0, 0, 6847, 6848, 5, 68, 0, 0, 6848, 6880, 3, 556, 278, 0, 6849, 6851, 5, 77, 0, 0, 6850, 6849, 1, 0, 0, 0, 6850, 6851, 1, 0, 0, 0, 6851, 6860, 1, 0, 0, 0, 6852, 6861, 5, 120, 0, 0, 6853, 6861, 5, 114, 0, 0, 6854, 6855, 5, 127, 0, 0, 6855, 6861, 5, 94, 0, 0, 6856, 6858, 5, 387, 0, 0, 6857, 6859, 5, 91, 0, 0, 6858, 6857, 1, 0, 0, 0, 6858, 6859, 1, 0, 0, 0, 6859, 6861, 1, 0, 0, 0, 6860, 6852, 1, 0, 0, 0, 6860, 6853, 1, 0, 0, 0, 6860, 6854, 1, 0, 0, 0, 6860, 6856, 1, 0, 0, 0, 6861, 6862, 1, 0, 0, 0, 6862, 6865, 3, 674, 337, 0, 6863, 6864, 5, 197, 0, 0, 6864, 6866, 3, 674, 337, 0, 6865, 6863, 1, 0, 0, 0, 6865, 6866, 1, 0, 0, 0, 6866, 6880, 1, 0, 0, 0, 6867, 6869, 5, 116, 0, 0, 6868, 6870, 5, 77, 0, 0, 6869, 6868, 1, 0, 0, 0, 6869, 6870, 1, 0, 0, 0, 6870, 6871, 1, 0, 0, 0, 6871, 6880, 5, 78, 0, 0, 6872, 6874, 5, 116, 0, 0, 6873, 6875, 5, 77, 0, 0, 6874, 6873, 1, 0, 0, 0, 6874, 6875, 1, 0, 0, 0, 6875, 6876, 1, 0, 0, 0, 6876, 6877, 5, 56, 0, 0, 6877, 6878, 5, 64, 0, 0, 6878, 6880, 3, 674, 337, 0, 6879, 6808, 1, 0, 0, 0, 6879, 6811, 1, 0, 0, 0, 6879, 6822, 1, 0, 0, 0, 6879, 6830, 1, 0, 0, 0, 6879, 6845, 1, 0, 0, 0, 6879, 6850, 1, 0, 0, 0, 6879, 6867, 1, 0, 0, 0, 6879, 6872, 1, 0, 0, 0, 6880, 673, 1, 0, 0, 0, 6881, 6882, 6, 337, -1, 0, 6882, 6886, 3, 676, 338, 0, 6883, 6884, 7, 30, 0, 0, 6884, 6886, 3, 674, 337, 4, 6885, 6881, 1, 0, 0, 0, 6885, 6883, 1, 0, 0, 0, 6886, 6903, 1, 0, 0, 0, 6887, 6888, 10, 3, 0, 0, 6888, 6889, 7, 94, 0, 0, 6889, 6902, 3, 674, 337, 4, 6890, 6891, 10, 2, 0, 0, 6891, 6892, 7, 30, 0, 0, 6892, 6902, 3, 674, 337, 3, 6893, 6894, 10, 1, 0, 0, 6894, 6895, 5, 15, 0, 0, 6895, 6902, 3, 674, 337, 2, 6896, 6897, 10, 5, 0, 0, 6897, 6898, 5, 142, 0, 0, 6898, 6899, 5, 418, 0, 0, 6899, 6900, 5, 386, 0, 0, 6900, 6902, 3, 668, 334, 0, 6901, 6887, 1, 0, 0, 0, 6901, 6890, 1, 0, 0, 0, 6901, 6893, 1, 0, 0, 0, 6901, 6896, 1, 0, 0, 0, 6902, 6905, 1, 0, 0, 0, 6903, 6901, 1, 0, 0, 0, 6903, 6904, 1, 0, 0, 0, 6904, 675, 1, 0, 0, 0, 6905, 6903, 1, 0, 0, 0, 6906, 6907, 6, 338, -1, 0, 6907, 6908, 7, 95, 0, 0, 6908, 6995, 3, 556, 278, 0, 6909, 6912, 5, 35, 0, 0, 6910, 6913, 3, 556, 278, 0, 6911, 6913, 3, 734, 367, 0, 6912, 6910, 1, 0, 0, 0, 6912, 6911, 1, 0, 0, 0, 6913, 6995, 1, 0, 0, 0, 6914, 6915, 5, 28, 0, 0, 6915, 6995, 3, 748, 374, 0, 6916, 6917, 5, 470, 0, 0, 6917, 6995, 3, 528, 264, 0, 6918, 6995, 5, 574, 0, 0, 6919, 6995, 5, 576, 0, 0, 6920, 6995, 5, 566, 0, 0, 6921, 6995, 5, 570, 0, 0, 6922, 6932, 3, 800, 400, 0, 6923, 6933, 3, 802, 401, 0, 6924, 6925, 5, 2, 0, 0, 6925, 6927, 3, 730, 365, 0, 6926, 6928, 3, 580, 290, 0, 6927, 6926, 1, 0, 0, 0, 6927, 6928, 1, 0, 0, 0, 6928, 6929, 1, 0, 0, 0, 6929, 6930, 5, 3, 0, 0, 6930, 6931, 3, 802, 401, 0, 6931, 6933, 1, 0, 0, 0, 6932, 6923, 1, 0, 0, 0, 6932, 6924, 1, 0, 0, 0, 6933, 6995, 1, 0, 0, 0, 6934, 6936, 3, 650, 325, 0, 6935, 6934, 1, 0, 0, 0, 6935, 6936, 1, 0, 0, 0, 6936, 6937, 1, 0, 0, 0, 6937, 6995, 3, 802, 401, 0, 6938, 6946, 5, 403, 0, 0, 6939, 6941, 3, 802, 401, 0, 6940, 6942, 3, 662, 331, 0, 6941, 6940, 1, 0, 0, 0, 6941, 6942, 1, 0, 0, 0, 6942, 6947, 1, 0, 0, 0, 6943, 6944, 3, 654, 327, 0, 6944, 6945, 3, 802, 401, 0, 6945, 6947, 1, 0, 0, 0, 6946, 6939, 1, 0, 0, 0, 6946, 6943, 1, 0, 0, 0, 6947, 6995, 1, 0, 0, 0, 6948, 6995, 5, 96, 0, 0, 6949, 6995, 5, 60, 0, 0, 6950, 6995, 5, 78, 0, 0, 6951, 6995, 5, 577, 0, 0, 6952, 6953, 5, 2, 0, 0, 6953, 6954, 3, 668, 334, 0, 6954, 6955, 5, 3, 0, 0, 6955, 6956, 3, 748, 374, 0, 6956, 6995, 1, 0, 0, 0, 6957, 6959, 5, 40, 0, 0, 6958, 6960, 3, 668, 334, 0, 6959, 6958, 1, 0, 0, 0, 6959, 6960, 1, 0, 0, 0, 6960, 6962, 1, 0, 0, 0, 6961, 6963, 3, 742, 371, 0, 6962, 6961, 1, 0, 0, 0, 6963, 6964, 1, 0, 0, 0, 6964, 6962, 1, 0, 0, 0, 6964, 6965, 1, 0, 0, 0, 6965, 6968, 1, 0, 0, 0, 6966, 6967, 5, 58, 0, 0, 6967, 6969, 3, 668, 334, 0, 6968, 6966, 1, 0, 0, 0, 6968, 6969, 1, 0, 0, 0, 6969, 6970, 1, 0, 0, 0, 6970, 6971, 5, 454, 0, 0, 6971, 6995, 1, 0, 0, 0, 6972, 6995, 3, 680, 340, 0, 6973, 6975, 3, 556, 278, 0, 6974, 6976, 3, 746, 373, 0, 6975, 6974, 1, 0, 0, 0, 6975, 6976, 1, 0, 0, 0, 6976, 6995, 1, 0, 0, 0, 6977, 6995, 3, 710, 355, 0, 6978, 6979, 5, 2, 0, 0, 6979, 6980, 3, 668, 334, 0, 6980, 6981, 5, 6, 0, 0, 6981, 6982, 3, 724, 362, 0, 6982, 6983, 5, 3, 0, 0, 6983, 6995, 1, 0, 0, 0, 6984, 6985, 3, 708, 354, 0, 6985, 6986, 5, 125, 0, 0, 6986, 6987, 3, 708, 354, 0, 6987, 6995, 1, 0, 0, 0, 6988, 6995, 3, 774, 387, 0, 6989, 6990, 7, 30, 0, 0, 6990, 6995, 3, 676, 338, 5, 6991, 6992, 3, 718, 359, 0, 6992, 6993, 3, 676, 338, 2, 6993, 6995, 1, 0, 0, 0, 6994, 6906, 1, 0, 0, 0, 6994, 6909, 1, 0, 0, 0, 6994, 6914, 1, 0, 0, 0, 6994, 6916, 1, 0, 0, 0, 6994, 6918, 1, 0, 0, 0, 6994, 6919, 1, 0, 0, 0, 6994, 6920, 1, 0, 0, 0, 6994, 6921, 1, 0, 0, 0, 6994, 6922, 1, 0, 0, 0, 6994, 6935, 1, 0, 0, 0, 6994, 6938, 1, 0, 0, 0, 6994, 6948, 1, 0, 0, 0, 6994, 6949, 1, 0, 0, 0, 6994, 6950, 1, 0, 0, 0, 6994, 6951, 1, 0, 0, 0, 6994, 6952, 1, 0, 0, 0, 6994, 6957, 1, 0, 0, 0, 6994, 6972, 1, 0, 0, 0, 6994, 6973, 1, 0, 0, 0, 6994, 6977, 1, 0, 0, 0, 6994, 6978, 1, 0, 0, 0, 6994, 6984, 1, 0, 0, 0, 6994, 6988, 1, 0, 0, 0, 6994, 6989, 1, 0, 0, 0, 6994, 6991, 1, 0, 0, 0, 6995, 7023, 1, 0, 0, 0, 6996, 6997, 10, 3, 0, 0, 6997, 6998, 3, 716, 358, 0, 6998, 6999, 3, 676, 338, 4, 6999, 7022, 1, 0, 0, 0, 7000, 7001, 10, 6, 0, 0, 7001, 7002, 5, 26, 0, 0, 7002, 7022, 3, 646, 323, 0, 7003, 7004, 10, 4, 0, 0, 7004, 7006, 3, 718, 359, 0, 7005, 7007, 3, 676, 338, 0, 7006, 7005, 1, 0, 0, 0, 7006, 7007, 1, 0, 0, 0, 7007, 7022, 1, 0, 0, 0, 7008, 7009, 10, 1, 0, 0, 7009, 7011, 5, 116, 0, 0, 7010, 7012, 5, 77, 0, 0, 7011, 7010, 1, 0, 0, 0, 7011, 7012, 1, 0, 0, 0, 7012, 7019, 1, 0, 0, 0, 7013, 7014, 5, 56, 0, 0, 7014, 7015, 5, 64, 0, 0, 7015, 7020, 3, 676, 338, 0, 7016, 7017, 5, 275, 0, 0, 7017, 7020, 3, 522, 261, 0, 7018, 7020, 5, 188, 0, 0, 7019, 7013, 1, 0, 0, 0, 7019, 7016, 1, 0, 0, 0, 7019, 7018, 1, 0, 0, 0, 7020, 7022, 1, 0, 0, 0, 7021, 6996, 1, 0, 0, 0, 7021, 7000, 1, 0, 0, 0, 7021, 7003, 1, 0, 0, 0, 7021, 7008, 1, 0, 0, 0, 7022, 7025, 1, 0, 0, 0, 7023, 7021, 1, 0, 0, 0, 7023, 7024, 1, 0, 0, 0, 7024, 677, 1, 0, 0, 0, 7025, 7023, 1, 0, 0, 0, 7026, 7027, 3, 800, 400, 0, 7027, 7048, 5, 2, 0, 0, 7028, 7032, 3, 730, 365, 0, 7029, 7030, 5, 6, 0, 0, 7030, 7031, 5, 101, 0, 0, 7031, 7033, 3, 732, 366, 0, 7032, 7029, 1, 0, 0, 0, 7032, 7033, 1, 0, 0, 0, 7033, 7035, 1, 0, 0, 0, 7034, 7036, 3, 580, 290, 0, 7035, 7034, 1, 0, 0, 0, 7035, 7036, 1, 0, 0, 0, 7036, 7049, 1, 0, 0, 0, 7037, 7038, 5, 101, 0, 0, 7038, 7040, 3, 732, 366, 0, 7039, 7041, 3, 580, 290, 0, 7040, 7039, 1, 0, 0, 0, 7040, 7041, 1, 0, 0, 0, 7041, 7049, 1, 0, 0, 0, 7042, 7043, 7, 81, 0, 0, 7043, 7045, 3, 730, 365, 0, 7044, 7046, 3, 580, 290, 0, 7045, 7044, 1, 0, 0, 0, 7045, 7046, 1, 0, 0, 0, 7046, 7049, 1, 0, 0, 0, 7047, 7049, 5, 9, 0, 0, 7048, 7028, 1, 0, 0, 0, 7048, 7037, 1, 0, 0, 0, 7048, 7042, 1, 0, 0, 0, 7048, 7047, 1, 0, 0, 0, 7048, 7049, 1, 0, 0, 0, 7049, 7050, 1, 0, 0, 0, 7050, 7051, 5, 3, 0, 0, 7051, 679, 1, 0, 0, 0, 7052, 7059, 3, 678, 339, 0, 7053, 7054, 5, 479, 0, 0, 7054, 7055, 5, 66, 0, 0, 7055, 7056, 5, 2, 0, 0, 7056, 7057, 3, 580, 290, 0, 7057, 7058, 5, 3, 0, 0, 7058, 7060, 1, 0, 0, 0, 7059, 7053, 1, 0, 0, 0, 7059, 7060, 1, 0, 0, 0, 7060, 7067, 1, 0, 0, 0, 7061, 7062, 5, 480, 0, 0, 7062, 7063, 5, 2, 0, 0, 7063, 7064, 5, 103, 0, 0, 7064, 7065, 3, 668, 334, 0, 7065, 7066, 5, 3, 0, 0, 7066, 7068, 1, 0, 0, 0, 7067, 7061, 1, 0, 0, 0, 7067, 7068, 1, 0, 0, 0, 7068, 7074, 1, 0, 0, 0, 7069, 7072, 5, 124, 0, 0, 7070, 7073, 3, 702, 351, 0, 7071, 7073, 3, 812, 406, 0, 7072, 7070, 1, 0, 0, 0, 7072, 7071, 1, 0, 0, 0, 7073, 7075, 1, 0, 0, 0, 7074, 7069, 1, 0, 0, 0, 7074, 7075, 1, 0, 0, 0, 7075, 7078, 1, 0, 0, 0, 7076, 7078, 3, 684, 342, 0, 7077, 7052, 1, 0, 0, 0, 7077, 7076, 1, 0, 0, 0, 7078, 681, 1, 0, 0, 0, 7079, 7082, 3, 678, 339, 0, 7080, 7082, 3, 684, 342, 0, 7081, 7079, 1, 0, 0, 0, 7081, 7080, 1, 0, 0, 0, 7082, 683, 1, 0, 0, 0, 7083, 7084, 5, 108, 0, 0, 7084, 7085, 5, 62, 0, 0, 7085, 7086, 5, 2, 0, 0, 7086, 7087, 3, 668, 334, 0, 7087, 7088, 5, 3, 0, 0, 7088, 7258, 1, 0, 0, 0, 7089, 7258, 5, 48, 0, 0, 7090, 7092, 7, 96, 0, 0, 7091, 7093, 3, 654, 327, 0, 7092, 7091, 1, 0, 0, 0, 7092, 7093, 1, 0, 0, 0, 7093, 7258, 1, 0, 0, 0, 7094, 7258, 5, 49, 0, 0, 7095, 7258, 5, 52, 0, 0, 7096, 7258, 5, 89, 0, 0, 7097, 7258, 5, 99, 0, 0, 7098, 7258, 5, 47, 0, 0, 7099, 7258, 5, 111, 0, 0, 7100, 7101, 7, 97, 0, 0, 7101, 7102, 5, 2, 0, 0, 7102, 7103, 3, 668, 334, 0, 7103, 7104, 5, 36, 0, 0, 7104, 7105, 3, 646, 323, 0, 7105, 7106, 5, 3, 0, 0, 7106, 7258, 1, 0, 0, 0, 7107, 7108, 5, 397, 0, 0, 7108, 7113, 5, 2, 0, 0, 7109, 7110, 3, 736, 368, 0, 7110, 7111, 5, 64, 0, 0, 7111, 7112, 3, 668, 334, 0, 7112, 7114, 1, 0, 0, 0, 7113, 7109, 1, 0, 0, 0, 7113, 7114, 1, 0, 0, 0, 7114, 7115, 1, 0, 0, 0, 7115, 7258, 5, 3, 0, 0, 7116, 7117, 5, 489, 0, 0, 7117, 7118, 5, 2, 0, 0, 7118, 7121, 3, 668, 334, 0, 7119, 7120, 5, 6, 0, 0, 7120, 7122, 3, 738, 369, 0, 7121, 7119, 1, 0, 0, 0, 7121, 7122, 1, 0, 0, 0, 7122, 7123, 1, 0, 0, 0, 7123, 7124, 5, 3, 0, 0, 7124, 7258, 1, 0, 0, 0, 7125, 7126, 5, 410, 0, 0, 7126, 7127, 5, 2, 0, 0, 7127, 7128, 3, 668, 334, 0, 7128, 7129, 5, 84, 0, 0, 7129, 7130, 3, 668, 334, 0, 7130, 7131, 5, 64, 0, 0, 7131, 7134, 3, 668, 334, 0, 7132, 7133, 5, 62, 0, 0, 7133, 7135, 3, 668, 334, 0, 7134, 7132, 1, 0, 0, 0, 7134, 7135, 1, 0, 0, 0, 7135, 7136, 1, 0, 0, 0, 7136, 7137, 5, 3, 0, 0, 7137, 7258, 1, 0, 0, 0, 7138, 7139, 5, 411, 0, 0, 7139, 7144, 5, 2, 0, 0, 7140, 7141, 3, 676, 338, 0, 7141, 7142, 5, 68, 0, 0, 7142, 7143, 3, 676, 338, 0, 7143, 7145, 1, 0, 0, 0, 7144, 7140, 1, 0, 0, 0, 7144, 7145, 1, 0, 0, 0, 7145, 7146, 1, 0, 0, 0, 7146, 7258, 5, 3, 0, 0, 7147, 7148, 5, 417, 0, 0, 7148, 7150, 5, 2, 0, 0, 7149, 7151, 3, 740, 370, 0, 7150, 7149, 1, 0, 0, 0, 7150, 7151, 1, 0, 0, 0, 7151, 7152, 1, 0, 0, 0, 7152, 7258, 5, 3, 0, 0, 7153, 7154, 5, 421, 0, 0, 7154, 7156, 5, 2, 0, 0, 7155, 7157, 7, 98, 0, 0, 7156, 7155, 1, 0, 0, 0, 7156, 7157, 1, 0, 0, 0, 7157, 7162, 1, 0, 0, 0, 7158, 7160, 3, 668, 334, 0, 7159, 7158, 1, 0, 0, 0, 7159, 7160, 1, 0, 0, 0, 7160, 7161, 1, 0, 0, 0, 7161, 7163, 5, 64, 0, 0, 7162, 7159, 1, 0, 0, 0, 7162, 7163, 1, 0, 0, 0, 7163, 7164, 1, 0, 0, 0, 7164, 7165, 3, 724, 362, 0, 7165, 7166, 1, 0, 0, 0, 7166, 7167, 5, 3, 0, 0, 7167, 7258, 1, 0, 0, 0, 7168, 7169, 5, 408, 0, 0, 7169, 7170, 5, 2, 0, 0, 7170, 7171, 3, 668, 334, 0, 7171, 7172, 5, 6, 0, 0, 7172, 7173, 3, 668, 334, 0, 7173, 7174, 5, 3, 0, 0, 7174, 7258, 1, 0, 0, 0, 7175, 7176, 7, 99, 0, 0, 7176, 7258, 3, 528, 264, 0, 7177, 7178, 5, 426, 0, 0, 7178, 7179, 5, 2, 0, 0, 7179, 7180, 5, 266, 0, 0, 7180, 7190, 3, 818, 409, 0, 7181, 7188, 5, 6, 0, 0, 7182, 7183, 5, 424, 0, 0, 7183, 7184, 5, 2, 0, 0, 7184, 7185, 3, 686, 343, 0, 7185, 7186, 5, 3, 0, 0, 7186, 7189, 1, 0, 0, 0, 7187, 7189, 3, 724, 362, 0, 7188, 7182, 1, 0, 0, 0, 7188, 7187, 1, 0, 0, 0, 7189, 7191, 1, 0, 0, 0, 7190, 7181, 1, 0, 0, 0, 7190, 7191, 1, 0, 0, 0, 7191, 7192, 1, 0, 0, 0, 7192, 7193, 5, 3, 0, 0, 7193, 7258, 1, 0, 0, 0, 7194, 7195, 5, 427, 0, 0, 7195, 7196, 5, 2, 0, 0, 7196, 7197, 3, 676, 338, 0, 7197, 7198, 3, 692, 346, 0, 7198, 7199, 5, 3, 0, 0, 7199, 7258, 1, 0, 0, 0, 7200, 7201, 5, 428, 0, 0, 7201, 7202, 5, 2, 0, 0, 7202, 7203, 3, 686, 343, 0, 7203, 7204, 5, 3, 0, 0, 7204, 7258, 1, 0, 0, 0, 7205, 7206, 5, 429, 0, 0, 7206, 7207, 5, 2, 0, 0, 7207, 7208, 3, 690, 345, 0, 7208, 7211, 3, 668, 334, 0, 7209, 7210, 7, 100, 0, 0, 7210, 7212, 5, 378, 0, 0, 7211, 7209, 1, 0, 0, 0, 7211, 7212, 1, 0, 0, 0, 7212, 7213, 1, 0, 0, 0, 7213, 7214, 5, 3, 0, 0, 7214, 7258, 1, 0, 0, 0, 7215, 7216, 5, 430, 0, 0, 7216, 7217, 5, 2, 0, 0, 7217, 7218, 5, 266, 0, 0, 7218, 7221, 3, 818, 409, 0, 7219, 7220, 5, 6, 0, 0, 7220, 7222, 3, 668, 334, 0, 7221, 7219, 1, 0, 0, 0, 7221, 7222, 1, 0, 0, 0, 7222, 7223, 1, 0, 0, 0, 7223, 7224, 5, 3, 0, 0, 7224, 7258, 1, 0, 0, 0, 7225, 7226, 5, 431, 0, 0, 7226, 7227, 5, 2, 0, 0, 7227, 7228, 5, 383, 0, 0, 7228, 7229, 3, 668, 334, 0, 7229, 7230, 5, 6, 0, 0, 7230, 7234, 5, 375, 0, 0, 7231, 7232, 5, 269, 0, 0, 7232, 7235, 5, 450, 0, 0, 7233, 7235, 3, 668, 334, 0, 7234, 7231, 1, 0, 0, 0, 7234, 7233, 1, 0, 0, 0, 7235, 7245, 1, 0, 0, 0, 7236, 7237, 5, 6, 0, 0, 7237, 7243, 5, 339, 0, 0, 7238, 7240, 5, 269, 0, 0, 7239, 7238, 1, 0, 0, 0, 7239, 7240, 1, 0, 0, 0, 7240, 7241, 1, 0, 0, 0, 7241, 7244, 5, 450, 0, 0, 7242, 7244, 5, 385, 0, 0, 7243, 7239, 1, 0, 0, 0, 7243, 7242, 1, 0, 0, 0, 7244, 7246, 1, 0, 0, 0, 7245, 7236, 1, 0, 0, 0, 7245, 7246, 1, 0, 0, 0, 7246, 7247, 1, 0, 0, 0, 7247, 7248, 5, 3, 0, 0, 7248, 7258, 1, 0, 0, 0, 7249, 7250, 5, 432, 0, 0, 7250, 7251, 5, 2, 0, 0, 7251, 7252, 3, 690, 345, 0, 7252, 7253, 3, 668, 334, 0, 7253, 7254, 5, 36, 0, 0, 7254, 7255, 3, 648, 324, 0, 7255, 7256, 5, 3, 0, 0, 7256, 7258, 1, 0, 0, 0, 7257, 7083, 1, 0, 0, 0, 7257, 7089, 1, 0, 0, 0, 7257, 7090, 1, 0, 0, 0, 7257, 7094, 1, 0, 0, 0, 7257, 7095, 1, 0, 0, 0, 7257, 7096, 1, 0, 0, 0, 7257, 7097, 1, 0, 0, 0, 7257, 7098, 1, 0, 0, 0, 7257, 7099, 1, 0, 0, 0, 7257, 7100, 1, 0, 0, 0, 7257, 7107, 1, 0, 0, 0, 7257, 7116, 1, 0, 0, 0, 7257, 7125, 1, 0, 0, 0, 7257, 7138, 1, 0, 0, 0, 7257, 7147, 1, 0, 0, 0, 7257, 7153, 1, 0, 0, 0, 7257, 7168, 1, 0, 0, 0, 7257, 7175, 1, 0, 0, 0, 7257, 7177, 1, 0, 0, 0, 7257, 7194, 1, 0, 0, 0, 7257, 7200, 1, 0, 0, 0, 7257, 7205, 1, 0, 0, 0, 7257, 7215, 1, 0, 0, 0, 7257, 7225, 1, 0, 0, 0, 7257, 7249, 1, 0, 0, 0, 7258, 685, 1, 0, 0, 0, 7259, 7264, 3, 688, 344, 0, 7260, 7261, 5, 6, 0, 0, 7261, 7263, 3, 688, 344, 0, 7262, 7260, 1, 0, 0, 0, 7263, 7266, 1, 0, 0, 0, 7264, 7262, 1, 0, 0, 0, 7264, 7265, 1, 0, 0, 0, 7265, 687, 1, 0, 0, 0, 7266, 7264, 1, 0, 0, 0, 7267, 7270, 3, 668, 334, 0, 7268, 7269, 5, 36, 0, 0, 7269, 7271, 3, 818, 409, 0, 7270, 7268, 1, 0, 0, 0, 7270, 7271, 1, 0, 0, 0, 7271, 689, 1, 0, 0, 0, 7272, 7273, 7, 101, 0, 0, 7273, 691, 1, 0, 0, 0, 7274, 7276, 5, 286, 0, 0, 7275, 7277, 3, 694, 347, 0, 7276, 7275, 1, 0, 0, 0, 7276, 7277, 1, 0, 0, 0, 7277, 7278, 1, 0, 0, 0, 7278, 7280, 3, 676, 338, 0, 7279, 7281, 3, 694, 347, 0, 7280, 7279, 1, 0, 0, 0, 7280, 7281, 1, 0, 0, 0, 7281, 693, 1, 0, 0, 0, 7282, 7283, 5, 147, 0, 0, 7283, 7284, 7, 102, 0, 0, 7284, 695, 1, 0, 0, 0, 7285, 7286, 5, 104, 0, 0, 7286, 7291, 3, 698, 349, 0, 7287, 7288, 5, 6, 0, 0, 7288, 7290, 3, 698, 349, 0, 7289, 7287, 1, 0, 0, 0, 7290, 7293, 1, 0, 0, 0, 7291, 7289, 1, 0, 0, 0, 7291, 7292, 1, 0, 0, 0, 7292, 697, 1, 0, 0, 0, 7293, 7291, 1, 0, 0, 0, 7294, 7295, 3, 812, 406, 0, 7295, 7296, 5, 36, 0, 0, 7296, 7297, 3, 702, 351, 0, 7297, 699, 1, 0, 0, 0, 7298, 7301, 5, 124, 0, 0, 7299, 7302, 3, 702, 351, 0, 7300, 7302, 3, 812, 406, 0, 7301, 7299, 1, 0, 0, 0, 7301, 7300, 1, 0, 0, 0, 7302, 701, 1, 0, 0, 0, 7303, 7305, 5, 2, 0, 0, 7304, 7306, 3, 812, 406, 0, 7305, 7304, 1, 0, 0, 0, 7305, 7306, 1, 0, 0, 0, 7306, 7310, 1, 0, 0, 0, 7307, 7308, 5, 285, 0, 0, 7308, 7309, 5, 147, 0, 0, 7309, 7311, 3, 724, 362, 0, 7310, 7307, 1, 0, 0, 0, 7310, 7311, 1, 0, 0, 0, 7311, 7313, 1, 0, 0, 0, 7312, 7314, 3, 580, 290, 0, 7313, 7312, 1, 0, 0, 0, 7313, 7314, 1, 0, 0, 0, 7314, 7316, 1, 0, 0, 0, 7315, 7317, 3, 704, 352, 0, 7316, 7315, 1, 0, 0, 0, 7316, 7317, 1, 0, 0, 0, 7317, 7318, 1, 0, 0, 0, 7318, 7319, 5, 3, 0, 0, 7319, 703, 1, 0, 0, 0, 7320, 7325, 7, 103, 0, 0, 7321, 7322, 5, 387, 0, 0, 7322, 7323, 3, 706, 353, 0, 7323, 7324, 5, 33, 0, 0, 7324, 7326, 1, 0, 0, 0, 7325, 7321, 1, 0, 0, 0, 7325, 7326, 1, 0, 0, 0, 7326, 7327, 1, 0, 0, 0, 7327, 7328, 3, 706, 353, 0, 7328, 7338, 1, 0, 0, 0, 7329, 7336, 5, 199, 0, 0, 7330, 7331, 5, 434, 0, 0, 7331, 7337, 5, 414, 0, 0, 7332, 7337, 5, 66, 0, 0, 7333, 7337, 5, 467, 0, 0, 7334, 7335, 5, 269, 0, 0, 7335, 7337, 5, 482, 0, 0, 7336, 7330, 1, 0, 0, 0, 7336, 7332, 1, 0, 0, 0, 7336, 7333, 1, 0, 0, 0, 7336, 7334, 1, 0, 0, 0, 7337, 7339, 1, 0, 0, 0, 7338, 7329, 1, 0, 0, 0, 7338, 7339, 1, 0, 0, 0, 7339, 705, 1, 0, 0, 0, 7340, 7343, 5, 362, 0, 0, 7341, 7343, 3, 668, 334, 0, 7342, 7340, 1, 0, 0, 0, 7342, 7341, 1, 0, 0, 0, 7343, 7344, 1, 0, 0, 0, 7344, 7348, 7, 104, 0, 0, 7345, 7346, 5, 434, 0, 0, 7346, 7348, 5, 414, 0, 0, 7347, 7342, 1, 0, 0, 0, 7347, 7345, 1, 0, 0, 0, 7348, 707, 1, 0, 0, 0, 7349, 7357, 3, 710, 355, 0, 7350, 7351, 5, 2, 0, 0, 7351, 7352, 3, 724, 362, 0, 7352, 7353, 5, 6, 0, 0, 7353, 7354, 3, 668, 334, 0, 7354, 7355, 5, 3, 0, 0, 7355, 7357, 1, 0, 0, 0, 7356, 7349, 1, 0, 0, 0, 7356, 7350, 1, 0, 0, 0, 7357, 709, 1, 0, 0, 0, 7358, 7359, 5, 414, 0, 0, 7359, 7361, 5, 2, 0, 0, 7360, 7362, 3, 724, 362, 0, 7361, 7360, 1, 0, 0, 0, 7361, 7362, 1, 0, 0, 0, 7362, 7363, 1, 0, 0, 0, 7363, 7364, 5, 3, 0, 0, 7364, 711, 1, 0, 0, 0, 7365, 7366, 7, 105, 0, 0, 7366, 713, 1, 0, 0, 0, 7367, 7370, 5, 29, 0, 0, 7368, 7370, 3, 716, 358, 0, 7369, 7367, 1, 0, 0, 0, 7369, 7368, 1, 0, 0, 0, 7370, 715, 1, 0, 0, 0, 7371, 7372, 7, 106, 0, 0, 7372, 717, 1, 0, 0, 0, 7373, 7380, 5, 29, 0, 0, 7374, 7375, 5, 278, 0, 0, 7375, 7376, 5, 2, 0, 0, 7376, 7377, 3, 408, 204, 0, 7377, 7378, 5, 3, 0, 0, 7378, 7380, 1, 0, 0, 0, 7379, 7373, 1, 0, 0, 0, 7379, 7374, 1, 0, 0, 0, 7380, 719, 1, 0, 0, 0, 7381, 7388, 3, 714, 357, 0, 7382, 7383, 5, 278, 0, 0, 7383, 7384, 5, 2, 0, 0, 7384, 7385, 3, 408, 204, 0, 7385, 7386, 5, 3, 0, 0, 7386, 7388, 1, 0, 0, 0, 7387, 7381, 1, 0, 0, 0, 7387, 7382, 1, 0, 0, 0, 7388, 721, 1, 0, 0, 0, 7389, 7395, 3, 720, 360, 0, 7390, 7392, 5, 77, 0, 0, 7391, 7390, 1, 0, 0, 0, 7391, 7392, 1, 0, 0, 0, 7392, 7393, 1, 0, 0, 0, 7393, 7395, 7, 107, 0, 0, 7394, 7389, 1, 0, 0, 0, 7394, 7391, 1, 0, 0, 0, 7395, 723, 1, 0, 0, 0, 7396, 7401, 3, 668, 334, 0, 7397, 7398, 5, 6, 0, 0, 7398, 7400, 3, 668, 334, 0, 7399, 7397, 1, 0, 0, 0, 7400, 7403, 1, 0, 0, 0, 7401, 7399, 1, 0, 0, 0, 7401, 7402, 1, 0, 0, 0, 7402, 725, 1, 0, 0, 0, 7403, 7401, 1, 0, 0, 0, 7404, 7405, 5, 2, 0, 0, 7405, 7406, 3, 668, 334, 0, 7406, 7407, 5, 3, 0, 0, 7407, 7410, 1, 0, 0, 0, 7408, 7410, 3, 794, 397, 0, 7409, 7404, 1, 0, 0, 0, 7409, 7408, 1, 0, 0, 0, 7410, 727, 1, 0, 0, 0, 7411, 7414, 3, 668, 334, 0, 7412, 7414, 3, 794, 397, 0, 7413, 7411, 1, 0, 0, 0, 7413, 7412, 1, 0, 0, 0, 7414, 729, 1, 0, 0, 0, 7415, 7420, 3, 732, 366, 0, 7416, 7417, 5, 6, 0, 0, 7417, 7419, 3, 732, 366, 0, 7418, 7416, 1, 0, 0, 0, 7419, 7422, 1, 0, 0, 0, 7420, 7418, 1, 0, 0, 0, 7420, 7421, 1, 0, 0, 0, 7421, 731, 1, 0, 0, 0, 7422, 7420, 1, 0, 0, 0, 7423, 7431, 3, 794, 397, 0, 7424, 7431, 3, 668, 334, 0, 7425, 7428, 3, 814, 407, 0, 7426, 7427, 7, 108, 0, 0, 7427, 7429, 3, 668, 334, 0, 7428, 7426, 1, 0, 0, 0, 7428, 7429, 1, 0, 0, 0, 7429, 7431, 1, 0, 0, 0, 7430, 7423, 1, 0, 0, 0, 7430, 7424, 1, 0, 0, 0, 7430, 7425, 1, 0, 0, 0, 7431, 733, 1, 0, 0, 0, 7432, 7442, 5, 4, 0, 0, 7433, 7443, 3, 724, 362, 0, 7434, 7439, 3, 734, 367, 0, 7435, 7436, 5, 6, 0, 0, 7436, 7438, 3, 734, 367, 0, 7437, 7435, 1, 0, 0, 0, 7438, 7441, 1, 0, 0, 0, 7439, 7437, 1, 0, 0, 0, 7439, 7440, 1, 0, 0, 0, 7440, 7443, 1, 0, 0, 0, 7441, 7439, 1, 0, 0, 0, 7442, 7433, 1, 0, 0, 0, 7442, 7434, 1, 0, 0, 0, 7442, 7443, 1, 0, 0, 0, 7443, 7444, 1, 0, 0, 0, 7444, 7445, 5, 5, 0, 0, 7445, 735, 1, 0, 0, 0, 7446, 7455, 3, 820, 410, 0, 7447, 7455, 5, 384, 0, 0, 7448, 7455, 5, 264, 0, 0, 7449, 7455, 5, 176, 0, 0, 7450, 7455, 5, 218, 0, 0, 7451, 7455, 5, 261, 0, 0, 7452, 7455, 5, 326, 0, 0, 7453, 7455, 3, 802, 401, 0, 7454, 7446, 1, 0, 0, 0, 7454, 7447, 1, 0, 0, 0, 7454, 7448, 1, 0, 0, 0, 7454, 7449, 1, 0, 0, 0, 7454, 7450, 1, 0, 0, 0, 7454, 7451, 1, 0, 0, 0, 7454, 7452, 1, 0, 0, 0, 7454, 7453, 1, 0, 0, 0, 7455, 737, 1, 0, 0, 0, 7456, 7457, 7, 109, 0, 0, 7457, 739, 1, 0, 0, 0, 7458, 7459, 3, 668, 334, 0, 7459, 7460, 5, 64, 0, 0, 7460, 7463, 3, 668, 334, 0, 7461, 7462, 5, 62, 0, 0, 7462, 7464, 3, 668, 334, 0, 7463, 7461, 1, 0, 0, 0, 7463, 7464, 1, 0, 0, 0, 7464, 7480, 1, 0, 0, 0, 7465, 7466, 3, 668, 334, 0, 7466, 7467, 5, 62, 0, 0, 7467, 7470, 3, 668, 334, 0, 7468, 7469, 5, 64, 0, 0, 7469, 7471, 3, 668, 334, 0, 7470, 7468, 1, 0, 0, 0, 7470, 7471, 1, 0, 0, 0, 7471, 7480, 1, 0, 0, 0, 7472, 7473, 3, 668, 334, 0, 7473, 7474, 5, 127, 0, 0, 7474, 7475, 3, 668, 334, 0, 7475, 7476, 5, 197, 0, 0, 7476, 7477, 3, 668, 334, 0, 7477, 7480, 1, 0, 0, 0, 7478, 7480, 3, 724, 362, 0, 7479, 7458, 1, 0, 0, 0, 7479, 7465, 1, 0, 0, 0, 7479, 7472, 1, 0, 0, 0, 7479, 7478, 1, 0, 0, 0, 7480, 741, 1, 0, 0, 0, 7481, 7482, 5, 102, 0, 0, 7482, 7483, 3, 668, 334, 0, 7483, 7484, 5, 93, 0, 0, 7484, 7485, 3, 668, 334, 0, 7485, 743, 1, 0, 0, 0, 7486, 7489, 5, 11, 0, 0, 7487, 7490, 3, 818, 409, 0, 7488, 7490, 5, 9, 0, 0, 7489, 7487, 1, 0, 0, 0, 7489, 7488, 1, 0, 0, 0, 7490, 7504, 1, 0, 0, 0, 7491, 7500, 5, 4, 0, 0, 7492, 7501, 3, 668, 334, 0, 7493, 7495, 3, 668, 334, 0, 7494, 7493, 1, 0, 0, 0, 7494, 7495, 1, 0, 0, 0, 7495, 7496, 1, 0, 0, 0, 7496, 7498, 5, 8, 0, 0, 7497, 7499, 3, 668, 334, 0, 7498, 7497, 1, 0, 0, 0, 7498, 7499, 1, 0, 0, 0, 7499, 7501, 1, 0, 0, 0, 7500, 7492, 1, 0, 0, 0, 7500, 7494, 1, 0, 0, 0, 7501, 7502, 1, 0, 0, 0, 7502, 7504, 5, 5, 0, 0, 7503, 7486, 1, 0, 0, 0, 7503, 7491, 1, 0, 0, 0, 7504, 745, 1, 0, 0, 0, 7505, 7507, 3, 744, 372, 0, 7506, 7505, 1, 0, 0, 0, 7507, 7508, 1, 0, 0, 0, 7508, 7506, 1, 0, 0, 0, 7508, 7509, 1, 0, 0, 0, 7509, 747, 1, 0, 0, 0, 7510, 7512, 3, 744, 372, 0, 7511, 7510, 1, 0, 0, 0, 7512, 7515, 1, 0, 0, 0, 7513, 7511, 1, 0, 0, 0, 7513, 7514, 1, 0, 0, 0, 7514, 749, 1, 0, 0, 0, 7515, 7513, 1, 0, 0, 0, 7516, 7521, 3, 752, 376, 0, 7517, 7518, 5, 6, 0, 0, 7518, 7520, 3, 752, 376, 0, 7519, 7517, 1, 0, 0, 0, 7520, 7523, 1, 0, 0, 0, 7521, 7519, 1, 0, 0, 0, 7521, 7522, 1, 0, 0, 0, 7522, 751, 1, 0, 0, 0, 7523, 7521, 1, 0, 0, 0, 7524, 7529, 3, 728, 364, 0, 7525, 7526, 5, 36, 0, 0, 7526, 7530, 3, 818, 409, 0, 7527, 7530, 3, 820, 410, 0, 7528, 7530, 1, 0, 0, 0, 7529, 7525, 1, 0, 0, 0, 7529, 7527, 1, 0, 0, 0, 7529, 7528, 1, 0, 0, 0, 7530, 7533, 1, 0, 0, 0, 7531, 7533, 5, 9, 0, 0, 7532, 7524, 1, 0, 0, 0, 7532, 7531, 1, 0, 0, 0, 7533, 753, 1, 0, 0, 0, 7534, 7539, 3, 774, 387, 0, 7535, 7536, 5, 6, 0, 0, 7536, 7538, 3, 774, 387, 0, 7537, 7535, 1, 0, 0, 0, 7538, 7541, 1, 0, 0, 0, 7539, 7537, 1, 0, 0, 0, 7539, 7540, 1, 0, 0, 0, 7540, 755, 1, 0, 0, 0, 7541, 7539, 1, 0, 0, 0, 7542, 7547, 3, 768, 384, 0, 7543, 7544, 5, 6, 0, 0, 7544, 7546, 3, 768, 384, 0, 7545, 7543, 1, 0, 0, 0, 7546, 7549, 1, 0, 0, 0, 7547, 7545, 1, 0, 0, 0, 7547, 7548, 1, 0, 0, 0, 7548, 757, 1, 0, 0, 0, 7549, 7547, 1, 0, 0, 0, 7550, 7555, 3, 784, 392, 0, 7551, 7552, 5, 6, 0, 0, 7552, 7554, 3, 784, 392, 0, 7553, 7551, 1, 0, 0, 0, 7554, 7557, 1, 0, 0, 0, 7555, 7553, 1, 0, 0, 0, 7555, 7556, 1, 0, 0, 0, 7556, 759, 1, 0, 0, 0, 7557, 7555, 1, 0, 0, 0, 7558, 7563, 3, 782, 391, 0, 7559, 7560, 5, 6, 0, 0, 7560, 7562, 3, 782, 391, 0, 7561, 7559, 1, 0, 0, 0, 7562, 7565, 1, 0, 0, 0, 7563, 7561, 1, 0, 0, 0, 7563, 7564, 1, 0, 0, 0, 7564, 761, 1, 0, 0, 0, 7565, 7563, 1, 0, 0, 0, 7566, 7567, 3, 774, 387, 0, 7567, 763, 1, 0, 0, 0, 7568, 7569, 3, 774, 387, 0, 7569, 765, 1, 0, 0, 0, 7570, 7571, 3, 774, 387, 0, 7571, 767, 1, 0, 0, 0, 7572, 7573, 3, 774, 387, 0, 7573, 769, 1, 0, 0, 0, 7574, 7575, 3, 774, 387, 0, 7575, 771, 1, 0, 0, 0, 7576, 7577, 3, 310, 155, 0, 7577, 773, 1, 0, 0, 0, 7578, 7580, 3, 812, 406, 0, 7579, 7581, 3, 746, 373, 0, 7580, 7579, 1, 0, 0, 0, 7580, 7581, 1, 0, 0, 0, 7581, 775, 1, 0, 0, 0, 7582, 7587, 3, 764, 382, 0, 7583, 7584, 5, 6, 0, 0, 7584, 7586, 3, 764, 382, 0, 7585, 7583, 1, 0, 0, 0, 7586, 7589, 1, 0, 0, 0, 7587, 7585, 1, 0, 0, 0, 7587, 7588, 1, 0, 0, 0, 7588, 777, 1, 0, 0, 0, 7589, 7587, 1, 0, 0, 0, 7590, 7595, 3, 812, 406, 0, 7591, 7592, 5, 6, 0, 0, 7592, 7594, 3, 812, 406, 0, 7593, 7591, 1, 0, 0, 0, 7594, 7597, 1, 0, 0, 0, 7595, 7593, 1, 0, 0, 0, 7595, 7596, 1, 0, 0, 0, 7596, 779, 1, 0, 0, 0, 7597, 7595, 1, 0, 0, 0, 7598, 7599, 3, 310, 155, 0, 7599, 781, 1, 0, 0, 0, 7600, 7601, 3, 310, 155, 0, 7601, 783, 1, 0, 0, 0, 7602, 7603, 3, 310, 155, 0, 7603, 785, 1, 0, 0, 0, 7604, 7605, 3, 812, 406, 0, 7605, 787, 1, 0, 0, 0, 7606, 7607, 3, 812, 406, 0, 7607, 789, 1, 0, 0, 0, 7608, 7613, 3, 814, 407, 0, 7609, 7610, 3, 812, 406, 0, 7610, 7611, 3, 746, 373, 0, 7611, 7613, 1, 0, 0, 0, 7612, 7608, 1, 0, 0, 0, 7612, 7609, 1, 0, 0, 0, 7613, 791, 1, 0, 0, 0, 7614, 7619, 3, 814, 407, 0, 7615, 7616, 3, 812, 406, 0, 7616, 7617, 3, 746, 373, 0, 7617, 7619, 1, 0, 0, 0, 7618, 7614, 1, 0, 0, 0, 7618, 7615, 1, 0, 0, 0, 7619, 793, 1, 0, 0, 0, 7620, 7621, 3, 812, 406, 0, 7621, 7622, 3, 748, 374, 0, 7622, 7625, 1, 0, 0, 0, 7623, 7625, 4, 397, 10, 0, 7624, 7620, 1, 0, 0, 0, 7624, 7623, 1, 0, 0, 0, 7625, 795, 1, 0, 0, 0, 7626, 7627, 3, 812, 406, 0, 7627, 797, 1, 0, 0, 0, 7628, 7633, 3, 814, 407, 0, 7629, 7630, 3, 812, 406, 0, 7630, 7631, 3, 746, 373, 0, 7631, 7633, 1, 0, 0, 0, 7632, 7628, 1, 0, 0, 0, 7632, 7629, 1, 0, 0, 0, 7633, 799, 1, 0, 0, 0, 7634, 7639, 3, 814, 407, 0, 7635, 7636, 3, 812, 406, 0, 7636, 7637, 3, 746, 373, 0, 7637, 7639, 1, 0, 0, 0, 7638, 7634, 1, 0, 0, 0, 7638, 7635, 1, 0, 0, 0, 7639, 801, 1, 0, 0, 0, 7640, 7643, 3, 804, 402, 0, 7641, 7642, 5, 487, 0, 0, 7642, 7644, 3, 804, 402, 0, 7643, 7641, 1, 0, 0, 0, 7643, 7644, 1, 0, 0, 0, 7644, 803, 1, 0, 0, 0, 7645, 7657, 5, 561, 0, 0, 7646, 7657, 5, 563, 0, 0, 7647, 7651, 5, 565, 0, 0, 7648, 7650, 5, 591, 0, 0, 7649, 7648, 1, 0, 0, 0, 7650, 7653, 1, 0, 0, 0, 7651, 7649, 1, 0, 0, 0, 7651, 7652, 1, 0, 0, 0, 7652, 7654, 1, 0, 0, 0, 7653, 7651, 1, 0, 0, 0, 7654, 7657, 5, 592, 0, 0, 7655, 7657, 5, 587, 0, 0, 7656, 7645, 1, 0, 0, 0, 7656, 7646, 1, 0, 0, 0, 7656, 7647, 1, 0, 0, 0, 7656, 7655, 1, 0, 0, 0, 7657, 805, 1, 0, 0, 0, 7658, 7660, 7, 30, 0, 0, 7659, 7658, 1, 0, 0, 0, 7659, 7660, 1, 0, 0, 0, 7660, 7661, 1, 0, 0, 0, 7661, 7662, 5, 574, 0, 0, 7662, 807, 1, 0, 0, 0, 7663, 7669, 3, 816, 408, 0, 7664, 7669, 5, 52, 0, 0, 7665, 7669, 5, 49, 0, 0, 7666, 7669, 5, 89, 0, 0, 7667, 7669, 5, 524, 0, 0, 7668, 7663, 1, 0, 0, 0, 7668, 7664, 1, 0, 0, 0, 7668, 7665, 1, 0, 0, 0, 7668, 7666, 1, 0, 0, 0, 7668, 7667, 1, 0, 0, 0, 7669, 809, 1, 0, 0, 0, 7670, 7675, 3, 808, 404, 0, 7671, 7672, 5, 6, 0, 0, 7672, 7674, 3, 808, 404, 0, 7673, 7671, 1, 0, 0, 0, 7674, 7677, 1, 0, 0, 0, 7675, 7673, 1, 0, 0, 0, 7675, 7676, 1, 0, 0, 0, 7676, 811, 1, 0, 0, 0, 7677, 7675, 1, 0, 0, 0, 7678, 7681, 3, 820, 410, 0, 7679, 7681, 3, 824, 412, 0, 7680, 7678, 1, 0, 0, 0, 7680, 7679, 1, 0, 0, 0, 7681, 813, 1, 0, 0, 0, 7682, 7685, 3, 820, 410, 0, 7683, 7685, 3, 826, 413, 0, 7684, 7682, 1, 0, 0, 0, 7684, 7683, 1, 0, 0, 0, 7685, 815, 1, 0, 0, 0, 7686, 7690, 3, 820, 410, 0, 7687, 7690, 3, 824, 412, 0, 7688, 7690, 3, 826, 413, 0, 7689, 7686, 1, 0, 0, 0, 7689, 7687, 1, 0, 0, 0, 7689, 7688, 1, 0, 0, 0, 7690, 817, 1, 0, 0, 0, 7691, 7696, 3, 820, 410, 0, 7692, 7696, 3, 824, 412, 0, 7693, 7696, 3, 826, 413, 0, 7694, 7696, 3, 828, 414, 0, 7695, 7691, 1, 0, 0, 0, 7695, 7692, 1, 0, 0, 0, 7695, 7693, 1, 0, 0, 0, 7695, 7694, 1, 0, 0, 0, 7696, 819, 1, 0, 0, 0, 7697, 7700, 5, 552, 0, 0, 7698, 7699, 5, 487, 0, 0, 7699, 7701, 3, 804, 402, 0, 7700, 7698, 1, 0, 0, 0, 7700, 7701, 1, 0, 0, 0, 7701, 7709, 1, 0, 0, 0, 7702, 7709, 3, 802, 401, 0, 7703, 7709, 5, 553, 0, 0, 7704, 7709, 5, 557, 0, 0, 7705, 7709, 5, 577, 0, 0, 7706, 7709, 5, 578, 0, 0, 7707, 7709, 3, 822, 411, 0, 7708, 7697, 1, 0, 0, 0, 7708, 7702, 1, 0, 0, 0, 7708, 7703, 1, 0, 0, 0, 7708, 7704, 1, 0, 0, 0, 7708, 7705, 1, 0, 0, 0, 7708, 7706, 1, 0, 0, 0, 7708, 7707, 1, 0, 0, 0, 7709, 821, 1, 0, 0, 0, 7710, 7711, 7, 110, 0, 0, 7711, 823, 1, 0, 0, 0, 7712, 7764, 5, 387, 0, 0, 7713, 7764, 5, 388, 0, 0, 7714, 7764, 3, 656, 328, 0, 7715, 7764, 5, 390, 0, 0, 7716, 7764, 5, 391, 0, 0, 7717, 7764, 3, 658, 329, 0, 7718, 7764, 5, 393, 0, 0, 7719, 7764, 5, 394, 0, 0, 7720, 7764, 5, 395, 0, 0, 7721, 7764, 5, 396, 0, 0, 7722, 7764, 5, 397, 0, 0, 7723, 7764, 5, 398, 0, 0, 7724, 7764, 5, 399, 0, 0, 7725, 7764, 5, 470, 0, 0, 7726, 7764, 5, 400, 0, 0, 7727, 7764, 5, 401, 0, 0, 7728, 7764, 5, 402, 0, 0, 7729, 7764, 5, 403, 0, 0, 7730, 7764, 5, 404, 0, 0, 7731, 7764, 5, 405, 0, 0, 7732, 7764, 5, 406, 0, 0, 7733, 7764, 5, 407, 0, 0, 7734, 7764, 5, 489, 0, 0, 7735, 7764, 5, 408, 0, 0, 7736, 7764, 3, 652, 326, 0, 7737, 7764, 5, 453, 0, 0, 7738, 7764, 5, 410, 0, 0, 7739, 7764, 5, 411, 0, 0, 7740, 7764, 5, 412, 0, 0, 7741, 7764, 5, 413, 0, 0, 7742, 7764, 5, 414, 0, 0, 7743, 7764, 5, 415, 0, 0, 7744, 7764, 5, 416, 0, 0, 7745, 7764, 5, 417, 0, 0, 7746, 7764, 5, 418, 0, 0, 7747, 7764, 5, 419, 0, 0, 7748, 7764, 5, 420, 0, 0, 7749, 7764, 5, 421, 0, 0, 7750, 7764, 5, 422, 0, 0, 7751, 7764, 5, 423, 0, 0, 7752, 7764, 5, 424, 0, 0, 7753, 7764, 5, 425, 0, 0, 7754, 7764, 5, 426, 0, 0, 7755, 7764, 5, 427, 0, 0, 7756, 7764, 5, 428, 0, 0, 7757, 7764, 5, 476, 0, 0, 7758, 7764, 5, 429, 0, 0, 7759, 7764, 5, 430, 0, 0, 7760, 7764, 5, 431, 0, 0, 7761, 7764, 5, 432, 0, 0, 7762, 7764, 5, 474, 0, 0, 7763, 7712, 1, 0, 0, 0, 7763, 7713, 1, 0, 0, 0, 7763, 7714, 1, 0, 0, 0, 7763, 7715, 1, 0, 0, 0, 7763, 7716, 1, 0, 0, 0, 7763, 7717, 1, 0, 0, 0, 7763, 7718, 1, 0, 0, 0, 7763, 7719, 1, 0, 0, 0, 7763, 7720, 1, 0, 0, 0, 7763, 7721, 1, 0, 0, 0, 7763, 7722, 1, 0, 0, 0, 7763, 7723, 1, 0, 0, 0, 7763, 7724, 1, 0, 0, 0, 7763, 7725, 1, 0, 0, 0, 7763, 7726, 1, 0, 0, 0, 7763, 7727, 1, 0, 0, 0, 7763, 7728, 1, 0, 0, 0, 7763, 7729, 1, 0, 0, 0, 7763, 7730, 1, 0, 0, 0, 7763, 7731, 1, 0, 0, 0, 7763, 7732, 1, 0, 0, 0, 7763, 7733, 1, 0, 0, 0, 7763, 7734, 1, 0, 0, 0, 7763, 7735, 1, 0, 0, 0, 7763, 7736, 1, 0, 0, 0, 7763, 7737, 1, 0, 0, 0, 7763, 7738, 1, 0, 0, 0, 7763, 7739, 1, 0, 0, 0, 7763, 7740, 1, 0, 0, 0, 7763, 7741, 1, 0, 0, 0, 7763, 7742, 1, 0, 0, 0, 7763, 7743, 1, 0, 0, 0, 7763, 7744, 1, 0, 0, 0, 7763, 7745, 1, 0, 0, 0, 7763, 7746, 1, 0, 0, 0, 7763, 7747, 1, 0, 0, 0, 7763, 7748, 1, 0, 0, 0, 7763, 7749, 1, 0, 0, 0, 7763, 7750, 1, 0, 0, 0, 7763, 7751, 1, 0, 0, 0, 7763, 7752, 1, 0, 0, 0, 7763, 7753, 1, 0, 0, 0, 7763, 7754, 1, 0, 0, 0, 7763, 7755, 1, 0, 0, 0, 7763, 7756, 1, 0, 0, 0, 7763, 7757, 1, 0, 0, 0, 7763, 7758, 1, 0, 0, 0, 7763, 7759, 1, 0, 0, 0, 7763, 7760, 1, 0, 0, 0, 7763, 7761, 1, 0, 0, 0, 7763, 7762, 1, 0, 0, 0, 7764, 825, 1, 0, 0, 0, 7765, 7766, 7, 111, 0, 0, 7766, 827, 1, 0, 0, 0, 7767, 7768, 7, 112, 0, 0, 7768, 829, 1, 0, 0, 0, 7769, 7771, 3, 832, 416, 0, 7770, 7769, 1, 0, 0, 0, 7770, 7771, 1, 0, 0, 0, 7771, 7782, 1, 0, 0, 0, 7772, 7780, 5, 178, 0, 0, 7773, 7777, 3, 834, 417, 0, 7774, 7777, 5, 178, 0, 0, 7775, 7777, 3, 832, 416, 0, 7776, 7773, 1, 0, 0, 0, 7776, 7774, 1, 0, 0, 0, 7776, 7775, 1, 0, 0, 0, 7777, 7778, 1, 0, 0, 0, 7778, 7776, 1, 0, 0, 0, 7778, 7779, 1, 0, 0, 0, 7779, 7781, 1, 0, 0, 0, 7780, 7776, 1, 0, 0, 0, 7780, 7781, 1, 0, 0, 0, 7781, 7783, 1, 0, 0, 0, 7782, 7772, 1, 0, 0, 0, 7782, 7783, 1, 0, 0, 0, 7783, 7784, 1, 0, 0, 0, 7784, 7788, 5, 146, 0, 0, 7785, 7787, 3, 840, 420, 0, 7786, 7785, 1, 0, 0, 0, 7787, 7790, 1, 0, 0, 0, 7788, 7786, 1, 0, 0, 0, 7788, 7789, 1, 0, 0, 0, 7789, 7792, 1, 0, 0, 0, 7790, 7788, 1, 0, 0, 0, 7791, 7793, 3, 918, 459, 0, 7792, 7791, 1, 0, 0, 0, 7792, 7793, 1, 0, 0, 0, 7793, 7794, 1, 0, 0, 0, 7794, 7796, 5, 454, 0, 0, 7795, 7797, 3, 922, 461, 0, 7796, 7795, 1, 0, 0, 0, 7796, 7797, 1, 0, 0, 0, 7797, 831, 1, 0, 0, 0, 7798, 7799, 5, 18, 0, 0, 7799, 7800, 3, 922, 461, 0, 7800, 7801, 5, 19, 0, 0, 7801, 833, 1, 0, 0, 0, 7802, 7849, 3, 922, 461, 0, 7803, 7804, 5, 496, 0, 0, 7804, 7807, 5, 62, 0, 0, 7805, 7808, 5, 28, 0, 0, 7806, 7808, 3, 812, 406, 0, 7807, 7805, 1, 0, 0, 0, 7807, 7806, 1, 0, 0, 0, 7808, 7850, 1, 0, 0, 0, 7809, 7811, 5, 497, 0, 0, 7810, 7809, 1, 0, 0, 0, 7810, 7811, 1, 0, 0, 0, 7811, 7812, 1, 0, 0, 0, 7812, 7814, 3, 646, 323, 0, 7813, 7815, 3, 90, 45, 0, 7814, 7813, 1, 0, 0, 0, 7814, 7815, 1, 0, 0, 0, 7815, 7818, 1, 0, 0, 0, 7816, 7817, 5, 77, 0, 0, 7817, 7819, 5, 78, 0, 0, 7818, 7816, 1, 0, 0, 0, 7818, 7819, 1, 0, 0, 0, 7819, 7825, 1, 0, 0, 0, 7820, 7823, 3, 838, 419, 0, 7821, 7823, 5, 53, 0, 0, 7822, 7820, 1, 0, 0, 0, 7822, 7821, 1, 0, 0, 0, 7823, 7824, 1, 0, 0, 0, 7824, 7826, 3, 924, 462, 0, 7825, 7822, 1, 0, 0, 0, 7825, 7826, 1, 0, 0, 0, 7826, 7850, 1, 0, 0, 0, 7827, 7829, 5, 269, 0, 0, 7828, 7827, 1, 0, 0, 0, 7828, 7829, 1, 0, 0, 0, 7829, 7830, 1, 0, 0, 0, 7830, 7832, 5, 324, 0, 0, 7831, 7828, 1, 0, 0, 0, 7831, 7832, 1, 0, 0, 0, 7832, 7833, 1, 0, 0, 0, 7833, 7845, 5, 172, 0, 0, 7834, 7835, 5, 2, 0, 0, 7835, 7840, 3, 836, 418, 0, 7836, 7837, 5, 6, 0, 0, 7837, 7839, 3, 836, 418, 0, 7838, 7836, 1, 0, 0, 0, 7839, 7842, 1, 0, 0, 0, 7840, 7838, 1, 0, 0, 0, 7840, 7841, 1, 0, 0, 0, 7841, 7843, 1, 0, 0, 0, 7842, 7840, 1, 0, 0, 0, 7843, 7844, 5, 3, 0, 0, 7844, 7846, 1, 0, 0, 0, 7845, 7834, 1, 0, 0, 0, 7845, 7846, 1, 0, 0, 0, 7846, 7847, 1, 0, 0, 0, 7847, 7848, 7, 113, 0, 0, 7848, 7850, 3, 554, 277, 0, 7849, 7803, 1, 0, 0, 0, 7849, 7810, 1, 0, 0, 0, 7849, 7831, 1, 0, 0, 0, 7850, 7851, 1, 0, 0, 0, 7851, 7852, 5, 7, 0, 0, 7852, 835, 1, 0, 0, 0, 7853, 7854, 3, 922, 461, 0, 7854, 7855, 3, 646, 323, 0, 7855, 837, 1, 0, 0, 0, 7856, 7857, 7, 114, 0, 0, 7857, 839, 1, 0, 0, 0, 7858, 7859, 3, 830, 415, 0, 7859, 7860, 5, 7, 0, 0, 7860, 7883, 1, 0, 0, 0, 7861, 7883, 3, 868, 434, 0, 7862, 7883, 3, 870, 435, 0, 7863, 7883, 3, 846, 423, 0, 7864, 7883, 3, 854, 427, 0, 7865, 7883, 3, 858, 429, 0, 7866, 7883, 3, 860, 430, 0, 7867, 7883, 3, 864, 432, 0, 7868, 7883, 3, 866, 433, 0, 7869, 7883, 3, 874, 437, 0, 7870, 7883, 3, 878, 439, 0, 7871, 7883, 3, 880, 440, 0, 7872, 7883, 3, 842, 421, 0, 7873, 7883, 3, 844, 422, 0, 7874, 7883, 3, 848, 424, 0, 7875, 7883, 3, 884, 442, 0, 7876, 7883, 3, 888, 444, 0, 7877, 7883, 3, 892, 446, 0, 7878, 7883, 3, 908, 454, 0, 7879, 7883, 3, 910, 455, 0, 7880, 7883, 3, 912, 456, 0, 7881, 7883, 3, 914, 457, 0, 7882, 7858, 1, 0, 0, 0, 7882, 7861, 1, 0, 0, 0, 7882, 7862, 1, 0, 0, 0, 7882, 7863, 1, 0, 0, 0, 7882, 7864, 1, 0, 0, 0, 7882, 7865, 1, 0, 0, 0, 7882, 7866, 1, 0, 0, 0, 7882, 7867, 1, 0, 0, 0, 7882, 7868, 1, 0, 0, 0, 7882, 7869, 1, 0, 0, 0, 7882, 7870, 1, 0, 0, 0, 7882, 7871, 1, 0, 0, 0, 7882, 7872, 1, 0, 0, 0, 7882, 7873, 1, 0, 0, 0, 7882, 7874, 1, 0, 0, 0, 7882, 7875, 1, 0, 0, 0, 7882, 7876, 1, 0, 0, 0, 7882, 7877, 1, 0, 0, 0, 7882, 7878, 1, 0, 0, 0, 7882, 7879, 1, 0, 0, 0, 7882, 7880, 1, 0, 0, 0, 7882, 7881, 1, 0, 0, 0, 7883, 841, 1, 0, 0, 0, 7884, 7885, 5, 498, 0, 0, 7885, 7886, 3, 924, 462, 0, 7886, 7887, 5, 7, 0, 0, 7887, 843, 1, 0, 0, 0, 7888, 7889, 5, 433, 0, 0, 7889, 7896, 3, 922, 461, 0, 7890, 7892, 5, 2, 0, 0, 7891, 7893, 3, 724, 362, 0, 7892, 7891, 1, 0, 0, 0, 7892, 7893, 1, 0, 0, 0, 7893, 7894, 1, 0, 0, 0, 7894, 7895, 5, 3, 0, 0, 7895, 7897, 5, 7, 0, 0, 7896, 7890, 1, 0, 0, 0, 7896, 7897, 1, 0, 0, 0, 7897, 7908, 1, 0, 0, 0, 7898, 7899, 5, 57, 0, 0, 7899, 7900, 3, 922, 461, 0, 7900, 7902, 5, 2, 0, 0, 7901, 7903, 3, 724, 362, 0, 7902, 7901, 1, 0, 0, 0, 7902, 7903, 1, 0, 0, 0, 7903, 7904, 1, 0, 0, 0, 7904, 7905, 5, 3, 0, 0, 7905, 7906, 5, 7, 0, 0, 7906, 7908, 1, 0, 0, 0, 7907, 7888, 1, 0, 0, 0, 7907, 7898, 1, 0, 0, 0, 7908, 845, 1, 0, 0, 0, 7909, 7910, 3, 852, 426, 0, 7910, 7911, 3, 838, 419, 0, 7911, 7912, 3, 924, 462, 0, 7912, 7913, 5, 7, 0, 0, 7913, 847, 1, 0, 0, 0, 7914, 7916, 5, 499, 0, 0, 7915, 7917, 7, 115, 0, 0, 7916, 7915, 1, 0, 0, 0, 7916, 7917, 1, 0, 0, 0, 7917, 7918, 1, 0, 0, 0, 7918, 7919, 5, 500, 0, 0, 7919, 7924, 3, 850, 425, 0, 7920, 7921, 5, 6, 0, 0, 7921, 7923, 3, 850, 425, 0, 7922, 7920, 1, 0, 0, 0, 7923, 7926, 1, 0, 0, 0, 7924, 7922, 1, 0, 0, 0, 7924, 7925, 1, 0, 0, 0, 7925, 7927, 1, 0, 0, 0, 7926, 7924, 1, 0, 0, 0, 7927, 7928, 5, 7, 0, 0, 7928, 849, 1, 0, 0, 0, 7929, 7930, 3, 852, 426, 0, 7930, 7931, 3, 838, 419, 0, 7931, 7932, 3, 812, 406, 0, 7932, 851, 1, 0, 0, 0, 7933, 7936, 3, 310, 155, 0, 7934, 7936, 5, 28, 0, 0, 7935, 7933, 1, 0, 0, 0, 7935, 7934, 1, 0, 0, 0, 7936, 7943, 1, 0, 0, 0, 7937, 7938, 5, 4, 0, 0, 7938, 7939, 3, 668, 334, 0, 7939, 7940, 5, 5, 0, 0, 7940, 7942, 1, 0, 0, 0, 7941, 7937, 1, 0, 0, 0, 7942, 7945, 1, 0, 0, 0, 7943, 7941, 1, 0, 0, 0, 7943, 7944, 1, 0, 0, 0, 7944, 853, 1, 0, 0, 0, 7945, 7943, 1, 0, 0, 0, 7946, 7947, 5, 220, 0, 0, 7947, 7948, 3, 924, 462, 0, 7948, 7952, 5, 93, 0, 0, 7949, 7951, 3, 840, 420, 0, 7950, 7949, 1, 0, 0, 0, 7951, 7954, 1, 0, 0, 0, 7952, 7950, 1, 0, 0, 0, 7952, 7953, 1, 0, 0, 0, 7953, 7966, 1, 0, 0, 0, 7954, 7952, 1, 0, 0, 0, 7955, 7956, 5, 502, 0, 0, 7956, 7957, 3, 668, 334, 0, 7957, 7961, 5, 93, 0, 0, 7958, 7960, 3, 840, 420, 0, 7959, 7958, 1, 0, 0, 0, 7960, 7963, 1, 0, 0, 0, 7961, 7959, 1, 0, 0, 0, 7961, 7962, 1, 0, 0, 0, 7962, 7965, 1, 0, 0, 0, 7963, 7961, 1, 0, 0, 0, 7964, 7955, 1, 0, 0, 0, 7965, 7968, 1, 0, 0, 0, 7966, 7964, 1, 0, 0, 0, 7966, 7967, 1, 0, 0, 0, 7967, 7970, 1, 0, 0, 0, 7968, 7966, 1, 0, 0, 0, 7969, 7971, 3, 856, 428, 0, 7970, 7969, 1, 0, 0, 0, 7970, 7971, 1, 0, 0, 0, 7971, 7972, 1, 0, 0, 0, 7972, 7973, 5, 454, 0, 0, 7973, 7974, 5, 220, 0, 0, 7974, 7975, 5, 7, 0, 0, 7975, 855, 1, 0, 0, 0, 7976, 7980, 5, 58, 0, 0, 7977, 7979, 3, 840, 420, 0, 7978, 7977, 1, 0, 0, 0, 7979, 7982, 1, 0, 0, 0, 7980, 7978, 1, 0, 0, 0, 7980, 7981, 1, 0, 0, 0, 7981, 857, 1, 0, 0, 0, 7982, 7980, 1, 0, 0, 0, 7983, 7985, 5, 40, 0, 0, 7984, 7986, 3, 924, 462, 0, 7985, 7984, 1, 0, 0, 0, 7985, 7986, 1, 0, 0, 0, 7986, 7996, 1, 0, 0, 0, 7987, 7988, 5, 102, 0, 0, 7988, 7989, 3, 724, 362, 0, 7989, 7993, 5, 93, 0, 0, 7990, 7992, 3, 840, 420, 0, 7991, 7990, 1, 0, 0, 0, 7992, 7995, 1, 0, 0, 0, 7993, 7991, 1, 0, 0, 0, 7993, 7994, 1, 0, 0, 0, 7994, 7997, 1, 0, 0, 0, 7995, 7993, 1, 0, 0, 0, 7996, 7987, 1, 0, 0, 0, 7997, 7998, 1, 0, 0, 0, 7998, 7996, 1, 0, 0, 0, 7998, 7999, 1, 0, 0, 0, 7999, 8001, 1, 0, 0, 0, 8000, 8002, 3, 856, 428, 0, 8001, 8000, 1, 0, 0, 0, 8001, 8002, 1, 0, 0, 0, 8002, 8003, 1, 0, 0, 0, 8003, 8004, 5, 454, 0, 0, 8004, 8005, 5, 40, 0, 0, 8005, 8006, 5, 7, 0, 0, 8006, 859, 1, 0, 0, 0, 8007, 8009, 3, 832, 416, 0, 8008, 8007, 1, 0, 0, 0, 8008, 8009, 1, 0, 0, 0, 8009, 8014, 1, 0, 0, 0, 8010, 8011, 5, 503, 0, 0, 8011, 8015, 3, 668, 334, 0, 8012, 8013, 5, 62, 0, 0, 8013, 8015, 3, 862, 431, 0, 8014, 8010, 1, 0, 0, 0, 8014, 8012, 1, 0, 0, 0, 8014, 8015, 1, 0, 0, 0, 8015, 8016, 1, 0, 0, 0, 8016, 8017, 3, 876, 438, 0, 8017, 861, 1, 0, 0, 0, 8018, 8019, 3, 308, 154, 0, 8019, 8042, 5, 68, 0, 0, 8020, 8022, 3, 812, 406, 0, 8021, 8023, 3, 528, 264, 0, 8022, 8021, 1, 0, 0, 0, 8022, 8023, 1, 0, 0, 0, 8023, 8043, 1, 0, 0, 0, 8024, 8043, 3, 554, 277, 0, 8025, 8043, 3, 514, 257, 0, 8026, 8027, 5, 202, 0, 0, 8027, 8030, 3, 668, 334, 0, 8028, 8029, 5, 100, 0, 0, 8029, 8031, 3, 724, 362, 0, 8030, 8028, 1, 0, 0, 0, 8030, 8031, 1, 0, 0, 0, 8031, 8043, 1, 0, 0, 0, 8032, 8034, 5, 504, 0, 0, 8033, 8032, 1, 0, 0, 0, 8033, 8034, 1, 0, 0, 0, 8034, 8035, 1, 0, 0, 0, 8035, 8036, 3, 668, 334, 0, 8036, 8037, 5, 24, 0, 0, 8037, 8040, 3, 668, 334, 0, 8038, 8039, 5, 147, 0, 0, 8039, 8041, 3, 668, 334, 0, 8040, 8038, 1, 0, 0, 0, 8040, 8041, 1, 0, 0, 0, 8041, 8043, 1, 0, 0, 0, 8042, 8020, 1, 0, 0, 0, 8042, 8024, 1, 0, 0, 0, 8042, 8025, 1, 0, 0, 0, 8042, 8026, 1, 0, 0, 0, 8042, 8033, 1, 0, 0, 0, 8043, 863, 1, 0, 0, 0, 8044, 8046, 3, 832, 416, 0, 8045, 8044, 1, 0, 0, 0, 8045, 8046, 1, 0, 0, 0, 8046, 8047, 1, 0, 0, 0, 8047, 8048, 5, 505, 0, 0, 8048, 8051, 3, 308, 154, 0, 8049, 8050, 5, 506, 0, 0, 8050, 8052, 5, 574, 0, 0, 8051, 8049, 1, 0, 0, 0, 8051, 8052, 1, 0, 0, 0, 8052, 8053, 1, 0, 0, 0, 8053, 8054, 5, 68, 0, 0, 8054, 8055, 5, 35, 0, 0, 8055, 8056, 3, 668, 334, 0, 8056, 8057, 3, 876, 438, 0, 8057, 865, 1, 0, 0, 0, 8058, 8060, 7, 116, 0, 0, 8059, 8061, 3, 922, 461, 0, 8060, 8059, 1, 0, 0, 0, 8060, 8061, 1, 0, 0, 0, 8061, 8064, 1, 0, 0, 0, 8062, 8063, 5, 102, 0, 0, 8063, 8065, 3, 924, 462, 0, 8064, 8062, 1, 0, 0, 0, 8064, 8065, 1, 0, 0, 0, 8065, 8066, 1, 0, 0, 0, 8066, 8067, 5, 7, 0, 0, 8067, 867, 1, 0, 0, 0, 8068, 8083, 5, 508, 0, 0, 8069, 8070, 5, 268, 0, 0, 8070, 8084, 3, 924, 462, 0, 8071, 8078, 5, 509, 0, 0, 8072, 8073, 5, 202, 0, 0, 8073, 8074, 3, 668, 334, 0, 8074, 8075, 5, 100, 0, 0, 8075, 8076, 3, 724, 362, 0, 8076, 8079, 1, 0, 0, 0, 8077, 8079, 3, 554, 277, 0, 8078, 8072, 1, 0, 0, 0, 8078, 8077, 1, 0, 0, 0, 8079, 8084, 1, 0, 0, 0, 8080, 8082, 3, 924, 462, 0, 8081, 8080, 1, 0, 0, 0, 8081, 8082, 1, 0, 0, 0, 8082, 8084, 1, 0, 0, 0, 8083, 8069, 1, 0, 0, 0, 8083, 8071, 1, 0, 0, 0, 8083, 8081, 1, 0, 0, 0, 8084, 8085, 1, 0, 0, 0, 8085, 8086, 5, 7, 0, 0, 8086, 869, 1, 0, 0, 0, 8087, 8117, 5, 510, 0, 0, 8088, 8090, 7, 117, 0, 0, 8089, 8088, 1, 0, 0, 0, 8089, 8090, 1, 0, 0, 0, 8090, 8103, 1, 0, 0, 0, 8091, 8104, 3, 820, 410, 0, 8092, 8093, 5, 511, 0, 0, 8093, 8104, 3, 802, 401, 0, 8094, 8101, 3, 802, 401, 0, 8095, 8096, 5, 6, 0, 0, 8096, 8098, 3, 668, 334, 0, 8097, 8095, 1, 0, 0, 0, 8098, 8099, 1, 0, 0, 0, 8099, 8097, 1, 0, 0, 0, 8099, 8100, 1, 0, 0, 0, 8100, 8102, 1, 0, 0, 0, 8101, 8097, 1, 0, 0, 0, 8101, 8102, 1, 0, 0, 0, 8102, 8104, 1, 0, 0, 0, 8103, 8091, 1, 0, 0, 0, 8103, 8092, 1, 0, 0, 0, 8103, 8094, 1, 0, 0, 0, 8103, 8104, 1, 0, 0, 0, 8104, 8114, 1, 0, 0, 0, 8105, 8106, 5, 100, 0, 0, 8106, 8111, 3, 872, 436, 0, 8107, 8108, 5, 6, 0, 0, 8108, 8110, 3, 872, 436, 0, 8109, 8107, 1, 0, 0, 0, 8110, 8113, 1, 0, 0, 0, 8111, 8109, 1, 0, 0, 0, 8111, 8112, 1, 0, 0, 0, 8112, 8115, 1, 0, 0, 0, 8113, 8111, 1, 0, 0, 0, 8114, 8105, 1, 0, 0, 0, 8114, 8115, 1, 0, 0, 0, 8115, 8116, 1, 0, 0, 0, 8116, 8118, 5, 7, 0, 0, 8117, 8089, 1, 0, 0, 0, 8117, 8118, 1, 0, 0, 0, 8118, 871, 1, 0, 0, 0, 8119, 8120, 3, 820, 410, 0, 8120, 8121, 5, 10, 0, 0, 8121, 8122, 3, 668, 334, 0, 8122, 873, 1, 0, 0, 0, 8123, 8124, 5, 518, 0, 0, 8124, 8127, 3, 924, 462, 0, 8125, 8126, 5, 6, 0, 0, 8126, 8128, 3, 924, 462, 0, 8127, 8125, 1, 0, 0, 0, 8127, 8128, 1, 0, 0, 0, 8128, 8129, 1, 0, 0, 0, 8129, 8130, 5, 7, 0, 0, 8130, 875, 1, 0, 0, 0, 8131, 8135, 5, 519, 0, 0, 8132, 8134, 3, 840, 420, 0, 8133, 8132, 1, 0, 0, 0, 8134, 8137, 1, 0, 0, 0, 8135, 8133, 1, 0, 0, 0, 8135, 8136, 1, 0, 0, 0, 8136, 8138, 1, 0, 0, 0, 8137, 8135, 1, 0, 0, 0, 8138, 8139, 5, 454, 0, 0, 8139, 8141, 5, 519, 0, 0, 8140, 8142, 3, 922, 461, 0, 8141, 8140, 1, 0, 0, 0, 8141, 8142, 1, 0, 0, 0, 8142, 8143, 1, 0, 0, 0, 8143, 8144, 5, 7, 0, 0, 8144, 877, 1, 0, 0, 0, 8145, 8147, 3, 4, 2, 0, 8146, 8148, 3, 882, 441, 0, 8147, 8146, 1, 0, 0, 0, 8147, 8148, 1, 0, 0, 0, 8148, 8149, 1, 0, 0, 0, 8149, 8150, 5, 7, 0, 0, 8150, 879, 1, 0, 0, 0, 8151, 8152, 5, 202, 0, 0, 8152, 8168, 3, 668, 334, 0, 8153, 8155, 3, 882, 441, 0, 8154, 8153, 1, 0, 0, 0, 8154, 8155, 1, 0, 0, 0, 8155, 8158, 1, 0, 0, 0, 8156, 8157, 5, 100, 0, 0, 8157, 8159, 3, 724, 362, 0, 8158, 8156, 1, 0, 0, 0, 8158, 8159, 1, 0, 0, 0, 8159, 8169, 1, 0, 0, 0, 8160, 8161, 5, 100, 0, 0, 8161, 8163, 3, 724, 362, 0, 8162, 8160, 1, 0, 0, 0, 8162, 8163, 1, 0, 0, 0, 8163, 8165, 1, 0, 0, 0, 8164, 8166, 3, 882, 441, 0, 8165, 8164, 1, 0, 0, 0, 8165, 8166, 1, 0, 0, 0, 8166, 8169, 1, 0, 0, 0, 8167, 8169, 1, 0, 0, 0, 8168, 8154, 1, 0, 0, 0, 8168, 8162, 1, 0, 0, 0, 8168, 8167, 1, 0, 0, 0, 8169, 8170, 1, 0, 0, 0, 8170, 8171, 5, 7, 0, 0, 8171, 881, 1, 0, 0, 0, 8172, 8174, 5, 71, 0, 0, 8173, 8175, 5, 346, 0, 0, 8174, 8173, 1, 0, 0, 0, 8174, 8175, 1, 0, 0, 0, 8175, 8176, 1, 0, 0, 0, 8176, 8177, 3, 724, 362, 0, 8177, 883, 1, 0, 0, 0, 8178, 8210, 5, 520, 0, 0, 8179, 8184, 3, 916, 458, 0, 8180, 8182, 5, 269, 0, 0, 8181, 8180, 1, 0, 0, 0, 8181, 8182, 1, 0, 0, 0, 8182, 8183, 1, 0, 0, 0, 8183, 8185, 5, 324, 0, 0, 8184, 8181, 1, 0, 0, 0, 8184, 8185, 1, 0, 0, 0, 8185, 8186, 1, 0, 0, 0, 8186, 8194, 5, 62, 0, 0, 8187, 8195, 3, 554, 277, 0, 8188, 8189, 5, 202, 0, 0, 8189, 8192, 3, 924, 462, 0, 8190, 8191, 5, 100, 0, 0, 8191, 8193, 3, 724, 362, 0, 8192, 8190, 1, 0, 0, 0, 8192, 8193, 1, 0, 0, 0, 8193, 8195, 1, 0, 0, 0, 8194, 8187, 1, 0, 0, 0, 8194, 8188, 1, 0, 0, 0, 8195, 8211, 1, 0, 0, 0, 8196, 8208, 3, 812, 406, 0, 8197, 8198, 5, 2, 0, 0, 8198, 8203, 3, 886, 443, 0, 8199, 8200, 5, 6, 0, 0, 8200, 8202, 3, 886, 443, 0, 8201, 8199, 1, 0, 0, 0, 8202, 8205, 1, 0, 0, 0, 8203, 8201, 1, 0, 0, 0, 8203, 8204, 1, 0, 0, 0, 8204, 8206, 1, 0, 0, 0, 8205, 8203, 1, 0, 0, 0, 8206, 8207, 5, 3, 0, 0, 8207, 8209, 1, 0, 0, 0, 8208, 8197, 1, 0, 0, 0, 8208, 8209, 1, 0, 0, 0, 8209, 8211, 1, 0, 0, 0, 8210, 8179, 1, 0, 0, 0, 8210, 8196, 1, 0, 0, 0, 8211, 8212, 1, 0, 0, 0, 8212, 8213, 5, 7, 0, 0, 8213, 885, 1, 0, 0, 0, 8214, 8215, 3, 812, 406, 0, 8215, 8216, 5, 20, 0, 0, 8216, 8218, 1, 0, 0, 0, 8217, 8214, 1, 0, 0, 0, 8217, 8218, 1, 0, 0, 0, 8218, 8219, 1, 0, 0, 0, 8219, 8220, 3, 668, 334, 0, 8220, 887, 1, 0, 0, 0, 8221, 8223, 5, 61, 0, 0, 8222, 8224, 3, 890, 445, 0, 8223, 8222, 1, 0, 0, 0, 8223, 8224, 1, 0, 0, 0, 8224, 8226, 1, 0, 0, 0, 8225, 8227, 3, 326, 163, 0, 8226, 8225, 1, 0, 0, 0, 8226, 8227, 1, 0, 0, 0, 8227, 8228, 1, 0, 0, 0, 8228, 8229, 3, 916, 458, 0, 8229, 8230, 5, 71, 0, 0, 8230, 8231, 3, 724, 362, 0, 8231, 8232, 5, 7, 0, 0, 8232, 889, 1, 0, 0, 0, 8233, 8248, 5, 268, 0, 0, 8234, 8248, 5, 293, 0, 0, 8235, 8248, 5, 207, 0, 0, 8236, 8248, 5, 249, 0, 0, 8237, 8239, 7, 51, 0, 0, 8238, 8237, 1, 0, 0, 0, 8238, 8239, 1, 0, 0, 0, 8239, 8240, 1, 0, 0, 0, 8240, 8248, 3, 668, 334, 0, 8241, 8248, 5, 30, 0, 0, 8242, 8245, 7, 118, 0, 0, 8243, 8246, 3, 668, 334, 0, 8244, 8246, 5, 30, 0, 0, 8245, 8243, 1, 0, 0, 0, 8245, 8244, 1, 0, 0, 0, 8245, 8246, 1, 0, 0, 0, 8246, 8248, 1, 0, 0, 0, 8247, 8233, 1, 0, 0, 0, 8247, 8234, 1, 0, 0, 0, 8247, 8235, 1, 0, 0, 0, 8247, 8236, 1, 0, 0, 0, 8247, 8238, 1, 0, 0, 0, 8247, 8241, 1, 0, 0, 0, 8247, 8242, 1, 0, 0, 0, 8248, 891, 1, 0, 0, 0, 8249, 8251, 5, 265, 0, 0, 8250, 8252, 3, 890, 445, 0, 8251, 8250, 1, 0, 0, 0, 8251, 8252, 1, 0, 0, 0, 8252, 8253, 1, 0, 0, 0, 8253, 8254, 3, 916, 458, 0, 8254, 8255, 5, 7, 0, 0, 8255, 893, 1, 0, 0, 0, 8256, 8258, 3, 566, 283, 0, 8257, 8256, 1, 0, 0, 0, 8257, 8258, 1, 0, 0, 0, 8258, 8259, 1, 0, 0, 0, 8259, 8260, 5, 525, 0, 0, 8260, 8262, 5, 71, 0, 0, 8261, 8263, 5, 81, 0, 0, 8262, 8261, 1, 0, 0, 0, 8262, 8263, 1, 0, 0, 0, 8263, 8264, 1, 0, 0, 0, 8264, 8266, 3, 768, 384, 0, 8265, 8267, 5, 9, 0, 0, 8266, 8265, 1, 0, 0, 0, 8266, 8267, 1, 0, 0, 0, 8267, 8272, 1, 0, 0, 0, 8268, 8270, 5, 36, 0, 0, 8269, 8268, 1, 0, 0, 0, 8269, 8270, 1, 0, 0, 0, 8270, 8271, 1, 0, 0, 0, 8271, 8273, 3, 812, 406, 0, 8272, 8269, 1, 0, 0, 0, 8272, 8273, 1, 0, 0, 0, 8273, 8274, 1, 0, 0, 0, 8274, 8275, 5, 100, 0, 0, 8275, 8276, 3, 896, 448, 0, 8276, 8277, 5, 80, 0, 0, 8277, 8279, 3, 668, 334, 0, 8278, 8280, 3, 898, 449, 0, 8279, 8278, 1, 0, 0, 0, 8280, 8281, 1, 0, 0, 0, 8281, 8279, 1, 0, 0, 0, 8281, 8282, 1, 0, 0, 0, 8282, 8284, 1, 0, 0, 0, 8283, 8285, 3, 540, 270, 0, 8284, 8283, 1, 0, 0, 0, 8284, 8285, 1, 0, 0, 0, 8285, 895, 1, 0, 0, 0, 8286, 8288, 5, 81, 0, 0, 8287, 8286, 1, 0, 0, 0, 8287, 8288, 1, 0, 0, 0, 8288, 8289, 1, 0, 0, 0, 8289, 8291, 3, 768, 384, 0, 8290, 8292, 5, 9, 0, 0, 8291, 8290, 1, 0, 0, 0, 8291, 8292, 1, 0, 0, 0, 8292, 8298, 1, 0, 0, 0, 8293, 8296, 3, 558, 279, 0, 8294, 8296, 3, 602, 301, 0, 8295, 8293, 1, 0, 0, 0, 8295, 8294, 1, 0, 0, 0, 8296, 8298, 1, 0, 0, 0, 8297, 8287, 1, 0, 0, 0, 8297, 8295, 1, 0, 0, 0, 8298, 8303, 1, 0, 0, 0, 8299, 8301, 5, 36, 0, 0, 8300, 8299, 1, 0, 0, 0, 8300, 8301, 1, 0, 0, 0, 8301, 8302, 1, 0, 0, 0, 8302, 8304, 3, 812, 406, 0, 8303, 8300, 1, 0, 0, 0, 8303, 8304, 1, 0, 0, 0, 8304, 897, 1, 0, 0, 0, 8305, 8306, 5, 102, 0, 0, 8306, 8309, 5, 526, 0, 0, 8307, 8308, 5, 33, 0, 0, 8308, 8310, 3, 668, 334, 0, 8309, 8307, 1, 0, 0, 0, 8309, 8310, 1, 0, 0, 0, 8310, 8311, 1, 0, 0, 0, 8311, 8316, 5, 93, 0, 0, 8312, 8317, 3, 902, 451, 0, 8313, 8317, 5, 182, 0, 0, 8314, 8315, 5, 57, 0, 0, 8315, 8317, 5, 270, 0, 0, 8316, 8312, 1, 0, 0, 0, 8316, 8313, 1, 0, 0, 0, 8316, 8314, 1, 0, 0, 0, 8317, 8332, 1, 0, 0, 0, 8318, 8319, 5, 102, 0, 0, 8319, 8320, 5, 77, 0, 0, 8320, 8323, 5, 526, 0, 0, 8321, 8322, 5, 33, 0, 0, 8322, 8324, 3, 668, 334, 0, 8323, 8321, 1, 0, 0, 0, 8323, 8324, 1, 0, 0, 0, 8324, 8325, 1, 0, 0, 0, 8325, 8329, 5, 93, 0, 0, 8326, 8330, 3, 900, 450, 0, 8327, 8328, 5, 57, 0, 0, 8328, 8330, 5, 270, 0, 0, 8329, 8326, 1, 0, 0, 0, 8329, 8327, 1, 0, 0, 0, 8330, 8332, 1, 0, 0, 0, 8331, 8305, 1, 0, 0, 0, 8331, 8318, 1, 0, 0, 0, 8332, 899, 1, 0, 0, 0, 8333, 8335, 5, 241, 0, 0, 8334, 8336, 3, 138, 69, 0, 8335, 8334, 1, 0, 0, 0, 8335, 8336, 1, 0, 0, 0, 8336, 8340, 1, 0, 0, 0, 8337, 8338, 5, 463, 0, 0, 8338, 8339, 7, 77, 0, 0, 8339, 8341, 5, 450, 0, 0, 8340, 8337, 1, 0, 0, 0, 8340, 8341, 1, 0, 0, 0, 8341, 8342, 1, 0, 0, 0, 8342, 8343, 3, 904, 452, 0, 8343, 901, 1, 0, 0, 0, 8344, 8345, 5, 369, 0, 0, 8345, 8363, 5, 333, 0, 0, 8346, 8347, 3, 794, 397, 0, 8347, 8348, 5, 10, 0, 0, 8348, 8349, 3, 906, 453, 0, 8349, 8364, 1, 0, 0, 0, 8350, 8351, 3, 138, 69, 0, 8351, 8352, 5, 10, 0, 0, 8352, 8353, 5, 2, 0, 0, 8353, 8358, 3, 906, 453, 0, 8354, 8355, 5, 6, 0, 0, 8355, 8357, 3, 906, 453, 0, 8356, 8354, 1, 0, 0, 0, 8357, 8360, 1, 0, 0, 0, 8358, 8356, 1, 0, 0, 0, 8358, 8359, 1, 0, 0, 0, 8359, 8361, 1, 0, 0, 0, 8360, 8358, 1, 0, 0, 0, 8361, 8362, 5, 3, 0, 0, 8362, 8364, 1, 0, 0, 0, 8363, 8346, 1, 0, 0, 0, 8363, 8350, 1, 0, 0, 0, 8364, 8365, 1, 0, 0, 0, 8365, 8363, 1, 0, 0, 0, 8365, 8366, 1, 0, 0, 0, 8366, 903, 1, 0, 0, 0, 8367, 8368, 5, 422, 0, 0, 8368, 8369, 5, 2, 0, 0, 8369, 8374, 3, 906, 453, 0, 8370, 8371, 5, 6, 0, 0, 8371, 8373, 3, 906, 453, 0, 8372, 8370, 1, 0, 0, 0, 8373, 8376, 1, 0, 0, 0, 8374, 8372, 1, 0, 0, 0, 8374, 8375, 1, 0, 0, 0, 8375, 8377, 1, 0, 0, 0, 8376, 8374, 1, 0, 0, 0, 8377, 8378, 5, 3, 0, 0, 8378, 8382, 1, 0, 0, 0, 8379, 8380, 5, 53, 0, 0, 8380, 8382, 5, 422, 0, 0, 8381, 8367, 1, 0, 0, 0, 8381, 8379, 1, 0, 0, 0, 8382, 905, 1, 0, 0, 0, 8383, 8386, 3, 582, 291, 0, 8384, 8386, 5, 53, 0, 0, 8385, 8383, 1, 0, 0, 0, 8385, 8384, 1, 0, 0, 0, 8386, 907, 1, 0, 0, 0, 8387, 8388, 5, 157, 0, 0, 8388, 8389, 3, 916, 458, 0, 8389, 8390, 5, 7, 0, 0, 8390, 909, 1, 0, 0, 0, 8391, 8392, 5, 78, 0, 0, 8392, 8393, 5, 7, 0, 0, 8393, 911, 1, 0, 0, 0, 8394, 8400, 7, 68, 0, 0, 8395, 8397, 5, 33, 0, 0, 8396, 8398, 5, 269, 0, 0, 8397, 8396, 1, 0, 0, 0, 8397, 8398, 1, 0, 0, 0, 8398, 8399, 1, 0, 0, 0, 8399, 8401, 5, 153, 0, 0, 8400, 8395, 1, 0, 0, 0, 8400, 8401, 1, 0, 0, 0, 8401, 8402, 1, 0, 0, 0, 8402, 8403, 5, 7, 0, 0, 8403, 913, 1, 0, 0, 0, 8404, 8405, 5, 333, 0, 0, 8405, 8406, 3, 310, 155, 0, 8406, 8407, 5, 94, 0, 0, 8407, 8408, 5, 53, 0, 0, 8408, 8409, 5, 7, 0, 0, 8409, 8417, 1, 0, 0, 0, 8410, 8413, 5, 313, 0, 0, 8411, 8414, 3, 310, 155, 0, 8412, 8414, 5, 30, 0, 0, 8413, 8411, 1, 0, 0, 0, 8413, 8412, 1, 0, 0, 0, 8414, 8415, 1, 0, 0, 0, 8415, 8417, 5, 7, 0, 0, 8416, 8404, 1, 0, 0, 0, 8416, 8410, 1, 0, 0, 0, 8417, 915, 1, 0, 0, 0, 8418, 8421, 3, 812, 406, 0, 8419, 8421, 5, 28, 0, 0, 8420, 8418, 1, 0, 0, 0, 8420, 8419, 1, 0, 0, 0, 8421, 917, 1, 0, 0, 0, 8422, 8439, 5, 517, 0, 0, 8423, 8424, 5, 102, 0, 0, 8424, 8429, 3, 920, 460, 0, 8425, 8426, 5, 82, 0, 0, 8426, 8428, 3, 920, 460, 0, 8427, 8425, 1, 0, 0, 0, 8428, 8431, 1, 0, 0, 0, 8429, 8427, 1, 0, 0, 0, 8429, 8430, 1, 0, 0, 0, 8430, 8432, 1, 0, 0, 0, 8431, 8429, 1, 0, 0, 0, 8432, 8436, 5, 93, 0, 0, 8433, 8435, 3, 840, 420, 0, 8434, 8433, 1, 0, 0, 0, 8435, 8438, 1, 0, 0, 0, 8436, 8434, 1, 0, 0, 0, 8436, 8437, 1, 0, 0, 0, 8437, 8440, 1, 0, 0, 0, 8438, 8436, 1, 0, 0, 0, 8439, 8423, 1, 0, 0, 0, 8440, 8441, 1, 0, 0, 0, 8441, 8439, 1, 0, 0, 0, 8441, 8442, 1, 0, 0, 0, 8442, 919, 1, 0, 0, 0, 8443, 8447, 3, 922, 461, 0, 8444, 8445, 5, 511, 0, 0, 8445, 8447, 3, 802, 401, 0, 8446, 8443, 1, 0, 0, 0, 8446, 8444, 1, 0, 0, 0, 8447, 921, 1, 0, 0, 0, 8448, 8451, 3, 812, 406, 0, 8449, 8451, 3, 822, 411, 0, 8450, 8448, 1, 0, 0, 0, 8450, 8449, 1, 0, 0, 0, 8451, 923, 1, 0, 0, 0, 8452, 8454, 3, 750, 375, 0, 8453, 8452, 1, 0, 0, 0, 8453, 8454, 1, 0, 0, 0, 8454, 8456, 1, 0, 0, 0, 8455, 8457, 3, 574, 287, 0, 8456, 8455, 1, 0, 0, 0, 8456, 8457, 1, 0, 0, 0, 8457, 8459, 1, 0, 0, 0, 8458, 8460, 3, 604, 302, 0, 8459, 8458, 1, 0, 0, 0, 8459, 8460, 1, 0, 0, 0, 8460, 8462, 1, 0, 0, 0, 8461, 8463, 3, 632, 316, 0, 8462, 8461, 1, 0, 0, 0, 8462, 8463, 1, 0, 0, 0, 8463, 8465, 1, 0, 0, 0, 8464, 8466, 3, 594, 297, 0, 8465, 8464, 1, 0, 0, 0, 8465, 8466, 1, 0, 0, 0, 8466, 8469, 1, 0, 0, 0, 8467, 8468, 5, 67, 0, 0, 8468, 8470, 3, 668, 334, 0, 8469, 8467, 1, 0, 0, 0, 8469, 8470, 1, 0, 0, 0, 8470, 8472, 1, 0, 0, 0, 8471, 8473, 3, 696, 348, 0, 8472, 8471, 1, 0, 0, 0, 8472, 8473, 1, 0, 0, 0, 8473, 925, 1, 0, 0, 0, 1190, 929, 936, 1056, 1058, 1067, 1072, 1078, 1113, 1123, 1129, 1134, 1141, 1146, 1153, 1164, 1172, 1176, 1188, 1194, 1200, 1204, 1209, 1213, 1226, 1236, 1238, 1244, 1249, 1262, 1265, 1270, 1275, 1286, 1290, 1302, 1306, 1309, 1313, 1325, 1343, 1350, 1358, 1363, 1370, 1378, 1384, 1392, 1400, 1404, 1418, 1423, 1428, 1440, 1446, 1458, 1463, 1473, 1479, 1484, 1493, 1500, 1505, 1510, 1520, 1525, 1530, 1537, 1541, 1555, 1561, 1567, 1572, 1579, 1588, 1597, 1606, 1615, 1619, 1631, 1639, 1649, 1669, 1674, 1677, 1684, 1687, 1691, 1695, 1698, 1703, 1708, 1712, 1721, 1727, 1731, 1740, 1743, 1749, 1758, 1770, 1774, 1778, 1783, 1786, 1792, 1794, 1796, 1800, 1806, 1810, 1815, 1820, 1824, 1827, 1834, 1847, 1860, 1885, 1895, 1902, 1907, 1911, 1918, 1923, 1926, 1928, 1933, 1937, 1941, 1945, 1950, 1953, 1957, 1960, 1964, 1972, 1977, 1980, 1984, 1990, 1999, 2003, 2013, 2018, 2022, 2026, 2028, 2030, 2037, 2042, 2046, 2051, 2063, 2068, 2072, 2076, 2081, 2085, 2088, 2091, 2094, 2097, 2100, 2105, 2108, 2111, 2114, 2117, 2120, 2126, 2130, 2133, 2136, 2139, 2142, 2144, 2151, 2159, 2169, 2174, 2184, 2187, 2192, 2197, 2202, 2205, 2210, 2219, 2221, 2225, 2228, 2232, 2237, 2242, 2246, 2249, 2253, 2256, 2261, 2264, 2269, 2272, 2276, 2279, 2282, 2287, 2290, 2298, 2310, 2314, 2321, 2326, 2329, 2332, 2335, 2340, 2351, 2357, 2361, 2364, 2367, 2372, 2379, 2382, 2386, 2394, 2399, 2402, 2405, 2412, 2417, 2426, 2429, 2432, 2437, 2440, 2452, 2462, 2479, 2483, 2487, 2489, 2506, 2508, 2524, 2535, 2538, 2541, 2550, 2559, 2575, 2578, 2581, 2589, 2593, 2600, 2609, 2613, 2619, 2623, 2626, 2629, 2632, 2635, 2641, 2645, 2650, 2654, 2657, 2660, 2663, 2668, 2674, 2678, 2682, 2686, 2692, 2694, 2699, 2705, 2711, 2715, 2730, 2735, 2738, 2740, 2743, 2747, 2751, 2754, 2757, 2765, 2771, 2773, 2779, 2784, 2789, 2793, 2800, 2802, 2813, 2852, 2862, 2864, 2867, 2871, 2875, 2885, 2887, 2893, 2895, 2904, 2916, 2930, 2935, 2938, 2945, 2950, 2958, 2960, 2966, 2971, 2975, 2980, 2986, 2993, 2999, 3001, 3010, 3016, 3024, 3030, 3035, 3040, 3048, 3063, 3065, 3069, 3073, 3076, 3079, 3088, 3091, 3094, 3100, 3106, 3110, 3122, 3128, 3131, 3136, 3140, 3147, 3157, 3159, 3183, 3195, 3200, 3202, 3206, 3209, 3212, 3222, 3225, 3235, 3240, 3245, 3248, 3251, 3259, 3265, 3272, 3280, 3283, 3294, 3298, 3304, 3311, 3314, 3323, 3337, 3340, 3354, 3365, 3368, 3380, 3385, 3398, 3403, 3416, 3425, 3428, 3431, 3438, 3441, 3453, 3459, 3461, 3469, 3477, 3485, 3497, 3502, 3513, 3524, 3532, 3540, 3547, 3554, 3556, 3559, 3564, 3569, 3588, 3597, 3600, 3627, 3636, 3639, 3643, 3647, 3651, 3658, 3662, 3666, 3670, 3674, 3679, 3683, 3688, 3694, 3699, 3706, 3710, 3716, 3720, 3725, 3733, 3739, 3744, 3751, 3756, 3760, 3765, 3771, 3778, 3783, 3790, 3795, 3802, 3806, 3814, 3818, 3820, 3823, 3828, 3838, 3853, 3856, 3864, 3871, 3876, 3882, 3886, 3893, 3898, 3901, 3904, 3908, 3917, 3935, 3938, 3970, 3975, 3981, 4001, 4006, 4012, 4015, 4019, 4023, 4029, 4032, 4036, 4040, 4045, 4048, 4051, 4054, 4067, 4073, 4081, 4088, 4093, 4096, 4103, 4106, 4114, 4117, 4122, 4129, 4132, 4152, 4164, 4167, 4173, 4178, 4187, 4195, 4200, 4206, 4213, 4221, 4224, 4235, 4237, 4251, 4257, 4265, 4267, 4273, 4277, 4280, 4283, 4288, 4293, 4297, 4300, 4303, 4306, 4309, 4317, 4328, 4331, 4334, 4339, 4342, 4346, 4350, 4356, 4364, 4367, 4380, 4385, 4387, 4392, 4399, 4406, 4415, 4423, 4431, 4438, 4446, 4453, 4461, 4465, 4469, 4471, 4477, 4482, 4486, 4493, 4498, 4503, 4508, 4510, 4520, 4530, 4546, 4564, 4576, 4583, 4598, 4603, 4606, 4611, 4616, 4621, 4624, 4627, 4632, 4639, 4643, 4648, 4655, 4659, 4665, 4674, 4683, 4695, 4697, 4710, 4716, 4720, 4722, 4729, 4742, 4749, 4751, 4767, 4771, 4775, 4780, 4785, 4790, 4795, 4798, 4810, 4863, 4872, 4876, 4885, 4889, 4898, 4902, 4907, 4910, 4914, 4919, 4921, 4930, 4935, 4946, 4950, 4964, 4972, 5010, 5012, 5031, 5034, 5061, 5065, 5069, 5073, 5077, 5080, 5095, 5102, 5116, 5129, 5154, 5173, 5188, 5204, 5211, 5222, 5225, 5244, 5247, 5260, 5264, 5284, 5296, 5300, 5322, 5326, 5336, 5340, 5346, 5350, 5354, 5358, 5365, 5370, 5381, 5385, 5388, 5393, 5399, 5410, 5414, 5417, 5421, 5425, 5428, 5438, 5441, 5445, 5450, 5456, 5459, 5464, 5467, 5474, 5476, 5482, 5486, 5495, 5500, 5502, 5512, 5515, 5520, 5528, 5531, 5536, 5538, 5540, 5546, 5563, 5569, 5582, 5588, 5592, 5597, 5627, 5642, 5647, 5651, 5664, 5668, 5670, 5679, 5685, 5687, 5691, 5694, 5697, 5700, 5703, 5705, 5708, 5712, 5720, 5725, 5728, 5734, 5738, 5742, 5747, 5749, 5753, 5757, 5764, 5770, 5774, 5776, 5778, 5791, 5799, 5807, 5818, 5828, 5833, 5837, 5841, 5848, 5851, 5853, 5861, 5865, 5868, 5875, 5882, 5887, 5894, 5897, 5899, 5902, 5908, 5913, 5917, 5924, 5934, 5941, 5944, 5947, 5951, 5962, 5965, 5968, 5971, 5974, 5981, 5984, 5987, 5994, 6006, 6013, 6015, 6020, 6025, 6027, 6033, 6040, 6045, 6050, 6054, 6058, 6062, 6064, 6068, 6072, 6075, 6078, 6080, 6090, 6092, 6097, 6101, 6106, 6110, 6117, 6122, 6126, 6129, 6135, 6138, 6157, 6164, 6168, 6171, 6175, 6179, 6182, 6185, 6190, 6199, 6206, 6210, 6214, 6218, 6221, 6223, 6228, 6232, 6237, 6243, 6250, 6255, 6260, 6269, 6276, 6284, 6295, 6300, 6304, 6307, 6311, 6316, 6320, 6325, 6333, 6344, 6349, 6353, 6356, 6359, 6361, 6364, 6367, 6370, 6374, 6378, 6382, 6384, 6393, 6398, 6404, 6408, 6410, 6417, 6422, 6428, 6430, 6434, 6441, 6446, 6449, 6455, 6459, 6465, 6474, 6480, 6482, 6487, 6490, 6499, 6506, 6508, 6515, 6520, 6523, 6533, 6544, 6549, 6553, 6561, 6571, 6578, 6584, 6595, 6601, 6611, 6620, 6624, 6627, 6629, 6631, 6635, 6643, 6646, 6651, 6656, 6663, 6665, 6671, 6675, 6678, 6683, 6686, 6688, 6694, 6703, 6709, 6712, 6720, 6723, 6727, 6733, 6735, 6738, 6742, 6747, 6754, 6761, 6763, 6769, 6771, 6776, 6778, 6782, 6791, 6795, 6803, 6805, 6819, 6822, 6830, 6839, 6845, 6850, 6858, 6860, 6865, 6869, 6874, 6879, 6885, 6901, 6903, 6912, 6927, 6932, 6935, 6941, 6946, 6959, 6964, 6968, 6975, 6994, 7006, 7011, 7019, 7021, 7023, 7032, 7035, 7040, 7045, 7048, 7059, 7067, 7072, 7074, 7077, 7081, 7092, 7113, 7121, 7134, 7144, 7150, 7156, 7159, 7162, 7188, 7190, 7211, 7221, 7234, 7239, 7243, 7245, 7257, 7264, 7270, 7276, 7280, 7291, 7301, 7305, 7310, 7313, 7316, 7325, 7336, 7338, 7342, 7347, 7356, 7361, 7369, 7379, 7387, 7391, 7394, 7401, 7409, 7413, 7420, 7428, 7430, 7439, 7442, 7454, 7463, 7470, 7479, 7489, 7494, 7498, 7500, 7503, 7508, 7513, 7521, 7529, 7532, 7539, 7547, 7555, 7563, 7580, 7587, 7595, 7612, 7618, 7624, 7632, 7638, 7643, 7651, 7656, 7659, 7668, 7675, 7680, 7684, 7689, 7695, 7700, 7708, 7763, 7770, 7776, 7778, 7780, 7782, 7788, 7792, 7796, 7807, 7810, 7814, 7818, 7822, 7825, 7828, 7831, 7840, 7845, 7849, 7882, 7892, 7896, 7902, 7907, 7916, 7924, 7935, 7943, 7952, 7961, 7966, 7970, 7980, 7985, 7993, 7998, 8001, 8008, 8014, 8022, 8030, 8033, 8040, 8042, 8045, 8051, 8060, 8064, 8078, 8081, 8083, 8089, 8099, 8101, 8103, 8111, 8114, 8117, 8127, 8135, 8141, 8147, 8154, 8158, 8162, 8165, 8168, 8174, 8181, 8184, 8192, 8194, 8203, 8208, 8210, 8217, 8223, 8226, 8238, 8245, 8247, 8251, 8257, 8262, 8266, 8269, 8272, 8281, 8284, 8287, 8291, 8295, 8297, 8300, 8303, 8309, 8316, 8323, 8329, 8331, 8335, 8340, 8358, 8363, 8365, 8374, 8381, 8385, 8397, 8400, 8413, 8416, 8420, 8429, 8436, 8441, 8446, 8450, 8453, 8456, 8459, 8462, 8465, 8469, 8472] \ No newline at end of file diff --git a/src/lib/postgresql/PostgreSqlParser.ts b/src/lib/postgresql/PostgreSqlParser.ts index ab0898b62..48b8ec37e 100644 --- a/src/lib/postgresql/PostgreSqlParser.ts +++ b/src/lib/postgresql/PostgreSqlParser.ts @@ -621,27 +621,27 @@ export class PostgreSqlParser extends SQLParserBase { public static readonly RULE_alterRoleStmt = 8; public static readonly RULE_alterRoleSetStmt = 9; public static readonly RULE_alterRoutineStmt = 10; - public static readonly RULE_alter_routine_clause = 11; - public static readonly RULE_routine_action = 12; + public static readonly RULE_alterRoutineClause = 11; + public static readonly RULE_routineAction = 12; public static readonly RULE_createGroupStmt = 13; public static readonly RULE_alterGroupStmt = 14; public static readonly RULE_createSchemaStmt = 15; - public static readonly RULE_schema_name_create = 16; - public static readonly RULE_schema_stmt = 17; + public static readonly RULE_schemaNameCreate = 16; + public static readonly RULE_schemaStmt = 17; public static readonly RULE_variableSetStmt = 18; - public static readonly RULE_set_rest = 19; - public static readonly RULE_generic_set = 20; - public static readonly RULE_set_rest_more = 21; - public static readonly RULE_var_name = 22; - public static readonly RULE_var_list = 23; - public static readonly RULE_var_value = 24; - public static readonly RULE_iso_level = 25; - public static readonly RULE_opt_boolean_or_string_column = 26; - public static readonly RULE_opt_boolean_or_string = 27; - public static readonly RULE_zone_value = 28; + public static readonly RULE_setRest = 19; + public static readonly RULE_genericSet = 20; + public static readonly RULE_setRestMore = 21; + public static readonly RULE_varName = 22; + public static readonly RULE_varList = 23; + public static readonly RULE_varValue = 24; + public static readonly RULE_isoLevel = 25; + public static readonly RULE_optBooleanOrStringColumn = 26; + public static readonly RULE_booleanOrString = 27; + public static readonly RULE_zoneValue = 28; public static readonly RULE_nonReservedWordOrStringConst = 29; public static readonly RULE_variableResetStmt = 30; - public static readonly RULE_reset_rest = 31; + public static readonly RULE_resetRest = 31; public static readonly RULE_setOrResetClause = 32; public static readonly RULE_functionSetOrResetClause = 33; public static readonly RULE_variableShowStmt = 34; @@ -649,434 +649,430 @@ export class PostgreSqlParser extends SQLParserBase { public static readonly RULE_checkPointStmt = 36; public static readonly RULE_discardStmt = 37; public static readonly RULE_alterTableStmt = 38; - public static readonly RULE_alter_table_cmds = 39; - public static readonly RULE_partition_bound_spec = 40; - public static readonly RULE_partition_bound_clause = 41; - public static readonly RULE_partition_bound_choose = 42; - public static readonly RULE_partition_with_clause = 43; - public static readonly RULE_partition_cmd = 44; - public static readonly RULE_index_partition_cmd = 45; - public static readonly RULE_alter_table_cmd = 46; - public static readonly RULE_alter_column_default = 47; - public static readonly RULE_opt_drop_behavior = 48; - public static readonly RULE_opt_collate_clause = 49; - public static readonly RULE_relOptions = 50; - public static readonly RULE_optRelOptions = 51; - public static readonly RULE_relOptionElem = 52; - public static readonly RULE_partitionBoundSpec = 53; - public static readonly RULE_alterCompositeTypeStmt = 54; - public static readonly RULE_alter_type_cmd = 55; - public static readonly RULE_closePortalStmt = 56; - public static readonly RULE_copyStmt = 57; - public static readonly RULE_copyOptionsNoparens = 58; - public static readonly RULE_copyOptions = 59; - public static readonly RULE_copy_generic_opt_elem = 60; - public static readonly RULE_createStmt = 61; - public static readonly RULE_optTemp = 62; - public static readonly RULE_optTypedTableElEmentList = 63; - public static readonly RULE_tableElementList = 64; - public static readonly RULE_tableElement = 65; - public static readonly RULE_typedTableElement = 66; - public static readonly RULE_column_def = 67; - public static readonly RULE_colConstraint = 68; - public static readonly RULE_colConstraintElem = 69; - public static readonly RULE_generated_when = 70; - public static readonly RULE_tableLikeOption = 71; - public static readonly RULE_constraintElem = 72; - public static readonly RULE_opt_column_list = 73; - public static readonly RULE_opt_column_list_create = 74; - public static readonly RULE_column_list = 75; - public static readonly RULE_opt_c_include = 76; - public static readonly RULE_key_match = 77; - public static readonly RULE_exclusionConstraintElem = 78; - public static readonly RULE_key_actions = 79; - public static readonly RULE_key_update = 80; - public static readonly RULE_key_delete = 81; - public static readonly RULE_key_action = 82; - public static readonly RULE_optInherit = 83; - public static readonly RULE_partitionSpec = 84; - public static readonly RULE_part_elem = 85; - public static readonly RULE_table_access_method_clause = 86; - public static readonly RULE_optWith = 87; - public static readonly RULE_onCommitOption = 88; - public static readonly RULE_optTableSpace = 89; - public static readonly RULE_optConstableSpace = 90; - public static readonly RULE_existingIndex = 91; - public static readonly RULE_createStatsStmt = 92; - public static readonly RULE_alterStatsStmt = 93; - public static readonly RULE_createAsStmt = 94; - public static readonly RULE_create_as_target = 95; - public static readonly RULE_opt_with_data = 96; - public static readonly RULE_createMaterializedViewStmt = 97; - public static readonly RULE_refreshMaterializedViewStmt = 98; - public static readonly RULE_createSeqStmt = 99; - public static readonly RULE_alterSeqStmt = 100; - public static readonly RULE_seqOptElem = 101; - public static readonly RULE_numericOnly = 102; - public static readonly RULE_createProceduralLangStmt = 103; - public static readonly RULE_createTableSpaceStmt = 104; - public static readonly RULE_createExtensionStmt = 105; - public static readonly RULE_alterExtensionStmt = 106; - public static readonly RULE_alterExtensionContentsStmt = 107; - public static readonly RULE_createFdwStmt = 108; - public static readonly RULE_fdw_option = 109; - public static readonly RULE_alterFdwStmt = 110; - public static readonly RULE_create_generic_options = 111; - public static readonly RULE_alter_generic_options = 112; - public static readonly RULE_alter_generic_option_elem = 113; - public static readonly RULE_generic_option_elem = 114; - public static readonly RULE_createForeignServerStmt = 115; - public static readonly RULE_foreign_server_version = 116; - public static readonly RULE_alterForeignServerStmt = 117; - public static readonly RULE_createForeignTableStmt = 118; - public static readonly RULE_importForeignSchemaStmt = 119; - public static readonly RULE_createUserMappingStmt = 120; - public static readonly RULE_alterUserMappingStmt = 121; - public static readonly RULE_createPolicyStmt = 122; - public static readonly RULE_alterPolicyStmt = 123; - public static readonly RULE_alterProcedureStmt = 124; - public static readonly RULE_procedure_action = 125; - public static readonly RULE_rowSecurityOptionalExpr = 126; - public static readonly RULE_rowSecurityOptionalWithCheck = 127; - public static readonly RULE_createAccessMethodStmt = 128; - public static readonly RULE_createTrigStmt = 129; - public static readonly RULE_triggerActionTime = 130; - public static readonly RULE_triggerEvents = 131; - public static readonly RULE_triggerOneEvent = 132; - public static readonly RULE_triggerWhen = 133; - public static readonly RULE_function_or_procedure = 134; - public static readonly RULE_triggerFuncArgs = 135; - public static readonly RULE_triggerFuncArg = 136; - public static readonly RULE_constraintAttributeElem = 137; - public static readonly RULE_createEventTrigStmt = 138; - public static readonly RULE_event_trigger_when_item = 139; - public static readonly RULE_alterEventTrigStmt = 140; - public static readonly RULE_createAssertionStmt = 141; - public static readonly RULE_defineStmt = 142; - public static readonly RULE_definition = 143; - public static readonly RULE_def_elem = 144; - public static readonly RULE_def_arg = 145; - public static readonly RULE_old_aggregate_elem = 146; - public static readonly RULE_alterEnumStmt = 147; - public static readonly RULE_opt_if_not_exists = 148; - public static readonly RULE_createOperatorClassStmt = 149; - public static readonly RULE_opClassItem = 150; - public static readonly RULE_createOperatorFamilyStmt = 151; - public static readonly RULE_alterOperatorFamilyStmt = 152; - public static readonly RULE_opClassDrop = 153; - public static readonly RULE_reassignOwnedStmt = 154; - public static readonly RULE_dropStmt = 155; - public static readonly RULE_object_type_any_name = 156; - public static readonly RULE_object_type_name = 157; - public static readonly RULE_any_name_list = 158; - public static readonly RULE_any_name = 159; - public static readonly RULE_attrs = 160; - public static readonly RULE_truncateStmt = 161; - public static readonly RULE_truncate_table = 162; - public static readonly RULE_commentStmt = 163; - public static readonly RULE_secLabelStmt = 164; - public static readonly RULE_fetchStmt = 165; - public static readonly RULE_fetch_args = 166; - public static readonly RULE_from_in = 167; - public static readonly RULE_grantStmt = 168; - public static readonly RULE_revokeStmt = 169; - public static readonly RULE_privileges = 170; - public static readonly RULE_beforePrivilegeSelect = 171; - public static readonly RULE_privilege = 172; - public static readonly RULE_privilege_target = 173; - public static readonly RULE_grantee_list = 174; - public static readonly RULE_grantRoleStmt = 175; - public static readonly RULE_revokeRoleStmt = 176; - public static readonly RULE_alterDefaultPrivilegesStmt = 177; - public static readonly RULE_defaclaction = 178; - public static readonly RULE_defacl_privilege_target = 179; - public static readonly RULE_indexStmt = 180; - public static readonly RULE_index_params = 181; - public static readonly RULE_index_elem = 182; - public static readonly RULE_createFunctionStmt = 183; - public static readonly RULE_opt_or_replace = 184; - public static readonly RULE_func_args = 185; - public static readonly RULE_func_args_list = 186; - public static readonly RULE_routineWithArgTypesList = 187; - public static readonly RULE_routineWithArgTypes = 188; - public static readonly RULE_procedureWithArgTypesList = 189; - public static readonly RULE_procedureWithArgTypes = 190; - public static readonly RULE_functionWithArgTypesList = 191; - public static readonly RULE_functionWithArgTypes = 192; - public static readonly RULE_func_arg = 193; - public static readonly RULE_arg_class = 194; - public static readonly RULE_func_type = 195; - public static readonly RULE_func_arg_with_default = 196; - public static readonly RULE_aggregate_args = 197; - public static readonly RULE_aggregateWithArgTypes = 198; - public static readonly RULE_common_func_opt_item = 199; - public static readonly RULE_create_func_opt_item = 200; - public static readonly RULE_opt_definition = 201; - public static readonly RULE_table_func_column = 202; - public static readonly RULE_alterFunctionStmt = 203; - public static readonly RULE_removeFuncStmt = 204; - public static readonly RULE_removeAggregateStmt = 205; - public static readonly RULE_removeOperatorStmt = 206; - public static readonly RULE_operatorArgTypes = 207; - public static readonly RULE_any_operator = 208; - public static readonly RULE_operatorWithArgTypes = 209; - public static readonly RULE_doStmt = 210; - public static readonly RULE_createCastStmt = 211; - public static readonly RULE_opt_if_exists = 212; - public static readonly RULE_createTransformStmt = 213; - public static readonly RULE_sql_with_function = 214; - public static readonly RULE_reindexStmt = 215; - public static readonly RULE_alterTblSpcStmt = 216; - public static readonly RULE_renameStmt = 217; - public static readonly RULE_alterObjectDependsStmt = 218; - public static readonly RULE_alterObjectSchemaStmt = 219; - public static readonly RULE_alterOperatorStmt = 220; - public static readonly RULE_operator_def_list = 221; - public static readonly RULE_operator_def_elem = 222; - public static readonly RULE_alterTypeStmt = 223; - public static readonly RULE_alterOwnerStmt = 224; - public static readonly RULE_createPublicationStmt = 225; - public static readonly RULE_alterPublicationStmt = 226; - public static readonly RULE_createSubscriptionStmt = 227; - public static readonly RULE_alterSubscriptionStmt = 228; - public static readonly RULE_ruleStmt = 229; - public static readonly RULE_ruleActionStmt = 230; - public static readonly RULE_notifyStmt = 231; - public static readonly RULE_notify_payload = 232; - public static readonly RULE_listenStmt = 233; - public static readonly RULE_unListenStmt = 234; - public static readonly RULE_transactionStmt = 235; - public static readonly RULE_opt_transaction = 236; - public static readonly RULE_transaction_mode_item = 237; - public static readonly RULE_transaction_mode_list = 238; - public static readonly RULE_viewStmt = 239; - public static readonly RULE_loadStmt = 240; - public static readonly RULE_createDbStmt = 241; - public static readonly RULE_create_db_opt_item = 242; - public static readonly RULE_alterDatabaseStmt = 243; - public static readonly RULE_alterDatabaseSetStmt = 244; - public static readonly RULE_alterCollationStmt = 245; - public static readonly RULE_alterSystemStmt = 246; - public static readonly RULE_createDomainStmt = 247; - public static readonly RULE_alterDomainStmt = 248; - public static readonly RULE_alterSearchDictionaryStmt = 249; - public static readonly RULE_alterSearchConfigurationStmt = 250; - public static readonly RULE_createConversionStmt = 251; - public static readonly RULE_clusterStmt = 252; - public static readonly RULE_vacuumStmt = 253; - public static readonly RULE_analyzeStmt = 254; - public static readonly RULE_analyze_keyword = 255; - public static readonly RULE_vac_analyze_option_elem = 256; - public static readonly RULE_analyze_option_elem = 257; - public static readonly RULE_opt_verbose = 258; - public static readonly RULE_vacuum_relation = 259; - public static readonly RULE_vacuum_relation_list = 260; - public static readonly RULE_explainStmt = 261; - public static readonly RULE_explainableStmt = 262; - public static readonly RULE_explain_option_list = 263; - public static readonly RULE_prepareStmt = 264; - public static readonly RULE_prep_type_clause = 265; - public static readonly RULE_preParableStmt = 266; - public static readonly RULE_executeStmt = 267; - public static readonly RULE_execute_param_clause = 268; - public static readonly RULE_dealLocateStmt = 269; - public static readonly RULE_insertStmt = 270; - public static readonly RULE_insert_rest = 271; - public static readonly RULE_insert_column_list = 272; - public static readonly RULE_insert_column_item = 273; - public static readonly RULE_returning_clause = 274; - public static readonly RULE_deleteStmt = 275; - public static readonly RULE_lockStmt = 276; - public static readonly RULE_updateStmt = 277; - public static readonly RULE_set_clause_list = 278; - public static readonly RULE_set_clause = 279; - public static readonly RULE_declareCursorStmt = 280; - public static readonly RULE_selectStmt = 281; - public static readonly RULE_select_with_parens = 282; - public static readonly RULE_select_no_parens = 283; - public static readonly RULE_select_clause = 284; - public static readonly RULE_simple_select = 285; - public static readonly RULE_set_operator_with_all_or_distinct = 286; - public static readonly RULE_with_clause = 287; - public static readonly RULE_common_table_expr = 288; - public static readonly RULE_search_clause = 289; - public static readonly RULE_cycle_clause = 290; - public static readonly RULE_into_clause = 291; - public static readonly RULE_optTempTableName = 292; - public static readonly RULE_distinct_clause = 293; - public static readonly RULE_sort_clause = 294; - public static readonly RULE_sortBy = 295; - public static readonly RULE_select_limit = 296; - public static readonly RULE_limit_clause = 297; - public static readonly RULE_fetch_clause = 298; - public static readonly RULE_offset_clause = 299; - public static readonly RULE_select_fetch_first_value = 300; - public static readonly RULE_group_clause = 301; - public static readonly RULE_group_by_list = 302; - public static readonly RULE_group_by_item = 303; - public static readonly RULE_for_locking_clause = 304; - public static readonly RULE_values_clause = 305; - public static readonly RULE_from_clause = 306; - public static readonly RULE_from_list = 307; - public static readonly RULE_table_ref = 308; - public static readonly RULE_alias_clause = 309; - public static readonly RULE_func_alias_clause = 310; - public static readonly RULE_join_type = 311; - public static readonly RULE_join_qual = 312; - public static readonly RULE_relation_expr = 313; - public static readonly RULE_publication_relation_expr = 314; - public static readonly RULE_relation_expr_list = 315; - public static readonly RULE_relation_expr_opt_alias = 316; - public static readonly RULE_tableSampleClause = 317; - public static readonly RULE_func_table = 318; - public static readonly RULE_rowsFromItem = 319; - public static readonly RULE_where_clause = 320; - public static readonly RULE_where_or_current_clause = 321; - public static readonly RULE_tableFuncElementList = 322; - public static readonly RULE_tableFuncElement = 323; - public static readonly RULE_xmlTable = 324; - public static readonly RULE_xmlTableColumnEl = 325; - public static readonly RULE_xml_namespace_el = 326; - public static readonly RULE_typename = 327; - public static readonly RULE_simpleTypeName = 328; - public static readonly RULE_constTypeName = 329; - public static readonly RULE_numeric = 330; - public static readonly RULE_opt_float = 331; - public static readonly RULE_bit = 332; - public static readonly RULE_character = 333; - public static readonly RULE_constDatetime = 334; - public static readonly RULE_opt_interval = 335; - public static readonly RULE_interval_second = 336; - public static readonly RULE_comparisonOperator = 337; - public static readonly RULE_expression = 338; - public static readonly RULE_booleanExpression = 339; - public static readonly RULE_predicate = 340; - public static readonly RULE_valueExpression = 341; - public static readonly RULE_primaryExpression = 342; - public static readonly RULE_func_application = 343; - public static readonly RULE_func_expr = 344; - public static readonly RULE_func_expr_windowless = 345; - public static readonly RULE_func_expr_common_subexpr = 346; - public static readonly RULE_xml_attribute_list = 347; - public static readonly RULE_xml_attribute_el = 348; - public static readonly RULE_document_or_content = 349; - public static readonly RULE_xmlExistsArgument = 350; - public static readonly RULE_xml_passing_mech = 351; - public static readonly RULE_window_clause = 352; - public static readonly RULE_window_definition = 353; - public static readonly RULE_over_clause = 354; - public static readonly RULE_window_specification = 355; - public static readonly RULE_opt_frame_clause = 356; - public static readonly RULE_frame_bound = 357; - public static readonly RULE_row = 358; - public static readonly RULE_explicit_row = 359; - public static readonly RULE_sub_type = 360; - public static readonly RULE_all_op = 361; - public static readonly RULE_mathop = 362; - public static readonly RULE_qual_op = 363; - public static readonly RULE_qual_all_op = 364; - public static readonly RULE_subquery_Op = 365; - public static readonly RULE_expr_list = 366; - public static readonly RULE_column_expr = 367; - public static readonly RULE_column_expr_no_paren = 368; - public static readonly RULE_func_arg_list = 369; - public static readonly RULE_func_arg_expr = 370; - public static readonly RULE_array_expr = 371; - public static readonly RULE_extract_arg = 372; - public static readonly RULE_unicode_normal_form = 373; - public static readonly RULE_substr_list = 374; - public static readonly RULE_when_clause = 375; - public static readonly RULE_indirection_el = 376; - public static readonly RULE_indirection = 377; - public static readonly RULE_opt_indirection = 378; - public static readonly RULE_target_list = 379; - public static readonly RULE_target_el = 380; - public static readonly RULE_qualified_name_list = 381; - public static readonly RULE_table_name_list = 382; - public static readonly RULE_schema_name_list = 383; - public static readonly RULE_database_nameList = 384; - public static readonly RULE_tablespace_name_create = 385; - public static readonly RULE_tablespace_name = 386; - public static readonly RULE_table_name_create = 387; - public static readonly RULE_table_name = 388; - public static readonly RULE_view_name_create = 389; - public static readonly RULE_view_name = 390; - public static readonly RULE_qualified_name = 391; - public static readonly RULE_tablespace_name_list = 392; - public static readonly RULE_name_list = 393; - public static readonly RULE_database_name_create = 394; - public static readonly RULE_database_name = 395; - public static readonly RULE_schema_name = 396; - public static readonly RULE_routine_name_create = 397; - public static readonly RULE_routine_name = 398; - public static readonly RULE_procedure_name = 399; - public static readonly RULE_procedure_name_create = 400; - public static readonly RULE_column_name = 401; - public static readonly RULE_column_name_create = 402; - public static readonly RULE_function_name_create = 403; - public static readonly RULE_function_name = 404; - public static readonly RULE_stringConst = 405; - public static readonly RULE_anysconst = 406; - public static readonly RULE_signedConst = 407; - public static readonly RULE_roleSpec = 408; - public static readonly RULE_role_list = 409; - public static readonly RULE_colId = 410; - public static readonly RULE_type_function_name = 411; - public static readonly RULE_nonReservedWord = 412; - public static readonly RULE_colLabel = 413; - public static readonly RULE_identifier = 414; - public static readonly RULE_unreserved_keyword = 415; - public static readonly RULE_col_name_keyword = 416; - public static readonly RULE_type_func_name_keyword = 417; - public static readonly RULE_reserved_keyword = 418; - public static readonly RULE_pl_block = 419; - public static readonly RULE_label_decl = 420; - public static readonly RULE_decl_statement = 421; - public static readonly RULE_decl_cursor_arg = 422; - public static readonly RULE_assign_operator = 423; - public static readonly RULE_proc_stmt = 424; - public static readonly RULE_stmt_perform = 425; - public static readonly RULE_stmt_call = 426; - public static readonly RULE_stmt_assign = 427; - public static readonly RULE_stmt_getdiag = 428; - public static readonly RULE_getdiag_list_item = 429; - public static readonly RULE_assign_var = 430; - public static readonly RULE_stmt_if = 431; - public static readonly RULE_stmt_else = 432; - public static readonly RULE_stmt_case = 433; - public static readonly RULE_stmt_loop_while_for = 434; - public static readonly RULE_for_control = 435; - public static readonly RULE_stmt_foreach_a = 436; - public static readonly RULE_stmt_exit = 437; - public static readonly RULE_stmt_return = 438; - public static readonly RULE_stmt_raise = 439; - public static readonly RULE_opt_raise_using_elem = 440; - public static readonly RULE_stmt_assert = 441; - public static readonly RULE_loop_body = 442; - public static readonly RULE_stmt_execsql = 443; - public static readonly RULE_stmt_dynexecute = 444; - public static readonly RULE_opt_execute_into = 445; - public static readonly RULE_stmt_open = 446; - public static readonly RULE_opt_open_bound_list_item = 447; - public static readonly RULE_stmt_fetch = 448; - public static readonly RULE_opt_fetch_direction = 449; - public static readonly RULE_stmt_move = 450; - public static readonly RULE_mergeStmt = 451; - public static readonly RULE_data_source = 452; - public static readonly RULE_merge_when_clause = 453; - public static readonly RULE_merge_insert = 454; - public static readonly RULE_merge_update = 455; - public static readonly RULE_default_values_or_values = 456; - public static readonly RULE_exprofdefault = 457; - public static readonly RULE_stmt_close = 458; - public static readonly RULE_stmt_null = 459; - public static readonly RULE_stmt_commit_or_rollback = 460; - public static readonly RULE_stmt_set = 461; - public static readonly RULE_cursor_variable = 462; - public static readonly RULE_exception_sect = 463; - public static readonly RULE_proc_condition = 464; - public static readonly RULE_any_identifier = 465; - public static readonly RULE_sql_expression = 466; + public static readonly RULE_alterTableCmds = 39; + public static readonly RULE_partitionCmd = 40; + public static readonly RULE_indexPartitionCmd = 41; + public static readonly RULE_alterTableCmd = 42; + public static readonly RULE_alterColumnDefault = 43; + public static readonly RULE_optDropBehavior = 44; + public static readonly RULE_collateClause = 45; + public static readonly RULE_relOptions = 46; + public static readonly RULE_optRelOptions = 47; + public static readonly RULE_relOptionElem = 48; + public static readonly RULE_partitionBoundSpec = 49; + public static readonly RULE_alterCompositeTypeStmt = 50; + public static readonly RULE_alterTypeCmd = 51; + public static readonly RULE_closePortalStmt = 52; + public static readonly RULE_copyStmt = 53; + public static readonly RULE_copyOptionsNoparens = 54; + public static readonly RULE_copyOptions = 55; + public static readonly RULE_copyGenericOptElem = 56; + public static readonly RULE_createStmt = 57; + public static readonly RULE_optTemp = 58; + public static readonly RULE_optTypedTableElEmentList = 59; + public static readonly RULE_tableElementList = 60; + public static readonly RULE_tableElement = 61; + public static readonly RULE_typedTableElement = 62; + public static readonly RULE_column_def = 63; + public static readonly RULE_colConstraint = 64; + public static readonly RULE_colConstraintElem = 65; + public static readonly RULE_generatedWhen = 66; + public static readonly RULE_tableLikeOption = 67; + public static readonly RULE_constraintElem = 68; + public static readonly RULE_optColumnList = 69; + public static readonly RULE_columnListCreate = 70; + public static readonly RULE_columnList = 71; + public static readonly RULE_columnListInclude = 72; + public static readonly RULE_keyMatch = 73; + public static readonly RULE_exclusionConstraintElem = 74; + public static readonly RULE_keyActions = 75; + public static readonly RULE_keyUpdate = 76; + public static readonly RULE_keyDelete = 77; + public static readonly RULE_keyAction = 78; + public static readonly RULE_optInherit = 79; + public static readonly RULE_partitionSpec = 80; + public static readonly RULE_partElem = 81; + public static readonly RULE_tableAccessMethodClause = 82; + public static readonly RULE_optWith = 83; + public static readonly RULE_onCommitOption = 84; + public static readonly RULE_optTableSpace = 85; + public static readonly RULE_optConstableSpace = 86; + public static readonly RULE_existingIndex = 87; + public static readonly RULE_createStatsStmt = 88; + public static readonly RULE_alterStatsStmt = 89; + public static readonly RULE_createAsStmt = 90; + public static readonly RULE_createAsTarget = 91; + public static readonly RULE_optWithData = 92; + public static readonly RULE_createMaterializedViewStmt = 93; + public static readonly RULE_refreshMaterializedViewStmt = 94; + public static readonly RULE_createSeqStmt = 95; + public static readonly RULE_alterSeqStmt = 96; + public static readonly RULE_seqOptElem = 97; + public static readonly RULE_numericOnly = 98; + public static readonly RULE_createProceduralLangStmt = 99; + public static readonly RULE_createTableSpaceStmt = 100; + public static readonly RULE_createExtensionStmt = 101; + public static readonly RULE_alterExtensionStmt = 102; + public static readonly RULE_alterExtensionContentsStmt = 103; + public static readonly RULE_createFdwStmt = 104; + public static readonly RULE_fdwOption = 105; + public static readonly RULE_alterFdwStmt = 106; + public static readonly RULE_createGenericOptions = 107; + public static readonly RULE_alterGenericOptions = 108; + public static readonly RULE_alterGenericOptionElem = 109; + public static readonly RULE_genericOptionElem = 110; + public static readonly RULE_createForeignServerStmt = 111; + public static readonly RULE_foreignServerVersion = 112; + public static readonly RULE_alterForeignServerStmt = 113; + public static readonly RULE_createForeignTableStmt = 114; + public static readonly RULE_importForeignSchemaStmt = 115; + public static readonly RULE_createUserMappingStmt = 116; + public static readonly RULE_alterUserMappingStmt = 117; + public static readonly RULE_createPolicyStmt = 118; + public static readonly RULE_alterPolicyStmt = 119; + public static readonly RULE_alterProcedureStmt = 120; + public static readonly RULE_procedureAction = 121; + public static readonly RULE_rowSecurityOptionalExpr = 122; + public static readonly RULE_rowSecurityOptionalWithCheck = 123; + public static readonly RULE_createAccessMethodStmt = 124; + public static readonly RULE_createTrigStmt = 125; + public static readonly RULE_triggerActionTime = 126; + public static readonly RULE_triggerEvents = 127; + public static readonly RULE_triggerOneEvent = 128; + public static readonly RULE_triggerWhen = 129; + public static readonly RULE_functionOrProcedure = 130; + public static readonly RULE_triggerFuncArgs = 131; + public static readonly RULE_triggerFuncArg = 132; + public static readonly RULE_constraintAttributeElem = 133; + public static readonly RULE_createEventTrigStmt = 134; + public static readonly RULE_eventTriggerWhenItem = 135; + public static readonly RULE_alterEventTrigStmt = 136; + public static readonly RULE_createAssertionStmt = 137; + public static readonly RULE_defineStmt = 138; + public static readonly RULE_definition = 139; + public static readonly RULE_defElem = 140; + public static readonly RULE_defArg = 141; + public static readonly RULE_oldAggregateElem = 142; + public static readonly RULE_alterEnumStmt = 143; + public static readonly RULE_ifNotExists = 144; + public static readonly RULE_createOperatorClassStmt = 145; + public static readonly RULE_opClassItem = 146; + public static readonly RULE_createOperatorFamilyStmt = 147; + public static readonly RULE_alterOperatorFamilyStmt = 148; + public static readonly RULE_opClassDrop = 149; + public static readonly RULE_reassignOwnedStmt = 150; + public static readonly RULE_dropStmt = 151; + public static readonly RULE_objectTypeAnyName = 152; + public static readonly RULE_objectTypeName = 153; + public static readonly RULE_anyNameList = 154; + public static readonly RULE_anyName = 155; + public static readonly RULE_attrs = 156; + public static readonly RULE_truncateStmt = 157; + public static readonly RULE_truncateTable = 158; + public static readonly RULE_commentStmt = 159; + public static readonly RULE_secLabelStmt = 160; + public static readonly RULE_fetchStmt = 161; + public static readonly RULE_fetch_args = 162; + public static readonly RULE_fromIn = 163; + public static readonly RULE_grantStmt = 164; + public static readonly RULE_revokeStmt = 165; + public static readonly RULE_privileges = 166; + public static readonly RULE_beforePrivilegeSelect = 167; + public static readonly RULE_privilege = 168; + public static readonly RULE_privilegeTarget = 169; + public static readonly RULE_granteeList = 170; + public static readonly RULE_grantRoleStmt = 171; + public static readonly RULE_revokeRoleStmt = 172; + public static readonly RULE_alterDefaultPrivilegesStmt = 173; + public static readonly RULE_defaclaction = 174; + public static readonly RULE_defaclPrivilegeTarget = 175; + public static readonly RULE_indexStmt = 176; + public static readonly RULE_indexParams = 177; + public static readonly RULE_indexElem = 178; + public static readonly RULE_createFunctionStmt = 179; + public static readonly RULE_orReplaceOpt = 180; + public static readonly RULE_funcArgs = 181; + public static readonly RULE_funcArgsList = 182; + public static readonly RULE_routineWithArgTypesList = 183; + public static readonly RULE_routineWithArgTypes = 184; + public static readonly RULE_procedureWithArgTypesList = 185; + public static readonly RULE_procedureWithArgTypes = 186; + public static readonly RULE_functionWithArgTypesList = 187; + public static readonly RULE_functionWithArgTypes = 188; + public static readonly RULE_funcArg = 189; + public static readonly RULE_argClass = 190; + public static readonly RULE_funcType = 191; + public static readonly RULE_funcArgWithDefault = 192; + public static readonly RULE_aggregateArgs = 193; + public static readonly RULE_aggregateWithArgTypes = 194; + public static readonly RULE_commonFuncOptItem = 195; + public static readonly RULE_createFuncOptItem = 196; + public static readonly RULE_optDefinition = 197; + public static readonly RULE_tableFuncColumn = 198; + public static readonly RULE_alterFunctionStmt = 199; + public static readonly RULE_removeFuncStmt = 200; + public static readonly RULE_removeAggregateStmt = 201; + public static readonly RULE_removeOperatorStmt = 202; + public static readonly RULE_operatorArgTypes = 203; + public static readonly RULE_anyOperator = 204; + public static readonly RULE_operatorWithArgTypes = 205; + public static readonly RULE_doStmt = 206; + public static readonly RULE_createCastStmt = 207; + public static readonly RULE_ifExists = 208; + public static readonly RULE_createTransformStmt = 209; + public static readonly RULE_sqlWithFunction = 210; + public static readonly RULE_reindexStmt = 211; + public static readonly RULE_alterTblSpcStmt = 212; + public static readonly RULE_renameStmt = 213; + public static readonly RULE_alterObjectDependsStmt = 214; + public static readonly RULE_alterObjectSchemaStmt = 215; + public static readonly RULE_alterOperatorStmt = 216; + public static readonly RULE_operatorDefList = 217; + public static readonly RULE_operatorDefElem = 218; + public static readonly RULE_alterTypeStmt = 219; + public static readonly RULE_alterOwnerStmt = 220; + public static readonly RULE_createPublicationStmt = 221; + public static readonly RULE_alterPublicationStmt = 222; + public static readonly RULE_createSubscriptionStmt = 223; + public static readonly RULE_alterSubscriptionStmt = 224; + public static readonly RULE_ruleStmt = 225; + public static readonly RULE_ruleActionStmt = 226; + public static readonly RULE_notifyStmt = 227; + public static readonly RULE_notifyPayload = 228; + public static readonly RULE_listenStmt = 229; + public static readonly RULE_unListenStmt = 230; + public static readonly RULE_transactionStmt = 231; + public static readonly RULE_optTransaction = 232; + public static readonly RULE_transactionModeItem = 233; + public static readonly RULE_transactionModeList = 234; + public static readonly RULE_viewStmt = 235; + public static readonly RULE_loadStmt = 236; + public static readonly RULE_createDbStmt = 237; + public static readonly RULE_createDbOptItem = 238; + public static readonly RULE_alterDatabaseStmt = 239; + public static readonly RULE_alterDatabaseSetStmt = 240; + public static readonly RULE_alterCollationStmt = 241; + public static readonly RULE_alterSystemStmt = 242; + public static readonly RULE_createDomainStmt = 243; + public static readonly RULE_alterDomainStmt = 244; + public static readonly RULE_alterSearchDictionaryStmt = 245; + public static readonly RULE_alterSearchConfigurationStmt = 246; + public static readonly RULE_createConversionStmt = 247; + public static readonly RULE_clusterStmt = 248; + public static readonly RULE_vacuumStmt = 249; + public static readonly RULE_analyzeStmt = 250; + public static readonly RULE_analyzeKeyword = 251; + public static readonly RULE_vacAnalyzeOptionElem = 252; + public static readonly RULE_analyzeOptionElem = 253; + public static readonly RULE_optVerbose = 254; + public static readonly RULE_vacuumRelation = 255; + public static readonly RULE_vacuumRelationList = 256; + public static readonly RULE_explainStmt = 257; + public static readonly RULE_explainableStmt = 258; + public static readonly RULE_explainOptionList = 259; + public static readonly RULE_prepareStmt = 260; + public static readonly RULE_prepTypeClause = 261; + public static readonly RULE_preParableStmt = 262; + public static readonly RULE_executeStmt = 263; + public static readonly RULE_executeParamClause = 264; + public static readonly RULE_dealLocateStmt = 265; + public static readonly RULE_insertStmt = 266; + public static readonly RULE_insertRest = 267; + public static readonly RULE_insertColumnList = 268; + public static readonly RULE_insertColumnItem = 269; + public static readonly RULE_returningClause = 270; + public static readonly RULE_deleteStmt = 271; + public static readonly RULE_lockStmt = 272; + public static readonly RULE_updateStmt = 273; + public static readonly RULE_setClauseList = 274; + public static readonly RULE_setClause = 275; + public static readonly RULE_declareCursorStmt = 276; + public static readonly RULE_selectStmt = 277; + public static readonly RULE_selectWithParens = 278; + public static readonly RULE_selectNoParens = 279; + public static readonly RULE_selectClause = 280; + public static readonly RULE_simpleSelect = 281; + public static readonly RULE_setOperatorWithAllOrDistinct = 282; + public static readonly RULE_withClause = 283; + public static readonly RULE_commonTableExpr = 284; + public static readonly RULE_searchClause = 285; + public static readonly RULE_cycleClause = 286; + public static readonly RULE_intoClause = 287; + public static readonly RULE_optTempTableName = 288; + public static readonly RULE_distinctClause = 289; + public static readonly RULE_sortClause = 290; + public static readonly RULE_sortBy = 291; + public static readonly RULE_selectLimit = 292; + public static readonly RULE_limitClause = 293; + public static readonly RULE_fetchClause = 294; + public static readonly RULE_offsetClause = 295; + public static readonly RULE_selectFetchFirstValue = 296; + public static readonly RULE_groupClause = 297; + public static readonly RULE_groupByList = 298; + public static readonly RULE_groupByItem = 299; + public static readonly RULE_forLockingClause = 300; + public static readonly RULE_valuesClause = 301; + public static readonly RULE_fromClause = 302; + public static readonly RULE_fromList = 303; + public static readonly RULE_tableRef = 304; + public static readonly RULE_aliasClause = 305; + public static readonly RULE_funcAliasClause = 306; + public static readonly RULE_joinType = 307; + public static readonly RULE_joinQual = 308; + public static readonly RULE_relationExpr = 309; + public static readonly RULE_publicationRelationExpr = 310; + public static readonly RULE_relationExprList = 311; + public static readonly RULE_relationExprOptAlias = 312; + public static readonly RULE_tableSampleClause = 313; + public static readonly RULE_funcTable = 314; + public static readonly RULE_rowsFromItem = 315; + public static readonly RULE_whereClause = 316; + public static readonly RULE_whereOrCurrentClause = 317; + public static readonly RULE_tableFuncElementList = 318; + public static readonly RULE_tableFuncElement = 319; + public static readonly RULE_xmlTable = 320; + public static readonly RULE_xmlTableColumnEl = 321; + public static readonly RULE_xmlNamespaceEle = 322; + public static readonly RULE_typename = 323; + public static readonly RULE_simpleTypeName = 324; + public static readonly RULE_constTypeName = 325; + public static readonly RULE_numeric = 326; + public static readonly RULE_optFloat = 327; + public static readonly RULE_bit = 328; + public static readonly RULE_character = 329; + public static readonly RULE_constDatetime = 330; + public static readonly RULE_optInterval = 331; + public static readonly RULE_intervalSecond = 332; + public static readonly RULE_comparisonOperator = 333; + public static readonly RULE_expression = 334; + public static readonly RULE_booleanExpression = 335; + public static readonly RULE_predicate = 336; + public static readonly RULE_valueExpression = 337; + public static readonly RULE_primaryExpression = 338; + public static readonly RULE_funcApplication = 339; + public static readonly RULE_func_expr = 340; + public static readonly RULE_funcExprWindowless = 341; + public static readonly RULE_funcExprCommonSubExpr = 342; + public static readonly RULE_xmlAttributeList = 343; + public static readonly RULE_xmlAttributeEl = 344; + public static readonly RULE_documentOrContent = 345; + public static readonly RULE_xmlExistsArgument = 346; + public static readonly RULE_xmlPassingMech = 347; + public static readonly RULE_windowClause = 348; + public static readonly RULE_windowDefinition = 349; + public static readonly RULE_over_clause = 350; + public static readonly RULE_windowSpecification = 351; + public static readonly RULE_optFrameClause = 352; + public static readonly RULE_frameBound = 353; + public static readonly RULE_row = 354; + public static readonly RULE_explicitRow = 355; + public static readonly RULE_subType = 356; + public static readonly RULE_allOp = 357; + public static readonly RULE_mathOp = 358; + public static readonly RULE_qualOp = 359; + public static readonly RULE_qualAllOp = 360; + public static readonly RULE_subqueryOperator = 361; + public static readonly RULE_exprList = 362; + public static readonly RULE_columnExpr = 363; + public static readonly RULE_columnExprNoParen = 364; + public static readonly RULE_funcArgList = 365; + public static readonly RULE_funcArgExpr = 366; + public static readonly RULE_arrayExpr = 367; + public static readonly RULE_extractArg = 368; + public static readonly RULE_unicodeNormalForm = 369; + public static readonly RULE_substrList = 370; + public static readonly RULE_when_clause = 371; + public static readonly RULE_indirectionEl = 372; + public static readonly RULE_indirection = 373; + public static readonly RULE_optIndirection = 374; + public static readonly RULE_targetList = 375; + public static readonly RULE_targetEl = 376; + public static readonly RULE_qualifiedNameList = 377; + public static readonly RULE_tableNameList = 378; + public static readonly RULE_schemaNameList = 379; + public static readonly RULE_databaseNameList = 380; + public static readonly RULE_tableSpaceNameCreate = 381; + public static readonly RULE_tableSpaceName = 382; + public static readonly RULE_tableNameCreate = 383; + public static readonly RULE_tableName = 384; + public static readonly RULE_viewNameCreate = 385; + public static readonly RULE_viewName = 386; + public static readonly RULE_qualifiedName = 387; + public static readonly RULE_tableSpaceNameList = 388; + public static readonly RULE_nameList = 389; + public static readonly RULE_databaseNameCreate = 390; + public static readonly RULE_databaseName = 391; + public static readonly RULE_schemaName = 392; + public static readonly RULE_routineNameCreate = 393; + public static readonly RULE_routineName = 394; + public static readonly RULE_procedureName = 395; + public static readonly RULE_procedureNameCreate = 396; + public static readonly RULE_columnName = 397; + public static readonly RULE_columnNameCreate = 398; + public static readonly RULE_functionNameCreate = 399; + public static readonly RULE_functionName = 400; + public static readonly RULE_stringConst = 401; + public static readonly RULE_anysconst = 402; + public static readonly RULE_signedConst = 403; + public static readonly RULE_roleSpec = 404; + public static readonly RULE_roleList = 405; + public static readonly RULE_colId = 406; + public static readonly RULE_typeFunctionName = 407; + public static readonly RULE_nonReservedWord = 408; + public static readonly RULE_colLabel = 409; + public static readonly RULE_identifier = 410; + public static readonly RULE_unreservedKeyword = 411; + public static readonly RULE_colNameKeyword = 412; + public static readonly RULE_typeFuncNameKeyword = 413; + public static readonly RULE_reservedKeyword = 414; + public static readonly RULE_plBlock = 415; + public static readonly RULE_labelDecl = 416; + public static readonly RULE_declStatement = 417; + public static readonly RULE_declCursorArg = 418; + public static readonly RULE_assignOperator = 419; + public static readonly RULE_procStmt = 420; + public static readonly RULE_stmtPerform = 421; + public static readonly RULE_stmtCall = 422; + public static readonly RULE_stmtAssign = 423; + public static readonly RULE_stmtGetdiag = 424; + public static readonly RULE_getdiagListItem = 425; + public static readonly RULE_assignVar = 426; + public static readonly RULE_stmtIf = 427; + public static readonly RULE_stmtElse = 428; + public static readonly RULE_stmtCase = 429; + public static readonly RULE_stmtLoopWhileFor = 430; + public static readonly RULE_forControl = 431; + public static readonly RULE_stmtForeach = 432; + public static readonly RULE_stmtExit = 433; + public static readonly RULE_stmtReturn = 434; + public static readonly RULE_stmtRaise = 435; + public static readonly RULE_optRaiseUsingElem = 436; + public static readonly RULE_stmtAssert = 437; + public static readonly RULE_loopBody = 438; + public static readonly RULE_stmtExecsql = 439; + public static readonly RULE_stmtDynexecute = 440; + public static readonly RULE_optExecuteInto = 441; + public static readonly RULE_stmtOpen = 442; + public static readonly RULE_optOpenBoundListItem = 443; + public static readonly RULE_stmtFetch = 444; + public static readonly RULE_optFetchFirection = 445; + public static readonly RULE_stmtMove = 446; + public static readonly RULE_mergeStmt = 447; + public static readonly RULE_dataSource = 448; + public static readonly RULE_mergeWhenClause = 449; + public static readonly RULE_mergeInsert = 450; + public static readonly RULE_mergeUpdate = 451; + public static readonly RULE_defaultValuesOrValues = 452; + public static readonly RULE_exprofdefault = 453; + public static readonly RULE_stmtClose = 454; + public static readonly RULE_stmtNull = 455; + public static readonly RULE_stmtCommitOrRollback = 456; + public static readonly RULE_stmtSet = 457; + public static readonly RULE_cursorVariable = 458; + public static readonly RULE_exceptionSect = 459; + public static readonly RULE_procCondition = 460; + public static readonly RULE_anyIdentifier = 461; + public static readonly RULE_sqlExpression = 462; public static readonly literalNames = [ null, "'$'", "'('", "')'", "'['", "']'", "','", "';'", "':'", "'*'", @@ -1310,123 +1306,118 @@ export class PostgreSqlParser extends SQLParserBase { public static readonly ruleNames = [ "program", "singleStmt", "stmt", "callStmt", "createRoleStmt", "alterOperatorRoleElem", "createOperatorRoleElem", "createUserStmt", "alterRoleStmt", "alterRoleSetStmt", - "alterRoutineStmt", "alter_routine_clause", "routine_action", "createGroupStmt", - "alterGroupStmt", "createSchemaStmt", "schema_name_create", "schema_stmt", - "variableSetStmt", "set_rest", "generic_set", "set_rest_more", "var_name", - "var_list", "var_value", "iso_level", "opt_boolean_or_string_column", - "opt_boolean_or_string", "zone_value", "nonReservedWordOrStringConst", - "variableResetStmt", "reset_rest", "setOrResetClause", "functionSetOrResetClause", - "variableShowStmt", "constraintsSetStmt", "checkPointStmt", "discardStmt", - "alterTableStmt", "alter_table_cmds", "partition_bound_spec", "partition_bound_clause", - "partition_bound_choose", "partition_with_clause", "partition_cmd", - "index_partition_cmd", "alter_table_cmd", "alter_column_default", - "opt_drop_behavior", "opt_collate_clause", "relOptions", "optRelOptions", - "relOptionElem", "partitionBoundSpec", "alterCompositeTypeStmt", - "alter_type_cmd", "closePortalStmt", "copyStmt", "copyOptionsNoparens", - "copyOptions", "copy_generic_opt_elem", "createStmt", "optTemp", - "optTypedTableElEmentList", "tableElementList", "tableElement", - "typedTableElement", "column_def", "colConstraint", "colConstraintElem", - "generated_when", "tableLikeOption", "constraintElem", "opt_column_list", - "opt_column_list_create", "column_list", "opt_c_include", "key_match", - "exclusionConstraintElem", "key_actions", "key_update", "key_delete", - "key_action", "optInherit", "partitionSpec", "part_elem", "table_access_method_clause", - "optWith", "onCommitOption", "optTableSpace", "optConstableSpace", - "existingIndex", "createStatsStmt", "alterStatsStmt", "createAsStmt", - "create_as_target", "opt_with_data", "createMaterializedViewStmt", - "refreshMaterializedViewStmt", "createSeqStmt", "alterSeqStmt", - "seqOptElem", "numericOnly", "createProceduralLangStmt", "createTableSpaceStmt", - "createExtensionStmt", "alterExtensionStmt", "alterExtensionContentsStmt", - "createFdwStmt", "fdw_option", "alterFdwStmt", "create_generic_options", - "alter_generic_options", "alter_generic_option_elem", "generic_option_elem", - "createForeignServerStmt", "foreign_server_version", "alterForeignServerStmt", - "createForeignTableStmt", "importForeignSchemaStmt", "createUserMappingStmt", - "alterUserMappingStmt", "createPolicyStmt", "alterPolicyStmt", "alterProcedureStmt", - "procedure_action", "rowSecurityOptionalExpr", "rowSecurityOptionalWithCheck", - "createAccessMethodStmt", "createTrigStmt", "triggerActionTime", - "triggerEvents", "triggerOneEvent", "triggerWhen", "function_or_procedure", - "triggerFuncArgs", "triggerFuncArg", "constraintAttributeElem", - "createEventTrigStmt", "event_trigger_when_item", "alterEventTrigStmt", - "createAssertionStmt", "defineStmt", "definition", "def_elem", "def_arg", - "old_aggregate_elem", "alterEnumStmt", "opt_if_not_exists", "createOperatorClassStmt", + "alterRoutineStmt", "alterRoutineClause", "routineAction", "createGroupStmt", + "alterGroupStmt", "createSchemaStmt", "schemaNameCreate", "schemaStmt", + "variableSetStmt", "setRest", "genericSet", "setRestMore", "varName", + "varList", "varValue", "isoLevel", "optBooleanOrStringColumn", "booleanOrString", + "zoneValue", "nonReservedWordOrStringConst", "variableResetStmt", + "resetRest", "setOrResetClause", "functionSetOrResetClause", "variableShowStmt", + "constraintsSetStmt", "checkPointStmt", "discardStmt", "alterTableStmt", + "alterTableCmds", "partitionCmd", "indexPartitionCmd", "alterTableCmd", + "alterColumnDefault", "optDropBehavior", "collateClause", "relOptions", + "optRelOptions", "relOptionElem", "partitionBoundSpec", "alterCompositeTypeStmt", + "alterTypeCmd", "closePortalStmt", "copyStmt", "copyOptionsNoparens", + "copyOptions", "copyGenericOptElem", "createStmt", "optTemp", "optTypedTableElEmentList", + "tableElementList", "tableElement", "typedTableElement", "column_def", + "colConstraint", "colConstraintElem", "generatedWhen", "tableLikeOption", + "constraintElem", "optColumnList", "columnListCreate", "columnList", + "columnListInclude", "keyMatch", "exclusionConstraintElem", "keyActions", + "keyUpdate", "keyDelete", "keyAction", "optInherit", "partitionSpec", + "partElem", "tableAccessMethodClause", "optWith", "onCommitOption", + "optTableSpace", "optConstableSpace", "existingIndex", "createStatsStmt", + "alterStatsStmt", "createAsStmt", "createAsTarget", "optWithData", + "createMaterializedViewStmt", "refreshMaterializedViewStmt", "createSeqStmt", + "alterSeqStmt", "seqOptElem", "numericOnly", "createProceduralLangStmt", + "createTableSpaceStmt", "createExtensionStmt", "alterExtensionStmt", + "alterExtensionContentsStmt", "createFdwStmt", "fdwOption", "alterFdwStmt", + "createGenericOptions", "alterGenericOptions", "alterGenericOptionElem", + "genericOptionElem", "createForeignServerStmt", "foreignServerVersion", + "alterForeignServerStmt", "createForeignTableStmt", "importForeignSchemaStmt", + "createUserMappingStmt", "alterUserMappingStmt", "createPolicyStmt", + "alterPolicyStmt", "alterProcedureStmt", "procedureAction", "rowSecurityOptionalExpr", + "rowSecurityOptionalWithCheck", "createAccessMethodStmt", "createTrigStmt", + "triggerActionTime", "triggerEvents", "triggerOneEvent", "triggerWhen", + "functionOrProcedure", "triggerFuncArgs", "triggerFuncArg", "constraintAttributeElem", + "createEventTrigStmt", "eventTriggerWhenItem", "alterEventTrigStmt", + "createAssertionStmt", "defineStmt", "definition", "defElem", "defArg", + "oldAggregateElem", "alterEnumStmt", "ifNotExists", "createOperatorClassStmt", "opClassItem", "createOperatorFamilyStmt", "alterOperatorFamilyStmt", - "opClassDrop", "reassignOwnedStmt", "dropStmt", "object_type_any_name", - "object_type_name", "any_name_list", "any_name", "attrs", "truncateStmt", - "truncate_table", "commentStmt", "secLabelStmt", "fetchStmt", "fetch_args", - "from_in", "grantStmt", "revokeStmt", "privileges", "beforePrivilegeSelect", - "privilege", "privilege_target", "grantee_list", "grantRoleStmt", + "opClassDrop", "reassignOwnedStmt", "dropStmt", "objectTypeAnyName", + "objectTypeName", "anyNameList", "anyName", "attrs", "truncateStmt", + "truncateTable", "commentStmt", "secLabelStmt", "fetchStmt", "fetch_args", + "fromIn", "grantStmt", "revokeStmt", "privileges", "beforePrivilegeSelect", + "privilege", "privilegeTarget", "granteeList", "grantRoleStmt", "revokeRoleStmt", "alterDefaultPrivilegesStmt", "defaclaction", - "defacl_privilege_target", "indexStmt", "index_params", "index_elem", - "createFunctionStmt", "opt_or_replace", "func_args", "func_args_list", + "defaclPrivilegeTarget", "indexStmt", "indexParams", "indexElem", + "createFunctionStmt", "orReplaceOpt", "funcArgs", "funcArgsList", "routineWithArgTypesList", "routineWithArgTypes", "procedureWithArgTypesList", "procedureWithArgTypes", "functionWithArgTypesList", "functionWithArgTypes", - "func_arg", "arg_class", "func_type", "func_arg_with_default", "aggregate_args", - "aggregateWithArgTypes", "common_func_opt_item", "create_func_opt_item", - "opt_definition", "table_func_column", "alterFunctionStmt", "removeFuncStmt", + "funcArg", "argClass", "funcType", "funcArgWithDefault", "aggregateArgs", + "aggregateWithArgTypes", "commonFuncOptItem", "createFuncOptItem", + "optDefinition", "tableFuncColumn", "alterFunctionStmt", "removeFuncStmt", "removeAggregateStmt", "removeOperatorStmt", "operatorArgTypes", - "any_operator", "operatorWithArgTypes", "doStmt", "createCastStmt", - "opt_if_exists", "createTransformStmt", "sql_with_function", "reindexStmt", + "anyOperator", "operatorWithArgTypes", "doStmt", "createCastStmt", + "ifExists", "createTransformStmt", "sqlWithFunction", "reindexStmt", "alterTblSpcStmt", "renameStmt", "alterObjectDependsStmt", "alterObjectSchemaStmt", - "alterOperatorStmt", "operator_def_list", "operator_def_elem", "alterTypeStmt", + "alterOperatorStmt", "operatorDefList", "operatorDefElem", "alterTypeStmt", "alterOwnerStmt", "createPublicationStmt", "alterPublicationStmt", "createSubscriptionStmt", "alterSubscriptionStmt", "ruleStmt", "ruleActionStmt", - "notifyStmt", "notify_payload", "listenStmt", "unListenStmt", "transactionStmt", - "opt_transaction", "transaction_mode_item", "transaction_mode_list", - "viewStmt", "loadStmt", "createDbStmt", "create_db_opt_item", "alterDatabaseStmt", + "notifyStmt", "notifyPayload", "listenStmt", "unListenStmt", "transactionStmt", + "optTransaction", "transactionModeItem", "transactionModeList", + "viewStmt", "loadStmt", "createDbStmt", "createDbOptItem", "alterDatabaseStmt", "alterDatabaseSetStmt", "alterCollationStmt", "alterSystemStmt", "createDomainStmt", "alterDomainStmt", "alterSearchDictionaryStmt", "alterSearchConfigurationStmt", "createConversionStmt", "clusterStmt", - "vacuumStmt", "analyzeStmt", "analyze_keyword", "vac_analyze_option_elem", - "analyze_option_elem", "opt_verbose", "vacuum_relation", "vacuum_relation_list", - "explainStmt", "explainableStmt", "explain_option_list", "prepareStmt", - "prep_type_clause", "preParableStmt", "executeStmt", "execute_param_clause", - "dealLocateStmt", "insertStmt", "insert_rest", "insert_column_list", - "insert_column_item", "returning_clause", "deleteStmt", "lockStmt", - "updateStmt", "set_clause_list", "set_clause", "declareCursorStmt", - "selectStmt", "select_with_parens", "select_no_parens", "select_clause", - "simple_select", "set_operator_with_all_or_distinct", "with_clause", - "common_table_expr", "search_clause", "cycle_clause", "into_clause", - "optTempTableName", "distinct_clause", "sort_clause", "sortBy", - "select_limit", "limit_clause", "fetch_clause", "offset_clause", - "select_fetch_first_value", "group_clause", "group_by_list", "group_by_item", - "for_locking_clause", "values_clause", "from_clause", "from_list", - "table_ref", "alias_clause", "func_alias_clause", "join_type", "join_qual", - "relation_expr", "publication_relation_expr", "relation_expr_list", - "relation_expr_opt_alias", "tableSampleClause", "func_table", "rowsFromItem", - "where_clause", "where_or_current_clause", "tableFuncElementList", - "tableFuncElement", "xmlTable", "xmlTableColumnEl", "xml_namespace_el", - "typename", "simpleTypeName", "constTypeName", "numeric", "opt_float", - "bit", "character", "constDatetime", "opt_interval", "interval_second", - "comparisonOperator", "expression", "booleanExpression", "predicate", - "valueExpression", "primaryExpression", "func_application", "func_expr", - "func_expr_windowless", "func_expr_common_subexpr", "xml_attribute_list", - "xml_attribute_el", "document_or_content", "xmlExistsArgument", - "xml_passing_mech", "window_clause", "window_definition", "over_clause", - "window_specification", "opt_frame_clause", "frame_bound", "row", - "explicit_row", "sub_type", "all_op", "mathop", "qual_op", "qual_all_op", - "subquery_Op", "expr_list", "column_expr", "column_expr_no_paren", - "func_arg_list", "func_arg_expr", "array_expr", "extract_arg", "unicode_normal_form", - "substr_list", "when_clause", "indirection_el", "indirection", "opt_indirection", - "target_list", "target_el", "qualified_name_list", "table_name_list", - "schema_name_list", "database_nameList", "tablespace_name_create", - "tablespace_name", "table_name_create", "table_name", "view_name_create", - "view_name", "qualified_name", "tablespace_name_list", "name_list", - "database_name_create", "database_name", "schema_name", "routine_name_create", - "routine_name", "procedure_name", "procedure_name_create", "column_name", - "column_name_create", "function_name_create", "function_name", "stringConst", - "anysconst", "signedConst", "roleSpec", "role_list", "colId", "type_function_name", - "nonReservedWord", "colLabel", "identifier", "unreserved_keyword", - "col_name_keyword", "type_func_name_keyword", "reserved_keyword", - "pl_block", "label_decl", "decl_statement", "decl_cursor_arg", "assign_operator", - "proc_stmt", "stmt_perform", "stmt_call", "stmt_assign", "stmt_getdiag", - "getdiag_list_item", "assign_var", "stmt_if", "stmt_else", "stmt_case", - "stmt_loop_while_for", "for_control", "stmt_foreach_a", "stmt_exit", - "stmt_return", "stmt_raise", "opt_raise_using_elem", "stmt_assert", - "loop_body", "stmt_execsql", "stmt_dynexecute", "opt_execute_into", - "stmt_open", "opt_open_bound_list_item", "stmt_fetch", "opt_fetch_direction", - "stmt_move", "mergeStmt", "data_source", "merge_when_clause", "merge_insert", - "merge_update", "default_values_or_values", "exprofdefault", "stmt_close", - "stmt_null", "stmt_commit_or_rollback", "stmt_set", "cursor_variable", - "exception_sect", "proc_condition", "any_identifier", "sql_expression", + "vacuumStmt", "analyzeStmt", "analyzeKeyword", "vacAnalyzeOptionElem", + "analyzeOptionElem", "optVerbose", "vacuumRelation", "vacuumRelationList", + "explainStmt", "explainableStmt", "explainOptionList", "prepareStmt", + "prepTypeClause", "preParableStmt", "executeStmt", "executeParamClause", + "dealLocateStmt", "insertStmt", "insertRest", "insertColumnList", + "insertColumnItem", "returningClause", "deleteStmt", "lockStmt", + "updateStmt", "setClauseList", "setClause", "declareCursorStmt", + "selectStmt", "selectWithParens", "selectNoParens", "selectClause", + "simpleSelect", "setOperatorWithAllOrDistinct", "withClause", "commonTableExpr", + "searchClause", "cycleClause", "intoClause", "optTempTableName", + "distinctClause", "sortClause", "sortBy", "selectLimit", "limitClause", + "fetchClause", "offsetClause", "selectFetchFirstValue", "groupClause", + "groupByList", "groupByItem", "forLockingClause", "valuesClause", + "fromClause", "fromList", "tableRef", "aliasClause", "funcAliasClause", + "joinType", "joinQual", "relationExpr", "publicationRelationExpr", + "relationExprList", "relationExprOptAlias", "tableSampleClause", + "funcTable", "rowsFromItem", "whereClause", "whereOrCurrentClause", + "tableFuncElementList", "tableFuncElement", "xmlTable", "xmlTableColumnEl", + "xmlNamespaceEle", "typename", "simpleTypeName", "constTypeName", + "numeric", "optFloat", "bit", "character", "constDatetime", "optInterval", + "intervalSecond", "comparisonOperator", "expression", "booleanExpression", + "predicate", "valueExpression", "primaryExpression", "funcApplication", + "func_expr", "funcExprWindowless", "funcExprCommonSubExpr", "xmlAttributeList", + "xmlAttributeEl", "documentOrContent", "xmlExistsArgument", "xmlPassingMech", + "windowClause", "windowDefinition", "over_clause", "windowSpecification", + "optFrameClause", "frameBound", "row", "explicitRow", "subType", + "allOp", "mathOp", "qualOp", "qualAllOp", "subqueryOperator", "exprList", + "columnExpr", "columnExprNoParen", "funcArgList", "funcArgExpr", + "arrayExpr", "extractArg", "unicodeNormalForm", "substrList", "when_clause", + "indirectionEl", "indirection", "optIndirection", "targetList", + "targetEl", "qualifiedNameList", "tableNameList", "schemaNameList", + "databaseNameList", "tableSpaceNameCreate", "tableSpaceName", "tableNameCreate", + "tableName", "viewNameCreate", "viewName", "qualifiedName", "tableSpaceNameList", + "nameList", "databaseNameCreate", "databaseName", "schemaName", + "routineNameCreate", "routineName", "procedureName", "procedureNameCreate", + "columnName", "columnNameCreate", "functionNameCreate", "functionName", + "stringConst", "anysconst", "signedConst", "roleSpec", "roleList", + "colId", "typeFunctionName", "nonReservedWord", "colLabel", "identifier", + "unreservedKeyword", "colNameKeyword", "typeFuncNameKeyword", "reservedKeyword", + "plBlock", "labelDecl", "declStatement", "declCursorArg", "assignOperator", + "procStmt", "stmtPerform", "stmtCall", "stmtAssign", "stmtGetdiag", + "getdiagListItem", "assignVar", "stmtIf", "stmtElse", "stmtCase", + "stmtLoopWhileFor", "forControl", "stmtForeach", "stmtExit", "stmtReturn", + "stmtRaise", "optRaiseUsingElem", "stmtAssert", "loopBody", "stmtExecsql", + "stmtDynexecute", "optExecuteInto", "stmtOpen", "optOpenBoundListItem", + "stmtFetch", "optFetchFirection", "stmtMove", "mergeStmt", "dataSource", + "mergeWhenClause", "mergeInsert", "mergeUpdate", "defaultValuesOrValues", + "exprofdefault", "stmtClose", "stmtNull", "stmtCommitOrRollback", + "stmtSet", "cursorVariable", "exceptionSect", "procCondition", "anyIdentifier", + "sqlExpression", ]; public get grammarFileName(): string { return "PostgreSqlParser.g4"; } @@ -1450,21 +1441,21 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 937; + this.state = 929; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 2 || _la === 31 || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 570441729) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & 142606337) !== 0) || _la === 105 || _la === 129 || ((((_la - 138)) & ~0x1F) === 0 && ((1 << (_la - 138)) & 2159673601) !== 0) || ((((_la - 177)) & ~0x1F) === 0 && ((1 << (_la - 177)) & 100680739) !== 0) || ((((_la - 241)) & ~0x1F) === 0 && ((1 << (_la - 241)) & 1090557953) !== 0) || ((((_la - 290)) & ~0x1F) === 0 && ((1 << (_la - 290)) & 679839745) !== 0) || ((((_la - 322)) & ~0x1F) === 0 && ((1 << (_la - 322)) & 272417) !== 0) || ((((_la - 358)) & ~0x1F) === 0 && ((1 << (_la - 358)) & 6401) !== 0) || ((((_la - 422)) & ~0x1F) === 0 && ((1 << (_la - 422)) & 4196353) !== 0) || _la === 454 || _la === 525 || _la === 584) { { { - this.state = 934; + this.state = 926; this.singleStmt(); } } - this.state = 939; + this.state = 931; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 940; + this.state = 932; this.match(PostgreSqlParser.EOF); } } @@ -1489,14 +1480,14 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 942; + this.state = 934; this.stmt(); - this.state = 944; + this.state = 936; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 7) { { - this.state = 943; + this.state = 935; this.match(PostgreSqlParser.SEMI); } } @@ -1522,832 +1513,832 @@ export class PostgreSqlParser extends SQLParserBase { this.enterRule(localContext, 4, PostgreSqlParser.RULE_stmt); let _la: number; try { - this.state = 1066; + this.state = 1058; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 3, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 946; + this.state = 938; this.alterEventTrigStmt(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 947; + this.state = 939; this.alterCollationStmt(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 948; + this.state = 940; this.alterDatabaseStmt(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 949; + this.state = 941; this.alterDatabaseSetStmt(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 950; + this.state = 942; this.alterDefaultPrivilegesStmt(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 951; + this.state = 943; this.alterDomainStmt(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 952; + this.state = 944; this.alterEnumStmt(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 953; + this.state = 945; this.alterExtensionStmt(); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 954; + this.state = 946; this.alterExtensionContentsStmt(); } break; case 10: this.enterOuterAlt(localContext, 10); { - this.state = 955; + this.state = 947; this.alterFdwStmt(); } break; case 11: this.enterOuterAlt(localContext, 11); { - this.state = 956; + this.state = 948; this.alterForeignServerStmt(); } break; case 12: this.enterOuterAlt(localContext, 12); { - this.state = 957; + this.state = 949; this.alterFunctionStmt(); } break; case 13: this.enterOuterAlt(localContext, 13); { - this.state = 958; + this.state = 950; this.alterGroupStmt(); } break; case 14: this.enterOuterAlt(localContext, 14); { - this.state = 959; + this.state = 951; this.alterObjectDependsStmt(); } break; case 15: this.enterOuterAlt(localContext, 15); { - this.state = 960; + this.state = 952; this.alterObjectSchemaStmt(); } break; case 16: this.enterOuterAlt(localContext, 16); { - this.state = 961; + this.state = 953; this.alterOwnerStmt(); } break; case 17: this.enterOuterAlt(localContext, 17); { - this.state = 962; + this.state = 954; this.alterOperatorStmt(); } break; case 18: this.enterOuterAlt(localContext, 18); { - this.state = 963; + this.state = 955; this.alterTypeStmt(); } break; case 19: this.enterOuterAlt(localContext, 19); { - this.state = 964; + this.state = 956; this.alterPolicyStmt(); } break; case 20: this.enterOuterAlt(localContext, 20); { - this.state = 965; + this.state = 957; this.alterProcedureStmt(); } break; case 21: this.enterOuterAlt(localContext, 21); { - this.state = 966; + this.state = 958; this.alterSeqStmt(); } break; case 22: this.enterOuterAlt(localContext, 22); { - this.state = 967; + this.state = 959; this.alterSystemStmt(); } break; case 23: this.enterOuterAlt(localContext, 23); { - this.state = 968; + this.state = 960; this.alterTableStmt(); } break; case 24: this.enterOuterAlt(localContext, 24); { - this.state = 969; + this.state = 961; this.alterTblSpcStmt(); } break; case 25: this.enterOuterAlt(localContext, 25); { - this.state = 970; + this.state = 962; this.alterCompositeTypeStmt(); } break; case 26: this.enterOuterAlt(localContext, 26); { - this.state = 971; + this.state = 963; this.alterPublicationStmt(); } break; case 27: this.enterOuterAlt(localContext, 27); { - this.state = 972; + this.state = 964; this.alterRoleSetStmt(); } break; case 28: this.enterOuterAlt(localContext, 28); { - this.state = 973; + this.state = 965; this.alterRoutineStmt(); } break; case 29: this.enterOuterAlt(localContext, 29); { - this.state = 974; + this.state = 966; this.alterRoleStmt(); } break; case 30: this.enterOuterAlt(localContext, 30); { - this.state = 975; + this.state = 967; this.alterSubscriptionStmt(); } break; case 31: this.enterOuterAlt(localContext, 31); { - this.state = 976; + this.state = 968; this.alterStatsStmt(); } break; case 32: this.enterOuterAlt(localContext, 32); { - this.state = 977; + this.state = 969; this.alterSearchConfigurationStmt(); } break; case 33: this.enterOuterAlt(localContext, 33); { - this.state = 978; + this.state = 970; this.alterSearchDictionaryStmt(); } break; case 34: this.enterOuterAlt(localContext, 34); { - this.state = 979; + this.state = 971; this.alterUserMappingStmt(); } break; case 35: this.enterOuterAlt(localContext, 35); { - this.state = 980; + this.state = 972; this.analyzeStmt(); } break; case 36: this.enterOuterAlt(localContext, 36); { - this.state = 981; + this.state = 973; this.callStmt(); } break; case 37: this.enterOuterAlt(localContext, 37); { - this.state = 982; + this.state = 974; this.checkPointStmt(); } break; case 38: this.enterOuterAlt(localContext, 38); { - this.state = 983; + this.state = 975; this.closePortalStmt(); } break; case 39: this.enterOuterAlt(localContext, 39); { - this.state = 984; + this.state = 976; this.clusterStmt(); } break; case 40: this.enterOuterAlt(localContext, 40); { - this.state = 985; + this.state = 977; this.commentStmt(); } break; case 41: this.enterOuterAlt(localContext, 41); { - this.state = 986; + this.state = 978; this.constraintsSetStmt(); } break; case 42: this.enterOuterAlt(localContext, 42); { - this.state = 987; + this.state = 979; this.copyStmt(); } break; case 43: this.enterOuterAlt(localContext, 43); { - this.state = 988; + this.state = 980; this.createAccessMethodStmt(); } break; case 44: this.enterOuterAlt(localContext, 44); { - this.state = 989; + this.state = 981; this.createAsStmt(); } break; case 45: this.enterOuterAlt(localContext, 45); { - this.state = 990; + this.state = 982; this.createAssertionStmt(); } break; case 46: this.enterOuterAlt(localContext, 46); { - this.state = 991; + this.state = 983; this.createCastStmt(); } break; case 47: this.enterOuterAlt(localContext, 47); { - this.state = 992; + this.state = 984; this.createConversionStmt(); } break; case 48: this.enterOuterAlt(localContext, 48); { - this.state = 993; + this.state = 985; this.createDomainStmt(); } break; case 49: this.enterOuterAlt(localContext, 49); { - this.state = 994; + this.state = 986; this.createExtensionStmt(); } break; case 50: this.enterOuterAlt(localContext, 50); { - this.state = 995; + this.state = 987; this.createFdwStmt(); } break; case 51: this.enterOuterAlt(localContext, 51); { - this.state = 996; + this.state = 988; this.createForeignServerStmt(); } break; case 52: this.enterOuterAlt(localContext, 52); { - this.state = 997; + this.state = 989; this.createForeignTableStmt(); } break; case 53: this.enterOuterAlt(localContext, 53); { - this.state = 998; + this.state = 990; this.createFunctionStmt(); } break; case 54: this.enterOuterAlt(localContext, 54); { - this.state = 999; + this.state = 991; this.createGroupStmt(); } break; case 55: this.enterOuterAlt(localContext, 55); { - this.state = 1000; + this.state = 992; this.createMaterializedViewStmt(); } break; case 56: this.enterOuterAlt(localContext, 56); { - this.state = 1001; + this.state = 993; this.createOperatorClassStmt(); } break; case 57: this.enterOuterAlt(localContext, 57); { - this.state = 1002; + this.state = 994; this.createOperatorFamilyStmt(); } break; case 58: this.enterOuterAlt(localContext, 58); { - this.state = 1003; + this.state = 995; this.createPublicationStmt(); } break; case 59: this.enterOuterAlt(localContext, 59); { - this.state = 1004; + this.state = 996; this.alterOperatorFamilyStmt(); } break; case 60: this.enterOuterAlt(localContext, 60); { - this.state = 1005; + this.state = 997; this.createPolicyStmt(); } break; case 61: this.enterOuterAlt(localContext, 61); { - this.state = 1006; + this.state = 998; this.createProceduralLangStmt(); } break; case 62: this.enterOuterAlt(localContext, 62); { - this.state = 1007; + this.state = 999; this.createSchemaStmt(); } break; case 63: this.enterOuterAlt(localContext, 63); { - this.state = 1008; + this.state = 1000; this.createSeqStmt(); } break; case 64: this.enterOuterAlt(localContext, 64); { - this.state = 1009; + this.state = 1001; this.createStmt(); } break; case 65: this.enterOuterAlt(localContext, 65); { - this.state = 1010; + this.state = 1002; this.createSubscriptionStmt(); } break; case 66: this.enterOuterAlt(localContext, 66); { - this.state = 1011; + this.state = 1003; this.createStatsStmt(); } break; case 67: this.enterOuterAlt(localContext, 67); { - this.state = 1012; + this.state = 1004; this.createTableSpaceStmt(); } break; case 68: this.enterOuterAlt(localContext, 68); { - this.state = 1013; + this.state = 1005; this.createTransformStmt(); } break; case 69: this.enterOuterAlt(localContext, 69); { - this.state = 1014; + this.state = 1006; this.createTrigStmt(); } break; case 70: this.enterOuterAlt(localContext, 70); { - this.state = 1015; + this.state = 1007; this.createEventTrigStmt(); } break; case 71: this.enterOuterAlt(localContext, 71); { - this.state = 1016; + this.state = 1008; this.createRoleStmt(); } break; case 72: this.enterOuterAlt(localContext, 72); { - this.state = 1017; + this.state = 1009; this.createUserStmt(); } break; case 73: this.enterOuterAlt(localContext, 73); { - this.state = 1018; + this.state = 1010; this.createUserMappingStmt(); } break; case 74: this.enterOuterAlt(localContext, 74); { - this.state = 1019; + this.state = 1011; this.createDbStmt(); } break; case 75: this.enterOuterAlt(localContext, 75); { - this.state = 1020; + this.state = 1012; this.dealLocateStmt(); } break; case 76: this.enterOuterAlt(localContext, 76); { - this.state = 1021; + this.state = 1013; this.declareCursorStmt(); } break; case 77: this.enterOuterAlt(localContext, 77); { - this.state = 1022; + this.state = 1014; this.defineStmt(); } break; case 78: this.enterOuterAlt(localContext, 78); { - this.state = 1023; + this.state = 1015; this.deleteStmt(); } break; case 79: this.enterOuterAlt(localContext, 79); { - this.state = 1024; + this.state = 1016; this.discardStmt(); } break; case 80: this.enterOuterAlt(localContext, 80); { - this.state = 1025; + this.state = 1017; this.doStmt(); } break; case 81: this.enterOuterAlt(localContext, 81); { - this.state = 1026; + this.state = 1018; this.dropStmt(); } break; case 82: this.enterOuterAlt(localContext, 82); { - this.state = 1027; + this.state = 1019; this.executeStmt(); } break; case 83: this.enterOuterAlt(localContext, 83); { - this.state = 1028; + this.state = 1020; this.explainStmt(); } break; case 84: this.enterOuterAlt(localContext, 84); { - this.state = 1029; + this.state = 1021; this.fetchStmt(); } break; case 85: this.enterOuterAlt(localContext, 85); { - this.state = 1030; + this.state = 1022; this.grantStmt(); } break; case 86: this.enterOuterAlt(localContext, 86); { - this.state = 1031; + this.state = 1023; this.grantRoleStmt(); } break; case 87: this.enterOuterAlt(localContext, 87); { - this.state = 1032; + this.state = 1024; this.mergeStmt(); } break; case 88: this.enterOuterAlt(localContext, 88); { - this.state = 1033; + this.state = 1025; this.importForeignSchemaStmt(); } break; case 89: this.enterOuterAlt(localContext, 89); { - this.state = 1034; + this.state = 1026; this.indexStmt(); } break; case 90: this.enterOuterAlt(localContext, 90); { - this.state = 1035; + this.state = 1027; this.insertStmt(); } break; case 91: this.enterOuterAlt(localContext, 91); { - this.state = 1036; + this.state = 1028; this.listenStmt(); } break; case 92: this.enterOuterAlt(localContext, 92); { - this.state = 1037; + this.state = 1029; this.refreshMaterializedViewStmt(); } break; case 93: this.enterOuterAlt(localContext, 93); { - this.state = 1038; + this.state = 1030; this.loadStmt(); } break; case 94: this.enterOuterAlt(localContext, 94); { - this.state = 1039; + this.state = 1031; this.lockStmt(); } break; case 95: this.enterOuterAlt(localContext, 95); { - this.state = 1040; + this.state = 1032; this.notifyStmt(); } break; case 96: this.enterOuterAlt(localContext, 96); { - this.state = 1041; + this.state = 1033; this.prepareStmt(); } break; case 97: this.enterOuterAlt(localContext, 97); { - this.state = 1042; + this.state = 1034; this.reassignOwnedStmt(); } break; case 98: this.enterOuterAlt(localContext, 98); { - this.state = 1043; + this.state = 1035; this.reindexStmt(); } break; case 99: this.enterOuterAlt(localContext, 99); { - this.state = 1044; + this.state = 1036; this.removeAggregateStmt(); } break; case 100: this.enterOuterAlt(localContext, 100); { - this.state = 1045; + this.state = 1037; this.removeFuncStmt(); } break; case 101: this.enterOuterAlt(localContext, 101); { - this.state = 1046; + this.state = 1038; this.removeOperatorStmt(); } break; case 102: this.enterOuterAlt(localContext, 102); { - this.state = 1047; + this.state = 1039; this.renameStmt(); } break; case 103: this.enterOuterAlt(localContext, 103); { - this.state = 1048; + this.state = 1040; this.revokeStmt(); } break; case 104: this.enterOuterAlt(localContext, 104); { - this.state = 1049; + this.state = 1041; this.revokeRoleStmt(); } break; case 105: this.enterOuterAlt(localContext, 105); { - this.state = 1050; + this.state = 1042; this.ruleStmt(); } break; case 106: this.enterOuterAlt(localContext, 106); { - this.state = 1051; + this.state = 1043; this.secLabelStmt(); } break; case 107: this.enterOuterAlt(localContext, 107); { - this.state = 1052; + this.state = 1044; this.selectStmt(); } break; case 108: this.enterOuterAlt(localContext, 108); { - this.state = 1053; + this.state = 1045; this.transactionStmt(); } break; case 109: this.enterOuterAlt(localContext, 109); { - this.state = 1054; + this.state = 1046; this.truncateStmt(); } break; case 110: this.enterOuterAlt(localContext, 110); { - this.state = 1055; + this.state = 1047; this.unListenStmt(); } break; case 111: this.enterOuterAlt(localContext, 111); { - this.state = 1056; + this.state = 1048; this.updateStmt(); } break; case 112: this.enterOuterAlt(localContext, 112); { - this.state = 1057; + this.state = 1049; this.vacuumStmt(); } break; case 113: this.enterOuterAlt(localContext, 113); { - this.state = 1058; + this.state = 1050; this.variableResetStmt(); } break; case 114: this.enterOuterAlt(localContext, 114); { - this.state = 1059; + this.state = 1051; this.variableSetStmt(); } break; case 115: this.enterOuterAlt(localContext, 115); { - this.state = 1060; + this.state = 1052; this.variableShowStmt(); } break; case 116: this.enterOuterAlt(localContext, 116); { - this.state = 1061; + this.state = 1053; this.viewStmt(); } break; case 117: this.enterOuterAlt(localContext, 117); { - this.state = 1062; + this.state = 1054; this.match(PostgreSqlParser.MetaCommand); - this.state = 1064; + this.state = 1056; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 585) { { - this.state = 1063; + this.state = 1055; this.match(PostgreSqlParser.EndMetaCommand); } } @@ -2376,10 +2367,10 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 1068; + this.state = 1060; this.match(PostgreSqlParser.KW_CALL); - this.state = 1069; - this.func_application(); + this.state = 1061; + this.funcApplication(); } } catch (re) { @@ -2403,35 +2394,35 @@ export class PostgreSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 1071; + this.state = 1063; this.match(PostgreSqlParser.KW_CREATE); - this.state = 1072; + this.state = 1064; this.match(PostgreSqlParser.KW_ROLE); - this.state = 1073; + this.state = 1065; this.roleSpec(); - this.state = 1075; + this.state = 1067; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context) ) { case 1: { - this.state = 1074; + this.state = 1066; this.match(PostgreSqlParser.KW_WITH); } break; } - this.state = 1080; + this.state = 1072; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 5, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 1077; + this.state = 1069; this.createOperatorRoleElem(); } } } - this.state = 1082; + this.state = 1074; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 5, this.context); } @@ -2456,15 +2447,15 @@ export class PostgreSqlParser extends SQLParserBase { this.enterRule(localContext, 10, PostgreSqlParser.RULE_alterOperatorRoleElem); let _la: number; try { - this.state = 1121; + this.state = 1113; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1083; + this.state = 1075; this.match(PostgreSqlParser.KW_PASSWORD); - this.state = 1086; + this.state = 1078; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.StringConstant: @@ -2472,13 +2463,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.BeginDollarStringConstant: case PostgreSqlParser.EscapeStringConstant: { - this.state = 1084; + this.state = 1076; this.stringConst(); } break; case PostgreSqlParser.KW_NULL: { - this.state = 1085; + this.state = 1077; this.match(PostgreSqlParser.KW_NULL); } break; @@ -2490,7 +2481,7 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1088; + this.state = 1080; _la = this.tokenStream.LA(1); if(!(_la === 195 || _la === 364)) { this.errorHandler.recoverInline(this); @@ -2499,152 +2490,152 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1089; + this.state = 1081; this.match(PostgreSqlParser.KW_PASSWORD); - this.state = 1090; + this.state = 1082; this.stringConst(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1091; + this.state = 1083; this.match(PostgreSqlParser.KW_INHERIT); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1092; + this.state = 1084; this.match(PostgreSqlParser.KW_NOINHERIT); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 1093; + this.state = 1085; this.match(PostgreSqlParser.KW_CREATEUSER); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 1094; + this.state = 1086; this.match(PostgreSqlParser.KW_NOCREATEUSER); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 1095; + this.state = 1087; this.match(PostgreSqlParser.KW_CREATEROLE); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 1096; + this.state = 1088; this.match(PostgreSqlParser.KW_NOCREATEROLE); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 1097; + this.state = 1089; this.match(PostgreSqlParser.KW_CREATEDB); } break; case 10: this.enterOuterAlt(localContext, 10); { - this.state = 1098; + this.state = 1090; this.match(PostgreSqlParser.KW_NOCREATEDB); } break; case 11: this.enterOuterAlt(localContext, 11); { - this.state = 1099; + this.state = 1091; this.match(PostgreSqlParser.KW_SUPERUSER); } break; case 12: this.enterOuterAlt(localContext, 12); { - this.state = 1100; + this.state = 1092; this.match(PostgreSqlParser.KW_NOSUPERUSER); } break; case 13: this.enterOuterAlt(localContext, 13); { - this.state = 1101; + this.state = 1093; this.match(PostgreSqlParser.KW_LOGIN); } break; case 14: this.enterOuterAlt(localContext, 14); { - this.state = 1102; + this.state = 1094; this.match(PostgreSqlParser.KW_NOLOGIN); } break; case 15: this.enterOuterAlt(localContext, 15); { - this.state = 1103; + this.state = 1095; this.match(PostgreSqlParser.KW_REPLICATION); } break; case 16: this.enterOuterAlt(localContext, 16); { - this.state = 1104; + this.state = 1096; this.match(PostgreSqlParser.KW_NOREPLICATION); } break; case 17: this.enterOuterAlt(localContext, 17); { - this.state = 1105; + this.state = 1097; this.match(PostgreSqlParser.KW_BYPASSRLS); } break; case 18: this.enterOuterAlt(localContext, 18); { - this.state = 1106; + this.state = 1098; this.match(PostgreSqlParser.KW_NOBYPASSRLS); } break; case 19: this.enterOuterAlt(localContext, 19); { - this.state = 1107; + this.state = 1099; this.match(PostgreSqlParser.KW_CONNECTION); - this.state = 1108; + this.state = 1100; this.match(PostgreSqlParser.KW_LIMIT); - this.state = 1109; + this.state = 1101; this.signedConst(); } break; case 20: this.enterOuterAlt(localContext, 20); { - this.state = 1110; + this.state = 1102; this.match(PostgreSqlParser.KW_VALID); - this.state = 1111; + this.state = 1103; this.match(PostgreSqlParser.KW_UNTIL); - this.state = 1112; + this.state = 1104; this.stringConst(); } break; case 21: this.enterOuterAlt(localContext, 21); { - this.state = 1113; + this.state = 1105; this.match(PostgreSqlParser.KW_IN); - this.state = 1114; + this.state = 1106; _la = this.tokenStream.LA(1); if(!(_la === 66 || _la === 318)) { this.errorHandler.recoverInline(this); @@ -2653,14 +2644,14 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1115; - this.name_list(); + this.state = 1107; + this.nameList(); } break; case 22: this.enterOuterAlt(localContext, 22); { - this.state = 1116; + this.state = 1108; _la = this.tokenStream.LA(1); if(!(_la === 99 || _la === 318)) { this.errorHandler.recoverInline(this); @@ -2669,23 +2660,23 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1117; - this.role_list(); + this.state = 1109; + this.roleList(); } break; case 23: this.enterOuterAlt(localContext, 23); { - this.state = 1118; + this.state = 1110; this.match(PostgreSqlParser.KW_ADMIN); - this.state = 1119; - this.name_list(); + this.state = 1111; + this.nameList(); } break; case 24: this.enterOuterAlt(localContext, 24); { - this.state = 1120; + this.state = 1112; this.identifier(); } break; @@ -2710,29 +2701,29 @@ export class PostgreSqlParser extends SQLParserBase { this.enterRule(localContext, 12, PostgreSqlParser.RULE_createOperatorRoleElem); let _la: number; try { - this.state = 1131; + this.state = 1123; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 8, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1123; + this.state = 1115; this.alterOperatorRoleElem(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1124; + this.state = 1116; this.match(PostgreSqlParser.KW_SYSID); - this.state = 1125; + this.state = 1117; this.match(PostgreSqlParser.Integral); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1126; + this.state = 1118; _la = this.tokenStream.LA(1); if(!(_la === 134 || _la === 318)) { this.errorHandler.recoverInline(this); @@ -2741,16 +2732,16 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1127; - this.role_list(); + this.state = 1119; + this.roleList(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1128; + this.state = 1120; this.match(PostgreSqlParser.KW_IN); - this.state = 1129; + this.state = 1121; _la = this.tokenStream.LA(1); if(!(_la === 66 || _la === 318)) { this.errorHandler.recoverInline(this); @@ -2759,8 +2750,8 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1130; - this.role_list(); + this.state = 1122; + this.roleList(); } break; } @@ -2786,35 +2777,35 @@ export class PostgreSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 1133; + this.state = 1125; this.match(PostgreSqlParser.KW_CREATE); - this.state = 1134; + this.state = 1126; this.match(PostgreSqlParser.KW_USER); - this.state = 1135; + this.state = 1127; this.roleSpec(); - this.state = 1137; + this.state = 1129; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 9, this.context) ) { case 1: { - this.state = 1136; + this.state = 1128; this.match(PostgreSqlParser.KW_WITH); } break; } - this.state = 1142; + this.state = 1134; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 10, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 1139; + this.state = 1131; this.createOperatorRoleElem(); } } } - this.state = 1144; + this.state = 1136; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 10, this.context); } @@ -2842,9 +2833,9 @@ export class PostgreSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 1145; + this.state = 1137; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1146; + this.state = 1138; _la = this.tokenStream.LA(1); if(!(_la === 99 || _la === 318)) { this.errorHandler.recoverInline(this); @@ -2853,31 +2844,31 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1147; + this.state = 1139; this.roleSpec(); - this.state = 1149; + this.state = 1141; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 11, this.context) ) { case 1: { - this.state = 1148; + this.state = 1140; this.match(PostgreSqlParser.KW_WITH); } break; } - this.state = 1154; + this.state = 1146; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 12, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 1151; + this.state = 1143; this.alterOperatorRoleElem(); } } } - this.state = 1156; + this.state = 1148; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 12, this.context); } @@ -2904,9 +2895,9 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 1157; + this.state = 1149; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1158; + this.state = 1150; _la = this.tokenStream.LA(1); if(!(_la === 99 || _la === 318)) { this.errorHandler.recoverInline(this); @@ -2915,12 +2906,12 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1161; + this.state = 1153; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ALL: { - this.state = 1159; + this.state = 1151; this.match(PostgreSqlParser.KW_ALL); } break; @@ -3343,20 +3334,20 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 1160; + this.state = 1152; this.roleSpec(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 1163; + this.state = 1155; this.match(PostgreSqlParser.KW_IN); - this.state = 1164; + this.state = 1156; this.match(PostgreSqlParser.KW_DATABASE); - this.state = 1165; - this.database_name(); - this.state = 1166; + this.state = 1157; + this.databaseName(); + this.state = 1158; this.setOrResetClause(); } } @@ -3381,24 +3372,24 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 1168; + this.state = 1160; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1169; + this.state = 1161; this.match(PostgreSqlParser.KW_ROUTINE); - this.state = 1170; - this.routine_name(); - this.state = 1172; + this.state = 1162; + this.routineName(); + this.state = 1164; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 1171; - this.func_args(); + this.state = 1163; + this.funcArgs(); } } - this.state = 1174; - this.alter_routine_clause(); + this.state = 1166; + this.alterRoutineClause(); } } catch (re) { @@ -3415,42 +3406,42 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alter_routine_clause(): Alter_routine_clauseContext { - let localContext = new Alter_routine_clauseContext(this.context, this.state); - this.enterRule(localContext, 22, PostgreSqlParser.RULE_alter_routine_clause); + public alterRoutineClause(): AlterRoutineClauseContext { + let localContext = new AlterRoutineClauseContext(this.context, this.state); + this.enterRule(localContext, 22, PostgreSqlParser.RULE_alterRoutineClause); let _la: number; try { let alternative: number; - this.state = 1202; + this.state = 1194; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 18, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1176; - this.routine_action(); - this.state = 1180; + this.state = 1168; + this.routineAction(); + this.state = 1172; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 15, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 1177; - this.routine_action(); + this.state = 1169; + this.routineAction(); } } } - this.state = 1182; + this.state = 1174; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 15, this.context); } - this.state = 1184; + this.state = 1176; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 16, this.context) ) { case 1: { - this.state = 1183; + this.state = 1175; this.match(PostgreSqlParser.KW_RESTRICT); } break; @@ -3460,56 +3451,56 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1186; + this.state = 1178; this.match(PostgreSqlParser.KW_RENAME); - this.state = 1187; + this.state = 1179; this.match(PostgreSqlParser.KW_TO); - this.state = 1188; - this.routine_name_create(); + this.state = 1180; + this.routineNameCreate(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1189; + this.state = 1181; this.match(PostgreSqlParser.KW_OWNER); - this.state = 1190; + this.state = 1182; this.match(PostgreSqlParser.KW_TO); - this.state = 1191; + this.state = 1183; this.roleSpec(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1192; + this.state = 1184; this.match(PostgreSqlParser.KW_SET); - this.state = 1193; + this.state = 1185; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 1194; - this.schema_name_create(); + this.state = 1186; + this.schemaNameCreate(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 1196; + this.state = 1188; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 1195; + this.state = 1187; this.match(PostgreSqlParser.KW_NO); } } - this.state = 1198; + this.state = 1190; this.match(PostgreSqlParser.KW_DEPENDS); - this.state = 1199; + this.state = 1191; this.match(PostgreSqlParser.KW_ON); - this.state = 1200; + this.state = 1192; this.match(PostgreSqlParser.KW_EXTENSION); - this.state = 1201; + this.state = 1193; this.colId(); } break; @@ -3529,91 +3520,91 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public routine_action(): Routine_actionContext { - let localContext = new Routine_actionContext(this.context, this.state); - this.enterRule(localContext, 24, PostgreSqlParser.RULE_routine_action); + public routineAction(): RoutineActionContext { + let localContext = new RoutineActionContext(this.context, this.state); + this.enterRule(localContext, 24, PostgreSqlParser.RULE_routineAction); let _la: number; try { - this.state = 1246; + this.state = 1238; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 25, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1204; + this.state = 1196; this.match(PostgreSqlParser.KW_IMMUTABLE); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1205; + this.state = 1197; this.match(PostgreSqlParser.KW_STABLE); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1206; + this.state = 1198; this.match(PostgreSqlParser.KW_VOLATILE); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1208; + this.state = 1200; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 1207; + this.state = 1199; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 1210; + this.state = 1202; this.match(PostgreSqlParser.KW_LEAKPROOF); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 1221; + this.state = 1213; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 22, this.context) ) { case 1: { - this.state = 1212; + this.state = 1204; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 205) { { - this.state = 1211; + this.state = 1203; this.match(PostgreSqlParser.KW_EXTERNAL); } } - this.state = 1214; + this.state = 1206; this.match(PostgreSqlParser.KW_SECURITY); - this.state = 1215; + this.state = 1207; this.match(PostgreSqlParser.KW_INVOKER); } break; case 2: { - this.state = 1217; + this.state = 1209; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 205) { { - this.state = 1216; + this.state = 1208; this.match(PostgreSqlParser.KW_EXTERNAL); } } - this.state = 1219; + this.state = 1211; this.match(PostgreSqlParser.KW_SECURITY); - this.state = 1220; + this.state = 1212; this.match(PostgreSqlParser.KW_DEFINER); } break; @@ -3623,9 +3614,9 @@ export class PostgreSqlParser extends SQLParserBase { case 6: this.enterOuterAlt(localContext, 6); { - this.state = 1223; + this.state = 1215; this.match(PostgreSqlParser.KW_PARALLEL); - this.state = 1224; + this.state = 1216; _la = this.tokenStream.LA(1); if(!(((((_la - 529)) & ~0x1F) === 0 && ((1 << (_la - 529)) & 7) !== 0))) { this.errorHandler.recoverInline(this); @@ -3639,29 +3630,29 @@ export class PostgreSqlParser extends SQLParserBase { case 7: this.enterOuterAlt(localContext, 7); { - this.state = 1225; + this.state = 1217; this.match(PostgreSqlParser.KW_COST); - this.state = 1226; + this.state = 1218; this.colLabel(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 1227; + this.state = 1219; this.match(PostgreSqlParser.KW_ROWS); - this.state = 1228; + this.state = 1220; this.colId(); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 1229; + this.state = 1221; this.match(PostgreSqlParser.KW_SET); - this.state = 1230; + this.state = 1222; this.colId(); - this.state = 1231; + this.state = 1223; _la = this.tokenStream.LA(1); if(!(_la === 10 || _la === 94)) { this.errorHandler.recoverInline(this); @@ -3670,18 +3661,18 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1234; + this.state = 1226; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 23, this.context) ) { case 1: { - this.state = 1232; + this.state = 1224; this.colId(); } break; case 2: { - this.state = 1233; + this.state = 1225; this.match(PostgreSqlParser.KW_DEFAULT); } break; @@ -3691,22 +3682,22 @@ export class PostgreSqlParser extends SQLParserBase { case 10: this.enterOuterAlt(localContext, 10); { - this.state = 1236; + this.state = 1228; this.match(PostgreSqlParser.KW_SET); - this.state = 1237; + this.state = 1229; this.colId(); - this.state = 1238; + this.state = 1230; this.match(PostgreSqlParser.KW_FROM); - this.state = 1239; + this.state = 1231; this.match(PostgreSqlParser.KW_CURRENT); } break; case 11: this.enterOuterAlt(localContext, 11); { - this.state = 1241; + this.state = 1233; this.match(PostgreSqlParser.KW_RESET); - this.state = 1244; + this.state = 1236; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -4104,13 +4095,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 1242; + this.state = 1234; this.colId(); } break; case PostgreSqlParser.KW_ALL: { - this.state = 1243; + this.state = 1235; this.match(PostgreSqlParser.KW_ALL); } break; @@ -4142,35 +4133,35 @@ export class PostgreSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 1248; + this.state = 1240; this.match(PostgreSqlParser.KW_CREATE); - this.state = 1249; + this.state = 1241; this.match(PostgreSqlParser.KW_GROUP); - this.state = 1250; + this.state = 1242; this.roleSpec(); - this.state = 1252; + this.state = 1244; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 26, this.context) ) { case 1: { - this.state = 1251; + this.state = 1243; this.match(PostgreSqlParser.KW_WITH); } break; } - this.state = 1257; + this.state = 1249; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 27, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 1254; + this.state = 1246; this.createOperatorRoleElem(); } } } - this.state = 1259; + this.state = 1251; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 27, this.context); } @@ -4197,13 +4188,13 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 1260; + this.state = 1252; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1261; + this.state = 1253; this.match(PostgreSqlParser.KW_GROUP); - this.state = 1262; + this.state = 1254; this.roleSpec(); - this.state = 1263; + this.state = 1255; _la = this.tokenStream.LA(1); if(!(_la === 133 || _la === 191)) { this.errorHandler.recoverInline(this); @@ -4212,10 +4203,10 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1264; + this.state = 1256; this.match(PostgreSqlParser.KW_USER); - this.state = 1265; - this.role_list(); + this.state = 1257; + this.roleList(); } } catch (re) { @@ -4240,61 +4231,61 @@ export class PostgreSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 1267; + this.state = 1259; this.match(PostgreSqlParser.KW_CREATE); - this.state = 1268; + this.state = 1260; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 1270; + this.state = 1262; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context) ) { case 1: { - this.state = 1269; - this.opt_if_not_exists(); + this.state = 1261; + this.ifNotExists(); } break; } - this.state = 1278; + this.state = 1270; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context) ) { case 1: { - this.state = 1273; + this.state = 1265; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 1272; - this.schema_name_create(); + this.state = 1264; + this.schemaNameCreate(); } } - this.state = 1275; + this.state = 1267; this.match(PostgreSqlParser.KW_AUTHORIZATION); - this.state = 1276; + this.state = 1268; this.roleSpec(); } break; case 2: { - this.state = 1277; - this.schema_name_create(); + this.state = 1269; + this.schemaNameCreate(); } break; } - this.state = 1283; + this.state = 1275; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 31, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 1280; - this.schema_stmt(); + this.state = 1272; + this.schemaStmt(); } } } - this.state = 1285; + this.state = 1277; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 31, this.context); } @@ -4314,15 +4305,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public schema_name_create(): Schema_name_createContext { - let localContext = new Schema_name_createContext(this.context, this.state); - this.enterRule(localContext, 32, PostgreSqlParser.RULE_schema_name_create); + public schemaNameCreate(): SchemaNameCreateContext { + let localContext = new SchemaNameCreateContext(this.context, this.state); + this.enterRule(localContext, 32, PostgreSqlParser.RULE_schemaNameCreate); try { - localContext = new SchemaNameCreateContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 1286; - this.any_name(); + this.state = 1278; + this.anyName(); } } catch (re) { @@ -4339,52 +4329,52 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public schema_stmt(): Schema_stmtContext { - let localContext = new Schema_stmtContext(this.context, this.state); - this.enterRule(localContext, 34, PostgreSqlParser.RULE_schema_stmt); + public schemaStmt(): SchemaStmtContext { + let localContext = new SchemaStmtContext(this.context, this.state); + this.enterRule(localContext, 34, PostgreSqlParser.RULE_schemaStmt); try { - this.state = 1294; + this.state = 1286; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1288; + this.state = 1280; this.createStmt(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1289; + this.state = 1281; this.indexStmt(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1290; + this.state = 1282; this.createSeqStmt(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1291; + this.state = 1283; this.createTrigStmt(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 1292; + this.state = 1284; this.grantStmt(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 1293; + this.state = 1285; this.viewStmt(); } break; @@ -4411,14 +4401,14 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 1296; + this.state = 1288; this.match(PostgreSqlParser.KW_SET); - this.state = 1298; + this.state = 1290; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context) ) { case 1: { - this.state = 1297; + this.state = 1289; _la = this.tokenStream.LA(1); if(!(_la === 254 || _la === 332)) { this.errorHandler.recoverInline(this); @@ -4430,8 +4420,8 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 1300; - this.set_rest(); + this.state = 1292; + this.setRest(); } } catch (re) { @@ -4448,42 +4438,42 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public set_rest(): Set_restContext { - let localContext = new Set_restContext(this.context, this.state); - this.enterRule(localContext, 38, PostgreSqlParser.RULE_set_rest); + public setRest(): SetRestContext { + let localContext = new SetRestContext(this.context, this.state); + this.enterRule(localContext, 38, PostgreSqlParser.RULE_setRest); try { - this.state = 1310; + this.state = 1302; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1302; + this.state = 1294; this.match(PostgreSqlParser.KW_TRANSACTION); - this.state = 1303; - this.transaction_mode_list(); + this.state = 1295; + this.transactionModeList(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1304; + this.state = 1296; this.match(PostgreSqlParser.KW_SESSION); - this.state = 1305; + this.state = 1297; this.match(PostgreSqlParser.KW_CHARACTERISTICS); - this.state = 1306; + this.state = 1298; this.match(PostgreSqlParser.KW_AS); - this.state = 1307; + this.state = 1299; this.match(PostgreSqlParser.KW_TRANSACTION); - this.state = 1308; - this.transaction_mode_list(); + this.state = 1300; + this.transactionModeList(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1309; - this.set_rest_more(); + this.state = 1301; + this.setRestMore(); } break; } @@ -4502,19 +4492,19 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public generic_set(): Generic_setContext { - let localContext = new Generic_setContext(this.context, this.state); - this.enterRule(localContext, 40, PostgreSqlParser.RULE_generic_set); + public genericSet(): GenericSetContext { + let localContext = new GenericSetContext(this.context, this.state); + this.enterRule(localContext, 40, PostgreSqlParser.RULE_genericSet); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 1314; + this.state = 1306; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ALL: { - this.state = 1312; + this.state = 1304; this.match(PostgreSqlParser.KW_ALL); } break; @@ -4913,19 +4903,19 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 1313; - this.var_name(); + this.state = 1305; + this.varName(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 1317; + this.state = 1309; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 10 || _la === 94) { { - this.state = 1316; + this.state = 1308; _la = this.tokenStream.LA(1); if(!(_la === 10 || _la === 94)) { this.errorHandler.recoverInline(this); @@ -4937,19 +4927,19 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 1321; + this.state = 1313; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 37, this.context) ) { case 1: { - this.state = 1319; + this.state = 1311; this.match(PostgreSqlParser.KW_DEFAULT); } break; case 2: { - this.state = 1320; - this.var_list(); + this.state = 1312; + this.varList(); } break; } @@ -4969,59 +4959,59 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public set_rest_more(): Set_rest_moreContext { - let localContext = new Set_rest_moreContext(this.context, this.state); - this.enterRule(localContext, 42, PostgreSqlParser.RULE_set_rest_more); + public setRestMore(): SetRestMoreContext { + let localContext = new SetRestMoreContext(this.context, this.state); + this.enterRule(localContext, 42, PostgreSqlParser.RULE_setRestMore); try { - this.state = 1351; + this.state = 1343; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 39, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1323; + this.state = 1315; this.match(PostgreSqlParser.KW_TIME); - this.state = 1324; + this.state = 1316; this.match(PostgreSqlParser.KW_ZONE); - this.state = 1325; - this.zone_value(); + this.state = 1317; + this.zoneValue(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1326; + this.state = 1318; this.match(PostgreSqlParser.KW_CATALOG); - this.state = 1327; + this.state = 1319; this.stringConst(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1328; + this.state = 1320; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 1329; - this.schema_name(); + this.state = 1321; + this.schemaName(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1330; + this.state = 1322; this.match(PostgreSqlParser.KW_NAMES); - this.state = 1333; + this.state = 1325; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 38, this.context) ) { case 1: { - this.state = 1331; + this.state = 1323; this.stringConst(); } break; case 2: { - this.state = 1332; + this.state = 1324; this.match(PostgreSqlParser.KW_DEFAULT); } break; @@ -5031,61 +5021,61 @@ export class PostgreSqlParser extends SQLParserBase { case 5: this.enterOuterAlt(localContext, 5); { - this.state = 1335; + this.state = 1327; this.match(PostgreSqlParser.KW_ROLE); - this.state = 1336; + this.state = 1328; this.nonReservedWordOrStringConst(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 1337; + this.state = 1329; this.match(PostgreSqlParser.KW_SESSION); - this.state = 1338; + this.state = 1330; this.match(PostgreSqlParser.KW_AUTHORIZATION); - this.state = 1339; + this.state = 1331; this.nonReservedWordOrStringConst(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 1340; + this.state = 1332; this.match(PostgreSqlParser.KW_XML); - this.state = 1341; + this.state = 1333; this.match(PostgreSqlParser.KW_OPTION); - this.state = 1342; - this.document_or_content(); + this.state = 1334; + this.documentOrContent(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 1343; + this.state = 1335; this.match(PostgreSqlParser.KW_TRANSACTION); - this.state = 1344; + this.state = 1336; this.match(PostgreSqlParser.KW_SNAPSHOT); - this.state = 1345; + this.state = 1337; this.stringConst(); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 1346; - this.var_name(); - this.state = 1347; + this.state = 1338; + this.varName(); + this.state = 1339; this.match(PostgreSqlParser.KW_FROM); - this.state = 1348; + this.state = 1340; this.match(PostgreSqlParser.KW_CURRENT); } break; case 10: this.enterOuterAlt(localContext, 10); { - this.state = 1350; - this.generic_set(); + this.state = 1342; + this.genericSet(); } break; } @@ -5104,28 +5094,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public var_name(): Var_nameContext { - let localContext = new Var_nameContext(this.context, this.state); - this.enterRule(localContext, 44, PostgreSqlParser.RULE_var_name); + public varName(): VarNameContext { + let localContext = new VarNameContext(this.context, this.state); + this.enterRule(localContext, 44, PostgreSqlParser.RULE_varName); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 1353; + this.state = 1345; this.colId(); - this.state = 1358; + this.state = 1350; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 11) { { { - this.state = 1354; + this.state = 1346; this.match(PostgreSqlParser.DOT); - this.state = 1355; + this.state = 1347; this.colId(); } } - this.state = 1360; + this.state = 1352; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -5145,28 +5135,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public var_list(): Var_listContext { - let localContext = new Var_listContext(this.context, this.state); - this.enterRule(localContext, 46, PostgreSqlParser.RULE_var_list); + public varList(): VarListContext { + let localContext = new VarListContext(this.context, this.state); + this.enterRule(localContext, 46, PostgreSqlParser.RULE_varList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 1361; - this.var_value(); - this.state = 1366; + this.state = 1353; + this.varValue(); + this.state = 1358; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 1362; + this.state = 1354; this.match(PostgreSqlParser.COMMA); - this.state = 1363; - this.var_value(); + this.state = 1355; + this.varValue(); } } - this.state = 1368; + this.state = 1360; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -5186,11 +5176,11 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public var_value(): Var_valueContext { - let localContext = new Var_valueContext(this.context, this.state); - this.enterRule(localContext, 48, PostgreSqlParser.RULE_var_value); + public varValue(): VarValueContext { + let localContext = new VarValueContext(this.context, this.state); + this.enterRule(localContext, 48, PostgreSqlParser.RULE_varValue); try { - this.state = 1371; + this.state = 1363; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -5613,8 +5603,8 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: this.enterOuterAlt(localContext, 1); { - this.state = 1369; - this.opt_boolean_or_string(); + this.state = 1361; + this.booleanOrString(); } break; case PostgreSqlParser.PLUS: @@ -5623,7 +5613,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.Numeric: this.enterOuterAlt(localContext, 2); { - this.state = 1370; + this.state = 1362; this.numericOnly(); } break; @@ -5645,20 +5635,20 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public iso_level(): Iso_levelContext { - let localContext = new Iso_levelContext(this.context, this.state); - this.enterRule(localContext, 50, PostgreSqlParser.RULE_iso_level); + public isoLevel(): IsoLevelContext { + let localContext = new IsoLevelContext(this.context, this.state); + this.enterRule(localContext, 50, PostgreSqlParser.RULE_isoLevel); let _la: number; try { - this.state = 1378; + this.state = 1370; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_READ: this.enterOuterAlt(localContext, 1); { - this.state = 1373; + this.state = 1365; this.match(PostgreSqlParser.KW_READ); - this.state = 1374; + this.state = 1366; _la = this.tokenStream.LA(1); if(!(_la === 162 || _la === 363)) { this.errorHandler.recoverInline(this); @@ -5672,16 +5662,16 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_REPEATABLE: this.enterOuterAlt(localContext, 2); { - this.state = 1375; + this.state = 1367; this.match(PostgreSqlParser.KW_REPEATABLE); - this.state = 1376; + this.state = 1368; this.match(PostgreSqlParser.KW_READ); } break; case PostgreSqlParser.KW_SERIALIZABLE: this.enterOuterAlt(localContext, 3); { - this.state = 1377; + this.state = 1369; this.match(PostgreSqlParser.KW_SERIALIZABLE); } break; @@ -5703,52 +5693,52 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_boolean_or_string_column(): Opt_boolean_or_string_columnContext { - let localContext = new Opt_boolean_or_string_columnContext(this.context, this.state); - this.enterRule(localContext, 52, PostgreSqlParser.RULE_opt_boolean_or_string_column); + public optBooleanOrStringColumn(): OptBooleanOrStringColumnContext { + let localContext = new OptBooleanOrStringColumnContext(this.context, this.state); + this.enterRule(localContext, 52, PostgreSqlParser.RULE_optBooleanOrStringColumn); try { - this.state = 1386; + this.state = 1378; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1380; + this.state = 1372; this.match(PostgreSqlParser.KW_TRUE); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1381; + this.state = 1373; this.match(PostgreSqlParser.KW_FALSE); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1382; + this.state = 1374; this.match(PostgreSqlParser.KW_ON); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1383; - this.column_name(); + this.state = 1375; + this.columnName(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 1384; - this.type_func_name_keyword(); + this.state = 1376; + this.typeFuncNameKeyword(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 1385; + this.state = 1377; this.stringConst(); } break; @@ -5768,31 +5758,31 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_boolean_or_string(): Opt_boolean_or_stringContext { - let localContext = new Opt_boolean_or_stringContext(this.context, this.state); - this.enterRule(localContext, 54, PostgreSqlParser.RULE_opt_boolean_or_string); + public booleanOrString(): BooleanOrStringContext { + let localContext = new BooleanOrStringContext(this.context, this.state); + this.enterRule(localContext, 54, PostgreSqlParser.RULE_booleanOrString); try { - this.state = 1392; + this.state = 1384; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_TRUE: this.enterOuterAlt(localContext, 1); { - this.state = 1388; + this.state = 1380; this.match(PostgreSqlParser.KW_TRUE); } break; case PostgreSqlParser.KW_FALSE: this.enterOuterAlt(localContext, 2); { - this.state = 1389; + this.state = 1381; this.match(PostgreSqlParser.KW_FALSE); } break; case PostgreSqlParser.KW_ON: this.enterOuterAlt(localContext, 3); { - this.state = 1390; + this.state = 1382; this.match(PostgreSqlParser.KW_ON); } break; @@ -6213,7 +6203,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: this.enterOuterAlt(localContext, 4); { - this.state = 1391; + this.state = 1383; this.nonReservedWordOrStringConst(); } break; @@ -6235,48 +6225,48 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public zone_value(): Zone_valueContext { - let localContext = new Zone_valueContext(this.context, this.state); - this.enterRule(localContext, 56, PostgreSqlParser.RULE_zone_value); + public zoneValue(): ZoneValueContext { + let localContext = new ZoneValueContext(this.context, this.state); + this.enterRule(localContext, 56, PostgreSqlParser.RULE_zoneValue); try { - this.state = 1408; + this.state = 1400; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 47, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1394; + this.state = 1386; this.stringConst(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1395; + this.state = 1387; this.match(PostgreSqlParser.KW_DEFAULT); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1396; + this.state = 1388; this.identifier(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1397; + this.state = 1389; this.match(PostgreSqlParser.KW_INTERVAL); - this.state = 1398; + this.state = 1390; this.stringConst(); - this.state = 1400; + this.state = 1392; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 46, this.context) ) { case 1: { - this.state = 1399; - this.opt_interval(); + this.state = 1391; + this.optInterval(); } break; } @@ -6285,25 +6275,25 @@ export class PostgreSqlParser extends SQLParserBase { case 5: this.enterOuterAlt(localContext, 5); { - this.state = 1402; + this.state = 1394; this.match(PostgreSqlParser.KW_INTERVAL); - this.state = 1403; - this.opt_float(); - this.state = 1404; + this.state = 1395; + this.optFloat(); + this.state = 1396; this.stringConst(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 1406; + this.state = 1398; this.numericOnly(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 1407; + this.state = 1399; this.match(PostgreSqlParser.KW_LOCAL); } break; @@ -6327,20 +6317,20 @@ export class PostgreSqlParser extends SQLParserBase { let localContext = new NonReservedWordOrStringConstContext(this.context, this.state); this.enterRule(localContext, 58, PostgreSqlParser.RULE_nonReservedWordOrStringConst); try { - this.state = 1412; + this.state = 1404; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 48, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1410; + this.state = 1402; this.nonReservedWord(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1411; + this.state = 1403; this.stringConst(); } break; @@ -6366,10 +6356,10 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 1414; + this.state = 1406; this.match(PostgreSqlParser.KW_RESET); - this.state = 1415; - this.reset_rest(); + this.state = 1407; + this.resetRest(); } } catch (re) { @@ -6386,54 +6376,54 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public reset_rest(): Reset_restContext { - let localContext = new Reset_restContext(this.context, this.state); - this.enterRule(localContext, 62, PostgreSqlParser.RULE_reset_rest); + public resetRest(): ResetRestContext { + let localContext = new ResetRestContext(this.context, this.state); + this.enterRule(localContext, 62, PostgreSqlParser.RULE_resetRest); try { - this.state = 1426; + this.state = 1418; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 49, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1417; + this.state = 1409; this.match(PostgreSqlParser.KW_TIME); - this.state = 1418; + this.state = 1410; this.match(PostgreSqlParser.KW_ZONE); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1419; + this.state = 1411; this.match(PostgreSqlParser.KW_TRANSACTION); - this.state = 1420; + this.state = 1412; this.match(PostgreSqlParser.KW_ISOLATION); - this.state = 1421; + this.state = 1413; this.match(PostgreSqlParser.KW_LEVEL); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1422; + this.state = 1414; this.match(PostgreSqlParser.KW_SESSION); - this.state = 1423; + this.state = 1415; this.match(PostgreSqlParser.KW_AUTHORIZATION); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1424; + this.state = 1416; this.match(PostgreSqlParser.KW_ALL); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 1425; - this.var_name(); + this.state = 1417; + this.varName(); } break; } @@ -6456,22 +6446,22 @@ export class PostgreSqlParser extends SQLParserBase { let localContext = new SetOrResetClauseContext(this.context, this.state); this.enterRule(localContext, 64, PostgreSqlParser.RULE_setOrResetClause); try { - this.state = 1431; + this.state = 1423; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_SET: this.enterOuterAlt(localContext, 1); { - this.state = 1428; + this.state = 1420; this.match(PostgreSqlParser.KW_SET); - this.state = 1429; - this.set_rest(); + this.state = 1421; + this.setRest(); } break; case PostgreSqlParser.KW_RESET: this.enterOuterAlt(localContext, 2); { - this.state = 1430; + this.state = 1422; this.variableResetStmt(); } break; @@ -6497,22 +6487,22 @@ export class PostgreSqlParser extends SQLParserBase { let localContext = new FunctionSetOrResetClauseContext(this.context, this.state); this.enterRule(localContext, 66, PostgreSqlParser.RULE_functionSetOrResetClause); try { - this.state = 1436; + this.state = 1428; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_SET: this.enterOuterAlt(localContext, 1); { - this.state = 1433; + this.state = 1425; this.match(PostgreSqlParser.KW_SET); - this.state = 1434; - this.set_rest_more(); + this.state = 1426; + this.setRestMore(); } break; case PostgreSqlParser.KW_RESET: this.enterOuterAlt(localContext, 2); { - this.state = 1435; + this.state = 1427; this.variableResetStmt(); } break; @@ -6540,46 +6530,46 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 1438; + this.state = 1430; this.match(PostgreSqlParser.KW_SHOW); - this.state = 1448; + this.state = 1440; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 52, this.context) ) { case 1: { - this.state = 1439; - this.var_name(); + this.state = 1431; + this.varName(); } break; case 2: { - this.state = 1440; + this.state = 1432; this.match(PostgreSqlParser.KW_TIME); - this.state = 1441; + this.state = 1433; this.match(PostgreSqlParser.KW_ZONE); } break; case 3: { - this.state = 1442; + this.state = 1434; this.match(PostgreSqlParser.KW_TRANSACTION); - this.state = 1443; + this.state = 1435; this.match(PostgreSqlParser.KW_ISOLATION); - this.state = 1444; + this.state = 1436; this.match(PostgreSqlParser.KW_LEVEL); } break; case 4: { - this.state = 1445; + this.state = 1437; this.match(PostgreSqlParser.KW_SESSION); - this.state = 1446; + this.state = 1438; this.match(PostgreSqlParser.KW_AUTHORIZATION); } break; case 5: { - this.state = 1447; + this.state = 1439; this.match(PostgreSqlParser.KW_ALL); } break; @@ -6607,16 +6597,16 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 1450; + this.state = 1442; this.match(PostgreSqlParser.KW_SET); - this.state = 1451; + this.state = 1443; this.match(PostgreSqlParser.KW_CONSTRAINTS); - this.state = 1454; + this.state = 1446; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ALL: { - this.state = 1452; + this.state = 1444; this.match(PostgreSqlParser.KW_ALL); } break; @@ -7015,14 +7005,14 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 1453; - this.qualified_name_list(); + this.state = 1445; + this.qualifiedNameList(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 1456; + this.state = 1448; _la = this.tokenStream.LA(1); if(!(_la === 180 || _la === 221)) { this.errorHandler.recoverInline(this); @@ -7053,7 +7043,7 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 1458; + this.state = 1450; this.match(PostgreSqlParser.KW_CHECKPOINT); } } @@ -7078,9 +7068,9 @@ export class PostgreSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 1460; + this.state = 1452; this.match(PostgreSqlParser.KW_DISCARD); - this.state = 1461; + this.state = 1453; _la = this.tokenStream.LA(1); if(!(_la === 30 || _la === 288 || ((((_la - 329)) & ~0x1F) === 0 && ((1 << (_la - 329)) & 41943041) !== 0))) { this.errorHandler.recoverInline(this); @@ -7110,29 +7100,29 @@ export class PostgreSqlParser extends SQLParserBase { this.enterRule(localContext, 76, PostgreSqlParser.RULE_alterTableStmt); let _la: number; try { - this.state = 1584; + this.state = 1572; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 72, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 71, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1463; + this.state = 1455; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1464; + this.state = 1456; this.match(PostgreSqlParser.KW_TABLE); - this.state = 1466; + this.state = 1458; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 54, this.context) ) { case 1: { - this.state = 1465; - this.opt_if_exists(); + this.state = 1457; + this.ifExists(); } break; } - this.state = 1468; - this.relation_expr(); - this.state = 1471; + this.state = 1460; + this.relationExpr(); + this.state = 1463; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_NOT: @@ -7153,15 +7143,15 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_SET: case PostgreSqlParser.KW_VALIDATE: { - this.state = 1469; - this.alter_table_cmds(); + this.state = 1461; + this.alterTableCmds(); } break; case PostgreSqlParser.KW_ATTACH: case PostgreSqlParser.KW_DETACH: { - this.state = 1470; - this.partition_cmd(); + this.state = 1462; + this.partitionCmd(); } break; default: @@ -7172,42 +7162,42 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1473; + this.state = 1465; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1474; + this.state = 1466; this.match(PostgreSqlParser.KW_TABLE); - this.state = 1475; + this.state = 1467; this.match(PostgreSqlParser.KW_ALL); - this.state = 1476; + this.state = 1468; this.match(PostgreSqlParser.KW_IN); - this.state = 1477; + this.state = 1469; this.optTableSpace(); - this.state = 1481; + this.state = 1473; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 281) { { - this.state = 1478; + this.state = 1470; this.match(PostgreSqlParser.KW_OWNED); - this.state = 1479; + this.state = 1471; this.match(PostgreSqlParser.KW_BY); - this.state = 1480; - this.role_list(); + this.state = 1472; + this.roleList(); } } - this.state = 1483; + this.state = 1475; this.match(PostgreSqlParser.KW_SET); - this.state = 1484; + this.state = 1476; this.match(PostgreSqlParser.KW_TABLESPACE); - this.state = 1485; - this.tablespace_name_create(); - this.state = 1487; + this.state = 1477; + this.tableSpaceName(); + this.state = 1479; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context) ) { case 1: { - this.state = 1486; + this.state = 1478; this.match(PostgreSqlParser.KW_NOWAIT); } break; @@ -7217,79 +7207,59 @@ export class PostgreSqlParser extends SQLParserBase { case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1489; + this.state = 1481; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1490; + this.state = 1482; this.match(PostgreSqlParser.KW_TABLE); - this.state = 1492; + this.state = 1484; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context) ) { case 1: { - this.state = 1491; - this.opt_if_exists(); - } - break; - } - this.state = 1494; - this.table_name(); - this.state = 1495; - this.index_partition_cmd(); - this.state = 1500; - this.errorHandler.sync(this); - switch (this.tokenStream.LA(1)) { - case PostgreSqlParser.KW_FOR: - { - this.state = 1496; - this.match(PostgreSqlParser.KW_FOR); - this.state = 1497; - this.match(PostgreSqlParser.KW_VALUES); - this.state = 1498; - this.partition_bound_spec(); + this.state = 1483; + this.ifExists(); } break; - case PostgreSqlParser.KW_DEFAULT: - { - this.state = 1499; - this.match(PostgreSqlParser.KW_DEFAULT); - } - break; - default: - throw new antlr.NoViableAltException(this); } + this.state = 1486; + this.tableName(); + this.state = 1487; + this.indexPartitionCmd(); + this.state = 1488; + this.partitionBoundSpec(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1502; + this.state = 1490; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1503; + this.state = 1491; this.match(PostgreSqlParser.KW_TABLE); - this.state = 1505; + this.state = 1493; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 60, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context) ) { case 1: { - this.state = 1504; - this.opt_if_exists(); + this.state = 1492; + this.ifExists(); } break; } - this.state = 1507; - this.table_name(); - this.state = 1508; + this.state = 1495; + this.tableName(); + this.state = 1496; this.match(PostgreSqlParser.KW_DETACH); - this.state = 1509; + this.state = 1497; this.match(PostgreSqlParser.KW_PARTITION); - this.state = 1510; - this.qualified_name(); - this.state = 1512; + this.state = 1498; + this.qualifiedName(); + this.state = 1500; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 109 || _la === 532) { { - this.state = 1511; + this.state = 1499; _la = this.tokenStream.LA(1); if(!(_la === 109 || _la === 532)) { this.errorHandler.recoverInline(this); @@ -7306,23 +7276,23 @@ export class PostgreSqlParser extends SQLParserBase { case 5: this.enterOuterAlt(localContext, 5); { - this.state = 1514; + this.state = 1502; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1515; + this.state = 1503; this.match(PostgreSqlParser.KW_INDEX); - this.state = 1517; + this.state = 1505; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 61, this.context) ) { case 1: { - this.state = 1516; - this.opt_if_exists(); + this.state = 1504; + this.ifExists(); } break; } - this.state = 1519; - this.qualified_name(); - this.state = 1522; + this.state = 1507; + this.qualifiedName(); + this.state = 1510; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_NOT: @@ -7343,14 +7313,14 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_SET: case PostgreSqlParser.KW_VALIDATE: { - this.state = 1520; - this.alter_table_cmds(); + this.state = 1508; + this.alterTableCmds(); } break; case PostgreSqlParser.KW_ATTACH: { - this.state = 1521; - this.index_partition_cmd(); + this.state = 1509; + this.indexPartitionCmd(); } break; default: @@ -7361,40 +7331,40 @@ export class PostgreSqlParser extends SQLParserBase { case 6: this.enterOuterAlt(localContext, 6); { - this.state = 1524; + this.state = 1512; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1525; + this.state = 1513; this.match(PostgreSqlParser.KW_INDEX); - this.state = 1526; + this.state = 1514; this.match(PostgreSqlParser.KW_ALL); - this.state = 1527; + this.state = 1515; this.match(PostgreSqlParser.KW_IN); - this.state = 1528; + this.state = 1516; this.optTableSpace(); - this.state = 1532; + this.state = 1520; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 281) { { - this.state = 1529; + this.state = 1517; this.match(PostgreSqlParser.KW_OWNED); - this.state = 1530; + this.state = 1518; this.match(PostgreSqlParser.KW_BY); - this.state = 1531; - this.role_list(); + this.state = 1519; + this.roleList(); } } - this.state = 1534; + this.state = 1522; this.match(PostgreSqlParser.KW_SET); - this.state = 1535; + this.state = 1523; this.optTableSpace(); - this.state = 1537; + this.state = 1525; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 65, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context) ) { case 1: { - this.state = 1536; + this.state = 1524; this.match(PostgreSqlParser.KW_NOWAIT); } break; @@ -7404,100 +7374,100 @@ export class PostgreSqlParser extends SQLParserBase { case 7: this.enterOuterAlt(localContext, 7); { - this.state = 1539; + this.state = 1527; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1540; + this.state = 1528; this.match(PostgreSqlParser.KW_SEQUENCE); - this.state = 1542; + this.state = 1530; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 66, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 65, this.context) ) { case 1: { - this.state = 1541; - this.opt_if_exists(); + this.state = 1529; + this.ifExists(); } break; } - this.state = 1544; - this.qualified_name(); - this.state = 1545; - this.alter_table_cmds(); + this.state = 1532; + this.qualifiedName(); + this.state = 1533; + this.alterTableCmds(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 1547; + this.state = 1535; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1549; + this.state = 1537; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 259) { { - this.state = 1548; + this.state = 1536; this.match(PostgreSqlParser.KW_MATERIALIZED); } } - this.state = 1551; + this.state = 1539; this.match(PostgreSqlParser.KW_VIEW); - this.state = 1553; + this.state = 1541; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 67, this.context) ) { case 1: { - this.state = 1552; - this.opt_if_exists(); + this.state = 1540; + this.ifExists(); } break; } - this.state = 1555; - this.view_name(); - this.state = 1556; - this.alter_table_cmds(); + this.state = 1543; + this.viewName(); + this.state = 1544; + this.alterTableCmds(); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 1558; + this.state = 1546; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1559; + this.state = 1547; this.match(PostgreSqlParser.KW_MATERIALIZED); - this.state = 1560; + this.state = 1548; this.match(PostgreSqlParser.KW_VIEW); - this.state = 1561; + this.state = 1549; this.match(PostgreSqlParser.KW_ALL); - this.state = 1562; + this.state = 1550; this.match(PostgreSqlParser.KW_IN); - this.state = 1563; + this.state = 1551; this.optTableSpace(); - this.state = 1567; + this.state = 1555; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 281) { { - this.state = 1564; + this.state = 1552; this.match(PostgreSqlParser.KW_OWNED); - this.state = 1565; + this.state = 1553; this.match(PostgreSqlParser.KW_BY); - this.state = 1566; - this.role_list(); + this.state = 1554; + this.roleList(); } } - this.state = 1569; + this.state = 1557; this.match(PostgreSqlParser.KW_SET); - this.state = 1570; + this.state = 1558; this.match(PostgreSqlParser.KW_TABLESPACE); - this.state = 1571; - this.tablespace_name_create(); - this.state = 1573; + this.state = 1559; + this.tableSpaceName(); + this.state = 1561; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context) ) { case 1: { - this.state = 1572; + this.state = 1560; this.match(PostgreSqlParser.KW_NOWAIT); } break; @@ -7507,125 +7477,28 @@ export class PostgreSqlParser extends SQLParserBase { case 10: this.enterOuterAlt(localContext, 10); { - this.state = 1575; + this.state = 1563; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1576; + this.state = 1564; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 1577; + this.state = 1565; this.match(PostgreSqlParser.KW_TABLE); - this.state = 1579; + this.state = 1567; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 71, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context) ) { case 1: { - this.state = 1578; - this.opt_if_exists(); + this.state = 1566; + this.ifExists(); } break; } - this.state = 1581; - this.relation_expr(); - this.state = 1582; - this.alter_table_cmds(); - } - break; - } - } - catch (re) { - if (re instanceof antlr.RecognitionException) { - localContext.exception = re; - this.errorHandler.reportError(this, re); - this.errorHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return localContext; - } - public alter_table_cmds(): Alter_table_cmdsContext { - let localContext = new Alter_table_cmdsContext(this.context, this.state); - this.enterRule(localContext, 78, PostgreSqlParser.RULE_alter_table_cmds); - let _la: number; - try { - this.enterOuterAlt(localContext, 1); - { - this.state = 1586; - this.alter_table_cmd(); - this.state = 1591; - this.errorHandler.sync(this); - _la = this.tokenStream.LA(1); - while (_la === 6) { - { - { - this.state = 1587; - this.match(PostgreSqlParser.COMMA); - this.state = 1588; - this.alter_table_cmd(); - } - } - this.state = 1593; - this.errorHandler.sync(this); - _la = this.tokenStream.LA(1); - } - } - } - catch (re) { - if (re instanceof antlr.RecognitionException) { - localContext.exception = re; - this.errorHandler.reportError(this, re); - this.errorHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return localContext; - } - public partition_bound_spec(): Partition_bound_specContext { - let localContext = new Partition_bound_specContext(this.context, this.state); - this.enterRule(localContext, 80, PostgreSqlParser.RULE_partition_bound_spec); - try { - this.state = 1603; - this.errorHandler.sync(this); - switch (this.tokenStream.LA(1)) { - case PostgreSqlParser.KW_IN: - this.enterOuterAlt(localContext, 1); - { - this.state = 1594; - this.match(PostgreSqlParser.KW_IN); - this.state = 1595; - this.execute_param_clause(); - } - break; - case PostgreSqlParser.KW_FROM: - this.enterOuterAlt(localContext, 2); - { - this.state = 1596; - this.match(PostgreSqlParser.KW_FROM); - this.state = 1597; - this.partition_bound_clause(); - this.state = 1598; - this.match(PostgreSqlParser.KW_TO); - this.state = 1599; - this.partition_bound_clause(); - } - break; - case PostgreSqlParser.KW_WITH: - this.enterOuterAlt(localContext, 3); - { - this.state = 1601; - this.match(PostgreSqlParser.KW_WITH); - this.state = 1602; - this.partition_with_clause(); + this.state = 1569; + this.relationExpr(); + this.state = 1570; + this.alterTableCmds(); } break; - default: - throw new antlr.NoViableAltException(this); } } catch (re) { @@ -7642,35 +7515,31 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public partition_bound_clause(): Partition_bound_clauseContext { - let localContext = new Partition_bound_clauseContext(this.context, this.state); - this.enterRule(localContext, 82, PostgreSqlParser.RULE_partition_bound_clause); + public alterTableCmds(): AlterTableCmdsContext { + let localContext = new AlterTableCmdsContext(this.context, this.state); + this.enterRule(localContext, 78, PostgreSqlParser.RULE_alterTableCmds); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 1605; - this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 1606; - this.partition_bound_choose(); - this.state = 1611; + this.state = 1574; + this.alterTableCmd(); + this.state = 1579; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 1607; + this.state = 1575; this.match(PostgreSqlParser.COMMA); - this.state = 1608; - this.partition_bound_choose(); + this.state = 1576; + this.alterTableCmd(); } } - this.state = 1613; + this.state = 1581; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 1614; - this.match(PostgreSqlParser.CLOSE_PAREN); } } catch (re) { @@ -7687,113 +7556,31 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public partition_bound_choose(): Partition_bound_chooseContext { - let localContext = new Partition_bound_chooseContext(this.context, this.state); - this.enterRule(localContext, 84, PostgreSqlParser.RULE_partition_bound_choose); + public partitionCmd(): PartitionCmdContext { + let localContext = new PartitionCmdContext(this.context, this.state); + this.enterRule(localContext, 80, PostgreSqlParser.RULE_partitionCmd); try { - this.state = 1619; - this.errorHandler.sync(this); - switch (this.tokenStream.LA(1)) { - case PostgreSqlParser.OPEN_PAREN: - this.enterOuterAlt(localContext, 1); - { - this.state = 1616; - this.execute_param_clause(); - } - break; - case PostgreSqlParser.KW_MINVALUE: - this.enterOuterAlt(localContext, 2); - { - this.state = 1617; - this.match(PostgreSqlParser.KW_MINVALUE); - } - break; - case PostgreSqlParser.KW_MAXVALUE: - this.enterOuterAlt(localContext, 3); - { - this.state = 1618; - this.match(PostgreSqlParser.KW_MAXVALUE); - } - break; - default: - throw new antlr.NoViableAltException(this); - } - } - catch (re) { - if (re instanceof antlr.RecognitionException) { - localContext.exception = re; - this.errorHandler.reportError(this, re); - this.errorHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return localContext; - } - public partition_with_clause(): Partition_with_clauseContext { - let localContext = new Partition_with_clauseContext(this.context, this.state); - this.enterRule(localContext, 86, PostgreSqlParser.RULE_partition_with_clause); - try { - this.enterOuterAlt(localContext, 1); - { - this.state = 1621; - this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 1622; - this.match(PostgreSqlParser.KW_MODULUS); - this.state = 1623; - this.numericOnly(); - this.state = 1624; - this.match(PostgreSqlParser.COMMA); - this.state = 1625; - this.match(PostgreSqlParser.KW_REMAINDER); - this.state = 1626; - this.numericOnly(); - this.state = 1627; - this.match(PostgreSqlParser.CLOSE_PAREN); - } - } - catch (re) { - if (re instanceof antlr.RecognitionException) { - localContext.exception = re; - this.errorHandler.reportError(this, re); - this.errorHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return localContext; - } - public partition_cmd(): Partition_cmdContext { - let localContext = new Partition_cmdContext(this.context, this.state); - this.enterRule(localContext, 88, PostgreSqlParser.RULE_partition_cmd); - try { - this.state = 1635; + this.state = 1588; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ATTACH: this.enterOuterAlt(localContext, 1); { - this.state = 1629; - this.index_partition_cmd(); - this.state = 1630; + this.state = 1582; + this.indexPartitionCmd(); + this.state = 1583; this.partitionBoundSpec(); } break; case PostgreSqlParser.KW_DETACH: this.enterOuterAlt(localContext, 2); { - this.state = 1632; + this.state = 1585; this.match(PostgreSqlParser.KW_DETACH); - this.state = 1633; + this.state = 1586; this.match(PostgreSqlParser.KW_PARTITION); - this.state = 1634; - this.qualified_name(); + this.state = 1587; + this.qualifiedName(); } break; default: @@ -7814,18 +7601,18 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public index_partition_cmd(): Index_partition_cmdContext { - let localContext = new Index_partition_cmdContext(this.context, this.state); - this.enterRule(localContext, 90, PostgreSqlParser.RULE_index_partition_cmd); + public indexPartitionCmd(): IndexPartitionCmdContext { + let localContext = new IndexPartitionCmdContext(this.context, this.state); + this.enterRule(localContext, 82, PostgreSqlParser.RULE_indexPartitionCmd); try { this.enterOuterAlt(localContext, 1); { - this.state = 1637; + this.state = 1590; this.match(PostgreSqlParser.KW_ATTACH); - this.state = 1638; + this.state = 1591; this.match(PostgreSqlParser.KW_PARTITION); - this.state = 1639; - this.qualified_name(); + this.state = 1592; + this.qualifiedName(); } } catch (re) { @@ -7842,100 +7629,100 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alter_table_cmd(): Alter_table_cmdContext { - let localContext = new Alter_table_cmdContext(this.context, this.state); - this.enterRule(localContext, 92, PostgreSqlParser.RULE_alter_table_cmd); + public alterTableCmd(): AlterTableCmdContext { + let localContext = new AlterTableCmdContext(this.context, this.state); + this.enterRule(localContext, 84, PostgreSqlParser.RULE_alterTableCmd); let _la: number; try { let alternative: number; - this.state = 1874; + this.state = 1827; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 117, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 113, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1641; + this.state = 1594; this.match(PostgreSqlParser.KW_ADD); - this.state = 1644; + this.state = 1597; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 45) { { - this.state = 1642; + this.state = 1595; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 1643; + this.state = 1596; this.colId(); } } - this.state = 1646; + this.state = 1599; this.constraintElem(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1647; + this.state = 1600; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1648; + this.state = 1601; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 1649; + this.state = 1602; this.colId(); - this.state = 1653; + this.state = 1606; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 79, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 1650; + this.state = 1603; this.constraintAttributeElem(); } } } - this.state = 1655; + this.state = 1608; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 79, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context); } } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1656; + this.state = 1609; this.match(PostgreSqlParser.KW_VALIDATE); - this.state = 1657; + this.state = 1610; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 1658; + this.state = 1611; this.colId(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1659; + this.state = 1612; this.match(PostgreSqlParser.KW_DROP); - this.state = 1660; + this.state = 1613; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 1662; + this.state = 1615; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 80, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 76, this.context) ) { case 1: { - this.state = 1661; - this.opt_if_exists(); + this.state = 1614; + this.ifExists(); } break; } - this.state = 1664; + this.state = 1617; this.colId(); - this.state = 1666; + this.state = 1619; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 81, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 77, this.context) ) { case 1: { - this.state = 1665; - this.opt_drop_behavior(); + this.state = 1618; + this.optDropBehavior(); } break; } @@ -7944,11 +7731,11 @@ export class PostgreSqlParser extends SQLParserBase { case 5: this.enterOuterAlt(localContext, 5); { - this.state = 1668; + this.state = 1621; this.match(PostgreSqlParser.KW_SET); - this.state = 1669; + this.state = 1622; this.match(PostgreSqlParser.KW_WITHOUT); - this.state = 1670; + this.state = 1623; _la = this.tokenStream.LA(1); if(!(_la === 158 || _la === 277)) { this.errorHandler.recoverInline(this); @@ -7962,20 +7749,20 @@ export class PostgreSqlParser extends SQLParserBase { case 6: this.enterOuterAlt(localContext, 6); { - this.state = 1671; + this.state = 1624; this.match(PostgreSqlParser.KW_CLUSTER); - this.state = 1672; + this.state = 1625; this.match(PostgreSqlParser.KW_ON); - this.state = 1673; + this.state = 1626; this.colId(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 1674; + this.state = 1627; this.match(PostgreSqlParser.KW_SET); - this.state = 1675; + this.state = 1628; _la = this.tokenStream.LA(1); if(!(_la === 367 || _la === 439)) { this.errorHandler.recoverInline(this); @@ -7989,14 +7776,14 @@ export class PostgreSqlParser extends SQLParserBase { case 8: this.enterOuterAlt(localContext, 8); { - this.state = 1676; + this.state = 1629; this.match(PostgreSqlParser.KW_ENABLE); - this.state = 1678; + this.state = 1631; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 139 || _la === 312) { { - this.state = 1677; + this.state = 1630; _la = this.tokenStream.LA(1); if(!(_la === 139 || _la === 312)) { this.errorHandler.recoverInline(this); @@ -8008,29 +7795,29 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 1680; + this.state = 1633; this.match(PostgreSqlParser.KW_TRIGGER); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 1681; + this.state = 1634; this.match(PostgreSqlParser.KW_DISABLE); - this.state = 1682; + this.state = 1635; this.match(PostgreSqlParser.KW_TRIGGER); - this.state = 1686; + this.state = 1639; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ALL: { - this.state = 1683; + this.state = 1636; this.match(PostgreSqlParser.KW_ALL); } break; case PostgreSqlParser.KW_USER: { - this.state = 1684; + this.state = 1637; this.match(PostgreSqlParser.KW_USER); } break; @@ -8429,7 +8216,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 1685; + this.state = 1638; this.colId(); } break; @@ -8441,9 +8228,9 @@ export class PostgreSqlParser extends SQLParserBase { case 10: this.enterOuterAlt(localContext, 10); { - this.state = 1688; + this.state = 1641; this.match(PostgreSqlParser.KW_ENABLE); - this.state = 1689; + this.state = 1642; _la = this.tokenStream.LA(1); if(!(_la === 139 || _la === 312)) { this.errorHandler.recoverInline(this); @@ -8452,113 +8239,113 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1690; + this.state = 1643; this.match(PostgreSqlParser.KW_RULE); - this.state = 1691; + this.state = 1644; this.colId(); } break; case 11: this.enterOuterAlt(localContext, 11); { - this.state = 1692; + this.state = 1645; this.match(PostgreSqlParser.KW_DISABLE); - this.state = 1693; + this.state = 1646; this.match(PostgreSqlParser.KW_RULE); - this.state = 1694; + this.state = 1647; this.colId(); } break; case 12: this.enterOuterAlt(localContext, 12); { - this.state = 1696; + this.state = 1649; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 1695; + this.state = 1648; this.match(PostgreSqlParser.KW_NO); } } - this.state = 1698; + this.state = 1651; this.match(PostgreSqlParser.KW_INHERIT); - this.state = 1699; - this.qualified_name(); + this.state = 1652; + this.qualifiedName(); } break; case 13: this.enterOuterAlt(localContext, 13); { - this.state = 1700; + this.state = 1653; this.match(PostgreSqlParser.KW_OF); - this.state = 1701; - this.any_name(); + this.state = 1654; + this.anyName(); } break; case 14: this.enterOuterAlt(localContext, 14); { - this.state = 1702; + this.state = 1655; this.match(PostgreSqlParser.KW_NOT); - this.state = 1703; + this.state = 1656; this.match(PostgreSqlParser.KW_OF); } break; case 15: this.enterOuterAlt(localContext, 15); { - this.state = 1704; + this.state = 1657; this.match(PostgreSqlParser.KW_OWNER); - this.state = 1705; + this.state = 1658; this.match(PostgreSqlParser.KW_TO); - this.state = 1706; + this.state = 1659; this.roleSpec(); } break; case 16: this.enterOuterAlt(localContext, 16); { - this.state = 1707; + this.state = 1660; this.match(PostgreSqlParser.KW_SET); - this.state = 1708; + this.state = 1661; this.match(PostgreSqlParser.KW_TABLESPACE); - this.state = 1709; - this.tablespace_name_create(); + this.state = 1662; + this.tableSpaceName(); } break; case 17: this.enterOuterAlt(localContext, 17); { - this.state = 1710; + this.state = 1663; this.match(PostgreSqlParser.KW_REPLICA); - this.state = 1711; + this.state = 1664; this.match(PostgreSqlParser.KW_IDENTITY); - this.state = 1716; + this.state = 1669; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_NOTHING: { - this.state = 1712; + this.state = 1665; this.match(PostgreSqlParser.KW_NOTHING); } break; case PostgreSqlParser.KW_FULL: { - this.state = 1713; + this.state = 1666; this.match(PostgreSqlParser.KW_FULL); } break; case PostgreSqlParser.KW_DEFAULT: { - this.state = 1714; + this.state = 1667; this.match(PostgreSqlParser.KW_DEFAULT); } break; case PostgreSqlParser.KW_USING: { - this.state = 1715; + this.state = 1668; this.existingIndex(); } break; @@ -8570,18 +8357,18 @@ export class PostgreSqlParser extends SQLParserBase { case 18: this.enterOuterAlt(localContext, 18); { - this.state = 1724; + this.state = 1677; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ENABLE: { - this.state = 1718; + this.state = 1671; this.match(PostgreSqlParser.KW_ENABLE); } break; case PostgreSqlParser.KW_DISABLE: { - this.state = 1719; + this.state = 1672; this.match(PostgreSqlParser.KW_DISABLE); } break; @@ -8589,17 +8376,17 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_NO: { { - this.state = 1721; + this.state = 1674; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 1720; + this.state = 1673; this.match(PostgreSqlParser.KW_NO); } } - this.state = 1723; + this.state = 1676; this.match(PostgreSqlParser.KW_FORCE); } } @@ -8607,48 +8394,48 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 1726; + this.state = 1679; this.match(PostgreSqlParser.KW_ROW); - this.state = 1727; + this.state = 1680; this.match(PostgreSqlParser.KW_LEVEL); - this.state = 1728; + this.state = 1681; this.match(PostgreSqlParser.KW_SECURITY); } break; case 19: this.enterOuterAlt(localContext, 19); { - this.state = 1729; + this.state = 1682; this.match(PostgreSqlParser.KW_DROP); - this.state = 1731; + this.state = 1684; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 88, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 84, this.context) ) { case 1: { - this.state = 1730; + this.state = 1683; this.match(PostgreSqlParser.KW_COLUMN); } break; } - this.state = 1734; + this.state = 1687; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 89, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 85, this.context) ) { case 1: { - this.state = 1733; - this.opt_if_exists(); + this.state = 1686; + this.ifExists(); } break; } - this.state = 1736; - this.column_name(); - this.state = 1738; + this.state = 1689; + this.columnName(); + this.state = 1691; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 90, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 86, this.context) ) { case 1: { - this.state = 1737; - this.opt_drop_behavior(); + this.state = 1690; + this.optDropBehavior(); } break; } @@ -8657,63 +8444,63 @@ export class PostgreSqlParser extends SQLParserBase { case 20: this.enterOuterAlt(localContext, 20); { - this.state = 1740; + this.state = 1693; this.match(PostgreSqlParser.KW_ADD); - this.state = 1742; + this.state = 1695; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 44) { { - this.state = 1741; + this.state = 1694; this.match(PostgreSqlParser.KW_COLUMN); } } - this.state = 1745; + this.state = 1698; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 92, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 88, this.context) ) { case 1: { - this.state = 1744; - this.opt_if_not_exists(); + this.state = 1697; + this.ifNotExists(); } break; } - this.state = 1747; + this.state = 1700; this.column_def(); } break; case 21: this.enterOuterAlt(localContext, 21); { - this.state = 1748; + this.state = 1701; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1750; + this.state = 1703; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 93, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 89, this.context) ) { case 1: { - this.state = 1749; + this.state = 1702; this.match(PostgreSqlParser.KW_COLUMN); } break; } - this.state = 1752; - this.column_name(); - this.state = 1755; + this.state = 1705; + this.columnName(); + this.state = 1708; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DROP: case PostgreSqlParser.KW_SET: { - this.state = 1753; - this.alter_column_default(); + this.state = 1706; + this.alterColumnDefault(); } break; case PostgreSqlParser.KW_OPTIONS: { - this.state = 1754; - this.alter_generic_options(); + this.state = 1707; + this.alterGenericOptions(); } break; default: @@ -8724,21 +8511,21 @@ export class PostgreSqlParser extends SQLParserBase { case 22: this.enterOuterAlt(localContext, 22); { - this.state = 1757; + this.state = 1710; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1759; + this.state = 1712; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 95, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 91, this.context) ) { case 1: { - this.state = 1758; + this.state = 1711; this.match(PostgreSqlParser.KW_COLUMN); } break; } - this.state = 1761; - this.column_name(); - this.state = 1762; + this.state = 1714; + this.columnName(); + this.state = 1715; _la = this.tokenStream.LA(1); if(!(_la === 191 || _la === 333)) { this.errorHandler.recoverInline(this); @@ -8747,40 +8534,40 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1763; + this.state = 1716; this.match(PostgreSqlParser.KW_NOT); - this.state = 1764; + this.state = 1717; this.match(PostgreSqlParser.KW_NULL); } break; case 23: this.enterOuterAlt(localContext, 23); { - this.state = 1766; + this.state = 1719; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1768; + this.state = 1721; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 96, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 92, this.context) ) { case 1: { - this.state = 1767; + this.state = 1720; this.match(PostgreSqlParser.KW_COLUMN); } break; } - this.state = 1770; - this.column_name(); - this.state = 1771; + this.state = 1723; + this.columnName(); + this.state = 1724; this.match(PostgreSqlParser.KW_DROP); - this.state = 1772; + this.state = 1725; this.match(PostgreSqlParser.KW_EXPRESSION); - this.state = 1774; + this.state = 1727; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 97, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 93, this.context) ) { case 1: { - this.state = 1773; - this.opt_if_exists(); + this.state = 1726; + this.ifExists(); } break; } @@ -8789,54 +8576,54 @@ export class PostgreSqlParser extends SQLParserBase { case 24: this.enterOuterAlt(localContext, 24); { - this.state = 1776; + this.state = 1729; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1778; + this.state = 1731; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 98, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 94, this.context) ) { case 1: { - this.state = 1777; + this.state = 1730; this.match(PostgreSqlParser.KW_COLUMN); } break; } - this.state = 1780; - this.column_name(); - this.state = 1781; + this.state = 1733; + this.columnName(); + this.state = 1734; this.match(PostgreSqlParser.KW_SET); - this.state = 1782; + this.state = 1735; this.match(PostgreSqlParser.KW_STATISTICS); - this.state = 1783; + this.state = 1736; this.signedConst(); } break; case 25: this.enterOuterAlt(localContext, 25); { - this.state = 1790; + this.state = 1743; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 138) { { - this.state = 1785; + this.state = 1738; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1787; + this.state = 1740; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 99, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 95, this.context) ) { case 1: { - this.state = 1786; + this.state = 1739; this.match(PostgreSqlParser.KW_COLUMN); } break; } - this.state = 1789; - this.column_name(); + this.state = 1742; + this.columnName(); } } - this.state = 1792; + this.state = 1745; _la = this.tokenStream.LA(1); if(!(_la === 313 || _la === 333)) { this.errorHandler.recoverInline(this); @@ -8845,84 +8632,84 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1793; + this.state = 1746; this.relOptions(); } break; case 26: this.enterOuterAlt(localContext, 26); { - this.state = 1794; + this.state = 1747; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1796; + this.state = 1749; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 101, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 97, this.context) ) { case 1: { - this.state = 1795; + this.state = 1748; this.match(PostgreSqlParser.KW_COLUMN); } break; } - this.state = 1798; - this.column_name(); - this.state = 1799; + this.state = 1751; + this.columnName(); + this.state = 1752; this.match(PostgreSqlParser.KW_SET); - this.state = 1800; + this.state = 1753; this.match(PostgreSqlParser.KW_STORAGE); - this.state = 1801; + this.state = 1754; this.colId(); } break; case 27: this.enterOuterAlt(localContext, 27); { - this.state = 1803; + this.state = 1756; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1805; + this.state = 1758; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 102, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 98, this.context) ) { case 1: { - this.state = 1804; + this.state = 1757; this.match(PostgreSqlParser.KW_COLUMN); } break; } - this.state = 1807; - this.column_name(); - this.state = 1808; + this.state = 1760; + this.columnName(); + this.state = 1761; this.match(PostgreSqlParser.KW_ADD); - this.state = 1809; + this.state = 1762; this.match(PostgreSqlParser.KW_GENERATED); - this.state = 1810; - this.generated_when(); - this.state = 1811; + this.state = 1763; + this.generatedWhen(); + this.state = 1764; this.match(PostgreSqlParser.KW_AS); - this.state = 1812; + this.state = 1765; this.match(PostgreSqlParser.KW_IDENTITY); - this.state = 1821; + this.state = 1774; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 104, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 100, this.context) ) { case 1: { - this.state = 1813; + this.state = 1766; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 1815; + this.state = 1768; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 1814; + this.state = 1767; this.seqOptElem(); } } - this.state = 1817; + this.state = 1770; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 36 || _la === 148 || _la === 225 || ((((_la - 260)) & ~0x1F) === 0 && ((1 << (_la - 260)) & 2097669) !== 0) || ((((_la - 314)) & ~0x1F) === 0 && ((1 << (_la - 314)) & 67125249) !== 0)); - this.state = 1819; + this.state = 1772; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -8932,50 +8719,50 @@ export class PostgreSqlParser extends SQLParserBase { case 28: this.enterOuterAlt(localContext, 28); { - this.state = 1823; + this.state = 1776; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1825; + this.state = 1778; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 105, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 101, this.context) ) { case 1: { - this.state = 1824; + this.state = 1777; this.match(PostgreSqlParser.KW_COLUMN); } break; } - this.state = 1827; - this.column_name(); - this.state = 1841; + this.state = 1780; + this.columnName(); + this.state = 1794; this.errorHandler.sync(this); alternative = 1; do { switch (alternative) { case 1: { - this.state = 1841; + this.state = 1794; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_RESTART: { - this.state = 1828; + this.state = 1781; this.match(PostgreSqlParser.KW_RESTART); - this.state = 1833; + this.state = 1786; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 107, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 103, this.context) ) { case 1: { - this.state = 1830; + this.state = 1783; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 1829; + this.state = 1782; this.match(PostgreSqlParser.KW_WITH); } } - this.state = 1832; + this.state = 1785; this.numericOnly(); } break; @@ -8984,9 +8771,9 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_SET: { - this.state = 1835; + this.state = 1788; this.match(PostgreSqlParser.KW_SET); - this.state = 1839; + this.state = 1792; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_AS: @@ -9000,16 +8787,16 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_SEQUENCE: case PostgreSqlParser.KW_START: { - this.state = 1836; + this.state = 1789; this.seqOptElem(); } break; case PostgreSqlParser.KW_GENERATED: { - this.state = 1837; + this.state = 1790; this.match(PostgreSqlParser.KW_GENERATED); - this.state = 1838; - this.generated_when(); + this.state = 1791; + this.generatedWhen(); } break; default: @@ -9025,40 +8812,40 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 1843; + this.state = 1796; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 110, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 106, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } break; case 29: this.enterOuterAlt(localContext, 29); { - this.state = 1845; + this.state = 1798; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1847; + this.state = 1800; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 111, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 107, this.context) ) { case 1: { - this.state = 1846; + this.state = 1799; this.match(PostgreSqlParser.KW_COLUMN); } break; } - this.state = 1849; - this.column_name(); - this.state = 1850; + this.state = 1802; + this.columnName(); + this.state = 1803; this.match(PostgreSqlParser.KW_DROP); - this.state = 1851; + this.state = 1804; this.match(PostgreSqlParser.KW_IDENTITY); - this.state = 1853; + this.state = 1806; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 112, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 108, this.context) ) { case 1: { - this.state = 1852; - this.opt_if_exists(); + this.state = 1805; + this.ifExists(); } break; } @@ -9067,54 +8854,54 @@ export class PostgreSqlParser extends SQLParserBase { case 30: this.enterOuterAlt(localContext, 30); { - this.state = 1855; + this.state = 1808; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1857; + this.state = 1810; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 113, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 109, this.context) ) { case 1: { - this.state = 1856; + this.state = 1809; this.match(PostgreSqlParser.KW_COLUMN); } break; } - this.state = 1859; - this.column_name(); - this.state = 1862; + this.state = 1812; + this.columnName(); + this.state = 1815; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 333) { { - this.state = 1860; + this.state = 1813; this.match(PostgreSqlParser.KW_SET); - this.state = 1861; + this.state = 1814; this.match(PostgreSqlParser.KW_DATA); } } - this.state = 1864; + this.state = 1817; this.match(PostgreSqlParser.KW_TYPE); - this.state = 1865; + this.state = 1818; this.typename(); - this.state = 1867; + this.state = 1820; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 43) { { - this.state = 1866; - this.opt_collate_clause(); + this.state = 1819; + this.collateClause(); } } - this.state = 1871; + this.state = 1824; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 1869; + this.state = 1822; this.match(PostgreSqlParser.KW_USING); - this.state = 1870; + this.state = 1823; this.expression(); } } @@ -9124,8 +8911,8 @@ export class PostgreSqlParser extends SQLParserBase { case 31: this.enterOuterAlt(localContext, 31); { - this.state = 1873; - this.alter_generic_options(); + this.state = 1826; + this.alterGenericOptions(); } break; } @@ -9144,30 +8931,30 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alter_column_default(): Alter_column_defaultContext { - let localContext = new Alter_column_defaultContext(this.context, this.state); - this.enterRule(localContext, 94, PostgreSqlParser.RULE_alter_column_default); + public alterColumnDefault(): AlterColumnDefaultContext { + let localContext = new AlterColumnDefaultContext(this.context, this.state); + this.enterRule(localContext, 86, PostgreSqlParser.RULE_alterColumnDefault); try { - this.state = 1881; + this.state = 1834; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_SET: this.enterOuterAlt(localContext, 1); { - this.state = 1876; + this.state = 1829; this.match(PostgreSqlParser.KW_SET); - this.state = 1877; + this.state = 1830; this.match(PostgreSqlParser.KW_DEFAULT); - this.state = 1878; + this.state = 1831; this.expression(); } break; case PostgreSqlParser.KW_DROP: this.enterOuterAlt(localContext, 2); { - this.state = 1879; + this.state = 1832; this.match(PostgreSqlParser.KW_DROP); - this.state = 1880; + this.state = 1833; this.match(PostgreSqlParser.KW_DEFAULT); } break; @@ -9189,14 +8976,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_drop_behavior(): Opt_drop_behaviorContext { - let localContext = new Opt_drop_behaviorContext(this.context, this.state); - this.enterRule(localContext, 96, PostgreSqlParser.RULE_opt_drop_behavior); + public optDropBehavior(): OptDropBehaviorContext { + let localContext = new OptDropBehaviorContext(this.context, this.state); + this.enterRule(localContext, 88, PostgreSqlParser.RULE_optDropBehavior); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 1883; + this.state = 1836; _la = this.tokenStream.LA(1); if(!(_la === 150 || _la === 315)) { this.errorHandler.recoverInline(this); @@ -9221,16 +9008,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_collate_clause(): Opt_collate_clauseContext { - let localContext = new Opt_collate_clauseContext(this.context, this.state); - this.enterRule(localContext, 98, PostgreSqlParser.RULE_opt_collate_clause); + public collateClause(): CollateClauseContext { + let localContext = new CollateClauseContext(this.context, this.state); + this.enterRule(localContext, 90, PostgreSqlParser.RULE_collateClause); try { this.enterOuterAlt(localContext, 1); { - this.state = 1885; + this.state = 1838; this.match(PostgreSqlParser.KW_COLLATE); - this.state = 1886; - this.any_name(); + this.state = 1839; + this.anyName(); } } catch (re) { @@ -9249,32 +9036,32 @@ export class PostgreSqlParser extends SQLParserBase { } public relOptions(): RelOptionsContext { let localContext = new RelOptionsContext(this.context, this.state); - this.enterRule(localContext, 100, PostgreSqlParser.RULE_relOptions); + this.enterRule(localContext, 92, PostgreSqlParser.RULE_relOptions); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 1888; + this.state = 1841; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 1889; + this.state = 1842; this.relOptionElem(); - this.state = 1894; + this.state = 1847; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 1890; + this.state = 1843; this.match(PostgreSqlParser.COMMA); - this.state = 1891; + this.state = 1844; this.relOptionElem(); } } - this.state = 1896; + this.state = 1849; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 1897; + this.state = 1850; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -9294,13 +9081,13 @@ export class PostgreSqlParser extends SQLParserBase { } public optRelOptions(): OptRelOptionsContext { let localContext = new OptRelOptionsContext(this.context, this.state); - this.enterRule(localContext, 102, PostgreSqlParser.RULE_optRelOptions); + this.enterRule(localContext, 94, PostgreSqlParser.RULE_optRelOptions); try { this.enterOuterAlt(localContext, 1); { - this.state = 1899; + this.state = 1852; this.match(PostgreSqlParser.KW_WITH); - this.state = 1900; + this.state = 1853; this.relOptions(); } } @@ -9320,29 +9107,29 @@ export class PostgreSqlParser extends SQLParserBase { } public relOptionElem(): RelOptionElemContext { let localContext = new RelOptionElemContext(this.context, this.state); - this.enterRule(localContext, 104, PostgreSqlParser.RULE_relOptionElem); + this.enterRule(localContext, 96, PostgreSqlParser.RULE_relOptionElem); try { this.enterOuterAlt(localContext, 1); { - this.state = 1902; + this.state = 1855; this.colLabel(); - this.state = 1907; + this.state = 1860; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.EQUAL: { - this.state = 1903; + this.state = 1856; this.match(PostgreSqlParser.EQUAL); - this.state = 1904; - this.def_arg(); + this.state = 1857; + this.defArg(); } break; case PostgreSqlParser.DOT: { - this.state = 1905; + this.state = 1858; this.match(PostgreSqlParser.DOT); - this.state = 1906; - this.def_elem(); + this.state = 1859; + this.defElem(); } break; case PostgreSqlParser.CLOSE_PAREN: @@ -9369,70 +9156,70 @@ export class PostgreSqlParser extends SQLParserBase { } public partitionBoundSpec(): PartitionBoundSpecContext { let localContext = new PartitionBoundSpecContext(this.context, this.state); - this.enterRule(localContext, 106, PostgreSqlParser.RULE_partitionBoundSpec); + this.enterRule(localContext, 98, PostgreSqlParser.RULE_partitionBoundSpec); try { - this.state = 1931; + this.state = 1885; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 121, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 117, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1909; + this.state = 1862; this.match(PostgreSqlParser.KW_FOR); - this.state = 1910; + this.state = 1863; this.match(PostgreSqlParser.KW_VALUES); - this.state = 1911; + this.state = 1864; this.match(PostgreSqlParser.KW_WITH); - this.state = 1912; + this.state = 1865; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 1913; + this.state = 1866; this.match(PostgreSqlParser.KW_MODULUS); - this.state = 1914; - this.match(PostgreSqlParser.Integral); - this.state = 1915; + this.state = 1867; + this.numericOnly(); + this.state = 1868; this.match(PostgreSqlParser.COMMA); - this.state = 1916; + this.state = 1869; this.match(PostgreSqlParser.KW_REMAINDER); - this.state = 1917; - this.match(PostgreSqlParser.Integral); - this.state = 1918; + this.state = 1870; + this.numericOnly(); + this.state = 1871; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 1919; + this.state = 1873; this.match(PostgreSqlParser.KW_FOR); - this.state = 1920; + this.state = 1874; this.match(PostgreSqlParser.KW_VALUES); - this.state = 1921; + this.state = 1875; this.match(PostgreSqlParser.KW_IN); - this.state = 1922; - this.execute_param_clause(); + this.state = 1876; + this.executeParamClause(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 1923; + this.state = 1877; this.match(PostgreSqlParser.KW_FOR); - this.state = 1924; + this.state = 1878; this.match(PostgreSqlParser.KW_VALUES); - this.state = 1925; + this.state = 1879; this.match(PostgreSqlParser.KW_FROM); - this.state = 1926; - this.execute_param_clause(); - this.state = 1927; + this.state = 1880; + this.executeParamClause(); + this.state = 1881; this.match(PostgreSqlParser.KW_TO); - this.state = 1928; - this.execute_param_clause(); + this.state = 1882; + this.executeParamClause(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 1930; + this.state = 1884; this.match(PostgreSqlParser.KW_DEFAULT); } break; @@ -9454,32 +9241,32 @@ export class PostgreSqlParser extends SQLParserBase { } public alterCompositeTypeStmt(): AlterCompositeTypeStmtContext { let localContext = new AlterCompositeTypeStmtContext(this.context, this.state); - this.enterRule(localContext, 108, PostgreSqlParser.RULE_alterCompositeTypeStmt); + this.enterRule(localContext, 100, PostgreSqlParser.RULE_alterCompositeTypeStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 1933; + this.state = 1887; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1934; + this.state = 1888; this.match(PostgreSqlParser.KW_TYPE); - this.state = 1935; - this.any_name(); - this.state = 1936; - this.alter_type_cmd(); - this.state = 1941; + this.state = 1889; + this.anyName(); + this.state = 1890; + this.alterTypeCmd(); + this.state = 1895; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 1937; + this.state = 1891; this.match(PostgreSqlParser.COMMA); - this.state = 1938; - this.alter_type_cmd(); + this.state = 1892; + this.alterTypeCmd(); } } - this.state = 1943; + this.state = 1897; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -9499,30 +9286,30 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alter_type_cmd(): Alter_type_cmdContext { - let localContext = new Alter_type_cmdContext(this.context, this.state); - this.enterRule(localContext, 110, PostgreSqlParser.RULE_alter_type_cmd); + public alterTypeCmd(): AlterTypeCmdContext { + let localContext = new AlterTypeCmdContext(this.context, this.state); + this.enterRule(localContext, 102, PostgreSqlParser.RULE_alterTypeCmd); let _la: number; try { - this.state = 1974; + this.state = 1928; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ADD: this.enterOuterAlt(localContext, 1); { - this.state = 1944; + this.state = 1898; this.match(PostgreSqlParser.KW_ADD); - this.state = 1945; + this.state = 1899; this.match(PostgreSqlParser.KW_ATTRIBUTE); - this.state = 1946; + this.state = 1900; this.tableFuncElement(); - this.state = 1948; + this.state = 1902; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 123, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 119, this.context) ) { case 1: { - this.state = 1947; - this.opt_drop_behavior(); + this.state = 1901; + this.optDropBehavior(); } break; } @@ -9531,29 +9318,29 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_DROP: this.enterOuterAlt(localContext, 2); { - this.state = 1950; + this.state = 1904; this.match(PostgreSqlParser.KW_DROP); - this.state = 1951; + this.state = 1905; this.match(PostgreSqlParser.KW_ATTRIBUTE); - this.state = 1953; + this.state = 1907; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 124, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 120, this.context) ) { case 1: { - this.state = 1952; - this.opt_if_exists(); + this.state = 1906; + this.ifExists(); } break; } - this.state = 1955; + this.state = 1909; this.colId(); - this.state = 1957; + this.state = 1911; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 125, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 121, this.context) ) { case 1: { - this.state = 1956; - this.opt_drop_behavior(); + this.state = 1910; + this.optDropBehavior(); } break; } @@ -9562,45 +9349,45 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_ALTER: this.enterOuterAlt(localContext, 3); { - this.state = 1959; + this.state = 1913; this.match(PostgreSqlParser.KW_ALTER); - this.state = 1960; + this.state = 1914; this.match(PostgreSqlParser.KW_ATTRIBUTE); - this.state = 1961; + this.state = 1915; this.colId(); - this.state = 1964; + this.state = 1918; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 333) { { - this.state = 1962; + this.state = 1916; this.match(PostgreSqlParser.KW_SET); - this.state = 1963; + this.state = 1917; this.match(PostgreSqlParser.KW_DATA); } } - this.state = 1966; + this.state = 1920; this.match(PostgreSqlParser.KW_TYPE); - this.state = 1967; + this.state = 1921; this.typename(); - this.state = 1969; + this.state = 1923; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 43) { { - this.state = 1968; - this.opt_collate_clause(); + this.state = 1922; + this.collateClause(); } } - this.state = 1972; + this.state = 1926; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 128, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 124, this.context) ) { case 1: { - this.state = 1971; - this.opt_drop_behavior(); + this.state = 1925; + this.optDropBehavior(); } break; } @@ -9626,13 +9413,13 @@ export class PostgreSqlParser extends SQLParserBase { } public closePortalStmt(): ClosePortalStmtContext { let localContext = new ClosePortalStmtContext(this.context, this.state); - this.enterRule(localContext, 112, PostgreSqlParser.RULE_closePortalStmt); + this.enterRule(localContext, 104, PostgreSqlParser.RULE_closePortalStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 1976; + this.state = 1930; this.match(PostgreSqlParser.KW_CLOSE); - this.state = 1979; + this.state = 1933; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -10030,13 +9817,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 1977; + this.state = 1931; this.colId(); } break; case PostgreSqlParser.KW_ALL: { - this.state = 1978; + this.state = 1932; this.match(PostgreSqlParser.KW_ALL); } break; @@ -10061,40 +9848,40 @@ export class PostgreSqlParser extends SQLParserBase { } public copyStmt(): CopyStmtContext { let localContext = new CopyStmtContext(this.context, this.state); - this.enterRule(localContext, 114, PostgreSqlParser.RULE_copyStmt); + this.enterRule(localContext, 106, PostgreSqlParser.RULE_copyStmt); let _la: number; try { - this.state = 2030; + this.state = 1984; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 142, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 138, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 1981; + this.state = 1935; this.match(PostgreSqlParser.KW_COPY); - this.state = 1983; + this.state = 1937; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 107) { { - this.state = 1982; + this.state = 1936; this.match(PostgreSqlParser.KW_BINARY); } } - this.state = 1985; - this.table_name(); - this.state = 1987; + this.state = 1939; + this.tableName(); + this.state = 1941; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 1986; - this.opt_column_list(); + this.state = 1940; + this.optColumnList(); } } - this.state = 1989; + this.state = 1943; _la = this.tokenStream.LA(1); if(!(_la === 64 || _la === 94)) { this.errorHandler.recoverInline(this); @@ -10103,17 +9890,17 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 1991; + this.state = 1945; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 297) { { - this.state = 1990; + this.state = 1944; this.match(PostgreSqlParser.KW_PROGRAM); } } - this.state = 1996; + this.state = 1950; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.StringConstant: @@ -10121,66 +9908,66 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.BeginDollarStringConstant: case PostgreSqlParser.EscapeStringConstant: { - this.state = 1993; + this.state = 1947; this.stringConst(); } break; case PostgreSqlParser.KW_STDIN: { - this.state = 1994; + this.state = 1948; this.match(PostgreSqlParser.KW_STDIN); } break; case PostgreSqlParser.KW_STDOUT: { - this.state = 1995; + this.state = 1949; this.match(PostgreSqlParser.KW_STDOUT); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 2003; + this.state = 1957; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 136, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 132, this.context) ) { case 1: { - this.state = 1999; + this.state = 1953; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 1998; + this.state = 1952; this.match(PostgreSqlParser.KW_USING); } } - this.state = 2001; + this.state = 1955; this.match(PostgreSqlParser.KW_DELIMITERS); - this.state = 2002; + this.state = 1956; this.stringConst(); } break; } - this.state = 2006; + this.state = 1960; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 137, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 133, this.context) ) { case 1: { - this.state = 2005; + this.state = 1959; this.match(PostgreSqlParser.KW_WITH); } break; } - this.state = 2008; + this.state = 1962; this.copyOptions(); - this.state = 2010; + this.state = 1964; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 103) { { - this.state = 2009; - this.where_clause(); + this.state = 1963; + this.whereClause(); } } @@ -10189,27 +9976,27 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 2012; + this.state = 1966; this.match(PostgreSqlParser.KW_COPY); - this.state = 2013; + this.state = 1967; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2014; + this.state = 1968; this.preParableStmt(); - this.state = 2015; + this.state = 1969; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 2016; + this.state = 1970; this.match(PostgreSqlParser.KW_TO); - this.state = 2018; + this.state = 1972; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 297) { { - this.state = 2017; + this.state = 1971; this.match(PostgreSqlParser.KW_PROGRAM); } } - this.state = 2023; + this.state = 1977; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.StringConstant: @@ -10217,36 +10004,36 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.BeginDollarStringConstant: case PostgreSqlParser.EscapeStringConstant: { - this.state = 2020; + this.state = 1974; this.stringConst(); } break; case PostgreSqlParser.KW_STDIN: { - this.state = 2021; + this.state = 1975; this.match(PostgreSqlParser.KW_STDIN); } break; case PostgreSqlParser.KW_STDOUT: { - this.state = 2022; + this.state = 1976; this.match(PostgreSqlParser.KW_STDOUT); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 2026; + this.state = 1980; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 141, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 137, this.context) ) { case 1: { - this.state = 2025; + this.state = 1979; this.match(PostgreSqlParser.KW_WITH); } break; } - this.state = 2028; + this.state = 1982; this.copyOptions(); } break; @@ -10268,36 +10055,36 @@ export class PostgreSqlParser extends SQLParserBase { } public copyOptionsNoparens(): CopyOptionsNoparensContext { let localContext = new CopyOptionsNoparensContext(this.context, this.state); - this.enterRule(localContext, 116, PostgreSqlParser.RULE_copyOptionsNoparens); + this.enterRule(localContext, 108, PostgreSqlParser.RULE_copyOptionsNoparens); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 2076; + this.state = 2030; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 151, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 147, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { - this.state = 2074; + this.state = 2028; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 150, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 146, this.context) ) { case 1: { - this.state = 2032; + this.state = 1986; this.match(PostgreSqlParser.KW_BINARY); } break; case 2: { - this.state = 2033; + this.state = 1987; this.match(PostgreSqlParser.KW_FREEZE); } break; case 3: { - this.state = 2034; + this.state = 1988; _la = this.tokenStream.LA(1); if(!(_la === 78 || _la === 183 || _la === 197 || _la === 298)) { this.errorHandler.recoverInline(this); @@ -10306,50 +10093,50 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2036; + this.state = 1990; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 2035; + this.state = 1989; this.match(PostgreSqlParser.KW_AS); } } - this.state = 2038; + this.state = 1992; this.stringConst(); } break; case 4: { - this.state = 2039; + this.state = 1993; this.match(PostgreSqlParser.KW_CSV); } break; case 5: { - this.state = 2040; + this.state = 1994; this.match(PostgreSqlParser.KW_HEADER); } break; case 6: { - this.state = 2041; + this.state = 1995; this.match(PostgreSqlParser.KW_FORCE); - this.state = 2042; + this.state = 1996; this.match(PostgreSqlParser.KW_QUOTE); - this.state = 2045; + this.state = 1999; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 144, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 140, this.context) ) { case 1: { - this.state = 2043; - this.column_list(); + this.state = 1997; + this.columnList(); } break; case 2: { - this.state = 2044; + this.state = 1998; this.match(PostgreSqlParser.STAR); } break; @@ -10358,35 +10145,35 @@ export class PostgreSqlParser extends SQLParserBase { break; case 7: { - this.state = 2047; + this.state = 2001; this.match(PostgreSqlParser.KW_FORCE); - this.state = 2049; + this.state = 2003; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 2048; + this.state = 2002; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 2051; + this.state = 2005; this.match(PostgreSqlParser.KW_NULL); - this.state = 2052; - this.column_list(); + this.state = 2006; + this.columnList(); } break; case 8: { - this.state = 2053; + this.state = 2007; this.match(PostgreSqlParser.KW_ENCODING); - this.state = 2054; + this.state = 2008; this.stringConst(); } break; case 9: { - this.state = 2055; + this.state = 2009; _la = this.tokenStream.LA(1); if(!(((((_la - 549)) & ~0x1F) === 0 && ((1 << (_la - 549)) & 7) !== 0))) { this.errorHandler.recoverInline(this); @@ -10395,60 +10182,60 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2072; + this.state = 2026; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 149, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 145, this.context) ) { case 1: { - this.state = 2056; + this.state = 2010; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2059; + this.state = 2013; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 146, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 142, this.context) ) { case 1: { - this.state = 2057; - this.column_list(); + this.state = 2011; + this.columnList(); } break; case 2: { - this.state = 2058; + this.state = 2012; this.match(PostgreSqlParser.STAR); } break; } - this.state = 2068; + this.state = 2022; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 2061; + this.state = 2015; this.match(PostgreSqlParser.COMMA); - this.state = 2064; + this.state = 2018; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 147, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 143, this.context) ) { case 1: { - this.state = 2062; - this.column_list(); + this.state = 2016; + this.columnList(); } break; case 2: { - this.state = 2063; + this.state = 2017; this.match(PostgreSqlParser.STAR); } break; } } } - this.state = 2070; + this.state = 2024; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 2071; + this.state = 2025; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -10458,9 +10245,9 @@ export class PostgreSqlParser extends SQLParserBase { } } } - this.state = 2078; + this.state = 2032; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 151, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 147, this.context); } } } @@ -10480,71 +10267,71 @@ export class PostgreSqlParser extends SQLParserBase { } public copyOptions(): CopyOptionsContext { let localContext = new CopyOptionsContext(this.context, this.state); - this.enterRule(localContext, 118, PostgreSqlParser.RULE_copyOptions); + this.enterRule(localContext, 110, PostgreSqlParser.RULE_copyOptions); let _la: number; try { - this.state = 2097; + this.state = 2051; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 155, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 151, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 2079; + this.state = 2033; this.copyOptionsNoparens(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 2080; + this.state = 2034; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2083; + this.state = 2037; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 152, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 148, this.context) ) { case 1: { - this.state = 2081; + this.state = 2035; this.copyOptionsNoparens(); } break; case 2: { - this.state = 2082; - this.copy_generic_opt_elem(); + this.state = 2036; + this.copyGenericOptElem(); } break; } - this.state = 2092; + this.state = 2046; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 2085; + this.state = 2039; this.match(PostgreSqlParser.COMMA); - this.state = 2088; + this.state = 2042; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 153, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 149, this.context) ) { case 1: { - this.state = 2086; + this.state = 2040; this.copyOptionsNoparens(); } break; case 2: { - this.state = 2087; - this.copy_generic_opt_elem(); + this.state = 2041; + this.copyGenericOptElem(); } break; } } } - this.state = 2094; + this.state = 2048; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 2095; + this.state = 2049; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -10564,16 +10351,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public copy_generic_opt_elem(): Copy_generic_opt_elemContext { - let localContext = new Copy_generic_opt_elemContext(this.context, this.state); - this.enterRule(localContext, 120, PostgreSqlParser.RULE_copy_generic_opt_elem); + public copyGenericOptElem(): CopyGenericOptElemContext { + let localContext = new CopyGenericOptElemContext(this.context, this.state); + this.enterRule(localContext, 112, PostgreSqlParser.RULE_copyGenericOptElem); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2099; + this.state = 2053; this.colLabel(); - this.state = 2114; + this.state = 2068; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -10995,8 +10782,8 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 2100; - this.opt_boolean_or_string(); + this.state = 2054; + this.booleanOrString(); } break; case PostgreSqlParser.PLUS: @@ -11004,39 +10791,39 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.Integral: case PostgreSqlParser.Numeric: { - this.state = 2101; + this.state = 2055; this.numericOnly(); } break; case PostgreSqlParser.STAR: { - this.state = 2102; + this.state = 2056; this.match(PostgreSqlParser.STAR); } break; case PostgreSqlParser.OPEN_PAREN: { - this.state = 2103; + this.state = 2057; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2104; - this.opt_boolean_or_string_column(); - this.state = 2109; + this.state = 2058; + this.optBooleanOrStringColumn(); + this.state = 2063; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 2105; + this.state = 2059; this.match(PostgreSqlParser.COMMA); - this.state = 2106; - this.opt_boolean_or_string_column(); + this.state = 2060; + this.optBooleanOrStringColumn(); } } - this.state = 2111; + this.state = 2065; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 2112; + this.state = 2066; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -11064,113 +10851,113 @@ export class PostgreSqlParser extends SQLParserBase { } public createStmt(): CreateStmtContext { let localContext = new CreateStmtContext(this.context, this.state); - this.enterRule(localContext, 122, PostgreSqlParser.RULE_createStmt); + this.enterRule(localContext, 114, PostgreSqlParser.RULE_createStmt); let _la: number; try { localContext = new ColumnCreateTableContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 2116; + this.state = 2070; this.match(PostgreSqlParser.KW_CREATE); - this.state = 2118; + this.state = 2072; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 213 || _la === 254 || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 32773) !== 0)) { { - this.state = 2117; + this.state = 2071; this.optTemp(); } } - this.state = 2120; + this.state = 2074; this.match(PostgreSqlParser.KW_TABLE); - this.state = 2122; + this.state = 2076; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 159, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 155, this.context) ) { case 1: { - this.state = 2121; - this.opt_if_not_exists(); + this.state = 2075; + this.ifNotExists(); } break; } - this.state = 2124; - this.table_name_create(); - this.state = 2190; + this.state = 2078; + this.tableNameCreate(); + this.state = 2144; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: { - this.state = 2125; + this.state = 2079; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2127; + this.state = 2081; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 2099209) !== 0) || ((((_la - 85)) & ~0x1F) === 0 && ((1 << (_la - 85)) & 2147491841) !== 0) || ((((_la - 120)) & ~0x1F) === 0 && ((1 << (_la - 120)) & 4294966809) !== 0) || ((((_la - 152)) & ~0x1F) === 0 && ((1 << (_la - 152)) & 4294967295) !== 0) || ((((_la - 184)) & ~0x1F) === 0 && ((1 << (_la - 184)) & 4294967295) !== 0) || ((((_la - 216)) & ~0x1F) === 0 && ((1 << (_la - 216)) & 4290781183) !== 0) || ((((_la - 248)) & ~0x1F) === 0 && ((1 << (_la - 248)) & 4294967295) !== 0) || ((((_la - 280)) & ~0x1F) === 0 && ((1 << (_la - 280)) & 4294967295) !== 0) || ((((_la - 312)) & ~0x1F) === 0 && ((1 << (_la - 312)) & 4294967295) !== 0) || ((((_la - 344)) & ~0x1F) === 0 && ((1 << (_la - 344)) & 4294967295) !== 0) || ((((_la - 376)) & ~0x1F) === 0 && ((1 << (_la - 376)) & 4294967295) !== 0) || ((((_la - 408)) & ~0x1F) === 0 && ((1 << (_la - 408)) & 4294967295) !== 0) || ((((_la - 440)) & ~0x1F) === 0 && ((1 << (_la - 440)) & 4294950911) !== 0) || ((((_la - 473)) & ~0x1F) === 0 && ((1 << (_la - 473)) & 3221225471) !== 0) || ((((_la - 506)) & ~0x1F) === 0 && ((1 << (_la - 506)) & 286719) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 2126; + this.state = 2080; this.tableElementList(); } } - this.state = 2129; + this.state = 2083; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 2131; + this.state = 2085; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 161, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 157, this.context) ) { case 1: { - this.state = 2130; + this.state = 2084; this.optInherit(); } break; } - this.state = 2134; + this.state = 2088; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 162, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 158, this.context) ) { case 1: { - this.state = 2133; + this.state = 2087; this.partitionSpec(); } break; } - this.state = 2137; + this.state = 2091; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 2136; - this.table_access_method_clause(); + this.state = 2090; + this.tableAccessMethodClause(); } } - this.state = 2140; + this.state = 2094; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 164, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 160, this.context) ) { case 1: { - this.state = 2139; + this.state = 2093; this.optWith(); } break; } - this.state = 2143; + this.state = 2097; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 80) { { - this.state = 2142; + this.state = 2096; this.onCommitOption(); } } - this.state = 2146; + this.state = 2100; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 166, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 162, this.context) ) { case 1: { - this.state = 2145; + this.state = 2099; this.optTableSpace(); } break; @@ -11179,66 +10966,66 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_OF: { - this.state = 2148; + this.state = 2102; this.match(PostgreSqlParser.KW_OF); - this.state = 2149; - this.any_name(); - this.state = 2151; + this.state = 2103; + this.anyName(); + this.state = 2105; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 167, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 163, this.context) ) { case 1: { - this.state = 2150; + this.state = 2104; this.optTypedTableElEmentList(); } break; } - this.state = 2154; + this.state = 2108; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 168, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 164, this.context) ) { case 1: { - this.state = 2153; + this.state = 2107; this.partitionSpec(); } break; } - this.state = 2157; + this.state = 2111; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 2156; - this.table_access_method_clause(); + this.state = 2110; + this.tableAccessMethodClause(); } } - this.state = 2160; + this.state = 2114; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 170, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 166, this.context) ) { case 1: { - this.state = 2159; + this.state = 2113; this.optWith(); } break; } - this.state = 2163; + this.state = 2117; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 80) { { - this.state = 2162; + this.state = 2116; this.onCommitOption(); } } - this.state = 2166; + this.state = 2120; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 172, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 168, this.context) ) { case 1: { - this.state = 2165; + this.state = 2119; this.optTableSpace(); } break; @@ -11247,70 +11034,70 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_PARTITION: { - this.state = 2168; + this.state = 2122; this.match(PostgreSqlParser.KW_PARTITION); - this.state = 2169; + this.state = 2123; this.match(PostgreSqlParser.KW_OF); - this.state = 2170; - this.qualified_name(); - this.state = 2172; + this.state = 2124; + this.qualifiedName(); + this.state = 2126; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 2171; + this.state = 2125; this.optTypedTableElEmentList(); } } - this.state = 2174; + this.state = 2128; this.partitionBoundSpec(); - this.state = 2176; + this.state = 2130; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 174, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 170, this.context) ) { case 1: { - this.state = 2175; + this.state = 2129; this.partitionSpec(); } break; } - this.state = 2179; + this.state = 2133; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 2178; - this.table_access_method_clause(); + this.state = 2132; + this.tableAccessMethodClause(); } } - this.state = 2182; + this.state = 2136; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 176, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 172, this.context) ) { case 1: { - this.state = 2181; + this.state = 2135; this.optWith(); } break; } - this.state = 2185; + this.state = 2139; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 80) { { - this.state = 2184; + this.state = 2138; this.onCommitOption(); } } - this.state = 2188; + this.state = 2142; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 178, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 174, this.context) ) { case 1: { - this.state = 2187; + this.state = 2141; this.optTableSpace(); } break; @@ -11338,23 +11125,23 @@ export class PostgreSqlParser extends SQLParserBase { } public optTemp(): OptTempContext { let localContext = new OptTempContext(this.context, this.state); - this.enterRule(localContext, 124, PostgreSqlParser.RULE_optTemp); + this.enterRule(localContext, 116, PostgreSqlParser.RULE_optTemp); let _la: number; try { - this.state = 2197; + this.state = 2151; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_TEMPORARY: this.enterOuterAlt(localContext, 1); { - this.state = 2192; + this.state = 2146; this.match(PostgreSqlParser.KW_TEMPORARY); } break; case PostgreSqlParser.KW_TEMP: this.enterOuterAlt(localContext, 2); { - this.state = 2193; + this.state = 2147; this.match(PostgreSqlParser.KW_TEMP); } break; @@ -11362,7 +11149,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_LOCAL: this.enterOuterAlt(localContext, 3); { - this.state = 2194; + this.state = 2148; _la = this.tokenStream.LA(1); if(!(_la === 213 || _la === 254)) { this.errorHandler.recoverInline(this); @@ -11371,7 +11158,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2195; + this.state = 2149; _la = this.tokenStream.LA(1); if(!(_la === 352 || _la === 354)) { this.errorHandler.recoverInline(this); @@ -11385,7 +11172,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_UNLOGGED: this.enterOuterAlt(localContext, 4); { - this.state = 2196; + this.state = 2150; this.match(PostgreSqlParser.KW_UNLOGGED); } break; @@ -11409,32 +11196,32 @@ export class PostgreSqlParser extends SQLParserBase { } public optTypedTableElEmentList(): OptTypedTableElEmentListContext { let localContext = new OptTypedTableElEmentListContext(this.context, this.state); - this.enterRule(localContext, 126, PostgreSqlParser.RULE_optTypedTableElEmentList); + this.enterRule(localContext, 118, PostgreSqlParser.RULE_optTypedTableElEmentList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2199; + this.state = 2153; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2200; + this.state = 2154; this.typedTableElement(); - this.state = 2205; + this.state = 2159; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 2201; + this.state = 2155; this.match(PostgreSqlParser.COMMA); - this.state = 2202; + this.state = 2156; this.typedTableElement(); } } - this.state = 2207; + this.state = 2161; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 2208; + this.state = 2162; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -11454,26 +11241,26 @@ export class PostgreSqlParser extends SQLParserBase { } public tableElementList(): TableElementListContext { let localContext = new TableElementListContext(this.context, this.state); - this.enterRule(localContext, 128, PostgreSqlParser.RULE_tableElementList); + this.enterRule(localContext, 120, PostgreSqlParser.RULE_tableElementList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2210; + this.state = 2164; this.tableElement(); - this.state = 2215; + this.state = 2169; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 2211; + this.state = 2165; this.match(PostgreSqlParser.COMMA); - this.state = 2212; + this.state = 2166; this.tableElement(); } } - this.state = 2217; + this.state = 2171; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -11495,52 +11282,52 @@ export class PostgreSqlParser extends SQLParserBase { } public tableElement(): TableElementContext { let localContext = new TableElementContext(this.context, this.state); - this.enterRule(localContext, 130, PostgreSqlParser.RULE_tableElement); + this.enterRule(localContext, 122, PostgreSqlParser.RULE_tableElement); let _la: number; try { - this.state = 2233; + this.state = 2187; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 185, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 181, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 2220; + this.state = 2174; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 45) { { - this.state = 2218; + this.state = 2172; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 2219; + this.state = 2173; this.colId(); } } - this.state = 2222; + this.state = 2176; this.constraintElem(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 2223; + this.state = 2177; this.column_def(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 2224; + this.state = 2178; this.match(PostgreSqlParser.KW_LIKE); - this.state = 2225; - this.qualified_name(); - this.state = 2230; + this.state = 2179; + this.qualifiedName(); + this.state = 2184; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 200 || _la === 224) { { { - this.state = 2226; + this.state = 2180; _la = this.tokenStream.LA(1); if(!(_la === 200 || _la === 224)) { this.errorHandler.recoverInline(this); @@ -11549,11 +11336,11 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2227; + this.state = 2181; this.tableLikeOption(); } } - this.state = 2232; + this.state = 2186; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -11577,40 +11364,40 @@ export class PostgreSqlParser extends SQLParserBase { } public typedTableElement(): TypedTableElementContext { let localContext = new TypedTableElementContext(this.context, this.state); - this.enterRule(localContext, 132, PostgreSqlParser.RULE_typedTableElement); + this.enterRule(localContext, 124, PostgreSqlParser.RULE_typedTableElement); let _la: number; try { - this.state = 2251; + this.state = 2205; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 189, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 185, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 2235; - this.column_name_create(); - this.state = 2238; + this.state = 2189; + this.columnNameCreate(); + this.state = 2192; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 2236; + this.state = 2190; this.match(PostgreSqlParser.KW_WITH); - this.state = 2237; + this.state = 2191; this.match(PostgreSqlParser.KW_OPTIONS); } } - this.state = 2243; + this.state = 2197; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 2059) !== 0) || ((((_la - 77)) & ~0x1F) === 0 && ((1 << (_la - 77)) & 2097923) !== 0) || _la === 438) { { { - this.state = 2240; + this.state = 2194; this.colConstraint(); } } - this.state = 2245; + this.state = 2199; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -11619,19 +11406,19 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 2248; + this.state = 2202; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 45) { { - this.state = 2246; + this.state = 2200; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 2247; + this.state = 2201; this.colId(); } } - this.state = 2250; + this.state = 2204; this.constraintElem(); } break; @@ -11653,69 +11440,69 @@ export class PostgreSqlParser extends SQLParserBase { } public column_def(): Column_defContext { let localContext = new Column_defContext(this.context, this.state); - this.enterRule(localContext, 134, PostgreSqlParser.RULE_column_def); + this.enterRule(localContext, 126, PostgreSqlParser.RULE_column_def); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 2253; - this.column_name_create(); - this.state = 2254; + this.state = 2207; + this.columnNameCreate(); + this.state = 2208; localContext._colType = this.typename(); - this.state = 2256; + this.state = 2210; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 190, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 186, this.context) ) { case 1: { - this.state = 2255; - this.create_generic_options(); + this.state = 2209; + this.createGenericOptions(); } break; } - this.state = 2267; + this.state = 2221; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 192, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 188, this.context) ) { case 1: { - this.state = 2258; + this.state = 2212; this.match(PostgreSqlParser.KW_STORAGE); - this.state = 2265; + this.state = 2219; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 191, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 187, this.context) ) { case 1: { - this.state = 2259; + this.state = 2213; this.match(PostgreSqlParser.KW_PLAIN); } break; case 2: { - this.state = 2260; + this.state = 2214; this.match(PostgreSqlParser.KW_EXTERNAL); } break; case 3: { - this.state = 2261; + this.state = 2215; this.match(PostgreSqlParser.KW_EXTENDED); } break; case 4: { - this.state = 2262; + this.state = 2216; this.match(PostgreSqlParser.KW_MAIN); } break; case 5: { - this.state = 2263; + this.state = 2217; this.match(PostgreSqlParser.KW_DEFAULT); } break; case 6: { - this.state = 2264; + this.state = 2218; this.colId(); } break; @@ -11723,55 +11510,55 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 2271; + this.state = 2225; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 543) { { - this.state = 2269; + this.state = 2223; this.match(PostgreSqlParser.KW_COMPRESSION); - this.state = 2270; + this.state = 2224; this.colId(); } } - this.state = 2274; + this.state = 2228; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 194, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 190, this.context) ) { case 1: { - this.state = 2273; - this.opt_collate_clause(); + this.state = 2227; + this.collateClause(); } break; } - this.state = 2278; + this.state = 2232; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 195, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 191, this.context) ) { case 1: { - this.state = 2276; + this.state = 2230; this.match(PostgreSqlParser.KW_WITH); - this.state = 2277; + this.state = 2231; this.match(PostgreSqlParser.KW_OPTIONS); } break; } - this.state = 2283; + this.state = 2237; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 196, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 192, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 2280; + this.state = 2234; this.colConstraint(); } } } - this.state = 2285; + this.state = 2239; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 196, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 192, this.context); } } } @@ -11791,53 +11578,53 @@ export class PostgreSqlParser extends SQLParserBase { } public colConstraint(): ColConstraintContext { let localContext = new ColConstraintContext(this.context, this.state); - this.enterRule(localContext, 136, PostgreSqlParser.RULE_colConstraint); + this.enterRule(localContext, 128, PostgreSqlParser.RULE_colConstraint); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2288; + this.state = 2242; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 45) { { - this.state = 2286; + this.state = 2240; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 2287; + this.state = 2241; this.colId(); } } - this.state = 2290; + this.state = 2244; this.colConstraintElem(); - this.state = 2295; + this.state = 2249; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 199, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 195, this.context) ) { case 1: { - this.state = 2292; + this.state = 2246; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 2291; + this.state = 2245; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 2294; + this.state = 2248; this.match(PostgreSqlParser.KW_DEFERRABLE); } break; } - this.state = 2299; + this.state = 2253; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 69) { { - this.state = 2297; + this.state = 2251; this.match(PostgreSqlParser.KW_INITIALLY); - this.state = 2298; + this.state = 2252; _la = this.tokenStream.LA(1); if(!(_la === 180 || _la === 221)) { this.errorHandler.recoverInline(this); @@ -11867,50 +11654,50 @@ export class PostgreSqlParser extends SQLParserBase { } public colConstraintElem(): ColConstraintElemContext { let localContext = new ColConstraintElemContext(this.context, this.state); - this.enterRule(localContext, 138, PostgreSqlParser.RULE_colConstraintElem); + this.enterRule(localContext, 130, PostgreSqlParser.RULE_colConstraintElem); let _la: number; try { - this.state = 2381; + this.state = 2335; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 218, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 214, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 2302; + this.state = 2256; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 2301; + this.state = 2255; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 2304; + this.state = 2258; this.match(PostgreSqlParser.KW_NULL); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 2305; + this.state = 2259; this.match(PostgreSqlParser.KW_UNIQUE); - this.state = 2307; + this.state = 2261; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 202, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 198, this.context) ) { case 1: { - this.state = 2306; - this.opt_definition(); + this.state = 2260; + this.optDefinition(); } break; } - this.state = 2310; + this.state = 2264; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 2309; + this.state = 2263; this.optConstableSpace(); } } @@ -11920,59 +11707,59 @@ export class PostgreSqlParser extends SQLParserBase { case 3: this.enterOuterAlt(localContext, 3); { - this.state = 2312; + this.state = 2266; this.match(PostgreSqlParser.KW_UNIQUE); - this.state = 2318; + this.state = 2272; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 205, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 201, this.context) ) { case 1: { - this.state = 2313; + this.state = 2267; this.match(PostgreSqlParser.KW_NULLS); - this.state = 2315; + this.state = 2269; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 2314; + this.state = 2268; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 2317; + this.state = 2271; this.match(PostgreSqlParser.KW_DISTINCT); } break; } { - this.state = 2322; + this.state = 2276; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 206, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 202, this.context) ) { case 1: { - this.state = 2320; + this.state = 2274; this.match(PostgreSqlParser.KW_INCLUDE); - this.state = 2321; - this.index_params(); + this.state = 2275; + this.indexParams(); } break; } - this.state = 2325; + this.state = 2279; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 207, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 203, this.context) ) { case 1: { - this.state = 2324; - this.with_clause(); + this.state = 2278; + this.withClause(); } break; } - this.state = 2328; + this.state = 2282; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 2327; + this.state = 2281; this.optConstableSpace(); } } @@ -11983,26 +11770,26 @@ export class PostgreSqlParser extends SQLParserBase { case 4: this.enterOuterAlt(localContext, 4); { - this.state = 2330; + this.state = 2284; this.match(PostgreSqlParser.KW_PRIMARY); - this.state = 2331; + this.state = 2285; this.match(PostgreSqlParser.KW_KEY); - this.state = 2333; + this.state = 2287; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 209, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 205, this.context) ) { case 1: { - this.state = 2332; - this.opt_definition(); + this.state = 2286; + this.optDefinition(); } break; } - this.state = 2336; + this.state = 2290; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 2335; + this.state = 2289; this.optConstableSpace(); } } @@ -12012,22 +11799,22 @@ export class PostgreSqlParser extends SQLParserBase { case 5: this.enterOuterAlt(localContext, 5); { - this.state = 2338; + this.state = 2292; this.match(PostgreSqlParser.KW_CHECK); - this.state = 2339; + this.state = 2293; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2340; + this.state = 2294; this.expression(); - this.state = 2341; + this.state = 2295; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 2344; + this.state = 2298; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 211, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 207, this.context) ) { case 1: { - this.state = 2342; + this.state = 2296; this.match(PostgreSqlParser.KW_NO); - this.state = 2343; + this.state = 2297; this.match(PostgreSqlParser.KW_INHERIT); } break; @@ -12037,50 +11824,50 @@ export class PostgreSqlParser extends SQLParserBase { case 6: this.enterOuterAlt(localContext, 6); { - this.state = 2346; + this.state = 2300; this.match(PostgreSqlParser.KW_DEFAULT); - this.state = 2347; + this.state = 2301; this.primaryExpression(0); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 2348; + this.state = 2302; this.match(PostgreSqlParser.KW_GENERATED); - this.state = 2349; - this.generated_when(); - this.state = 2350; + this.state = 2303; + this.generatedWhen(); + this.state = 2304; this.match(PostgreSqlParser.KW_AS); - this.state = 2367; + this.state = 2321; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_IDENTITY: { - this.state = 2351; + this.state = 2305; this.match(PostgreSqlParser.KW_IDENTITY); - this.state = 2360; + this.state = 2314; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 213, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 209, this.context) ) { case 1: { - this.state = 2352; + this.state = 2306; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2354; + this.state = 2308; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 2353; + this.state = 2307; this.seqOptElem(); } } - this.state = 2356; + this.state = 2310; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 36 || _la === 148 || _la === 225 || ((((_la - 260)) & ~0x1F) === 0 && ((1 << (_la - 260)) & 2097669) !== 0) || ((((_la - 314)) & ~0x1F) === 0 && ((1 << (_la - 314)) & 67125249) !== 0)); - this.state = 2358; + this.state = 2312; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -12089,13 +11876,13 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.OPEN_PAREN: { - this.state = 2362; + this.state = 2316; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2363; + this.state = 2317; this.expression(); - this.state = 2364; + this.state = 2318; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 2365; + this.state = 2319; this.match(PostgreSqlParser.KW_STORED); } break; @@ -12107,37 +11894,37 @@ export class PostgreSqlParser extends SQLParserBase { case 8: this.enterOuterAlt(localContext, 8); { - this.state = 2369; + this.state = 2323; this.match(PostgreSqlParser.KW_REFERENCES); - this.state = 2370; - this.qualified_name(); - this.state = 2372; + this.state = 2324; + this.qualifiedName(); + this.state = 2326; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 215, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 211, this.context) ) { case 1: { - this.state = 2371; - this.opt_column_list(); + this.state = 2325; + this.optColumnList(); } break; } - this.state = 2375; + this.state = 2329; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 216, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 212, this.context) ) { case 1: { - this.state = 2374; - this.key_match(); + this.state = 2328; + this.keyMatch(); } break; } - this.state = 2378; + this.state = 2332; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 80) { { - this.state = 2377; - this.key_actions(); + this.state = 2331; + this.keyActions(); } } @@ -12146,8 +11933,8 @@ export class PostgreSqlParser extends SQLParserBase { case 9: this.enterOuterAlt(localContext, 9); { - this.state = 2380; - this.opt_collate_clause(); + this.state = 2334; + this.collateClause(); } break; } @@ -12166,26 +11953,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public generated_when(): Generated_whenContext { - let localContext = new Generated_whenContext(this.context, this.state); - this.enterRule(localContext, 140, PostgreSqlParser.RULE_generated_when); + public generatedWhen(): GeneratedWhenContext { + let localContext = new GeneratedWhenContext(this.context, this.state); + this.enterRule(localContext, 132, PostgreSqlParser.RULE_generatedWhen); try { - this.state = 2386; + this.state = 2340; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ALWAYS: this.enterOuterAlt(localContext, 1); { - this.state = 2383; + this.state = 2337; this.match(PostgreSqlParser.KW_ALWAYS); } break; case PostgreSqlParser.KW_BY: this.enterOuterAlt(localContext, 2); { - this.state = 2384; + this.state = 2338; this.match(PostgreSqlParser.KW_BY); - this.state = 2385; + this.state = 2339; this.match(PostgreSqlParser.KW_DEFAULT); } break; @@ -12209,12 +11996,12 @@ export class PostgreSqlParser extends SQLParserBase { } public tableLikeOption(): TableLikeOptionContext { let localContext = new TableLikeOptionContext(this.context, this.state); - this.enterRule(localContext, 142, PostgreSqlParser.RULE_tableLikeOption); + this.enterRule(localContext, 134, PostgreSqlParser.RULE_tableLikeOption); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2388; + this.state = 2342; _la = this.tokenStream.LA(1); if(!(_la === 30 || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 524321) !== 0) || _la === 219 || _la === 227 || _la === 342 || _la === 345 || _la === 438)) { this.errorHandler.recoverInline(this); @@ -12241,39 +12028,39 @@ export class PostgreSqlParser extends SQLParserBase { } public constraintElem(): ConstraintElemContext { let localContext = new ConstraintElemContext(this.context, this.state); - this.enterRule(localContext, 144, PostgreSqlParser.RULE_constraintElem); + this.enterRule(localContext, 136, PostgreSqlParser.RULE_constraintElem); let _la: number; try { let alternative: number; - this.state = 2486; + this.state = 2440; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_CHECK: this.enterOuterAlt(localContext, 1); { - this.state = 2390; + this.state = 2344; this.match(PostgreSqlParser.KW_CHECK); - this.state = 2391; + this.state = 2345; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2392; + this.state = 2346; this.expression(); - this.state = 2393; + this.state = 2347; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 2397; + this.state = 2351; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 220, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 216, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 2394; + this.state = 2348; this.constraintAttributeElem(); } } } - this.state = 2399; + this.state = 2353; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 220, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 216, this.context); } } break; @@ -12281,21 +12068,21 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_UNIQUE: this.enterOuterAlt(localContext, 2); { - this.state = 2403; + this.state = 2357; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_UNIQUE: { - this.state = 2400; + this.state = 2354; this.match(PostgreSqlParser.KW_UNIQUE); } break; case PostgreSqlParser.KW_PRIMARY: { { - this.state = 2401; + this.state = 2355; this.match(PostgreSqlParser.KW_PRIMARY); - this.state = 2402; + this.state = 2356; this.match(PostgreSqlParser.KW_KEY); } } @@ -12303,80 +12090,80 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 2428; + this.state = 2382; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: { - this.state = 2405; - this.opt_column_list(); - this.state = 2407; + this.state = 2359; + this.optColumnList(); + this.state = 2361; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 222, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 218, this.context) ) { case 1: { - this.state = 2406; - this.opt_c_include(); + this.state = 2360; + this.columnListInclude(); } break; } - this.state = 2410; + this.state = 2364; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 223, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 219, this.context) ) { case 1: { - this.state = 2409; - this.opt_definition(); + this.state = 2363; + this.optDefinition(); } break; } - this.state = 2413; + this.state = 2367; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 2412; + this.state = 2366; this.optConstableSpace(); } } - this.state = 2418; + this.state = 2372; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 225, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 221, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 2415; + this.state = 2369; this.constraintAttributeElem(); } } } - this.state = 2420; + this.state = 2374; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 225, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 221, this.context); } } break; case PostgreSqlParser.KW_USING: { - this.state = 2421; + this.state = 2375; this.existingIndex(); - this.state = 2425; + this.state = 2379; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 226, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 222, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 2422; + this.state = 2376; this.constraintAttributeElem(); } } } - this.state = 2427; + this.state = 2381; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 226, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 222, this.context); } } break; @@ -12388,162 +12175,162 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_EXCLUDE: this.enterOuterAlt(localContext, 3); { - this.state = 2430; + this.state = 2384; this.match(PostgreSqlParser.KW_EXCLUDE); - this.state = 2432; + this.state = 2386; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 2431; - this.table_access_method_clause(); + this.state = 2385; + this.tableAccessMethodClause(); } } - this.state = 2434; + this.state = 2388; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2435; + this.state = 2389; this.exclusionConstraintElem(); - this.state = 2440; + this.state = 2394; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 2436; + this.state = 2390; this.match(PostgreSqlParser.COMMA); - this.state = 2437; + this.state = 2391; this.exclusionConstraintElem(); } } - this.state = 2442; + this.state = 2396; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 2443; + this.state = 2397; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 2445; + this.state = 2399; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 230, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 226, this.context) ) { case 1: { - this.state = 2444; - this.opt_c_include(); + this.state = 2398; + this.columnListInclude(); } break; } - this.state = 2448; + this.state = 2402; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 231, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 227, this.context) ) { case 1: { - this.state = 2447; - this.opt_definition(); + this.state = 2401; + this.optDefinition(); } break; } - this.state = 2451; + this.state = 2405; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 2450; + this.state = 2404; this.optConstableSpace(); } } - this.state = 2458; + this.state = 2412; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 103) { { - this.state = 2453; + this.state = 2407; this.match(PostgreSqlParser.KW_WHERE); - this.state = 2454; + this.state = 2408; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2455; + this.state = 2409; this.expression(); - this.state = 2456; + this.state = 2410; this.match(PostgreSqlParser.CLOSE_PAREN); } } - this.state = 2463; + this.state = 2417; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 234, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 230, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 2460; + this.state = 2414; this.constraintAttributeElem(); } } } - this.state = 2465; + this.state = 2419; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 234, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 230, this.context); } } break; case PostgreSqlParser.KW_FOREIGN: this.enterOuterAlt(localContext, 4); { - this.state = 2466; + this.state = 2420; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 2467; + this.state = 2421; this.match(PostgreSqlParser.KW_KEY); - this.state = 2468; - this.opt_column_list(); - this.state = 2469; + this.state = 2422; + this.optColumnList(); + this.state = 2423; this.match(PostgreSqlParser.KW_REFERENCES); - this.state = 2470; - this.qualified_name(); - this.state = 2472; + this.state = 2424; + this.qualifiedName(); + this.state = 2426; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 235, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 231, this.context) ) { case 1: { - this.state = 2471; - this.opt_column_list(); + this.state = 2425; + this.optColumnList(); } break; } - this.state = 2475; + this.state = 2429; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 236, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 232, this.context) ) { case 1: { - this.state = 2474; - this.key_match(); + this.state = 2428; + this.keyMatch(); } break; } - this.state = 2478; + this.state = 2432; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 80) { { - this.state = 2477; - this.key_actions(); + this.state = 2431; + this.keyActions(); } } - this.state = 2483; + this.state = 2437; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 238, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 234, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 2480; + this.state = 2434; this.constraintAttributeElem(); } } } - this.state = 2485; + this.state = 2439; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 238, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 234, this.context); } } break; @@ -12565,17 +12352,17 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_column_list(): Opt_column_listContext { - let localContext = new Opt_column_listContext(this.context, this.state); - this.enterRule(localContext, 146, PostgreSqlParser.RULE_opt_column_list); + public optColumnList(): OptColumnListContext { + let localContext = new OptColumnListContext(this.context, this.state); + this.enterRule(localContext, 138, PostgreSqlParser.RULE_optColumnList); try { this.enterOuterAlt(localContext, 1); { - this.state = 2488; + this.state = 2442; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2489; - this.column_list(); - this.state = 2490; + this.state = 2443; + this.columnList(); + this.state = 2444; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -12593,34 +12380,34 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_column_list_create(): Opt_column_list_createContext { - let localContext = new Opt_column_list_createContext(this.context, this.state); - this.enterRule(localContext, 148, PostgreSqlParser.RULE_opt_column_list_create); + public columnListCreate(): ColumnListCreateContext { + let localContext = new ColumnListCreateContext(this.context, this.state); + this.enterRule(localContext, 140, PostgreSqlParser.RULE_columnListCreate); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2492; + this.state = 2446; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2493; - this.column_name_create(); - this.state = 2498; + this.state = 2447; + this.columnNameCreate(); + this.state = 2452; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 2494; + this.state = 2448; this.match(PostgreSqlParser.COMMA); - this.state = 2495; - this.column_name_create(); + this.state = 2449; + this.columnNameCreate(); } } - this.state = 2500; + this.state = 2454; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 2501; + this.state = 2455; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -12638,32 +12425,32 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public column_list(): Column_listContext { - let localContext = new Column_listContext(this.context, this.state); - this.enterRule(localContext, 150, PostgreSqlParser.RULE_column_list); + public columnList(): ColumnListContext { + let localContext = new ColumnListContext(this.context, this.state); + this.enterRule(localContext, 142, PostgreSqlParser.RULE_columnList); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 2503; - this.column_name(); - this.state = 2508; + this.state = 2457; + this.columnName(); + this.state = 2462; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 241, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 237, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 2504; + this.state = 2458; this.match(PostgreSqlParser.COMMA); - this.state = 2505; - this.column_name(); + this.state = 2459; + this.columnName(); } } } - this.state = 2510; + this.state = 2464; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 241, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 237, this.context); } } } @@ -12681,16 +12468,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_c_include(): Opt_c_includeContext { - let localContext = new Opt_c_includeContext(this.context, this.state); - this.enterRule(localContext, 152, PostgreSqlParser.RULE_opt_c_include); + public columnListInclude(): ColumnListIncludeContext { + let localContext = new ColumnListIncludeContext(this.context, this.state); + this.enterRule(localContext, 144, PostgreSqlParser.RULE_columnListInclude); try { this.enterOuterAlt(localContext, 1); { - this.state = 2511; + this.state = 2465; this.match(PostgreSqlParser.KW_INCLUDE); - this.state = 2512; - this.opt_column_list(); + this.state = 2466; + this.optColumnList(); } } catch (re) { @@ -12707,16 +12494,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public key_match(): Key_matchContext { - let localContext = new Key_matchContext(this.context, this.state); - this.enterRule(localContext, 154, PostgreSqlParser.RULE_key_match); + public keyMatch(): KeyMatchContext { + let localContext = new KeyMatchContext(this.context, this.state); + this.enterRule(localContext, 146, PostgreSqlParser.RULE_keyMatch); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2514; + this.state = 2468; this.match(PostgreSqlParser.KW_MATCH); - this.state = 2515; + this.state = 2469; _la = this.tokenStream.LA(1); if(!(_la === 113 || _la === 284 || _la === 336)) { this.errorHandler.recoverInline(this); @@ -12743,32 +12530,32 @@ export class PostgreSqlParser extends SQLParserBase { } public exclusionConstraintElem(): ExclusionConstraintElemContext { let localContext = new ExclusionConstraintElemContext(this.context, this.state); - this.enterRule(localContext, 156, PostgreSqlParser.RULE_exclusionConstraintElem); + this.enterRule(localContext, 148, PostgreSqlParser.RULE_exclusionConstraintElem); try { this.enterOuterAlt(localContext, 1); { - this.state = 2517; - this.index_elem(); - this.state = 2518; + this.state = 2471; + this.indexElem(); + this.state = 2472; this.match(PostgreSqlParser.KW_WITH); - this.state = 2525; + this.state = 2479; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 242, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 238, this.context) ) { case 1: { - this.state = 2519; - this.any_operator(); + this.state = 2473; + this.anyOperator(); } break; case 2: { - this.state = 2520; + this.state = 2474; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 2521; + this.state = 2475; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2522; - this.any_operator(); - this.state = 2523; + this.state = 2476; + this.anyOperator(); + this.state = 2477; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -12789,26 +12576,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public key_actions(): Key_actionsContext { - let localContext = new Key_actionsContext(this.context, this.state); - this.enterRule(localContext, 158, PostgreSqlParser.RULE_key_actions); + public keyActions(): KeyActionsContext { + let localContext = new KeyActionsContext(this.context, this.state); + this.enterRule(localContext, 150, PostgreSqlParser.RULE_keyActions); let _la: number; try { - this.state = 2535; + this.state = 2489; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 245, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 241, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 2527; - this.key_update(); - this.state = 2529; + this.state = 2481; + this.keyUpdate(); + this.state = 2483; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 80) { { - this.state = 2528; - this.key_delete(); + this.state = 2482; + this.keyDelete(); } } @@ -12817,15 +12604,15 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 2531; - this.key_delete(); - this.state = 2533; + this.state = 2485; + this.keyDelete(); + this.state = 2487; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 80) { { - this.state = 2532; - this.key_update(); + this.state = 2486; + this.keyUpdate(); } } @@ -12847,18 +12634,18 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public key_update(): Key_updateContext { - let localContext = new Key_updateContext(this.context, this.state); - this.enterRule(localContext, 160, PostgreSqlParser.RULE_key_update); + public keyUpdate(): KeyUpdateContext { + let localContext = new KeyUpdateContext(this.context, this.state); + this.enterRule(localContext, 152, PostgreSqlParser.RULE_keyUpdate); try { this.enterOuterAlt(localContext, 1); { - this.state = 2537; + this.state = 2491; this.match(PostgreSqlParser.KW_ON); - this.state = 2538; + this.state = 2492; this.match(PostgreSqlParser.KW_UPDATE); - this.state = 2539; - this.key_action(); + this.state = 2493; + this.keyAction(); } } catch (re) { @@ -12875,18 +12662,18 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public key_delete(): Key_deleteContext { - let localContext = new Key_deleteContext(this.context, this.state); - this.enterRule(localContext, 162, PostgreSqlParser.RULE_key_delete); + public keyDelete(): KeyDeleteContext { + let localContext = new KeyDeleteContext(this.context, this.state); + this.enterRule(localContext, 154, PostgreSqlParser.RULE_keyDelete); try { this.enterOuterAlt(localContext, 1); { - this.state = 2541; + this.state = 2495; this.match(PostgreSqlParser.KW_ON); - this.state = 2542; + this.state = 2496; this.match(PostgreSqlParser.KW_DELETE); - this.state = 2543; - this.key_action(); + this.state = 2497; + this.keyAction(); } } catch (re) { @@ -12903,43 +12690,43 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public key_action(): Key_actionContext { - let localContext = new Key_actionContext(this.context, this.state); - this.enterRule(localContext, 164, PostgreSqlParser.RULE_key_action); + public keyAction(): KeyActionContext { + let localContext = new KeyActionContext(this.context, this.state); + this.enterRule(localContext, 156, PostgreSqlParser.RULE_keyAction); let _la: number; try { - this.state = 2554; + this.state = 2508; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_NO: this.enterOuterAlt(localContext, 1); { - this.state = 2545; + this.state = 2499; this.match(PostgreSqlParser.KW_NO); - this.state = 2546; + this.state = 2500; this.match(PostgreSqlParser.KW_ACTION); } break; case PostgreSqlParser.KW_RESTRICT: this.enterOuterAlt(localContext, 2); { - this.state = 2547; + this.state = 2501; this.match(PostgreSqlParser.KW_RESTRICT); } break; case PostgreSqlParser.KW_CASCADE: this.enterOuterAlt(localContext, 3); { - this.state = 2548; + this.state = 2502; this.match(PostgreSqlParser.KW_CASCADE); } break; case PostgreSqlParser.KW_SET: this.enterOuterAlt(localContext, 4); { - this.state = 2549; + this.state = 2503; this.match(PostgreSqlParser.KW_SET); - this.state = 2550; + this.state = 2504; _la = this.tokenStream.LA(1); if(!(_la === 53 || _la === 78)) { this.errorHandler.recoverInline(this); @@ -12948,13 +12735,13 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2552; + this.state = 2506; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 246, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 242, this.context) ) { case 1: { - this.state = 2551; - this.column_list(); + this.state = 2505; + this.columnList(); } break; } @@ -12980,17 +12767,17 @@ export class PostgreSqlParser extends SQLParserBase { } public optInherit(): OptInheritContext { let localContext = new OptInheritContext(this.context, this.state); - this.enterRule(localContext, 166, PostgreSqlParser.RULE_optInherit); + this.enterRule(localContext, 158, PostgreSqlParser.RULE_optInherit); try { this.enterOuterAlt(localContext, 1); { - this.state = 2556; + this.state = 2510; this.match(PostgreSqlParser.KW_INHERITS); - this.state = 2557; + this.state = 2511; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2558; - this.qualified_name_list(); - this.state = 2559; + this.state = 2512; + this.qualifiedNameList(); + this.state = 2513; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -13010,38 +12797,38 @@ export class PostgreSqlParser extends SQLParserBase { } public partitionSpec(): PartitionSpecContext { let localContext = new PartitionSpecContext(this.context, this.state); - this.enterRule(localContext, 168, PostgreSqlParser.RULE_partitionSpec); + this.enterRule(localContext, 160, PostgreSqlParser.RULE_partitionSpec); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2561; + this.state = 2515; this.match(PostgreSqlParser.KW_PARTITION); - this.state = 2562; + this.state = 2516; this.match(PostgreSqlParser.KW_BY); - this.state = 2563; + this.state = 2517; this.colId(); - this.state = 2564; + this.state = 2518; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2565; - this.part_elem(); - this.state = 2570; + this.state = 2519; + this.partElem(); + this.state = 2524; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 2566; + this.state = 2520; this.match(PostgreSqlParser.COMMA); - this.state = 2567; - this.part_elem(); + this.state = 2521; + this.partElem(); } } - this.state = 2572; + this.state = 2526; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 2573; + this.state = 2527; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -13059,58 +12846,58 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public part_elem(): Part_elemContext { - let localContext = new Part_elemContext(this.context, this.state); - this.enterRule(localContext, 170, PostgreSqlParser.RULE_part_elem); + public partElem(): PartElemContext { + let localContext = new PartElemContext(this.context, this.state); + this.enterRule(localContext, 162, PostgreSqlParser.RULE_partElem); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2581; + this.state = 2535; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 249, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 245, this.context) ) { case 1: { - this.state = 2575; - this.column_name(); + this.state = 2529; + this.columnName(); } break; case 2: { - this.state = 2576; - this.func_expr_windowless(); + this.state = 2530; + this.funcExprWindowless(); } break; case 3: { { - this.state = 2577; + this.state = 2531; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2578; + this.state = 2532; this.expression(); - this.state = 2579; + this.state = 2533; this.match(PostgreSqlParser.CLOSE_PAREN); } } break; } - this.state = 2584; + this.state = 2538; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 43) { { - this.state = 2583; - this.opt_collate_clause(); + this.state = 2537; + this.collateClause(); } } - this.state = 2587; + this.state = 2541; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 2586; - this.any_name(); + this.state = 2540; + this.anyName(); } } @@ -13130,15 +12917,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public table_access_method_clause(): Table_access_method_clauseContext { - let localContext = new Table_access_method_clauseContext(this.context, this.state); - this.enterRule(localContext, 172, PostgreSqlParser.RULE_table_access_method_clause); + public tableAccessMethodClause(): TableAccessMethodClauseContext { + let localContext = new TableAccessMethodClauseContext(this.context, this.state); + this.enterRule(localContext, 164, PostgreSqlParser.RULE_tableAccessMethodClause); try { this.enterOuterAlt(localContext, 1); { - this.state = 2589; + this.state = 2543; this.match(PostgreSqlParser.KW_USING); - this.state = 2590; + this.state = 2544; this.colId(); } } @@ -13158,25 +12945,25 @@ export class PostgreSqlParser extends SQLParserBase { } public optWith(): OptWithContext { let localContext = new OptWithContext(this.context, this.state); - this.enterRule(localContext, 174, PostgreSqlParser.RULE_optWith); + this.enterRule(localContext, 166, PostgreSqlParser.RULE_optWith); let _la: number; try { - this.state = 2596; + this.state = 2550; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 252, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 248, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 2592; + this.state = 2546; this.match(PostgreSqlParser.KW_WITH); - this.state = 2593; + this.state = 2547; this.relOptions(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 2594; + this.state = 2548; _la = this.tokenStream.LA(1); if(!(_la === 105 || _la === 379)) { this.errorHandler.recoverInline(this); @@ -13185,7 +12972,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2595; + this.state = 2549; this.match(PostgreSqlParser.KW_OIDS); } break; @@ -13207,36 +12994,36 @@ export class PostgreSqlParser extends SQLParserBase { } public onCommitOption(): OnCommitOptionContext { let localContext = new OnCommitOptionContext(this.context, this.state); - this.enterRule(localContext, 176, PostgreSqlParser.RULE_onCommitOption); + this.enterRule(localContext, 168, PostgreSqlParser.RULE_onCommitOption); try { this.enterOuterAlt(localContext, 1); { - this.state = 2598; + this.state = 2552; this.match(PostgreSqlParser.KW_ON); - this.state = 2599; + this.state = 2553; this.match(PostgreSqlParser.KW_COMMIT); - this.state = 2605; + this.state = 2559; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DROP: { - this.state = 2600; + this.state = 2554; this.match(PostgreSqlParser.KW_DROP); } break; case PostgreSqlParser.KW_DELETE: { - this.state = 2601; + this.state = 2555; this.match(PostgreSqlParser.KW_DELETE); - this.state = 2602; + this.state = 2556; this.match(PostgreSqlParser.KW_ROWS); } break; case PostgreSqlParser.KW_PRESERVE: { - this.state = 2603; + this.state = 2557; this.match(PostgreSqlParser.KW_PRESERVE); - this.state = 2604; + this.state = 2558; this.match(PostgreSqlParser.KW_ROWS); } break; @@ -13261,14 +13048,14 @@ export class PostgreSqlParser extends SQLParserBase { } public optTableSpace(): OptTableSpaceContext { let localContext = new OptTableSpaceContext(this.context, this.state); - this.enterRule(localContext, 178, PostgreSqlParser.RULE_optTableSpace); + this.enterRule(localContext, 170, PostgreSqlParser.RULE_optTableSpace); try { this.enterOuterAlt(localContext, 1); { - this.state = 2607; + this.state = 2561; this.match(PostgreSqlParser.KW_TABLESPACE); - this.state = 2608; - this.tablespace_name(); + this.state = 2562; + this.tableSpaceName(); } } catch (re) { @@ -13287,15 +13074,15 @@ export class PostgreSqlParser extends SQLParserBase { } public optConstableSpace(): OptConstableSpaceContext { let localContext = new OptConstableSpaceContext(this.context, this.state); - this.enterRule(localContext, 180, PostgreSqlParser.RULE_optConstableSpace); + this.enterRule(localContext, 172, PostgreSqlParser.RULE_optConstableSpace); try { this.enterOuterAlt(localContext, 1); { - this.state = 2610; + this.state = 2564; this.match(PostgreSqlParser.KW_USING); - this.state = 2611; + this.state = 2565; this.match(PostgreSqlParser.KW_INDEX); - this.state = 2612; + this.state = 2566; this.optTableSpace(); } } @@ -13315,15 +13102,15 @@ export class PostgreSqlParser extends SQLParserBase { } public existingIndex(): ExistingIndexContext { let localContext = new ExistingIndexContext(this.context, this.state); - this.enterRule(localContext, 182, PostgreSqlParser.RULE_existingIndex); + this.enterRule(localContext, 174, PostgreSqlParser.RULE_existingIndex); try { this.enterOuterAlt(localContext, 1); { - this.state = 2614; + this.state = 2568; this.match(PostgreSqlParser.KW_USING); - this.state = 2615; + this.state = 2569; this.match(PostgreSqlParser.KW_INDEX); - this.state = 2616; + this.state = 2570; this.colId(); } } @@ -13343,67 +13130,67 @@ export class PostgreSqlParser extends SQLParserBase { } public createStatsStmt(): CreateStatsStmtContext { let localContext = new CreateStatsStmtContext(this.context, this.state); - this.enterRule(localContext, 184, PostgreSqlParser.RULE_createStatsStmt); + this.enterRule(localContext, 176, PostgreSqlParser.RULE_createStatsStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2618; + this.state = 2572; this.match(PostgreSqlParser.KW_CREATE); - this.state = 2619; + this.state = 2573; this.match(PostgreSqlParser.KW_STATISTICS); - this.state = 2624; + this.state = 2578; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 2621; + this.state = 2575; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 254, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 250, this.context) ) { case 1: { - this.state = 2620; - this.opt_if_not_exists(); + this.state = 2574; + this.ifNotExists(); } break; } - this.state = 2623; - this.any_name(); + this.state = 2577; + this.anyName(); } } - this.state = 2627; + this.state = 2581; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 2626; - this.opt_column_list(); + this.state = 2580; + this.optColumnList(); } } - this.state = 2629; + this.state = 2583; this.match(PostgreSqlParser.KW_ON); - this.state = 2639; + this.state = 2593; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 258, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 254, this.context) ) { case 1: { - this.state = 2630; - this.column_expr(); - this.state = 2635; + this.state = 2584; + this.columnExpr(); + this.state = 2589; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 2631; + this.state = 2585; this.match(PostgreSqlParser.COMMA); - this.state = 2632; - this.column_expr(); + this.state = 2586; + this.columnExpr(); } } - this.state = 2637; + this.state = 2591; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -13411,13 +13198,13 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 2638; - this.expr_list(); + this.state = 2592; + this.exprList(); } break; } - this.state = 2641; - this.from_clause(); + this.state = 2595; + this.fromClause(); } } catch (re) { @@ -13436,31 +13223,31 @@ export class PostgreSqlParser extends SQLParserBase { } public alterStatsStmt(): AlterStatsStmtContext { let localContext = new AlterStatsStmtContext(this.context, this.state); - this.enterRule(localContext, 186, PostgreSqlParser.RULE_alterStatsStmt); + this.enterRule(localContext, 178, PostgreSqlParser.RULE_alterStatsStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 2643; + this.state = 2597; this.match(PostgreSqlParser.KW_ALTER); - this.state = 2644; + this.state = 2598; this.match(PostgreSqlParser.KW_STATISTICS); - this.state = 2646; + this.state = 2600; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 259, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 255, this.context) ) { case 1: { - this.state = 2645; - this.opt_if_exists(); + this.state = 2599; + this.ifExists(); } break; } - this.state = 2648; - this.any_name(); - this.state = 2649; + this.state = 2602; + this.anyName(); + this.state = 2603; this.match(PostgreSqlParser.KW_SET); - this.state = 2650; + this.state = 2604; this.match(PostgreSqlParser.KW_STATISTICS); - this.state = 2651; + this.state = 2605; this.signedConst(); } } @@ -13480,49 +13267,49 @@ export class PostgreSqlParser extends SQLParserBase { } public createAsStmt(): CreateAsStmtContext { let localContext = new CreateAsStmtContext(this.context, this.state); - this.enterRule(localContext, 188, PostgreSqlParser.RULE_createAsStmt); + this.enterRule(localContext, 180, PostgreSqlParser.RULE_createAsStmt); let _la: number; try { localContext = new QueryCreateTableContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 2653; + this.state = 2607; this.match(PostgreSqlParser.KW_CREATE); - this.state = 2655; + this.state = 2609; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 213 || _la === 254 || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 32773) !== 0)) { { - this.state = 2654; + this.state = 2608; this.optTemp(); } } - this.state = 2657; + this.state = 2611; this.match(PostgreSqlParser.KW_TABLE); - this.state = 2659; + this.state = 2613; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 261, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 257, this.context) ) { case 1: { - this.state = 2658; - this.opt_if_not_exists(); + this.state = 2612; + this.ifNotExists(); } break; } - this.state = 2661; - this.create_as_target(); - this.state = 2662; + this.state = 2615; + this.createAsTarget(); + this.state = 2616; this.match(PostgreSqlParser.KW_AS); - this.state = 2663; + this.state = 2617; this.selectStmt(); - this.state = 2665; + this.state = 2619; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 262, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 258, this.context) ) { case 1: { - this.state = 2664; - this.opt_with_data(); + this.state = 2618; + this.optWithData(); } break; } @@ -13542,61 +13329,61 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public create_as_target(): Create_as_targetContext { - let localContext = new Create_as_targetContext(this.context, this.state); - this.enterRule(localContext, 190, PostgreSqlParser.RULE_create_as_target); + public createAsTarget(): CreateAsTargetContext { + let localContext = new CreateAsTargetContext(this.context, this.state); + this.enterRule(localContext, 182, PostgreSqlParser.RULE_createAsTarget); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2667; - this.table_name_create(); - this.state = 2669; + this.state = 2621; + this.tableNameCreate(); + this.state = 2623; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 2668; - this.opt_column_list_create(); + this.state = 2622; + this.columnListCreate(); } } - this.state = 2672; + this.state = 2626; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 2671; - this.table_access_method_clause(); + this.state = 2625; + this.tableAccessMethodClause(); } } - this.state = 2675; + this.state = 2629; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105 || _la === 379) { { - this.state = 2674; + this.state = 2628; this.optWith(); } } - this.state = 2678; + this.state = 2632; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 80) { { - this.state = 2677; + this.state = 2631; this.onCommitOption(); } } - this.state = 2681; + this.state = 2635; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 351) { { - this.state = 2680; + this.state = 2634; this.optTableSpace(); } } @@ -13617,28 +13404,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_with_data(): Opt_with_dataContext { - let localContext = new Opt_with_dataContext(this.context, this.state); - this.enterRule(localContext, 192, PostgreSqlParser.RULE_opt_with_data); + public optWithData(): OptWithDataContext { + let localContext = new OptWithDataContext(this.context, this.state); + this.enterRule(localContext, 184, PostgreSqlParser.RULE_optWithData); try { this.enterOuterAlt(localContext, 1); { - this.state = 2683; + this.state = 2637; this.match(PostgreSqlParser.KW_WITH); - this.state = 2687; + this.state = 2641; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DATA: { - this.state = 2684; + this.state = 2638; this.match(PostgreSqlParser.KW_DATA); } break; case PostgreSqlParser.KW_NO: { - this.state = 2685; + this.state = 2639; this.match(PostgreSqlParser.KW_NO); - this.state = 2686; + this.state = 2640; this.match(PostgreSqlParser.KW_DATA); } break; @@ -13663,91 +13450,91 @@ export class PostgreSqlParser extends SQLParserBase { } public createMaterializedViewStmt(): CreateMaterializedViewStmtContext { let localContext = new CreateMaterializedViewStmtContext(this.context, this.state); - this.enterRule(localContext, 194, PostgreSqlParser.RULE_createMaterializedViewStmt); + this.enterRule(localContext, 186, PostgreSqlParser.RULE_createMaterializedViewStmt); let _la: number; try { localContext = new CreateMaterializedViewContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 2689; + this.state = 2643; this.match(PostgreSqlParser.KW_CREATE); - this.state = 2691; + this.state = 2645; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 367) { { - this.state = 2690; + this.state = 2644; this.match(PostgreSqlParser.KW_UNLOGGED); } } - this.state = 2693; + this.state = 2647; this.match(PostgreSqlParser.KW_MATERIALIZED); - this.state = 2694; + this.state = 2648; this.match(PostgreSqlParser.KW_VIEW); - this.state = 2696; + this.state = 2650; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 270, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 266, this.context) ) { case 1: { - this.state = 2695; - this.opt_if_not_exists(); + this.state = 2649; + this.ifNotExists(); } break; } - this.state = 2698; - this.view_name_create(); - this.state = 2700; + this.state = 2652; + this.viewNameCreate(); + this.state = 2654; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 2699; - this.opt_column_list_create(); + this.state = 2653; + this.columnListCreate(); } } - this.state = 2703; + this.state = 2657; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 2702; - this.table_access_method_clause(); + this.state = 2656; + this.tableAccessMethodClause(); } } - this.state = 2706; + this.state = 2660; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 2705; + this.state = 2659; this.optRelOptions(); } } - this.state = 2709; + this.state = 2663; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 351) { { - this.state = 2708; + this.state = 2662; this.optTableSpace(); } } - this.state = 2711; + this.state = 2665; this.match(PostgreSqlParser.KW_AS); - this.state = 2712; + this.state = 2666; this.selectStmt(); - this.state = 2714; + this.state = 2668; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 275, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 271, this.context) ) { case 1: { - this.state = 2713; - this.opt_with_data(); + this.state = 2667; + this.optWithData(); } break; } @@ -13769,36 +13556,36 @@ export class PostgreSqlParser extends SQLParserBase { } public refreshMaterializedViewStmt(): RefreshMaterializedViewStmtContext { let localContext = new RefreshMaterializedViewStmtContext(this.context, this.state); - this.enterRule(localContext, 196, PostgreSqlParser.RULE_refreshMaterializedViewStmt); + this.enterRule(localContext, 188, PostgreSqlParser.RULE_refreshMaterializedViewStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2716; + this.state = 2670; this.match(PostgreSqlParser.KW_REFRESH); - this.state = 2717; + this.state = 2671; this.match(PostgreSqlParser.KW_MATERIALIZED); - this.state = 2718; + this.state = 2672; this.match(PostgreSqlParser.KW_VIEW); - this.state = 2720; + this.state = 2674; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 109) { { - this.state = 2719; + this.state = 2673; this.match(PostgreSqlParser.KW_CONCURRENTLY); } } - this.state = 2722; - this.view_name(); - this.state = 2724; + this.state = 2676; + this.viewName(); + this.state = 2678; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 277, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 273, this.context) ) { case 1: { - this.state = 2723; - this.opt_with_data(); + this.state = 2677; + this.optWithData(); } break; } @@ -13820,44 +13607,44 @@ export class PostgreSqlParser extends SQLParserBase { } public createSeqStmt(): CreateSeqStmtContext { let localContext = new CreateSeqStmtContext(this.context, this.state); - this.enterRule(localContext, 198, PostgreSqlParser.RULE_createSeqStmt); + this.enterRule(localContext, 190, PostgreSqlParser.RULE_createSeqStmt); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 2726; + this.state = 2680; this.match(PostgreSqlParser.KW_CREATE); - this.state = 2728; + this.state = 2682; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 213 || _la === 254 || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 32773) !== 0)) { { - this.state = 2727; + this.state = 2681; this.optTemp(); } } - this.state = 2730; + this.state = 2684; this.match(PostgreSqlParser.KW_SEQUENCE); - this.state = 2732; + this.state = 2686; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 279, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 275, this.context) ) { case 1: { - this.state = 2731; - this.opt_if_not_exists(); + this.state = 2685; + this.ifNotExists(); } break; } - this.state = 2734; - this.qualified_name(); - this.state = 2740; + this.state = 2688; + this.qualifiedName(); + this.state = 2694; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 281, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 277, this.context) ) { case 1: { - this.state = 2736; + this.state = 2690; this.errorHandler.sync(this); alternative = 1; do { @@ -13865,7 +13652,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { { - this.state = 2735; + this.state = 2689; this.seqOptElem(); } } @@ -13873,9 +13660,9 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 2738; + this.state = 2692; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 280, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 276, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } break; @@ -13898,28 +13685,28 @@ export class PostgreSqlParser extends SQLParserBase { } public alterSeqStmt(): AlterSeqStmtContext { let localContext = new AlterSeqStmtContext(this.context, this.state); - this.enterRule(localContext, 200, PostgreSqlParser.RULE_alterSeqStmt); + this.enterRule(localContext, 192, PostgreSqlParser.RULE_alterSeqStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 2742; + this.state = 2696; this.match(PostgreSqlParser.KW_ALTER); - this.state = 2743; + this.state = 2697; this.match(PostgreSqlParser.KW_SEQUENCE); - this.state = 2745; + this.state = 2699; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 282, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 278, this.context) ) { case 1: { - this.state = 2744; - this.opt_if_exists(); + this.state = 2698; + this.ifExists(); } break; } - this.state = 2747; - this.qualified_name(); - this.state = 2749; + this.state = 2701; + this.qualifiedName(); + this.state = 2703; this.errorHandler.sync(this); alternative = 1; do { @@ -13927,7 +13714,7 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { { - this.state = 2748; + this.state = 2702; this.seqOptElem(); } } @@ -13935,9 +13722,9 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 2751; + this.state = 2705; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 283, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 279, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } } @@ -13957,32 +13744,32 @@ export class PostgreSqlParser extends SQLParserBase { } public seqOptElem(): SeqOptElemContext { let localContext = new SeqOptElemContext(this.context, this.state); - this.enterRule(localContext, 202, PostgreSqlParser.RULE_seqOptElem); + this.enterRule(localContext, 194, PostgreSqlParser.RULE_seqOptElem); let _la: number; try { - this.state = 2786; + this.state = 2740; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_AS: this.enterOuterAlt(localContext, 1); { - this.state = 2753; + this.state = 2707; this.match(PostgreSqlParser.KW_AS); - this.state = 2754; + this.state = 2708; this.simpleTypeName(); } break; case PostgreSqlParser.KW_CACHE: this.enterOuterAlt(localContext, 2); { - this.state = 2755; + this.state = 2709; this.match(PostgreSqlParser.KW_CACHE); - this.state = 2757; + this.state = 2711; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 12 || _la === 13 || _la === 574 || _la === 576) { { - this.state = 2756; + this.state = 2710; this.numericOnly(); } } @@ -13992,19 +13779,19 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_INCREMENT: this.enterOuterAlt(localContext, 3); { - this.state = 2759; + this.state = 2713; this.match(PostgreSqlParser.KW_INCREMENT); - this.state = 2761; + this.state = 2715; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 147) { { - this.state = 2760; + this.state = 2714; this.match(PostgreSqlParser.KW_BY); } } - this.state = 2763; + this.state = 2717; this.numericOnly(); } break; @@ -14012,7 +13799,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_MINVALUE: this.enterOuterAlt(localContext, 4); { - this.state = 2764; + this.state = 2718; _la = this.tokenStream.LA(1); if(!(_la === 260 || _la === 262)) { this.errorHandler.recoverInline(this); @@ -14021,16 +13808,16 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2765; + this.state = 2719; this.numericOnly(); } break; case PostgreSqlParser.KW_NO: this.enterOuterAlt(localContext, 5); { - this.state = 2766; + this.state = 2720; this.match(PostgreSqlParser.KW_NO); - this.state = 2767; + this.state = 2721; _la = this.tokenStream.LA(1); if(!(_la === 173 || _la === 260 || _la === 262)) { this.errorHandler.recoverInline(this); @@ -14044,65 +13831,65 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_OWNED: this.enterOuterAlt(localContext, 6); { - this.state = 2768; + this.state = 2722; this.match(PostgreSqlParser.KW_OWNED); - this.state = 2769; + this.state = 2723; this.match(PostgreSqlParser.KW_BY); - this.state = 2770; - this.column_name(); + this.state = 2724; + this.columnName(); } break; case PostgreSqlParser.KW_SEQUENCE: this.enterOuterAlt(localContext, 7); { - this.state = 2771; + this.state = 2725; this.match(PostgreSqlParser.KW_SEQUENCE); - this.state = 2772; + this.state = 2726; this.match(PostgreSqlParser.KW_NAME); - this.state = 2773; - this.any_name(); + this.state = 2727; + this.anyName(); } break; case PostgreSqlParser.KW_START: this.enterOuterAlt(localContext, 8); { - this.state = 2774; + this.state = 2728; this.match(PostgreSqlParser.KW_START); - this.state = 2776; + this.state = 2730; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 2775; + this.state = 2729; this.match(PostgreSqlParser.KW_WITH); } } - this.state = 2778; + this.state = 2732; this.numericOnly(); } break; case PostgreSqlParser.KW_RESTART: this.enterOuterAlt(localContext, 9); { - this.state = 2779; + this.state = 2733; this.match(PostgreSqlParser.KW_RESTART); - this.state = 2781; + this.state = 2735; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 287, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 283, this.context) ) { case 1: { - this.state = 2780; + this.state = 2734; this.match(PostgreSqlParser.KW_WITH); } break; } - this.state = 2784; + this.state = 2738; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 12 || _la === 13 || _la === 574 || _la === 576) { { - this.state = 2783; + this.state = 2737; this.numericOnly(); } } @@ -14129,21 +13916,21 @@ export class PostgreSqlParser extends SQLParserBase { } public numericOnly(): NumericOnlyContext { let localContext = new NumericOnlyContext(this.context, this.state); - this.enterRule(localContext, 204, PostgreSqlParser.RULE_numericOnly); + this.enterRule(localContext, 196, PostgreSqlParser.RULE_numericOnly); let _la: number; try { - this.state = 2793; + this.state = 2747; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 291, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 287, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 2789; + this.state = 2743; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 12 || _la === 13) { { - this.state = 2788; + this.state = 2742; _la = this.tokenStream.LA(1); if(!(_la === 12 || _la === 13)) { this.errorHandler.recoverInline(this); @@ -14155,14 +13942,14 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 2791; + this.state = 2745; this.match(PostgreSqlParser.Numeric); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 2792; + this.state = 2746; this.signedConst(); } break; @@ -14184,84 +13971,84 @@ export class PostgreSqlParser extends SQLParserBase { } public createProceduralLangStmt(): CreateProceduralLangStmtContext { let localContext = new CreateProceduralLangStmtContext(this.context, this.state); - this.enterRule(localContext, 206, PostgreSqlParser.RULE_createProceduralLangStmt); + this.enterRule(localContext, 198, PostgreSqlParser.RULE_createProceduralLangStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2795; + this.state = 2749; this.match(PostgreSqlParser.KW_CREATE); - this.state = 2797; + this.state = 2751; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 82) { { - this.state = 2796; - this.opt_or_replace(); + this.state = 2750; + this.orReplaceOpt(); } } - this.state = 2800; + this.state = 2754; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 359) { { - this.state = 2799; + this.state = 2753; this.match(PostgreSqlParser.KW_TRUSTED); } } - this.state = 2803; + this.state = 2757; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 295) { { - this.state = 2802; + this.state = 2756; this.match(PostgreSqlParser.KW_PROCEDURAL); } } - this.state = 2805; + this.state = 2759; this.match(PostgreSqlParser.KW_LANGUAGE); - this.state = 2806; + this.state = 2760; this.colId(); - this.state = 2819; + this.state = 2773; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 297, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 293, this.context) ) { case 1: { - this.state = 2807; + this.state = 2761; this.match(PostgreSqlParser.KW_HANDLER); - this.state = 2808; - this.any_name(); - this.state = 2811; + this.state = 2762; + this.anyName(); + this.state = 2765; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 295, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 291, this.context) ) { case 1: { - this.state = 2809; + this.state = 2763; this.match(PostgreSqlParser.KW_INLINE); - this.state = 2810; - this.any_name(); + this.state = 2764; + this.anyName(); } break; } - this.state = 2817; + this.state = 2771; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 296, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 292, this.context) ) { case 1: { - this.state = 2813; + this.state = 2767; this.match(PostgreSqlParser.KW_VALIDATOR); - this.state = 2814; - this.any_name(); + this.state = 2768; + this.anyName(); } break; case 2: { - this.state = 2815; + this.state = 2769; this.match(PostgreSqlParser.KW_NO); - this.state = 2816; + this.state = 2770; this.match(PostgreSqlParser.KW_VALIDATOR); } break; @@ -14287,37 +14074,37 @@ export class PostgreSqlParser extends SQLParserBase { } public createTableSpaceStmt(): CreateTableSpaceStmtContext { let localContext = new CreateTableSpaceStmtContext(this.context, this.state); - this.enterRule(localContext, 208, PostgreSqlParser.RULE_createTableSpaceStmt); + this.enterRule(localContext, 200, PostgreSqlParser.RULE_createTableSpaceStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2821; + this.state = 2775; this.match(PostgreSqlParser.KW_CREATE); - this.state = 2822; + this.state = 2776; this.optTableSpace(); - this.state = 2825; + this.state = 2779; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 282) { { - this.state = 2823; + this.state = 2777; this.match(PostgreSqlParser.KW_OWNER); - this.state = 2824; + this.state = 2778; this.roleSpec(); } } - this.state = 2827; + this.state = 2781; this.match(PostgreSqlParser.KW_LOCATION); - this.state = 2828; + this.state = 2782; this.stringConst(); - this.state = 2830; + this.state = 2784; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 299, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 295, this.context) ) { case 1: { - this.state = 2829; + this.state = 2783; this.optRelOptions(); } break; @@ -14340,59 +14127,59 @@ export class PostgreSqlParser extends SQLParserBase { } public createExtensionStmt(): CreateExtensionStmtContext { let localContext = new CreateExtensionStmtContext(this.context, this.state); - this.enterRule(localContext, 210, PostgreSqlParser.RULE_createExtensionStmt); + this.enterRule(localContext, 202, PostgreSqlParser.RULE_createExtensionStmt); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 2832; + this.state = 2786; this.match(PostgreSqlParser.KW_CREATE); - this.state = 2833; + this.state = 2787; this.match(PostgreSqlParser.KW_EXTENSION); - this.state = 2835; + this.state = 2789; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 300, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 296, this.context) ) { case 1: { - this.state = 2834; - this.opt_if_not_exists(); + this.state = 2788; + this.ifNotExists(); } break; } - this.state = 2837; + this.state = 2791; this.colId(); - this.state = 2839; + this.state = 2793; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 301, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 297, this.context) ) { case 1: { - this.state = 2838; + this.state = 2792; this.match(PostgreSqlParser.KW_WITH); } break; } - this.state = 2848; + this.state = 2802; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 303, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 299, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { - this.state = 2846; + this.state = 2800; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_SCHEMA: { - this.state = 2841; + this.state = 2795; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 2842; - this.schema_name(); + this.state = 2796; + this.schemaName(); } break; case PostgreSqlParser.KW_FROM: case PostgreSqlParser.KW_VERSION: { - this.state = 2843; + this.state = 2797; _la = this.tokenStream.LA(1); if(!(_la === 64 || _la === 375)) { this.errorHandler.recoverInline(this); @@ -14401,13 +14188,13 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2844; + this.state = 2798; this.nonReservedWordOrStringConst(); } break; case PostgreSqlParser.KW_CASCADE: { - this.state = 2845; + this.state = 2799; this.match(PostgreSqlParser.KW_CASCADE); } break; @@ -14416,9 +14203,9 @@ export class PostgreSqlParser extends SQLParserBase { } } } - this.state = 2850; + this.state = 2804; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 303, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 299, this.context); } } } @@ -14438,32 +14225,32 @@ export class PostgreSqlParser extends SQLParserBase { } public alterExtensionStmt(): AlterExtensionStmtContext { let localContext = new AlterExtensionStmtContext(this.context, this.state); - this.enterRule(localContext, 212, PostgreSqlParser.RULE_alterExtensionStmt); + this.enterRule(localContext, 204, PostgreSqlParser.RULE_alterExtensionStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2851; + this.state = 2805; this.match(PostgreSqlParser.KW_ALTER); - this.state = 2852; + this.state = 2806; this.match(PostgreSqlParser.KW_EXTENSION); - this.state = 2853; + this.state = 2807; this.colId(); - this.state = 2854; + this.state = 2808; this.match(PostgreSqlParser.KW_UPDATE); - this.state = 2859; + this.state = 2813; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 94) { { { - this.state = 2855; + this.state = 2809; this.match(PostgreSqlParser.KW_TO); - this.state = 2856; + this.state = 2810; this.nonReservedWordOrStringConst(); } } - this.state = 2861; + this.state = 2815; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -14485,18 +14272,18 @@ export class PostgreSqlParser extends SQLParserBase { } public alterExtensionContentsStmt(): AlterExtensionContentsStmtContext { let localContext = new AlterExtensionContentsStmtContext(this.context, this.state); - this.enterRule(localContext, 214, PostgreSqlParser.RULE_alterExtensionContentsStmt); + this.enterRule(localContext, 206, PostgreSqlParser.RULE_alterExtensionContentsStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2862; + this.state = 2816; this.match(PostgreSqlParser.KW_ALTER); - this.state = 2863; + this.state = 2817; this.match(PostgreSqlParser.KW_EXTENSION); - this.state = 2864; + this.state = 2818; this.colId(); - this.state = 2865; + this.state = 2819; _la = this.tokenStream.LA(1); if(!(_la === 133 || _la === 191)) { this.errorHandler.recoverInline(this); @@ -14505,44 +14292,44 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2898; + this.state = 2852; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 305, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 301, this.context) ) { case 1: { - this.state = 2866; + this.state = 2820; this.match(PostgreSqlParser.KW_TRANSFORM); - this.state = 2867; + this.state = 2821; this.match(PostgreSqlParser.KW_FOR); - this.state = 2868; + this.state = 2822; this.typename(); - this.state = 2869; + this.state = 2823; this.match(PostgreSqlParser.KW_LANGUAGE); - this.state = 2870; + this.state = 2824; this.colId(); } break; case 2: { - this.state = 2872; + this.state = 2826; this.match(PostgreSqlParser.KW_ROUTINE); - this.state = 2873; + this.state = 2827; this.routineWithArgTypes(); } break; case 3: { - this.state = 2874; + this.state = 2828; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 2875; + this.state = 2829; this.procedureWithArgTypes(); } break; case 4: { - this.state = 2876; + this.state = 2830; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 2877; + this.state = 2831; _la = this.tokenStream.LA(1); if(!(_la === 156 || _la === 206)) { this.errorHandler.recoverInline(this); @@ -14551,31 +14338,31 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2878; - this.any_name(); - this.state = 2879; - this.table_access_method_clause(); + this.state = 2832; + this.anyName(); + this.state = 2833; + this.tableAccessMethodClause(); } break; case 5: { - this.state = 2881; + this.state = 2835; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 2882; + this.state = 2836; this.operatorWithArgTypes(); } break; case 6: { - this.state = 2883; + this.state = 2837; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 2884; + this.state = 2838; this.functionWithArgTypes(); } break; case 7: { - this.state = 2885; + this.state = 2839; _la = this.tokenStream.LA(1); if(!(_la === 189 || _la === 360)) { this.errorHandler.recoverInline(this); @@ -14584,44 +14371,44 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2886; + this.state = 2840; this.typename(); } break; case 8: { - this.state = 2887; + this.state = 2841; this.match(PostgreSqlParser.KW_CAST); - this.state = 2888; + this.state = 2842; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2889; + this.state = 2843; this.typename(); - this.state = 2890; + this.state = 2844; this.match(PostgreSqlParser.KW_AS); - this.state = 2891; + this.state = 2845; this.typename(); - this.state = 2892; + this.state = 2846; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case 9: { - this.state = 2894; + this.state = 2848; this.match(PostgreSqlParser.KW_AGGREGATE); - this.state = 2895; + this.state = 2849; this.aggregateWithArgTypes(); } break; case 10: { - this.state = 2896; - this.object_type_name(); + this.state = 2850; + this.objectTypeName(); } break; case 11: { - this.state = 2897; - this.object_type_any_name(); + this.state = 2851; + this.objectTypeAnyName(); } break; } @@ -14643,27 +14430,27 @@ export class PostgreSqlParser extends SQLParserBase { } public createFdwStmt(): CreateFdwStmtContext { let localContext = new CreateFdwStmtContext(this.context, this.state); - this.enterRule(localContext, 216, PostgreSqlParser.RULE_createFdwStmt); + this.enterRule(localContext, 208, PostgreSqlParser.RULE_createFdwStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 2900; + this.state = 2854; this.match(PostgreSqlParser.KW_CREATE); - this.state = 2901; + this.state = 2855; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 2902; + this.state = 2856; this.match(PostgreSqlParser.KW_DATA); - this.state = 2903; + this.state = 2857; this.match(PostgreSqlParser.KW_WRAPPER); - this.state = 2904; + this.state = 2858; this.colId(); - this.state = 2910; + this.state = 2864; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 307, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 303, this.context) ) { case 1: { - this.state = 2906; + this.state = 2860; this.errorHandler.sync(this); alternative = 1; do { @@ -14671,28 +14458,28 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { { - this.state = 2905; - this.fdw_option(); + this.state = 2859; + this.fdwOption(); } } break; default: throw new antlr.NoViableAltException(this); } - this.state = 2908; + this.state = 2862; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 306, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 302, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } break; } - this.state = 2913; + this.state = 2867; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 308, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 304, this.context) ) { case 1: { - this.state = 2912; - this.create_generic_options(); + this.state = 2866; + this.createGenericOptions(); } break; } @@ -14712,19 +14499,19 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public fdw_option(): Fdw_optionContext { - let localContext = new Fdw_optionContext(this.context, this.state); - this.enterRule(localContext, 218, PostgreSqlParser.RULE_fdw_option); + public fdwOption(): FdwOptionContext { + let localContext = new FdwOptionContext(this.context, this.state); + this.enterRule(localContext, 210, PostgreSqlParser.RULE_fdwOption); let _la: number; try { - this.state = 2921; + this.state = 2875; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_HANDLER: case PostgreSqlParser.KW_VALIDATOR: this.enterOuterAlt(localContext, 1); { - this.state = 2915; + this.state = 2869; _la = this.tokenStream.LA(1); if(!(_la === 215 || _la === 373)) { this.errorHandler.recoverInline(this); @@ -14733,13 +14520,13 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2917; + this.state = 2871; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 309, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 305, this.context) ) { case 1: { - this.state = 2916; - this.any_name(); + this.state = 2870; + this.anyName(); } break; } @@ -14748,9 +14535,9 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_NO: this.enterOuterAlt(localContext, 2); { - this.state = 2919; + this.state = 2873; this.match(PostgreSqlParser.KW_NO); - this.state = 2920; + this.state = 2874; _la = this.tokenStream.LA(1); if(!(_la === 215 || _la === 373)) { this.errorHandler.recoverInline(this); @@ -14781,56 +14568,56 @@ export class PostgreSqlParser extends SQLParserBase { } public alterFdwStmt(): AlterFdwStmtContext { let localContext = new AlterFdwStmtContext(this.context, this.state); - this.enterRule(localContext, 220, PostgreSqlParser.RULE_alterFdwStmt); + this.enterRule(localContext, 212, PostgreSqlParser.RULE_alterFdwStmt); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 2923; + this.state = 2877; this.match(PostgreSqlParser.KW_ALTER); - this.state = 2924; + this.state = 2878; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 2925; + this.state = 2879; this.match(PostgreSqlParser.KW_DATA); - this.state = 2926; + this.state = 2880; this.match(PostgreSqlParser.KW_WRAPPER); - this.state = 2927; + this.state = 2881; this.colId(); - this.state = 2941; + this.state = 2895; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 314, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 310, this.context) ) { case 1: { - this.state = 2933; + this.state = 2887; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 215 || _la === 269 || _la === 373) { { - this.state = 2929; + this.state = 2883; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 2928; - this.fdw_option(); + this.state = 2882; + this.fdwOption(); } } - this.state = 2931; + this.state = 2885; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 215 || _la === 269 || _la === 373); } } - this.state = 2935; - this.alter_generic_options(); + this.state = 2889; + this.alterGenericOptions(); } break; case 2: { - this.state = 2937; + this.state = 2891; this.errorHandler.sync(this); alternative = 1; do { @@ -14838,17 +14625,17 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { { - this.state = 2936; - this.fdw_option(); + this.state = 2890; + this.fdwOption(); } } break; default: throw new antlr.NoViableAltException(this); } - this.state = 2939; + this.state = 2893; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 313, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 309, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } break; @@ -14869,36 +14656,36 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public create_generic_options(): Create_generic_optionsContext { - let localContext = new Create_generic_optionsContext(this.context, this.state); - this.enterRule(localContext, 222, PostgreSqlParser.RULE_create_generic_options); + public createGenericOptions(): CreateGenericOptionsContext { + let localContext = new CreateGenericOptionsContext(this.context, this.state); + this.enterRule(localContext, 214, PostgreSqlParser.RULE_createGenericOptions); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2943; + this.state = 2897; this.match(PostgreSqlParser.KW_OPTIONS); - this.state = 2944; + this.state = 2898; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2945; - this.generic_option_elem(); - this.state = 2950; + this.state = 2899; + this.genericOptionElem(); + this.state = 2904; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 2946; + this.state = 2900; this.match(PostgreSqlParser.COMMA); - this.state = 2947; - this.generic_option_elem(); + this.state = 2901; + this.genericOptionElem(); } } - this.state = 2952; + this.state = 2906; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 2953; + this.state = 2907; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -14916,36 +14703,36 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alter_generic_options(): Alter_generic_optionsContext { - let localContext = new Alter_generic_optionsContext(this.context, this.state); - this.enterRule(localContext, 224, PostgreSqlParser.RULE_alter_generic_options); + public alterGenericOptions(): AlterGenericOptionsContext { + let localContext = new AlterGenericOptionsContext(this.context, this.state); + this.enterRule(localContext, 216, PostgreSqlParser.RULE_alterGenericOptions); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2955; + this.state = 2909; this.match(PostgreSqlParser.KW_OPTIONS); - this.state = 2956; + this.state = 2910; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 2957; - this.alter_generic_option_elem(); - this.state = 2962; + this.state = 2911; + this.alterGenericOptionElem(); + this.state = 2916; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 2958; + this.state = 2912; this.match(PostgreSqlParser.COMMA); - this.state = 2959; - this.alter_generic_option_elem(); + this.state = 2913; + this.alterGenericOptionElem(); } } - this.state = 2964; + this.state = 2918; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 2965; + this.state = 2919; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -14963,14 +14750,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alter_generic_option_elem(): Alter_generic_option_elemContext { - let localContext = new Alter_generic_option_elemContext(this.context, this.state); - this.enterRule(localContext, 226, PostgreSqlParser.RULE_alter_generic_option_elem); + public alterGenericOptionElem(): AlterGenericOptionElemContext { + let localContext = new AlterGenericOptionElemContext(this.context, this.state); + this.enterRule(localContext, 218, PostgreSqlParser.RULE_alterGenericOptionElem); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2967; + this.state = 2921; _la = this.tokenStream.LA(1); if(!(_la === 133 || _la === 191 || _la === 333)) { this.errorHandler.recoverInline(this); @@ -14979,8 +14766,8 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 2968; - this.generic_option_elem(); + this.state = 2922; + this.genericOptionElem(); } } catch (re) { @@ -14997,15 +14784,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public generic_option_elem(): Generic_option_elemContext { - let localContext = new Generic_option_elemContext(this.context, this.state); - this.enterRule(localContext, 228, PostgreSqlParser.RULE_generic_option_elem); + public genericOptionElem(): GenericOptionElemContext { + let localContext = new GenericOptionElemContext(this.context, this.state); + this.enterRule(localContext, 220, PostgreSqlParser.RULE_genericOptionElem); try { this.enterOuterAlt(localContext, 1); { - this.state = 2970; + this.state = 2924; this.colLabel(); - this.state = 2971; + this.state = 2925; this.stringConst(); } } @@ -15025,64 +14812,64 @@ export class PostgreSqlParser extends SQLParserBase { } public createForeignServerStmt(): CreateForeignServerStmtContext { let localContext = new CreateForeignServerStmtContext(this.context, this.state); - this.enterRule(localContext, 230, PostgreSqlParser.RULE_createForeignServerStmt); + this.enterRule(localContext, 222, PostgreSqlParser.RULE_createForeignServerStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 2973; + this.state = 2927; this.match(PostgreSqlParser.KW_CREATE); - this.state = 2974; + this.state = 2928; this.match(PostgreSqlParser.KW_SERVER); - this.state = 2976; + this.state = 2930; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 317, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 313, this.context) ) { case 1: { - this.state = 2975; - this.opt_if_not_exists(); + this.state = 2929; + this.ifNotExists(); } break; } - this.state = 2978; + this.state = 2932; this.colId(); - this.state = 2981; + this.state = 2935; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 360) { { - this.state = 2979; + this.state = 2933; this.match(PostgreSqlParser.KW_TYPE); - this.state = 2980; + this.state = 2934; this.stringConst(); } } - this.state = 2984; + this.state = 2938; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 375) { { - this.state = 2983; - this.foreign_server_version(); + this.state = 2937; + this.foreignServerVersion(); } } - this.state = 2986; + this.state = 2940; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 2987; + this.state = 2941; this.match(PostgreSqlParser.KW_DATA); - this.state = 2988; + this.state = 2942; this.match(PostgreSqlParser.KW_WRAPPER); - this.state = 2989; + this.state = 2943; this.colId(); - this.state = 2991; + this.state = 2945; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 320, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 316, this.context) ) { case 1: { - this.state = 2990; - this.create_generic_options(); + this.state = 2944; + this.createGenericOptions(); } break; } @@ -15102,15 +14889,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public foreign_server_version(): Foreign_server_versionContext { - let localContext = new Foreign_server_versionContext(this.context, this.state); - this.enterRule(localContext, 232, PostgreSqlParser.RULE_foreign_server_version); + public foreignServerVersion(): ForeignServerVersionContext { + let localContext = new ForeignServerVersionContext(this.context, this.state); + this.enterRule(localContext, 224, PostgreSqlParser.RULE_foreignServerVersion); try { this.enterOuterAlt(localContext, 1); { - this.state = 2993; + this.state = 2947; this.match(PostgreSqlParser.KW_VERSION); - this.state = 2996; + this.state = 2950; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.StringConstant: @@ -15118,13 +14905,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.BeginDollarStringConstant: case PostgreSqlParser.EscapeStringConstant: { - this.state = 2994; + this.state = 2948; this.stringConst(); } break; case PostgreSqlParser.KW_NULL: { - this.state = 2995; + this.state = 2949; this.match(PostgreSqlParser.KW_NULL); } break; @@ -15149,36 +14936,36 @@ export class PostgreSqlParser extends SQLParserBase { } public alterForeignServerStmt(): AlterForeignServerStmtContext { let localContext = new AlterForeignServerStmtContext(this.context, this.state); - this.enterRule(localContext, 234, PostgreSqlParser.RULE_alterForeignServerStmt); + this.enterRule(localContext, 226, PostgreSqlParser.RULE_alterForeignServerStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 2998; + this.state = 2952; this.match(PostgreSqlParser.KW_ALTER); - this.state = 2999; + this.state = 2953; this.match(PostgreSqlParser.KW_SERVER); - this.state = 3000; + this.state = 2954; this.colId(); - this.state = 3006; + this.state = 2960; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_OPTIONS: { - this.state = 3001; - this.alter_generic_options(); + this.state = 2955; + this.alterGenericOptions(); } break; case PostgreSqlParser.KW_VERSION: { - this.state = 3002; - this.foreign_server_version(); - this.state = 3004; + this.state = 2956; + this.foreignServerVersion(); + this.state = 2958; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 322, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 318, this.context) ) { case 1: { - this.state = 3003; - this.alter_generic_options(); + this.state = 2957; + this.alterGenericOptions(); } break; } @@ -15205,69 +14992,69 @@ export class PostgreSqlParser extends SQLParserBase { } public createForeignTableStmt(): CreateForeignTableStmtContext { let localContext = new CreateForeignTableStmtContext(this.context, this.state); - this.enterRule(localContext, 236, PostgreSqlParser.RULE_createForeignTableStmt); + this.enterRule(localContext, 228, PostgreSqlParser.RULE_createForeignTableStmt); let _la: number; try { - this.state = 3047; + this.state = 3001; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 331, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 327, this.context) ) { case 1: localContext = new CreateForeignTableContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 3008; + this.state = 2962; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3009; + this.state = 2963; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 3010; + this.state = 2964; this.match(PostgreSqlParser.KW_TABLE); - this.state = 3012; + this.state = 2966; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 324, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 320, this.context) ) { case 1: { - this.state = 3011; - this.opt_if_not_exists(); + this.state = 2965; + this.ifNotExists(); } break; } - this.state = 3014; - this.table_name_create(); - this.state = 3015; + this.state = 2968; + this.tableNameCreate(); + this.state = 2969; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3017; + this.state = 2971; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 2099209) !== 0) || ((((_la - 85)) & ~0x1F) === 0 && ((1 << (_la - 85)) & 2147491841) !== 0) || ((((_la - 120)) & ~0x1F) === 0 && ((1 << (_la - 120)) & 4294966809) !== 0) || ((((_la - 152)) & ~0x1F) === 0 && ((1 << (_la - 152)) & 4294967295) !== 0) || ((((_la - 184)) & ~0x1F) === 0 && ((1 << (_la - 184)) & 4294967295) !== 0) || ((((_la - 216)) & ~0x1F) === 0 && ((1 << (_la - 216)) & 4290781183) !== 0) || ((((_la - 248)) & ~0x1F) === 0 && ((1 << (_la - 248)) & 4294967295) !== 0) || ((((_la - 280)) & ~0x1F) === 0 && ((1 << (_la - 280)) & 4294967295) !== 0) || ((((_la - 312)) & ~0x1F) === 0 && ((1 << (_la - 312)) & 4294967295) !== 0) || ((((_la - 344)) & ~0x1F) === 0 && ((1 << (_la - 344)) & 4294967295) !== 0) || ((((_la - 376)) & ~0x1F) === 0 && ((1 << (_la - 376)) & 4294967295) !== 0) || ((((_la - 408)) & ~0x1F) === 0 && ((1 << (_la - 408)) & 4294967295) !== 0) || ((((_la - 440)) & ~0x1F) === 0 && ((1 << (_la - 440)) & 4294950911) !== 0) || ((((_la - 473)) & ~0x1F) === 0 && ((1 << (_la - 473)) & 3221225471) !== 0) || ((((_la - 506)) & ~0x1F) === 0 && ((1 << (_la - 506)) & 286719) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 3016; + this.state = 2970; this.tableElementList(); } } - this.state = 3019; + this.state = 2973; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 3021; + this.state = 2975; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 238) { { - this.state = 3020; + this.state = 2974; this.optInherit(); } } - this.state = 3023; + this.state = 2977; this.match(PostgreSqlParser.KW_SERVER); - this.state = 3024; + this.state = 2978; this.colId(); - this.state = 3026; + this.state = 2980; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 327, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 323, this.context) ) { case 1: { - this.state = 3025; - this.create_generic_options(); + this.state = 2979; + this.createGenericOptions(); } break; } @@ -15277,53 +15064,53 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new CreatePartitionForeignTableContext(localContext); this.enterOuterAlt(localContext, 2); { - this.state = 3028; + this.state = 2982; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3029; + this.state = 2983; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 3030; + this.state = 2984; this.match(PostgreSqlParser.KW_TABLE); - this.state = 3032; + this.state = 2986; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 328, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 324, this.context) ) { case 1: { - this.state = 3031; - this.opt_if_not_exists(); + this.state = 2985; + this.ifNotExists(); } break; } - this.state = 3034; - this.table_name_create(); - this.state = 3035; + this.state = 2988; + this.tableNameCreate(); + this.state = 2989; this.match(PostgreSqlParser.KW_PARTITION); - this.state = 3036; + this.state = 2990; this.match(PostgreSqlParser.KW_OF); - this.state = 3037; - this.table_name(); - this.state = 3039; + this.state = 2991; + this.tableName(); + this.state = 2993; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 3038; + this.state = 2992; this.optTypedTableElEmentList(); } } - this.state = 3041; + this.state = 2995; this.partitionBoundSpec(); - this.state = 3042; + this.state = 2996; this.match(PostgreSqlParser.KW_SERVER); - this.state = 3043; + this.state = 2997; this.colId(); - this.state = 3045; + this.state = 2999; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 330, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 326, this.context) ) { case 1: { - this.state = 3044; - this.create_generic_options(); + this.state = 2998; + this.createGenericOptions(); } break; } @@ -15347,70 +15134,70 @@ export class PostgreSqlParser extends SQLParserBase { } public importForeignSchemaStmt(): ImportForeignSchemaStmtContext { let localContext = new ImportForeignSchemaStmtContext(this.context, this.state); - this.enterRule(localContext, 238, PostgreSqlParser.RULE_importForeignSchemaStmt); + this.enterRule(localContext, 230, PostgreSqlParser.RULE_importForeignSchemaStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3049; + this.state = 3003; this.match(PostgreSqlParser.KW_IMPORT); - this.state = 3050; + this.state = 3004; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 3051; + this.state = 3005; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 3052; - this.schema_name(); - this.state = 3062; + this.state = 3006; + this.schemaName(); + this.state = 3016; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 59 || _la === 74) { { - this.state = 3056; + this.state = 3010; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_LIMIT: { - this.state = 3053; + this.state = 3007; this.match(PostgreSqlParser.KW_LIMIT); - this.state = 3054; + this.state = 3008; this.match(PostgreSqlParser.KW_TO); } break; case PostgreSqlParser.KW_EXCEPT: { - this.state = 3055; + this.state = 3009; this.match(PostgreSqlParser.KW_EXCEPT); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 3058; + this.state = 3012; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3059; - this.relation_expr_list(); - this.state = 3060; + this.state = 3013; + this.relationExprList(); + this.state = 3014; this.match(PostgreSqlParser.CLOSE_PAREN); } } - this.state = 3064; + this.state = 3018; this.match(PostgreSqlParser.KW_FROM); - this.state = 3065; + this.state = 3019; this.match(PostgreSqlParser.KW_SERVER); - this.state = 3066; + this.state = 3020; this.colId(); - this.state = 3067; + this.state = 3021; this.match(PostgreSqlParser.KW_INTO); - this.state = 3068; + this.state = 3022; this.colId(); - this.state = 3070; + this.state = 3024; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 334, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 330, this.context) ) { case 1: { - this.state = 3069; - this.create_generic_options(); + this.state = 3023; + this.createGenericOptions(); } break; } @@ -15432,30 +15219,30 @@ export class PostgreSqlParser extends SQLParserBase { } public createUserMappingStmt(): CreateUserMappingStmtContext { let localContext = new CreateUserMappingStmtContext(this.context, this.state); - this.enterRule(localContext, 240, PostgreSqlParser.RULE_createUserMappingStmt); + this.enterRule(localContext, 232, PostgreSqlParser.RULE_createUserMappingStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3072; + this.state = 3026; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3073; + this.state = 3027; this.match(PostgreSqlParser.KW_USER); - this.state = 3074; + this.state = 3028; this.match(PostgreSqlParser.KW_MAPPING); - this.state = 3076; + this.state = 3030; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 220) { { - this.state = 3075; - this.opt_if_not_exists(); + this.state = 3029; + this.ifNotExists(); } } - this.state = 3078; + this.state = 3032; this.match(PostgreSqlParser.KW_FOR); - this.state = 3081; + this.state = 3035; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_CURRENT_ROLE: @@ -15877,30 +15664,30 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 3079; + this.state = 3033; this.roleSpec(); } break; case PostgreSqlParser.KW_USER: { - this.state = 3080; + this.state = 3034; this.match(PostgreSqlParser.KW_USER); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 3083; + this.state = 3037; this.match(PostgreSqlParser.KW_SERVER); - this.state = 3084; + this.state = 3038; this.colId(); - this.state = 3086; + this.state = 3040; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 337, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 333, this.context) ) { case 1: { - this.state = 3085; - this.create_generic_options(); + this.state = 3039; + this.createGenericOptions(); } break; } @@ -15922,19 +15709,19 @@ export class PostgreSqlParser extends SQLParserBase { } public alterUserMappingStmt(): AlterUserMappingStmtContext { let localContext = new AlterUserMappingStmtContext(this.context, this.state); - this.enterRule(localContext, 242, PostgreSqlParser.RULE_alterUserMappingStmt); + this.enterRule(localContext, 234, PostgreSqlParser.RULE_alterUserMappingStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 3088; + this.state = 3042; this.match(PostgreSqlParser.KW_ALTER); - this.state = 3089; + this.state = 3043; this.match(PostgreSqlParser.KW_USER); - this.state = 3090; + this.state = 3044; this.match(PostgreSqlParser.KW_MAPPING); - this.state = 3091; + this.state = 3045; this.match(PostgreSqlParser.KW_FOR); - this.state = 3094; + this.state = 3048; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_CURRENT_ROLE: @@ -16356,25 +16143,25 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 3092; + this.state = 3046; this.roleSpec(); } break; case PostgreSqlParser.KW_USER: { - this.state = 3093; + this.state = 3047; this.match(PostgreSqlParser.KW_USER); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 3096; + this.state = 3050; this.match(PostgreSqlParser.KW_SERVER); - this.state = 3097; + this.state = 3051; this.colId(); - this.state = 3098; - this.alter_generic_options(); + this.state = 3052; + this.alterGenericOptions(); } } catch (re) { @@ -16393,40 +16180,40 @@ export class PostgreSqlParser extends SQLParserBase { } public createPolicyStmt(): CreatePolicyStmtContext { let localContext = new CreatePolicyStmtContext(this.context, this.state); - this.enterRule(localContext, 244, PostgreSqlParser.RULE_createPolicyStmt); + this.enterRule(localContext, 236, PostgreSqlParser.RULE_createPolicyStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3100; + this.state = 3054; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3101; + this.state = 3055; this.match(PostgreSqlParser.KW_POLICY); - this.state = 3102; + this.state = 3056; this.colId(); - this.state = 3103; + this.state = 3057; this.match(PostgreSqlParser.KW_ON); - this.state = 3104; - this.qualified_name(); - this.state = 3111; + this.state = 3058; + this.qualifiedName(); + this.state = 3065; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 340, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 336, this.context) ) { case 1: { - this.state = 3105; + this.state = 3059; this.match(PostgreSqlParser.KW_AS); - this.state = 3109; + this.state = 3063; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_PERMISSIVE: { - this.state = 3106; + this.state = 3060; this.match(PostgreSqlParser.KW_PERMISSIVE); } break; case PostgreSqlParser.KW_RESTRICTIVE: { - this.state = 3107; + this.state = 3061; this.match(PostgreSqlParser.KW_RESTRICTIVE); } break; @@ -16774,7 +16561,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 3108; + this.state = 3062; this.identifier(); } break; @@ -16784,14 +16571,14 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 3115; + this.state = 3069; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 62) { { - this.state = 3113; + this.state = 3067; this.match(PostgreSqlParser.KW_FOR); - this.state = 3114; + this.state = 3068; _la = this.tokenStream.LA(1); if(!(_la === 30 || _la === 88 || _la === 182 || _la === 241 || _la === 369)) { this.errorHandler.recoverInline(this); @@ -16803,34 +16590,34 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 3119; + this.state = 3073; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 94) { { - this.state = 3117; + this.state = 3071; this.match(PostgreSqlParser.KW_TO); - this.state = 3118; - this.role_list(); + this.state = 3072; + this.roleList(); } } - this.state = 3122; + this.state = 3076; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 3121; + this.state = 3075; this.rowSecurityOptionalExpr(); } } - this.state = 3125; + this.state = 3079; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 344, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 340, this.context) ) { case 1: { - this.state = 3124; + this.state = 3078; this.rowSecurityOptionalWithCheck(); } break; @@ -16853,49 +16640,49 @@ export class PostgreSqlParser extends SQLParserBase { } public alterPolicyStmt(): AlterPolicyStmtContext { let localContext = new AlterPolicyStmtContext(this.context, this.state); - this.enterRule(localContext, 246, PostgreSqlParser.RULE_alterPolicyStmt); + this.enterRule(localContext, 238, PostgreSqlParser.RULE_alterPolicyStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3127; + this.state = 3081; this.match(PostgreSqlParser.KW_ALTER); - this.state = 3128; + this.state = 3082; this.match(PostgreSqlParser.KW_POLICY); - this.state = 3129; + this.state = 3083; this.colId(); - this.state = 3130; + this.state = 3084; this.match(PostgreSqlParser.KW_ON); - this.state = 3131; - this.qualified_name(); - this.state = 3134; + this.state = 3085; + this.qualifiedName(); + this.state = 3088; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 94) { { - this.state = 3132; + this.state = 3086; this.match(PostgreSqlParser.KW_TO); - this.state = 3133; - this.role_list(); + this.state = 3087; + this.roleList(); } } - this.state = 3137; + this.state = 3091; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 3136; + this.state = 3090; this.rowSecurityOptionalExpr(); } } - this.state = 3140; + this.state = 3094; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 347, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 343, this.context) ) { case 1: { - this.state = 3139; + this.state = 3093; this.rowSecurityOptionalWithCheck(); } break; @@ -16918,57 +16705,57 @@ export class PostgreSqlParser extends SQLParserBase { } public alterProcedureStmt(): AlterProcedureStmtContext { let localContext = new AlterProcedureStmtContext(this.context, this.state); - this.enterRule(localContext, 248, PostgreSqlParser.RULE_alterProcedureStmt); + this.enterRule(localContext, 240, PostgreSqlParser.RULE_alterProcedureStmt); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 3142; + this.state = 3096; this.match(PostgreSqlParser.KW_ALTER); - this.state = 3143; + this.state = 3097; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 3144; - this.procedure_name(); - this.state = 3146; + this.state = 3098; + this.procedureName(); + this.state = 3100; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 3145; - this.func_args(); + this.state = 3099; + this.funcArgs(); } } - this.state = 3174; + this.state = 3128; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 352, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 348, this.context) ) { case 1: { - this.state = 3148; - this.procedure_action(); - this.state = 3152; + this.state = 3102; + this.procedureAction(); + this.state = 3106; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 349, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 345, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 3149; - this.procedure_action(); + this.state = 3103; + this.procedureAction(); } } } - this.state = 3154; + this.state = 3108; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 349, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 345, this.context); } - this.state = 3156; + this.state = 3110; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 350, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 346, this.context) ) { case 1: { - this.state = 3155; + this.state = 3109; this.match(PostgreSqlParser.KW_RESTRICT); } break; @@ -16977,53 +16764,53 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 3158; + this.state = 3112; this.match(PostgreSqlParser.KW_RENAME); - this.state = 3159; + this.state = 3113; this.match(PostgreSqlParser.KW_TO); - this.state = 3160; - this.procedure_name_create(); + this.state = 3114; + this.procedureNameCreate(); } break; case 3: { - this.state = 3161; + this.state = 3115; this.match(PostgreSqlParser.KW_OWNER); - this.state = 3162; + this.state = 3116; this.match(PostgreSqlParser.KW_TO); - this.state = 3163; + this.state = 3117; this.roleSpec(); } break; case 4: { - this.state = 3164; + this.state = 3118; this.match(PostgreSqlParser.KW_SET); - this.state = 3165; + this.state = 3119; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 3166; - this.schema_name_create(); + this.state = 3120; + this.schemaNameCreate(); } break; case 5: { - this.state = 3168; + this.state = 3122; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 3167; + this.state = 3121; this.match(PostgreSqlParser.KW_NO); } } - this.state = 3170; + this.state = 3124; this.match(PostgreSqlParser.KW_DEPENDS); - this.state = 3171; + this.state = 3125; this.match(PostgreSqlParser.KW_ON); - this.state = 3172; + this.state = 3126; this.match(PostgreSqlParser.KW_EXTENSION); - this.state = 3173; + this.state = 3127; this.colId(); } break; @@ -17044,53 +16831,53 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public procedure_action(): Procedure_actionContext { - let localContext = new Procedure_actionContext(this.context, this.state); - this.enterRule(localContext, 250, PostgreSqlParser.RULE_procedure_action); + public procedureAction(): ProcedureActionContext { + let localContext = new ProcedureActionContext(this.context, this.state); + this.enterRule(localContext, 242, PostgreSqlParser.RULE_procedureAction); let _la: number; try { - this.state = 3205; + this.state = 3159; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 358, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 354, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 3186; + this.state = 3140; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 355, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 351, this.context) ) { case 1: { - this.state = 3177; + this.state = 3131; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 205) { { - this.state = 3176; + this.state = 3130; this.match(PostgreSqlParser.KW_EXTERNAL); } } - this.state = 3179; + this.state = 3133; this.match(PostgreSqlParser.KW_SECURITY); - this.state = 3180; + this.state = 3134; this.match(PostgreSqlParser.KW_INVOKER); } break; case 2: { - this.state = 3182; + this.state = 3136; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 205) { { - this.state = 3181; + this.state = 3135; this.match(PostgreSqlParser.KW_EXTERNAL); } } - this.state = 3184; + this.state = 3138; this.match(PostgreSqlParser.KW_SECURITY); - this.state = 3185; + this.state = 3139; this.match(PostgreSqlParser.KW_DEFINER); } break; @@ -17100,11 +16887,11 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 3188; + this.state = 3142; this.match(PostgreSqlParser.KW_SET); - this.state = 3189; + this.state = 3143; this.colId(); - this.state = 3190; + this.state = 3144; _la = this.tokenStream.LA(1); if(!(_la === 9 || _la === 94)) { this.errorHandler.recoverInline(this); @@ -17113,18 +16900,18 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3193; + this.state = 3147; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 356, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 352, this.context) ) { case 1: { - this.state = 3191; + this.state = 3145; this.colId(); } break; case 2: { - this.state = 3192; + this.state = 3146; this.match(PostgreSqlParser.KW_DEFAULT); } break; @@ -17134,22 +16921,22 @@ export class PostgreSqlParser extends SQLParserBase { case 3: this.enterOuterAlt(localContext, 3); { - this.state = 3195; + this.state = 3149; this.match(PostgreSqlParser.KW_SET); - this.state = 3196; + this.state = 3150; this.colId(); - this.state = 3197; + this.state = 3151; this.match(PostgreSqlParser.KW_FROM); - this.state = 3198; + this.state = 3152; this.match(PostgreSqlParser.KW_CURRENT); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 3200; + this.state = 3154; this.match(PostgreSqlParser.KW_RESET); - this.state = 3203; + this.state = 3157; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -17547,13 +17334,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 3201; + this.state = 3155; this.colId(); } break; case PostgreSqlParser.KW_ALL: { - this.state = 3202; + this.state = 3156; this.match(PostgreSqlParser.KW_ALL); } break; @@ -17580,17 +17367,17 @@ export class PostgreSqlParser extends SQLParserBase { } public rowSecurityOptionalExpr(): RowSecurityOptionalExprContext { let localContext = new RowSecurityOptionalExprContext(this.context, this.state); - this.enterRule(localContext, 252, PostgreSqlParser.RULE_rowSecurityOptionalExpr); + this.enterRule(localContext, 244, PostgreSqlParser.RULE_rowSecurityOptionalExpr); try { this.enterOuterAlt(localContext, 1); { - this.state = 3207; + this.state = 3161; this.match(PostgreSqlParser.KW_USING); - this.state = 3208; + this.state = 3162; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3209; + this.state = 3163; this.expression(); - this.state = 3210; + this.state = 3164; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -17610,19 +17397,19 @@ export class PostgreSqlParser extends SQLParserBase { } public rowSecurityOptionalWithCheck(): RowSecurityOptionalWithCheckContext { let localContext = new RowSecurityOptionalWithCheckContext(this.context, this.state); - this.enterRule(localContext, 254, PostgreSqlParser.RULE_rowSecurityOptionalWithCheck); + this.enterRule(localContext, 246, PostgreSqlParser.RULE_rowSecurityOptionalWithCheck); try { this.enterOuterAlt(localContext, 1); { - this.state = 3212; + this.state = 3166; this.match(PostgreSqlParser.KW_WITH); - this.state = 3213; + this.state = 3167; this.match(PostgreSqlParser.KW_CHECK); - this.state = 3214; + this.state = 3168; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3215; + this.state = 3169; this.expression(); - this.state = 3216; + this.state = 3170; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -17642,22 +17429,22 @@ export class PostgreSqlParser extends SQLParserBase { } public createAccessMethodStmt(): CreateAccessMethodStmtContext { let localContext = new CreateAccessMethodStmtContext(this.context, this.state); - this.enterRule(localContext, 256, PostgreSqlParser.RULE_createAccessMethodStmt); + this.enterRule(localContext, 248, PostgreSqlParser.RULE_createAccessMethodStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3218; + this.state = 3172; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3219; + this.state = 3173; this.match(PostgreSqlParser.KW_ACCESS); - this.state = 3220; + this.state = 3174; this.match(PostgreSqlParser.KW_METHOD); - this.state = 3221; + this.state = 3175; this.colId(); - this.state = 3222; + this.state = 3176; this.match(PostgreSqlParser.KW_TYPE); - this.state = 3223; + this.state = 3177; _la = this.tokenStream.LA(1); if(!(_la === 92 || _la === 226)) { this.errorHandler.recoverInline(this); @@ -17666,10 +17453,10 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3224; + this.state = 3178; this.match(PostgreSqlParser.KW_HANDLER); - this.state = 3225; - this.any_name(); + this.state = 3179; + this.anyName(); } } catch (re) { @@ -17688,53 +17475,53 @@ export class PostgreSqlParser extends SQLParserBase { } public createTrigStmt(): CreateTrigStmtContext { let localContext = new CreateTrigStmtContext(this.context, this.state); - this.enterRule(localContext, 258, PostgreSqlParser.RULE_createTrigStmt); + this.enterRule(localContext, 250, PostgreSqlParser.RULE_createTrigStmt); let _la: number; try { - this.state = 3305; + this.state = 3259; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 373, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 369, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 3227; + this.state = 3181; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3229; + this.state = 3183; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 82) { { - this.state = 3228; - this.opt_or_replace(); + this.state = 3182; + this.orReplaceOpt(); } } - this.state = 3231; + this.state = 3185; this.match(PostgreSqlParser.KW_TRIGGER); - this.state = 3232; + this.state = 3186; this.colId(); - this.state = 3233; + this.state = 3187; this.triggerActionTime(); - this.state = 3234; + this.state = 3188; this.triggerEvents(); - this.state = 3235; + this.state = 3189; this.match(PostgreSqlParser.KW_ON); - this.state = 3236; - this.table_name(); - this.state = 3248; + this.state = 3190; + this.tableName(); + this.state = 3202; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 447) { { - this.state = 3237; + this.state = 3191; this.match(PostgreSqlParser.KW_REFERENCING); - this.state = 3244; + this.state = 3198; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 3238; + this.state = 3192; _la = this.tokenStream.LA(1); if(!(_la === 448 || _la === 449)) { this.errorHandler.recoverInline(this); @@ -17743,7 +17530,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3239; + this.state = 3193; _la = this.tokenStream.LA(1); if(!(_la === 92 || _la === 414)) { this.errorHandler.recoverInline(this); @@ -17752,45 +17539,45 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3241; + this.state = 3195; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 3240; + this.state = 3194; this.match(PostgreSqlParser.KW_AS); } } - this.state = 3243; + this.state = 3197; this.colId(); } } - this.state = 3246; + this.state = 3200; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 448 || _la === 449); } } - this.state = 3255; + this.state = 3209; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 62) { { - this.state = 3250; + this.state = 3204; this.match(PostgreSqlParser.KW_FOR); - this.state = 3252; + this.state = 3206; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 192) { { - this.state = 3251; + this.state = 3205; this.match(PostgreSqlParser.KW_EACH); } } - this.state = 3254; + this.state = 3208; _la = this.tokenStream.LA(1); if(!(_la === 341 || _la === 414)) { this.errorHandler.recoverInline(this); @@ -17802,109 +17589,109 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 3258; + this.state = 3212; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 102) { { - this.state = 3257; + this.state = 3211; this.triggerWhen(); } } - this.state = 3260; + this.state = 3214; this.match(PostgreSqlParser.KW_EXECUTE); - this.state = 3261; - this.function_or_procedure(); - this.state = 3262; + this.state = 3215; + this.functionOrProcedure(); + this.state = 3216; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3263; + this.state = 3217; this.triggerFuncArgs(); - this.state = 3264; + this.state = 3218; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 3266; + this.state = 3220; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3268; + this.state = 3222; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 82) { { - this.state = 3267; - this.opt_or_replace(); + this.state = 3221; + this.orReplaceOpt(); } } - this.state = 3271; + this.state = 3225; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 45) { { - this.state = 3270; + this.state = 3224; this.match(PostgreSqlParser.KW_CONSTRAINT); } } - this.state = 3273; + this.state = 3227; this.match(PostgreSqlParser.KW_TRIGGER); - this.state = 3274; + this.state = 3228; this.colId(); - this.state = 3275; + this.state = 3229; this.triggerActionTime(); - this.state = 3276; + this.state = 3230; this.triggerEvents(); - this.state = 3277; + this.state = 3231; this.match(PostgreSqlParser.KW_ON); - this.state = 3278; - this.table_name(); - this.state = 3281; + this.state = 3232; + this.tableName(); + this.state = 3235; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 64) { { - this.state = 3279; + this.state = 3233; this.match(PostgreSqlParser.KW_FROM); - this.state = 3280; - this.qualified_name(); + this.state = 3234; + this.qualifiedName(); } } - this.state = 3286; + this.state = 3240; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (((((_la - 54)) & ~0x1F) === 0 && ((1 << (_la - 54)) & 8421377) !== 0) || _la === 269) { { { - this.state = 3283; + this.state = 3237; this.constraintAttributeElem(); } } - this.state = 3288; + this.state = 3242; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 3294; + this.state = 3248; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 62) { { - this.state = 3289; + this.state = 3243; this.match(PostgreSqlParser.KW_FOR); - this.state = 3291; + this.state = 3245; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 192) { { - this.state = 3290; + this.state = 3244; this.match(PostgreSqlParser.KW_EACH); } } - this.state = 3293; + this.state = 3247; _la = this.tokenStream.LA(1); if(!(_la === 341 || _la === 414)) { this.errorHandler.recoverInline(this); @@ -17916,25 +17703,25 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 3297; + this.state = 3251; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 102) { { - this.state = 3296; + this.state = 3250; this.triggerWhen(); } } - this.state = 3299; + this.state = 3253; this.match(PostgreSqlParser.KW_EXECUTE); - this.state = 3300; - this.function_or_procedure(); - this.state = 3301; + this.state = 3254; + this.functionOrProcedure(); + this.state = 3255; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3302; + this.state = 3256; this.triggerFuncArgs(); - this.state = 3303; + this.state = 3257; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -17956,31 +17743,31 @@ export class PostgreSqlParser extends SQLParserBase { } public triggerActionTime(): TriggerActionTimeContext { let localContext = new TriggerActionTimeContext(this.context, this.state); - this.enterRule(localContext, 260, PostgreSqlParser.RULE_triggerActionTime); + this.enterRule(localContext, 252, PostgreSqlParser.RULE_triggerActionTime); try { - this.state = 3311; + this.state = 3265; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_BEFORE: this.enterOuterAlt(localContext, 1); { - this.state = 3307; + this.state = 3261; this.match(PostgreSqlParser.KW_BEFORE); } break; case PostgreSqlParser.KW_AFTER: this.enterOuterAlt(localContext, 2); { - this.state = 3308; + this.state = 3262; this.match(PostgreSqlParser.KW_AFTER); } break; case PostgreSqlParser.KW_INSTEAD: this.enterOuterAlt(localContext, 3); { - this.state = 3309; + this.state = 3263; this.match(PostgreSqlParser.KW_INSTEAD); - this.state = 3310; + this.state = 3264; this.match(PostgreSqlParser.KW_OF); } break; @@ -18004,26 +17791,26 @@ export class PostgreSqlParser extends SQLParserBase { } public triggerEvents(): TriggerEventsContext { let localContext = new TriggerEventsContext(this.context, this.state); - this.enterRule(localContext, 262, PostgreSqlParser.RULE_triggerEvents); + this.enterRule(localContext, 254, PostgreSqlParser.RULE_triggerEvents); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3313; + this.state = 3267; this.triggerOneEvent(); - this.state = 3318; + this.state = 3272; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 82) { { { - this.state = 3314; + this.state = 3268; this.match(PostgreSqlParser.KW_OR); - this.state = 3315; + this.state = 3269; this.triggerOneEvent(); } } - this.state = 3320; + this.state = 3274; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -18045,40 +17832,40 @@ export class PostgreSqlParser extends SQLParserBase { } public triggerOneEvent(): TriggerOneEventContext { let localContext = new TriggerOneEventContext(this.context, this.state); - this.enterRule(localContext, 264, PostgreSqlParser.RULE_triggerOneEvent); + this.enterRule(localContext, 256, PostgreSqlParser.RULE_triggerOneEvent); let _la: number; try { - this.state = 3329; + this.state = 3283; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_INSERT: this.enterOuterAlt(localContext, 1); { - this.state = 3321; + this.state = 3275; this.match(PostgreSqlParser.KW_INSERT); } break; case PostgreSqlParser.KW_DELETE: this.enterOuterAlt(localContext, 2); { - this.state = 3322; + this.state = 3276; this.match(PostgreSqlParser.KW_DELETE); } break; case PostgreSqlParser.KW_UPDATE: this.enterOuterAlt(localContext, 3); { - this.state = 3323; + this.state = 3277; this.match(PostgreSqlParser.KW_UPDATE); - this.state = 3326; + this.state = 3280; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 275) { { - this.state = 3324; + this.state = 3278; this.match(PostgreSqlParser.KW_OF); - this.state = 3325; - this.column_list(); + this.state = 3279; + this.columnList(); } } @@ -18087,7 +17874,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_TRUNCATE: this.enterOuterAlt(localContext, 4); { - this.state = 3328; + this.state = 3282; this.match(PostgreSqlParser.KW_TRUNCATE); } break; @@ -18111,17 +17898,17 @@ export class PostgreSqlParser extends SQLParserBase { } public triggerWhen(): TriggerWhenContext { let localContext = new TriggerWhenContext(this.context, this.state); - this.enterRule(localContext, 266, PostgreSqlParser.RULE_triggerWhen); + this.enterRule(localContext, 258, PostgreSqlParser.RULE_triggerWhen); try { this.enterOuterAlt(localContext, 1); { - this.state = 3331; + this.state = 3285; this.match(PostgreSqlParser.KW_WHEN); - this.state = 3332; + this.state = 3286; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3333; + this.state = 3287; this.expression(); - this.state = 3334; + this.state = 3288; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -18139,29 +17926,29 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public function_or_procedure(): Function_or_procedureContext { - let localContext = new Function_or_procedureContext(this.context, this.state); - this.enterRule(localContext, 268, PostgreSqlParser.RULE_function_or_procedure); + public functionOrProcedure(): FunctionOrProcedureContext { + let localContext = new FunctionOrProcedureContext(this.context, this.state); + this.enterRule(localContext, 260, PostgreSqlParser.RULE_functionOrProcedure); try { - this.state = 3340; + this.state = 3294; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FUNCTION: this.enterOuterAlt(localContext, 1); { - this.state = 3336; + this.state = 3290; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 3337; - this.function_name(); + this.state = 3291; + this.functionName(); } break; case PostgreSqlParser.KW_PROCEDURE: this.enterOuterAlt(localContext, 2); { - this.state = 3338; + this.state = 3292; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 3339; - this.procedure_name(); + this.state = 3293; + this.procedureName(); } break; default: @@ -18184,12 +17971,12 @@ export class PostgreSqlParser extends SQLParserBase { } public triggerFuncArgs(): TriggerFuncArgsContext { let localContext = new TriggerFuncArgsContext(this.context, this.state); - this.enterRule(localContext, 270, PostgreSqlParser.RULE_triggerFuncArgs); + this.enterRule(localContext, 262, PostgreSqlParser.RULE_triggerFuncArgs); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3344; + this.state = 3298; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ALL: @@ -18685,7 +18472,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 3342; + this.state = 3296; this.triggerFuncArg(); } break; @@ -18698,19 +18485,19 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 3350; + this.state = 3304; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3346; + this.state = 3300; this.match(PostgreSqlParser.COMMA); - this.state = 3347; + this.state = 3301; this.triggerFuncArg(); } } - this.state = 3352; + this.state = 3306; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -18732,36 +18519,36 @@ export class PostgreSqlParser extends SQLParserBase { } public triggerFuncArg(): TriggerFuncArgContext { let localContext = new TriggerFuncArgContext(this.context, this.state); - this.enterRule(localContext, 272, PostgreSqlParser.RULE_triggerFuncArg); + this.enterRule(localContext, 264, PostgreSqlParser.RULE_triggerFuncArg); try { - this.state = 3357; + this.state = 3311; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 381, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 377, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 3353; + this.state = 3307; this.match(PostgreSqlParser.Integral); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 3354; + this.state = 3308; this.match(PostgreSqlParser.Numeric); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 3355; + this.state = 3309; this.stringConst(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 3356; + this.state = 3310; this.colLabel(); } break; @@ -18783,35 +18570,35 @@ export class PostgreSqlParser extends SQLParserBase { } public constraintAttributeElem(): ConstraintAttributeElemContext { let localContext = new ConstraintAttributeElemContext(this.context, this.state); - this.enterRule(localContext, 274, PostgreSqlParser.RULE_constraintAttributeElem); + this.enterRule(localContext, 266, PostgreSqlParser.RULE_constraintAttributeElem); let _la: number; try { - this.state = 3369; + this.state = 3323; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 383, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 379, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 3360; + this.state = 3314; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 3359; + this.state = 3313; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 3362; + this.state = 3316; this.match(PostgreSqlParser.KW_DEFERRABLE); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 3363; + this.state = 3317; this.match(PostgreSqlParser.KW_INITIALLY); - this.state = 3364; + this.state = 3318; _la = this.tokenStream.LA(1); if(!(_la === 180 || _la === 221)) { this.errorHandler.recoverInline(this); @@ -18825,18 +18612,18 @@ export class PostgreSqlParser extends SQLParserBase { case 3: this.enterOuterAlt(localContext, 3); { - this.state = 3365; + this.state = 3319; this.match(PostgreSqlParser.KW_NOT); - this.state = 3366; + this.state = 3320; this.match(PostgreSqlParser.KW_VALID); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 3367; + this.state = 3321; this.match(PostgreSqlParser.KW_NO); - this.state = 3368; + this.state = 3322; this.match(PostgreSqlParser.KW_INHERIT); } break; @@ -18858,58 +18645,58 @@ export class PostgreSqlParser extends SQLParserBase { } public createEventTrigStmt(): CreateEventTrigStmtContext { let localContext = new CreateEventTrigStmtContext(this.context, this.state); - this.enterRule(localContext, 276, PostgreSqlParser.RULE_createEventTrigStmt); + this.enterRule(localContext, 268, PostgreSqlParser.RULE_createEventTrigStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3371; + this.state = 3325; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3372; + this.state = 3326; this.match(PostgreSqlParser.KW_EVENT); - this.state = 3373; + this.state = 3327; this.match(PostgreSqlParser.KW_TRIGGER); - this.state = 3374; + this.state = 3328; this.colId(); - this.state = 3375; + this.state = 3329; this.match(PostgreSqlParser.KW_ON); - this.state = 3376; + this.state = 3330; this.colLabel(); - this.state = 3386; + this.state = 3340; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 102) { { - this.state = 3377; + this.state = 3331; this.match(PostgreSqlParser.KW_WHEN); - this.state = 3378; - this.event_trigger_when_item(); - this.state = 3383; + this.state = 3332; + this.eventTriggerWhenItem(); + this.state = 3337; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 33) { { { - this.state = 3379; + this.state = 3333; this.match(PostgreSqlParser.KW_AND); - this.state = 3380; - this.event_trigger_when_item(); + this.state = 3334; + this.eventTriggerWhenItem(); } } - this.state = 3385; + this.state = 3339; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } } - this.state = 3388; + this.state = 3342; this.match(PostgreSqlParser.KW_EXECUTE); - this.state = 3389; - this.function_or_procedure(); - this.state = 3390; + this.state = 3343; + this.functionOrProcedure(); + this.state = 3344; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3391; + this.state = 3345; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -18927,36 +18714,36 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public event_trigger_when_item(): Event_trigger_when_itemContext { - let localContext = new Event_trigger_when_itemContext(this.context, this.state); - this.enterRule(localContext, 278, PostgreSqlParser.RULE_event_trigger_when_item); + public eventTriggerWhenItem(): EventTriggerWhenItemContext { + let localContext = new EventTriggerWhenItemContext(this.context, this.state); + this.enterRule(localContext, 270, PostgreSqlParser.RULE_eventTriggerWhenItem); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3393; + this.state = 3347; this.colId(); - this.state = 3394; + this.state = 3348; this.match(PostgreSqlParser.KW_IN); - this.state = 3395; + this.state = 3349; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3396; + this.state = 3350; this.stringConst(); - this.state = 3400; + this.state = 3354; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3397; - this.notify_payload(); + this.state = 3351; + this.notifyPayload(); } } - this.state = 3402; + this.state = 3356; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 3403; + this.state = 3357; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -18976,32 +18763,32 @@ export class PostgreSqlParser extends SQLParserBase { } public alterEventTrigStmt(): AlterEventTrigStmtContext { let localContext = new AlterEventTrigStmtContext(this.context, this.state); - this.enterRule(localContext, 280, PostgreSqlParser.RULE_alterEventTrigStmt); + this.enterRule(localContext, 272, PostgreSqlParser.RULE_alterEventTrigStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3405; + this.state = 3359; this.match(PostgreSqlParser.KW_ALTER); - this.state = 3406; + this.state = 3360; this.match(PostgreSqlParser.KW_EVENT); - this.state = 3407; + this.state = 3361; this.match(PostgreSqlParser.KW_TRIGGER); - this.state = 3408; + this.state = 3362; this.colId(); - this.state = 3414; + this.state = 3368; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ENABLE: { - this.state = 3409; + this.state = 3363; this.match(PostgreSqlParser.KW_ENABLE); - this.state = 3411; + this.state = 3365; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 387, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 383, this.context) ) { case 1: { - this.state = 3410; + this.state = 3364; _la = this.tokenStream.LA(1); if(!(_la === 139 || _la === 312)) { this.errorHandler.recoverInline(this); @@ -19017,7 +18804,7 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_DISABLE: { - this.state = 3413; + this.state = 3367; this.match(PostgreSqlParser.KW_DISABLE); } break; @@ -19042,40 +18829,40 @@ export class PostgreSqlParser extends SQLParserBase { } public createAssertionStmt(): CreateAssertionStmtContext { let localContext = new CreateAssertionStmtContext(this.context, this.state); - this.enterRule(localContext, 282, PostgreSqlParser.RULE_createAssertionStmt); + this.enterRule(localContext, 274, PostgreSqlParser.RULE_createAssertionStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 3416; + this.state = 3370; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3417; + this.state = 3371; this.match(PostgreSqlParser.KW_ASSERTION); - this.state = 3418; - this.any_name(); - this.state = 3419; + this.state = 3372; + this.anyName(); + this.state = 3373; this.match(PostgreSqlParser.KW_CHECK); - this.state = 3420; + this.state = 3374; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3421; + this.state = 3375; this.expression(); - this.state = 3422; + this.state = 3376; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 3426; + this.state = 3380; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 389, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 385, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 3423; + this.state = 3377; this.constraintAttributeElem(); } } } - this.state = 3428; + this.state = 3382; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 389, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 385, this.context); } } } @@ -19095,67 +18882,67 @@ export class PostgreSqlParser extends SQLParserBase { } public defineStmt(): DefineStmtContext { let localContext = new DefineStmtContext(this.context, this.state); - this.enterRule(localContext, 284, PostgreSqlParser.RULE_defineStmt); + this.enterRule(localContext, 276, PostgreSqlParser.RULE_defineStmt); let _la: number; try { - this.state = 3507; + this.state = 3461; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 401, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 397, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 3429; + this.state = 3383; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3431; + this.state = 3385; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 82) { { - this.state = 3430; - this.opt_or_replace(); + this.state = 3384; + this.orReplaceOpt(); } } - this.state = 3433; + this.state = 3387; this.match(PostgreSqlParser.KW_AGGREGATE); - this.state = 3434; - this.function_name(); - this.state = 3449; + this.state = 3388; + this.functionName(); + this.state = 3403; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 392, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 388, this.context) ) { case 1: { { - this.state = 3435; - this.aggregate_args(); - this.state = 3436; + this.state = 3389; + this.aggregateArgs(); + this.state = 3390; this.definition(); } } break; case 2: { - this.state = 3438; + this.state = 3392; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3439; - this.old_aggregate_elem(); - this.state = 3444; + this.state = 3393; + this.oldAggregateElem(); + this.state = 3398; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3440; + this.state = 3394; this.match(PostgreSqlParser.COMMA); - this.state = 3441; - this.old_aggregate_elem(); + this.state = 3395; + this.oldAggregateElem(); } } - this.state = 3446; + this.state = 3400; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 3447; + this.state = 3401; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -19165,79 +18952,79 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 3451; + this.state = 3405; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3452; + this.state = 3406; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 3453; - this.any_operator(); - this.state = 3454; + this.state = 3407; + this.anyOperator(); + this.state = 3408; this.definition(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 3456; + this.state = 3410; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3457; + this.state = 3411; this.match(PostgreSqlParser.KW_TYPE); - this.state = 3458; - this.any_name(); - this.state = 3459; + this.state = 3412; + this.anyName(); + this.state = 3413; this.match(PostgreSqlParser.KW_AS); - this.state = 3477; + this.state = 3431; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: { - this.state = 3460; + this.state = 3414; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3462; + this.state = 3416; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 3461; + this.state = 3415; this.tableFuncElementList(); } } - this.state = 3464; + this.state = 3418; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_ENUM: { - this.state = 3465; + this.state = 3419; this.match(PostgreSqlParser.KW_ENUM); - this.state = 3466; + this.state = 3420; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3474; + this.state = 3428; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (((((_la - 561)) & ~0x1F) === 0 && ((1 << (_la - 561)) & 67108885) !== 0)) { { - this.state = 3467; + this.state = 3421; this.stringConst(); - this.state = 3471; + this.state = 3425; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3468; - this.notify_payload(); + this.state = 3422; + this.notifyPayload(); } } - this.state = 3473; + this.state = 3427; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } } - this.state = 3476; + this.state = 3430; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -19249,30 +19036,30 @@ export class PostgreSqlParser extends SQLParserBase { case 4: this.enterOuterAlt(localContext, 4); { - this.state = 3479; + this.state = 3433; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3480; + this.state = 3434; this.match(PostgreSqlParser.KW_TYPE); - this.state = 3481; - this.any_name(); - this.state = 3487; + this.state = 3435; + this.anyName(); + this.state = 3441; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 398, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 394, this.context) ) { case 1: { - this.state = 3484; + this.state = 3438; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 3482; + this.state = 3436; this.match(PostgreSqlParser.KW_AS); - this.state = 3483; + this.state = 3437; this.match(PostgreSqlParser.KW_RANGE); } } - this.state = 3486; + this.state = 3440; this.definition(); } break; @@ -19282,13 +19069,13 @@ export class PostgreSqlParser extends SQLParserBase { case 5: this.enterOuterAlt(localContext, 5); { - this.state = 3489; + this.state = 3443; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3490; + this.state = 3444; this.match(PostgreSqlParser.KW_TEXT); - this.state = 3491; + this.state = 3445; this.match(PostgreSqlParser.KW_SEARCH); - this.state = 3492; + this.state = 3446; _la = this.tokenStream.LA(1); if(!(_la === 163 || _la === 185 || _la === 283 || _la === 353)) { this.errorHandler.recoverInline(this); @@ -19297,47 +19084,47 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3493; - this.any_name(); - this.state = 3494; + this.state = 3447; + this.anyName(); + this.state = 3448; this.definition(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 3496; + this.state = 3450; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3497; + this.state = 3451; this.match(PostgreSqlParser.KW_COLLATION); - this.state = 3499; + this.state = 3453; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 399, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 395, this.context) ) { case 1: { - this.state = 3498; - this.opt_if_not_exists(); + this.state = 3452; + this.ifNotExists(); } break; } - this.state = 3501; - this.any_name(); - this.state = 3505; + this.state = 3455; + this.anyName(); + this.state = 3459; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: { - this.state = 3502; + this.state = 3456; this.definition(); } break; case PostgreSqlParser.KW_FROM: { { - this.state = 3503; + this.state = 3457; this.match(PostgreSqlParser.KW_FROM); - this.state = 3504; - this.any_name(); + this.state = 3458; + this.anyName(); } } break; @@ -19364,32 +19151,32 @@ export class PostgreSqlParser extends SQLParserBase { } public definition(): DefinitionContext { let localContext = new DefinitionContext(this.context, this.state); - this.enterRule(localContext, 286, PostgreSqlParser.RULE_definition); + this.enterRule(localContext, 278, PostgreSqlParser.RULE_definition); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3509; + this.state = 3463; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3510; - this.def_elem(); - this.state = 3515; + this.state = 3464; + this.defElem(); + this.state = 3469; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3511; + this.state = 3465; this.match(PostgreSqlParser.COMMA); - this.state = 3512; - this.def_elem(); + this.state = 3466; + this.defElem(); } } - this.state = 3517; + this.state = 3471; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 3518; + this.state = 3472; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -19407,24 +19194,24 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public def_elem(): Def_elemContext { - let localContext = new Def_elemContext(this.context, this.state); - this.enterRule(localContext, 288, PostgreSqlParser.RULE_def_elem); + public defElem(): DefElemContext { + let localContext = new DefElemContext(this.context, this.state); + this.enterRule(localContext, 280, PostgreSqlParser.RULE_defElem); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3520; + this.state = 3474; this.colLabel(); - this.state = 3523; + this.state = 3477; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 10) { { - this.state = 3521; + this.state = 3475; this.match(PostgreSqlParser.EQUAL); - this.state = 3522; - this.def_arg(); + this.state = 3476; + this.defArg(); } } @@ -19444,52 +19231,52 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public def_arg(): Def_argContext { - let localContext = new Def_argContext(this.context, this.state); - this.enterRule(localContext, 290, PostgreSqlParser.RULE_def_arg); + public defArg(): DefArgContext { + let localContext = new DefArgContext(this.context, this.state); + this.enterRule(localContext, 282, PostgreSqlParser.RULE_defArg); try { - this.state = 3531; + this.state = 3485; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 404, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 400, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 3525; - this.func_type(); + this.state = 3479; + this.funcType(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 3526; - this.reserved_keyword(); + this.state = 3480; + this.reservedKeyword(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 3527; - this.qual_all_op(); + this.state = 3481; + this.qualAllOp(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 3528; + this.state = 3482; this.numericOnly(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 3529; + this.state = 3483; this.stringConst(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 3530; + this.state = 3484; this.match(PostgreSqlParser.KW_NONE); } break; @@ -19509,18 +19296,18 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public old_aggregate_elem(): Old_aggregate_elemContext { - let localContext = new Old_aggregate_elemContext(this.context, this.state); - this.enterRule(localContext, 292, PostgreSqlParser.RULE_old_aggregate_elem); + public oldAggregateElem(): OldAggregateElemContext { + let localContext = new OldAggregateElemContext(this.context, this.state); + this.enterRule(localContext, 284, PostgreSqlParser.RULE_oldAggregateElem); try { this.enterOuterAlt(localContext, 1); { - this.state = 3533; + this.state = 3487; this.identifier(); - this.state = 3534; + this.state = 3488; this.match(PostgreSqlParser.EQUAL); - this.state = 3535; - this.def_arg(); + this.state = 3489; + this.defArg(); } } catch (re) { @@ -19539,43 +19326,43 @@ export class PostgreSqlParser extends SQLParserBase { } public alterEnumStmt(): AlterEnumStmtContext { let localContext = new AlterEnumStmtContext(this.context, this.state); - this.enterRule(localContext, 294, PostgreSqlParser.RULE_alterEnumStmt); + this.enterRule(localContext, 286, PostgreSqlParser.RULE_alterEnumStmt); let _la: number; try { - this.state = 3559; + this.state = 3513; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 407, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 403, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 3537; + this.state = 3491; this.match(PostgreSqlParser.KW_ALTER); - this.state = 3538; + this.state = 3492; this.match(PostgreSqlParser.KW_TYPE); - this.state = 3539; - this.any_name(); - this.state = 3540; + this.state = 3493; + this.anyName(); + this.state = 3494; this.match(PostgreSqlParser.KW_ADD); - this.state = 3541; + this.state = 3495; this.match(PostgreSqlParser.KW_VALUE); - this.state = 3543; + this.state = 3497; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 220) { { - this.state = 3542; - this.opt_if_not_exists(); + this.state = 3496; + this.ifNotExists(); } } - this.state = 3545; + this.state = 3499; this.stringConst(); - this.state = 3548; + this.state = 3502; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 406, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 402, this.context) ) { case 1: { - this.state = 3546; + this.state = 3500; _la = this.tokenStream.LA(1); if(!(_la === 135 || _la === 145)) { this.errorHandler.recoverInline(this); @@ -19584,7 +19371,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3547; + this.state = 3501; this.stringConst(); } break; @@ -19594,21 +19381,21 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 3550; + this.state = 3504; this.match(PostgreSqlParser.KW_ALTER); - this.state = 3551; + this.state = 3505; this.match(PostgreSqlParser.KW_TYPE); - this.state = 3552; - this.any_name(); - this.state = 3553; + this.state = 3506; + this.anyName(); + this.state = 3507; this.match(PostgreSqlParser.KW_RENAME); - this.state = 3554; + this.state = 3508; this.match(PostgreSqlParser.KW_VALUE); - this.state = 3555; + this.state = 3509; this.stringConst(); - this.state = 3556; + this.state = 3510; this.match(PostgreSqlParser.KW_TO); - this.state = 3557; + this.state = 3511; this.stringConst(); } break; @@ -19628,17 +19415,17 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_if_not_exists(): Opt_if_not_existsContext { - let localContext = new Opt_if_not_existsContext(this.context, this.state); - this.enterRule(localContext, 296, PostgreSqlParser.RULE_opt_if_not_exists); + public ifNotExists(): IfNotExistsContext { + let localContext = new IfNotExistsContext(this.context, this.state); + this.enterRule(localContext, 288, PostgreSqlParser.RULE_ifNotExists); try { this.enterOuterAlt(localContext, 1); { - this.state = 3561; + this.state = 3515; this.match(PostgreSqlParser.KW_IF); - this.state = 3562; + this.state = 3516; this.match(PostgreSqlParser.KW_NOT); - this.state = 3563; + this.state = 3517; this.match(PostgreSqlParser.KW_EXISTS); } } @@ -19658,66 +19445,66 @@ export class PostgreSqlParser extends SQLParserBase { } public createOperatorClassStmt(): CreateOperatorClassStmtContext { let localContext = new CreateOperatorClassStmtContext(this.context, this.state); - this.enterRule(localContext, 298, PostgreSqlParser.RULE_createOperatorClassStmt); + this.enterRule(localContext, 290, PostgreSqlParser.RULE_createOperatorClassStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3565; + this.state = 3519; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3566; + this.state = 3520; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 3567; + this.state = 3521; this.match(PostgreSqlParser.KW_CLASS); - this.state = 3568; - this.any_name(); - this.state = 3570; + this.state = 3522; + this.anyName(); + this.state = 3524; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53) { { - this.state = 3569; + this.state = 3523; this.match(PostgreSqlParser.KW_DEFAULT); } } - this.state = 3572; + this.state = 3526; this.match(PostgreSqlParser.KW_FOR); - this.state = 3573; + this.state = 3527; this.match(PostgreSqlParser.KW_TYPE); - this.state = 3574; + this.state = 3528; this.typename(); - this.state = 3575; - this.table_access_method_clause(); - this.state = 3578; + this.state = 3529; + this.tableAccessMethodClause(); + this.state = 3532; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 206) { { - this.state = 3576; + this.state = 3530; this.match(PostgreSqlParser.KW_FAMILY); - this.state = 3577; - this.any_name(); + this.state = 3531; + this.anyName(); } } - this.state = 3580; + this.state = 3534; this.match(PostgreSqlParser.KW_AS); - this.state = 3581; + this.state = 3535; this.opClassItem(); - this.state = 3586; + this.state = 3540; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3582; + this.state = 3536; this.match(PostgreSqlParser.COMMA); - this.state = 3583; + this.state = 3537; this.opClassItem(); } } - this.state = 3588; + this.state = 3542; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -19739,56 +19526,56 @@ export class PostgreSqlParser extends SQLParserBase { } public opClassItem(): OpClassItemContext { let localContext = new OpClassItemContext(this.context, this.state); - this.enterRule(localContext, 300, PostgreSqlParser.RULE_opClassItem); + this.enterRule(localContext, 292, PostgreSqlParser.RULE_opClassItem); let _la: number; try { - this.state = 3615; + this.state = 3569; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_OPERATOR: this.enterOuterAlt(localContext, 1); { - this.state = 3589; + this.state = 3543; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 3590; + this.state = 3544; this.match(PostgreSqlParser.Integral); - this.state = 3591; - this.any_operator(); - this.state = 3593; + this.state = 3545; + this.anyOperator(); + this.state = 3547; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 411, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 407, this.context) ) { case 1: { - this.state = 3592; + this.state = 3546; this.operatorArgTypes(); } break; } - this.state = 3602; + this.state = 3556; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 62) { { - this.state = 3595; + this.state = 3549; this.match(PostgreSqlParser.KW_FOR); - this.state = 3600; + this.state = 3554; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_SEARCH: { - this.state = 3596; + this.state = 3550; this.match(PostgreSqlParser.KW_SEARCH); } break; case PostgreSqlParser.KW_ORDER: { { - this.state = 3597; + this.state = 3551; this.match(PostgreSqlParser.KW_ORDER); - this.state = 3598; + this.state = 3552; this.match(PostgreSqlParser.KW_BY); - this.state = 3599; - this.any_name(); + this.state = 3553; + this.anyName(); } } break; @@ -19798,12 +19585,12 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 3605; + this.state = 3559; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 414, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 410, this.context) ) { case 1: { - this.state = 3604; + this.state = 3558; this.match(PostgreSqlParser.KW_RECHECK); } break; @@ -19813,30 +19600,30 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_FUNCTION: this.enterOuterAlt(localContext, 2); { - this.state = 3607; + this.state = 3561; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 3608; + this.state = 3562; this.match(PostgreSqlParser.Integral); - this.state = 3610; + this.state = 3564; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 3609; - this.prep_type_clause(); + this.state = 3563; + this.prepTypeClause(); } } - this.state = 3612; + this.state = 3566; this.functionWithArgTypes(); } break; case PostgreSqlParser.KW_STORAGE: this.enterOuterAlt(localContext, 3); { - this.state = 3613; + this.state = 3567; this.match(PostgreSqlParser.KW_STORAGE); - this.state = 3614; + this.state = 3568; this.typename(); } break; @@ -19860,20 +19647,20 @@ export class PostgreSqlParser extends SQLParserBase { } public createOperatorFamilyStmt(): CreateOperatorFamilyStmtContext { let localContext = new CreateOperatorFamilyStmtContext(this.context, this.state); - this.enterRule(localContext, 302, PostgreSqlParser.RULE_createOperatorFamilyStmt); + this.enterRule(localContext, 294, PostgreSqlParser.RULE_createOperatorFamilyStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 3617; + this.state = 3571; this.match(PostgreSqlParser.KW_CREATE); - this.state = 3618; + this.state = 3572; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 3619; + this.state = 3573; this.match(PostgreSqlParser.KW_FAMILY); - this.state = 3620; - this.any_name(); - this.state = 3621; - this.table_access_method_clause(); + this.state = 3574; + this.anyName(); + this.state = 3575; + this.tableAccessMethodClause(); } } catch (re) { @@ -19892,43 +19679,43 @@ export class PostgreSqlParser extends SQLParserBase { } public alterOperatorFamilyStmt(): AlterOperatorFamilyStmtContext { let localContext = new AlterOperatorFamilyStmtContext(this.context, this.state); - this.enterRule(localContext, 304, PostgreSqlParser.RULE_alterOperatorFamilyStmt); + this.enterRule(localContext, 296, PostgreSqlParser.RULE_alterOperatorFamilyStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3623; + this.state = 3577; this.match(PostgreSqlParser.KW_ALTER); - this.state = 3624; + this.state = 3578; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 3625; + this.state = 3579; this.match(PostgreSqlParser.KW_FAMILY); - this.state = 3626; - this.any_name(); - this.state = 3627; - this.table_access_method_clause(); - this.state = 3646; + this.state = 3580; + this.anyName(); + this.state = 3581; + this.tableAccessMethodClause(); + this.state = 3600; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ADD: { - this.state = 3628; + this.state = 3582; this.match(PostgreSqlParser.KW_ADD); - this.state = 3629; + this.state = 3583; this.opClassItem(); - this.state = 3634; + this.state = 3588; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3630; + this.state = 3584; this.match(PostgreSqlParser.COMMA); - this.state = 3631; + this.state = 3585; this.opClassItem(); } } - this.state = 3636; + this.state = 3590; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -19936,23 +19723,23 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_DROP: { - this.state = 3637; + this.state = 3591; this.match(PostgreSqlParser.KW_DROP); - this.state = 3638; + this.state = 3592; this.opClassDrop(); - this.state = 3643; + this.state = 3597; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3639; + this.state = 3593; this.match(PostgreSqlParser.COMMA); - this.state = 3640; + this.state = 3594; this.opClassDrop(); } } - this.state = 3645; + this.state = 3599; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -19979,12 +19766,12 @@ export class PostgreSqlParser extends SQLParserBase { } public opClassDrop(): OpClassDropContext { let localContext = new OpClassDropContext(this.context, this.state); - this.enterRule(localContext, 306, PostgreSqlParser.RULE_opClassDrop); + this.enterRule(localContext, 298, PostgreSqlParser.RULE_opClassDrop); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3648; + this.state = 3602; _la = this.tokenStream.LA(1); if(!(_la === 211 || _la === 278)) { this.errorHandler.recoverInline(this); @@ -19993,10 +19780,10 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3649; + this.state = 3603; this.match(PostgreSqlParser.Integral); - this.state = 3650; - this.prep_type_clause(); + this.state = 3604; + this.prepTypeClause(); } } catch (re) { @@ -20015,21 +19802,21 @@ export class PostgreSqlParser extends SQLParserBase { } public reassignOwnedStmt(): ReassignOwnedStmtContext { let localContext = new ReassignOwnedStmtContext(this.context, this.state); - this.enterRule(localContext, 308, PostgreSqlParser.RULE_reassignOwnedStmt); + this.enterRule(localContext, 300, PostgreSqlParser.RULE_reassignOwnedStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 3652; + this.state = 3606; this.match(PostgreSqlParser.KW_REASSIGN); - this.state = 3653; + this.state = 3607; this.match(PostgreSqlParser.KW_OWNED); - this.state = 3654; + this.state = 3608; this.match(PostgreSqlParser.KW_BY); - this.state = 3655; - this.role_list(); - this.state = 3656; + this.state = 3609; + this.roleList(); + this.state = 3610; this.match(PostgreSqlParser.KW_TO); - this.state = 3657; + this.state = 3611; this.roleSpec(); } } @@ -20049,118 +19836,118 @@ export class PostgreSqlParser extends SQLParserBase { } public dropStmt(): DropStmtContext { let localContext = new DropStmtContext(this.context, this.state); - this.enterRule(localContext, 310, PostgreSqlParser.RULE_dropStmt); + this.enterRule(localContext, 302, PostgreSqlParser.RULE_dropStmt); let _la: number; try { - this.state = 3866; + this.state = 3820; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 457, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 453, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 3659; + this.state = 3613; this.match(PostgreSqlParser.KW_DROP); - this.state = 3682; + this.state = 3636; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_SEQUENCE: { - this.state = 3660; + this.state = 3614; this.match(PostgreSqlParser.KW_SEQUENCE); } break; case PostgreSqlParser.KW_INDEX: { - this.state = 3661; + this.state = 3615; this.match(PostgreSqlParser.KW_INDEX); } break; case PostgreSqlParser.KW_COLLATION: { - this.state = 3662; + this.state = 3616; this.match(PostgreSqlParser.KW_COLLATION); } break; case PostgreSqlParser.KW_CONVERSION: { - this.state = 3663; + this.state = 3617; this.match(PostgreSqlParser.KW_CONVERSION); } break; case PostgreSqlParser.KW_STATISTICS: { - this.state = 3664; + this.state = 3618; this.match(PostgreSqlParser.KW_STATISTICS); } break; case PostgreSqlParser.KW_PUBLICATION: { - this.state = 3665; + this.state = 3619; this.match(PostgreSqlParser.KW_PUBLICATION); } break; case PostgreSqlParser.KW_SERVER: { - this.state = 3666; + this.state = 3620; this.match(PostgreSqlParser.KW_SERVER); } break; case PostgreSqlParser.KW_ACCESS: { - this.state = 3667; + this.state = 3621; this.match(PostgreSqlParser.KW_ACCESS); - this.state = 3668; + this.state = 3622; this.match(PostgreSqlParser.KW_METHOD); } break; case PostgreSqlParser.KW_EVENT: { - this.state = 3669; + this.state = 3623; this.match(PostgreSqlParser.KW_EVENT); - this.state = 3670; + this.state = 3624; this.match(PostgreSqlParser.KW_TRIGGER); } break; case PostgreSqlParser.KW_EXTENSION: { - this.state = 3671; + this.state = 3625; this.match(PostgreSqlParser.KW_EXTENSION); } break; case PostgreSqlParser.KW_LANGUAGE: case PostgreSqlParser.KW_PROCEDURAL: { - this.state = 3673; + this.state = 3627; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 295) { { - this.state = 3672; + this.state = 3626; this.match(PostgreSqlParser.KW_PROCEDURAL); } } - this.state = 3675; + this.state = 3629; this.match(PostgreSqlParser.KW_LANGUAGE); } break; case PostgreSqlParser.KW_FOREIGN: { - this.state = 3676; + this.state = 3630; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 3677; + this.state = 3631; this.match(PostgreSqlParser.KW_DATA); - this.state = 3678; + this.state = 3632; this.match(PostgreSqlParser.KW_WRAPPER); } break; case PostgreSqlParser.KW_TEXT: { - this.state = 3679; + this.state = 3633; this.match(PostgreSqlParser.KW_TEXT); - this.state = 3680; + this.state = 3634; this.match(PostgreSqlParser.KW_SEARCH); - this.state = 3681; + this.state = 3635; _la = this.tokenStream.LA(1); if(!(_la === 163 || _la === 185 || _la === 283 || _la === 353)) { this.errorHandler.recoverInline(this); @@ -20174,25 +19961,25 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 3685; + this.state = 3639; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 422, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 418, this.context) ) { case 1: { - this.state = 3684; - this.opt_if_exists(); + this.state = 3638; + this.ifExists(); } break; } - this.state = 3687; - this.name_list(); - this.state = 3689; + this.state = 3641; + this.nameList(); + this.state = 3643; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 423, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 419, this.context) ) { case 1: { - this.state = 3688; - this.opt_drop_behavior(); + this.state = 3642; + this.optDropBehavior(); } break; } @@ -20201,55 +19988,55 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 3691; + this.state = 3645; this.match(PostgreSqlParser.KW_DROP); - this.state = 3693; + this.state = 3647; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 259) { { - this.state = 3692; + this.state = 3646; this.match(PostgreSqlParser.KW_MATERIALIZED); } } - this.state = 3695; + this.state = 3649; this.match(PostgreSqlParser.KW_VIEW); - this.state = 3697; + this.state = 3651; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 425, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 421, this.context) ) { case 1: { - this.state = 3696; - this.opt_if_exists(); + this.state = 3650; + this.ifExists(); } break; } - this.state = 3699; - this.view_name(); - this.state = 3704; + this.state = 3653; + this.viewName(); + this.state = 3658; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3700; + this.state = 3654; this.match(PostgreSqlParser.COMMA); - this.state = 3701; - this.view_name(); + this.state = 3655; + this.viewName(); } } - this.state = 3706; + this.state = 3660; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 3708; + this.state = 3662; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 427, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 423, this.context) ) { case 1: { - this.state = 3707; - this.opt_drop_behavior(); + this.state = 3661; + this.optDropBehavior(); } break; } @@ -20258,39 +20045,39 @@ export class PostgreSqlParser extends SQLParserBase { case 3: this.enterOuterAlt(localContext, 3); { - this.state = 3710; + this.state = 3664; this.match(PostgreSqlParser.KW_DROP); - this.state = 3712; + this.state = 3666; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 63) { { - this.state = 3711; + this.state = 3665; this.match(PostgreSqlParser.KW_FOREIGN); } } - this.state = 3714; + this.state = 3668; this.match(PostgreSqlParser.KW_TABLE); - this.state = 3716; + this.state = 3670; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 429, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 425, this.context) ) { case 1: { - this.state = 3715; - this.opt_if_exists(); + this.state = 3669; + this.ifExists(); } break; } - this.state = 3718; - this.table_name_list(); - this.state = 3720; + this.state = 3672; + this.tableNameList(); + this.state = 3674; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 430, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 426, this.context) ) { case 1: { - this.state = 3719; - this.opt_drop_behavior(); + this.state = 3673; + this.optDropBehavior(); } break; } @@ -20299,29 +20086,29 @@ export class PostgreSqlParser extends SQLParserBase { case 4: this.enterOuterAlt(localContext, 4); { - this.state = 3722; + this.state = 3676; this.match(PostgreSqlParser.KW_DROP); - this.state = 3723; + this.state = 3677; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 3725; + this.state = 3679; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 431, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 427, this.context) ) { case 1: { - this.state = 3724; - this.opt_if_exists(); + this.state = 3678; + this.ifExists(); } break; } - this.state = 3727; - this.schema_name_list(); - this.state = 3729; + this.state = 3681; + this.schemaNameList(); + this.state = 3683; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 432, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 428, this.context) ) { case 1: { - this.state = 3728; - this.opt_drop_behavior(); + this.state = 3682; + this.optDropBehavior(); } break; } @@ -20330,9 +20117,9 @@ export class PostgreSqlParser extends SQLParserBase { case 5: this.enterOuterAlt(localContext, 5); { - this.state = 3731; + this.state = 3685; this.match(PostgreSqlParser.KW_DROP); - this.state = 3732; + this.state = 3686; _la = this.tokenStream.LA(1); if(!(_la === 321 || _la === 357 || _la === 445)) { this.errorHandler.recoverInline(this); @@ -20341,29 +20128,29 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3734; + this.state = 3688; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 433, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 429, this.context) ) { case 1: { - this.state = 3733; - this.opt_if_exists(); + this.state = 3687; + this.ifExists(); } break; } - this.state = 3736; + this.state = 3690; this.colId(); - this.state = 3737; + this.state = 3691; this.match(PostgreSqlParser.KW_ON); - this.state = 3738; - this.any_name(); - this.state = 3740; + this.state = 3692; + this.anyName(); + this.state = 3694; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 434, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 430, this.context) ) { case 1: { - this.state = 3739; - this.opt_drop_behavior(); + this.state = 3693; + this.optDropBehavior(); } break; } @@ -20372,9 +20159,9 @@ export class PostgreSqlParser extends SQLParserBase { case 6: this.enterOuterAlt(localContext, 6); { - this.state = 3742; + this.state = 3696; this.match(PostgreSqlParser.KW_DROP); - this.state = 3743; + this.state = 3697; _la = this.tokenStream.LA(1); if(!(_la === 189 || _la === 360)) { this.errorHandler.recoverInline(this); @@ -20383,41 +20170,41 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3745; + this.state = 3699; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 435, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 431, this.context) ) { case 1: { - this.state = 3744; - this.opt_if_exists(); + this.state = 3698; + this.ifExists(); } break; } - this.state = 3747; + this.state = 3701; this.typename(); - this.state = 3752; + this.state = 3706; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3748; + this.state = 3702; this.match(PostgreSqlParser.COMMA); - this.state = 3749; + this.state = 3703; this.typename(); } } - this.state = 3754; + this.state = 3708; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 3756; + this.state = 3710; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 437, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 433, this.context) ) { case 1: { - this.state = 3755; - this.opt_drop_behavior(); + this.state = 3709; + this.optDropBehavior(); } break; } @@ -20426,31 +20213,31 @@ export class PostgreSqlParser extends SQLParserBase { case 7: this.enterOuterAlt(localContext, 7); { - this.state = 3758; + this.state = 3712; this.match(PostgreSqlParser.KW_DROP); - this.state = 3759; + this.state = 3713; this.match(PostgreSqlParser.KW_INDEX); - this.state = 3760; + this.state = 3714; this.match(PostgreSqlParser.KW_CONCURRENTLY); - this.state = 3762; + this.state = 3716; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 438, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 434, this.context) ) { case 1: { - this.state = 3761; - this.opt_if_exists(); + this.state = 3715; + this.ifExists(); } break; } - this.state = 3764; - this.any_name_list(); - this.state = 3766; + this.state = 3718; + this.anyNameList(); + this.state = 3720; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 439, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 435, this.context) ) { case 1: { - this.state = 3765; - this.opt_drop_behavior(); + this.state = 3719; + this.optDropBehavior(); } break; } @@ -20459,37 +20246,37 @@ export class PostgreSqlParser extends SQLParserBase { case 8: this.enterOuterAlt(localContext, 8); { - this.state = 3768; + this.state = 3722; this.match(PostgreSqlParser.KW_DROP); - this.state = 3769; + this.state = 3723; this.match(PostgreSqlParser.KW_CAST); - this.state = 3771; + this.state = 3725; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 220) { { - this.state = 3770; - this.opt_if_exists(); + this.state = 3724; + this.ifExists(); } } - this.state = 3773; + this.state = 3727; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3774; + this.state = 3728; this.typename(); - this.state = 3775; + this.state = 3729; this.match(PostgreSqlParser.KW_AS); - this.state = 3776; + this.state = 3730; this.typename(); - this.state = 3777; + this.state = 3731; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 3779; + this.state = 3733; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 441, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 437, this.context) ) { case 1: { - this.state = 3778; - this.opt_drop_behavior(); + this.state = 3732; + this.optDropBehavior(); } break; } @@ -20498,11 +20285,11 @@ export class PostgreSqlParser extends SQLParserBase { case 9: this.enterOuterAlt(localContext, 9); { - this.state = 3781; + this.state = 3735; this.match(PostgreSqlParser.KW_DROP); - this.state = 3782; + this.state = 3736; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 3783; + this.state = 3737; _la = this.tokenStream.LA(1); if(!(_la === 156 || _la === 206)) { this.errorHandler.recoverInline(this); @@ -20511,27 +20298,27 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3785; + this.state = 3739; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 442, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 438, this.context) ) { case 1: { - this.state = 3784; - this.opt_if_exists(); + this.state = 3738; + this.ifExists(); } break; } - this.state = 3787; - this.any_name(); - this.state = 3788; - this.table_access_method_clause(); - this.state = 3790; + this.state = 3741; + this.anyName(); + this.state = 3742; + this.tableAccessMethodClause(); + this.state = 3744; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 443, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 439, this.context) ) { case 1: { - this.state = 3789; - this.opt_drop_behavior(); + this.state = 3743; + this.optDropBehavior(); } break; } @@ -20540,21 +20327,21 @@ export class PostgreSqlParser extends SQLParserBase { case 10: this.enterOuterAlt(localContext, 10); { - this.state = 3792; + this.state = 3746; this.match(PostgreSqlParser.KW_DROP); - this.state = 3793; + this.state = 3747; this.match(PostgreSqlParser.KW_OWNED); - this.state = 3794; + this.state = 3748; this.match(PostgreSqlParser.KW_BY); - this.state = 3795; - this.role_list(); - this.state = 3797; + this.state = 3749; + this.roleList(); + this.state = 3751; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 444, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 440, this.context) ) { case 1: { - this.state = 3796; - this.opt_drop_behavior(); + this.state = 3750; + this.optDropBehavior(); } break; } @@ -20563,29 +20350,29 @@ export class PostgreSqlParser extends SQLParserBase { case 11: this.enterOuterAlt(localContext, 11); { - this.state = 3799; + this.state = 3753; this.match(PostgreSqlParser.KW_DROP); - this.state = 3800; + this.state = 3754; this.match(PostgreSqlParser.KW_SUBSCRIPTION); - this.state = 3802; + this.state = 3756; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 445, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 441, this.context) ) { case 1: { - this.state = 3801; - this.opt_if_exists(); + this.state = 3755; + this.ifExists(); } break; } - this.state = 3804; + this.state = 3758; this.colId(); - this.state = 3806; + this.state = 3760; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 446, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 442, this.context) ) { case 1: { - this.state = 3805; - this.opt_drop_behavior(); + this.state = 3759; + this.optDropBehavior(); } break; } @@ -20594,56 +20381,56 @@ export class PostgreSqlParser extends SQLParserBase { case 12: this.enterOuterAlt(localContext, 12); { - this.state = 3808; + this.state = 3762; this.match(PostgreSqlParser.KW_DROP); - this.state = 3809; + this.state = 3763; this.match(PostgreSqlParser.KW_TABLESPACE); - this.state = 3811; + this.state = 3765; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 447, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 443, this.context) ) { case 1: { - this.state = 3810; - this.opt_if_exists(); + this.state = 3764; + this.ifExists(); } break; } - this.state = 3813; - this.tablespace_name(); + this.state = 3767; + this.tableSpaceName(); } break; case 13: this.enterOuterAlt(localContext, 13); { - this.state = 3814; + this.state = 3768; this.match(PostgreSqlParser.KW_DROP); - this.state = 3815; + this.state = 3769; this.match(PostgreSqlParser.KW_TRANSFORM); - this.state = 3817; + this.state = 3771; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 220) { { - this.state = 3816; - this.opt_if_exists(); + this.state = 3770; + this.ifExists(); } } - this.state = 3819; + this.state = 3773; this.match(PostgreSqlParser.KW_FOR); - this.state = 3820; + this.state = 3774; this.typename(); - this.state = 3821; + this.state = 3775; this.match(PostgreSqlParser.KW_LANGUAGE); - this.state = 3822; + this.state = 3776; this.colId(); - this.state = 3824; + this.state = 3778; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 449, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 445, this.context) ) { case 1: { - this.state = 3823; - this.opt_drop_behavior(); + this.state = 3777; + this.optDropBehavior(); } break; } @@ -20652,9 +20439,9 @@ export class PostgreSqlParser extends SQLParserBase { case 14: this.enterOuterAlt(localContext, 14); { - this.state = 3826; + this.state = 3780; this.match(PostgreSqlParser.KW_DROP); - this.state = 3827; + this.state = 3781; _la = this.tokenStream.LA(1); if(!(_la === 66 || _la === 99 || _la === 318)) { this.errorHandler.recoverInline(this); @@ -20663,42 +20450,42 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3829; + this.state = 3783; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 450, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 446, this.context) ) { case 1: { - this.state = 3828; - this.opt_if_exists(); + this.state = 3782; + this.ifExists(); } break; } - this.state = 3831; - this.role_list(); + this.state = 3785; + this.roleList(); } break; case 15: this.enterOuterAlt(localContext, 15); { - this.state = 3832; + this.state = 3786; this.match(PostgreSqlParser.KW_DROP); - this.state = 3833; + this.state = 3787; this.match(PostgreSqlParser.KW_USER); - this.state = 3834; + this.state = 3788; this.match(PostgreSqlParser.KW_MAPPING); - this.state = 3836; + this.state = 3790; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 220) { { - this.state = 3835; - this.opt_if_exists(); + this.state = 3789; + this.ifExists(); } } - this.state = 3838; + this.state = 3792; this.match(PostgreSqlParser.KW_FOR); - this.state = 3841; + this.state = 3795; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_CURRENT_ROLE: @@ -21120,81 +20907,81 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 3839; + this.state = 3793; this.roleSpec(); } break; case PostgreSqlParser.KW_USER: { - this.state = 3840; + this.state = 3794; this.match(PostgreSqlParser.KW_USER); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 3843; + this.state = 3797; this.match(PostgreSqlParser.KW_SERVER); - this.state = 3844; + this.state = 3798; this.colId(); } break; case 16: this.enterOuterAlt(localContext, 16); { - this.state = 3845; + this.state = 3799; this.match(PostgreSqlParser.KW_DROP); - this.state = 3846; + this.state = 3800; this.match(PostgreSqlParser.KW_DATABASE); - this.state = 3848; + this.state = 3802; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 453, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 449, this.context) ) { case 1: { - this.state = 3847; - this.opt_if_exists(); + this.state = 3801; + this.ifExists(); } break; } - this.state = 3850; - this.database_name(); - this.state = 3864; + this.state = 3804; + this.databaseName(); + this.state = 3818; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 456, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 452, this.context) ) { case 1: { - this.state = 3852; + this.state = 3806; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 3851; + this.state = 3805; this.match(PostgreSqlParser.KW_WITH); } } { - this.state = 3854; + this.state = 3808; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 3855; + this.state = 3809; this.match(PostgreSqlParser.KW_FORCE); - this.state = 3860; + this.state = 3814; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3856; + this.state = 3810; this.match(PostgreSqlParser.COMMA); - this.state = 3857; + this.state = 3811; this.match(PostgreSqlParser.KW_FORCE); } } - this.state = 3862; + this.state = 3816; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 3863; + this.state = 3817; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -21218,52 +21005,52 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public object_type_any_name(): Object_type_any_nameContext { - let localContext = new Object_type_any_nameContext(this.context, this.state); - this.enterRule(localContext, 312, PostgreSqlParser.RULE_object_type_any_name); + public objectTypeAnyName(): ObjectTypeAnyNameContext { + let localContext = new ObjectTypeAnyNameContext(this.context, this.state); + this.enterRule(localContext, 304, PostgreSqlParser.RULE_objectTypeAnyName); let _la: number; try { - this.state = 3884; + this.state = 3838; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FOREIGN: case PostgreSqlParser.KW_TABLE: this.enterOuterAlt(localContext, 1); { - this.state = 3869; + this.state = 3823; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 63) { { - this.state = 3868; + this.state = 3822; this.match(PostgreSqlParser.KW_FOREIGN); } } - this.state = 3871; + this.state = 3825; this.match(PostgreSqlParser.KW_TABLE); - this.state = 3872; - this.table_name(); + this.state = 3826; + this.tableName(); } break; case PostgreSqlParser.KW_MATERIALIZED: case PostgreSqlParser.KW_VIEW: this.enterOuterAlt(localContext, 2); { - this.state = 3874; + this.state = 3828; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 259) { { - this.state = 3873; + this.state = 3827; this.match(PostgreSqlParser.KW_MATERIALIZED); } } - this.state = 3876; + this.state = 3830; this.match(PostgreSqlParser.KW_VIEW); - this.state = 3877; - this.view_name(); + this.state = 3831; + this.viewName(); } break; case PostgreSqlParser.KW_COLLATION: @@ -21273,7 +21060,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_STATISTICS: this.enterOuterAlt(localContext, 3); { - this.state = 3878; + this.state = 3832; _la = this.tokenStream.LA(1); if(!(_la === 108 || _la === 168 || _la === 226 || _la === 328 || _la === 342)) { this.errorHandler.recoverInline(this); @@ -21282,18 +21069,18 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3879; - this.any_name(); + this.state = 3833; + this.anyName(); } break; case PostgreSqlParser.KW_TEXT: this.enterOuterAlt(localContext, 4); { - this.state = 3880; + this.state = 3834; this.match(PostgreSqlParser.KW_TEXT); - this.state = 3881; + this.state = 3835; this.match(PostgreSqlParser.KW_SEARCH); - this.state = 3882; + this.state = 3836; _la = this.tokenStream.LA(1); if(!(_la === 163 || _la === 185 || _la === 283 || _la === 353)) { this.errorHandler.recoverInline(this); @@ -21302,8 +21089,8 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3883; - this.any_name(); + this.state = 3837; + this.anyName(); } break; default: @@ -21324,12 +21111,12 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public object_type_name(): Object_type_nameContext { - let localContext = new Object_type_nameContext(this.context, this.state); - this.enterRule(localContext, 314, PostgreSqlParser.RULE_object_type_name); + public objectTypeName(): ObjectTypeNameContext { + let localContext = new ObjectTypeNameContext(this.context, this.state); + this.enterRule(localContext, 306, PostgreSqlParser.RULE_objectTypeName); let _la: number; try { - this.state = 3910; + this.state = 3864; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FOREIGN: @@ -21344,111 +21131,111 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_PUBLICATION: this.enterOuterAlt(localContext, 1); { - this.state = 3902; + this.state = 3856; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_EVENT: { - this.state = 3886; + this.state = 3840; this.match(PostgreSqlParser.KW_EVENT); - this.state = 3887; + this.state = 3841; this.match(PostgreSqlParser.KW_TRIGGER); } break; case PostgreSqlParser.KW_ACCESS: { - this.state = 3888; + this.state = 3842; this.match(PostgreSqlParser.KW_ACCESS); - this.state = 3889; + this.state = 3843; this.match(PostgreSqlParser.KW_METHOD); } break; case PostgreSqlParser.KW_EXTENSION: { - this.state = 3890; + this.state = 3844; this.match(PostgreSqlParser.KW_EXTENSION); } break; case PostgreSqlParser.KW_PUBLICATION: { - this.state = 3891; + this.state = 3845; this.match(PostgreSqlParser.KW_PUBLICATION); } break; case PostgreSqlParser.KW_SERVER: { - this.state = 3892; + this.state = 3846; this.match(PostgreSqlParser.KW_SERVER); } break; case PostgreSqlParser.KW_ROLE: { - this.state = 3893; + this.state = 3847; this.match(PostgreSqlParser.KW_ROLE); } break; case PostgreSqlParser.KW_SUBSCRIPTION: { - this.state = 3894; + this.state = 3848; this.match(PostgreSqlParser.KW_SUBSCRIPTION); } break; case PostgreSqlParser.KW_FOREIGN: { - this.state = 3895; + this.state = 3849; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 3896; + this.state = 3850; this.match(PostgreSqlParser.KW_DATA); - this.state = 3897; + this.state = 3851; this.match(PostgreSqlParser.KW_WRAPPER); } break; case PostgreSqlParser.KW_LANGUAGE: case PostgreSqlParser.KW_PROCEDURAL: { - this.state = 3899; + this.state = 3853; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 295) { { - this.state = 3898; + this.state = 3852; this.match(PostgreSqlParser.KW_PROCEDURAL); } } - this.state = 3901; + this.state = 3855; this.match(PostgreSqlParser.KW_LANGUAGE); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 3904; + this.state = 3858; this.colId(); } break; case PostgreSqlParser.KW_SCHEMA: this.enterOuterAlt(localContext, 2); { - this.state = 3905; + this.state = 3859; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 3906; - this.schema_name(); + this.state = 3860; + this.schemaName(); } break; case PostgreSqlParser.KW_DATABASE: this.enterOuterAlt(localContext, 3); { - this.state = 3907; + this.state = 3861; this.match(PostgreSqlParser.KW_DATABASE); - this.state = 3908; - this.database_name(); + this.state = 3862; + this.databaseName(); } break; case PostgreSqlParser.KW_TABLESPACE: this.enterOuterAlt(localContext, 4); { - this.state = 3909; + this.state = 3863; this.optTableSpace(); } break; @@ -21470,28 +21257,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public any_name_list(): Any_name_listContext { - let localContext = new Any_name_listContext(this.context, this.state); - this.enterRule(localContext, 316, PostgreSqlParser.RULE_any_name_list); + public anyNameList(): AnyNameListContext { + let localContext = new AnyNameListContext(this.context, this.state); + this.enterRule(localContext, 308, PostgreSqlParser.RULE_anyNameList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3912; - this.any_name(); - this.state = 3917; + this.state = 3866; + this.anyName(); + this.state = 3871; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3913; + this.state = 3867; this.match(PostgreSqlParser.COMMA); - this.state = 3914; - this.any_name(); + this.state = 3868; + this.anyName(); } } - this.state = 3919; + this.state = 3873; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -21511,20 +21298,20 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public any_name(): Any_nameContext { - let localContext = new Any_nameContext(this.context, this.state); - this.enterRule(localContext, 318, PostgreSqlParser.RULE_any_name); + public anyName(): AnyNameContext { + let localContext = new AnyNameContext(this.context, this.state); + this.enterRule(localContext, 310, PostgreSqlParser.RULE_anyName); try { this.enterOuterAlt(localContext, 1); { - this.state = 3920; + this.state = 3874; this.colId(); - this.state = 3922; + this.state = 3876; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 465, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 461, this.context) ) { case 1: { - this.state = 3921; + this.state = 3875; this.attrs(); } break; @@ -21547,12 +21334,12 @@ export class PostgreSqlParser extends SQLParserBase { } public attrs(): AttrsContext { let localContext = new AttrsContext(this.context, this.state); - this.enterRule(localContext, 320, PostgreSqlParser.RULE_attrs); + this.enterRule(localContext, 312, PostgreSqlParser.RULE_attrs); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 3926; + this.state = 3880; this.errorHandler.sync(this); alternative = 1; do { @@ -21560,9 +21347,9 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { { - this.state = 3924; + this.state = 3878; this.match(PostgreSqlParser.DOT); - this.state = 3925; + this.state = 3879; this.colLabel(); } } @@ -21570,9 +21357,9 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 3928; + this.state = 3882; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 466, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 462, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } } @@ -21592,47 +21379,47 @@ export class PostgreSqlParser extends SQLParserBase { } public truncateStmt(): TruncateStmtContext { let localContext = new TruncateStmtContext(this.context, this.state); - this.enterRule(localContext, 322, PostgreSqlParser.RULE_truncateStmt); + this.enterRule(localContext, 314, PostgreSqlParser.RULE_truncateStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3930; + this.state = 3884; this.match(PostgreSqlParser.KW_TRUNCATE); - this.state = 3932; + this.state = 3886; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 92) { { - this.state = 3931; + this.state = 3885; this.match(PostgreSqlParser.KW_TABLE); } } - this.state = 3934; - this.truncate_table(); - this.state = 3939; + this.state = 3888; + this.truncateTable(); + this.state = 3893; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 3935; + this.state = 3889; this.match(PostgreSqlParser.COMMA); - this.state = 3936; - this.truncate_table(); + this.state = 3890; + this.truncateTable(); } } - this.state = 3941; + this.state = 3895; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 3944; + this.state = 3898; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 469, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 465, this.context) ) { case 1: { - this.state = 3942; + this.state = 3896; _la = this.tokenStream.LA(1); if(!(_la === 167 || _la === 314)) { this.errorHandler.recoverInline(this); @@ -21641,18 +21428,18 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3943; + this.state = 3897; this.match(PostgreSqlParser.KW_IDENTITY); } break; } - this.state = 3947; + this.state = 3901; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 470, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 466, this.context) ) { case 1: { - this.state = 3946; - this.opt_drop_behavior(); + this.state = 3900; + this.optDropBehavior(); } break; } @@ -21672,31 +21459,31 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public truncate_table(): Truncate_tableContext { - let localContext = new Truncate_tableContext(this.context, this.state); - this.enterRule(localContext, 324, PostgreSqlParser.RULE_truncate_table); + public truncateTable(): TruncateTableContext { + let localContext = new TruncateTableContext(this.context, this.state); + this.enterRule(localContext, 316, PostgreSqlParser.RULE_truncateTable); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3950; + this.state = 3904; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 81) { { - this.state = 3949; + this.state = 3903; this.match(PostgreSqlParser.KW_ONLY); } } - this.state = 3952; - this.table_name(); - this.state = 3954; + this.state = 3906; + this.tableName(); + this.state = 3908; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 9) { { - this.state = 3953; + this.state = 3907; this.match(PostgreSqlParser.STAR); } } @@ -21719,57 +21506,57 @@ export class PostgreSqlParser extends SQLParserBase { } public commentStmt(): CommentStmtContext { let localContext = new CommentStmtContext(this.context, this.state); - this.enterRule(localContext, 326, PostgreSqlParser.RULE_commentStmt); + this.enterRule(localContext, 318, PostgreSqlParser.RULE_commentStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 3956; + this.state = 3910; this.match(PostgreSqlParser.KW_COMMENT); - this.state = 3957; + this.state = 3911; this.match(PostgreSqlParser.KW_ON); - this.state = 4016; + this.state = 3970; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 476, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 472, this.context) ) { case 1: { - this.state = 3958; - this.object_type_any_name(); + this.state = 3912; + this.objectTypeAnyName(); } break; case 2: { - this.state = 3959; - this.object_type_name(); + this.state = 3913; + this.objectTypeName(); } break; case 3: { - this.state = 3960; + this.state = 3914; this.match(PostgreSqlParser.KW_COLUMN); { - this.state = 3961; + this.state = 3915; this.colId(); - this.state = 3963; + this.state = 3917; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 473, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 469, this.context) ) { case 1: { - this.state = 3962; + this.state = 3916; this.attrs(); } break; } } - this.state = 3965; + this.state = 3919; this.match(PostgreSqlParser.DOT); - this.state = 3966; - this.column_name(); + this.state = 3920; + this.columnName(); } break; case 4: { - this.state = 3968; + this.state = 3922; _la = this.tokenStream.LA(1); if(!(_la === 189 || _la === 360)) { this.errorHandler.recoverInline(this); @@ -21778,66 +21565,66 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3969; + this.state = 3923; this.typename(); } break; case 5: { - this.state = 3970; + this.state = 3924; this.match(PostgreSqlParser.KW_AGGREGATE); - this.state = 3971; + this.state = 3925; this.aggregateWithArgTypes(); } break; case 6: { - this.state = 3972; + this.state = 3926; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 3973; + this.state = 3927; this.functionWithArgTypes(); } break; case 7: { - this.state = 3974; + this.state = 3928; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 3975; + this.state = 3929; this.operatorWithArgTypes(); } break; case 8: { - this.state = 3976; + this.state = 3930; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 3977; + this.state = 3931; this.colId(); - this.state = 3978; + this.state = 3932; this.match(PostgreSqlParser.KW_ON); - this.state = 3984; + this.state = 3938; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 475, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 471, this.context) ) { case 1: { - this.state = 3979; - this.table_name(); + this.state = 3933; + this.tableName(); } break; case 2: { { - this.state = 3981; + this.state = 3935; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 474, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 470, this.context) ) { case 1: { - this.state = 3980; + this.state = 3934; this.match(PostgreSqlParser.KW_DOMAIN); } break; } - this.state = 3983; - this.any_name(); + this.state = 3937; + this.anyName(); } } break; @@ -21846,7 +21633,7 @@ export class PostgreSqlParser extends SQLParserBase { break; case 9: { - this.state = 3986; + this.state = 3940; _la = this.tokenStream.LA(1); if(!(_la === 321 || _la === 357 || _la === 445)) { this.errorHandler.recoverInline(this); @@ -21855,49 +21642,49 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3987; + this.state = 3941; this.colId(); - this.state = 3988; + this.state = 3942; this.match(PostgreSqlParser.KW_ON); - this.state = 3989; - this.any_name(); + this.state = 3943; + this.anyName(); } break; case 10: { - this.state = 3991; + this.state = 3945; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 3992; + this.state = 3946; this.procedureWithArgTypes(); } break; case 11: { - this.state = 3993; + this.state = 3947; this.match(PostgreSqlParser.KW_ROUTINE); - this.state = 3994; + this.state = 3948; this.routineWithArgTypes(); } break; case 12: { - this.state = 3995; + this.state = 3949; this.match(PostgreSqlParser.KW_TRANSFORM); - this.state = 3996; + this.state = 3950; this.match(PostgreSqlParser.KW_FOR); - this.state = 3997; + this.state = 3951; this.typename(); - this.state = 3998; + this.state = 3952; this.match(PostgreSqlParser.KW_LANGUAGE); - this.state = 3999; + this.state = 3953; this.colId(); } break; case 13: { - this.state = 4001; + this.state = 3955; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 4002; + this.state = 3956; _la = this.tokenStream.LA(1); if(!(_la === 156 || _la === 206)) { this.errorHandler.recoverInline(this); @@ -21906,42 +21693,42 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4003; - this.any_name(); - this.state = 4004; - this.table_access_method_clause(); + this.state = 3957; + this.anyName(); + this.state = 3958; + this.tableAccessMethodClause(); } break; case 14: { - this.state = 4006; + this.state = 3960; this.match(PostgreSqlParser.KW_LARGE); - this.state = 4007; + this.state = 3961; this.match(PostgreSqlParser.KW_OBJECT); - this.state = 4008; + this.state = 3962; this.numericOnly(); } break; case 15: { - this.state = 4009; + this.state = 3963; this.match(PostgreSqlParser.KW_CAST); - this.state = 4010; + this.state = 3964; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4011; + this.state = 3965; this.typename(); - this.state = 4012; + this.state = 3966; this.match(PostgreSqlParser.KW_AS); - this.state = 4013; + this.state = 3967; this.typename(); - this.state = 4014; + this.state = 3968; this.match(PostgreSqlParser.CLOSE_PAREN); } break; } - this.state = 4018; + this.state = 3972; this.match(PostgreSqlParser.KW_IS); - this.state = 4021; + this.state = 3975; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.StringConstant: @@ -21949,13 +21736,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.BeginDollarStringConstant: case PostgreSqlParser.EscapeStringConstant: { - this.state = 4019; + this.state = 3973; this.stringConst(); } break; case PostgreSqlParser.KW_NULL: { - this.state = 4020; + this.state = 3974; this.match(PostgreSqlParser.KW_NULL); } break; @@ -21980,35 +21767,35 @@ export class PostgreSqlParser extends SQLParserBase { } public secLabelStmt(): SecLabelStmtContext { let localContext = new SecLabelStmtContext(this.context, this.state); - this.enterRule(localContext, 328, PostgreSqlParser.RULE_secLabelStmt); + this.enterRule(localContext, 320, PostgreSqlParser.RULE_secLabelStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4023; + this.state = 3977; this.match(PostgreSqlParser.KW_SECURITY); - this.state = 4024; + this.state = 3978; this.match(PostgreSqlParser.KW_LABEL); - this.state = 4027; + this.state = 3981; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 62) { { - this.state = 4025; + this.state = 3979; this.match(PostgreSqlParser.KW_FOR); - this.state = 4026; + this.state = 3980; this.nonReservedWordOrStringConst(); } } - this.state = 4029; + this.state = 3983; this.match(PostgreSqlParser.KW_ON); - this.state = 4047; + this.state = 4001; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 479, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 475, this.context) ) { case 1: { - this.state = 4030; + this.state = 3984; _la = this.tokenStream.LA(1); if(!(_la === 189 || _la === 360)) { this.errorHandler.recoverInline(this); @@ -22017,76 +21804,76 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4031; + this.state = 3985; this.typename(); } break; case 2: { - this.state = 4032; + this.state = 3986; this.match(PostgreSqlParser.KW_AGGREGATE); - this.state = 4033; + this.state = 3987; this.aggregateWithArgTypes(); } break; case 3: { - this.state = 4034; + this.state = 3988; this.match(PostgreSqlParser.KW_COLUMN); - this.state = 4035; - this.column_name(); + this.state = 3989; + this.columnName(); } break; case 4: { - this.state = 4036; + this.state = 3990; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 4037; + this.state = 3991; this.functionWithArgTypes(); } break; case 5: { - this.state = 4038; + this.state = 3992; this.match(PostgreSqlParser.KW_LARGE); - this.state = 4039; + this.state = 3993; this.match(PostgreSqlParser.KW_OBJECT); - this.state = 4040; + this.state = 3994; this.numericOnly(); } break; case 6: { - this.state = 4041; + this.state = 3995; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 4042; + this.state = 3996; this.procedureWithArgTypes(); } break; case 7: { - this.state = 4043; + this.state = 3997; this.match(PostgreSqlParser.KW_ROUTINE); - this.state = 4044; + this.state = 3998; this.routineWithArgTypes(); } break; case 8: { - this.state = 4045; - this.object_type_any_name(); + this.state = 3999; + this.objectTypeAnyName(); } break; case 9: { - this.state = 4046; - this.object_type_name(); + this.state = 4000; + this.objectTypeName(); } break; } - this.state = 4049; + this.state = 4003; this.match(PostgreSqlParser.KW_IS); - this.state = 4052; + this.state = 4006; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.StringConstant: @@ -22094,13 +21881,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.BeginDollarStringConstant: case PostgreSqlParser.EscapeStringConstant: { - this.state = 4050; + this.state = 4004; this.stringConst(); } break; case PostgreSqlParser.KW_NULL: { - this.state = 4051; + this.state = 4005; this.match(PostgreSqlParser.KW_NULL); } break; @@ -22125,12 +21912,12 @@ export class PostgreSqlParser extends SQLParserBase { } public fetchStmt(): FetchStmtContext { let localContext = new FetchStmtContext(this.context, this.state); - this.enterRule(localContext, 330, PostgreSqlParser.RULE_fetchStmt); + this.enterRule(localContext, 322, PostgreSqlParser.RULE_fetchStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4054; + this.state = 4008; _la = this.tokenStream.LA(1); if(!(_la === 61 || _la === 265)) { this.errorHandler.recoverInline(this); @@ -22139,7 +21926,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4055; + this.state = 4009; this.fetch_args(); } } @@ -22159,21 +21946,21 @@ export class PostgreSqlParser extends SQLParserBase { } public fetch_args(): Fetch_argsContext { let localContext = new Fetch_argsContext(this.context, this.state); - this.enterRule(localContext, 332, PostgreSqlParser.RULE_fetch_args); + this.enterRule(localContext, 324, PostgreSqlParser.RULE_fetch_args); let _la: number; try { - this.state = 4100; + this.state = 4054; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 492, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 488, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4058; + this.state = 4012; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 481, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 477, this.context) ) { case 1: { - this.state = 4057; + this.state = 4011; _la = this.tokenStream.LA(1); if(!(_la === 207 || _la === 249 || _la === 268 || _la === 293)) { this.errorHandler.recoverInline(this); @@ -22185,29 +21972,29 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 4061; + this.state = 4015; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 64 || _la === 68) { { - this.state = 4060; - this.from_in(); + this.state = 4014; + this.fromIn(); } } - this.state = 4063; + this.state = 4017; this.colId(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4065; + this.state = 4019; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 130 || _la === 307) { { - this.state = 4064; + this.state = 4018; _la = this.tokenStream.LA(1); if(!(_la === 130 || _la === 307)) { this.errorHandler.recoverInline(this); @@ -22219,86 +22006,86 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 4067; + this.state = 4021; this.signedConst(); - this.state = 4069; + this.state = 4023; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 64 || _la === 68) { { - this.state = 4068; - this.from_in(); + this.state = 4022; + this.fromIn(); } } - this.state = 4071; + this.state = 4025; this.colId(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4073; + this.state = 4027; this.match(PostgreSqlParser.KW_FORWARD); - this.state = 4075; + this.state = 4029; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 12 || _la === 13 || _la === 574) { { - this.state = 4074; + this.state = 4028; this.signedConst(); } } - this.state = 4078; + this.state = 4032; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 64 || _la === 68) { { - this.state = 4077; - this.from_in(); + this.state = 4031; + this.fromIn(); } } - this.state = 4080; + this.state = 4034; this.colId(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 4082; + this.state = 4036; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 210) { { - this.state = 4081; + this.state = 4035; this.match(PostgreSqlParser.KW_FORWARD); } } - this.state = 4084; + this.state = 4038; this.match(PostgreSqlParser.KW_ALL); - this.state = 4086; + this.state = 4040; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 64 || _la === 68) { { - this.state = 4085; - this.from_in(); + this.state = 4039; + this.fromIn(); } } - this.state = 4088; + this.state = 4042; this.colId(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 4089; + this.state = 4043; this.match(PostgreSqlParser.KW_BACKWARD); - this.state = 4094; + this.state = 4048; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ALL: @@ -22699,12 +22486,12 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 4091; + this.state = 4045; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 30) { { - this.state = 4090; + this.state = 4044; this.match(PostgreSqlParser.KW_ALL); } } @@ -22715,24 +22502,24 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.MINUS: case PostgreSqlParser.Integral: { - this.state = 4093; + this.state = 4047; this.signedConst(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4097; + this.state = 4051; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 64 || _la === 68) { { - this.state = 4096; - this.from_in(); + this.state = 4050; + this.fromIn(); } } - this.state = 4099; + this.state = 4053; this.colId(); } break; @@ -22752,14 +22539,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public from_in(): From_inContext { - let localContext = new From_inContext(this.context, this.state); - this.enterRule(localContext, 334, PostgreSqlParser.RULE_from_in); + public fromIn(): FromInContext { + let localContext = new FromInContext(this.context, this.state); + this.enterRule(localContext, 326, PostgreSqlParser.RULE_fromIn); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4102; + this.state = 4056; _la = this.tokenStream.LA(1); if(!(_la === 64 || _la === 68)) { this.errorHandler.recoverInline(this); @@ -22786,32 +22573,32 @@ export class PostgreSqlParser extends SQLParserBase { } public grantStmt(): GrantStmtContext { let localContext = new GrantStmtContext(this.context, this.state); - this.enterRule(localContext, 336, PostgreSqlParser.RULE_grantStmt); + this.enterRule(localContext, 328, PostgreSqlParser.RULE_grantStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 4104; + this.state = 4058; this.match(PostgreSqlParser.KW_GRANT); - this.state = 4105; + this.state = 4059; this.privileges(); - this.state = 4106; + this.state = 4060; this.match(PostgreSqlParser.KW_ON); - this.state = 4107; - this.privilege_target(); - this.state = 4108; + this.state = 4061; + this.privilegeTarget(); + this.state = 4062; this.match(PostgreSqlParser.KW_TO); - this.state = 4109; - this.grantee_list(); - this.state = 4113; + this.state = 4063; + this.granteeList(); + this.state = 4067; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 493, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 489, this.context) ) { case 1: { - this.state = 4110; + this.state = 4064; this.match(PostgreSqlParser.KW_WITH); - this.state = 4111; + this.state = 4065; this.match(PostgreSqlParser.KW_GRANT); - this.state = 4112; + this.state = 4066; this.match(PostgreSqlParser.KW_OPTION); } break; @@ -22834,44 +22621,44 @@ export class PostgreSqlParser extends SQLParserBase { } public revokeStmt(): RevokeStmtContext { let localContext = new RevokeStmtContext(this.context, this.state); - this.enterRule(localContext, 338, PostgreSqlParser.RULE_revokeStmt); + this.enterRule(localContext, 330, PostgreSqlParser.RULE_revokeStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4115; + this.state = 4069; this.match(PostgreSqlParser.KW_REVOKE); - this.state = 4119; + this.state = 4073; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 65) { { - this.state = 4116; + this.state = 4070; this.match(PostgreSqlParser.KW_GRANT); - this.state = 4117; + this.state = 4071; this.match(PostgreSqlParser.KW_OPTION); - this.state = 4118; + this.state = 4072; this.match(PostgreSqlParser.KW_FOR); } } - this.state = 4121; + this.state = 4075; this.privileges(); - this.state = 4122; + this.state = 4076; this.match(PostgreSqlParser.KW_ON); - this.state = 4123; - this.privilege_target(); - this.state = 4124; + this.state = 4077; + this.privilegeTarget(); + this.state = 4078; this.match(PostgreSqlParser.KW_FROM); - this.state = 4125; - this.grantee_list(); - this.state = 4127; + this.state = 4079; + this.granteeList(); + this.state = 4081; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 495, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 491, this.context) ) { case 1: { - this.state = 4126; - this.opt_drop_behavior(); + this.state = 4080; + this.optDropBehavior(); } break; } @@ -22893,30 +22680,30 @@ export class PostgreSqlParser extends SQLParserBase { } public privileges(): PrivilegesContext { let localContext = new PrivilegesContext(this.context, this.state); - this.enterRule(localContext, 340, PostgreSqlParser.RULE_privileges); + this.enterRule(localContext, 332, PostgreSqlParser.RULE_privileges); let _la: number; try { - this.state = 4152; + this.state = 4106; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 500, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 496, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4129; + this.state = 4083; this.privilege(); - this.state = 4134; + this.state = 4088; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4130; + this.state = 4084; this.match(PostgreSqlParser.COMMA); - this.state = 4131; + this.state = 4085; this.privilege(); } } - this.state = 4136; + this.state = 4090; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -22925,25 +22712,25 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4137; + this.state = 4091; this.match(PostgreSqlParser.KW_ALL); - this.state = 4139; + this.state = 4093; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 294) { { - this.state = 4138; + this.state = 4092; this.match(PostgreSqlParser.KW_PRIVILEGES); } } - this.state = 4142; + this.state = 4096; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 4141; - this.opt_column_list(); + this.state = 4095; + this.optColumnList(); } } @@ -22952,21 +22739,21 @@ export class PostgreSqlParser extends SQLParserBase { case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4144; + this.state = 4098; this.beforePrivilegeSelect(); - this.state = 4149; + this.state = 4103; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4145; + this.state = 4099; this.match(PostgreSqlParser.COMMA); - this.state = 4146; + this.state = 4100; this.beforePrivilegeSelect(); } } - this.state = 4151; + this.state = 4105; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -22990,12 +22777,12 @@ export class PostgreSqlParser extends SQLParserBase { } public beforePrivilegeSelect(): BeforePrivilegeSelectContext { let localContext = new BeforePrivilegeSelectContext(this.context, this.state); - this.enterRule(localContext, 342, PostgreSqlParser.RULE_beforePrivilegeSelect); + this.enterRule(localContext, 334, PostgreSqlParser.RULE_beforePrivilegeSelect); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4154; + this.state = 4108; _la = this.tokenStream.LA(1); if(!(_la === 46 || _la === 88 || _la === 182 || _la === 202 || _la === 241 || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 131173) !== 0) || ((((_la - 521)) & ~0x1F) === 0 && ((1 << (_la - 521)) & 7) !== 0))) { this.errorHandler.recoverInline(this); @@ -23022,29 +22809,29 @@ export class PostgreSqlParser extends SQLParserBase { } public privilege(): PrivilegeContext { let localContext = new PrivilegeContext(this.context, this.state); - this.enterRule(localContext, 344, PostgreSqlParser.RULE_privilege); + this.enterRule(localContext, 336, PostgreSqlParser.RULE_privilege); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4160; + this.state = 4114; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_SELECT: { - this.state = 4156; + this.state = 4110; this.match(PostgreSqlParser.KW_SELECT); } break; case PostgreSqlParser.KW_REFERENCES: { - this.state = 4157; + this.state = 4111; this.match(PostgreSqlParser.KW_REFERENCES); } break; case PostgreSqlParser.KW_CREATE: { - this.state = 4158; + this.state = 4112; this.match(PostgreSqlParser.KW_CREATE); } break; @@ -23443,20 +23230,20 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 4159; + this.state = 4113; this.colId(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4163; + this.state = 4117; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 4162; - this.opt_column_list(); + this.state = 4116; + this.optColumnList(); } } @@ -23476,64 +23263,64 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public privilege_target(): Privilege_targetContext { - let localContext = new Privilege_targetContext(this.context, this.state); - this.enterRule(localContext, 346, PostgreSqlParser.RULE_privilege_target); + public privilegeTarget(): PrivilegeTargetContext { + let localContext = new PrivilegeTargetContext(this.context, this.state); + this.enterRule(localContext, 338, PostgreSqlParser.RULE_privilegeTarget); let _la: number; try { - this.state = 4210; + this.state = 4164; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 507, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 503, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4165; + this.state = 4119; this.match(PostgreSqlParser.KW_TABLE); - this.state = 4166; - this.table_name_list(); + this.state = 4120; + this.tableNameList(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4168; + this.state = 4122; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 503, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 499, this.context) ) { case 1: { - this.state = 4167; + this.state = 4121; this.match(PostgreSqlParser.KW_SEQUENCE); } break; } - this.state = 4170; - this.qualified_name_list(); + this.state = 4124; + this.qualifiedNameList(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4178; + this.state = 4132; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FOREIGN: { - this.state = 4171; + this.state = 4125; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 4175; + this.state = 4129; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DATA: { - this.state = 4172; + this.state = 4126; this.match(PostgreSqlParser.KW_DATA); - this.state = 4173; + this.state = 4127; this.match(PostgreSqlParser.KW_WRAPPER); } break; case PostgreSqlParser.KW_SERVER: { - this.state = 4174; + this.state = 4128; this.match(PostgreSqlParser.KW_SERVER); } break; @@ -23544,57 +23331,57 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_LANGUAGE: { - this.state = 4177; + this.state = 4131; this.match(PostgreSqlParser.KW_LANGUAGE); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4180; - this.name_list(); + this.state = 4134; + this.nameList(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 4181; + this.state = 4135; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 4182; + this.state = 4136; this.functionWithArgTypesList(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 4183; + this.state = 4137; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 4184; + this.state = 4138; this.procedureWithArgTypesList(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 4185; + this.state = 4139; this.match(PostgreSqlParser.KW_ROUTINE); - this.state = 4186; + this.state = 4140; this.routineWithArgTypesList(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 4187; + this.state = 4141; this.match(PostgreSqlParser.KW_DATABASE); - this.state = 4188; - this.database_nameList(); + this.state = 4142; + this.databaseNameList(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 4189; + this.state = 4143; _la = this.tokenStream.LA(1); if(!(_la === 189 || _la === 360)) { this.errorHandler.recoverInline(this); @@ -23603,32 +23390,32 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4190; - this.any_name_list(); + this.state = 4144; + this.anyNameList(); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 4191; + this.state = 4145; this.match(PostgreSqlParser.KW_LARGE); - this.state = 4192; + this.state = 4146; this.match(PostgreSqlParser.KW_OBJECT); - this.state = 4193; + this.state = 4147; this.numericOnly(); - this.state = 4198; + this.state = 4152; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4194; + this.state = 4148; this.match(PostgreSqlParser.COMMA); - this.state = 4195; + this.state = 4149; this.numericOnly(); } } - this.state = 4200; + this.state = 4154; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -23637,27 +23424,27 @@ export class PostgreSqlParser extends SQLParserBase { case 10: this.enterOuterAlt(localContext, 10); { - this.state = 4201; + this.state = 4155; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 4202; - this.schema_name_list(); + this.state = 4156; + this.schemaNameList(); } break; case 11: this.enterOuterAlt(localContext, 11); { - this.state = 4203; + this.state = 4157; this.match(PostgreSqlParser.KW_TABLESPACE); - this.state = 4204; - this.tablespace_name_list(); + this.state = 4158; + this.tableSpaceNameList(); } break; case 12: this.enterOuterAlt(localContext, 12); { - this.state = 4205; + this.state = 4159; this.match(PostgreSqlParser.KW_ALL); - this.state = 4206; + this.state = 4160; _la = this.tokenStream.LA(1); if(!(_la === 212 || _la === 329 || _la === 350 || _la === 455 || _la === 457)) { this.errorHandler.recoverInline(this); @@ -23666,12 +23453,12 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4207; + this.state = 4161; this.match(PostgreSqlParser.KW_IN); - this.state = 4208; + this.state = 4162; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 4209; - this.schema_name_list(); + this.state = 4163; + this.schemaNameList(); } break; } @@ -23690,52 +23477,52 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public grantee_list(): Grantee_listContext { - let localContext = new Grantee_listContext(this.context, this.state); - this.enterRule(localContext, 348, PostgreSqlParser.RULE_grantee_list); + public granteeList(): GranteeListContext { + let localContext = new GranteeListContext(this.context, this.state); + this.enterRule(localContext, 340, PostgreSqlParser.RULE_granteeList); let _la: number; try { this.enterOuterAlt(localContext, 1); { { - this.state = 4213; + this.state = 4167; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 66) { { - this.state = 4212; + this.state = 4166; this.match(PostgreSqlParser.KW_GROUP); } } - this.state = 4215; + this.state = 4169; this.roleSpec(); } - this.state = 4224; + this.state = 4178; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4217; + this.state = 4171; this.match(PostgreSqlParser.COMMA); { - this.state = 4219; + this.state = 4173; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 66) { { - this.state = 4218; + this.state = 4172; this.match(PostgreSqlParser.KW_GROUP); } } - this.state = 4221; + this.state = 4175; this.roleSpec(); } } } - this.state = 4226; + this.state = 4180; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -23757,59 +23544,59 @@ export class PostgreSqlParser extends SQLParserBase { } public grantRoleStmt(): GrantRoleStmtContext { let localContext = new GrantRoleStmtContext(this.context, this.state); - this.enterRule(localContext, 350, PostgreSqlParser.RULE_grantRoleStmt); + this.enterRule(localContext, 342, PostgreSqlParser.RULE_grantRoleStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4227; + this.state = 4181; this.match(PostgreSqlParser.KW_GRANT); - this.state = 4228; + this.state = 4182; this.privilege(); - this.state = 4233; + this.state = 4187; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4229; + this.state = 4183; this.match(PostgreSqlParser.COMMA); - this.state = 4230; + this.state = 4184; this.privilege(); } } - this.state = 4235; + this.state = 4189; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4236; + this.state = 4190; this.match(PostgreSqlParser.KW_TO); - this.state = 4237; - this.role_list(); - this.state = 4241; + this.state = 4191; + this.roleList(); + this.state = 4195; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 512, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 508, this.context) ) { case 1: { - this.state = 4238; + this.state = 4192; this.match(PostgreSqlParser.KW_WITH); - this.state = 4239; + this.state = 4193; this.match(PostgreSqlParser.KW_ADMIN); - this.state = 4240; + this.state = 4194; this.match(PostgreSqlParser.KW_OPTION); } break; } - this.state = 4246; + this.state = 4200; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 513, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 509, this.context) ) { case 1: { - this.state = 4243; + this.state = 4197; this.match(PostgreSqlParser.KW_GRANTED); - this.state = 4244; + this.state = 4198; this.match(PostgreSqlParser.KW_BY); - this.state = 4245; + this.state = 4199; this.roleSpec(); } break; @@ -23832,70 +23619,70 @@ export class PostgreSqlParser extends SQLParserBase { } public revokeRoleStmt(): RevokeRoleStmtContext { let localContext = new RevokeRoleStmtContext(this.context, this.state); - this.enterRule(localContext, 352, PostgreSqlParser.RULE_revokeRoleStmt); + this.enterRule(localContext, 344, PostgreSqlParser.RULE_revokeRoleStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4248; + this.state = 4202; this.match(PostgreSqlParser.KW_REVOKE); - this.state = 4252; + this.state = 4206; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 514, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 510, this.context) ) { case 1: { - this.state = 4249; + this.state = 4203; this.match(PostgreSqlParser.KW_ADMIN); - this.state = 4250; + this.state = 4204; this.match(PostgreSqlParser.KW_OPTION); - this.state = 4251; + this.state = 4205; this.match(PostgreSqlParser.KW_FOR); } break; } - this.state = 4254; + this.state = 4208; this.privilege(); - this.state = 4259; + this.state = 4213; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4255; + this.state = 4209; this.match(PostgreSqlParser.COMMA); - this.state = 4256; + this.state = 4210; this.privilege(); } } - this.state = 4261; + this.state = 4215; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4262; + this.state = 4216; this.match(PostgreSqlParser.KW_FROM); - this.state = 4263; - this.role_list(); - this.state = 4267; + this.state = 4217; + this.roleList(); + this.state = 4221; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 516, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 512, this.context) ) { case 1: { - this.state = 4264; + this.state = 4218; this.match(PostgreSqlParser.KW_GRANTED); - this.state = 4265; + this.state = 4219; this.match(PostgreSqlParser.KW_BY); - this.state = 4266; + this.state = 4220; this.roleSpec(); } break; } - this.state = 4270; + this.state = 4224; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 517, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 513, this.context) ) { case 1: { - this.state = 4269; - this.opt_drop_behavior(); + this.state = 4223; + this.optDropBehavior(); } break; } @@ -23917,40 +23704,40 @@ export class PostgreSqlParser extends SQLParserBase { } public alterDefaultPrivilegesStmt(): AlterDefaultPrivilegesStmtContext { let localContext = new AlterDefaultPrivilegesStmtContext(this.context, this.state); - this.enterRule(localContext, 354, PostgreSqlParser.RULE_alterDefaultPrivilegesStmt); + this.enterRule(localContext, 346, PostgreSqlParser.RULE_alterDefaultPrivilegesStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4272; + this.state = 4226; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4273; + this.state = 4227; this.match(PostgreSqlParser.KW_DEFAULT); - this.state = 4274; + this.state = 4228; this.match(PostgreSqlParser.KW_PRIVILEGES); - this.state = 4283; + this.state = 4237; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 62 || _la === 68) { { - this.state = 4281; + this.state = 4235; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_IN: { - this.state = 4275; + this.state = 4229; this.match(PostgreSqlParser.KW_IN); - this.state = 4276; + this.state = 4230; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 4277; - this.schema_name_list(); + this.state = 4231; + this.schemaNameList(); } break; case PostgreSqlParser.KW_FOR: { - this.state = 4278; + this.state = 4232; this.match(PostgreSqlParser.KW_FOR); - this.state = 4279; + this.state = 4233; _la = this.tokenStream.LA(1); if(!(_la === 99 || _la === 318)) { this.errorHandler.recoverInline(this); @@ -23959,19 +23746,19 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4280; - this.role_list(); + this.state = 4234; + this.roleList(); } break; default: throw new antlr.NoViableAltException(this); } } - this.state = 4285; + this.state = 4239; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4286; + this.state = 4240; this.defaclaction(); } } @@ -23991,37 +23778,37 @@ export class PostgreSqlParser extends SQLParserBase { } public defaclaction(): DefaclactionContext { let localContext = new DefaclactionContext(this.context, this.state); - this.enterRule(localContext, 356, PostgreSqlParser.RULE_defaclaction); + this.enterRule(localContext, 348, PostgreSqlParser.RULE_defaclaction); let _la: number; try { - this.state = 4313; + this.state = 4267; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_GRANT: this.enterOuterAlt(localContext, 1); { - this.state = 4288; + this.state = 4242; this.match(PostgreSqlParser.KW_GRANT); - this.state = 4289; + this.state = 4243; this.privileges(); - this.state = 4290; + this.state = 4244; this.match(PostgreSqlParser.KW_ON); - this.state = 4291; - this.defacl_privilege_target(); - this.state = 4292; + this.state = 4245; + this.defaclPrivilegeTarget(); + this.state = 4246; this.match(PostgreSqlParser.KW_TO); - this.state = 4293; - this.grantee_list(); - this.state = 4297; + this.state = 4247; + this.granteeList(); + this.state = 4251; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 520, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 516, this.context) ) { case 1: { - this.state = 4294; + this.state = 4248; this.match(PostgreSqlParser.KW_WITH); - this.state = 4295; + this.state = 4249; this.match(PostgreSqlParser.KW_GRANT); - this.state = 4296; + this.state = 4250; this.match(PostgreSqlParser.KW_OPTION); } break; @@ -24031,39 +23818,39 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_REVOKE: this.enterOuterAlt(localContext, 2); { - this.state = 4299; + this.state = 4253; this.match(PostgreSqlParser.KW_REVOKE); - this.state = 4303; + this.state = 4257; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 65) { { - this.state = 4300; + this.state = 4254; this.match(PostgreSqlParser.KW_GRANT); - this.state = 4301; + this.state = 4255; this.match(PostgreSqlParser.KW_OPTION); - this.state = 4302; + this.state = 4256; this.match(PostgreSqlParser.KW_FOR); } } - this.state = 4305; + this.state = 4259; this.privileges(); - this.state = 4306; + this.state = 4260; this.match(PostgreSqlParser.KW_ON); - this.state = 4307; - this.defacl_privilege_target(); - this.state = 4308; + this.state = 4261; + this.defaclPrivilegeTarget(); + this.state = 4262; this.match(PostgreSqlParser.KW_FROM); - this.state = 4309; - this.grantee_list(); - this.state = 4311; + this.state = 4263; + this.granteeList(); + this.state = 4265; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 522, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 518, this.context) ) { case 1: { - this.state = 4310; - this.opt_drop_behavior(); + this.state = 4264; + this.optDropBehavior(); } break; } @@ -24087,14 +23874,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public defacl_privilege_target(): Defacl_privilege_targetContext { - let localContext = new Defacl_privilege_targetContext(this.context, this.state); - this.enterRule(localContext, 358, PostgreSqlParser.RULE_defacl_privilege_target); + public defaclPrivilegeTarget(): DefaclPrivilegeTargetContext { + let localContext = new DefaclPrivilegeTargetContext(this.context, this.state); + this.enterRule(localContext, 350, PostgreSqlParser.RULE_defaclPrivilegeTarget); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4315; + this.state = 4269; _la = this.tokenStream.LA(1); if(!(_la === 212 || _la === 329 || _la === 350 || _la === 361 || _la === 455 || _la === 456)) { this.errorHandler.recoverInline(this); @@ -24121,132 +23908,132 @@ export class PostgreSqlParser extends SQLParserBase { } public indexStmt(): IndexStmtContext { let localContext = new IndexStmtContext(this.context, this.state); - this.enterRule(localContext, 360, PostgreSqlParser.RULE_indexStmt); + this.enterRule(localContext, 352, PostgreSqlParser.RULE_indexStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4317; + this.state = 4271; this.match(PostgreSqlParser.KW_CREATE); - this.state = 4319; + this.state = 4273; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 98) { { - this.state = 4318; + this.state = 4272; this.match(PostgreSqlParser.KW_UNIQUE); } } - this.state = 4321; + this.state = 4275; this.match(PostgreSqlParser.KW_INDEX); - this.state = 4323; + this.state = 4277; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 109) { { - this.state = 4322; + this.state = 4276; this.match(PostgreSqlParser.KW_CONCURRENTLY); } } - this.state = 4326; + this.state = 4280; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 526, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 522, this.context) ) { case 1: { - this.state = 4325; - this.opt_if_not_exists(); + this.state = 4279; + this.ifNotExists(); } break; } - this.state = 4329; + this.state = 4283; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 4328; + this.state = 4282; this.colId(); } } - this.state = 4331; + this.state = 4285; this.match(PostgreSqlParser.KW_ON); - this.state = 4332; - this.relation_expr(); - this.state = 4334; + this.state = 4286; + this.relationExpr(); + this.state = 4288; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 4333; - this.table_access_method_clause(); + this.state = 4287; + this.tableAccessMethodClause(); } } - this.state = 4336; - this.index_params(); - this.state = 4339; + this.state = 4290; + this.indexParams(); + this.state = 4293; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 529, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 525, this.context) ) { case 1: { - this.state = 4337; + this.state = 4291; this.match(PostgreSqlParser.KW_INCLUDE); - this.state = 4338; - this.index_params(); + this.state = 4292; + this.indexParams(); } break; } - this.state = 4346; + this.state = 4300; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 531, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 527, this.context) ) { case 1: { - this.state = 4341; + this.state = 4295; this.match(PostgreSqlParser.KW_NULLS); - this.state = 4343; + this.state = 4297; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 4342; + this.state = 4296; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 4345; + this.state = 4299; this.match(PostgreSqlParser.KW_DISTINCT); } break; } - this.state = 4349; + this.state = 4303; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 532, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 528, this.context) ) { case 1: { - this.state = 4348; + this.state = 4302; this.optRelOptions(); } break; } - this.state = 4352; + this.state = 4306; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 533, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 529, this.context) ) { case 1: { - this.state = 4351; + this.state = 4305; this.optTableSpace(); } break; } - this.state = 4355; + this.state = 4309; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 103) { { - this.state = 4354; - this.where_clause(); + this.state = 4308; + this.whereClause(); } } @@ -24266,34 +24053,34 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public index_params(): Index_paramsContext { - let localContext = new Index_paramsContext(this.context, this.state); - this.enterRule(localContext, 362, PostgreSqlParser.RULE_index_params); + public indexParams(): IndexParamsContext { + let localContext = new IndexParamsContext(this.context, this.state); + this.enterRule(localContext, 354, PostgreSqlParser.RULE_indexParams); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4357; + this.state = 4311; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4358; - this.index_elem(); - this.state = 4363; + this.state = 4312; + this.indexElem(); + this.state = 4317; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4359; + this.state = 4313; this.match(PostgreSqlParser.COMMA); - this.state = 4360; - this.index_elem(); + this.state = 4314; + this.indexElem(); } } - this.state = 4365; + this.state = 4319; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4366; + this.state = 4320; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -24311,61 +24098,61 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public index_elem(): Index_elemContext { - let localContext = new Index_elemContext(this.context, this.state); - this.enterRule(localContext, 364, PostgreSqlParser.RULE_index_elem); + public indexElem(): IndexElemContext { + let localContext = new IndexElemContext(this.context, this.state); + this.enterRule(localContext, 356, PostgreSqlParser.RULE_indexElem); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4374; + this.state = 4328; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 536, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 532, this.context) ) { case 1: { - this.state = 4368; - this.column_name(); + this.state = 4322; + this.columnName(); } break; case 2: { - this.state = 4369; - this.func_expr_windowless(); + this.state = 4323; + this.funcExprWindowless(); } break; case 3: { - this.state = 4370; + this.state = 4324; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4371; + this.state = 4325; this.expression(); - this.state = 4372; + this.state = 4326; this.match(PostgreSqlParser.CLOSE_PAREN); } break; } - this.state = 4377; + this.state = 4331; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 43) { { - this.state = 4376; - this.opt_collate_clause(); + this.state = 4330; + this.collateClause(); } } - this.state = 4385; + this.state = 4339; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 539, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 535, this.context) ) { case 1: { - this.state = 4380; + this.state = 4334; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 538, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 534, this.context) ) { case 1: { - this.state = 4379; - this.any_name(); + this.state = 4333; + this.anyName(); } break; } @@ -24373,19 +24160,19 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 4382; - this.any_name(); - this.state = 4383; + this.state = 4336; + this.anyName(); + this.state = 4337; this.relOptions(); } break; } - this.state = 4388; + this.state = 4342; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 37 || _la === 55) { { - this.state = 4387; + this.state = 4341; _la = this.tokenStream.LA(1); if(!(_la === 37 || _la === 55)) { this.errorHandler.recoverInline(this); @@ -24397,14 +24184,14 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 4392; + this.state = 4346; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 273) { { - this.state = 4390; + this.state = 4344; this.match(PostgreSqlParser.KW_NULLS); - this.state = 4391; + this.state = 4345; _la = this.tokenStream.LA(1); if(!(_la === 207 || _la === 249)) { this.errorHandler.recoverInline(this); @@ -24434,86 +24221,86 @@ export class PostgreSqlParser extends SQLParserBase { } public createFunctionStmt(): CreateFunctionStmtContext { let localContext = new CreateFunctionStmtContext(this.context, this.state); - this.enterRule(localContext, 366, PostgreSqlParser.RULE_createFunctionStmt); + this.enterRule(localContext, 358, PostgreSqlParser.RULE_createFunctionStmt); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 4394; + this.state = 4348; this.match(PostgreSqlParser.KW_CREATE); - this.state = 4396; + this.state = 4350; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 82) { { - this.state = 4395; - this.opt_or_replace(); + this.state = 4349; + this.orReplaceOpt(); } } - this.state = 4402; + this.state = 4356; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FUNCTION: { - this.state = 4398; + this.state = 4352; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 4399; - this.function_name_create(); + this.state = 4353; + this.functionNameCreate(); } break; case PostgreSqlParser.KW_PROCEDURE: { - this.state = 4400; + this.state = 4354; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 4401; - this.procedure_name_create(); + this.state = 4355; + this.procedureNameCreate(); } break; default: throw new antlr.NoViableAltException(this); } { - this.state = 4404; + this.state = 4358; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4413; + this.state = 4367; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || _la === 68 || ((((_la - 101)) & ~0x1F) === 0 && ((1 << (_la - 101)) & 4294967265) !== 0) || ((((_la - 133)) & ~0x1F) === 0 && ((1 << (_la - 133)) & 4294967295) !== 0) || ((((_la - 165)) & ~0x1F) === 0 && ((1 << (_la - 165)) & 4294967295) !== 0) || ((((_la - 197)) & ~0x1F) === 0 && ((1 << (_la - 197)) & 4294967295) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 4405; - this.func_arg_with_default(); - this.state = 4410; + this.state = 4359; + this.funcArgWithDefault(); + this.state = 4364; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4406; + this.state = 4360; this.match(PostgreSqlParser.COMMA); - this.state = 4407; - this.func_arg_with_default(); + this.state = 4361; + this.funcArgWithDefault(); } } - this.state = 4412; + this.state = 4366; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } } - this.state = 4415; + this.state = 4369; this.match(PostgreSqlParser.CLOSE_PAREN); } - this.state = 4433; + this.state = 4387; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 548, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 544, this.context) ) { case 1: { - this.state = 4417; + this.state = 4371; this.match(PostgreSqlParser.KW_RETURNS); - this.state = 4431; + this.state = 4385; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -24932,36 +24719,36 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 4418; - this.func_type(); + this.state = 4372; + this.funcType(); } break; case PostgreSqlParser.KW_TABLE: { - this.state = 4419; + this.state = 4373; this.match(PostgreSqlParser.KW_TABLE); { - this.state = 4420; + this.state = 4374; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4421; - this.table_func_column(); - this.state = 4426; + this.state = 4375; + this.tableFuncColumn(); + this.state = 4380; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4422; + this.state = 4376; this.match(PostgreSqlParser.COMMA); - this.state = 4423; - this.table_func_column(); + this.state = 4377; + this.tableFuncColumn(); } } - this.state = 4428; + this.state = 4382; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4429; + this.state = 4383; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -24972,7 +24759,7 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 4436; + this.state = 4390; this.errorHandler.sync(this); alternative = 1; do { @@ -24980,30 +24767,30 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { { - this.state = 4435; - this.create_func_opt_item(); + this.state = 4389; + this.createFuncOptItem(); } } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4438; + this.state = 4392; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 549, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 545, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); - this.state = 4445; + this.state = 4399; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 550, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 546, this.context) ) { case 1: { - this.state = 4440; + this.state = 4394; this.match(PostgreSqlParser.KW_WITH); - this.state = 4441; + this.state = 4395; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4442; - this.name_list(); - this.state = 4443; + this.state = 4396; + this.nameList(); + this.state = 4397; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -25024,15 +24811,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_or_replace(): Opt_or_replaceContext { - let localContext = new Opt_or_replaceContext(this.context, this.state); - this.enterRule(localContext, 368, PostgreSqlParser.RULE_opt_or_replace); + public orReplaceOpt(): OrReplaceOptContext { + let localContext = new OrReplaceOptContext(this.context, this.state); + this.enterRule(localContext, 360, PostgreSqlParser.RULE_orReplaceOpt); try { this.enterOuterAlt(localContext, 1); { - this.state = 4447; + this.state = 4401; this.match(PostgreSqlParser.KW_OR); - this.state = 4448; + this.state = 4402; this.match(PostgreSqlParser.KW_REPLACE); } } @@ -25050,26 +24837,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_args(): Func_argsContext { - let localContext = new Func_argsContext(this.context, this.state); - this.enterRule(localContext, 370, PostgreSqlParser.RULE_func_args); + public funcArgs(): FuncArgsContext { + let localContext = new FuncArgsContext(this.context, this.state); + this.enterRule(localContext, 362, PostgreSqlParser.RULE_funcArgs); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4450; + this.state = 4404; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4452; + this.state = 4406; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || _la === 68 || ((((_la - 101)) & ~0x1F) === 0 && ((1 << (_la - 101)) & 4294967265) !== 0) || ((((_la - 133)) & ~0x1F) === 0 && ((1 << (_la - 133)) & 4294967295) !== 0) || ((((_la - 165)) & ~0x1F) === 0 && ((1 << (_la - 165)) & 4294967295) !== 0) || ((((_la - 197)) & ~0x1F) === 0 && ((1 << (_la - 197)) & 4294967295) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 4451; - this.func_args_list(); + this.state = 4405; + this.funcArgsList(); } } - this.state = 4454; + this.state = 4408; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -25087,28 +24874,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_args_list(): Func_args_listContext { - let localContext = new Func_args_listContext(this.context, this.state); - this.enterRule(localContext, 372, PostgreSqlParser.RULE_func_args_list); + public funcArgsList(): FuncArgsListContext { + let localContext = new FuncArgsListContext(this.context, this.state); + this.enterRule(localContext, 364, PostgreSqlParser.RULE_funcArgsList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4456; - this.func_arg(); - this.state = 4461; + this.state = 4410; + this.funcArg(); + this.state = 4415; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4457; + this.state = 4411; this.match(PostgreSqlParser.COMMA); - this.state = 4458; - this.func_arg(); + this.state = 4412; + this.funcArg(); } } - this.state = 4463; + this.state = 4417; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -25130,26 +24917,26 @@ export class PostgreSqlParser extends SQLParserBase { } public routineWithArgTypesList(): RoutineWithArgTypesListContext { let localContext = new RoutineWithArgTypesListContext(this.context, this.state); - this.enterRule(localContext, 374, PostgreSqlParser.RULE_routineWithArgTypesList); + this.enterRule(localContext, 366, PostgreSqlParser.RULE_routineWithArgTypesList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4464; + this.state = 4418; this.routineWithArgTypes(); - this.state = 4469; + this.state = 4423; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4465; + this.state = 4419; this.match(PostgreSqlParser.COMMA); - this.state = 4466; + this.state = 4420; this.routineWithArgTypes(); } } - this.state = 4471; + this.state = 4425; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -25171,32 +24958,32 @@ export class PostgreSqlParser extends SQLParserBase { } public routineWithArgTypes(): RoutineWithArgTypesContext { let localContext = new RoutineWithArgTypesContext(this.context, this.state); - this.enterRule(localContext, 376, PostgreSqlParser.RULE_routineWithArgTypes); + this.enterRule(localContext, 368, PostgreSqlParser.RULE_routineWithArgTypes); try { - this.state = 4477; + this.state = 4431; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 554, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 550, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4472; - this.routine_name(); - this.state = 4473; - this.func_args(); + this.state = 4426; + this.routineName(); + this.state = 4427; + this.funcArgs(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4475; - this.type_func_name_keyword(); + this.state = 4429; + this.typeFuncNameKeyword(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4476; - this.qualified_name(); + this.state = 4430; + this.qualifiedName(); } break; } @@ -25217,26 +25004,26 @@ export class PostgreSqlParser extends SQLParserBase { } public procedureWithArgTypesList(): ProcedureWithArgTypesListContext { let localContext = new ProcedureWithArgTypesListContext(this.context, this.state); - this.enterRule(localContext, 378, PostgreSqlParser.RULE_procedureWithArgTypesList); + this.enterRule(localContext, 370, PostgreSqlParser.RULE_procedureWithArgTypesList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4479; + this.state = 4433; this.procedureWithArgTypes(); - this.state = 4484; + this.state = 4438; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4480; + this.state = 4434; this.match(PostgreSqlParser.COMMA); - this.state = 4481; + this.state = 4435; this.procedureWithArgTypes(); } } - this.state = 4486; + this.state = 4440; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -25258,32 +25045,32 @@ export class PostgreSqlParser extends SQLParserBase { } public procedureWithArgTypes(): ProcedureWithArgTypesContext { let localContext = new ProcedureWithArgTypesContext(this.context, this.state); - this.enterRule(localContext, 380, PostgreSqlParser.RULE_procedureWithArgTypes); + this.enterRule(localContext, 372, PostgreSqlParser.RULE_procedureWithArgTypes); try { - this.state = 4492; + this.state = 4446; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 556, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 552, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4487; - this.procedure_name(); - this.state = 4488; - this.func_args(); + this.state = 4441; + this.procedureName(); + this.state = 4442; + this.funcArgs(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4490; - this.type_func_name_keyword(); + this.state = 4444; + this.typeFuncNameKeyword(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4491; - this.qualified_name(); + this.state = 4445; + this.qualifiedName(); } break; } @@ -25304,26 +25091,26 @@ export class PostgreSqlParser extends SQLParserBase { } public functionWithArgTypesList(): FunctionWithArgTypesListContext { let localContext = new FunctionWithArgTypesListContext(this.context, this.state); - this.enterRule(localContext, 382, PostgreSqlParser.RULE_functionWithArgTypesList); + this.enterRule(localContext, 374, PostgreSqlParser.RULE_functionWithArgTypesList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4494; + this.state = 4448; this.functionWithArgTypes(); - this.state = 4499; + this.state = 4453; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4495; + this.state = 4449; this.match(PostgreSqlParser.COMMA); - this.state = 4496; + this.state = 4450; this.functionWithArgTypes(); } } - this.state = 4501; + this.state = 4455; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -25345,32 +25132,32 @@ export class PostgreSqlParser extends SQLParserBase { } public functionWithArgTypes(): FunctionWithArgTypesContext { let localContext = new FunctionWithArgTypesContext(this.context, this.state); - this.enterRule(localContext, 384, PostgreSqlParser.RULE_functionWithArgTypes); + this.enterRule(localContext, 376, PostgreSqlParser.RULE_functionWithArgTypes); try { - this.state = 4507; + this.state = 4461; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 558, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 554, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4502; - this.function_name(); - this.state = 4503; - this.func_args(); + this.state = 4456; + this.functionName(); + this.state = 4457; + this.funcArgs(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4505; - this.type_func_name_keyword(); + this.state = 4459; + this.typeFuncNameKeyword(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4506; - this.qualified_name(); + this.state = 4460; + this.qualifiedName(); } break; } @@ -25389,26 +25176,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_arg(): Func_argContext { - let localContext = new Func_argContext(this.context, this.state); - this.enterRule(localContext, 386, PostgreSqlParser.RULE_func_arg); + public funcArg(): FuncArgContext { + let localContext = new FuncArgContext(this.context, this.state); + this.enterRule(localContext, 378, PostgreSqlParser.RULE_funcArg); try { this.enterOuterAlt(localContext, 1); { - this.state = 4517; + this.state = 4471; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 561, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 557, this.context) ) { case 1: { - this.state = 4509; - this.arg_class(); - this.state = 4511; + this.state = 4463; + this.argClass(); + this.state = 4465; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 559, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 555, this.context) ) { case 1: { - this.state = 4510; - this.type_function_name(); + this.state = 4464; + this.typeFunctionName(); } break; } @@ -25416,23 +25203,23 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 4513; - this.type_function_name(); - this.state = 4515; + this.state = 4467; + this.typeFunctionName(); + this.state = 4469; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 560, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 556, this.context) ) { case 1: { - this.state = 4514; - this.arg_class(); + this.state = 4468; + this.argClass(); } break; } } break; } - this.state = 4519; - this.func_type(); + this.state = 4473; + this.funcType(); } } catch (re) { @@ -25449,24 +25236,24 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public arg_class(): Arg_classContext { - let localContext = new Arg_classContext(this.context, this.state); - this.enterRule(localContext, 388, PostgreSqlParser.RULE_arg_class); + public argClass(): ArgClassContext { + let localContext = new ArgClassContext(this.context, this.state); + this.enterRule(localContext, 380, PostgreSqlParser.RULE_argClass); try { - this.state = 4528; + this.state = 4482; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_IN: this.enterOuterAlt(localContext, 1); { - this.state = 4521; + this.state = 4475; this.match(PostgreSqlParser.KW_IN); - this.state = 4523; + this.state = 4477; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 562, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 558, this.context) ) { case 1: { - this.state = 4522; + this.state = 4476; this.match(PostgreSqlParser.KW_OUT); } break; @@ -25476,21 +25263,21 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_OUT: this.enterOuterAlt(localContext, 2); { - this.state = 4525; + this.state = 4479; this.match(PostgreSqlParser.KW_OUT); } break; case PostgreSqlParser.KW_INOUT: this.enterOuterAlt(localContext, 3); { - this.state = 4526; + this.state = 4480; this.match(PostgreSqlParser.KW_INOUT); } break; case PostgreSqlParser.KW_VARIADIC: this.enterOuterAlt(localContext, 4); { - this.state = 4527; + this.state = 4481; this.match(PostgreSqlParser.KW_VARIADIC); } break; @@ -25512,41 +25299,41 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_type(): Func_typeContext { - let localContext = new Func_typeContext(this.context, this.state); - this.enterRule(localContext, 390, PostgreSqlParser.RULE_func_type); + public funcType(): FuncTypeContext { + let localContext = new FuncTypeContext(this.context, this.state); + this.enterRule(localContext, 382, PostgreSqlParser.RULE_funcType); let _la: number; try { - this.state = 4539; + this.state = 4493; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 565, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 561, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4530; + this.state = 4484; this.typename(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4532; + this.state = 4486; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 415) { { - this.state = 4531; + this.state = 4485; this.match(PostgreSqlParser.KW_SETOF); } } - this.state = 4534; - this.type_function_name(); - this.state = 4535; + this.state = 4488; + this.typeFunctionName(); + this.state = 4489; this.attrs(); - this.state = 4536; + this.state = 4490; this.match(PostgreSqlParser.PERCENT); - this.state = 4537; + this.state = 4491; this.match(PostgreSqlParser.KW_TYPE); } break; @@ -25566,21 +25353,21 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_arg_with_default(): Func_arg_with_defaultContext { - let localContext = new Func_arg_with_defaultContext(this.context, this.state); - this.enterRule(localContext, 392, PostgreSqlParser.RULE_func_arg_with_default); + public funcArgWithDefault(): FuncArgWithDefaultContext { + let localContext = new FuncArgWithDefaultContext(this.context, this.state); + this.enterRule(localContext, 384, PostgreSqlParser.RULE_funcArgWithDefault); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4541; - this.func_arg(); - this.state = 4544; + this.state = 4495; + this.funcArg(); + this.state = 4498; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 10 || _la === 53) { { - this.state = 4542; + this.state = 4496; _la = this.tokenStream.LA(1); if(!(_la === 10 || _la === 53)) { this.errorHandler.recoverInline(this); @@ -25589,7 +25376,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4543; + this.state = 4497; this.expression(); } } @@ -25610,21 +25397,21 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public aggregate_args(): Aggregate_argsContext { - let localContext = new Aggregate_argsContext(this.context, this.state); - this.enterRule(localContext, 394, PostgreSqlParser.RULE_aggregate_args); + public aggregateArgs(): AggregateArgsContext { + let localContext = new AggregateArgsContext(this.context, this.state); + this.enterRule(localContext, 386, PostgreSqlParser.RULE_aggregateArgs); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4546; + this.state = 4500; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4556; + this.state = 4510; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.STAR: { - this.state = 4547; + this.state = 4501; this.match(PostgreSqlParser.STAR); } break; @@ -26048,27 +25835,27 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 4549; + this.state = 4503; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || _la === 68 || ((((_la - 101)) & ~0x1F) === 0 && ((1 << (_la - 101)) & 4294967265) !== 0) || ((((_la - 133)) & ~0x1F) === 0 && ((1 << (_la - 133)) & 4294967295) !== 0) || ((((_la - 165)) & ~0x1F) === 0 && ((1 << (_la - 165)) & 4294967295) !== 0) || ((((_la - 197)) & ~0x1F) === 0 && ((1 << (_la - 197)) & 4294967295) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 4548; - this.func_args_list(); + this.state = 4502; + this.funcArgsList(); } } - this.state = 4554; + this.state = 4508; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 83) { { - this.state = 4551; + this.state = 4505; this.match(PostgreSqlParser.KW_ORDER); - this.state = 4552; + this.state = 4506; this.match(PostgreSqlParser.KW_BY); - this.state = 4553; - this.func_args_list(); + this.state = 4507; + this.funcArgsList(); } } @@ -26077,7 +25864,7 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 4558; + this.state = 4512; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -26097,14 +25884,14 @@ export class PostgreSqlParser extends SQLParserBase { } public aggregateWithArgTypes(): AggregateWithArgTypesContext { let localContext = new AggregateWithArgTypesContext(this.context, this.state); - this.enterRule(localContext, 396, PostgreSqlParser.RULE_aggregateWithArgTypes); + this.enterRule(localContext, 388, PostgreSqlParser.RULE_aggregateWithArgTypes); try { this.enterOuterAlt(localContext, 1); { - this.state = 4560; - this.function_name(); - this.state = 4561; - this.aggregate_args(); + this.state = 4514; + this.functionName(); + this.state = 4515; + this.aggregateArgs(); } } catch (re) { @@ -26121,71 +25908,71 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public common_func_opt_item(): Common_func_opt_itemContext { - let localContext = new Common_func_opt_itemContext(this.context, this.state); - this.enterRule(localContext, 398, PostgreSqlParser.RULE_common_func_opt_item); + public commonFuncOptItem(): CommonFuncOptItemContext { + let localContext = new CommonFuncOptItemContext(this.context, this.state); + this.enterRule(localContext, 390, PostgreSqlParser.RULE_commonFuncOptItem); let _la: number; try { - this.state = 4592; + this.state = 4546; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_CALLED: case PostgreSqlParser.KW_RETURNS: this.enterOuterAlt(localContext, 1); { - this.state = 4566; + this.state = 4520; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_RETURNS: { - this.state = 4563; + this.state = 4517; this.match(PostgreSqlParser.KW_RETURNS); - this.state = 4564; + this.state = 4518; this.match(PostgreSqlParser.KW_NULL); } break; case PostgreSqlParser.KW_CALLED: { - this.state = 4565; + this.state = 4519; this.match(PostgreSqlParser.KW_CALLED); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4568; + this.state = 4522; this.match(PostgreSqlParser.KW_ON); - this.state = 4569; + this.state = 4523; this.match(PostgreSqlParser.KW_NULL); - this.state = 4570; + this.state = 4524; this.match(PostgreSqlParser.KW_INPUT); } break; case PostgreSqlParser.KW_STRICT: this.enterOuterAlt(localContext, 2); { - this.state = 4571; + this.state = 4525; this.match(PostgreSqlParser.KW_STRICT); } break; case PostgreSqlParser.KW_IMMUTABLE: this.enterOuterAlt(localContext, 3); { - this.state = 4572; + this.state = 4526; this.match(PostgreSqlParser.KW_IMMUTABLE); } break; case PostgreSqlParser.KW_STABLE: this.enterOuterAlt(localContext, 4); { - this.state = 4573; + this.state = 4527; this.match(PostgreSqlParser.KW_STABLE); } break; case PostgreSqlParser.KW_VOLATILE: this.enterOuterAlt(localContext, 5); { - this.state = 4574; + this.state = 4528; this.match(PostgreSqlParser.KW_VOLATILE); } break; @@ -26193,19 +25980,19 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_SECURITY: this.enterOuterAlt(localContext, 6); { - this.state = 4576; + this.state = 4530; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 205) { { - this.state = 4575; + this.state = 4529; this.match(PostgreSqlParser.KW_EXTERNAL); } } - this.state = 4578; + this.state = 4532; this.match(PostgreSqlParser.KW_SECURITY); - this.state = 4579; + this.state = 4533; _la = this.tokenStream.LA(1); if(!(_la === 181 || _la === 243)) { this.errorHandler.recoverInline(this); @@ -26219,16 +26006,16 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_LEAKPROOF: this.enterOuterAlt(localContext, 7); { - this.state = 4580; + this.state = 4534; this.match(PostgreSqlParser.KW_LEAKPROOF); } break; case PostgreSqlParser.KW_NOT: this.enterOuterAlt(localContext, 8); { - this.state = 4581; + this.state = 4535; this.match(PostgreSqlParser.KW_NOT); - this.state = 4582; + this.state = 4536; this.match(PostgreSqlParser.KW_LEAKPROOF); } break; @@ -26236,7 +26023,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_ROWS: this.enterOuterAlt(localContext, 9); { - this.state = 4583; + this.state = 4537; _la = this.tokenStream.LA(1); if(!(_la === 170 || _la === 320)) { this.errorHandler.recoverInline(this); @@ -26245,41 +26032,41 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4584; + this.state = 4538; this.numericOnly(); } break; case PostgreSqlParser.KW_SUPPORT: this.enterOuterAlt(localContext, 10); { - this.state = 4585; + this.state = 4539; this.match(PostgreSqlParser.KW_SUPPORT); - this.state = 4586; - this.any_name(); + this.state = 4540; + this.anyName(); } break; case PostgreSqlParser.KW_SET: this.enterOuterAlt(localContext, 11); { - this.state = 4587; + this.state = 4541; this.match(PostgreSqlParser.KW_SET); - this.state = 4588; - this.set_rest_more(); + this.state = 4542; + this.setRestMore(); } break; case PostgreSqlParser.KW_RESET: this.enterOuterAlt(localContext, 12); { - this.state = 4589; + this.state = 4543; this.variableResetStmt(); } break; case PostgreSqlParser.KW_PARALLEL: this.enterOuterAlt(localContext, 13); { - this.state = 4590; + this.state = 4544; this.match(PostgreSqlParser.KW_PARALLEL); - this.state = 4591; + this.state = 4545; this.colId(); } break; @@ -26301,62 +26088,62 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public create_func_opt_item(): Create_func_opt_itemContext { - let localContext = new Create_func_opt_itemContext(this.context, this.state); - this.enterRule(localContext, 400, PostgreSqlParser.RULE_create_func_opt_item); + public createFuncOptItem(): CreateFuncOptItemContext { + let localContext = new CreateFuncOptItemContext(this.context, this.state); + this.enterRule(localContext, 392, PostgreSqlParser.RULE_createFuncOptItem); let _la: number; try { - this.state = 4629; + this.state = 4583; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 575, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 571, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4594; + this.state = 4548; this.match(PostgreSqlParser.KW_AS); - this.state = 4595; + this.state = 4549; this.stringConst(); - this.state = 4596; - this.notify_payload(); + this.state = 4550; + this.notifyPayload(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4598; + this.state = 4552; this.match(PostgreSqlParser.KW_LANGUAGE); - this.state = 4599; + this.state = 4553; this.nonReservedWordOrStringConst(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4600; + this.state = 4554; this.match(PostgreSqlParser.KW_TRANSFORM); - this.state = 4601; + this.state = 4555; this.match(PostgreSqlParser.KW_FOR); - this.state = 4602; + this.state = 4556; this.match(PostgreSqlParser.KW_TYPE); - this.state = 4603; + this.state = 4557; this.typename(); - this.state = 4610; + this.state = 4564; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4604; + this.state = 4558; this.match(PostgreSqlParser.COMMA); - this.state = 4605; + this.state = 4559; this.match(PostgreSqlParser.KW_FOR); - this.state = 4606; + this.state = 4560; this.match(PostgreSqlParser.KW_TYPE); - this.state = 4607; + this.state = 4561; this.typename(); } } - this.state = 4612; + this.state = 4566; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -26365,41 +26152,41 @@ export class PostgreSqlParser extends SQLParserBase { case 4: this.enterOuterAlt(localContext, 4); { - this.state = 4613; + this.state = 4567; this.match(PostgreSqlParser.KW_WINDOW); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 4614; + this.state = 4568; this.match(PostgreSqlParser.KW_SET); - this.state = 4615; + this.state = 4569; this.colId(); - this.state = 4622; + this.state = 4576; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_TO: { - this.state = 4616; + this.state = 4570; this.match(PostgreSqlParser.KW_TO); - this.state = 4617; + this.state = 4571; this.colId(); } break; case PostgreSqlParser.EQUAL: { - this.state = 4618; + this.state = 4572; this.match(PostgreSqlParser.EQUAL); - this.state = 4619; + this.state = 4573; this.colId(); } break; case PostgreSqlParser.KW_FROM: { - this.state = 4620; + this.state = 4574; this.match(PostgreSqlParser.KW_FROM); - this.state = 4621; + this.state = 4575; this.match(PostgreSqlParser.KW_CURRENT); } break; @@ -26411,30 +26198,30 @@ export class PostgreSqlParser extends SQLParserBase { case 6: this.enterOuterAlt(localContext, 6); { - this.state = 4624; + this.state = 4578; this.match(PostgreSqlParser.KW_AS); - this.state = 4625; + this.state = 4579; this.colId(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 4626; + this.state = 4580; this.stmt(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 4627; - this.common_func_opt_item(); + this.state = 4581; + this.commonFuncOptItem(); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 4628; + this.state = 4582; this.colId(); } break; @@ -26454,15 +26241,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_definition(): Opt_definitionContext { - let localContext = new Opt_definitionContext(this.context, this.state); - this.enterRule(localContext, 402, PostgreSqlParser.RULE_opt_definition); + public optDefinition(): OptDefinitionContext { + let localContext = new OptDefinitionContext(this.context, this.state); + this.enterRule(localContext, 394, PostgreSqlParser.RULE_optDefinition); try { this.enterOuterAlt(localContext, 1); { - this.state = 4631; + this.state = 4585; this.match(PostgreSqlParser.KW_WITH); - this.state = 4632; + this.state = 4586; this.definition(); } } @@ -26480,16 +26267,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public table_func_column(): Table_func_columnContext { - let localContext = new Table_func_columnContext(this.context, this.state); - this.enterRule(localContext, 404, PostgreSqlParser.RULE_table_func_column); + public tableFuncColumn(): TableFuncColumnContext { + let localContext = new TableFuncColumnContext(this.context, this.state); + this.enterRule(localContext, 396, PostgreSqlParser.RULE_tableFuncColumn); try { this.enterOuterAlt(localContext, 1); { - this.state = 4634; - this.column_name(); - this.state = 4635; - this.func_type(); + this.state = 4588; + this.columnName(); + this.state = 4589; + this.funcType(); } } catch (re) { @@ -26508,44 +26295,44 @@ export class PostgreSqlParser extends SQLParserBase { } public alterFunctionStmt(): AlterFunctionStmtContext { let localContext = new AlterFunctionStmtContext(this.context, this.state); - this.enterRule(localContext, 406, PostgreSqlParser.RULE_alterFunctionStmt); + this.enterRule(localContext, 398, PostgreSqlParser.RULE_alterFunctionStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 4637; + this.state = 4591; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4644; + this.state = 4598; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FUNCTION: { - this.state = 4638; + this.state = 4592; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 4639; + this.state = 4593; this.functionWithArgTypes(); } break; case PostgreSqlParser.KW_PROCEDURE: { - this.state = 4640; + this.state = 4594; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 4641; + this.state = 4595; this.procedureWithArgTypes(); } break; case PostgreSqlParser.KW_ROUTINE: { - this.state = 4642; + this.state = 4596; this.match(PostgreSqlParser.KW_ROUTINE); - this.state = 4643; + this.state = 4597; this.routineWithArgTypes(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4647; + this.state = 4601; this.errorHandler.sync(this); alternative = 1; do { @@ -26553,24 +26340,24 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { { - this.state = 4646; - this.common_func_opt_item(); + this.state = 4600; + this.commonFuncOptItem(); } } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4649; + this.state = 4603; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 577, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 573, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); - this.state = 4652; + this.state = 4606; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 578, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 574, this.context) ) { case 1: { - this.state = 4651; + this.state = 4605; this.match(PostgreSqlParser.KW_RESTRICT); } break; @@ -26593,79 +26380,79 @@ export class PostgreSqlParser extends SQLParserBase { } public removeFuncStmt(): RemoveFuncStmtContext { let localContext = new RemoveFuncStmtContext(this.context, this.state); - this.enterRule(localContext, 408, PostgreSqlParser.RULE_removeFuncStmt); + this.enterRule(localContext, 400, PostgreSqlParser.RULE_removeFuncStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 4654; + this.state = 4608; this.match(PostgreSqlParser.KW_DROP); - this.state = 4670; + this.state = 4624; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FUNCTION: { - this.state = 4655; + this.state = 4609; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 4657; + this.state = 4611; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 579, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 575, this.context) ) { case 1: { - this.state = 4656; - this.opt_if_exists(); + this.state = 4610; + this.ifExists(); } break; } - this.state = 4659; + this.state = 4613; this.functionWithArgTypesList(); } break; case PostgreSqlParser.KW_PROCEDURE: { - this.state = 4660; + this.state = 4614; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 4662; + this.state = 4616; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 580, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 576, this.context) ) { case 1: { - this.state = 4661; - this.opt_if_exists(); + this.state = 4615; + this.ifExists(); } break; } - this.state = 4664; + this.state = 4618; this.procedureWithArgTypesList(); } break; case PostgreSqlParser.KW_ROUTINE: { - this.state = 4665; + this.state = 4619; this.match(PostgreSqlParser.KW_ROUTINE); - this.state = 4667; + this.state = 4621; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 581, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 577, this.context) ) { case 1: { - this.state = 4666; - this.opt_if_exists(); + this.state = 4620; + this.ifExists(); } break; } - this.state = 4669; + this.state = 4623; this.routineWithArgTypesList(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4673; + this.state = 4627; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 583, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 579, this.context) ) { case 1: { - this.state = 4672; - this.opt_drop_behavior(); + this.state = 4626; + this.optDropBehavior(); } break; } @@ -26687,52 +26474,52 @@ export class PostgreSqlParser extends SQLParserBase { } public removeAggregateStmt(): RemoveAggregateStmtContext { let localContext = new RemoveAggregateStmtContext(this.context, this.state); - this.enterRule(localContext, 410, PostgreSqlParser.RULE_removeAggregateStmt); + this.enterRule(localContext, 402, PostgreSqlParser.RULE_removeAggregateStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4675; + this.state = 4629; this.match(PostgreSqlParser.KW_DROP); - this.state = 4676; + this.state = 4630; this.match(PostgreSqlParser.KW_AGGREGATE); - this.state = 4678; + this.state = 4632; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 584, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 580, this.context) ) { case 1: { - this.state = 4677; - this.opt_if_exists(); + this.state = 4631; + this.ifExists(); } break; } { - this.state = 4680; + this.state = 4634; this.aggregateWithArgTypes(); - this.state = 4685; + this.state = 4639; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4681; + this.state = 4635; this.match(PostgreSqlParser.COMMA); - this.state = 4682; + this.state = 4636; this.aggregateWithArgTypes(); } } - this.state = 4687; + this.state = 4641; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 4689; + this.state = 4643; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 586, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 582, this.context) ) { case 1: { - this.state = 4688; - this.opt_drop_behavior(); + this.state = 4642; + this.optDropBehavior(); } break; } @@ -26754,52 +26541,52 @@ export class PostgreSqlParser extends SQLParserBase { } public removeOperatorStmt(): RemoveOperatorStmtContext { let localContext = new RemoveOperatorStmtContext(this.context, this.state); - this.enterRule(localContext, 412, PostgreSqlParser.RULE_removeOperatorStmt); + this.enterRule(localContext, 404, PostgreSqlParser.RULE_removeOperatorStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4691; + this.state = 4645; this.match(PostgreSqlParser.KW_DROP); - this.state = 4692; + this.state = 4646; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 4694; + this.state = 4648; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 587, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 583, this.context) ) { case 1: { - this.state = 4693; - this.opt_if_exists(); + this.state = 4647; + this.ifExists(); } break; } { - this.state = 4696; + this.state = 4650; this.operatorWithArgTypes(); - this.state = 4701; + this.state = 4655; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4697; + this.state = 4651; this.match(PostgreSqlParser.COMMA); - this.state = 4698; + this.state = 4652; this.operatorWithArgTypes(); } } - this.state = 4703; + this.state = 4657; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 4705; + this.state = 4659; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 589, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 585, this.context) ) { case 1: { - this.state = 4704; - this.opt_drop_behavior(); + this.state = 4658; + this.optDropBehavior(); } break; } @@ -26821,28 +26608,28 @@ export class PostgreSqlParser extends SQLParserBase { } public operatorArgTypes(): OperatorArgTypesContext { let localContext = new OperatorArgTypesContext(this.context, this.state); - this.enterRule(localContext, 414, PostgreSqlParser.RULE_operatorArgTypes); + this.enterRule(localContext, 406, PostgreSqlParser.RULE_operatorArgTypes); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4707; + this.state = 4661; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4720; + this.state = 4674; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 591, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 587, this.context) ) { case 1: { - this.state = 4708; + this.state = 4662; this.typename(); - this.state = 4711; + this.state = 4665; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 4709; + this.state = 4663; this.match(PostgreSqlParser.COMMA); - this.state = 4710; + this.state = 4664; this.typename(); } } @@ -26851,26 +26638,26 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 4713; + this.state = 4667; this.match(PostgreSqlParser.KW_NONE); - this.state = 4714; + this.state = 4668; this.match(PostgreSqlParser.COMMA); - this.state = 4715; + this.state = 4669; this.typename(); } break; case 3: { - this.state = 4716; + this.state = 4670; this.typename(); - this.state = 4717; + this.state = 4671; this.match(PostgreSqlParser.COMMA); - this.state = 4718; + this.state = 4672; this.match(PostgreSqlParser.KW_NONE); } break; } - this.state = 4722; + this.state = 4676; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -26888,31 +26675,31 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public any_operator(): Any_operatorContext { - let localContext = new Any_operatorContext(this.context, this.state); - this.enterRule(localContext, 416, PostgreSqlParser.RULE_any_operator); + public anyOperator(): AnyOperatorContext { + let localContext = new AnyOperatorContext(this.context, this.state); + this.enterRule(localContext, 408, PostgreSqlParser.RULE_anyOperator); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4729; + this.state = 4683; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { { - this.state = 4724; + this.state = 4678; this.colId(); - this.state = 4725; + this.state = 4679; this.match(PostgreSqlParser.DOT); } } - this.state = 4731; + this.state = 4685; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4732; - this.all_op(); + this.state = 4686; + this.allOp(); } } catch (re) { @@ -26931,13 +26718,13 @@ export class PostgreSqlParser extends SQLParserBase { } public operatorWithArgTypes(): OperatorWithArgTypesContext { let localContext = new OperatorWithArgTypesContext(this.context, this.state); - this.enterRule(localContext, 418, PostgreSqlParser.RULE_operatorWithArgTypes); + this.enterRule(localContext, 410, PostgreSqlParser.RULE_operatorWithArgTypes); try { this.enterOuterAlt(localContext, 1); { - this.state = 4734; - this.any_operator(); - this.state = 4735; + this.state = 4688; + this.anyOperator(); + this.state = 4689; this.operatorArgTypes(); } } @@ -26957,21 +26744,21 @@ export class PostgreSqlParser extends SQLParserBase { } public doStmt(): DoStmtContext { let localContext = new DoStmtContext(this.context, this.state); - this.enterRule(localContext, 420, PostgreSqlParser.RULE_doStmt); + this.enterRule(localContext, 412, PostgreSqlParser.RULE_doStmt); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 4737; + this.state = 4691; this.match(PostgreSqlParser.KW_DO); - this.state = 4741; + this.state = 4695; this.errorHandler.sync(this); alternative = 1; do { switch (alternative) { case 1: { - this.state = 4741; + this.state = 4695; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.StringConstant: @@ -26979,15 +26766,15 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.BeginDollarStringConstant: case PostgreSqlParser.EscapeStringConstant: { - this.state = 4738; + this.state = 4692; this.stringConst(); } break; case PostgreSqlParser.KW_LANGUAGE: { - this.state = 4739; + this.state = 4693; this.match(PostgreSqlParser.KW_LANGUAGE); - this.state = 4740; + this.state = 4694; this.nonReservedWordOrStringConst(); } break; @@ -26999,9 +26786,9 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 4743; + this.state = 4697; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 594, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 590, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } } @@ -27021,43 +26808,43 @@ export class PostgreSqlParser extends SQLParserBase { } public createCastStmt(): CreateCastStmtContext { let localContext = new CreateCastStmtContext(this.context, this.state); - this.enterRule(localContext, 422, PostgreSqlParser.RULE_createCastStmt); + this.enterRule(localContext, 414, PostgreSqlParser.RULE_createCastStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4745; + this.state = 4699; this.match(PostgreSqlParser.KW_CREATE); - this.state = 4746; + this.state = 4700; this.match(PostgreSqlParser.KW_CAST); - this.state = 4747; + this.state = 4701; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4748; + this.state = 4702; this.typename(); - this.state = 4749; + this.state = 4703; this.match(PostgreSqlParser.KW_AS); - this.state = 4750; + this.state = 4704; this.typename(); - this.state = 4751; + this.state = 4705; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 4768; + this.state = 4722; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_WITHOUT: { { - this.state = 4752; + this.state = 4706; this.match(PostgreSqlParser.KW_WITHOUT); - this.state = 4753; + this.state = 4707; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 4756; + this.state = 4710; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 595, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 591, this.context) ) { case 1: { - this.state = 4754; + this.state = 4708; this.match(PostgreSqlParser.KW_AS); - this.state = 4755; + this.state = 4709; _la = this.tokenStream.LA(1); if(!(_la === 141 || _la === 223)) { this.errorHandler.recoverInline(this); @@ -27075,36 +26862,36 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_WITH: { { - this.state = 4758; + this.state = 4712; this.match(PostgreSqlParser.KW_WITH); - this.state = 4762; + this.state = 4716; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FUNCTION: { - this.state = 4759; + this.state = 4713; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 4760; + this.state = 4714; this.functionWithArgTypes(); } break; case PostgreSqlParser.KW_INOUT: { - this.state = 4761; + this.state = 4715; this.match(PostgreSqlParser.KW_INOUT); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4766; + this.state = 4720; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 597, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 593, this.context) ) { case 1: { - this.state = 4764; + this.state = 4718; this.match(PostgreSqlParser.KW_AS); - this.state = 4765; + this.state = 4719; _la = this.tokenStream.LA(1); if(!(_la === 141 || _la === 223)) { this.errorHandler.recoverInline(this); @@ -27138,15 +26925,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_if_exists(): Opt_if_existsContext { - let localContext = new Opt_if_existsContext(this.context, this.state); - this.enterRule(localContext, 424, PostgreSqlParser.RULE_opt_if_exists); + public ifExists(): IfExistsContext { + let localContext = new IfExistsContext(this.context, this.state); + this.enterRule(localContext, 416, PostgreSqlParser.RULE_ifExists); try { this.enterOuterAlt(localContext, 1); { - this.state = 4770; + this.state = 4724; this.match(PostgreSqlParser.KW_IF); - this.state = 4771; + this.state = 4725; this.match(PostgreSqlParser.KW_EXISTS); } } @@ -27166,55 +26953,55 @@ export class PostgreSqlParser extends SQLParserBase { } public createTransformStmt(): CreateTransformStmtContext { let localContext = new CreateTransformStmtContext(this.context, this.state); - this.enterRule(localContext, 426, PostgreSqlParser.RULE_createTransformStmt); + this.enterRule(localContext, 418, PostgreSqlParser.RULE_createTransformStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4773; + this.state = 4727; this.match(PostgreSqlParser.KW_CREATE); - this.state = 4775; + this.state = 4729; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 82) { { - this.state = 4774; - this.opt_or_replace(); + this.state = 4728; + this.orReplaceOpt(); } } - this.state = 4777; + this.state = 4731; this.match(PostgreSqlParser.KW_TRANSFORM); - this.state = 4778; + this.state = 4732; this.match(PostgreSqlParser.KW_FOR); - this.state = 4779; + this.state = 4733; this.typename(); - this.state = 4780; + this.state = 4734; this.match(PostgreSqlParser.KW_LANGUAGE); - this.state = 4781; + this.state = 4735; this.colId(); - this.state = 4782; + this.state = 4736; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4797; + this.state = 4751; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FROM: { - this.state = 4783; + this.state = 4737; this.match(PostgreSqlParser.KW_FROM); - this.state = 4784; - this.sql_with_function(); - this.state = 4788; + this.state = 4738; + this.sqlWithFunction(); + this.state = 4742; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 4785; + this.state = 4739; this.match(PostgreSqlParser.COMMA); - this.state = 4786; + this.state = 4740; this.match(PostgreSqlParser.KW_TO); - this.state = 4787; - this.sql_with_function(); + this.state = 4741; + this.sqlWithFunction(); } } @@ -27222,21 +27009,21 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_TO: { - this.state = 4790; + this.state = 4744; this.match(PostgreSqlParser.KW_TO); - this.state = 4791; - this.sql_with_function(); - this.state = 4795; + this.state = 4745; + this.sqlWithFunction(); + this.state = 4749; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 4792; + this.state = 4746; this.match(PostgreSqlParser.COMMA); - this.state = 4793; + this.state = 4747; this.match(PostgreSqlParser.KW_FROM); - this.state = 4794; - this.sql_with_function(); + this.state = 4748; + this.sqlWithFunction(); } } @@ -27245,7 +27032,7 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 4799; + this.state = 4753; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -27263,19 +27050,19 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public sql_with_function(): Sql_with_functionContext { - let localContext = new Sql_with_functionContext(this.context, this.state); - this.enterRule(localContext, 428, PostgreSqlParser.RULE_sql_with_function); + public sqlWithFunction(): SqlWithFunctionContext { + let localContext = new SqlWithFunctionContext(this.context, this.state); + this.enterRule(localContext, 420, PostgreSqlParser.RULE_sqlWithFunction); try { this.enterOuterAlt(localContext, 1); { - this.state = 4801; + this.state = 4755; this.match(PostgreSqlParser.KW_SQL); - this.state = 4802; + this.state = 4756; this.match(PostgreSqlParser.KW_WITH); - this.state = 4803; + this.state = 4757; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 4804; + this.state = 4758; this.functionWithArgTypes(); } } @@ -27295,135 +27082,135 @@ export class PostgreSqlParser extends SQLParserBase { } public reindexStmt(): ReindexStmtContext { let localContext = new ReindexStmtContext(this.context, this.state); - this.enterRule(localContext, 430, PostgreSqlParser.RULE_reindexStmt); + this.enterRule(localContext, 422, PostgreSqlParser.RULE_reindexStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4806; + this.state = 4760; this.match(PostgreSqlParser.KW_REINDEX); - this.state = 4817; + this.state = 4771; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 4807; + this.state = 4761; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 4808; + this.state = 4762; this.match(PostgreSqlParser.KW_VERBOSE); - this.state = 4813; + this.state = 4767; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 4809; + this.state = 4763; this.match(PostgreSqlParser.COMMA); - this.state = 4810; + this.state = 4764; this.match(PostgreSqlParser.KW_VERBOSE); } } - this.state = 4815; + this.state = 4769; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4816; + this.state = 4770; this.match(PostgreSqlParser.CLOSE_PAREN); } } { - this.state = 4844; + this.state = 4798; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_INDEX: { - this.state = 4819; + this.state = 4773; this.match(PostgreSqlParser.KW_INDEX); - this.state = 4821; + this.state = 4775; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 109) { { - this.state = 4820; + this.state = 4774; this.match(PostgreSqlParser.KW_CONCURRENTLY); } } - this.state = 4823; - this.qualified_name(); + this.state = 4777; + this.qualifiedName(); } break; case PostgreSqlParser.KW_TABLE: { - this.state = 4824; + this.state = 4778; this.match(PostgreSqlParser.KW_TABLE); - this.state = 4826; + this.state = 4780; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 109) { { - this.state = 4825; + this.state = 4779; this.match(PostgreSqlParser.KW_CONCURRENTLY); } } - this.state = 4828; - this.table_name(); + this.state = 4782; + this.tableName(); } break; case PostgreSqlParser.KW_SCHEMA: { - this.state = 4829; + this.state = 4783; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 4831; + this.state = 4785; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 109) { { - this.state = 4830; + this.state = 4784; this.match(PostgreSqlParser.KW_CONCURRENTLY); } } - this.state = 4833; - this.schema_name(); + this.state = 4787; + this.schemaName(); } break; case PostgreSqlParser.KW_SYSTEM: { - this.state = 4834; + this.state = 4788; this.match(PostgreSqlParser.KW_SYSTEM); - this.state = 4836; + this.state = 4790; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 109) { { - this.state = 4835; + this.state = 4789; this.match(PostgreSqlParser.KW_CONCURRENTLY); } } - this.state = 4838; + this.state = 4792; this.colId(); } break; case PostgreSqlParser.KW_DATABASE: { - this.state = 4839; + this.state = 4793; this.match(PostgreSqlParser.KW_DATABASE); - this.state = 4841; + this.state = 4795; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 109) { { - this.state = 4840; + this.state = 4794; this.match(PostgreSqlParser.KW_CONCURRENTLY); } } - this.state = 4843; - this.database_name(); + this.state = 4797; + this.databaseName(); } break; default: @@ -27448,16 +27235,16 @@ export class PostgreSqlParser extends SQLParserBase { } public alterTblSpcStmt(): AlterTblSpcStmtContext { let localContext = new AlterTblSpcStmtContext(this.context, this.state); - this.enterRule(localContext, 432, PostgreSqlParser.RULE_alterTblSpcStmt); + this.enterRule(localContext, 424, PostgreSqlParser.RULE_alterTblSpcStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 4846; + this.state = 4800; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4847; + this.state = 4801; this.optTableSpace(); - this.state = 4848; + this.state = 4802; _la = this.tokenStream.LA(1); if(!(_la === 313 || _la === 333)) { this.errorHandler.recoverInline(this); @@ -27466,7 +27253,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4849; + this.state = 4803; this.relOptions(); } } @@ -27486,70 +27273,70 @@ export class PostgreSqlParser extends SQLParserBase { } public renameStmt(): RenameStmtContext { let localContext = new RenameStmtContext(this.context, this.state); - this.enterRule(localContext, 434, PostgreSqlParser.RULE_renameStmt); + this.enterRule(localContext, 426, PostgreSqlParser.RULE_renameStmt); let _la: number; try { - this.state = 5058; + this.state = 5012; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 631, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 627, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4851; + this.state = 4805; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4856; + this.state = 4810; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_AGGREGATE: { - this.state = 4852; + this.state = 4806; this.match(PostgreSqlParser.KW_AGGREGATE); - this.state = 4853; + this.state = 4807; this.aggregateWithArgTypes(); } break; case PostgreSqlParser.KW_ROUTINE: { - this.state = 4854; + this.state = 4808; this.match(PostgreSqlParser.KW_ROUTINE); - this.state = 4855; + this.state = 4809; this.routineWithArgTypes(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4858; + this.state = 4812; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4859; + this.state = 4813; this.match(PostgreSqlParser.KW_TO); - this.state = 4860; + this.state = 4814; this.colId(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4862; + this.state = 4816; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4863; + this.state = 4817; this.match(PostgreSqlParser.KW_DATABASE); - this.state = 4864; - this.database_name(); - this.state = 4865; + this.state = 4818; + this.databaseName(); + this.state = 4819; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4866; + this.state = 4820; this.match(PostgreSqlParser.KW_TO); - this.state = 4867; - this.database_name_create(); + this.state = 4821; + this.databaseNameCreate(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4869; + this.state = 4823; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4870; + this.state = 4824; _la = this.tokenStream.LA(1); if(!(_la === 108 || _la === 168 || _la === 189 || _la === 342 || _la === 360)) { this.errorHandler.recoverInline(this); @@ -27558,41 +27345,41 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4871; - this.any_name(); - this.state = 4872; + this.state = 4825; + this.anyName(); + this.state = 4826; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4873; + this.state = 4827; this.match(PostgreSqlParser.KW_TO); - this.state = 4874; + this.state = 4828; this.colId(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 4876; + this.state = 4830; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4877; + this.state = 4831; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 4878; + this.state = 4832; this.functionWithArgTypes(); - this.state = 4879; + this.state = 4833; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4880; + this.state = 4834; this.match(PostgreSqlParser.KW_TO); - this.state = 4881; - this.function_name_create(); + this.state = 4835; + this.functionNameCreate(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 4883; + this.state = 4837; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4884; + this.state = 4838; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 4885; + this.state = 4839; _la = this.tokenStream.LA(1); if(!(_la === 156 || _la === 206)) { this.errorHandler.recoverInline(this); @@ -27601,58 +27388,58 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4886; - this.any_name(); - this.state = 4887; - this.table_access_method_clause(); - this.state = 4888; + this.state = 4840; + this.anyName(); + this.state = 4841; + this.tableAccessMethodClause(); + this.state = 4842; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4889; + this.state = 4843; this.match(PostgreSqlParser.KW_TO); - this.state = 4890; + this.state = 4844; this.colId(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 4892; + this.state = 4846; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4893; + this.state = 4847; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 4894; + this.state = 4848; this.procedureWithArgTypes(); - this.state = 4895; + this.state = 4849; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4896; + this.state = 4850; this.match(PostgreSqlParser.KW_TO); - this.state = 4897; - this.procedure_name_create(); + this.state = 4851; + this.procedureNameCreate(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 4899; + this.state = 4853; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4900; + this.state = 4854; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 4901; - this.schema_name(); - this.state = 4902; + this.state = 4855; + this.schemaName(); + this.state = 4856; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4903; + this.state = 4857; this.match(PostgreSqlParser.KW_TO); - this.state = 4904; - this.schema_name_create(); + this.state = 4858; + this.schemaNameCreate(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 4906; + this.state = 4860; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4907; + this.state = 4861; _la = this.tokenStream.LA(1); if(!(_la === 226 || _la === 328)) { this.errorHandler.recoverInline(this); @@ -27661,143 +27448,143 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4909; + this.state = 4863; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 612, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 608, this.context) ) { case 1: { - this.state = 4908; - this.opt_if_exists(); + this.state = 4862; + this.ifExists(); } break; } - this.state = 4911; - this.qualified_name(); - this.state = 4912; + this.state = 4865; + this.qualifiedName(); + this.state = 4866; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4913; + this.state = 4867; this.match(PostgreSqlParser.KW_TO); - this.state = 4914; + this.state = 4868; this.colId(); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 4916; + this.state = 4870; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4918; + this.state = 4872; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 259) { { - this.state = 4917; + this.state = 4871; this.match(PostgreSqlParser.KW_MATERIALIZED); } } - this.state = 4920; + this.state = 4874; this.match(PostgreSqlParser.KW_VIEW); - this.state = 4922; + this.state = 4876; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 614, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 610, this.context) ) { case 1: { - this.state = 4921; - this.opt_if_exists(); + this.state = 4875; + this.ifExists(); } break; } - this.state = 4924; - this.view_name(); - this.state = 4925; + this.state = 4878; + this.viewName(); + this.state = 4879; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4926; + this.state = 4880; this.match(PostgreSqlParser.KW_TO); - this.state = 4927; - this.view_name_create(); + this.state = 4881; + this.viewNameCreate(); } break; case 10: this.enterOuterAlt(localContext, 10); { - this.state = 4929; + this.state = 4883; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4931; + this.state = 4885; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 63) { { - this.state = 4930; + this.state = 4884; this.match(PostgreSqlParser.KW_FOREIGN); } } - this.state = 4933; + this.state = 4887; this.match(PostgreSqlParser.KW_TABLE); - this.state = 4935; + this.state = 4889; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 616, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 612, this.context) ) { case 1: { - this.state = 4934; - this.opt_if_exists(); + this.state = 4888; + this.ifExists(); } break; } - this.state = 4937; - this.relation_expr(); - this.state = 4938; + this.state = 4891; + this.relationExpr(); + this.state = 4892; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4939; + this.state = 4893; this.match(PostgreSqlParser.KW_TO); - this.state = 4940; - this.table_name_create(); + this.state = 4894; + this.tableNameCreate(); } break; case 11: this.enterOuterAlt(localContext, 11); { - this.state = 4942; + this.state = 4896; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4967; + this.state = 4921; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FOREIGN: case PostgreSqlParser.KW_TABLE: { - this.state = 4944; + this.state = 4898; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 63) { { - this.state = 4943; + this.state = 4897; this.match(PostgreSqlParser.KW_FOREIGN); } } - this.state = 4946; + this.state = 4900; this.match(PostgreSqlParser.KW_TABLE); - this.state = 4948; + this.state = 4902; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 618, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 614, this.context) ) { case 1: { - this.state = 4947; - this.opt_if_exists(); + this.state = 4901; + this.ifExists(); } break; } - this.state = 4950; - this.relation_expr(); - this.state = 4951; + this.state = 4904; + this.relationExpr(); + this.state = 4905; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4953; + this.state = 4907; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 619, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 615, this.context) ) { case 1: { - this.state = 4952; + this.state = 4906; this.match(PostgreSqlParser.KW_COLUMN); } break; @@ -27807,38 +27594,38 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_MATERIALIZED: case PostgreSqlParser.KW_VIEW: { - this.state = 4956; + this.state = 4910; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 259) { { - this.state = 4955; + this.state = 4909; this.match(PostgreSqlParser.KW_MATERIALIZED); } } - this.state = 4958; + this.state = 4912; this.match(PostgreSqlParser.KW_VIEW); - this.state = 4960; + this.state = 4914; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 621, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 617, this.context) ) { case 1: { - this.state = 4959; - this.opt_if_exists(); + this.state = 4913; + this.ifExists(); } break; } - this.state = 4962; - this.view_name(); - this.state = 4963; + this.state = 4916; + this.viewName(); + this.state = 4917; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4965; + this.state = 4919; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 622, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 618, this.context) ) { case 1: { - this.state = 4964; + this.state = 4918; this.match(PostgreSqlParser.KW_COLUMN); } break; @@ -27848,83 +27635,83 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 4969; - this.column_name(); - this.state = 4970; + this.state = 4923; + this.columnName(); + this.state = 4924; this.match(PostgreSqlParser.KW_TO); - this.state = 4971; - this.column_name_create(); + this.state = 4925; + this.columnNameCreate(); } break; case 12: this.enterOuterAlt(localContext, 12); { - this.state = 4973; + this.state = 4927; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4981; + this.state = 4935; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_TABLE: { - this.state = 4974; + this.state = 4928; this.match(PostgreSqlParser.KW_TABLE); - this.state = 4976; + this.state = 4930; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 624, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 620, this.context) ) { case 1: { - this.state = 4975; - this.opt_if_exists(); + this.state = 4929; + this.ifExists(); } break; } - this.state = 4978; - this.relation_expr(); + this.state = 4932; + this.relationExpr(); } break; case PostgreSqlParser.KW_DOMAIN: { - this.state = 4979; + this.state = 4933; this.match(PostgreSqlParser.KW_DOMAIN); - this.state = 4980; - this.any_name(); + this.state = 4934; + this.anyName(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4983; + this.state = 4937; this.match(PostgreSqlParser.KW_RENAME); - this.state = 4984; + this.state = 4938; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 4985; + this.state = 4939; this.colId(); - this.state = 4986; + this.state = 4940; this.match(PostgreSqlParser.KW_TO); - this.state = 4987; + this.state = 4941; this.colId(); } break; case 13: this.enterOuterAlt(localContext, 13); { - this.state = 4989; + this.state = 4943; this.match(PostgreSqlParser.KW_ALTER); - this.state = 4996; + this.state = 4950; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_POLICY: { { - this.state = 4990; + this.state = 4944; this.match(PostgreSqlParser.KW_POLICY); - this.state = 4992; + this.state = 4946; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 626, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 622, this.context) ) { case 1: { - this.state = 4991; - this.opt_if_exists(); + this.state = 4945; + this.ifExists(); } break; } @@ -27933,113 +27720,113 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_RULE: { - this.state = 4994; + this.state = 4948; this.match(PostgreSqlParser.KW_RULE); } break; case PostgreSqlParser.KW_TRIGGER: { - this.state = 4995; + this.state = 4949; this.match(PostgreSqlParser.KW_TRIGGER); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4998; + this.state = 4952; this.colId(); - this.state = 4999; + this.state = 4953; this.match(PostgreSqlParser.KW_ON); - this.state = 5000; - this.qualified_name(); - this.state = 5001; + this.state = 4954; + this.qualifiedName(); + this.state = 4955; this.match(PostgreSqlParser.KW_RENAME); - this.state = 5002; + this.state = 4956; this.match(PostgreSqlParser.KW_TO); - this.state = 5003; + this.state = 4957; this.colId(); } break; case 14: this.enterOuterAlt(localContext, 14); { - this.state = 5005; + this.state = 4959; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5018; + this.state = 4972; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FOREIGN: { - this.state = 5006; + this.state = 4960; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 5007; + this.state = 4961; this.match(PostgreSqlParser.KW_DATA); - this.state = 5008; + this.state = 4962; this.match(PostgreSqlParser.KW_WRAPPER); } break; case PostgreSqlParser.KW_LANGUAGE: case PostgreSqlParser.KW_PROCEDURAL: { - this.state = 5010; + this.state = 4964; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 295) { { - this.state = 5009; + this.state = 4963; this.match(PostgreSqlParser.KW_PROCEDURAL); } } - this.state = 5012; + this.state = 4966; this.match(PostgreSqlParser.KW_LANGUAGE); } break; case PostgreSqlParser.KW_PUBLICATION: { - this.state = 5013; + this.state = 4967; this.match(PostgreSqlParser.KW_PUBLICATION); } break; case PostgreSqlParser.KW_SERVER: { - this.state = 5014; + this.state = 4968; this.match(PostgreSqlParser.KW_SERVER); } break; case PostgreSqlParser.KW_SUBSCRIPTION: { - this.state = 5015; + this.state = 4969; this.match(PostgreSqlParser.KW_SUBSCRIPTION); } break; case PostgreSqlParser.KW_EVENT: { - this.state = 5016; + this.state = 4970; this.match(PostgreSqlParser.KW_EVENT); - this.state = 5017; + this.state = 4971; this.match(PostgreSqlParser.KW_TRIGGER); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5020; + this.state = 4974; this.colId(); - this.state = 5021; + this.state = 4975; this.match(PostgreSqlParser.KW_RENAME); - this.state = 5022; + this.state = 4976; this.match(PostgreSqlParser.KW_TO); - this.state = 5023; + this.state = 4977; this.colId(); } break; case 15: this.enterOuterAlt(localContext, 15); { - this.state = 5025; + this.state = 4979; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5026; + this.state = 4980; _la = this.tokenStream.LA(1); if(!(_la === 66 || _la === 99 || _la === 318)) { this.errorHandler.recoverInline(this); @@ -28048,41 +27835,41 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5027; + this.state = 4981; this.roleSpec(); - this.state = 5028; + this.state = 4982; this.match(PostgreSqlParser.KW_RENAME); - this.state = 5029; + this.state = 4983; this.match(PostgreSqlParser.KW_TO); - this.state = 5030; + this.state = 4984; this.roleSpec(); } break; case 16: this.enterOuterAlt(localContext, 16); { - this.state = 5032; + this.state = 4986; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5033; + this.state = 4987; this.optTableSpace(); - this.state = 5034; + this.state = 4988; this.match(PostgreSqlParser.KW_RENAME); - this.state = 5035; + this.state = 4989; this.match(PostgreSqlParser.KW_TO); - this.state = 5036; - this.tablespace_name_create(); + this.state = 4990; + this.tableSpaceName(); } break; case 17: this.enterOuterAlt(localContext, 17); { - this.state = 5038; + this.state = 4992; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5039; + this.state = 4993; this.match(PostgreSqlParser.KW_TEXT); - this.state = 5040; + this.state = 4994; this.match(PostgreSqlParser.KW_SEARCH); - this.state = 5041; + this.state = 4995; _la = this.tokenStream.LA(1); if(!(_la === 163 || _la === 185 || _la === 283 || _la === 353)) { this.errorHandler.recoverInline(this); @@ -28091,42 +27878,42 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5042; - this.any_name(); - this.state = 5043; + this.state = 4996; + this.anyName(); + this.state = 4997; this.match(PostgreSqlParser.KW_RENAME); - this.state = 5044; + this.state = 4998; this.match(PostgreSqlParser.KW_TO); - this.state = 5045; + this.state = 4999; this.colId(); } break; case 18: this.enterOuterAlt(localContext, 18); { - this.state = 5047; + this.state = 5001; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5048; + this.state = 5002; this.match(PostgreSqlParser.KW_TYPE); - this.state = 5049; - this.any_name(); - this.state = 5050; + this.state = 5003; + this.anyName(); + this.state = 5004; this.match(PostgreSqlParser.KW_RENAME); - this.state = 5051; + this.state = 5005; this.match(PostgreSqlParser.KW_ATTRIBUTE); - this.state = 5052; + this.state = 5006; this.colId(); - this.state = 5053; + this.state = 5007; this.match(PostgreSqlParser.KW_TO); - this.state = 5054; + this.state = 5008; this.colId(); - this.state = 5056; + this.state = 5010; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 630, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 626, this.context) ) { case 1: { - this.state = 5055; - this.opt_drop_behavior(); + this.state = 5009; + this.optDropBehavior(); } break; } @@ -28150,90 +27937,90 @@ export class PostgreSqlParser extends SQLParserBase { } public alterObjectDependsStmt(): AlterObjectDependsStmtContext { let localContext = new AlterObjectDependsStmtContext(this.context, this.state); - this.enterRule(localContext, 436, PostgreSqlParser.RULE_alterObjectDependsStmt); + this.enterRule(localContext, 428, PostgreSqlParser.RULE_alterObjectDependsStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5060; + this.state = 5014; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5077; + this.state = 5031; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_FUNCTION: { - this.state = 5061; + this.state = 5015; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 5062; + this.state = 5016; this.functionWithArgTypes(); } break; case PostgreSqlParser.KW_PROCEDURE: { - this.state = 5063; + this.state = 5017; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 5064; + this.state = 5018; this.procedureWithArgTypes(); } break; case PostgreSqlParser.KW_ROUTINE: { - this.state = 5065; + this.state = 5019; this.match(PostgreSqlParser.KW_ROUTINE); - this.state = 5066; + this.state = 5020; this.routineWithArgTypes(); } break; case PostgreSqlParser.KW_TRIGGER: { - this.state = 5067; + this.state = 5021; this.match(PostgreSqlParser.KW_TRIGGER); - this.state = 5068; + this.state = 5022; this.colId(); - this.state = 5069; + this.state = 5023; this.match(PostgreSqlParser.KW_ON); - this.state = 5070; - this.qualified_name(); + this.state = 5024; + this.qualifiedName(); } break; case PostgreSqlParser.KW_MATERIALIZED: { - this.state = 5072; + this.state = 5026; this.match(PostgreSqlParser.KW_MATERIALIZED); - this.state = 5073; + this.state = 5027; this.match(PostgreSqlParser.KW_VIEW); - this.state = 5074; - this.view_name(); + this.state = 5028; + this.viewName(); } break; case PostgreSqlParser.KW_INDEX: { - this.state = 5075; + this.state = 5029; this.match(PostgreSqlParser.KW_INDEX); - this.state = 5076; - this.qualified_name(); + this.state = 5030; + this.qualifiedName(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5080; + this.state = 5034; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 5079; + this.state = 5033; this.match(PostgreSqlParser.KW_NO); } } - this.state = 5082; + this.state = 5036; this.match(PostgreSqlParser.KW_DEPENDS); - this.state = 5083; + this.state = 5037; this.match(PostgreSqlParser.KW_ON); - this.state = 5084; + this.state = 5038; this.match(PostgreSqlParser.KW_EXTENSION); - this.state = 5085; + this.state = 5039; this.colId(); } } @@ -28253,57 +28040,57 @@ export class PostgreSqlParser extends SQLParserBase { } public alterObjectSchemaStmt(): AlterObjectSchemaStmtContext { let localContext = new AlterObjectSchemaStmtContext(this.context, this.state); - this.enterRule(localContext, 438, PostgreSqlParser.RULE_alterObjectSchemaStmt); + this.enterRule(localContext, 430, PostgreSqlParser.RULE_alterObjectSchemaStmt); let _la: number; try { - this.state = 5148; + this.state = 5102; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 641, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 637, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5087; + this.state = 5041; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5126; + this.state = 5080; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 639, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 635, this.context) ) { case 1: { - this.state = 5088; + this.state = 5042; this.match(PostgreSqlParser.KW_AGGREGATE); - this.state = 5089; + this.state = 5043; this.aggregateWithArgTypes(); } break; case 2: { - this.state = 5090; + this.state = 5044; this.match(PostgreSqlParser.KW_EXTENSION); - this.state = 5091; + this.state = 5045; this.colId(); } break; case 3: { - this.state = 5092; + this.state = 5046; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 5093; + this.state = 5047; this.functionWithArgTypes(); } break; case 4: { - this.state = 5094; + this.state = 5048; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 5095; + this.state = 5049; this.operatorWithArgTypes(); } break; case 5: { - this.state = 5096; + this.state = 5050; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 5097; + this.state = 5051; _la = this.tokenStream.LA(1); if(!(_la === 156 || _la === 206)) { this.errorHandler.recoverInline(this); @@ -28312,126 +28099,126 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5098; - this.any_name(); - this.state = 5099; - this.table_access_method_clause(); + this.state = 5052; + this.anyName(); + this.state = 5053; + this.tableAccessMethodClause(); } break; case 6: { - this.state = 5101; + this.state = 5055; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 5102; + this.state = 5056; this.procedureWithArgTypes(); } break; case 7: { - this.state = 5103; + this.state = 5057; this.match(PostgreSqlParser.KW_ROUTINE); - this.state = 5104; + this.state = 5058; this.routineWithArgTypes(); } break; case 8: { - this.state = 5105; + this.state = 5059; this.match(PostgreSqlParser.KW_SEQUENCE); - this.state = 5107; + this.state = 5061; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 634, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 630, this.context) ) { case 1: { - this.state = 5106; - this.opt_if_exists(); + this.state = 5060; + this.ifExists(); } break; } - this.state = 5109; - this.qualified_name(); + this.state = 5063; + this.qualifiedName(); } break; case 9: { - this.state = 5111; + this.state = 5065; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 259) { { - this.state = 5110; + this.state = 5064; this.match(PostgreSqlParser.KW_MATERIALIZED); } } - this.state = 5113; + this.state = 5067; this.match(PostgreSqlParser.KW_VIEW); - this.state = 5115; + this.state = 5069; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 636, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 632, this.context) ) { case 1: { - this.state = 5114; - this.opt_if_exists(); + this.state = 5068; + this.ifExists(); } break; } - this.state = 5117; - this.view_name(); + this.state = 5071; + this.viewName(); } break; case 10: { - this.state = 5119; + this.state = 5073; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 63) { { - this.state = 5118; + this.state = 5072; this.match(PostgreSqlParser.KW_FOREIGN); } } - this.state = 5121; + this.state = 5075; this.match(PostgreSqlParser.KW_TABLE); - this.state = 5123; + this.state = 5077; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 638, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 634, this.context) ) { case 1: { - this.state = 5122; - this.opt_if_exists(); + this.state = 5076; + this.ifExists(); } break; } - this.state = 5125; - this.relation_expr(); + this.state = 5079; + this.relationExpr(); } break; } - this.state = 5128; + this.state = 5082; this.match(PostgreSqlParser.KW_SET); - this.state = 5129; + this.state = 5083; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 5130; - this.schema_name(); + this.state = 5084; + this.schemaName(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5132; + this.state = 5086; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5141; + this.state = 5095; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_TEXT: { - this.state = 5133; + this.state = 5087; this.match(PostgreSqlParser.KW_TEXT); - this.state = 5134; + this.state = 5088; this.match(PostgreSqlParser.KW_SEARCH); - this.state = 5135; + this.state = 5089; _la = this.tokenStream.LA(1); if(!(_la === 163 || _la === 185 || _la === 283 || _la === 353)) { this.errorHandler.recoverInline(this); @@ -28444,45 +28231,45 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_COLLATION: { - this.state = 5136; + this.state = 5090; this.match(PostgreSqlParser.KW_COLLATION); } break; case PostgreSqlParser.KW_CONVERSION: { - this.state = 5137; + this.state = 5091; this.match(PostgreSqlParser.KW_CONVERSION); } break; case PostgreSqlParser.KW_DOMAIN: { - this.state = 5138; + this.state = 5092; this.match(PostgreSqlParser.KW_DOMAIN); } break; case PostgreSqlParser.KW_STATISTICS: { - this.state = 5139; + this.state = 5093; this.match(PostgreSqlParser.KW_STATISTICS); } break; case PostgreSqlParser.KW_TYPE: { - this.state = 5140; + this.state = 5094; this.match(PostgreSqlParser.KW_TYPE); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5143; - this.any_name(); - this.state = 5144; + this.state = 5097; + this.anyName(); + this.state = 5098; this.match(PostgreSqlParser.KW_SET); - this.state = 5145; + this.state = 5099; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 5146; - this.schema_name(); + this.state = 5100; + this.schemaName(); } break; } @@ -28503,20 +28290,20 @@ export class PostgreSqlParser extends SQLParserBase { } public alterOperatorStmt(): AlterOperatorStmtContext { let localContext = new AlterOperatorStmtContext(this.context, this.state); - this.enterRule(localContext, 440, PostgreSqlParser.RULE_alterOperatorStmt); + this.enterRule(localContext, 432, PostgreSqlParser.RULE_alterOperatorStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 5150; + this.state = 5104; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5151; + this.state = 5105; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 5152; + this.state = 5106; this.operatorWithArgTypes(); - this.state = 5153; + this.state = 5107; this.match(PostgreSqlParser.KW_SET); - this.state = 5154; - this.operator_def_list(); + this.state = 5108; + this.operatorDefList(); } } catch (re) { @@ -28533,34 +28320,34 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public operator_def_list(): Operator_def_listContext { - let localContext = new Operator_def_listContext(this.context, this.state); - this.enterRule(localContext, 442, PostgreSqlParser.RULE_operator_def_list); + public operatorDefList(): OperatorDefListContext { + let localContext = new OperatorDefListContext(this.context, this.state); + this.enterRule(localContext, 434, PostgreSqlParser.RULE_operatorDefList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5156; + this.state = 5110; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 5157; - this.operator_def_elem(); - this.state = 5162; + this.state = 5111; + this.operatorDefElem(); + this.state = 5116; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 5158; + this.state = 5112; this.match(PostgreSqlParser.COMMA); - this.state = 5159; - this.operator_def_elem(); + this.state = 5113; + this.operatorDefElem(); } } - this.state = 5164; + this.state = 5118; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 5165; + this.state = 5119; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -28578,52 +28365,52 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public operator_def_elem(): Operator_def_elemContext { - let localContext = new Operator_def_elemContext(this.context, this.state); - this.enterRule(localContext, 444, PostgreSqlParser.RULE_operator_def_elem); + public operatorDefElem(): OperatorDefElemContext { + let localContext = new OperatorDefElemContext(this.context, this.state); + this.enterRule(localContext, 436, PostgreSqlParser.RULE_operatorDefElem); try { this.enterOuterAlt(localContext, 1); { - this.state = 5167; + this.state = 5121; this.colLabel(); - this.state = 5168; + this.state = 5122; this.match(PostgreSqlParser.EQUAL); - this.state = 5175; + this.state = 5129; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 643, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 639, this.context) ) { case 1: { - this.state = 5169; + this.state = 5123; this.match(PostgreSqlParser.KW_NONE); } break; case 2: { - this.state = 5170; - this.func_type(); + this.state = 5124; + this.funcType(); } break; case 3: { - this.state = 5171; - this.reserved_keyword(); + this.state = 5125; + this.reservedKeyword(); } break; case 4: { - this.state = 5172; - this.qual_all_op(); + this.state = 5126; + this.qualAllOp(); } break; case 5: { - this.state = 5173; + this.state = 5127; this.numericOnly(); } break; case 6: { - this.state = 5174; + this.state = 5128; this.stringConst(); } break; @@ -28646,20 +28433,20 @@ export class PostgreSqlParser extends SQLParserBase { } public alterTypeStmt(): AlterTypeStmtContext { let localContext = new AlterTypeStmtContext(this.context, this.state); - this.enterRule(localContext, 446, PostgreSqlParser.RULE_alterTypeStmt); + this.enterRule(localContext, 438, PostgreSqlParser.RULE_alterTypeStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 5177; + this.state = 5131; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5178; + this.state = 5132; this.match(PostgreSqlParser.KW_TYPE); - this.state = 5179; - this.any_name(); - this.state = 5180; + this.state = 5133; + this.anyName(); + this.state = 5134; this.match(PostgreSqlParser.KW_SET); - this.state = 5181; - this.operator_def_list(); + this.state = 5135; + this.operatorDefList(); } } catch (re) { @@ -28678,20 +28465,20 @@ export class PostgreSqlParser extends SQLParserBase { } public alterOwnerStmt(): AlterOwnerStmtContext { let localContext = new AlterOwnerStmtContext(this.context, this.state); - this.enterRule(localContext, 448, PostgreSqlParser.RULE_alterOwnerStmt); + this.enterRule(localContext, 440, PostgreSqlParser.RULE_alterOwnerStmt); let _la: number; try { - this.state = 5257; + this.state = 5211; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 648, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 644, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5183; + this.state = 5137; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5184; + this.state = 5138; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 5185; + this.state = 5139; _la = this.tokenStream.LA(1); if(!(_la === 156 || _la === 206)) { this.errorHandler.recoverInline(this); @@ -28700,150 +28487,150 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5186; - this.any_name(); - this.state = 5187; - this.table_access_method_clause(); - this.state = 5188; + this.state = 5140; + this.anyName(); + this.state = 5141; + this.tableAccessMethodClause(); + this.state = 5142; this.match(PostgreSqlParser.KW_OWNER); - this.state = 5189; + this.state = 5143; this.match(PostgreSqlParser.KW_TO); - this.state = 5190; + this.state = 5144; this.roleSpec(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5192; + this.state = 5146; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5219; + this.state = 5173; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 645, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 641, this.context) ) { case 1: { - this.state = 5193; + this.state = 5147; this.match(PostgreSqlParser.KW_AGGREGATE); - this.state = 5194; + this.state = 5148; this.aggregateWithArgTypes(); } break; case 2: { - this.state = 5195; + this.state = 5149; this.match(PostgreSqlParser.KW_DATABASE); - this.state = 5196; - this.database_name(); + this.state = 5150; + this.databaseName(); } break; case 3: { - this.state = 5197; + this.state = 5151; this.match(PostgreSqlParser.KW_FUNCTION); - this.state = 5198; + this.state = 5152; this.functionWithArgTypes(); } break; case 4: { - this.state = 5200; + this.state = 5154; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 295) { { - this.state = 5199; + this.state = 5153; this.match(PostgreSqlParser.KW_PROCEDURAL); } } - this.state = 5202; + this.state = 5156; this.match(PostgreSqlParser.KW_LANGUAGE); - this.state = 5203; + this.state = 5157; this.colId(); } break; case 5: { - this.state = 5204; + this.state = 5158; this.match(PostgreSqlParser.KW_LARGE); - this.state = 5205; + this.state = 5159; this.match(PostgreSqlParser.KW_OBJECT); - this.state = 5206; + this.state = 5160; this.numericOnly(); } break; case 6: { - this.state = 5207; + this.state = 5161; this.match(PostgreSqlParser.KW_LARGE); - this.state = 5208; + this.state = 5162; this.match(PostgreSqlParser.KW_OBJECT); - this.state = 5209; + this.state = 5163; this.numericOnly(); } break; case 7: { - this.state = 5210; + this.state = 5164; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 5211; + this.state = 5165; this.operatorWithArgTypes(); } break; case 8: { - this.state = 5212; + this.state = 5166; this.match(PostgreSqlParser.KW_PROCEDURE); - this.state = 5213; + this.state = 5167; this.procedureWithArgTypes(); } break; case 9: { - this.state = 5214; + this.state = 5168; this.match(PostgreSqlParser.KW_ROUTINE); - this.state = 5215; + this.state = 5169; this.routineWithArgTypes(); } break; case 10: { - this.state = 5216; + this.state = 5170; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 5217; - this.schema_name(); + this.state = 5171; + this.schemaName(); } break; case 11: { - this.state = 5218; + this.state = 5172; this.optTableSpace(); } break; } - this.state = 5221; + this.state = 5175; this.match(PostgreSqlParser.KW_OWNER); - this.state = 5222; + this.state = 5176; this.match(PostgreSqlParser.KW_TO); - this.state = 5223; + this.state = 5177; this.roleSpec(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 5225; + this.state = 5179; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5234; + this.state = 5188; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_TEXT: { - this.state = 5226; + this.state = 5180; this.match(PostgreSqlParser.KW_TEXT); - this.state = 5227; + this.state = 5181; this.match(PostgreSqlParser.KW_SEARCH); - this.state = 5228; + this.state = 5182; _la = this.tokenStream.LA(1); if(!(_la === 163 || _la === 185)) { this.errorHandler.recoverInline(this); @@ -28856,69 +28643,69 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_COLLATION: { - this.state = 5229; + this.state = 5183; this.match(PostgreSqlParser.KW_COLLATION); } break; case PostgreSqlParser.KW_CONVERSION: { - this.state = 5230; + this.state = 5184; this.match(PostgreSqlParser.KW_CONVERSION); } break; case PostgreSqlParser.KW_DOMAIN: { - this.state = 5231; + this.state = 5185; this.match(PostgreSqlParser.KW_DOMAIN); } break; case PostgreSqlParser.KW_TYPE: { - this.state = 5232; + this.state = 5186; this.match(PostgreSqlParser.KW_TYPE); } break; case PostgreSqlParser.KW_STATISTICS: { - this.state = 5233; + this.state = 5187; this.match(PostgreSqlParser.KW_STATISTICS); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5236; - this.any_name(); - this.state = 5237; + this.state = 5190; + this.anyName(); + this.state = 5191; this.match(PostgreSqlParser.KW_OWNER); - this.state = 5238; + this.state = 5192; this.match(PostgreSqlParser.KW_TO); - this.state = 5239; + this.state = 5193; this.roleSpec(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 5241; + this.state = 5195; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5250; + this.state = 5204; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_SERVER: { - this.state = 5242; + this.state = 5196; this.match(PostgreSqlParser.KW_SERVER); } break; case PostgreSqlParser.KW_FOREIGN: { { - this.state = 5243; + this.state = 5197; this.match(PostgreSqlParser.KW_FOREIGN); - this.state = 5244; + this.state = 5198; this.match(PostgreSqlParser.KW_DATA); - this.state = 5245; + this.state = 5199; this.match(PostgreSqlParser.KW_WRAPPER); } } @@ -28926,35 +28713,35 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_EVENT: { { - this.state = 5246; + this.state = 5200; this.match(PostgreSqlParser.KW_EVENT); - this.state = 5247; + this.state = 5201; this.match(PostgreSqlParser.KW_TRIGGER); } } break; case PostgreSqlParser.KW_PUBLICATION: { - this.state = 5248; + this.state = 5202; this.match(PostgreSqlParser.KW_PUBLICATION); } break; case PostgreSqlParser.KW_SUBSCRIPTION: { - this.state = 5249; + this.state = 5203; this.match(PostgreSqlParser.KW_SUBSCRIPTION); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5252; + this.state = 5206; this.colId(); - this.state = 5253; + this.state = 5207; this.match(PostgreSqlParser.KW_OWNER); - this.state = 5254; + this.state = 5208; this.match(PostgreSqlParser.KW_TO); - this.state = 5255; + this.state = 5209; this.roleSpec(); } break; @@ -28976,47 +28763,47 @@ export class PostgreSqlParser extends SQLParserBase { } public createPublicationStmt(): CreatePublicationStmtContext { let localContext = new CreatePublicationStmtContext(this.context, this.state); - this.enterRule(localContext, 450, PostgreSqlParser.RULE_createPublicationStmt); + this.enterRule(localContext, 442, PostgreSqlParser.RULE_createPublicationStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 5259; + this.state = 5213; this.match(PostgreSqlParser.KW_CREATE); - this.state = 5260; + this.state = 5214; this.match(PostgreSqlParser.KW_PUBLICATION); - this.state = 5261; + this.state = 5215; this.colId(); - this.state = 5268; + this.state = 5222; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 649, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 645, this.context) ) { case 1: { - this.state = 5262; + this.state = 5216; this.match(PostgreSqlParser.KW_FOR); - this.state = 5263; + this.state = 5217; this.match(PostgreSqlParser.KW_TABLE); - this.state = 5264; - this.relation_expr_list(); + this.state = 5218; + this.relationExprList(); } break; case 2: { - this.state = 5265; + this.state = 5219; this.match(PostgreSqlParser.KW_FOR); - this.state = 5266; + this.state = 5220; this.match(PostgreSqlParser.KW_ALL); - this.state = 5267; + this.state = 5221; this.match(PostgreSqlParser.KW_TABLES); } break; } - this.state = 5271; + this.state = 5225; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 650, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 646, this.context) ) { case 1: { - this.state = 5270; - this.opt_definition(); + this.state = 5224; + this.optDefinition(); } break; } @@ -29038,28 +28825,28 @@ export class PostgreSqlParser extends SQLParserBase { } public alterPublicationStmt(): AlterPublicationStmtContext { let localContext = new AlterPublicationStmtContext(this.context, this.state); - this.enterRule(localContext, 452, PostgreSqlParser.RULE_alterPublicationStmt); + this.enterRule(localContext, 444, PostgreSqlParser.RULE_alterPublicationStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5273; + this.state = 5227; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5274; + this.state = 5228; this.match(PostgreSqlParser.KW_PUBLICATION); - this.state = 5275; + this.state = 5229; this.colId(); - this.state = 5293; + this.state = 5247; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 652, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 648, this.context) ) { case 1: { { - this.state = 5276; + this.state = 5230; this.match(PostgreSqlParser.KW_OWNER); - this.state = 5277; + this.state = 5231; this.match(PostgreSqlParser.KW_TO); - this.state = 5278; + this.state = 5232; this.roleSpec(); } } @@ -29067,9 +28854,9 @@ export class PostgreSqlParser extends SQLParserBase { case 2: { { - this.state = 5279; + this.state = 5233; this.match(PostgreSqlParser.KW_SET); - this.state = 5280; + this.state = 5234; this.definition(); } } @@ -29077,18 +28864,18 @@ export class PostgreSqlParser extends SQLParserBase { case 3: { { - this.state = 5281; + this.state = 5235; this.match(PostgreSqlParser.KW_RENAME); - this.state = 5282; + this.state = 5236; this.match(PostgreSqlParser.KW_TO); - this.state = 5283; + this.state = 5237; this.colId(); } } break; case 4: { - this.state = 5284; + this.state = 5238; _la = this.tokenStream.LA(1); if(!(_la === 133 || _la === 191 || _la === 333)) { this.errorHandler.recoverInline(this); @@ -29097,21 +28884,21 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5285; - this.publication_relation_expr(); - this.state = 5290; + this.state = 5239; + this.publicationRelationExpr(); + this.state = 5244; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 5286; + this.state = 5240; this.match(PostgreSqlParser.COMMA); - this.state = 5287; - this.publication_relation_expr(); + this.state = 5241; + this.publicationRelationExpr(); } } - this.state = 5292; + this.state = 5246; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -29136,50 +28923,50 @@ export class PostgreSqlParser extends SQLParserBase { } public createSubscriptionStmt(): CreateSubscriptionStmtContext { let localContext = new CreateSubscriptionStmtContext(this.context, this.state); - this.enterRule(localContext, 454, PostgreSqlParser.RULE_createSubscriptionStmt); + this.enterRule(localContext, 446, PostgreSqlParser.RULE_createSubscriptionStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5295; + this.state = 5249; this.match(PostgreSqlParser.KW_CREATE); - this.state = 5296; + this.state = 5250; this.match(PostgreSqlParser.KW_SUBSCRIPTION); - this.state = 5297; + this.state = 5251; this.colId(); - this.state = 5298; + this.state = 5252; this.match(PostgreSqlParser.KW_CONNECTION); - this.state = 5299; + this.state = 5253; this.stringConst(); - this.state = 5300; + this.state = 5254; this.match(PostgreSqlParser.KW_PUBLICATION); { - this.state = 5301; + this.state = 5255; this.colLabel(); - this.state = 5306; + this.state = 5260; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 5302; + this.state = 5256; this.match(PostgreSqlParser.COMMA); - this.state = 5303; + this.state = 5257; this.colLabel(); } } - this.state = 5308; + this.state = 5262; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 5310; + this.state = 5264; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 654, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 650, this.context) ) { case 1: { - this.state = 5309; - this.opt_definition(); + this.state = 5263; + this.optDefinition(); } break; } @@ -29201,62 +28988,62 @@ export class PostgreSqlParser extends SQLParserBase { } public alterSubscriptionStmt(): AlterSubscriptionStmtContext { let localContext = new AlterSubscriptionStmtContext(this.context, this.state); - this.enterRule(localContext, 456, PostgreSqlParser.RULE_alterSubscriptionStmt); + this.enterRule(localContext, 448, PostgreSqlParser.RULE_alterSubscriptionStmt); let _la: number; try { - this.state = 5368; + this.state = 5322; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 658, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 654, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5312; + this.state = 5266; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5313; + this.state = 5267; this.match(PostgreSqlParser.KW_SUBSCRIPTION); - this.state = 5314; + this.state = 5268; this.colId(); - this.state = 5315; + this.state = 5269; this.match(PostgreSqlParser.KW_SET); - this.state = 5316; + this.state = 5270; this.definition(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5318; + this.state = 5272; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5319; + this.state = 5273; this.match(PostgreSqlParser.KW_SUBSCRIPTION); - this.state = 5320; + this.state = 5274; this.colId(); - this.state = 5321; + this.state = 5275; this.match(PostgreSqlParser.KW_CONNECTION); - this.state = 5322; + this.state = 5276; this.stringConst(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 5324; + this.state = 5278; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5325; + this.state = 5279; this.match(PostgreSqlParser.KW_SUBSCRIPTION); - this.state = 5326; + this.state = 5280; this.colId(); - this.state = 5327; + this.state = 5281; this.match(PostgreSqlParser.KW_REFRESH); - this.state = 5328; + this.state = 5282; this.match(PostgreSqlParser.KW_PUBLICATION); - this.state = 5330; + this.state = 5284; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 655, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 651, this.context) ) { case 1: { - this.state = 5329; - this.opt_definition(); + this.state = 5283; + this.optDefinition(); } break; } @@ -29265,13 +29052,13 @@ export class PostgreSqlParser extends SQLParserBase { case 4: this.enterOuterAlt(localContext, 4); { - this.state = 5332; + this.state = 5286; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5333; + this.state = 5287; this.match(PostgreSqlParser.KW_SUBSCRIPTION); - this.state = 5334; + this.state = 5288; this.colId(); - this.state = 5335; + this.state = 5289; _la = this.tokenStream.LA(1); if(!(_la === 133 || _la === 191 || _la === 333)) { this.errorHandler.recoverInline(this); @@ -29280,35 +29067,35 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5336; + this.state = 5290; this.match(PostgreSqlParser.KW_PUBLICATION); { - this.state = 5337; + this.state = 5291; this.colLabel(); - this.state = 5342; + this.state = 5296; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 5338; + this.state = 5292; this.match(PostgreSqlParser.COMMA); - this.state = 5339; + this.state = 5293; this.colLabel(); } } - this.state = 5344; + this.state = 5298; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 5346; + this.state = 5300; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 657, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 653, this.context) ) { case 1: { - this.state = 5345; - this.opt_definition(); + this.state = 5299; + this.optDefinition(); } break; } @@ -29317,13 +29104,13 @@ export class PostgreSqlParser extends SQLParserBase { case 5: this.enterOuterAlt(localContext, 5); { - this.state = 5348; + this.state = 5302; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5349; + this.state = 5303; this.match(PostgreSqlParser.KW_SUBSCRIPTION); - this.state = 5350; + this.state = 5304; this.colId(); - this.state = 5351; + this.state = 5305; _la = this.tokenStream.LA(1); if(!(_la === 186 || _la === 193)) { this.errorHandler.recoverInline(this); @@ -29337,36 +29124,36 @@ export class PostgreSqlParser extends SQLParserBase { case 6: this.enterOuterAlt(localContext, 6); { - this.state = 5353; + this.state = 5307; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5354; + this.state = 5308; this.match(PostgreSqlParser.KW_SUBSCRIPTION); - this.state = 5355; + this.state = 5309; this.colId(); - this.state = 5356; + this.state = 5310; this.match(PostgreSqlParser.KW_SKIP); - this.state = 5357; + this.state = 5311; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 5358; - this.old_aggregate_elem(); - this.state = 5359; + this.state = 5312; + this.oldAggregateElem(); + this.state = 5313; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 5361; + this.state = 5315; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5362; + this.state = 5316; this.match(PostgreSqlParser.KW_SUBSCRIPTION); - this.state = 5363; + this.state = 5317; this.colId(); - this.state = 5364; + this.state = 5318; this.match(PostgreSqlParser.KW_OWNER); - this.state = 5365; + this.state = 5319; this.match(PostgreSqlParser.KW_TO); - this.state = 5366; + this.state = 5320; this.roleSpec(); } break; @@ -29388,32 +29175,32 @@ export class PostgreSqlParser extends SQLParserBase { } public ruleStmt(): RuleStmtContext { let localContext = new RuleStmtContext(this.context, this.state); - this.enterRule(localContext, 458, PostgreSqlParser.RULE_ruleStmt); + this.enterRule(localContext, 450, PostgreSqlParser.RULE_ruleStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5370; + this.state = 5324; this.match(PostgreSqlParser.KW_CREATE); - this.state = 5372; + this.state = 5326; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 82) { { - this.state = 5371; - this.opt_or_replace(); + this.state = 5325; + this.orReplaceOpt(); } } - this.state = 5374; + this.state = 5328; this.match(PostgreSqlParser.KW_RULE); - this.state = 5375; + this.state = 5329; this.colId(); - this.state = 5376; + this.state = 5330; this.match(PostgreSqlParser.KW_AS); - this.state = 5377; + this.state = 5331; this.match(PostgreSqlParser.KW_ON); - this.state = 5378; + this.state = 5332; _la = this.tokenStream.LA(1); if(!(_la === 88 || _la === 182 || _la === 241 || _la === 369)) { this.errorHandler.recoverInline(this); @@ -29422,28 +29209,28 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5379; + this.state = 5333; this.match(PostgreSqlParser.KW_TO); - this.state = 5380; - this.qualified_name(); - this.state = 5382; + this.state = 5334; + this.qualifiedName(); + this.state = 5336; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 103) { { - this.state = 5381; - this.where_clause(); + this.state = 5335; + this.whereClause(); } } - this.state = 5384; + this.state = 5338; this.match(PostgreSqlParser.KW_DO); - this.state = 5386; + this.state = 5340; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 137 || _la === 242) { { - this.state = 5385; + this.state = 5339; _la = this.tokenStream.LA(1); if(!(_la === 137 || _la === 242)) { this.errorHandler.recoverInline(this); @@ -29455,62 +29242,62 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 5404; + this.state = 5358; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 665, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 661, this.context) ) { case 1: { - this.state = 5388; + this.state = 5342; this.match(PostgreSqlParser.KW_NOTHING); } break; case 2: { - this.state = 5389; + this.state = 5343; this.ruleActionStmt(); } break; case 3: { - this.state = 5390; + this.state = 5344; this.match(PostgreSqlParser.OPEN_PAREN); { - this.state = 5392; + this.state = 5346; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2 || ((((_la - 88)) & ~0x1F) === 0 && ((1 << (_la - 88)) & 131089) !== 0) || _la === 182 || _la === 241 || _la === 271 || _la === 369 || _la === 422) { { - this.state = 5391; + this.state = 5345; this.ruleActionStmt(); } } - this.state = 5400; + this.state = 5354; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 7) { { { - this.state = 5394; + this.state = 5348; this.match(PostgreSqlParser.SEMI); - this.state = 5396; + this.state = 5350; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2 || ((((_la - 88)) & ~0x1F) === 0 && ((1 << (_la - 88)) & 131089) !== 0) || _la === 182 || _la === 241 || _la === 271 || _la === 369 || _la === 422) { { - this.state = 5395; + this.state = 5349; this.ruleActionStmt(); } } } } - this.state = 5402; + this.state = 5356; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 5403; + this.state = 5357; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -29533,43 +29320,43 @@ export class PostgreSqlParser extends SQLParserBase { } public ruleActionStmt(): RuleActionStmtContext { let localContext = new RuleActionStmtContext(this.context, this.state); - this.enterRule(localContext, 460, PostgreSqlParser.RULE_ruleActionStmt); + this.enterRule(localContext, 452, PostgreSqlParser.RULE_ruleActionStmt); try { - this.state = 5411; + this.state = 5365; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 666, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 662, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5406; + this.state = 5360; this.selectStmt(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5407; + this.state = 5361; this.insertStmt(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 5408; + this.state = 5362; this.updateStmt(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 5409; + this.state = 5363; this.deleteStmt(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 5410; + this.state = 5364; this.notifyStmt(); } break; @@ -29591,22 +29378,22 @@ export class PostgreSqlParser extends SQLParserBase { } public notifyStmt(): NotifyStmtContext { let localContext = new NotifyStmtContext(this.context, this.state); - this.enterRule(localContext, 462, PostgreSqlParser.RULE_notifyStmt); + this.enterRule(localContext, 454, PostgreSqlParser.RULE_notifyStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5413; + this.state = 5367; this.match(PostgreSqlParser.KW_NOTIFY); - this.state = 5414; + this.state = 5368; this.colId(); - this.state = 5416; + this.state = 5370; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 5415; - this.notify_payload(); + this.state = 5369; + this.notifyPayload(); } } @@ -29626,15 +29413,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public notify_payload(): Notify_payloadContext { - let localContext = new Notify_payloadContext(this.context, this.state); - this.enterRule(localContext, 464, PostgreSqlParser.RULE_notify_payload); + public notifyPayload(): NotifyPayloadContext { + let localContext = new NotifyPayloadContext(this.context, this.state); + this.enterRule(localContext, 456, PostgreSqlParser.RULE_notifyPayload); try { this.enterOuterAlt(localContext, 1); { - this.state = 5418; + this.state = 5372; this.match(PostgreSqlParser.COMMA); - this.state = 5419; + this.state = 5373; this.stringConst(); } } @@ -29654,13 +29441,13 @@ export class PostgreSqlParser extends SQLParserBase { } public listenStmt(): ListenStmtContext { let localContext = new ListenStmtContext(this.context, this.state); - this.enterRule(localContext, 466, PostgreSqlParser.RULE_listenStmt); + this.enterRule(localContext, 458, PostgreSqlParser.RULE_listenStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 5421; + this.state = 5375; this.match(PostgreSqlParser.KW_LISTEN); - this.state = 5422; + this.state = 5376; this.colId(); } } @@ -29680,13 +29467,13 @@ export class PostgreSqlParser extends SQLParserBase { } public unListenStmt(): UnListenStmtContext { let localContext = new UnListenStmtContext(this.context, this.state); - this.enterRule(localContext, 468, PostgreSqlParser.RULE_unListenStmt); + this.enterRule(localContext, 460, PostgreSqlParser.RULE_unListenStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 5424; + this.state = 5378; this.match(PostgreSqlParser.KW_UNLISTEN); - this.state = 5427; + this.state = 5381; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -30084,13 +29871,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 5425; + this.state = 5379; this.colId(); } break; case PostgreSqlParser.STAR: { - this.state = 5426; + this.state = 5380; this.match(PostgreSqlParser.STAR); } break; @@ -30115,34 +29902,34 @@ export class PostgreSqlParser extends SQLParserBase { } public transactionStmt(): TransactionStmtContext { let localContext = new TransactionStmtContext(this.context, this.state); - this.enterRule(localContext, 470, PostgreSqlParser.RULE_transactionStmt); + this.enterRule(localContext, 462, PostgreSqlParser.RULE_transactionStmt); let _la: number; try { - this.state = 5474; + this.state = 5428; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 678, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 674, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5429; + this.state = 5383; this.match(PostgreSqlParser.KW_BEGIN); - this.state = 5431; + this.state = 5385; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 669, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 665, this.context) ) { case 1: { - this.state = 5430; - this.opt_transaction(); + this.state = 5384; + this.optTransaction(); } break; } - this.state = 5434; + this.state = 5388; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 670, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 666, this.context) ) { case 1: { - this.state = 5433; - this.transaction_mode_list(); + this.state = 5387; + this.transactionModeList(); } break; } @@ -30151,17 +29938,17 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5436; + this.state = 5390; this.match(PostgreSqlParser.KW_START); - this.state = 5437; + this.state = 5391; this.match(PostgreSqlParser.KW_TRANSACTION); - this.state = 5439; + this.state = 5393; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 671, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 667, this.context) ) { case 1: { - this.state = 5438; - this.transaction_mode_list(); + this.state = 5392; + this.transactionModeList(); } break; } @@ -30170,46 +29957,46 @@ export class PostgreSqlParser extends SQLParserBase { case 3: this.enterOuterAlt(localContext, 3); { - this.state = 5441; + this.state = 5395; this.match(PostgreSqlParser.KW_SAVEPOINT); - this.state = 5442; + this.state = 5396; this.colId(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 5443; + this.state = 5397; this.match(PostgreSqlParser.KW_RELEASE); - this.state = 5445; + this.state = 5399; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 672, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 668, this.context) ) { case 1: { - this.state = 5444; + this.state = 5398; this.match(PostgreSqlParser.KW_SAVEPOINT); } break; } - this.state = 5447; + this.state = 5401; this.colId(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 5448; + this.state = 5402; this.match(PostgreSqlParser.KW_PREPARE); - this.state = 5449; + this.state = 5403; this.match(PostgreSqlParser.KW_TRANSACTION); - this.state = 5450; + this.state = 5404; this.stringConst(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 5451; + this.state = 5405; _la = this.tokenStream.LA(1); if(!(_la === 161 || _la === 319)) { this.errorHandler.recoverInline(this); @@ -30218,16 +30005,16 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5452; + this.state = 5406; this.match(PostgreSqlParser.KW_PREPARED); - this.state = 5453; + this.state = 5407; this.stringConst(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 5454; + this.state = 5408; _la = this.tokenStream.LA(1); if(!(_la === 129 || _la === 161 || _la === 319 || _la === 454)) { this.errorHandler.recoverInline(this); @@ -30236,34 +30023,34 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5456; + this.state = 5410; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 673, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 669, this.context) ) { case 1: { - this.state = 5455; - this.opt_transaction(); + this.state = 5409; + this.optTransaction(); } break; } - this.state = 5463; + this.state = 5417; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 33) { { - this.state = 5458; + this.state = 5412; this.match(PostgreSqlParser.KW_AND); - this.state = 5460; + this.state = 5414; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 5459; + this.state = 5413; this.match(PostgreSqlParser.KW_NO); } } - this.state = 5462; + this.state = 5416; this.match(PostgreSqlParser.KW_CHAIN); } } @@ -30273,31 +30060,31 @@ export class PostgreSqlParser extends SQLParserBase { case 8: this.enterOuterAlt(localContext, 8); { - this.state = 5465; + this.state = 5419; this.match(PostgreSqlParser.KW_ROLLBACK); - this.state = 5467; + this.state = 5421; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 356 || _la === 380) { { - this.state = 5466; - this.opt_transaction(); + this.state = 5420; + this.optTransaction(); } } - this.state = 5469; + this.state = 5423; this.match(PostgreSqlParser.KW_TO); - this.state = 5471; + this.state = 5425; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 677, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 673, this.context) ) { case 1: { - this.state = 5470; + this.state = 5424; this.match(PostgreSqlParser.KW_SAVEPOINT); } break; } - this.state = 5473; + this.state = 5427; this.colId(); } break; @@ -30317,14 +30104,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_transaction(): Opt_transactionContext { - let localContext = new Opt_transactionContext(this.context, this.state); - this.enterRule(localContext, 472, PostgreSqlParser.RULE_opt_transaction); + public optTransaction(): OptTransactionContext { + let localContext = new OptTransactionContext(this.context, this.state); + this.enterRule(localContext, 464, PostgreSqlParser.RULE_optTransaction); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5476; + this.state = 5430; _la = this.tokenStream.LA(1); if(!(_la === 356 || _la === 380)) { this.errorHandler.recoverInline(this); @@ -30349,31 +30136,31 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public transaction_mode_item(): Transaction_mode_itemContext { - let localContext = new Transaction_mode_itemContext(this.context, this.state); - this.enterRule(localContext, 474, PostgreSqlParser.RULE_transaction_mode_item); + public transactionModeItem(): TransactionModeItemContext { + let localContext = new TransactionModeItemContext(this.context, this.state); + this.enterRule(localContext, 466, PostgreSqlParser.RULE_transactionModeItem); let _la: number; try { - this.state = 5487; + this.state = 5441; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ISOLATION: this.enterOuterAlt(localContext, 1); { - this.state = 5478; + this.state = 5432; this.match(PostgreSqlParser.KW_ISOLATION); - this.state = 5479; + this.state = 5433; this.match(PostgreSqlParser.KW_LEVEL); - this.state = 5480; - this.iso_level(); + this.state = 5434; + this.isoLevel(); } break; case PostgreSqlParser.KW_READ: this.enterOuterAlt(localContext, 2); { - this.state = 5481; + this.state = 5435; this.match(PostgreSqlParser.KW_READ); - this.state = 5482; + this.state = 5436; _la = this.tokenStream.LA(1); if(!(_la === 81 || _la === 382)) { this.errorHandler.recoverInline(this); @@ -30388,17 +30175,17 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_NOT: this.enterOuterAlt(localContext, 3); { - this.state = 5484; + this.state = 5438; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 5483; + this.state = 5437; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 5486; + this.state = 5440; this.match(PostgreSqlParser.KW_DEFERRABLE); } break; @@ -30420,41 +30207,41 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public transaction_mode_list(): Transaction_mode_listContext { - let localContext = new Transaction_mode_listContext(this.context, this.state); - this.enterRule(localContext, 476, PostgreSqlParser.RULE_transaction_mode_list); + public transactionModeList(): TransactionModeListContext { + let localContext = new TransactionModeListContext(this.context, this.state); + this.enterRule(localContext, 468, PostgreSqlParser.RULE_transactionModeList); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 5489; - this.transaction_mode_item(); - this.state = 5496; + this.state = 5443; + this.transactionModeItem(); + this.state = 5450; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 682, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 678, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 5491; + this.state = 5445; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 5490; + this.state = 5444; this.match(PostgreSqlParser.COMMA); } } - this.state = 5493; - this.transaction_mode_item(); + this.state = 5447; + this.transactionModeItem(); } } } - this.state = 5498; + this.state = 5452; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 682, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 678, this.context); } } } @@ -30474,61 +30261,61 @@ export class PostgreSqlParser extends SQLParserBase { } public viewStmt(): ViewStmtContext { let localContext = new ViewStmtContext(this.context, this.state); - this.enterRule(localContext, 478, PostgreSqlParser.RULE_viewStmt); + this.enterRule(localContext, 470, PostgreSqlParser.RULE_viewStmt); let _la: number; try { localContext = new CreateViewContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 5499; + this.state = 5453; this.match(PostgreSqlParser.KW_CREATE); - this.state = 5502; + this.state = 5456; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 82) { { - this.state = 5500; + this.state = 5454; this.match(PostgreSqlParser.KW_OR); - this.state = 5501; + this.state = 5455; this.match(PostgreSqlParser.KW_REPLACE); } } - this.state = 5505; + this.state = 5459; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 213 || _la === 254 || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 32773) !== 0)) { { - this.state = 5504; + this.state = 5458; this.optTemp(); } } - this.state = 5522; + this.state = 5476; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_VIEW: { - this.state = 5507; + this.state = 5461; this.match(PostgreSqlParser.KW_VIEW); - this.state = 5508; - this.view_name_create(); - this.state = 5510; + this.state = 5462; + this.viewNameCreate(); + this.state = 5464; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 5509; - this.opt_column_list_create(); + this.state = 5463; + this.columnListCreate(); } } - this.state = 5513; + this.state = 5467; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 5512; + this.state = 5466; this.optRelOptions(); } } @@ -30537,20 +30324,20 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_RECURSIVE: { - this.state = 5515; + this.state = 5469; this.match(PostgreSqlParser.KW_RECURSIVE); - this.state = 5516; + this.state = 5470; this.match(PostgreSqlParser.KW_VIEW); - this.state = 5517; - this.view_name_create(); - this.state = 5518; - this.opt_column_list(); - this.state = 5520; + this.state = 5471; + this.viewNameCreate(); + this.state = 5472; + this.optColumnList(); + this.state = 5474; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 5519; + this.state = 5473; this.optRelOptions(); } } @@ -30560,23 +30347,23 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 5524; + this.state = 5478; this.match(PostgreSqlParser.KW_AS); - this.state = 5525; + this.state = 5479; this.selectStmt(); - this.state = 5532; + this.state = 5486; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 690, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 686, this.context) ) { case 1: { - this.state = 5526; + this.state = 5480; this.match(PostgreSqlParser.KW_WITH); - this.state = 5528; + this.state = 5482; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 151 || _la === 254) { { - this.state = 5527; + this.state = 5481; _la = this.tokenStream.LA(1); if(!(_la === 151 || _la === 254)) { this.errorHandler.recoverInline(this); @@ -30588,9 +30375,9 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 5530; + this.state = 5484; this.match(PostgreSqlParser.KW_CHECK); - this.state = 5531; + this.state = 5485; this.match(PostgreSqlParser.KW_OPTION); } break; @@ -30613,13 +30400,13 @@ export class PostgreSqlParser extends SQLParserBase { } public loadStmt(): LoadStmtContext { let localContext = new LoadStmtContext(this.context, this.state); - this.enterRule(localContext, 480, PostgreSqlParser.RULE_loadStmt); + this.enterRule(localContext, 472, PostgreSqlParser.RULE_loadStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 5534; + this.state = 5488; this.match(PostgreSqlParser.KW_LOAD); - this.state = 5535; + this.state = 5489; this.stringConst(); } } @@ -30639,34 +30426,34 @@ export class PostgreSqlParser extends SQLParserBase { } public createDbStmt(): CreateDbStmtContext { let localContext = new CreateDbStmtContext(this.context, this.state); - this.enterRule(localContext, 482, PostgreSqlParser.RULE_createDbStmt); + this.enterRule(localContext, 474, PostgreSqlParser.RULE_createDbStmt); try { let alternative: number; localContext = new CreateDatabaseContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 5537; + this.state = 5491; this.match(PostgreSqlParser.KW_CREATE); - this.state = 5538; + this.state = 5492; this.match(PostgreSqlParser.KW_DATABASE); - this.state = 5539; - this.database_name_create(); - this.state = 5541; + this.state = 5493; + this.databaseNameCreate(); + this.state = 5495; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 691, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 687, this.context) ) { case 1: { - this.state = 5540; + this.state = 5494; this.match(PostgreSqlParser.KW_WITH); } break; } - this.state = 5548; + this.state = 5502; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 693, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 689, this.context) ) { case 1: { - this.state = 5544; + this.state = 5498; this.errorHandler.sync(this); alternative = 1; do { @@ -30674,17 +30461,17 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { { - this.state = 5543; - this.create_db_opt_item(); + this.state = 5497; + this.createDbOptItem(); } } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5546; + this.state = 5500; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 692, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 688, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } break; @@ -30705,89 +30492,89 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public create_db_opt_item(): Create_db_opt_itemContext { - let localContext = new Create_db_opt_itemContext(this.context, this.state); - this.enterRule(localContext, 484, PostgreSqlParser.RULE_create_db_opt_item); + public createDbOptItem(): CreateDbOptItemContext { + let localContext = new CreateDbOptItemContext(this.context, this.state); + this.enterRule(localContext, 476, PostgreSqlParser.RULE_createDbOptItem); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5558; + this.state = 5512; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 694, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 690, this.context) ) { case 1: { - this.state = 5550; + this.state = 5504; this.match(PostgreSqlParser.KW_CONNECTION); - this.state = 5551; + this.state = 5505; this.match(PostgreSqlParser.KW_LIMIT); } break; case 2: { - this.state = 5552; + this.state = 5506; this.match(PostgreSqlParser.KW_ENCODING); } break; case 3: { - this.state = 5553; + this.state = 5507; this.match(PostgreSqlParser.KW_LOCATION); } break; case 4: { - this.state = 5554; + this.state = 5508; this.match(PostgreSqlParser.KW_OWNER); } break; case 5: { - this.state = 5555; + this.state = 5509; this.match(PostgreSqlParser.KW_TABLESPACE); } break; case 6: { - this.state = 5556; + this.state = 5510; this.match(PostgreSqlParser.KW_TEMPLATE); } break; case 7: { - this.state = 5557; + this.state = 5511; this.identifier(); } break; } - this.state = 5561; + this.state = 5515; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 10) { { - this.state = 5560; + this.state = 5514; this.match(PostgreSqlParser.EQUAL); } } - this.state = 5566; + this.state = 5520; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 696, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 692, this.context) ) { case 1: { - this.state = 5563; + this.state = 5517; this.signedConst(); } break; case 2: { - this.state = 5564; - this.opt_boolean_or_string(); + this.state = 5518; + this.booleanOrString(); } break; case 3: { - this.state = 5565; + this.state = 5519; this.match(PostgreSqlParser.KW_DEFAULT); } break; @@ -30810,34 +30597,34 @@ export class PostgreSqlParser extends SQLParserBase { } public alterDatabaseStmt(): AlterDatabaseStmtContext { let localContext = new AlterDatabaseStmtContext(this.context, this.state); - this.enterRule(localContext, 486, PostgreSqlParser.RULE_alterDatabaseStmt); + this.enterRule(localContext, 478, PostgreSqlParser.RULE_alterDatabaseStmt); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 5568; + this.state = 5522; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5569; + this.state = 5523; this.match(PostgreSqlParser.KW_DATABASE); - this.state = 5570; - this.database_name(); - this.state = 5586; + this.state = 5524; + this.databaseName(); + this.state = 5540; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 701, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 697, this.context) ) { case 1: { - this.state = 5574; + this.state = 5528; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 697, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 693, this.context) ) { case 1: { - this.state = 5571; + this.state = 5525; this.match(PostgreSqlParser.KW_SET); - this.state = 5572; + this.state = 5526; this.match(PostgreSqlParser.KW_TABLESPACE); - this.state = 5573; - this.tablespace_name_create(); + this.state = 5527; + this.tableSpaceName(); } break; } @@ -30845,22 +30632,22 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 5584; + this.state = 5538; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 700, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 696, this.context) ) { case 1: { - this.state = 5577; + this.state = 5531; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 5576; + this.state = 5530; this.match(PostgreSqlParser.KW_WITH); } } - this.state = 5580; + this.state = 5534; this.errorHandler.sync(this); alternative = 1; do { @@ -30868,17 +30655,17 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { { - this.state = 5579; - this.create_db_opt_item(); + this.state = 5533; + this.createDbOptItem(); } } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5582; + this.state = 5536; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 699, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 695, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } break; @@ -30904,22 +30691,22 @@ export class PostgreSqlParser extends SQLParserBase { } public alterDatabaseSetStmt(): AlterDatabaseSetStmtContext { let localContext = new AlterDatabaseSetStmtContext(this.context, this.state); - this.enterRule(localContext, 488, PostgreSqlParser.RULE_alterDatabaseSetStmt); + this.enterRule(localContext, 480, PostgreSqlParser.RULE_alterDatabaseSetStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 5588; + this.state = 5542; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5589; + this.state = 5543; this.match(PostgreSqlParser.KW_DATABASE); - this.state = 5590; - this.database_name(); - this.state = 5592; + this.state = 5544; + this.databaseName(); + this.state = 5546; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 702, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 698, this.context) ) { case 1: { - this.state = 5591; + this.state = 5545; this.setOrResetClause(); } break; @@ -30942,19 +30729,19 @@ export class PostgreSqlParser extends SQLParserBase { } public alterCollationStmt(): AlterCollationStmtContext { let localContext = new AlterCollationStmtContext(this.context, this.state); - this.enterRule(localContext, 490, PostgreSqlParser.RULE_alterCollationStmt); + this.enterRule(localContext, 482, PostgreSqlParser.RULE_alterCollationStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 5594; + this.state = 5548; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5595; + this.state = 5549; this.match(PostgreSqlParser.KW_COLLATION); - this.state = 5596; - this.any_name(); - this.state = 5597; + this.state = 5550; + this.anyName(); + this.state = 5551; this.match(PostgreSqlParser.KW_REFRESH); - this.state = 5598; + this.state = 5552; this.match(PostgreSqlParser.KW_VERSION); } } @@ -30974,16 +30761,16 @@ export class PostgreSqlParser extends SQLParserBase { } public alterSystemStmt(): AlterSystemStmtContext { let localContext = new AlterSystemStmtContext(this.context, this.state); - this.enterRule(localContext, 492, PostgreSqlParser.RULE_alterSystemStmt); + this.enterRule(localContext, 484, PostgreSqlParser.RULE_alterSystemStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5600; + this.state = 5554; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5601; + this.state = 5555; this.match(PostgreSqlParser.KW_SYSTEM); - this.state = 5602; + this.state = 5556; _la = this.tokenStream.LA(1); if(!(_la === 313 || _la === 333)) { this.errorHandler.recoverInline(this); @@ -30992,8 +30779,8 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5603; - this.generic_set(); + this.state = 5557; + this.genericSet(); } } catch (re) { @@ -31012,45 +30799,45 @@ export class PostgreSqlParser extends SQLParserBase { } public createDomainStmt(): CreateDomainStmtContext { let localContext = new CreateDomainStmtContext(this.context, this.state); - this.enterRule(localContext, 494, PostgreSqlParser.RULE_createDomainStmt); + this.enterRule(localContext, 486, PostgreSqlParser.RULE_createDomainStmt); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 5605; + this.state = 5559; this.match(PostgreSqlParser.KW_CREATE); - this.state = 5606; + this.state = 5560; this.match(PostgreSqlParser.KW_DOMAIN); - this.state = 5607; - this.any_name(); - this.state = 5609; + this.state = 5561; + this.anyName(); + this.state = 5563; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 5608; + this.state = 5562; this.match(PostgreSqlParser.KW_AS); } } - this.state = 5611; + this.state = 5565; this.typename(); - this.state = 5615; + this.state = 5569; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 704, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 700, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 5612; + this.state = 5566; this.colConstraint(); } } } - this.state = 5617; + this.state = 5571; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 704, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 700, this.context); } } } @@ -31070,29 +30857,29 @@ export class PostgreSqlParser extends SQLParserBase { } public alterDomainStmt(): AlterDomainStmtContext { let localContext = new AlterDomainStmtContext(this.context, this.state); - this.enterRule(localContext, 496, PostgreSqlParser.RULE_alterDomainStmt); + this.enterRule(localContext, 488, PostgreSqlParser.RULE_alterDomainStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5618; + this.state = 5572; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5619; + this.state = 5573; this.match(PostgreSqlParser.KW_DOMAIN); - this.state = 5620; - this.any_name(); - this.state = 5643; + this.state = 5574; + this.anyName(); + this.state = 5597; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 708, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 704, this.context) ) { case 1: { - this.state = 5621; - this.alter_column_default(); + this.state = 5575; + this.alterColumnDefault(); } break; case 2: { - this.state = 5622; + this.state = 5576; _la = this.tokenStream.LA(1); if(!(_la === 191 || _la === 333)) { this.errorHandler.recoverInline(this); @@ -31101,57 +30888,57 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5623; + this.state = 5577; this.match(PostgreSqlParser.KW_NOT); - this.state = 5624; + this.state = 5578; this.match(PostgreSqlParser.KW_NULL); } break; case 3: { - this.state = 5625; + this.state = 5579; this.match(PostgreSqlParser.KW_ADD); - this.state = 5628; + this.state = 5582; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 45) { { - this.state = 5626; + this.state = 5580; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 5627; + this.state = 5581; this.colId(); } } - this.state = 5630; + this.state = 5584; this.constraintElem(); } break; case 4: { - this.state = 5631; + this.state = 5585; this.match(PostgreSqlParser.KW_DROP); - this.state = 5632; + this.state = 5586; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 5634; + this.state = 5588; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 706, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 702, this.context) ) { case 1: { - this.state = 5633; - this.opt_if_exists(); + this.state = 5587; + this.ifExists(); } break; } - this.state = 5636; + this.state = 5590; this.colId(); - this.state = 5638; + this.state = 5592; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 707, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 703, this.context) ) { case 1: { - this.state = 5637; - this.opt_drop_behavior(); + this.state = 5591; + this.optDropBehavior(); } break; } @@ -31159,11 +30946,11 @@ export class PostgreSqlParser extends SQLParserBase { break; case 5: { - this.state = 5640; + this.state = 5594; this.match(PostgreSqlParser.KW_VALIDATE); - this.state = 5641; + this.state = 5595; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 5642; + this.state = 5596; this.colId(); } break; @@ -31186,21 +30973,21 @@ export class PostgreSqlParser extends SQLParserBase { } public alterSearchDictionaryStmt(): AlterSearchDictionaryStmtContext { let localContext = new AlterSearchDictionaryStmtContext(this.context, this.state); - this.enterRule(localContext, 498, PostgreSqlParser.RULE_alterSearchDictionaryStmt); + this.enterRule(localContext, 490, PostgreSqlParser.RULE_alterSearchDictionaryStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 5645; + this.state = 5599; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5646; + this.state = 5600; this.match(PostgreSqlParser.KW_TEXT); - this.state = 5647; + this.state = 5601; this.match(PostgreSqlParser.KW_SEARCH); - this.state = 5648; + this.state = 5602; this.match(PostgreSqlParser.KW_DICTIONARY); - this.state = 5649; - this.any_name(); - this.state = 5650; + this.state = 5603; + this.anyName(); + this.state = 5604; this.definition(); } } @@ -31220,26 +31007,26 @@ export class PostgreSqlParser extends SQLParserBase { } public alterSearchConfigurationStmt(): AlterSearchConfigurationStmtContext { let localContext = new AlterSearchConfigurationStmtContext(this.context, this.state); - this.enterRule(localContext, 500, PostgreSqlParser.RULE_alterSearchConfigurationStmt); + this.enterRule(localContext, 492, PostgreSqlParser.RULE_alterSearchConfigurationStmt); let _la: number; try { - this.state = 5693; + this.state = 5647; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 711, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 707, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5652; + this.state = 5606; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5653; + this.state = 5607; this.match(PostgreSqlParser.KW_TEXT); - this.state = 5654; + this.state = 5608; this.match(PostgreSqlParser.KW_SEARCH); - this.state = 5655; + this.state = 5609; this.match(PostgreSqlParser.KW_CONFIGURATION); - this.state = 5656; - this.any_name(); - this.state = 5657; + this.state = 5610; + this.anyName(); + this.state = 5611; _la = this.tokenStream.LA(1); if(!(_la === 133 || _la === 138)) { this.errorHandler.recoverInline(this); @@ -31248,88 +31035,88 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5658; + this.state = 5612; this.match(PostgreSqlParser.KW_MAPPING); - this.state = 5659; + this.state = 5613; this.match(PostgreSqlParser.KW_FOR); - this.state = 5660; - this.name_list(); - this.state = 5661; + this.state = 5614; + this.nameList(); + this.state = 5615; this.match(PostgreSqlParser.KW_WITH); - this.state = 5662; - this.any_name_list(); + this.state = 5616; + this.anyNameList(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5664; + this.state = 5618; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5665; + this.state = 5619; this.match(PostgreSqlParser.KW_TEXT); - this.state = 5666; + this.state = 5620; this.match(PostgreSqlParser.KW_SEARCH); - this.state = 5667; + this.state = 5621; this.match(PostgreSqlParser.KW_CONFIGURATION); - this.state = 5668; - this.any_name(); - this.state = 5669; + this.state = 5622; + this.anyName(); + this.state = 5623; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5670; + this.state = 5624; this.match(PostgreSqlParser.KW_MAPPING); - this.state = 5673; + this.state = 5627; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 62) { { - this.state = 5671; + this.state = 5625; this.match(PostgreSqlParser.KW_FOR); - this.state = 5672; - this.name_list(); + this.state = 5626; + this.nameList(); } } - this.state = 5675; + this.state = 5629; this.match(PostgreSqlParser.KW_REPLACE); - this.state = 5676; - this.any_name(); - this.state = 5677; + this.state = 5630; + this.anyName(); + this.state = 5631; this.match(PostgreSqlParser.KW_WITH); - this.state = 5678; - this.any_name(); + this.state = 5632; + this.anyName(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 5680; + this.state = 5634; this.match(PostgreSqlParser.KW_ALTER); - this.state = 5681; + this.state = 5635; this.match(PostgreSqlParser.KW_TEXT); - this.state = 5682; + this.state = 5636; this.match(PostgreSqlParser.KW_SEARCH); - this.state = 5683; + this.state = 5637; this.match(PostgreSqlParser.KW_CONFIGURATION); - this.state = 5684; - this.any_name(); - this.state = 5685; + this.state = 5638; + this.anyName(); + this.state = 5639; this.match(PostgreSqlParser.KW_DROP); - this.state = 5686; + this.state = 5640; this.match(PostgreSqlParser.KW_MAPPING); - this.state = 5688; + this.state = 5642; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 220) { { - this.state = 5687; - this.opt_if_exists(); + this.state = 5641; + this.ifExists(); } } - this.state = 5690; + this.state = 5644; this.match(PostgreSqlParser.KW_FOR); - this.state = 5691; - this.name_list(); + this.state = 5645; + this.nameList(); } break; } @@ -31350,39 +31137,39 @@ export class PostgreSqlParser extends SQLParserBase { } public createConversionStmt(): CreateConversionStmtContext { let localContext = new CreateConversionStmtContext(this.context, this.state); - this.enterRule(localContext, 502, PostgreSqlParser.RULE_createConversionStmt); + this.enterRule(localContext, 494, PostgreSqlParser.RULE_createConversionStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5695; + this.state = 5649; this.match(PostgreSqlParser.KW_CREATE); - this.state = 5697; + this.state = 5651; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53) { { - this.state = 5696; + this.state = 5650; this.match(PostgreSqlParser.KW_DEFAULT); } } - this.state = 5699; + this.state = 5653; this.match(PostgreSqlParser.KW_CONVERSION); - this.state = 5700; - this.any_name(); - this.state = 5701; + this.state = 5654; + this.anyName(); + this.state = 5655; this.match(PostgreSqlParser.KW_FOR); - this.state = 5702; + this.state = 5656; this.stringConst(); - this.state = 5703; + this.state = 5657; this.match(PostgreSqlParser.KW_TO); - this.state = 5704; + this.state = 5658; this.stringConst(); - this.state = 5705; + this.state = 5659; this.match(PostgreSqlParser.KW_FROM); - this.state = 5706; - this.any_name(); + this.state = 5660; + this.anyName(); } } catch (re) { @@ -31401,41 +31188,41 @@ export class PostgreSqlParser extends SQLParserBase { } public clusterStmt(): ClusterStmtContext { let localContext = new ClusterStmtContext(this.context, this.state); - this.enterRule(localContext, 504, PostgreSqlParser.RULE_clusterStmt); + this.enterRule(localContext, 496, PostgreSqlParser.RULE_clusterStmt); let _la: number; try { - this.state = 5733; + this.state = 5687; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 718, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 714, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5708; + this.state = 5662; this.match(PostgreSqlParser.KW_CLUSTER); - this.state = 5710; + this.state = 5664; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 128) { { - this.state = 5709; - this.opt_verbose(); + this.state = 5663; + this.optVerbose(); } } - this.state = 5716; + this.state = 5670; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 715, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 711, this.context) ) { case 1: { - this.state = 5712; - this.table_name(); - this.state = 5714; + this.state = 5666; + this.tableName(); + this.state = 5668; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 5713; - this.table_access_method_clause(); + this.state = 5667; + this.tableAccessMethodClause(); } } @@ -31447,39 +31234,39 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5718; + this.state = 5672; this.match(PostgreSqlParser.KW_CLUSTER); - this.state = 5719; + this.state = 5673; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 5720; - this.opt_verbose(); - this.state = 5725; + this.state = 5674; + this.optVerbose(); + this.state = 5679; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 5721; + this.state = 5675; this.match(PostgreSqlParser.COMMA); - this.state = 5722; - this.opt_verbose(); + this.state = 5676; + this.optVerbose(); } } - this.state = 5727; + this.state = 5681; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 5728; + this.state = 5682; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 5729; - this.table_name(); - this.state = 5731; + this.state = 5683; + this.tableName(); + this.state = 5685; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 5730; - this.table_access_method_clause(); + this.state = 5684; + this.tableAccessMethodClause(); } } @@ -31503,56 +31290,56 @@ export class PostgreSqlParser extends SQLParserBase { } public vacuumStmt(): VacuumStmtContext { let localContext = new VacuumStmtContext(this.context, this.state); - this.enterRule(localContext, 506, PostgreSqlParser.RULE_vacuumStmt); + this.enterRule(localContext, 498, PostgreSqlParser.RULE_vacuumStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5735; + this.state = 5689; this.match(PostgreSqlParser.KW_VACUUM); - this.state = 5751; + this.state = 5705; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 724, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 720, this.context) ) { case 1: { { - this.state = 5737; + this.state = 5691; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 113) { { - this.state = 5736; + this.state = 5690; this.match(PostgreSqlParser.KW_FULL); } } - this.state = 5740; + this.state = 5694; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 112) { { - this.state = 5739; + this.state = 5693; this.match(PostgreSqlParser.KW_FREEZE); } } - this.state = 5743; + this.state = 5697; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 128) { { - this.state = 5742; - this.opt_verbose(); + this.state = 5696; + this.optVerbose(); } } - this.state = 5746; + this.state = 5700; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 722, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 718, this.context) ) { case 1: { - this.state = 5745; - this.analyze_keyword(); + this.state = 5699; + this.analyzeKeyword(); } break; } @@ -31561,26 +31348,26 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 5749; + this.state = 5703; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 723, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 719, this.context) ) { case 1: { - this.state = 5748; - this.explain_option_list(); + this.state = 5702; + this.explainOptionList(); } break; } } break; } - this.state = 5754; + this.state = 5708; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 725, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 721, this.context) ) { case 1: { - this.state = 5753; - this.vacuum_relation_list(); + this.state = 5707; + this.vacuumRelationList(); } break; } @@ -31602,25 +31389,25 @@ export class PostgreSqlParser extends SQLParserBase { } public analyzeStmt(): AnalyzeStmtContext { let localContext = new AnalyzeStmtContext(this.context, this.state); - this.enterRule(localContext, 508, PostgreSqlParser.RULE_analyzeStmt); + this.enterRule(localContext, 500, PostgreSqlParser.RULE_analyzeStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5756; - this.analyze_keyword(); - this.state = 5771; + this.state = 5710; + this.analyzeKeyword(); + this.state = 5725; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 728, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 724, this.context) ) { case 1: { - this.state = 5758; + this.state = 5712; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 128) { { - this.state = 5757; - this.opt_verbose(); + this.state = 5711; + this.optVerbose(); } } @@ -31628,38 +31415,38 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 5760; + this.state = 5714; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 5761; - this.analyze_option_elem(); - this.state = 5766; + this.state = 5715; + this.analyzeOptionElem(); + this.state = 5720; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 5762; + this.state = 5716; this.match(PostgreSqlParser.COMMA); - this.state = 5763; - this.analyze_option_elem(); + this.state = 5717; + this.analyzeOptionElem(); } } - this.state = 5768; + this.state = 5722; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 5769; + this.state = 5723; this.match(PostgreSqlParser.CLOSE_PAREN); } break; } - this.state = 5774; + this.state = 5728; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 729, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 725, this.context) ) { case 1: { - this.state = 5773; - this.vacuum_relation_list(); + this.state = 5727; + this.vacuumRelationList(); } break; } @@ -31679,14 +31466,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public analyze_keyword(): Analyze_keywordContext { - let localContext = new Analyze_keywordContext(this.context, this.state); - this.enterRule(localContext, 510, PostgreSqlParser.RULE_analyze_keyword); + public analyzeKeyword(): AnalyzeKeywordContext { + let localContext = new AnalyzeKeywordContext(this.context, this.state); + this.enterRule(localContext, 502, PostgreSqlParser.RULE_analyzeKeyword); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5776; + this.state = 5730; _la = this.tokenStream.LA(1); if(!(_la === 31 || _la === 32)) { this.errorHandler.recoverInline(this); @@ -31711,13 +31498,13 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public vac_analyze_option_elem(): Vac_analyze_option_elemContext { - let localContext = new Vac_analyze_option_elemContext(this.context, this.state); - this.enterRule(localContext, 512, PostgreSqlParser.RULE_vac_analyze_option_elem); + public vacAnalyzeOptionElem(): VacAnalyzeOptionElemContext { + let localContext = new VacAnalyzeOptionElemContext(this.context, this.state); + this.enterRule(localContext, 504, PostgreSqlParser.RULE_vacAnalyzeOptionElem); try { this.enterOuterAlt(localContext, 1); { - this.state = 5780; + this.state = 5734; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -32136,21 +31923,21 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 5778; + this.state = 5732; this.nonReservedWord(); } break; case PostgreSqlParser.KW_ANALYSE: case PostgreSqlParser.KW_ANALYZE: { - this.state = 5779; - this.analyze_keyword(); + this.state = 5733; + this.analyzeKeyword(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5784; + this.state = 5738; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -32572,8 +32359,8 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 5782; - this.opt_boolean_or_string(); + this.state = 5736; + this.booleanOrString(); } break; case PostgreSqlParser.PLUS: @@ -32581,7 +32368,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.Integral: case PostgreSqlParser.Numeric: { - this.state = 5783; + this.state = 5737; this.numericOnly(); } break; @@ -32607,19 +32394,19 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public analyze_option_elem(): Analyze_option_elemContext { - let localContext = new Analyze_option_elemContext(this.context, this.state); - this.enterRule(localContext, 514, PostgreSqlParser.RULE_analyze_option_elem); + public analyzeOptionElem(): AnalyzeOptionElemContext { + let localContext = new AnalyzeOptionElemContext(this.context, this.state); + this.enterRule(localContext, 506, PostgreSqlParser.RULE_analyzeOptionElem); let _la: number; try { - this.state = 5795; + this.state = 5749; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_VERBOSE: case PostgreSqlParser.KW_SKIP_LOCKED: this.enterOuterAlt(localContext, 1); { - this.state = 5786; + this.state = 5740; _la = this.tokenStream.LA(1); if(!(_la === 128 || _la === 547)) { this.errorHandler.recoverInline(this); @@ -32628,12 +32415,12 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5788; + this.state = 5742; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 60 || _la === 96) { { - this.state = 5787; + this.state = 5741; _la = this.tokenStream.LA(1); if(!(_la === 60 || _la === 96)) { this.errorHandler.recoverInline(this); @@ -32650,9 +32437,9 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_BUFFER_USAGE_LIMIT: this.enterOuterAlt(localContext, 2); { - this.state = 5790; + this.state = 5744; this.match(PostgreSqlParser.KW_BUFFER_USAGE_LIMIT); - this.state = 5793; + this.state = 5747; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.PLUS: @@ -32660,7 +32447,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.Integral: case PostgreSqlParser.Numeric: { - this.state = 5791; + this.state = 5745; this.numericOnly(); } break; @@ -32669,7 +32456,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.BeginDollarStringConstant: case PostgreSqlParser.EscapeStringConstant: { - this.state = 5792; + this.state = 5746; this.stringConst(); } break; @@ -32696,21 +32483,21 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_verbose(): Opt_verboseContext { - let localContext = new Opt_verboseContext(this.context, this.state); - this.enterRule(localContext, 516, PostgreSqlParser.RULE_opt_verbose); + public optVerbose(): OptVerboseContext { + let localContext = new OptVerboseContext(this.context, this.state); + this.enterRule(localContext, 508, PostgreSqlParser.RULE_optVerbose); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5797; + this.state = 5751; this.match(PostgreSqlParser.KW_VERBOSE); - this.state = 5799; + this.state = 5753; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 60 || _la === 96) { { - this.state = 5798; + this.state = 5752; _la = this.tokenStream.LA(1); if(!(_la === 60 || _la === 96)) { this.errorHandler.recoverInline(this); @@ -32738,21 +32525,21 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public vacuum_relation(): Vacuum_relationContext { - let localContext = new Vacuum_relationContext(this.context, this.state); - this.enterRule(localContext, 518, PostgreSqlParser.RULE_vacuum_relation); + public vacuumRelation(): VacuumRelationContext { + let localContext = new VacuumRelationContext(this.context, this.state); + this.enterRule(localContext, 510, PostgreSqlParser.RULE_vacuumRelation); try { this.enterOuterAlt(localContext, 1); { - this.state = 5801; - this.table_name(); - this.state = 5803; + this.state = 5755; + this.tableName(); + this.state = 5757; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 736, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 732, this.context) ) { case 1: { - this.state = 5802; - this.opt_column_list(); + this.state = 5756; + this.optColumnList(); } break; } @@ -32772,28 +32559,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public vacuum_relation_list(): Vacuum_relation_listContext { - let localContext = new Vacuum_relation_listContext(this.context, this.state); - this.enterRule(localContext, 520, PostgreSqlParser.RULE_vacuum_relation_list); + public vacuumRelationList(): VacuumRelationListContext { + let localContext = new VacuumRelationListContext(this.context, this.state); + this.enterRule(localContext, 512, PostgreSqlParser.RULE_vacuumRelationList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5805; - this.vacuum_relation(); - this.state = 5810; + this.state = 5759; + this.vacuumRelation(); + this.state = 5764; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 5806; + this.state = 5760; this.match(PostgreSqlParser.COMMA); - this.state = 5807; - this.vacuum_relation(); + this.state = 5761; + this.vacuumRelation(); } } - this.state = 5812; + this.state = 5766; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -32815,30 +32602,30 @@ export class PostgreSqlParser extends SQLParserBase { } public explainStmt(): ExplainStmtContext { let localContext = new ExplainStmtContext(this.context, this.state); - this.enterRule(localContext, 522, PostgreSqlParser.RULE_explainStmt); + this.enterRule(localContext, 514, PostgreSqlParser.RULE_explainStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5813; + this.state = 5767; this.match(PostgreSqlParser.KW_EXPLAIN); - this.state = 5824; + this.state = 5778; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 741, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 737, this.context) ) { case 1: { - this.state = 5814; - this.explain_option_list(); + this.state = 5768; + this.explainOptionList(); } break; case 2: { - this.state = 5816; + this.state = 5770; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 128) { { - this.state = 5815; + this.state = 5769; this.match(PostgreSqlParser.KW_VERBOSE); } } @@ -32847,20 +32634,20 @@ export class PostgreSqlParser extends SQLParserBase { break; case 3: { - this.state = 5822; + this.state = 5776; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 31 || _la === 32) { { - this.state = 5818; - this.analyze_keyword(); - this.state = 5820; + this.state = 5772; + this.analyzeKeyword(); + this.state = 5774; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 128) { { - this.state = 5819; - this.opt_verbose(); + this.state = 5773; + this.optVerbose(); } } @@ -32870,7 +32657,7 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 5826; + this.state = 5780; this.explainableStmt(); } } @@ -32890,71 +32677,71 @@ export class PostgreSqlParser extends SQLParserBase { } public explainableStmt(): ExplainableStmtContext { let localContext = new ExplainableStmtContext(this.context, this.state); - this.enterRule(localContext, 524, PostgreSqlParser.RULE_explainableStmt); + this.enterRule(localContext, 516, PostgreSqlParser.RULE_explainableStmt); try { - this.state = 5837; + this.state = 5791; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 742, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 738, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5828; + this.state = 5782; this.selectStmt(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5829; + this.state = 5783; this.insertStmt(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 5830; + this.state = 5784; this.updateStmt(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 5831; + this.state = 5785; this.deleteStmt(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 5832; + this.state = 5786; this.declareCursorStmt(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 5833; + this.state = 5787; this.createAsStmt(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 5834; + this.state = 5788; this.createMaterializedViewStmt(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 5835; + this.state = 5789; this.refreshMaterializedViewStmt(); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 5836; + this.state = 5790; this.executeStmt(); } break; @@ -32974,34 +32761,34 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public explain_option_list(): Explain_option_listContext { - let localContext = new Explain_option_listContext(this.context, this.state); - this.enterRule(localContext, 526, PostgreSqlParser.RULE_explain_option_list); + public explainOptionList(): ExplainOptionListContext { + let localContext = new ExplainOptionListContext(this.context, this.state); + this.enterRule(localContext, 518, PostgreSqlParser.RULE_explainOptionList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5839; + this.state = 5793; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 5840; - this.vac_analyze_option_elem(); - this.state = 5845; + this.state = 5794; + this.vacAnalyzeOptionElem(); + this.state = 5799; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 5841; + this.state = 5795; this.match(PostgreSqlParser.COMMA); - this.state = 5842; - this.vac_analyze_option_elem(); + this.state = 5796; + this.vacAnalyzeOptionElem(); } } - this.state = 5847; + this.state = 5801; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 5848; + this.state = 5802; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -33021,28 +32808,28 @@ export class PostgreSqlParser extends SQLParserBase { } public prepareStmt(): PrepareStmtContext { let localContext = new PrepareStmtContext(this.context, this.state); - this.enterRule(localContext, 528, PostgreSqlParser.RULE_prepareStmt); + this.enterRule(localContext, 520, PostgreSqlParser.RULE_prepareStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5850; + this.state = 5804; this.match(PostgreSqlParser.KW_PREPARE); - this.state = 5851; + this.state = 5805; this.colId(); - this.state = 5853; + this.state = 5807; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 5852; - this.prep_type_clause(); + this.state = 5806; + this.prepTypeClause(); } } - this.state = 5855; + this.state = 5809; this.match(PostgreSqlParser.KW_AS); - this.state = 5856; + this.state = 5810; this.preParableStmt(); } } @@ -33060,34 +32847,34 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public prep_type_clause(): Prep_type_clauseContext { - let localContext = new Prep_type_clauseContext(this.context, this.state); - this.enterRule(localContext, 530, PostgreSqlParser.RULE_prep_type_clause); + public prepTypeClause(): PrepTypeClauseContext { + let localContext = new PrepTypeClauseContext(this.context, this.state); + this.enterRule(localContext, 522, PostgreSqlParser.RULE_prepTypeClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5858; + this.state = 5812; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 5859; + this.state = 5813; this.typename(); - this.state = 5864; + this.state = 5818; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 5860; + this.state = 5814; this.match(PostgreSqlParser.COMMA); - this.state = 5861; + this.state = 5815; this.typename(); } } - this.state = 5866; + this.state = 5820; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 5867; + this.state = 5821; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -33107,43 +32894,43 @@ export class PostgreSqlParser extends SQLParserBase { } public preParableStmt(): PreParableStmtContext { let localContext = new PreParableStmtContext(this.context, this.state); - this.enterRule(localContext, 532, PostgreSqlParser.RULE_preParableStmt); + this.enterRule(localContext, 524, PostgreSqlParser.RULE_preParableStmt); try { - this.state = 5874; + this.state = 5828; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 746, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 742, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5869; + this.state = 5823; this.selectStmt(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5870; + this.state = 5824; this.insertStmt(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 5871; + this.state = 5825; this.updateStmt(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 5872; + this.state = 5826; this.deleteStmt(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 5873; + this.state = 5827; this.mergeStmt(); } break; @@ -33165,26 +32952,26 @@ export class PostgreSqlParser extends SQLParserBase { } public executeStmt(): ExecuteStmtContext { let localContext = new ExecuteStmtContext(this.context, this.state); - this.enterRule(localContext, 534, PostgreSqlParser.RULE_executeStmt); + this.enterRule(localContext, 526, PostgreSqlParser.RULE_executeStmt); let _la: number; try { - this.state = 5899; + this.state = 5853; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_EXECUTE: this.enterOuterAlt(localContext, 1); { - this.state = 5876; + this.state = 5830; this.match(PostgreSqlParser.KW_EXECUTE); - this.state = 5877; + this.state = 5831; this.colId(); - this.state = 5879; + this.state = 5833; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 747, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 743, this.context) ) { case 1: { - this.state = 5878; - this.execute_param_clause(); + this.state = 5832; + this.executeParamClause(); } break; } @@ -33193,55 +32980,55 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_CREATE: this.enterOuterAlt(localContext, 2); { - this.state = 5881; + this.state = 5835; this.match(PostgreSqlParser.KW_CREATE); - this.state = 5883; + this.state = 5837; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 213 || _la === 254 || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 32773) !== 0)) { { - this.state = 5882; + this.state = 5836; this.optTemp(); } } - this.state = 5885; + this.state = 5839; this.match(PostgreSqlParser.KW_TABLE); - this.state = 5887; + this.state = 5841; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 749, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 745, this.context) ) { case 1: { - this.state = 5886; - this.opt_if_not_exists(); + this.state = 5840; + this.ifNotExists(); } break; } - this.state = 5889; - this.create_as_target(); - this.state = 5890; + this.state = 5843; + this.createAsTarget(); + this.state = 5844; this.match(PostgreSqlParser.KW_AS); - this.state = 5891; + this.state = 5845; this.match(PostgreSqlParser.KW_EXECUTE); - this.state = 5892; + this.state = 5846; this.colId(); - this.state = 5894; + this.state = 5848; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 750, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 746, this.context) ) { case 1: { - this.state = 5893; - this.execute_param_clause(); + this.state = 5847; + this.executeParamClause(); } break; } - this.state = 5897; + this.state = 5851; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 751, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 747, this.context) ) { case 1: { - this.state = 5896; - this.opt_with_data(); + this.state = 5850; + this.optWithData(); } break; } @@ -33265,17 +33052,17 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public execute_param_clause(): Execute_param_clauseContext { - let localContext = new Execute_param_clauseContext(this.context, this.state); - this.enterRule(localContext, 536, PostgreSqlParser.RULE_execute_param_clause); + public executeParamClause(): ExecuteParamClauseContext { + let localContext = new ExecuteParamClauseContext(this.context, this.state); + this.enterRule(localContext, 528, PostgreSqlParser.RULE_executeParamClause); try { this.enterOuterAlt(localContext, 1); { - this.state = 5901; + this.state = 5855; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 5902; - this.expr_list(); - this.state = 5903; + this.state = 5856; + this.exprList(); + this.state = 5857; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -33295,23 +33082,23 @@ export class PostgreSqlParser extends SQLParserBase { } public dealLocateStmt(): DealLocateStmtContext { let localContext = new DealLocateStmtContext(this.context, this.state); - this.enterRule(localContext, 538, PostgreSqlParser.RULE_dealLocateStmt); + this.enterRule(localContext, 530, PostgreSqlParser.RULE_dealLocateStmt); try { this.enterOuterAlt(localContext, 1); { - this.state = 5905; + this.state = 5859; this.match(PostgreSqlParser.KW_DEALLOCATE); - this.state = 5907; + this.state = 5861; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 753, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 749, this.context) ) { case 1: { - this.state = 5906; + this.state = 5860; this.match(PostgreSqlParser.KW_PREPARE); } break; } - this.state = 5911; + this.state = 5865; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -33709,13 +33496,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 5909; + this.state = 5863; this.colId(); } break; case PostgreSqlParser.KW_ALL: { - this.state = 5910; + this.state = 5864; this.match(PostgreSqlParser.KW_ALL); } break; @@ -33740,65 +33527,65 @@ export class PostgreSqlParser extends SQLParserBase { } public insertStmt(): InsertStmtContext { let localContext = new InsertStmtContext(this.context, this.state); - this.enterRule(localContext, 540, PostgreSqlParser.RULE_insertStmt); + this.enterRule(localContext, 532, PostgreSqlParser.RULE_insertStmt); let _la: number; try { localContext = new InsertStatementContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 5914; + this.state = 5868; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 5913; - this.with_clause(); + this.state = 5867; + this.withClause(); } } - this.state = 5916; + this.state = 5870; this.match(PostgreSqlParser.KW_INSERT); - this.state = 5917; + this.state = 5871; this.match(PostgreSqlParser.KW_INTO); - this.state = 5918; - this.table_name(); - this.state = 5921; + this.state = 5872; + this.tableName(); + this.state = 5875; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 5919; + this.state = 5873; this.match(PostgreSqlParser.KW_AS); - this.state = 5920; + this.state = 5874; this.colId(); } } - this.state = 5923; - this.insert_rest(); - this.state = 5945; + this.state = 5877; + this.insertRest(); + this.state = 5899; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 80) { { - this.state = 5924; + this.state = 5878; this.match(PostgreSqlParser.KW_ON); - this.state = 5925; + this.state = 5879; this.match(PostgreSqlParser.KW_CONFLICT); - this.state = 5933; + this.state = 5887; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: { - this.state = 5926; - this.index_params(); - this.state = 5928; + this.state = 5880; + this.indexParams(); + this.state = 5882; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 103) { { - this.state = 5927; - this.where_clause(); + this.state = 5881; + this.whereClause(); } } @@ -33806,11 +33593,11 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_ON: { - this.state = 5930; + this.state = 5884; this.match(PostgreSqlParser.KW_ON); - this.state = 5931; + this.state = 5885; this.match(PostgreSqlParser.KW_CONSTRAINT); - this.state = 5932; + this.state = 5886; this.colId(); } break; @@ -33819,26 +33606,26 @@ export class PostgreSqlParser extends SQLParserBase { default: break; } - this.state = 5935; + this.state = 5889; this.match(PostgreSqlParser.KW_DO); - this.state = 5943; + this.state = 5897; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_UPDATE: { - this.state = 5936; + this.state = 5890; this.match(PostgreSqlParser.KW_UPDATE); - this.state = 5937; + this.state = 5891; this.match(PostgreSqlParser.KW_SET); - this.state = 5938; - this.set_clause_list(); - this.state = 5940; + this.state = 5892; + this.setClauseList(); + this.state = 5894; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 103) { { - this.state = 5939; - this.where_clause(); + this.state = 5893; + this.whereClause(); } } @@ -33846,7 +33633,7 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_NOTHING: { - this.state = 5942; + this.state = 5896; this.match(PostgreSqlParser.KW_NOTHING); } break; @@ -33856,13 +33643,13 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 5948; + this.state = 5902; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 87) { { - this.state = 5947; - this.returning_clause(); + this.state = 5901; + this.returningClause(); } } @@ -33882,35 +33669,35 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public insert_rest(): Insert_restContext { - let localContext = new Insert_restContext(this.context, this.state); - this.enterRule(localContext, 542, PostgreSqlParser.RULE_insert_rest); + public insertRest(): InsertRestContext { + let localContext = new InsertRestContext(this.context, this.state); + this.enterRule(localContext, 534, PostgreSqlParser.RULE_insertRest); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5954; + this.state = 5908; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 763, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 759, this.context) ) { case 1: { - this.state = 5950; + this.state = 5904; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 5951; - this.insert_column_list(); - this.state = 5952; + this.state = 5905; + this.insertColumnList(); + this.state = 5906; this.match(PostgreSqlParser.CLOSE_PAREN); } break; } - this.state = 5959; + this.state = 5913; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 463) { { - this.state = 5956; + this.state = 5910; this.match(PostgreSqlParser.KW_OVERRIDING); - this.state = 5957; + this.state = 5911; _la = this.tokenStream.LA(1); if(!(_la === 99 || _la === 349)) { this.errorHandler.recoverInline(this); @@ -33919,23 +33706,23 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5958; + this.state = 5912; this.match(PostgreSqlParser.KW_VALUE); } } - this.state = 5963; + this.state = 5917; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 765, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 761, this.context) ) { case 1: { - this.state = 5961; - this.default_values_or_values(); + this.state = 5915; + this.defaultValuesOrValues(); } break; case 2: { - this.state = 5962; + this.state = 5916; this.selectStmt(); } break; @@ -33956,28 +33743,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public insert_column_list(): Insert_column_listContext { - let localContext = new Insert_column_listContext(this.context, this.state); - this.enterRule(localContext, 544, PostgreSqlParser.RULE_insert_column_list); + public insertColumnList(): InsertColumnListContext { + let localContext = new InsertColumnListContext(this.context, this.state); + this.enterRule(localContext, 536, PostgreSqlParser.RULE_insertColumnList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5965; - this.insert_column_item(); - this.state = 5970; + this.state = 5919; + this.insertColumnItem(); + this.state = 5924; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 5966; + this.state = 5920; this.match(PostgreSqlParser.COMMA); - this.state = 5967; - this.insert_column_item(); + this.state = 5921; + this.insertColumnItem(); } } - this.state = 5972; + this.state = 5926; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -33997,16 +33784,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public insert_column_item(): Insert_column_itemContext { - let localContext = new Insert_column_itemContext(this.context, this.state); - this.enterRule(localContext, 546, PostgreSqlParser.RULE_insert_column_item); + public insertColumnItem(): InsertColumnItemContext { + let localContext = new InsertColumnItemContext(this.context, this.state); + this.enterRule(localContext, 538, PostgreSqlParser.RULE_insertColumnItem); try { this.enterOuterAlt(localContext, 1); { - this.state = 5973; - this.column_name(); - this.state = 5974; - this.opt_indirection(); + this.state = 5927; + this.columnName(); + this.state = 5928; + this.optIndirection(); } } catch (re) { @@ -34023,16 +33810,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public returning_clause(): Returning_clauseContext { - let localContext = new Returning_clauseContext(this.context, this.state); - this.enterRule(localContext, 548, PostgreSqlParser.RULE_returning_clause); + public returningClause(): ReturningClauseContext { + let localContext = new ReturningClauseContext(this.context, this.state); + this.enterRule(localContext, 540, PostgreSqlParser.RULE_returningClause); try { this.enterOuterAlt(localContext, 1); { - this.state = 5976; + this.state = 5930; this.match(PostgreSqlParser.KW_RETURNING); - this.state = 5977; - this.target_list(); + this.state = 5931; + this.targetList(); } } catch (re) { @@ -34051,56 +33838,56 @@ export class PostgreSqlParser extends SQLParserBase { } public deleteStmt(): DeleteStmtContext { let localContext = new DeleteStmtContext(this.context, this.state); - this.enterRule(localContext, 550, PostgreSqlParser.RULE_deleteStmt); + this.enterRule(localContext, 542, PostgreSqlParser.RULE_deleteStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5980; + this.state = 5934; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 5979; - this.with_clause(); + this.state = 5933; + this.withClause(); } } - this.state = 5982; + this.state = 5936; this.match(PostgreSqlParser.KW_DELETE); - this.state = 5983; + this.state = 5937; this.match(PostgreSqlParser.KW_FROM); - this.state = 5984; - this.relation_expr_opt_alias(); - this.state = 5987; + this.state = 5938; + this.relationExprOptAlias(); + this.state = 5941; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 5985; + this.state = 5939; this.match(PostgreSqlParser.KW_USING); - this.state = 5986; - this.from_list(); + this.state = 5940; + this.fromList(); } } - this.state = 5990; + this.state = 5944; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 103) { { - this.state = 5989; - this.where_or_current_clause(); + this.state = 5943; + this.whereOrCurrentClause(); } } - this.state = 5993; + this.state = 5947; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 87) { { - this.state = 5992; - this.returning_clause(); + this.state = 5946; + this.returningClause(); } } @@ -34122,39 +33909,39 @@ export class PostgreSqlParser extends SQLParserBase { } public lockStmt(): LockStmtContext { let localContext = new LockStmtContext(this.context, this.state); - this.enterRule(localContext, 552, PostgreSqlParser.RULE_lockStmt); + this.enterRule(localContext, 544, PostgreSqlParser.RULE_lockStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 5995; + this.state = 5949; this.match(PostgreSqlParser.KW_LOCK); - this.state = 5997; + this.state = 5951; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 92) { { - this.state = 5996; + this.state = 5950; this.match(PostgreSqlParser.KW_TABLE); } } - this.state = 5999; - this.relation_expr_list(); - this.state = 6014; + this.state = 5953; + this.relationExprList(); + this.state = 5968; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 68) { { - this.state = 6000; + this.state = 5954; this.match(PostgreSqlParser.KW_IN); - this.state = 6011; + this.state = 5965; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ACCESS: case PostgreSqlParser.KW_ROW: { - this.state = 6001; + this.state = 5955; _la = this.tokenStream.LA(1); if(!(_la === 131 || _la === 414)) { this.errorHandler.recoverInline(this); @@ -34163,7 +33950,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6002; + this.state = 5956; _la = this.tokenStream.LA(1); if(!(_la === 201 || _la === 334)) { this.errorHandler.recoverInline(this); @@ -34176,24 +33963,24 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_SHARE: { - this.state = 6003; + this.state = 5957; this.match(PostgreSqlParser.KW_SHARE); - this.state = 6008; + this.state = 5962; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_UPDATE: { - this.state = 6004; + this.state = 5958; this.match(PostgreSqlParser.KW_UPDATE); - this.state = 6005; + this.state = 5959; this.match(PostgreSqlParser.KW_EXCLUSIVE); } break; case PostgreSqlParser.KW_ROW: { - this.state = 6006; + this.state = 5960; this.match(PostgreSqlParser.KW_ROW); - this.state = 6007; + this.state = 5961; this.match(PostgreSqlParser.KW_EXCLUSIVE); } break; @@ -34206,24 +33993,24 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_EXCLUSIVE: { - this.state = 6010; + this.state = 5964; this.match(PostgreSqlParser.KW_EXCLUSIVE); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 6013; + this.state = 5967; this.match(PostgreSqlParser.KW_MODE); } } - this.state = 6017; + this.state = 5971; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 775, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 771, this.context) ) { case 1: { - this.state = 6016; + this.state = 5970; this.match(PostgreSqlParser.KW_NOWAIT); } break; @@ -34246,56 +34033,56 @@ export class PostgreSqlParser extends SQLParserBase { } public updateStmt(): UpdateStmtContext { let localContext = new UpdateStmtContext(this.context, this.state); - this.enterRule(localContext, 554, PostgreSqlParser.RULE_updateStmt); + this.enterRule(localContext, 546, PostgreSqlParser.RULE_updateStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6020; + this.state = 5974; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 6019; - this.with_clause(); + this.state = 5973; + this.withClause(); } } - this.state = 6022; + this.state = 5976; this.match(PostgreSqlParser.KW_UPDATE); - this.state = 6023; - this.relation_expr_opt_alias(); - this.state = 6024; + this.state = 5977; + this.relationExprOptAlias(); + this.state = 5978; this.match(PostgreSqlParser.KW_SET); - this.state = 6025; - this.set_clause_list(); - this.state = 6027; + this.state = 5979; + this.setClauseList(); + this.state = 5981; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 64) { { - this.state = 6026; - this.from_clause(); + this.state = 5980; + this.fromClause(); } } - this.state = 6030; + this.state = 5984; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 103) { { - this.state = 6029; - this.where_or_current_clause(); + this.state = 5983; + this.whereOrCurrentClause(); } } - this.state = 6033; + this.state = 5987; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 87) { { - this.state = 6032; - this.returning_clause(); + this.state = 5986; + this.returningClause(); } } @@ -34315,28 +34102,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public set_clause_list(): Set_clause_listContext { - let localContext = new Set_clause_listContext(this.context, this.state); - this.enterRule(localContext, 556, PostgreSqlParser.RULE_set_clause_list); + public setClauseList(): SetClauseListContext { + let localContext = new SetClauseListContext(this.context, this.state); + this.enterRule(localContext, 548, PostgreSqlParser.RULE_setClauseList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6035; - this.set_clause(); - this.state = 6040; + this.state = 5989; + this.setClause(); + this.state = 5994; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 6036; + this.state = 5990; this.match(PostgreSqlParser.COMMA); - this.state = 6037; - this.set_clause(); + this.state = 5991; + this.setClause(); } } - this.state = 6042; + this.state = 5996; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -34356,61 +34143,61 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public set_clause(): Set_clauseContext { - let localContext = new Set_clauseContext(this.context, this.state); - this.enterRule(localContext, 558, PostgreSqlParser.RULE_set_clause); + public setClause(): SetClauseContext { + let localContext = new SetClauseContext(this.context, this.state); + this.enterRule(localContext, 550, PostgreSqlParser.RULE_setClause); try { - this.state = 6061; + this.state = 6015; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 783, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 779, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6043; - this.insert_column_item(); - this.state = 6044; + this.state = 5997; + this.insertColumnItem(); + this.state = 5998; this.match(PostgreSqlParser.EQUAL); - this.state = 6045; + this.state = 5999; this.expression(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6047; + this.state = 6001; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6048; - this.insert_column_list(); - this.state = 6049; + this.state = 6002; + this.insertColumnList(); + this.state = 6003; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 6050; + this.state = 6004; this.match(PostgreSqlParser.EQUAL); - this.state = 6059; + this.state = 6013; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 782, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 778, this.context) ) { case 1: { - this.state = 6052; + this.state = 6006; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 781, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 777, this.context) ) { case 1: { - this.state = 6051; + this.state = 6005; this.match(PostgreSqlParser.KW_ROW); } break; } - this.state = 6054; + this.state = 6008; this.expression(); } break; case 2: { - this.state = 6055; + this.state = 6009; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6056; - this.select_clause(); - this.state = 6057; + this.state = 6010; + this.selectClause(); + this.state = 6011; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -34435,52 +34222,52 @@ export class PostgreSqlParser extends SQLParserBase { } public declareCursorStmt(): DeclareCursorStmtContext { let localContext = new DeclareCursorStmtContext(this.context, this.state); - this.enterRule(localContext, 560, PostgreSqlParser.RULE_declareCursorStmt); + this.enterRule(localContext, 552, PostgreSqlParser.RULE_declareCursorStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6063; + this.state = 6017; this.match(PostgreSqlParser.KW_DECLARE); - this.state = 6064; + this.state = 6018; this.colId(); { - this.state = 6073; + this.state = 6027; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 107 || _la === 240 || _la === 269 || _la === 324) { { - this.state = 6071; + this.state = 6025; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_NO: case PostgreSqlParser.KW_SCROLL: { { - this.state = 6066; + this.state = 6020; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 6065; + this.state = 6019; this.match(PostgreSqlParser.KW_NO); } } - this.state = 6068; + this.state = 6022; this.match(PostgreSqlParser.KW_SCROLL); } } break; case PostgreSqlParser.KW_BINARY: { - this.state = 6069; + this.state = 6023; this.match(PostgreSqlParser.KW_BINARY); } break; case PostgreSqlParser.KW_INSENSITIVE: { - this.state = 6070; + this.state = 6024; this.match(PostgreSqlParser.KW_INSENSITIVE); } break; @@ -34488,19 +34275,19 @@ export class PostgreSqlParser extends SQLParserBase { throw new antlr.NoViableAltException(this); } } - this.state = 6075; + this.state = 6029; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 6076; + this.state = 6030; this.match(PostgreSqlParser.KW_CURSOR); - this.state = 6079; + this.state = 6033; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105 || _la === 379) { { - this.state = 6077; + this.state = 6031; _la = this.tokenStream.LA(1); if(!(_la === 105 || _la === 379)) { this.errorHandler.recoverInline(this); @@ -34509,14 +34296,14 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6078; + this.state = 6032; this.match(PostgreSqlParser.KW_HOLD); } } - this.state = 6081; + this.state = 6035; this.match(PostgreSqlParser.KW_FOR); - this.state = 6082; + this.state = 6036; this.selectStmt(); } } @@ -34536,25 +34323,25 @@ export class PostgreSqlParser extends SQLParserBase { } public selectStmt(): SelectStmtContext { let localContext = new SelectStmtContext(this.context, this.state); - this.enterRule(localContext, 562, PostgreSqlParser.RULE_selectStmt); + this.enterRule(localContext, 554, PostgreSqlParser.RULE_selectStmt); try { - this.state = 6086; + this.state = 6040; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 788, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 784, this.context) ) { case 1: localContext = new SelectStatementContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 6084; - this.select_no_parens(); + this.state = 6038; + this.selectNoParens(); } break; case 2: localContext = new SelectStatementContext(localContext); this.enterOuterAlt(localContext, 2); { - this.state = 6085; - this.select_with_parens(); + this.state = 6039; + this.selectWithParens(); } break; } @@ -34573,31 +34360,31 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public select_with_parens(): Select_with_parensContext { - let localContext = new Select_with_parensContext(this.context, this.state); - this.enterRule(localContext, 564, PostgreSqlParser.RULE_select_with_parens); + public selectWithParens(): SelectWithParensContext { + let localContext = new SelectWithParensContext(this.context, this.state); + this.enterRule(localContext, 556, PostgreSqlParser.RULE_selectWithParens); try { this.enterOuterAlt(localContext, 1); { - this.state = 6088; + this.state = 6042; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6091; + this.state = 6045; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 789, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 785, this.context) ) { case 1: { - this.state = 6089; - this.select_no_parens(); + this.state = 6043; + this.selectNoParens(); } break; case 2: { - this.state = 6090; - this.select_with_parens(); + this.state = 6044; + this.selectWithParens(); } break; } - this.state = 6093; + this.state = 6047; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -34615,49 +34402,49 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public select_no_parens(): Select_no_parensContext { - let localContext = new Select_no_parensContext(this.context, this.state); - this.enterRule(localContext, 566, PostgreSqlParser.RULE_select_no_parens); + public selectNoParens(): SelectNoParensContext { + let localContext = new SelectNoParensContext(this.context, this.state); + this.enterRule(localContext, 558, PostgreSqlParser.RULE_selectNoParens); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6096; + this.state = 6050; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 6095; - this.with_clause(); + this.state = 6049; + this.withClause(); } } - this.state = 6098; - this.select_clause(); - this.state = 6100; + this.state = 6052; + this.selectClause(); + this.state = 6054; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 83) { { - this.state = 6099; - this.sort_clause(); + this.state = 6053; + this.sortClause(); } } - this.state = 6110; + this.state = 6064; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 794, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 790, this.context) ) { case 1: { - this.state = 6102; - this.for_locking_clause(); - this.state = 6104; + this.state = 6056; + this.forLockingClause(); + this.state = 6058; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 792, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 788, this.context) ) { case 1: { - this.state = 6103; - this.select_limit(); + this.state = 6057; + this.selectLimit(); } break; } @@ -34665,15 +34452,15 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 6106; - this.select_limit(); - this.state = 6108; + this.state = 6060; + this.selectLimit(); + this.state = 6062; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 62) { { - this.state = 6107; - this.for_locking_clause(); + this.state = 6061; + this.forLockingClause(); } } @@ -34696,25 +34483,25 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public select_clause(): Select_clauseContext { - let localContext = new Select_clauseContext(this.context, this.state); - this.enterRule(localContext, 568, PostgreSqlParser.RULE_select_clause); + public selectClause(): SelectClauseContext { + let localContext = new SelectClauseContext(this.context, this.state); + this.enterRule(localContext, 560, PostgreSqlParser.RULE_selectClause); try { - this.state = 6114; + this.state = 6068; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 795, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 791, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6112; - this.simple_select(); + this.state = 6066; + this.simpleSelect(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6113; - this.select_with_parens(); + this.state = 6067; + this.selectWithParens(); } break; } @@ -34733,42 +34520,42 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public simple_select(): Simple_selectContext { - let localContext = new Simple_selectContext(this.context, this.state); - this.enterRule(localContext, 570, PostgreSqlParser.RULE_simple_select); + public simpleSelect(): SimpleSelectContext { + let localContext = new SimpleSelectContext(this.context, this.state); + this.enterRule(localContext, 562, PostgreSqlParser.RULE_simpleSelect); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 6138; + this.state = 6092; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_SELECT: { - this.state = 6116; + this.state = 6070; this.match(PostgreSqlParser.KW_SELECT); - this.state = 6126; + this.state = 6080; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 799, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 795, this.context) ) { case 1: { - this.state = 6118; + this.state = 6072; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 796, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 792, this.context) ) { case 1: { - this.state = 6117; + this.state = 6071; this.match(PostgreSqlParser.KW_ALL); } break; } - this.state = 6121; + this.state = 6075; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 797, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 793, this.context) ) { case 1: { - this.state = 6120; - this.into_clause(); + this.state = 6074; + this.intoClause(); } break; } @@ -34776,56 +34563,56 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 6124; + this.state = 6078; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 798, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 794, this.context) ) { case 1: { - this.state = 6123; - this.distinct_clause(); + this.state = 6077; + this.distinctClause(); } break; } } break; } - this.state = 6128; - this.sql_expression(); + this.state = 6082; + this.sqlExpression(); } break; case PostgreSqlParser.KW_VALUES: { - this.state = 6129; - this.values_clause(); + this.state = 6083; + this.valuesClause(); } break; case PostgreSqlParser.KW_TABLE: { - this.state = 6130; + this.state = 6084; this.match(PostgreSqlParser.KW_TABLE); - this.state = 6131; - this.relation_expr(); + this.state = 6085; + this.relationExpr(); } break; case PostgreSqlParser.OPEN_PAREN: { - this.state = 6132; - this.select_with_parens(); - this.state = 6133; - this.set_operator_with_all_or_distinct(); - this.state = 6136; + this.state = 6086; + this.selectWithParens(); + this.state = 6087; + this.setOperatorWithAllOrDistinct(); + this.state = 6090; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 800, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 796, this.context) ) { case 1: { - this.state = 6134; - this.simple_select(); + this.state = 6088; + this.simpleSelect(); } break; case 2: { - this.state = 6135; - this.select_with_parens(); + this.state = 6089; + this.selectWithParens(); } break; } @@ -34834,37 +34621,37 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 6147; + this.state = 6101; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 803, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 799, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 6140; - this.set_operator_with_all_or_distinct(); - this.state = 6143; + this.state = 6094; + this.setOperatorWithAllOrDistinct(); + this.state = 6097; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 802, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 798, this.context) ) { case 1: { - this.state = 6141; - this.simple_select(); + this.state = 6095; + this.simpleSelect(); } break; case 2: { - this.state = 6142; - this.select_with_parens(); + this.state = 6096; + this.selectWithParens(); } break; } } } } - this.state = 6149; + this.state = 6103; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 803, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 799, this.context); } } } @@ -34882,14 +34669,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public set_operator_with_all_or_distinct(): Set_operator_with_all_or_distinctContext { - let localContext = new Set_operator_with_all_or_distinctContext(this.context, this.state); - this.enterRule(localContext, 572, PostgreSqlParser.RULE_set_operator_with_all_or_distinct); + public setOperatorWithAllOrDistinct(): SetOperatorWithAllOrDistinctContext { + let localContext = new SetOperatorWithAllOrDistinctContext(this.context, this.state); + this.enterRule(localContext, 564, PostgreSqlParser.RULE_setOperatorWithAllOrDistinct); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6150; + this.state = 6104; _la = this.tokenStream.LA(1); if(!(_la === 59 || _la === 70 || _la === 97)) { this.errorHandler.recoverInline(this); @@ -34898,12 +34685,12 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6152; + this.state = 6106; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 30 || _la === 56) { { - this.state = 6151; + this.state = 6105; _la = this.tokenStream.LA(1); if(!(_la === 30 || _la === 56)) { this.errorHandler.recoverInline(this); @@ -34931,45 +34718,45 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public with_clause(): With_clauseContext { - let localContext = new With_clauseContext(this.context, this.state); - this.enterRule(localContext, 574, PostgreSqlParser.RULE_with_clause); + public withClause(): WithClauseContext { + let localContext = new WithClauseContext(this.context, this.state); + this.enterRule(localContext, 566, PostgreSqlParser.RULE_withClause); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 6154; + this.state = 6108; this.match(PostgreSqlParser.KW_WITH); - this.state = 6156; + this.state = 6110; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 805, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 801, this.context) ) { case 1: { - this.state = 6155; + this.state = 6109; this.match(PostgreSqlParser.KW_RECURSIVE); } break; } { - this.state = 6158; - this.common_table_expr(); - this.state = 6163; + this.state = 6112; + this.commonTableExpr(); + this.state = 6117; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 806, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 802, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 6159; + this.state = 6113; this.match(PostgreSqlParser.COMMA); - this.state = 6160; - this.common_table_expr(); + this.state = 6114; + this.commonTableExpr(); } } } - this.state = 6165; + this.state = 6119; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 806, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 802, this.context); } } } @@ -34988,70 +34775,70 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public common_table_expr(): Common_table_exprContext { - let localContext = new Common_table_exprContext(this.context, this.state); - this.enterRule(localContext, 576, PostgreSqlParser.RULE_common_table_expr); + public commonTableExpr(): CommonTableExprContext { + let localContext = new CommonTableExprContext(this.context, this.state); + this.enterRule(localContext, 568, PostgreSqlParser.RULE_commonTableExpr); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6166; + this.state = 6120; this.colId(); - this.state = 6168; + this.state = 6122; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 6167; - this.opt_column_list(); + this.state = 6121; + this.optColumnList(); } } - this.state = 6170; + this.state = 6124; this.match(PostgreSqlParser.KW_AS); - this.state = 6175; + this.state = 6129; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77 || _la === 259) { { - this.state = 6172; + this.state = 6126; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 6171; + this.state = 6125; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 6174; + this.state = 6128; this.match(PostgreSqlParser.KW_MATERIALIZED); } } - this.state = 6177; + this.state = 6131; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6178; + this.state = 6132; this.preParableStmt(); - this.state = 6179; + this.state = 6133; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 6181; + this.state = 6135; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 810, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 806, this.context) ) { case 1: { - this.state = 6180; - this.search_clause(); + this.state = 6134; + this.searchClause(); } break; } - this.state = 6184; + this.state = 6138; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 811, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 807, this.context) ) { case 1: { - this.state = 6183; - this.cycle_clause(); + this.state = 6137; + this.cycleClause(); } break; } @@ -35071,16 +34858,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public search_clause(): Search_clauseContext { - let localContext = new Search_clauseContext(this.context, this.state); - this.enterRule(localContext, 578, PostgreSqlParser.RULE_search_clause); + public searchClause(): SearchClauseContext { + let localContext = new SearchClauseContext(this.context, this.state); + this.enterRule(localContext, 570, PostgreSqlParser.RULE_searchClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6186; + this.state = 6140; this.match(PostgreSqlParser.KW_SEARCH); - this.state = 6187; + this.state = 6141; _la = this.tokenStream.LA(1); if(!(_la === 527 || _la === 528)) { this.errorHandler.recoverInline(this); @@ -35089,16 +34876,16 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6188; + this.state = 6142; this.match(PostgreSqlParser.KW_FIRST); - this.state = 6189; + this.state = 6143; this.match(PostgreSqlParser.KW_BY); - this.state = 6190; - this.column_list(); - this.state = 6191; + this.state = 6144; + this.columnList(); + this.state = 6145; this.match(PostgreSqlParser.KW_SET); - this.state = 6192; - this.column_name(); + this.state = 6146; + this.columnName(); } } catch (re) { @@ -35115,41 +34902,41 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public cycle_clause(): Cycle_clauseContext { - let localContext = new Cycle_clauseContext(this.context, this.state); - this.enterRule(localContext, 580, PostgreSqlParser.RULE_cycle_clause); + public cycleClause(): CycleClauseContext { + let localContext = new CycleClauseContext(this.context, this.state); + this.enterRule(localContext, 572, PostgreSqlParser.RULE_cycleClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6194; + this.state = 6148; this.match(PostgreSqlParser.KW_CYCLE); - this.state = 6195; - this.column_list(); - this.state = 6196; + this.state = 6149; + this.columnList(); + this.state = 6150; this.match(PostgreSqlParser.KW_SET); - this.state = 6197; - this.column_name(); - this.state = 6203; + this.state = 6151; + this.columnName(); + this.state = 6157; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 94) { { - this.state = 6198; + this.state = 6152; this.match(PostgreSqlParser.KW_TO); - this.state = 6199; + this.state = 6153; this.colId(); - this.state = 6200; + this.state = 6154; this.match(PostgreSqlParser.KW_DEFAULT); - this.state = 6201; + this.state = 6155; this.colId(); } } - this.state = 6205; + this.state = 6159; this.match(PostgreSqlParser.KW_USING); - this.state = 6206; - this.column_name(); + this.state = 6160; + this.columnName(); } } catch (re) { @@ -35166,37 +34953,37 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public into_clause(): Into_clauseContext { - let localContext = new Into_clauseContext(this.context, this.state); - this.enterRule(localContext, 582, PostgreSqlParser.RULE_into_clause); + public intoClause(): IntoClauseContext { + let localContext = new IntoClauseContext(this.context, this.state); + this.enterRule(localContext, 574, PostgreSqlParser.RULE_intoClause); try { this.enterOuterAlt(localContext, 1); { - this.state = 6208; + this.state = 6162; this.match(PostgreSqlParser.KW_INTO); - this.state = 6214; + this.state = 6168; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 814, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 810, this.context) ) { case 1: { - this.state = 6210; + this.state = 6164; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 813, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 809, this.context) ) { case 1: { - this.state = 6209; + this.state = 6163; this.match(PostgreSqlParser.KW_STRICT); } break; } - this.state = 6212; + this.state = 6166; this.optTempTableName(); } break; case 2: { - this.state = 6213; - this.expr_list(); + this.state = 6167; + this.exprList(); } break; } @@ -35218,21 +35005,21 @@ export class PostgreSqlParser extends SQLParserBase { } public optTempTableName(): OptTempTableNameContext { let localContext = new OptTempTableNameContext(this.context, this.state); - this.enterRule(localContext, 584, PostgreSqlParser.RULE_optTempTableName); + this.enterRule(localContext, 576, PostgreSqlParser.RULE_optTempTableName); let _la: number; try { - this.state = 6231; + this.state = 6185; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 819, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 815, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6217; + this.state = 6171; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 213 || _la === 254) { { - this.state = 6216; + this.state = 6170; _la = this.tokenStream.LA(1); if(!(_la === 213 || _la === 254)) { this.errorHandler.recoverInline(this); @@ -35244,7 +35031,7 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 6219; + this.state = 6173; _la = this.tokenStream.LA(1); if(!(_la === 352 || _la === 354)) { this.errorHandler.recoverInline(this); @@ -35253,45 +35040,45 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6221; + this.state = 6175; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 92) { { - this.state = 6220; + this.state = 6174; this.match(PostgreSqlParser.KW_TABLE); } } - this.state = 6223; - this.table_name_create(); + this.state = 6177; + this.tableNameCreate(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6225; + this.state = 6179; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 817, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 813, this.context) ) { case 1: { - this.state = 6224; + this.state = 6178; this.match(PostgreSqlParser.KW_UNLOGGED); } break; } - this.state = 6228; + this.state = 6182; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 92) { { - this.state = 6227; + this.state = 6181; this.match(PostgreSqlParser.KW_TABLE); } } - this.state = 6230; - this.table_name_create(); + this.state = 6184; + this.tableNameCreate(); } break; } @@ -35310,23 +35097,23 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public distinct_clause(): Distinct_clauseContext { - let localContext = new Distinct_clauseContext(this.context, this.state); - this.enterRule(localContext, 586, PostgreSqlParser.RULE_distinct_clause); + public distinctClause(): DistinctClauseContext { + let localContext = new DistinctClauseContext(this.context, this.state); + this.enterRule(localContext, 578, PostgreSqlParser.RULE_distinctClause); try { this.enterOuterAlt(localContext, 1); { - this.state = 6233; + this.state = 6187; this.match(PostgreSqlParser.KW_DISTINCT); - this.state = 6236; + this.state = 6190; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 820, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 816, this.context) ) { case 1: { - this.state = 6234; + this.state = 6188; this.match(PostgreSqlParser.KW_ON); - this.state = 6235; - this.execute_param_clause(); + this.state = 6189; + this.executeParamClause(); } break; } @@ -35346,32 +35133,32 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public sort_clause(): Sort_clauseContext { - let localContext = new Sort_clauseContext(this.context, this.state); - this.enterRule(localContext, 588, PostgreSqlParser.RULE_sort_clause); + public sortClause(): SortClauseContext { + let localContext = new SortClauseContext(this.context, this.state); + this.enterRule(localContext, 580, PostgreSqlParser.RULE_sortClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6238; + this.state = 6192; this.match(PostgreSqlParser.KW_ORDER); - this.state = 6239; + this.state = 6193; this.match(PostgreSqlParser.KW_BY); - this.state = 6240; + this.state = 6194; this.sortBy(); - this.state = 6245; + this.state = 6199; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 6241; + this.state = 6195; this.match(PostgreSqlParser.COMMA); - this.state = 6242; + this.state = 6196; this.sortBy(); } } - this.state = 6247; + this.state = 6201; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -35393,27 +35180,27 @@ export class PostgreSqlParser extends SQLParserBase { } public sortBy(): SortByContext { let localContext = new SortByContext(this.context, this.state); - this.enterRule(localContext, 590, PostgreSqlParser.RULE_sortBy); + this.enterRule(localContext, 582, PostgreSqlParser.RULE_sortBy); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6248; - this.column_expr_no_paren(); - this.state = 6252; + this.state = 6202; + this.columnExprNoParen(); + this.state = 6206; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 822, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 818, this.context) ) { case 1: { - this.state = 6249; + this.state = 6203; this.match(PostgreSqlParser.KW_USING); - this.state = 6250; - this.qual_all_op(); + this.state = 6204; + this.qualAllOp(); } break; case 2: { - this.state = 6251; + this.state = 6205; _la = this.tokenStream.LA(1); if(!(_la === 37 || _la === 55)) { this.errorHandler.recoverInline(this); @@ -35425,14 +35212,14 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 6256; + this.state = 6210; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 823, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 819, this.context) ) { case 1: { - this.state = 6254; + this.state = 6208; this.match(PostgreSqlParser.KW_NULLS); - this.state = 6255; + this.state = 6209; _la = this.tokenStream.LA(1); if(!(_la === 207 || _la === 249)) { this.errorHandler.recoverInline(this); @@ -35460,26 +35247,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public select_limit(): Select_limitContext { - let localContext = new Select_limitContext(this.context, this.state); - this.enterRule(localContext, 592, PostgreSqlParser.RULE_select_limit); + public selectLimit(): SelectLimitContext { + let localContext = new SelectLimitContext(this.context, this.state); + this.enterRule(localContext, 584, PostgreSqlParser.RULE_selectLimit); let _la: number; try { - this.state = 6269; + this.state = 6223; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_OFFSET: this.enterOuterAlt(localContext, 1); { - this.state = 6258; - this.offset_clause(); - this.state = 6260; + this.state = 6212; + this.offsetClause(); + this.state = 6214; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 824, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 820, this.context) ) { case 1: { - this.state = 6259; - this.fetch_clause(); + this.state = 6213; + this.fetchClause(); } break; } @@ -35489,31 +35276,31 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_LIMIT: this.enterOuterAlt(localContext, 2); { - this.state = 6264; + this.state = 6218; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_LIMIT: { - this.state = 6262; - this.limit_clause(); + this.state = 6216; + this.limitClause(); } break; case PostgreSqlParser.KW_FETCH: { - this.state = 6263; - this.fetch_clause(); + this.state = 6217; + this.fetchClause(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 6267; + this.state = 6221; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 79) { { - this.state = 6266; - this.offset_clause(); + this.state = 6220; + this.offsetClause(); } } @@ -35537,16 +35324,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public limit_clause(): Limit_clauseContext { - let localContext = new Limit_clauseContext(this.context, this.state); - this.enterRule(localContext, 594, PostgreSqlParser.RULE_limit_clause); + public limitClause(): LimitClauseContext { + let localContext = new LimitClauseContext(this.context, this.state); + this.enterRule(localContext, 586, PostgreSqlParser.RULE_limitClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6271; + this.state = 6225; this.match(PostgreSqlParser.KW_LIMIT); - this.state = 6274; + this.state = 6228; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: @@ -35992,27 +35779,27 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 6272; + this.state = 6226; this.expression(); } break; case PostgreSqlParser.KW_ALL: { - this.state = 6273; + this.state = 6227; this.match(PostgreSqlParser.KW_ALL); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 6278; + this.state = 6232; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 6276; + this.state = 6230; this.match(PostgreSqlParser.COMMA); - this.state = 6277; + this.state = 6231; this.expression(); } } @@ -36033,16 +35820,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public fetch_clause(): Fetch_clauseContext { - let localContext = new Fetch_clauseContext(this.context, this.state); - this.enterRule(localContext, 596, PostgreSqlParser.RULE_fetch_clause); + public fetchClause(): FetchClauseContext { + let localContext = new FetchClauseContext(this.context, this.state); + this.enterRule(localContext, 588, PostgreSqlParser.RULE_fetchClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6280; + this.state = 6234; this.match(PostgreSqlParser.KW_FETCH); - this.state = 6281; + this.state = 6235; _la = this.tokenStream.LA(1); if(!(_la === 207 || _la === 268)) { this.errorHandler.recoverInline(this); @@ -36052,17 +35839,17 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } { - this.state = 6283; + this.state = 6237; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 830, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 826, this.context) ) { case 1: { - this.state = 6282; - this.select_fetch_first_value(); + this.state = 6236; + this.selectFetchFirstValue(); } break; } - this.state = 6285; + this.state = 6239; _la = this.tokenStream.LA(1); if(!(_la === 320 || _la === 414)) { this.errorHandler.recoverInline(this); @@ -36071,20 +35858,20 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6289; + this.state = 6243; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ONLY: { - this.state = 6286; + this.state = 6240; this.match(PostgreSqlParser.KW_ONLY); } break; case PostgreSqlParser.KW_WITH: { - this.state = 6287; + this.state = 6241; this.match(PostgreSqlParser.KW_WITH); - this.state = 6288; + this.state = 6242; this.match(PostgreSqlParser.KW_TIES); } break; @@ -36108,23 +35895,23 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public offset_clause(): Offset_clauseContext { - let localContext = new Offset_clauseContext(this.context, this.state); - this.enterRule(localContext, 598, PostgreSqlParser.RULE_offset_clause); + public offsetClause(): OffsetClauseContext { + let localContext = new OffsetClauseContext(this.context, this.state); + this.enterRule(localContext, 590, PostgreSqlParser.RULE_offsetClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6291; + this.state = 6245; this.match(PostgreSqlParser.KW_OFFSET); - this.state = 6296; + this.state = 6250; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 832, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 828, this.context) ) { case 1: { - this.state = 6292; - this.select_fetch_first_value(); - this.state = 6293; + this.state = 6246; + this.selectFetchFirstValue(); + this.state = 6247; _la = this.tokenStream.LA(1); if(!(_la === 320 || _la === 414)) { this.errorHandler.recoverInline(this); @@ -36137,7 +35924,7 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 6295; + this.state = 6249; this.expression(); } break; @@ -36158,18 +35945,18 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public select_fetch_first_value(): Select_fetch_first_valueContext { - let localContext = new Select_fetch_first_valueContext(this.context, this.state); - this.enterRule(localContext, 600, PostgreSqlParser.RULE_select_fetch_first_value); + public selectFetchFirstValue(): SelectFetchFirstValueContext { + let localContext = new SelectFetchFirstValueContext(this.context, this.state); + this.enterRule(localContext, 592, PostgreSqlParser.RULE_selectFetchFirstValue); let _la: number; try { - this.state = 6301; + this.state = 6255; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 833, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 829, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6298; + this.state = 6252; _la = this.tokenStream.LA(1); if(!(_la === 12 || _la === 13)) { this.errorHandler.recoverInline(this); @@ -36178,7 +35965,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6299; + this.state = 6253; _la = this.tokenStream.LA(1); if(!(_la === 574 || _la === 576)) { this.errorHandler.recoverInline(this); @@ -36192,7 +35979,7 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6300; + this.state = 6254; this.primaryExpression(0); } break; @@ -36212,23 +35999,23 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public group_clause(): Group_clauseContext { - let localContext = new Group_clauseContext(this.context, this.state); - this.enterRule(localContext, 602, PostgreSqlParser.RULE_group_clause); + public groupClause(): GroupClauseContext { + let localContext = new GroupClauseContext(this.context, this.state); + this.enterRule(localContext, 594, PostgreSqlParser.RULE_groupClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6303; + this.state = 6257; this.match(PostgreSqlParser.KW_GROUP); - this.state = 6304; + this.state = 6258; this.match(PostgreSqlParser.KW_BY); - this.state = 6306; + this.state = 6260; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 834, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 830, this.context) ) { case 1: { - this.state = 6305; + this.state = 6259; _la = this.tokenStream.LA(1); if(!(_la === 30 || _la === 56)) { this.errorHandler.recoverInline(this); @@ -36240,8 +36027,8 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 6308; - this.group_by_list(); + this.state = 6262; + this.groupByList(); } } catch (re) { @@ -36258,32 +36045,32 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public group_by_list(): Group_by_listContext { - let localContext = new Group_by_listContext(this.context, this.state); - this.enterRule(localContext, 604, PostgreSqlParser.RULE_group_by_list); + public groupByList(): GroupByListContext { + let localContext = new GroupByListContext(this.context, this.state); + this.enterRule(localContext, 596, PostgreSqlParser.RULE_groupByList); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 6310; - this.group_by_item(); - this.state = 6315; + this.state = 6264; + this.groupByItem(); + this.state = 6269; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 835, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 831, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 6311; + this.state = 6265; this.match(PostgreSqlParser.COMMA); - this.state = 6312; - this.group_by_item(); + this.state = 6266; + this.groupByItem(); } } } - this.state = 6317; + this.state = 6271; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 835, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 831, this.context); } } } @@ -36301,39 +36088,39 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public group_by_item(): Group_by_itemContext { - let localContext = new Group_by_itemContext(this.context, this.state); - this.enterRule(localContext, 606, PostgreSqlParser.RULE_group_by_item); + public groupByItem(): GroupByItemContext { + let localContext = new GroupByItemContext(this.context, this.state); + this.enterRule(localContext, 598, PostgreSqlParser.RULE_groupByItem); let _la: number; try { - this.state = 6341; + this.state = 6295; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 838, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 834, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6318; - this.column_expr_no_paren(); + this.state = 6272; + this.columnExprNoParen(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6319; + this.state = 6273; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6320; + this.state = 6274; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 6322; + this.state = 6276; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 468 || _la === 469) { { - this.state = 6321; + this.state = 6275; _la = this.tokenStream.LA(1); if(!(_la === 468 || _la === 469)) { this.errorHandler.recoverInline(this); @@ -36345,44 +36132,44 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 6324; + this.state = 6278; this.match(PostgreSqlParser.OPEN_PAREN); { - this.state = 6325; - this.column_expr_no_paren(); - this.state = 6330; + this.state = 6279; + this.columnExprNoParen(); + this.state = 6284; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 6326; + this.state = 6280; this.match(PostgreSqlParser.COMMA); - this.state = 6327; - this.column_expr_no_paren(); + this.state = 6281; + this.columnExprNoParen(); } } - this.state = 6332; + this.state = 6286; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 6333; + this.state = 6287; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 6335; + this.state = 6289; this.match(PostgreSqlParser.KW_GROUPING); - this.state = 6336; + this.state = 6290; this.match(PostgreSqlParser.KW_SETS); - this.state = 6337; + this.state = 6291; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6338; - this.group_by_list(); - this.state = 6339; + this.state = 6292; + this.groupByList(); + this.state = 6293; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -36402,100 +36189,100 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public for_locking_clause(): For_locking_clauseContext { - let localContext = new For_locking_clauseContext(this.context, this.state); - this.enterRule(localContext, 608, PostgreSqlParser.RULE_for_locking_clause); + public forLockingClause(): ForLockingClauseContext { + let localContext = new ForLockingClauseContext(this.context, this.state); + this.enterRule(localContext, 600, PostgreSqlParser.RULE_forLockingClause); let _la: number; try { - this.state = 6371; + this.state = 6325; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 845, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 841, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6364; + this.state = 6318; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 6343; + this.state = 6297; this.match(PostgreSqlParser.KW_FOR); - this.state = 6353; + this.state = 6307; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_NO: case PostgreSqlParser.KW_UPDATE: { - this.state = 6346; + this.state = 6300; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 6344; + this.state = 6298; this.match(PostgreSqlParser.KW_NO); - this.state = 6345; + this.state = 6299; this.match(PostgreSqlParser.KW_KEY); } } - this.state = 6348; + this.state = 6302; this.match(PostgreSqlParser.KW_UPDATE); } break; case PostgreSqlParser.KW_KEY: case PostgreSqlParser.KW_SHARE: { - this.state = 6350; + this.state = 6304; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 245) { { - this.state = 6349; + this.state = 6303; this.match(PostgreSqlParser.KW_KEY); } } - this.state = 6352; + this.state = 6306; this.match(PostgreSqlParser.KW_SHARE); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 6357; + this.state = 6311; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 842, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 838, this.context) ) { case 1: { - this.state = 6355; + this.state = 6309; this.match(PostgreSqlParser.KW_OF); - this.state = 6356; - this.qualified_name_list(); + this.state = 6310; + this.qualifiedNameList(); } break; } - this.state = 6362; + this.state = 6316; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 843, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 839, this.context) ) { case 1: { - this.state = 6359; + this.state = 6313; this.match(PostgreSqlParser.KW_NOWAIT); } break; case 2: { - this.state = 6360; + this.state = 6314; this.match(PostgreSqlParser.KW_SKIP); - this.state = 6361; + this.state = 6315; this.match(PostgreSqlParser.KW_LOCKED); } break; } } } - this.state = 6366; + this.state = 6320; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 62); @@ -36504,11 +36291,11 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6368; + this.state = 6322; this.match(PostgreSqlParser.KW_FOR); - this.state = 6369; + this.state = 6323; this.match(PostgreSqlParser.KW_READ); - this.state = 6370; + this.state = 6324; this.match(PostgreSqlParser.KW_ONLY); } break; @@ -36528,30 +36315,30 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public values_clause(): Values_clauseContext { - let localContext = new Values_clauseContext(this.context, this.state); - this.enterRule(localContext, 610, PostgreSqlParser.RULE_values_clause); + public valuesClause(): ValuesClauseContext { + let localContext = new ValuesClauseContext(this.context, this.state); + this.enterRule(localContext, 602, PostgreSqlParser.RULE_valuesClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6373; + this.state = 6327; this.match(PostgreSqlParser.KW_VALUES); - this.state = 6374; - this.execute_param_clause(); - this.state = 6379; + this.state = 6328; + this.executeParamClause(); + this.state = 6333; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 6375; + this.state = 6329; this.match(PostgreSqlParser.COMMA); - this.state = 6376; - this.execute_param_clause(); + this.state = 6330; + this.executeParamClause(); } } - this.state = 6381; + this.state = 6335; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -36571,16 +36358,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public from_clause(): From_clauseContext { - let localContext = new From_clauseContext(this.context, this.state); - this.enterRule(localContext, 612, PostgreSqlParser.RULE_from_clause); + public fromClause(): FromClauseContext { + let localContext = new FromClauseContext(this.context, this.state); + this.enterRule(localContext, 604, PostgreSqlParser.RULE_fromClause); try { this.enterOuterAlt(localContext, 1); { - this.state = 6382; + this.state = 6336; this.match(PostgreSqlParser.KW_FROM); - this.state = 6383; - this.from_list(); + this.state = 6337; + this.fromList(); } } catch (re) { @@ -36597,32 +36384,32 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public from_list(): From_listContext { - let localContext = new From_listContext(this.context, this.state); - this.enterRule(localContext, 614, PostgreSqlParser.RULE_from_list); + public fromList(): FromListContext { + let localContext = new FromListContext(this.context, this.state); + this.enterRule(localContext, 606, PostgreSqlParser.RULE_fromList); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 6385; - this.table_ref(); - this.state = 6390; + this.state = 6339; + this.tableRef(); + this.state = 6344; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 847, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 843, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 6386; + this.state = 6340; this.match(PostgreSqlParser.COMMA); - this.state = 6387; - this.table_ref(); + this.state = 6341; + this.tableRef(); } } } - this.state = 6392; + this.state = 6346; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 847, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 843, this.context); } } } @@ -36640,70 +36427,70 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public table_ref(): Table_refContext { - let localContext = new Table_refContext(this.context, this.state); - this.enterRule(localContext, 616, PostgreSqlParser.RULE_table_ref); + public tableRef(): TableRefContext { + let localContext = new TableRefContext(this.context, this.state); + this.enterRule(localContext, 608, PostgreSqlParser.RULE_tableRef); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 6456; + this.state = 6410; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 864, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 860, this.context) ) { case 1: { - this.state = 6407; + this.state = 6361; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 852, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 848, this.context) ) { case 1: { - this.state = 6393; - this.relation_expr(); + this.state = 6347; + this.relationExpr(); } break; case 2: { { - this.state = 6395; + this.state = 6349; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 81) { { - this.state = 6394; + this.state = 6348; this.match(PostgreSqlParser.KW_ONLY); } } - this.state = 6397; - this.view_name(); - this.state = 6399; + this.state = 6351; + this.viewName(); + this.state = 6353; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 849, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 845, this.context) ) { case 1: { - this.state = 6398; + this.state = 6352; this.match(PostgreSqlParser.STAR); } break; } - this.state = 6402; + this.state = 6356; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 850, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 846, this.context) ) { case 1: { - this.state = 6401; - this.column_list(); + this.state = 6355; + this.columnList(); } break; } - this.state = 6405; + this.state = 6359; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 851, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 847, this.context) ) { case 1: { - this.state = 6404; - this.where_clause(); + this.state = 6358; + this.whereClause(); } break; } @@ -36711,22 +36498,22 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 6410; + this.state = 6364; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 853, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 849, this.context) ) { case 1: { - this.state = 6409; - this.alias_clause(); + this.state = 6363; + this.aliasClause(); } break; } - this.state = 6413; + this.state = 6367; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 472) { { - this.state = 6412; + this.state = 6366; this.tableSampleClause(); } } @@ -36735,30 +36522,30 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 6416; + this.state = 6370; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 72) { { - this.state = 6415; + this.state = 6369; this.match(PostgreSqlParser.KW_LATERAL); } } - this.state = 6430; + this.state = 6384; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 859, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 855, this.context) ) { case 1: { - this.state = 6418; + this.state = 6372; this.xmlTable(); - this.state = 6420; + this.state = 6374; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 856, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 852, this.context) ) { case 1: { - this.state = 6419; - this.alias_clause(); + this.state = 6373; + this.aliasClause(); } break; } @@ -36766,15 +36553,15 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 6422; - this.func_table(); - this.state = 6424; + this.state = 6376; + this.funcTable(); + this.state = 6378; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 857, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 853, this.context) ) { case 1: { - this.state = 6423; - this.func_alias_clause(); + this.state = 6377; + this.funcAliasClause(); } break; } @@ -36782,15 +36569,15 @@ export class PostgreSqlParser extends SQLParserBase { break; case 3: { - this.state = 6426; - this.select_with_parens(); - this.state = 6428; + this.state = 6380; + this.selectWithParens(); + this.state = 6382; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 858, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 854, this.context) ) { case 1: { - this.state = 6427; - this.alias_clause(); + this.state = 6381; + this.aliasClause(); } break; } @@ -36801,41 +36588,41 @@ export class PostgreSqlParser extends SQLParserBase { break; case 3: { - this.state = 6432; + this.state = 6386; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6433; - this.table_ref(); - this.state = 6450; + this.state = 6387; + this.tableRef(); + this.state = 6404; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_CROSS: { - this.state = 6434; + this.state = 6388; this.match(PostgreSqlParser.KW_CROSS); - this.state = 6435; + this.state = 6389; this.match(PostgreSqlParser.KW_JOIN); - this.state = 6436; - this.table_ref(); + this.state = 6390; + this.tableRef(); } break; case PostgreSqlParser.KW_NATURAL: { - this.state = 6437; + this.state = 6391; this.match(PostgreSqlParser.KW_NATURAL); - this.state = 6439; + this.state = 6393; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (((((_la - 113)) & ~0x1F) === 0 && ((1 << (_la - 113)) & 8261) !== 0)) { { - this.state = 6438; - this.join_type(); + this.state = 6392; + this.joinType(); } } - this.state = 6441; + this.state = 6395; this.match(PostgreSqlParser.KW_JOIN); - this.state = 6442; - this.table_ref(); + this.state = 6396; + this.tableRef(); } break; case PostgreSqlParser.KW_FULL: @@ -36844,22 +36631,22 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_LEFT: case PostgreSqlParser.KW_RIGHT: { - this.state = 6444; + this.state = 6398; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (((((_la - 113)) & ~0x1F) === 0 && ((1 << (_la - 113)) & 8261) !== 0)) { { - this.state = 6443; - this.join_type(); + this.state = 6397; + this.joinType(); } } - this.state = 6446; + this.state = 6400; this.match(PostgreSqlParser.KW_JOIN); - this.state = 6447; - this.table_ref(); - this.state = 6448; - this.join_qual(); + this.state = 6401; + this.tableRef(); + this.state = 6402; + this.joinQual(); } break; case PostgreSqlParser.CLOSE_PAREN: @@ -36867,58 +36654,58 @@ export class PostgreSqlParser extends SQLParserBase { default: break; } - this.state = 6452; + this.state = 6406; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 6454; + this.state = 6408; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 863, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 859, this.context) ) { case 1: { - this.state = 6453; - this.alias_clause(); + this.state = 6407; + this.aliasClause(); } break; } } break; } - this.state = 6476; + this.state = 6430; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 868, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 864, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { - this.state = 6474; + this.state = 6428; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_CROSS: { - this.state = 6458; + this.state = 6412; this.match(PostgreSqlParser.KW_CROSS); - this.state = 6459; + this.state = 6413; this.match(PostgreSqlParser.KW_JOIN); - this.state = 6460; - this.table_ref(); + this.state = 6414; + this.tableRef(); } break; case PostgreSqlParser.KW_NATURAL: { - this.state = 6461; + this.state = 6415; this.match(PostgreSqlParser.KW_NATURAL); - this.state = 6463; + this.state = 6417; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (((((_la - 113)) & ~0x1F) === 0 && ((1 << (_la - 113)) & 8261) !== 0)) { { - this.state = 6462; - this.join_type(); + this.state = 6416; + this.joinType(); } } - this.state = 6465; + this.state = 6419; this.match(PostgreSqlParser.KW_JOIN); - this.state = 6466; - this.table_ref(); + this.state = 6420; + this.tableRef(); } break; case PostgreSqlParser.KW_FULL: @@ -36927,22 +36714,22 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_LEFT: case PostgreSqlParser.KW_RIGHT: { - this.state = 6468; + this.state = 6422; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (((((_la - 113)) & ~0x1F) === 0 && ((1 << (_la - 113)) & 8261) !== 0)) { { - this.state = 6467; - this.join_type(); + this.state = 6421; + this.joinType(); } } - this.state = 6470; + this.state = 6424; this.match(PostgreSqlParser.KW_JOIN); - this.state = 6471; - this.table_ref(); - this.state = 6472; - this.join_qual(); + this.state = 6425; + this.tableRef(); + this.state = 6426; + this.joinQual(); } break; default: @@ -36950,9 +36737,9 @@ export class PostgreSqlParser extends SQLParserBase { } } } - this.state = 6478; + this.state = 6432; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 868, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 864, this.context); } } } @@ -36970,35 +36757,35 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public alias_clause(): Alias_clauseContext { - let localContext = new Alias_clauseContext(this.context, this.state); - this.enterRule(localContext, 618, PostgreSqlParser.RULE_alias_clause); + public aliasClause(): AliasClauseContext { + let localContext = new AliasClauseContext(this.context, this.state); + this.enterRule(localContext, 610, PostgreSqlParser.RULE_aliasClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6480; + this.state = 6434; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 6479; + this.state = 6433; this.match(PostgreSqlParser.KW_AS); } } - this.state = 6482; + this.state = 6436; localContext._alias = this.colId(); - this.state = 6487; + this.state = 6441; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 870, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 866, this.context) ) { case 1: { - this.state = 6483; + this.state = 6437; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6484; - this.name_list(); - this.state = 6485; + this.state = 6438; + this.nameList(); + this.state = 6439; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -37019,37 +36806,37 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_alias_clause(): Func_alias_clauseContext { - let localContext = new Func_alias_clauseContext(this.context, this.state); - this.enterRule(localContext, 620, PostgreSqlParser.RULE_func_alias_clause); + public funcAliasClause(): FuncAliasClauseContext { + let localContext = new FuncAliasClauseContext(this.context, this.state); + this.enterRule(localContext, 612, PostgreSqlParser.RULE_funcAliasClause); let _la: number; try { - this.state = 6501; + this.state = 6455; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 873, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 869, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6489; - this.alias_clause(); + this.state = 6443; + this.aliasClause(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6495; + this.state = 6449; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_AS: { - this.state = 6490; + this.state = 6444; this.match(PostgreSqlParser.KW_AS); - this.state = 6492; + this.state = 6446; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 6491; + this.state = 6445; localContext._alias = this.colId(); } } @@ -37451,18 +37238,18 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 6494; + this.state = 6448; localContext._alias = this.colId(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 6497; + this.state = 6451; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6498; + this.state = 6452; this.tableFuncElementList(); - this.state = 6499; + this.state = 6453; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -37482,14 +37269,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public join_type(): Join_typeContext { - let localContext = new Join_typeContext(this.context, this.state); - this.enterRule(localContext, 622, PostgreSqlParser.RULE_join_type); + public joinType(): JoinTypeContext { + let localContext = new JoinTypeContext(this.context, this.state); + this.enterRule(localContext, 614, PostgreSqlParser.RULE_joinType); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6503; + this.state = 6457; _la = this.tokenStream.LA(1); if(!(((((_la - 113)) & ~0x1F) === 0 && ((1 << (_la - 113)) & 8261) !== 0))) { this.errorHandler.recoverInline(this); @@ -37498,12 +37285,12 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6505; + this.state = 6459; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 123) { { - this.state = 6504; + this.state = 6458; this.match(PostgreSqlParser.KW_OUTER); } } @@ -37524,28 +37311,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public join_qual(): Join_qualContext { - let localContext = new Join_qualContext(this.context, this.state); - this.enterRule(localContext, 624, PostgreSqlParser.RULE_join_qual); + public joinQual(): JoinQualContext { + let localContext = new JoinQualContext(this.context, this.state); + this.enterRule(localContext, 616, PostgreSqlParser.RULE_joinQual); try { - this.state = 6511; + this.state = 6465; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_USING: this.enterOuterAlt(localContext, 1); { - this.state = 6507; + this.state = 6461; this.match(PostgreSqlParser.KW_USING); - this.state = 6508; - this.opt_column_list(); + this.state = 6462; + this.optColumnList(); } break; case PostgreSqlParser.KW_ON: this.enterOuterAlt(localContext, 2); { - this.state = 6509; + this.state = 6463; this.match(PostgreSqlParser.KW_ON); - this.state = 6510; + this.state = 6464; this.expression(); } break; @@ -37567,26 +37354,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public relation_expr(): Relation_exprContext { - let localContext = new Relation_exprContext(this.context, this.state); - this.enterRule(localContext, 626, PostgreSqlParser.RULE_relation_expr); + public relationExpr(): RelationExprContext { + let localContext = new RelationExprContext(this.context, this.state); + this.enterRule(localContext, 618, PostgreSqlParser.RULE_relationExpr); try { - this.state = 6528; + this.state = 6482; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 878, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 874, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6513; - this.truncate_table(); + this.state = 6467; + this.truncateTable(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6514; + this.state = 6468; this.match(PostgreSqlParser.KW_ONLY); - this.state = 6520; + this.state = 6474; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -37984,17 +37771,17 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 6515; - this.table_name(); + this.state = 6469; + this.tableName(); } break; case PostgreSqlParser.OPEN_PAREN: { - this.state = 6516; + this.state = 6470; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6517; - this.table_name(); - this.state = 6518; + this.state = 6471; + this.tableName(); + this.state = 6472; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -38006,11 +37793,11 @@ export class PostgreSqlParser extends SQLParserBase { case 3: this.enterOuterAlt(localContext, 3); { - this.state = 6522; + this.state = 6476; this.match(PostgreSqlParser.KW_IN); - this.state = 6523; + this.state = 6477; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 6526; + this.state = 6480; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -38408,13 +38195,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 6524; - this.schema_name(); + this.state = 6478; + this.schemaName(); } break; case PostgreSqlParser.KW_CURRENT_SCHEMA: { - this.state = 6525; + this.state = 6479; this.match(PostgreSqlParser.KW_CURRENT_SCHEMA); } break; @@ -38439,38 +38226,38 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public publication_relation_expr(): Publication_relation_exprContext { - let localContext = new Publication_relation_exprContext(this.context, this.state); - this.enterRule(localContext, 628, PostgreSqlParser.RULE_publication_relation_expr); + public publicationRelationExpr(): PublicationRelationExprContext { + let localContext = new PublicationRelationExprContext(this.context, this.state); + this.enterRule(localContext, 620, PostgreSqlParser.RULE_publicationRelationExpr); let _la: number; try { - this.state = 6554; + this.state = 6508; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 883, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 879, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6530; + this.state = 6484; this.match(PostgreSqlParser.KW_TABLE); - this.state = 6531; - this.truncate_table(); - this.state = 6533; + this.state = 6485; + this.truncateTable(); + this.state = 6487; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 879, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 875, this.context) ) { case 1: { - this.state = 6532; - this.opt_column_list(); + this.state = 6486; + this.optColumnList(); } break; } - this.state = 6536; + this.state = 6490; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 103) { { - this.state = 6535; - this.where_clause(); + this.state = 6489; + this.whereClause(); } } @@ -38479,11 +38266,11 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6538; + this.state = 6492; this.match(PostgreSqlParser.KW_TABLE); - this.state = 6539; + this.state = 6493; this.match(PostgreSqlParser.KW_ONLY); - this.state = 6545; + this.state = 6499; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -38881,17 +38668,17 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 6540; - this.table_name(); + this.state = 6494; + this.tableName(); } break; case PostgreSqlParser.OPEN_PAREN: { - this.state = 6541; + this.state = 6495; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6542; - this.table_name(); - this.state = 6543; + this.state = 6496; + this.tableName(); + this.state = 6497; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -38903,13 +38690,13 @@ export class PostgreSqlParser extends SQLParserBase { case 3: this.enterOuterAlt(localContext, 3); { - this.state = 6547; + this.state = 6501; this.match(PostgreSqlParser.KW_TABLES); - this.state = 6548; + this.state = 6502; this.match(PostgreSqlParser.KW_IN); - this.state = 6549; + this.state = 6503; this.match(PostgreSqlParser.KW_SCHEMA); - this.state = 6552; + this.state = 6506; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -39307,13 +39094,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 6550; - this.schema_name(); + this.state = 6504; + this.schemaName(); } break; case PostgreSqlParser.KW_CURRENT_SCHEMA: { - this.state = 6551; + this.state = 6505; this.match(PostgreSqlParser.KW_CURRENT_SCHEMA); } break; @@ -39338,28 +39125,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public relation_expr_list(): Relation_expr_listContext { - let localContext = new Relation_expr_listContext(this.context, this.state); - this.enterRule(localContext, 630, PostgreSqlParser.RULE_relation_expr_list); + public relationExprList(): RelationExprListContext { + let localContext = new RelationExprListContext(this.context, this.state); + this.enterRule(localContext, 622, PostgreSqlParser.RULE_relationExprList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6556; - this.relation_expr(); - this.state = 6561; + this.state = 6510; + this.relationExpr(); + this.state = 6515; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 6557; + this.state = 6511; this.match(PostgreSqlParser.COMMA); - this.state = 6558; - this.relation_expr(); + this.state = 6512; + this.relationExpr(); } } - this.state = 6563; + this.state = 6517; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -39379,31 +39166,31 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public relation_expr_opt_alias(): Relation_expr_opt_aliasContext { - let localContext = new Relation_expr_opt_aliasContext(this.context, this.state); - this.enterRule(localContext, 632, PostgreSqlParser.RULE_relation_expr_opt_alias); + public relationExprOptAlias(): RelationExprOptAliasContext { + let localContext = new RelationExprOptAliasContext(this.context, this.state); + this.enterRule(localContext, 624, PostgreSqlParser.RULE_relationExprOptAlias); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6564; - this.relation_expr(); - this.state = 6569; + this.state = 6518; + this.relationExpr(); + this.state = 6523; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 886, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 882, this.context) ) { case 1: { - this.state = 6566; + this.state = 6520; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 6565; + this.state = 6519; this.match(PostgreSqlParser.KW_AS); } } - this.state = 6568; + this.state = 6522; this.colId(); } break; @@ -39426,28 +39213,28 @@ export class PostgreSqlParser extends SQLParserBase { } public tableSampleClause(): TableSampleClauseContext { let localContext = new TableSampleClauseContext(this.context, this.state); - this.enterRule(localContext, 634, PostgreSqlParser.RULE_tableSampleClause); + this.enterRule(localContext, 626, PostgreSqlParser.RULE_tableSampleClause); try { this.enterOuterAlt(localContext, 1); { - this.state = 6571; + this.state = 6525; this.match(PostgreSqlParser.KW_TABLESAMPLE); - this.state = 6572; - this.function_name(); - this.state = 6573; - this.execute_param_clause(); - this.state = 6579; + this.state = 6526; + this.functionName(); + this.state = 6527; + this.executeParamClause(); + this.state = 6533; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 887, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 883, this.context) ) { case 1: { - this.state = 6574; + this.state = 6528; this.match(PostgreSqlParser.KW_REPEATABLE); - this.state = 6575; + this.state = 6529; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6576; + this.state = 6530; this.expression(); - this.state = 6577; + this.state = 6531; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -39468,63 +39255,63 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_table(): Func_tableContext { - let localContext = new Func_tableContext(this.context, this.state); - this.enterRule(localContext, 636, PostgreSqlParser.RULE_func_table); + public funcTable(): FuncTableContext { + let localContext = new FuncTableContext(this.context, this.state); + this.enterRule(localContext, 628, PostgreSqlParser.RULE_funcTable); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6595; + this.state = 6549; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 889, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 885, this.context) ) { case 1: { - this.state = 6581; - this.func_expr_windowless(); + this.state = 6535; + this.funcExprWindowless(); } break; case 2: { { - this.state = 6582; + this.state = 6536; this.match(PostgreSqlParser.KW_ROWS); - this.state = 6583; + this.state = 6537; this.match(PostgreSqlParser.KW_FROM); - this.state = 6584; + this.state = 6538; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6585; + this.state = 6539; this.rowsFromItem(); - this.state = 6590; + this.state = 6544; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 6586; + this.state = 6540; this.match(PostgreSqlParser.COMMA); - this.state = 6587; + this.state = 6541; this.rowsFromItem(); } } - this.state = 6592; + this.state = 6546; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 6593; + this.state = 6547; this.match(PostgreSqlParser.CLOSE_PAREN); } } break; } - this.state = 6599; + this.state = 6553; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 890, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 886, this.context) ) { case 1: { - this.state = 6597; + this.state = 6551; this.match(PostgreSqlParser.KW_WITH); - this.state = 6598; + this.state = 6552; this.match(PostgreSqlParser.KW_ORDINALITY); } break; @@ -39547,25 +39334,25 @@ export class PostgreSqlParser extends SQLParserBase { } public rowsFromItem(): RowsFromItemContext { let localContext = new RowsFromItemContext(this.context, this.state); - this.enterRule(localContext, 638, PostgreSqlParser.RULE_rowsFromItem); + this.enterRule(localContext, 630, PostgreSqlParser.RULE_rowsFromItem); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6601; - this.func_expr_windowless(); - this.state = 6607; + this.state = 6555; + this.funcExprWindowless(); + this.state = 6561; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 6602; + this.state = 6556; this.match(PostgreSqlParser.KW_AS); - this.state = 6603; + this.state = 6557; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6604; + this.state = 6558; this.tableFuncElementList(); - this.state = 6605; + this.state = 6559; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -39586,16 +39373,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public where_clause(): Where_clauseContext { - let localContext = new Where_clauseContext(this.context, this.state); - this.enterRule(localContext, 640, PostgreSqlParser.RULE_where_clause); + public whereClause(): WhereClauseContext { + let localContext = new WhereClauseContext(this.context, this.state); + this.enterRule(localContext, 632, PostgreSqlParser.RULE_whereClause); try { this.enterOuterAlt(localContext, 1); { - this.state = 6609; + this.state = 6563; this.match(PostgreSqlParser.KW_WHERE); - this.state = 6610; - this.column_expr_no_paren(); + this.state = 6564; + this.columnExprNoParen(); } } catch (re) { @@ -39612,30 +39399,30 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public where_or_current_clause(): Where_or_current_clauseContext { - let localContext = new Where_or_current_clauseContext(this.context, this.state); - this.enterRule(localContext, 642, PostgreSqlParser.RULE_where_or_current_clause); + public whereOrCurrentClause(): WhereOrCurrentClauseContext { + let localContext = new WhereOrCurrentClauseContext(this.context, this.state); + this.enterRule(localContext, 634, PostgreSqlParser.RULE_whereOrCurrentClause); try { this.enterOuterAlt(localContext, 1); { - this.state = 6612; + this.state = 6566; this.match(PostgreSqlParser.KW_WHERE); - this.state = 6617; + this.state = 6571; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 892, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 888, this.context) ) { case 1: { - this.state = 6613; + this.state = 6567; this.match(PostgreSqlParser.KW_CURRENT); - this.state = 6614; + this.state = 6568; this.match(PostgreSqlParser.KW_OF); - this.state = 6615; + this.state = 6569; this.colId(); } break; case 2: { - this.state = 6616; + this.state = 6570; this.expression(); } break; @@ -39658,26 +39445,26 @@ export class PostgreSqlParser extends SQLParserBase { } public tableFuncElementList(): TableFuncElementListContext { let localContext = new TableFuncElementListContext(this.context, this.state); - this.enterRule(localContext, 644, PostgreSqlParser.RULE_tableFuncElementList); + this.enterRule(localContext, 636, PostgreSqlParser.RULE_tableFuncElementList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6619; + this.state = 6573; this.tableFuncElement(); - this.state = 6624; + this.state = 6578; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 6620; + this.state = 6574; this.match(PostgreSqlParser.COMMA); - this.state = 6621; + this.state = 6575; this.tableFuncElement(); } } - this.state = 6626; + this.state = 6580; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -39699,22 +39486,22 @@ export class PostgreSqlParser extends SQLParserBase { } public tableFuncElement(): TableFuncElementContext { let localContext = new TableFuncElementContext(this.context, this.state); - this.enterRule(localContext, 646, PostgreSqlParser.RULE_tableFuncElement); + this.enterRule(localContext, 638, PostgreSqlParser.RULE_tableFuncElement); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6627; + this.state = 6581; this.colId(); - this.state = 6628; + this.state = 6582; this.typename(); - this.state = 6630; + this.state = 6584; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 43) { { - this.state = 6629; - this.opt_collate_clause(); + this.state = 6583; + this.collateClause(); } } @@ -39736,76 +39523,76 @@ export class PostgreSqlParser extends SQLParserBase { } public xmlTable(): XmlTableContext { let localContext = new XmlTableContext(this.context, this.state); - this.enterRule(localContext, 648, PostgreSqlParser.RULE_xmlTable); + this.enterRule(localContext, 640, PostgreSqlParser.RULE_xmlTable); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6632; + this.state = 6586; this.match(PostgreSqlParser.KW_XMLTABLE); - this.state = 6633; + this.state = 6587; this.match(PostgreSqlParser.OPEN_PAREN); { - this.state = 6647; + this.state = 6601; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 896, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 892, this.context) ) { case 1: { - this.state = 6634; + this.state = 6588; this.match(PostgreSqlParser.KW_XMLNAMESPACES); - this.state = 6635; + this.state = 6589; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6636; - this.xml_namespace_el(); - this.state = 6641; + this.state = 6590; + this.xmlNamespaceEle(); + this.state = 6595; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 6637; + this.state = 6591; this.match(PostgreSqlParser.COMMA); - this.state = 6638; - this.xml_namespace_el(); + this.state = 6592; + this.xmlNamespaceEle(); } } - this.state = 6643; + this.state = 6597; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 6644; + this.state = 6598; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 6645; + this.state = 6599; this.match(PostgreSqlParser.COMMA); } break; } - this.state = 6649; + this.state = 6603; this.primaryExpression(0); - this.state = 6650; + this.state = 6604; this.xmlExistsArgument(); - this.state = 6651; + this.state = 6605; this.match(PostgreSqlParser.KW_COLUMNS); - this.state = 6652; + this.state = 6606; this.xmlTableColumnEl(); - this.state = 6657; + this.state = 6611; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 6653; + this.state = 6607; this.match(PostgreSqlParser.COMMA); - this.state = 6654; + this.state = 6608; this.xmlTableColumnEl(); } } - this.state = 6659; + this.state = 6613; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 6660; + this.state = 6614; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -39825,14 +39612,14 @@ export class PostgreSqlParser extends SQLParserBase { } public xmlTableColumnEl(): XmlTableColumnElContext { let localContext = new XmlTableColumnElContext(this.context, this.state); - this.enterRule(localContext, 650, PostgreSqlParser.RULE_xmlTableColumnEl); + this.enterRule(localContext, 642, PostgreSqlParser.RULE_xmlTableColumnEl); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6662; + this.state = 6616; this.colId(); - this.state = 6681; + this.state = 6635; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -40251,19 +40038,19 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 6663; + this.state = 6617; this.typename(); - this.state = 6677; + this.state = 6631; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (((((_la - 53)) & ~0x1F) === 0 && ((1 << (_la - 53)) & 50331649) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 32767) !== 0) || ((((_la - 433)) & ~0x1F) === 0 && ((1 << (_la - 433)) & 4291821567) !== 0) || ((((_la - 465)) & ~0x1F) === 0 && ((1 << (_la - 465)) & 4278187359) !== 0) || ((((_la - 497)) & ~0x1F) === 0 && ((1 << (_la - 497)) & 146800319) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 6673; + this.state = 6627; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { - this.state = 6673; + this.state = 6627; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -40610,40 +40397,40 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 6666; + this.state = 6620; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 898, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 894, this.context) ) { case 1: { - this.state = 6664; + this.state = 6618; this.match(PostgreSqlParser.KW_DEFAULT); } break; case 2: { - this.state = 6665; + this.state = 6619; this.identifier(); } break; } - this.state = 6668; + this.state = 6622; this.expression(); } break; case PostgreSqlParser.KW_NOT: case PostgreSqlParser.KW_NULL: { - this.state = 6670; + this.state = 6624; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 6669; + this.state = 6623; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 6672; + this.state = 6626; this.match(PostgreSqlParser.KW_NULL); } break; @@ -40651,7 +40438,7 @@ export class PostgreSqlParser extends SQLParserBase { throw new antlr.NoViableAltException(this); } } - this.state = 6675; + this.state = 6629; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (((((_la - 53)) & ~0x1F) === 0 && ((1 << (_la - 53)) & 50331649) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 32767) !== 0) || ((((_la - 433)) & ~0x1F) === 0 && ((1 << (_la - 433)) & 4291821567) !== 0) || ((((_la - 465)) & ~0x1F) === 0 && ((1 << (_la - 465)) & 4278187359) !== 0) || ((((_la - 497)) & ~0x1F) === 0 && ((1 << (_la - 497)) & 146800319) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587); @@ -40662,9 +40449,9 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_FOR: { - this.state = 6679; + this.state = 6633; this.match(PostgreSqlParser.KW_FOR); - this.state = 6680; + this.state = 6634; this.match(PostgreSqlParser.KW_ORDINALITY); } break; @@ -40687,30 +40474,30 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public xml_namespace_el(): Xml_namespace_elContext { - let localContext = new Xml_namespace_elContext(this.context, this.state); - this.enterRule(localContext, 652, PostgreSqlParser.RULE_xml_namespace_el); + public xmlNamespaceEle(): XmlNamespaceEleContext { + let localContext = new XmlNamespaceEleContext(this.context, this.state); + this.enterRule(localContext, 644, PostgreSqlParser.RULE_xmlNamespaceEle); try { - this.state = 6689; + this.state = 6643; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 904, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 900, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6683; + this.state = 6637; this.primaryExpression(0); - this.state = 6684; + this.state = 6638; this.match(PostgreSqlParser.KW_AS); - this.state = 6685; + this.state = 6639; this.colLabel(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6687; + this.state = 6641; this.match(PostgreSqlParser.KW_DEFAULT); - this.state = 6688; + this.state = 6642; this.primaryExpression(0); } break; @@ -40732,79 +40519,79 @@ export class PostgreSqlParser extends SQLParserBase { } public typename(): TypenameContext { let localContext = new TypenameContext(this.context, this.state); - this.enterRule(localContext, 654, PostgreSqlParser.RULE_typename); + this.enterRule(localContext, 646, PostgreSqlParser.RULE_typename); let _la: number; try { let alternative: number; - this.state = 6717; + this.state = 6671; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 910, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 906, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6692; + this.state = 6646; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 415) { { - this.state = 6691; + this.state = 6645; this.match(PostgreSqlParser.KW_SETOF); } } - this.state = 6694; + this.state = 6648; this.simpleTypeName(); - this.state = 6711; + this.state = 6665; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 909, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 905, this.context) ) { case 1: { { - this.state = 6702; + this.state = 6656; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 907, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 903, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 6695; + this.state = 6649; this.match(PostgreSqlParser.OPEN_BRACKET); - this.state = 6697; + this.state = 6651; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 574) { { - this.state = 6696; + this.state = 6650; this.match(PostgreSqlParser.Integral); } } - this.state = 6699; + this.state = 6653; this.match(PostgreSqlParser.CLOSE_BRACKET); } } } - this.state = 6704; + this.state = 6658; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 907, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 903, this.context); } } } break; case 2: { - this.state = 6705; + this.state = 6659; this.match(PostgreSqlParser.KW_ARRAY); - this.state = 6709; + this.state = 6663; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 908, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 904, this.context) ) { case 1: { - this.state = 6706; + this.state = 6660; this.match(PostgreSqlParser.OPEN_BRACKET); - this.state = 6707; + this.state = 6661; this.match(PostgreSqlParser.Integral); - this.state = 6708; + this.state = 6662; this.match(PostgreSqlParser.CLOSE_BRACKET); } break; @@ -40817,11 +40604,11 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6713; - this.qualified_name(); - this.state = 6714; + this.state = 6667; + this.qualifiedName(); + this.state = 6668; this.match(PostgreSqlParser.PERCENT); - this.state = 6715; + this.state = 6669; _la = this.tokenStream.LA(1); if(!(_la === 360 || _la === 477)) { this.errorHandler.recoverInline(this); @@ -40850,33 +40637,33 @@ export class PostgreSqlParser extends SQLParserBase { } public simpleTypeName(): SimpleTypeNameContext { let localContext = new SimpleTypeNameContext(this.context, this.state); - this.enterRule(localContext, 656, PostgreSqlParser.RULE_simpleTypeName); + this.enterRule(localContext, 648, PostgreSqlParser.RULE_simpleTypeName); try { - this.state = 6734; + this.state = 6688; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 915, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 911, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 6719; - this.type_function_name(); - this.state = 6721; + this.state = 6673; + this.typeFunctionName(); + this.state = 6675; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 911, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 907, this.context) ) { case 1: { - this.state = 6720; + this.state = 6674; this.attrs(); } break; } - this.state = 6724; + this.state = 6678; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 912, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 908, this.context) ) { case 1: { - this.state = 6723; - this.execute_param_clause(); + this.state = 6677; + this.executeParamClause(); } break; } @@ -40885,27 +40672,27 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 6726; + this.state = 6680; this.constTypeName(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 6727; + this.state = 6681; this.match(PostgreSqlParser.KW_INTERVAL); - this.state = 6732; + this.state = 6686; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 914, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 910, this.context) ) { case 1: { - this.state = 6729; + this.state = 6683; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 913, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 909, this.context) ) { case 1: { - this.state = 6728; - this.opt_interval(); + this.state = 6682; + this.optInterval(); } break; } @@ -40913,8 +40700,8 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 6731; - this.opt_float(); + this.state = 6685; + this.optFloat(); } break; } @@ -40938,9 +40725,9 @@ export class PostgreSqlParser extends SQLParserBase { } public constTypeName(): ConstTypeNameContext { let localContext = new ConstTypeNameContext(this.context, this.state); - this.enterRule(localContext, 658, PostgreSqlParser.RULE_constTypeName); + this.enterRule(localContext, 650, PostgreSqlParser.RULE_constTypeName); try { - this.state = 6740; + this.state = 6694; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DOUBLE: @@ -40956,14 +40743,14 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_SMALLINT: this.enterOuterAlt(localContext, 1); { - this.state = 6736; + this.state = 6690; this.numeric(); } break; case PostgreSqlParser.KW_BIT: this.enterOuterAlt(localContext, 2); { - this.state = 6737; + this.state = 6691; this.bit(); } break; @@ -40974,7 +40761,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_VARCHAR: this.enterOuterAlt(localContext, 3); { - this.state = 6738; + this.state = 6692; this.character(); } break; @@ -40982,7 +40769,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_TIMESTAMP: this.enterOuterAlt(localContext, 4); { - this.state = 6739; + this.state = 6693; this.constDatetime(); } break; @@ -41006,59 +40793,59 @@ export class PostgreSqlParser extends SQLParserBase { } public numeric(): NumericContext { let localContext = new NumericContext(this.context, this.state); - this.enterRule(localContext, 660, PostgreSqlParser.RULE_numeric); + this.enterRule(localContext, 652, PostgreSqlParser.RULE_numeric); let _la: number; try { - this.state = 6758; + this.state = 6712; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_INT: this.enterOuterAlt(localContext, 1); { - this.state = 6742; + this.state = 6696; this.match(PostgreSqlParser.KW_INT); } break; case PostgreSqlParser.KW_INTEGER: this.enterOuterAlt(localContext, 2); { - this.state = 6743; + this.state = 6697; this.match(PostgreSqlParser.KW_INTEGER); } break; case PostgreSqlParser.KW_SMALLINT: this.enterOuterAlt(localContext, 3); { - this.state = 6744; + this.state = 6698; this.match(PostgreSqlParser.KW_SMALLINT); } break; case PostgreSqlParser.KW_BIGINT: this.enterOuterAlt(localContext, 4); { - this.state = 6745; + this.state = 6699; this.match(PostgreSqlParser.KW_BIGINT); } break; case PostgreSqlParser.KW_REAL: this.enterOuterAlt(localContext, 5); { - this.state = 6746; + this.state = 6700; this.match(PostgreSqlParser.KW_REAL); } break; case PostgreSqlParser.KW_FLOAT: this.enterOuterAlt(localContext, 6); { - this.state = 6747; + this.state = 6701; this.match(PostgreSqlParser.KW_FLOAT); - this.state = 6749; + this.state = 6703; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 917, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 913, this.context) ) { case 1: { - this.state = 6748; - this.opt_float(); + this.state = 6702; + this.optFloat(); } break; } @@ -41067,9 +40854,9 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_DOUBLE: this.enterOuterAlt(localContext, 7); { - this.state = 6751; + this.state = 6705; this.match(PostgreSqlParser.KW_DOUBLE); - this.state = 6752; + this.state = 6706; this.match(PostgreSqlParser.KW_PRECISION); } break; @@ -41078,7 +40865,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_NUMERIC: this.enterOuterAlt(localContext, 8); { - this.state = 6753; + this.state = 6707; _la = this.tokenStream.LA(1); if(!(((((_la - 394)) & ~0x1F) === 0 && ((1 << (_la - 394)) & 32771) !== 0))) { this.errorHandler.recoverInline(this); @@ -41087,13 +40874,13 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6755; + this.state = 6709; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 918, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 914, this.context) ) { case 1: { - this.state = 6754; - this.execute_param_clause(); + this.state = 6708; + this.executeParamClause(); } break; } @@ -41102,7 +40889,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_BOOLEAN: this.enterOuterAlt(localContext, 9); { - this.state = 6757; + this.state = 6711; this.match(PostgreSqlParser.KW_BOOLEAN); } break; @@ -41124,17 +40911,17 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_float(): Opt_floatContext { - let localContext = new Opt_floatContext(this.context, this.state); - this.enterRule(localContext, 662, PostgreSqlParser.RULE_opt_float); + public optFloat(): OptFloatContext { + let localContext = new OptFloatContext(this.context, this.state); + this.enterRule(localContext, 654, PostgreSqlParser.RULE_optFloat); try { this.enterOuterAlt(localContext, 1); { - this.state = 6760; + this.state = 6714; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6761; + this.state = 6715; this.match(PostgreSqlParser.Integral); - this.state = 6762; + this.state = 6716; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -41154,29 +40941,29 @@ export class PostgreSqlParser extends SQLParserBase { } public bit(): BitContext { let localContext = new BitContext(this.context, this.state); - this.enterRule(localContext, 664, PostgreSqlParser.RULE_bit); + this.enterRule(localContext, 656, PostgreSqlParser.RULE_bit); try { this.enterOuterAlt(localContext, 1); { - this.state = 6764; + this.state = 6718; this.match(PostgreSqlParser.KW_BIT); - this.state = 6766; + this.state = 6720; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 920, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 916, this.context) ) { case 1: { - this.state = 6765; + this.state = 6719; this.match(PostgreSqlParser.KW_VARYING); } break; } - this.state = 6769; + this.state = 6723; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 921, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 917, this.context) ) { case 1: { - this.state = 6768; - this.execute_param_clause(); + this.state = 6722; + this.executeParamClause(); } break; } @@ -41198,19 +40985,19 @@ export class PostgreSqlParser extends SQLParserBase { } public character(): CharacterContext { let localContext = new CharacterContext(this.context, this.state); - this.enterRule(localContext, 666, PostgreSqlParser.RULE_character); + this.enterRule(localContext, 658, PostgreSqlParser.RULE_character); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6781; + this.state = 6735; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_CHAR: case PostgreSqlParser.KW_CHARACTER: case PostgreSqlParser.KW_NCHAR: { - this.state = 6771; + this.state = 6725; _la = this.tokenStream.LA(1); if(!(((((_la - 391)) & ~0x1F) === 0 && ((1 << (_la - 391)) & 32771) !== 0))) { this.errorHandler.recoverInline(this); @@ -41219,12 +41006,12 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6773; + this.state = 6727; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 922, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 918, this.context) ) { case 1: { - this.state = 6772; + this.state = 6726; this.match(PostgreSqlParser.KW_VARYING); } break; @@ -41233,15 +41020,15 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.KW_VARCHAR: { - this.state = 6775; + this.state = 6729; this.match(PostgreSqlParser.KW_VARCHAR); } break; case PostgreSqlParser.KW_NATIONAL: { - this.state = 6776; + this.state = 6730; this.match(PostgreSqlParser.KW_NATIONAL); - this.state = 6777; + this.state = 6731; _la = this.tokenStream.LA(1); if(!(_la === 391 || _la === 392)) { this.errorHandler.recoverInline(this); @@ -41250,12 +41037,12 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6779; + this.state = 6733; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 923, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 919, this.context) ) { case 1: { - this.state = 6778; + this.state = 6732; this.match(PostgreSqlParser.KW_VARYING); } break; @@ -41265,13 +41052,13 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 6784; + this.state = 6738; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 925, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 921, this.context) ) { case 1: { - this.state = 6783; - this.opt_float(); + this.state = 6737; + this.optFloat(); } break; } @@ -41293,12 +41080,12 @@ export class PostgreSqlParser extends SQLParserBase { } public constDatetime(): ConstDatetimeContext { let localContext = new ConstDatetimeContext(this.context, this.state); - this.enterRule(localContext, 668, PostgreSqlParser.RULE_constDatetime); + this.enterRule(localContext, 660, PostgreSqlParser.RULE_constDatetime); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6786; + this.state = 6740; _la = this.tokenStream.LA(1); if(!(_la === 418 || _la === 419)) { this.errorHandler.recoverInline(this); @@ -41307,22 +41094,22 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6788; + this.state = 6742; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 926, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 922, this.context) ) { case 1: { - this.state = 6787; - this.opt_float(); + this.state = 6741; + this.optFloat(); } break; } - this.state = 6793; + this.state = 6747; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 927, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 923, this.context) ) { case 1: { - this.state = 6790; + this.state = 6744; _la = this.tokenStream.LA(1); if(!(_la === 105 || _la === 379)) { this.errorHandler.recoverInline(this); @@ -41331,9 +41118,9 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6791; + this.state = 6745; this.match(PostgreSqlParser.KW_TIME); - this.state = 6792; + this.state = 6746; this.match(PostgreSqlParser.KW_ZONE); } break; @@ -41354,40 +41141,40 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_interval(): Opt_intervalContext { - let localContext = new Opt_intervalContext(this.context, this.state); - this.enterRule(localContext, 670, PostgreSqlParser.RULE_opt_interval); + public optInterval(): OptIntervalContext { + let localContext = new OptIntervalContext(this.context, this.state); + this.enterRule(localContext, 662, PostgreSqlParser.RULE_optInterval); try { - this.state = 6824; + this.state = 6778; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_MONTH: this.enterOuterAlt(localContext, 1); { - this.state = 6795; + this.state = 6749; this.match(PostgreSqlParser.KW_MONTH); } break; case PostgreSqlParser.KW_SECOND: this.enterOuterAlt(localContext, 2); { - this.state = 6796; - this.interval_second(); + this.state = 6750; + this.intervalSecond(); } break; case PostgreSqlParser.KW_YEAR: this.enterOuterAlt(localContext, 3); { - this.state = 6797; + this.state = 6751; this.match(PostgreSqlParser.KW_YEAR); - this.state = 6800; + this.state = 6754; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 928, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 924, this.context) ) { case 1: { - this.state = 6798; + this.state = 6752; this.match(PostgreSqlParser.KW_TO); - this.state = 6799; + this.state = 6753; this.match(PostgreSqlParser.KW_MONTH); } break; @@ -41397,34 +41184,34 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_DAY: this.enterOuterAlt(localContext, 4); { - this.state = 6802; + this.state = 6756; this.match(PostgreSqlParser.KW_DAY); - this.state = 6809; + this.state = 6763; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 930, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 926, this.context) ) { case 1: { - this.state = 6803; + this.state = 6757; this.match(PostgreSqlParser.KW_TO); - this.state = 6807; + this.state = 6761; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_HOUR: { - this.state = 6804; + this.state = 6758; this.match(PostgreSqlParser.KW_HOUR); } break; case PostgreSqlParser.KW_MINUTE: { - this.state = 6805; + this.state = 6759; this.match(PostgreSqlParser.KW_MINUTE); } break; case PostgreSqlParser.KW_SECOND: { - this.state = 6806; - this.interval_second(); + this.state = 6760; + this.intervalSecond(); } break; default: @@ -41438,28 +41225,28 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_HOUR: this.enterOuterAlt(localContext, 5); { - this.state = 6811; + this.state = 6765; this.match(PostgreSqlParser.KW_HOUR); - this.state = 6817; + this.state = 6771; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 932, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 928, this.context) ) { case 1: { - this.state = 6812; + this.state = 6766; this.match(PostgreSqlParser.KW_TO); - this.state = 6815; + this.state = 6769; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_MINUTE: { - this.state = 6813; + this.state = 6767; this.match(PostgreSqlParser.KW_MINUTE); } break; case PostgreSqlParser.KW_SECOND: { - this.state = 6814; - this.interval_second(); + this.state = 6768; + this.intervalSecond(); } break; default: @@ -41473,17 +41260,17 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_MINUTE: this.enterOuterAlt(localContext, 6); { - this.state = 6819; + this.state = 6773; this.match(PostgreSqlParser.KW_MINUTE); - this.state = 6822; + this.state = 6776; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 933, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 929, this.context) ) { case 1: { - this.state = 6820; + this.state = 6774; this.match(PostgreSqlParser.KW_TO); - this.state = 6821; - this.interval_second(); + this.state = 6775; + this.intervalSecond(); } break; } @@ -41507,21 +41294,21 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public interval_second(): Interval_secondContext { - let localContext = new Interval_secondContext(this.context, this.state); - this.enterRule(localContext, 672, PostgreSqlParser.RULE_interval_second); + public intervalSecond(): IntervalSecondContext { + let localContext = new IntervalSecondContext(this.context, this.state); + this.enterRule(localContext, 664, PostgreSqlParser.RULE_intervalSecond); try { this.enterOuterAlt(localContext, 1); { - this.state = 6826; + this.state = 6780; this.match(PostgreSqlParser.KW_SECOND); - this.state = 6828; + this.state = 6782; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 935, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 931, this.context) ) { case 1: { - this.state = 6827; - this.opt_float(); + this.state = 6781; + this.optFloat(); } break; } @@ -41543,12 +41330,12 @@ export class PostgreSqlParser extends SQLParserBase { } public comparisonOperator(): ComparisonOperatorContext { let localContext = new ComparisonOperatorContext(this.context, this.state); - this.enterRule(localContext, 674, PostgreSqlParser.RULE_comparisonOperator); + this.enterRule(localContext, 666, PostgreSqlParser.RULE_comparisonOperator); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 6830; + this.state = 6784; _la = this.tokenStream.LA(1); if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 44237824) !== 0))) { this.errorHandler.recoverInline(this); @@ -41575,11 +41362,11 @@ export class PostgreSqlParser extends SQLParserBase { } public expression(): ExpressionContext { let localContext = new ExpressionContext(this.context, this.state); - this.enterRule(localContext, 676, PostgreSqlParser.RULE_expression); + this.enterRule(localContext, 668, PostgreSqlParser.RULE_expression); try { this.enterOuterAlt(localContext, 1); { - this.state = 6832; + this.state = 6786; this.booleanExpression(0); } } @@ -41609,13 +41396,13 @@ export class PostgreSqlParser extends SQLParserBase { let parentState = this.state; let localContext = new BooleanExpressionContext(this.context, parentState); let previousContext = localContext; - let _startState = 678; - this.enterRecursionRule(localContext, 678, PostgreSqlParser.RULE_booleanExpression, _p); + let _startState = 670; + this.enterRecursionRule(localContext, 670, PostgreSqlParser.RULE_booleanExpression, _p); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 6841; + this.state = 6795; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: @@ -42064,14 +41851,14 @@ export class PostgreSqlParser extends SQLParserBase { this.context = localContext; previousContext = localContext; - this.state = 6835; + this.state = 6789; (localContext as PredicatedContext)._valueExpression = this.valueExpression(0); - this.state = 6837; + this.state = 6791; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 936, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 932, this.context) ) { case 1: { - this.state = 6836; + this.state = 6790; this.predicate((localContext as PredicatedContext)._valueExpression); } break; @@ -42083,9 +41870,9 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new LogicalNotContext(localContext); this.context = localContext; previousContext = localContext; - this.state = 6839; + this.state = 6793; this.match(PostgreSqlParser.KW_NOT); - this.state = 6840; + this.state = 6794; this.booleanExpression(3); } break; @@ -42093,9 +41880,9 @@ export class PostgreSqlParser extends SQLParserBase { throw new antlr.NoViableAltException(this); } this.context!.stop = this.tokenStream.LT(-1); - this.state = 6851; + this.state = 6805; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 939, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 935, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { if (this._parseListeners != null) { @@ -42103,21 +41890,21 @@ export class PostgreSqlParser extends SQLParserBase { } previousContext = localContext; { - this.state = 6849; + this.state = 6803; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 938, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 934, this.context) ) { case 1: { localContext = new LogicalBinaryContext(new BooleanExpressionContext(parentContext, parentState)); (localContext as LogicalBinaryContext)._left = previousContext; this.pushNewRecursionContext(localContext, _startState, PostgreSqlParser.RULE_booleanExpression); - this.state = 6843; + this.state = 6797; if (!(this.precpred(this.context, 2))) { throw this.createFailedPredicateException("this.precpred(this.context, 2)"); } - this.state = 6844; + this.state = 6798; (localContext as LogicalBinaryContext)._operator = this.match(PostgreSqlParser.KW_AND); - this.state = 6845; + this.state = 6799; (localContext as LogicalBinaryContext)._right = this.booleanExpression(3); } break; @@ -42126,22 +41913,22 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new LogicalBinaryContext(new BooleanExpressionContext(parentContext, parentState)); (localContext as LogicalBinaryContext)._left = previousContext; this.pushNewRecursionContext(localContext, _startState, PostgreSqlParser.RULE_booleanExpression); - this.state = 6846; + this.state = 6800; if (!(this.precpred(this.context, 1))) { throw this.createFailedPredicateException("this.precpred(this.context, 1)"); } - this.state = 6847; + this.state = 6801; (localContext as LogicalBinaryContext)._operator = this.match(PostgreSqlParser.KW_OR); - this.state = 6848; + this.state = 6802; (localContext as LogicalBinaryContext)._right = this.booleanExpression(2); } break; } } } - this.state = 6853; + this.state = 6807; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 939, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 935, this.context); } } } @@ -42161,19 +41948,19 @@ export class PostgreSqlParser extends SQLParserBase { } public predicate(value: antlr.ParserRuleContext): PredicateContext { let localContext = new PredicateContext(this.context, this.state, value); - this.enterRule(localContext, 680, PostgreSqlParser.RULE_predicate); + this.enterRule(localContext, 672, PostgreSqlParser.RULE_predicate); let _la: number; try { - this.state = 6925; + this.state = 6879; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 951, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 947, this.context) ) { case 1: localContext = new ComparisonContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 6854; + this.state = 6808; this.comparisonOperator(); - this.state = 6855; + this.state = 6809; (localContext as ComparisonContext)._right = this.valueExpression(0); } break; @@ -42181,28 +41968,28 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new QuantifiedComparisonContext(localContext); this.enterOuterAlt(localContext, 2); { - this.state = 6857; + this.state = 6811; this.comparisonOperator(); - this.state = 6858; - this.subquery_Op(); - this.state = 6859; - this.sub_type(); - this.state = 6865; + this.state = 6812; + this.subqueryOperator(); + this.state = 6813; + this.subType(); + this.state = 6819; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 940, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 936, this.context) ) { case 1: { - this.state = 6860; - this.select_with_parens(); + this.state = 6814; + this.selectWithParens(); } break; case 2: { - this.state = 6861; + this.state = 6815; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6862; + this.state = 6816; this.expression(); - this.state = 6863; + this.state = 6817; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -42213,23 +42000,23 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new BetweenContext(localContext); this.enterOuterAlt(localContext, 3); { - this.state = 6868; + this.state = 6822; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 6867; + this.state = 6821; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 6870; + this.state = 6824; this.match(PostgreSqlParser.KW_BETWEEN); - this.state = 6871; + this.state = 6825; (localContext as BetweenContext)._lower = this.valueExpression(0); - this.state = 6872; + this.state = 6826; this.match(PostgreSqlParser.KW_AND); - this.state = 6873; + this.state = 6827; (localContext as BetweenContext)._upper = this.valueExpression(0); } break; @@ -42237,39 +42024,39 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new InListContext(localContext); this.enterOuterAlt(localContext, 4); { - this.state = 6876; + this.state = 6830; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 6875; + this.state = 6829; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 6878; + this.state = 6832; this.match(PostgreSqlParser.KW_IN); - this.state = 6879; + this.state = 6833; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6880; + this.state = 6834; this.expression(); - this.state = 6885; + this.state = 6839; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 6881; + this.state = 6835; this.match(PostgreSqlParser.COMMA); - this.state = 6882; + this.state = 6836; this.expression(); } } - this.state = 6887; + this.state = 6841; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 6888; + this.state = 6842; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -42277,69 +42064,69 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new InSubqueryContext(localContext); this.enterOuterAlt(localContext, 5); { - this.state = 6891; + this.state = 6845; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 6890; + this.state = 6844; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 6893; + this.state = 6847; this.match(PostgreSqlParser.KW_IN); - this.state = 6894; - this.select_with_parens(); + this.state = 6848; + this.selectWithParens(); } break; case 6: localContext = new LikeContext(localContext); this.enterOuterAlt(localContext, 6); { - this.state = 6896; + this.state = 6850; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 6895; + this.state = 6849; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 6906; + this.state = 6860; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_LIKE: { - this.state = 6898; + this.state = 6852; this.match(PostgreSqlParser.KW_LIKE); } break; case PostgreSqlParser.KW_ILIKE: { - this.state = 6899; + this.state = 6853; this.match(PostgreSqlParser.KW_ILIKE); } break; case PostgreSqlParser.KW_SIMILAR: { - this.state = 6900; + this.state = 6854; this.match(PostgreSqlParser.KW_SIMILAR); - this.state = 6901; + this.state = 6855; this.match(PostgreSqlParser.KW_TO); } break; case PostgreSqlParser.KW_BETWEEN: { - this.state = 6902; + this.state = 6856; this.match(PostgreSqlParser.KW_BETWEEN); - this.state = 6904; + this.state = 6858; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 91) { { - this.state = 6903; + this.state = 6857; this.match(PostgreSqlParser.KW_SYMMETRIC); } } @@ -42349,16 +42136,16 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 6908; + this.state = 6862; (localContext as LikeContext)._pattern = this.valueExpression(0); - this.state = 6911; + this.state = 6865; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 948, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 944, this.context) ) { case 1: { - this.state = 6909; + this.state = 6863; this.match(PostgreSqlParser.KW_ESCAPE); - this.state = 6910; + this.state = 6864; (localContext as LikeContext)._escape = this.valueExpression(0); } break; @@ -42369,19 +42156,19 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new NullPredicateContext(localContext); this.enterOuterAlt(localContext, 7); { - this.state = 6913; + this.state = 6867; this.match(PostgreSqlParser.KW_IS); - this.state = 6915; + this.state = 6869; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 6914; + this.state = 6868; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 6917; + this.state = 6871; this.match(PostgreSqlParser.KW_NULL); } break; @@ -42389,23 +42176,23 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new DistinctFromContext(localContext); this.enterOuterAlt(localContext, 8); { - this.state = 6918; + this.state = 6872; this.match(PostgreSqlParser.KW_IS); - this.state = 6920; + this.state = 6874; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 6919; + this.state = 6873; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 6922; + this.state = 6876; this.match(PostgreSqlParser.KW_DISTINCT); - this.state = 6923; + this.state = 6877; this.match(PostgreSqlParser.KW_FROM); - this.state = 6924; + this.state = 6878; (localContext as DistinctFromContext)._right = this.valueExpression(0); } break; @@ -42437,23 +42224,23 @@ export class PostgreSqlParser extends SQLParserBase { let parentState = this.state; let localContext = new ValueExpressionContext(this.context, parentState); let previousContext = localContext; - let _startState = 682; - this.enterRecursionRule(localContext, 682, PostgreSqlParser.RULE_valueExpression, _p); + let _startState = 674; + this.enterRecursionRule(localContext, 674, PostgreSqlParser.RULE_valueExpression, _p); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 6931; + this.state = 6885; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 952, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 948, this.context) ) { case 1: { localContext = new ValueExpressionDefaultContext(localContext); this.context = localContext; previousContext = localContext; - this.state = 6928; + this.state = 6882; this.primaryExpression(0); } break; @@ -42462,7 +42249,7 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new ArithmeticUnaryContext(localContext); this.context = localContext; previousContext = localContext; - this.state = 6929; + this.state = 6883; (localContext as ArithmeticUnaryContext)._operator = this.tokenStream.LT(1); _la = this.tokenStream.LA(1); if(!(_la === 12 || _la === 13)) { @@ -42472,15 +42259,15 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6930; + this.state = 6884; this.valueExpression(4); } break; } this.context!.stop = this.tokenStream.LT(-1); - this.state = 6949; + this.state = 6903; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 954, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 950, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { if (this._parseListeners != null) { @@ -42488,19 +42275,19 @@ export class PostgreSqlParser extends SQLParserBase { } previousContext = localContext; { - this.state = 6947; + this.state = 6901; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 953, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 949, this.context) ) { case 1: { localContext = new ArithmeticBinaryContext(new ValueExpressionContext(parentContext, parentState)); (localContext as ArithmeticBinaryContext)._left = previousContext; this.pushNewRecursionContext(localContext, _startState, PostgreSqlParser.RULE_valueExpression); - this.state = 6933; + this.state = 6887; if (!(this.precpred(this.context, 3))) { throw this.createFailedPredicateException("this.precpred(this.context, 3)"); } - this.state = 6934; + this.state = 6888; (localContext as ArithmeticBinaryContext)._operator = this.tokenStream.LT(1); _la = this.tokenStream.LA(1); if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 134234624) !== 0))) { @@ -42510,7 +42297,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6935; + this.state = 6889; (localContext as ArithmeticBinaryContext)._right = this.valueExpression(4); } break; @@ -42519,11 +42306,11 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new ArithmeticBinaryContext(new ValueExpressionContext(parentContext, parentState)); (localContext as ArithmeticBinaryContext)._left = previousContext; this.pushNewRecursionContext(localContext, _startState, PostgreSqlParser.RULE_valueExpression); - this.state = 6936; + this.state = 6890; if (!(this.precpred(this.context, 2))) { throw this.createFailedPredicateException("this.precpred(this.context, 2)"); } - this.state = 6937; + this.state = 6891; (localContext as ArithmeticBinaryContext)._operator = this.tokenStream.LT(1); _la = this.tokenStream.LA(1); if(!(_la === 12 || _la === 13)) { @@ -42533,7 +42320,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6938; + this.state = 6892; (localContext as ArithmeticBinaryContext)._right = this.valueExpression(3); } break; @@ -42542,13 +42329,13 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new ConcatenationContext(new ValueExpressionContext(parentContext, parentState)); (localContext as ConcatenationContext)._left = previousContext; this.pushNewRecursionContext(localContext, _startState, PostgreSqlParser.RULE_valueExpression); - this.state = 6939; + this.state = 6893; if (!(this.precpred(this.context, 1))) { throw this.createFailedPredicateException("this.precpred(this.context, 1)"); } - this.state = 6940; + this.state = 6894; this.match(PostgreSqlParser.CARET); - this.state = 6941; + this.state = 6895; (localContext as ConcatenationContext)._right = this.valueExpression(2); } break; @@ -42556,26 +42343,26 @@ export class PostgreSqlParser extends SQLParserBase { { localContext = new AtTimeZoneContext(new ValueExpressionContext(parentContext, parentState)); this.pushNewRecursionContext(localContext, _startState, PostgreSqlParser.RULE_valueExpression); - this.state = 6942; + this.state = 6896; if (!(this.precpred(this.context, 5))) { throw this.createFailedPredicateException("this.precpred(this.context, 5)"); } - this.state = 6943; + this.state = 6897; this.match(PostgreSqlParser.KW_AT); - this.state = 6944; + this.state = 6898; this.match(PostgreSqlParser.KW_TIME); - this.state = 6945; + this.state = 6899; this.match(PostgreSqlParser.KW_ZONE); - this.state = 6946; + this.state = 6900; this.expression(); } break; } } } - this.state = 6951; + this.state = 6905; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 954, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 950, this.context); } } } @@ -42605,19 +42392,19 @@ export class PostgreSqlParser extends SQLParserBase { let parentState = this.state; let localContext = new PrimaryExpressionContext(this.context, parentState); let previousContext = localContext; - let _startState = 684; - this.enterRecursionRule(localContext, 684, PostgreSqlParser.RULE_primaryExpression, _p); + let _startState = 676; + this.enterRecursionRule(localContext, 676, PostgreSqlParser.RULE_primaryExpression, _p); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 7040; + this.state = 6994; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 965, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 961, this.context) ) { case 1: { - this.state = 6953; + this.state = 6907; _la = this.tokenStream.LA(1); if(!(_la === 98 || _la === 396)) { this.errorHandler.recoverInline(this); @@ -42626,27 +42413,27 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 6954; - this.select_with_parens(); + this.state = 6908; + this.selectWithParens(); } break; case 2: { - this.state = 6955; + this.state = 6909; this.match(PostgreSqlParser.KW_ARRAY); - this.state = 6958; + this.state = 6912; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: { - this.state = 6956; - this.select_with_parens(); + this.state = 6910; + this.selectWithParens(); } break; case PostgreSqlParser.OPEN_BRACKET: { - this.state = 6957; - this.array_expr(); + this.state = 6911; + this.arrayExpr(); } break; default: @@ -42656,49 +42443,49 @@ export class PostgreSqlParser extends SQLParserBase { break; case 3: { - this.state = 6960; + this.state = 6914; this.match(PostgreSqlParser.PARAM); - this.state = 6961; - this.opt_indirection(); + this.state = 6915; + this.optIndirection(); } break; case 4: { - this.state = 6962; + this.state = 6916; this.match(PostgreSqlParser.KW_GROUPING); - this.state = 6963; - this.execute_param_clause(); + this.state = 6917; + this.executeParamClause(); } break; case 5: { - this.state = 6964; + this.state = 6918; this.match(PostgreSqlParser.Integral); } break; case 6: { - this.state = 6965; + this.state = 6919; this.match(PostgreSqlParser.Numeric); } break; case 7: { - this.state = 6966; + this.state = 6920; this.match(PostgreSqlParser.BinaryStringConstant); } break; case 8: { - this.state = 6967; + this.state = 6921; this.match(PostgreSqlParser.HexadecimalStringConstant); } break; case 9: { - this.state = 6968; - this.function_name(); - this.state = 6978; + this.state = 6922; + this.functionName(); + this.state = 6932; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.StringConstant: @@ -42706,29 +42493,29 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.BeginDollarStringConstant: case PostgreSqlParser.EscapeStringConstant: { - this.state = 6969; + this.state = 6923; this.stringConst(); } break; case PostgreSqlParser.OPEN_PAREN: { - this.state = 6970; + this.state = 6924; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6971; - this.func_arg_list(); - this.state = 6973; + this.state = 6925; + this.funcArgList(); + this.state = 6927; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 83) { { - this.state = 6972; - this.sort_clause(); + this.state = 6926; + this.sortClause(); } } - this.state = 6975; + this.state = 6929; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 6976; + this.state = 6930; this.stringConst(); } break; @@ -42739,25 +42526,25 @@ export class PostgreSqlParser extends SQLParserBase { break; case 10: { - this.state = 6981; + this.state = 6935; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 190 || ((((_la - 388)) & ~0x1F) === 0 && ((1 << (_la - 388)) & 3525731551) !== 0) || _la === 423) { { - this.state = 6980; + this.state = 6934; this.constTypeName(); } } - this.state = 6983; + this.state = 6937; this.stringConst(); } break; case 11: { - this.state = 6984; + this.state = 6938; this.match(PostgreSqlParser.KW_INTERVAL); - this.state = 6992; + this.state = 6946; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.StringConstant: @@ -42765,15 +42552,15 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.BeginDollarStringConstant: case PostgreSqlParser.EscapeStringConstant: { - this.state = 6985; + this.state = 6939; this.stringConst(); - this.state = 6987; + this.state = 6941; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 959, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 955, this.context) ) { case 1: { - this.state = 6986; - this.opt_interval(); + this.state = 6940; + this.optInterval(); } break; } @@ -42781,9 +42568,9 @@ export class PostgreSqlParser extends SQLParserBase { break; case PostgreSqlParser.OPEN_PAREN: { - this.state = 6989; - this.opt_float(); - this.state = 6990; + this.state = 6943; + this.optFloat(); + this.state = 6944; this.stringConst(); } break; @@ -42794,100 +42581,100 @@ export class PostgreSqlParser extends SQLParserBase { break; case 12: { - this.state = 6994; + this.state = 6948; this.match(PostgreSqlParser.KW_TRUE); } break; case 13: { - this.state = 6995; + this.state = 6949; this.match(PostgreSqlParser.KW_FALSE); } break; case 14: { - this.state = 6996; + this.state = 6950; this.match(PostgreSqlParser.KW_NULL); } break; case 15: { - this.state = 6997; + this.state = 6951; this.match(PostgreSqlParser.PLSQLVARIABLENAME); } break; case 16: { - this.state = 6998; + this.state = 6952; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 6999; + this.state = 6953; localContext._a_expr_in_parens = this.expression(); - this.state = 7000; + this.state = 6954; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 7001; - this.opt_indirection(); + this.state = 6955; + this.optIndirection(); } break; case 17: { - this.state = 7003; + this.state = 6957; this.match(PostgreSqlParser.KW_CASE); - this.state = 7005; + this.state = 6959; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 805318660) !== 0) || ((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 34074721) !== 0) || ((((_la - 75)) & ~0x1F) === 0 && ((1 << (_la - 75)) & 2174763023) !== 0) || ((((_la - 107)) & ~0x1F) === 0 && ((1 << (_la - 107)) & 4294967295) !== 0) || ((((_la - 139)) & ~0x1F) === 0 && ((1 << (_la - 139)) & 4294967295) !== 0) || ((((_la - 171)) & ~0x1F) === 0 && ((1 << (_la - 171)) & 4294967295) !== 0) || ((((_la - 203)) & ~0x1F) === 0 && ((1 << (_la - 203)) & 67108863) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3901572195) !== 0) || _la === 587) { { - this.state = 7004; + this.state = 6958; this.expression(); } } - this.state = 7008; + this.state = 6962; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 7007; + this.state = 6961; this.when_clause(); } } - this.state = 7010; + this.state = 6964; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 102); - this.state = 7014; + this.state = 6968; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 58) { { - this.state = 7012; + this.state = 6966; this.match(PostgreSqlParser.KW_ELSE); - this.state = 7013; + this.state = 6967; this.expression(); } } - this.state = 7016; + this.state = 6970; this.match(PostgreSqlParser.KW_END); } break; case 18: { - this.state = 7018; + this.state = 6972; this.func_expr(); } break; case 19: { - this.state = 7019; - this.select_with_parens(); - this.state = 7021; + this.state = 6973; + this.selectWithParens(); + this.state = 6975; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 964, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 960, this.context) ) { case 1: { - this.state = 7020; + this.state = 6974; this.indirection(); } break; @@ -42896,43 +42683,43 @@ export class PostgreSqlParser extends SQLParserBase { break; case 20: { - this.state = 7023; - this.explicit_row(); + this.state = 6977; + this.explicitRow(); } break; case 21: { - this.state = 7024; + this.state = 6978; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7025; + this.state = 6979; this.expression(); - this.state = 7026; + this.state = 6980; this.match(PostgreSqlParser.COMMA); - this.state = 7027; - this.expr_list(); - this.state = 7028; + this.state = 6981; + this.exprList(); + this.state = 6982; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case 22: { - this.state = 7030; + this.state = 6984; this.row(); - this.state = 7031; + this.state = 6985; this.match(PostgreSqlParser.KW_OVERLAPS); - this.state = 7032; + this.state = 6986; this.row(); } break; case 23: { - this.state = 7034; - this.qualified_name(); + this.state = 6988; + this.qualifiedName(); } break; case 24: { - this.state = 7035; + this.state = 6989; _la = this.tokenStream.LA(1); if(!(_la === 12 || _la === 13)) { this.errorHandler.recoverInline(this); @@ -42941,23 +42728,23 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 7036; + this.state = 6990; this.primaryExpression(5); } break; case 25: { - this.state = 7037; - this.qual_op(); - this.state = 7038; + this.state = 6991; + this.qualOp(); + this.state = 6992; this.primaryExpression(2); } break; } this.context!.stop = this.tokenStream.LT(-1); - this.state = 7069; + this.state = 7023; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 970, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 966, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { if (this._parseListeners != null) { @@ -42965,20 +42752,20 @@ export class PostgreSqlParser extends SQLParserBase { } previousContext = localContext; { - this.state = 7067; + this.state = 7021; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 969, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 965, this.context) ) { case 1: { localContext = new PrimaryExpressionContext(parentContext, parentState); this.pushNewRecursionContext(localContext, _startState, PostgreSqlParser.RULE_primaryExpression); - this.state = 7042; + this.state = 6996; if (!(this.precpred(this.context, 3))) { throw this.createFailedPredicateException("this.precpred(this.context, 3)"); } - this.state = 7043; - this.mathop(); - this.state = 7044; + this.state = 6997; + this.mathOp(); + this.state = 6998; this.primaryExpression(4); } break; @@ -42986,13 +42773,13 @@ export class PostgreSqlParser extends SQLParserBase { { localContext = new PrimaryExpressionContext(parentContext, parentState); this.pushNewRecursionContext(localContext, _startState, PostgreSqlParser.RULE_primaryExpression); - this.state = 7046; + this.state = 7000; if (!(this.precpred(this.context, 6))) { throw this.createFailedPredicateException("this.precpred(this.context, 6)"); } - this.state = 7047; + this.state = 7001; this.match(PostgreSqlParser.TYPECAST); - this.state = 7048; + this.state = 7002; this.typename(); } break; @@ -43000,18 +42787,18 @@ export class PostgreSqlParser extends SQLParserBase { { localContext = new PrimaryExpressionContext(parentContext, parentState); this.pushNewRecursionContext(localContext, _startState, PostgreSqlParser.RULE_primaryExpression); - this.state = 7049; + this.state = 7003; if (!(this.precpred(this.context, 4))) { throw this.createFailedPredicateException("this.precpred(this.context, 4)"); } - this.state = 7050; - this.qual_op(); - this.state = 7052; + this.state = 7004; + this.qualOp(); + this.state = 7006; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 966, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 962, this.context) ) { case 1: { - this.state = 7051; + this.state = 7005; this.primaryExpression(0); } break; @@ -43022,46 +42809,46 @@ export class PostgreSqlParser extends SQLParserBase { { localContext = new PrimaryExpressionContext(parentContext, parentState); this.pushNewRecursionContext(localContext, _startState, PostgreSqlParser.RULE_primaryExpression); - this.state = 7054; + this.state = 7008; if (!(this.precpred(this.context, 1))) { throw this.createFailedPredicateException("this.precpred(this.context, 1)"); } - this.state = 7055; + this.state = 7009; this.match(PostgreSqlParser.KW_IS); - this.state = 7057; + this.state = 7011; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 7056; + this.state = 7010; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 7065; + this.state = 7019; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DISTINCT: { - this.state = 7059; + this.state = 7013; this.match(PostgreSqlParser.KW_DISTINCT); - this.state = 7060; + this.state = 7014; this.match(PostgreSqlParser.KW_FROM); - this.state = 7061; + this.state = 7015; this.primaryExpression(0); } break; case PostgreSqlParser.KW_OF: { - this.state = 7062; + this.state = 7016; this.match(PostgreSqlParser.KW_OF); - this.state = 7063; - this.prep_type_clause(); + this.state = 7017; + this.prepTypeClause(); } break; case PostgreSqlParser.KW_DOCUMENT: { - this.state = 7064; + this.state = 7018; this.match(PostgreSqlParser.KW_DOCUMENT); } break; @@ -43073,9 +42860,9 @@ export class PostgreSqlParser extends SQLParserBase { } } } - this.state = 7071; + this.state = 7025; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 970, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 966, this.context); } } } @@ -43093,45 +42880,45 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_application(): Func_applicationContext { - let localContext = new Func_applicationContext(this.context, this.state); - this.enterRule(localContext, 686, PostgreSqlParser.RULE_func_application); + public funcApplication(): FuncApplicationContext { + let localContext = new FuncApplicationContext(this.context, this.state); + this.enterRule(localContext, 678, PostgreSqlParser.RULE_funcApplication); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7072; - this.function_name(); - this.state = 7073; + this.state = 7026; + this.functionName(); + this.state = 7027; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7094; + this.state = 7048; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 975, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 971, this.context) ) { case 1: { - this.state = 7074; - this.func_arg_list(); - this.state = 7078; + this.state = 7028; + this.funcArgList(); + this.state = 7032; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 7075; + this.state = 7029; this.match(PostgreSqlParser.COMMA); - this.state = 7076; + this.state = 7030; this.match(PostgreSqlParser.KW_VARIADIC); - this.state = 7077; - this.func_arg_expr(); + this.state = 7031; + this.funcArgExpr(); } } - this.state = 7081; + this.state = 7035; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 83) { { - this.state = 7080; - this.sort_clause(); + this.state = 7034; + this.sortClause(); } } @@ -43139,17 +42926,17 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 7083; + this.state = 7037; this.match(PostgreSqlParser.KW_VARIADIC); - this.state = 7084; - this.func_arg_expr(); - this.state = 7086; + this.state = 7038; + this.funcArgExpr(); + this.state = 7040; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 83) { { - this.state = 7085; - this.sort_clause(); + this.state = 7039; + this.sortClause(); } } @@ -43157,7 +42944,7 @@ export class PostgreSqlParser extends SQLParserBase { break; case 3: { - this.state = 7088; + this.state = 7042; _la = this.tokenStream.LA(1); if(!(_la === 30 || _la === 56)) { this.errorHandler.recoverInline(this); @@ -43166,15 +42953,15 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 7089; - this.func_arg_list(); - this.state = 7091; + this.state = 7043; + this.funcArgList(); + this.state = 7045; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 83) { { - this.state = 7090; - this.sort_clause(); + this.state = 7044; + this.sortClause(); } } @@ -43182,12 +42969,12 @@ export class PostgreSqlParser extends SQLParserBase { break; case 4: { - this.state = 7093; + this.state = 7047; this.match(PostgreSqlParser.STAR); } break; } - this.state = 7096; + this.state = 7050; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -43207,66 +42994,66 @@ export class PostgreSqlParser extends SQLParserBase { } public func_expr(): Func_exprContext { let localContext = new Func_exprContext(this.context, this.state); - this.enterRule(localContext, 688, PostgreSqlParser.RULE_func_expr); + this.enterRule(localContext, 680, PostgreSqlParser.RULE_func_expr); try { - this.state = 7123; + this.state = 7077; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 980, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 976, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7098; - this.func_application(); - this.state = 7105; + this.state = 7052; + this.funcApplication(); + this.state = 7059; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 976, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 972, this.context) ) { case 1: { - this.state = 7099; + this.state = 7053; this.match(PostgreSqlParser.KW_WITHIN); - this.state = 7100; + this.state = 7054; this.match(PostgreSqlParser.KW_GROUP); - this.state = 7101; + this.state = 7055; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7102; - this.sort_clause(); - this.state = 7103; + this.state = 7056; + this.sortClause(); + this.state = 7057; this.match(PostgreSqlParser.CLOSE_PAREN); } break; } - this.state = 7113; + this.state = 7067; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 977, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 973, this.context) ) { case 1: { - this.state = 7107; + this.state = 7061; this.match(PostgreSqlParser.KW_FILTER); - this.state = 7108; + this.state = 7062; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7109; + this.state = 7063; this.match(PostgreSqlParser.KW_WHERE); - this.state = 7110; + this.state = 7064; this.expression(); - this.state = 7111; + this.state = 7065; this.match(PostgreSqlParser.CLOSE_PAREN); } break; } - this.state = 7120; + this.state = 7074; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 979, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 975, this.context) ) { case 1: { - this.state = 7115; + this.state = 7069; this.match(PostgreSqlParser.KW_OVER); - this.state = 7118; + this.state = 7072; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: { - this.state = 7116; - this.window_specification(); + this.state = 7070; + this.windowSpecification(); } break; case PostgreSqlParser.KW_DEFAULT: @@ -43664,7 +43451,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 7117; + this.state = 7071; this.colId(); } break; @@ -43679,8 +43466,8 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7122; - this.func_expr_common_subexpr(); + this.state = 7076; + this.funcExprCommonSubExpr(); } break; } @@ -43699,25 +43486,25 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_expr_windowless(): Func_expr_windowlessContext { - let localContext = new Func_expr_windowlessContext(this.context, this.state); - this.enterRule(localContext, 690, PostgreSqlParser.RULE_func_expr_windowless); + public funcExprWindowless(): FuncExprWindowlessContext { + let localContext = new FuncExprWindowlessContext(this.context, this.state); + this.enterRule(localContext, 682, PostgreSqlParser.RULE_funcExprWindowless); try { - this.state = 7127; + this.state = 7081; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 981, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 977, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7125; - this.func_application(); + this.state = 7079; + this.funcApplication(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7126; - this.func_expr_common_subexpr(); + this.state = 7080; + this.funcExprCommonSubExpr(); } break; } @@ -43736,33 +43523,33 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_expr_common_subexpr(): Func_expr_common_subexprContext { - let localContext = new Func_expr_common_subexprContext(this.context, this.state); - this.enterRule(localContext, 692, PostgreSqlParser.RULE_func_expr_common_subexpr); + public funcExprCommonSubExpr(): FuncExprCommonSubExprContext { + let localContext = new FuncExprCommonSubExprContext(this.context, this.state); + this.enterRule(localContext, 684, PostgreSqlParser.RULE_funcExprCommonSubExpr); let _la: number; try { - this.state = 7303; + this.state = 7257; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_COLLATION: this.enterOuterAlt(localContext, 1); { - this.state = 7129; + this.state = 7083; this.match(PostgreSqlParser.KW_COLLATION); - this.state = 7130; + this.state = 7084; this.match(PostgreSqlParser.KW_FOR); - this.state = 7131; + this.state = 7085; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7132; + this.state = 7086; this.expression(); - this.state = 7133; + this.state = 7087; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_CURRENT_DATE: this.enterOuterAlt(localContext, 2); { - this.state = 7135; + this.state = 7089; this.match(PostgreSqlParser.KW_CURRENT_DATE); } break; @@ -43772,7 +43559,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_LOCALTIMESTAMP: this.enterOuterAlt(localContext, 3); { - this.state = 7136; + this.state = 7090; _la = this.tokenStream.LA(1); if(!(((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 100663299) !== 0))) { this.errorHandler.recoverInline(this); @@ -43781,13 +43568,13 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 7138; + this.state = 7092; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 982, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 978, this.context) ) { case 1: { - this.state = 7137; - this.opt_float(); + this.state = 7091; + this.optFloat(); } break; } @@ -43796,42 +43583,42 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_CURRENT_ROLE: this.enterOuterAlt(localContext, 4); { - this.state = 7140; + this.state = 7094; this.match(PostgreSqlParser.KW_CURRENT_ROLE); } break; case PostgreSqlParser.KW_CURRENT_USER: this.enterOuterAlt(localContext, 5); { - this.state = 7141; + this.state = 7095; this.match(PostgreSqlParser.KW_CURRENT_USER); } break; case PostgreSqlParser.KW_SESSION_USER: this.enterOuterAlt(localContext, 6); { - this.state = 7142; + this.state = 7096; this.match(PostgreSqlParser.KW_SESSION_USER); } break; case PostgreSqlParser.KW_USER: this.enterOuterAlt(localContext, 7); { - this.state = 7143; + this.state = 7097; this.match(PostgreSqlParser.KW_USER); } break; case PostgreSqlParser.KW_CURRENT_CATALOG: this.enterOuterAlt(localContext, 8); { - this.state = 7144; + this.state = 7098; this.match(PostgreSqlParser.KW_CURRENT_CATALOG); } break; case PostgreSqlParser.KW_CURRENT_SCHEMA: this.enterOuterAlt(localContext, 9); { - this.state = 7145; + this.state = 7099; this.match(PostgreSqlParser.KW_CURRENT_SCHEMA); } break; @@ -43839,7 +43626,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_TREAT: this.enterOuterAlt(localContext, 10); { - this.state = 7146; + this.state = 7100; _la = this.tokenStream.LA(1); if(!(_la === 41 || _la === 420)) { this.errorHandler.recoverInline(this); @@ -43848,162 +43635,162 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 7147; + this.state = 7101; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7148; + this.state = 7102; this.expression(); - this.state = 7149; + this.state = 7103; this.match(PostgreSqlParser.KW_AS); - this.state = 7150; + this.state = 7104; this.typename(); - this.state = 7151; + this.state = 7105; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_EXTRACT: this.enterOuterAlt(localContext, 11); { - this.state = 7153; + this.state = 7107; this.match(PostgreSqlParser.KW_EXTRACT); - this.state = 7154; + this.state = 7108; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7159; + this.state = 7113; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 32767) !== 0) || ((((_la - 433)) & ~0x1F) === 0 && ((1 << (_la - 433)) & 4291821567) !== 0) || ((((_la - 465)) & ~0x1F) === 0 && ((1 << (_la - 465)) & 4278187359) !== 0) || ((((_la - 497)) & ~0x1F) === 0 && ((1 << (_la - 497)) & 146800319) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 7155; - this.extract_arg(); - this.state = 7156; + this.state = 7109; + this.extractArg(); + this.state = 7110; this.match(PostgreSqlParser.KW_FROM); - this.state = 7157; + this.state = 7111; this.expression(); } } - this.state = 7161; + this.state = 7115; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_NORMALIZE: this.enterOuterAlt(localContext, 12); { - this.state = 7162; + this.state = 7116; this.match(PostgreSqlParser.KW_NORMALIZE); - this.state = 7163; + this.state = 7117; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7164; + this.state = 7118; this.expression(); - this.state = 7167; + this.state = 7121; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 7165; + this.state = 7119; this.match(PostgreSqlParser.COMMA); - this.state = 7166; - this.unicode_normal_form(); + this.state = 7120; + this.unicodeNormalForm(); } } - this.state = 7169; + this.state = 7123; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_OVERLAY: this.enterOuterAlt(localContext, 13); { - this.state = 7171; + this.state = 7125; this.match(PostgreSqlParser.KW_OVERLAY); - this.state = 7172; + this.state = 7126; this.match(PostgreSqlParser.OPEN_PAREN); { - this.state = 7173; + this.state = 7127; this.expression(); - this.state = 7174; + this.state = 7128; this.match(PostgreSqlParser.KW_PLACING); - this.state = 7175; + this.state = 7129; this.expression(); - this.state = 7176; + this.state = 7130; this.match(PostgreSqlParser.KW_FROM); - this.state = 7177; + this.state = 7131; this.expression(); - this.state = 7180; + this.state = 7134; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 62) { { - this.state = 7178; + this.state = 7132; this.match(PostgreSqlParser.KW_FOR); - this.state = 7179; + this.state = 7133; this.expression(); } } } - this.state = 7182; + this.state = 7136; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_POSITION: this.enterOuterAlt(localContext, 14); { - this.state = 7184; + this.state = 7138; this.match(PostgreSqlParser.KW_POSITION); - this.state = 7185; + this.state = 7139; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7190; + this.state = 7144; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 805318660) !== 0) || ((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 34074721) !== 0) || ((((_la - 75)) & ~0x1F) === 0 && ((1 << (_la - 75)) & 2174763019) !== 0) || ((((_la - 107)) & ~0x1F) === 0 && ((1 << (_la - 107)) & 4294967295) !== 0) || ((((_la - 139)) & ~0x1F) === 0 && ((1 << (_la - 139)) & 4294967295) !== 0) || ((((_la - 171)) & ~0x1F) === 0 && ((1 << (_la - 171)) & 4294967295) !== 0) || ((((_la - 203)) & ~0x1F) === 0 && ((1 << (_la - 203)) & 67108863) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3901572195) !== 0) || _la === 587) { { - this.state = 7186; + this.state = 7140; this.primaryExpression(0); - this.state = 7187; + this.state = 7141; this.match(PostgreSqlParser.KW_IN); - this.state = 7188; + this.state = 7142; this.primaryExpression(0); } } - this.state = 7192; + this.state = 7146; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_SUBSTRING: this.enterOuterAlt(localContext, 15); { - this.state = 7193; + this.state = 7147; this.match(PostgreSqlParser.KW_SUBSTRING); - this.state = 7194; + this.state = 7148; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7196; + this.state = 7150; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 805318660) !== 0) || ((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 34074721) !== 0) || ((((_la - 75)) & ~0x1F) === 0 && ((1 << (_la - 75)) & 2174763023) !== 0) || ((((_la - 107)) & ~0x1F) === 0 && ((1 << (_la - 107)) & 4294967295) !== 0) || ((((_la - 139)) & ~0x1F) === 0 && ((1 << (_la - 139)) & 4294967295) !== 0) || ((((_la - 171)) & ~0x1F) === 0 && ((1 << (_la - 171)) & 4294967295) !== 0) || ((((_la - 203)) & ~0x1F) === 0 && ((1 << (_la - 203)) & 67108863) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3901572195) !== 0) || _la === 587) { { - this.state = 7195; - this.substr_list(); + this.state = 7149; + this.substrList(); } } - this.state = 7198; + this.state = 7152; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_TRIM: this.enterOuterAlt(localContext, 16); { - this.state = 7199; + this.state = 7153; this.match(PostgreSqlParser.KW_TRIM); - this.state = 7200; + this.state = 7154; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7202; + this.state = 7156; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 39 || _la === 73 || _la === 95) { { - this.state = 7201; + this.state = 7155; _la = this.tokenStream.LA(1); if(!(_la === 39 || _la === 73 || _la === 95)) { this.errorHandler.recoverInline(this); @@ -44016,47 +43803,47 @@ export class PostgreSqlParser extends SQLParserBase { } { - this.state = 7208; + this.state = 7162; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 990, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 986, this.context) ) { case 1: { - this.state = 7205; + this.state = 7159; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 805318660) !== 0) || ((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 34074721) !== 0) || ((((_la - 75)) & ~0x1F) === 0 && ((1 << (_la - 75)) & 2174763023) !== 0) || ((((_la - 107)) & ~0x1F) === 0 && ((1 << (_la - 107)) & 4294967295) !== 0) || ((((_la - 139)) & ~0x1F) === 0 && ((1 << (_la - 139)) & 4294967295) !== 0) || ((((_la - 171)) & ~0x1F) === 0 && ((1 << (_la - 171)) & 4294967295) !== 0) || ((((_la - 203)) & ~0x1F) === 0 && ((1 << (_la - 203)) & 67108863) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3901572195) !== 0) || _la === 587) { { - this.state = 7204; + this.state = 7158; this.expression(); } } - this.state = 7207; + this.state = 7161; this.match(PostgreSqlParser.KW_FROM); } break; } - this.state = 7210; - this.expr_list(); + this.state = 7164; + this.exprList(); } - this.state = 7212; + this.state = 7166; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_NULLIF: this.enterOuterAlt(localContext, 17); { - this.state = 7214; + this.state = 7168; this.match(PostgreSqlParser.KW_NULLIF); - this.state = 7215; + this.state = 7169; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7216; + this.state = 7170; this.expression(); - this.state = 7217; + this.state = 7171; this.match(PostgreSqlParser.COMMA); - this.state = 7218; + this.state = 7172; this.expression(); - this.state = 7219; + this.state = 7173; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -44066,7 +43853,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_XMLCONCAT: this.enterOuterAlt(localContext, 18); { - this.state = 7221; + this.state = 7175; _la = this.tokenStream.LA(1); if(!(((((_la - 393)) & ~0x1F) === 0 && ((1 << (_la - 393)) & 2113) !== 0) || _la === 425)) { this.errorHandler.recoverInline(this); @@ -44075,104 +43862,104 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 7222; - this.execute_param_clause(); + this.state = 7176; + this.executeParamClause(); } break; case PostgreSqlParser.KW_XMLELEMENT: this.enterOuterAlt(localContext, 19); { - this.state = 7223; + this.state = 7177; this.match(PostgreSqlParser.KW_XMLELEMENT); - this.state = 7224; + this.state = 7178; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7225; + this.state = 7179; this.match(PostgreSqlParser.KW_NAME); - this.state = 7226; + this.state = 7180; this.colLabel(); - this.state = 7236; + this.state = 7190; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 7227; + this.state = 7181; this.match(PostgreSqlParser.COMMA); - this.state = 7234; + this.state = 7188; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 991, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 987, this.context) ) { case 1: { { - this.state = 7228; + this.state = 7182; this.match(PostgreSqlParser.KW_XMLATTRIBUTES); - this.state = 7229; + this.state = 7183; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7230; - this.xml_attribute_list(); - this.state = 7231; + this.state = 7184; + this.xmlAttributeList(); + this.state = 7185; this.match(PostgreSqlParser.CLOSE_PAREN); } } break; case 2: { - this.state = 7233; - this.expr_list(); + this.state = 7187; + this.exprList(); } break; } } } - this.state = 7238; + this.state = 7192; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_XMLEXISTS: this.enterOuterAlt(localContext, 20); { - this.state = 7240; + this.state = 7194; this.match(PostgreSqlParser.KW_XMLEXISTS); - this.state = 7241; + this.state = 7195; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7242; + this.state = 7196; this.primaryExpression(0); - this.state = 7243; + this.state = 7197; this.xmlExistsArgument(); - this.state = 7244; + this.state = 7198; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_XMLFOREST: this.enterOuterAlt(localContext, 21); { - this.state = 7246; + this.state = 7200; this.match(PostgreSqlParser.KW_XMLFOREST); - this.state = 7247; + this.state = 7201; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7248; - this.xml_attribute_list(); - this.state = 7249; + this.state = 7202; + this.xmlAttributeList(); + this.state = 7203; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_XMLPARSE: this.enterOuterAlt(localContext, 22); { - this.state = 7251; + this.state = 7205; this.match(PostgreSqlParser.KW_XMLPARSE); - this.state = 7252; + this.state = 7206; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7253; - this.document_or_content(); - this.state = 7254; + this.state = 7207; + this.documentOrContent(); + this.state = 7208; this.expression(); - this.state = 7257; + this.state = 7211; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 292 || _la === 347) { { - this.state = 7255; + this.state = 7209; _la = this.tokenStream.LA(1); if(!(_la === 292 || _la === 347)) { this.errorHandler.recoverInline(this); @@ -44181,111 +43968,111 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 7256; + this.state = 7210; this.match(PostgreSqlParser.KW_WHITESPACE); } } - this.state = 7259; + this.state = 7213; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_XMLPI: this.enterOuterAlt(localContext, 23); { - this.state = 7261; + this.state = 7215; this.match(PostgreSqlParser.KW_XMLPI); - this.state = 7262; + this.state = 7216; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7263; + this.state = 7217; this.match(PostgreSqlParser.KW_NAME); - this.state = 7264; + this.state = 7218; this.colLabel(); - this.state = 7267; + this.state = 7221; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 7265; + this.state = 7219; this.match(PostgreSqlParser.COMMA); - this.state = 7266; + this.state = 7220; this.expression(); } } - this.state = 7269; + this.state = 7223; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_XMLROOT: this.enterOuterAlt(localContext, 24); { - this.state = 7271; + this.state = 7225; this.match(PostgreSqlParser.KW_XMLROOT); - this.state = 7272; + this.state = 7226; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7273; + this.state = 7227; this.match(PostgreSqlParser.KW_XML); - this.state = 7274; + this.state = 7228; this.expression(); - this.state = 7275; + this.state = 7229; this.match(PostgreSqlParser.COMMA); - this.state = 7276; + this.state = 7230; this.match(PostgreSqlParser.KW_VERSION); - this.state = 7280; + this.state = 7234; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 995, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 991, this.context) ) { case 1: { { - this.state = 7277; + this.state = 7231; this.match(PostgreSqlParser.KW_NO); - this.state = 7278; + this.state = 7232; this.match(PostgreSqlParser.KW_VALUE); } } break; case 2: { - this.state = 7279; + this.state = 7233; this.expression(); } break; } - this.state = 7291; + this.state = 7245; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 7282; + this.state = 7236; this.match(PostgreSqlParser.COMMA); - this.state = 7283; + this.state = 7237; this.match(PostgreSqlParser.KW_STANDALONE); - this.state = 7289; + this.state = 7243; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_NO: case PostgreSqlParser.KW_VALUE: { { - this.state = 7285; + this.state = 7239; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 7284; + this.state = 7238; this.match(PostgreSqlParser.KW_NO); } } - this.state = 7287; + this.state = 7241; this.match(PostgreSqlParser.KW_VALUE); } } break; case PostgreSqlParser.KW_YES: { - this.state = 7288; + this.state = 7242; this.match(PostgreSqlParser.KW_YES); } break; @@ -44295,26 +44082,26 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 7293; + this.state = 7247; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_XMLSERIALIZE: this.enterOuterAlt(localContext, 25); { - this.state = 7295; + this.state = 7249; this.match(PostgreSqlParser.KW_XMLSERIALIZE); - this.state = 7296; + this.state = 7250; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7297; - this.document_or_content(); - this.state = 7298; + this.state = 7251; + this.documentOrContent(); + this.state = 7252; this.expression(); - this.state = 7299; + this.state = 7253; this.match(PostgreSqlParser.KW_AS); - this.state = 7300; + this.state = 7254; this.simpleTypeName(); - this.state = 7301; + this.state = 7255; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -44336,28 +44123,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public xml_attribute_list(): Xml_attribute_listContext { - let localContext = new Xml_attribute_listContext(this.context, this.state); - this.enterRule(localContext, 694, PostgreSqlParser.RULE_xml_attribute_list); + public xmlAttributeList(): XmlAttributeListContext { + let localContext = new XmlAttributeListContext(this.context, this.state); + this.enterRule(localContext, 686, PostgreSqlParser.RULE_xmlAttributeList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7305; - this.xml_attribute_el(); - this.state = 7310; + this.state = 7259; + this.xmlAttributeEl(); + this.state = 7264; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 7306; + this.state = 7260; this.match(PostgreSqlParser.COMMA); - this.state = 7307; - this.xml_attribute_el(); + this.state = 7261; + this.xmlAttributeEl(); } } - this.state = 7312; + this.state = 7266; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -44377,23 +44164,23 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public xml_attribute_el(): Xml_attribute_elContext { - let localContext = new Xml_attribute_elContext(this.context, this.state); - this.enterRule(localContext, 696, PostgreSqlParser.RULE_xml_attribute_el); + public xmlAttributeEl(): XmlAttributeElContext { + let localContext = new XmlAttributeElContext(this.context, this.state); + this.enterRule(localContext, 688, PostgreSqlParser.RULE_xmlAttributeEl); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7313; + this.state = 7267; this.expression(); - this.state = 7316; + this.state = 7270; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 7314; + this.state = 7268; this.match(PostgreSqlParser.KW_AS); - this.state = 7315; + this.state = 7269; this.colLabel(); } } @@ -44414,14 +44201,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public document_or_content(): Document_or_contentContext { - let localContext = new Document_or_contentContext(this.context, this.state); - this.enterRule(localContext, 698, PostgreSqlParser.RULE_document_or_content); + public documentOrContent(): DocumentOrContentContext { + let localContext = new DocumentOrContentContext(this.context, this.state); + this.enterRule(localContext, 690, PostgreSqlParser.RULE_documentOrContent); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7318; + this.state = 7272; _la = this.tokenStream.LA(1); if(!(_la === 166 || _la === 188)) { this.errorHandler.recoverInline(this); @@ -44448,32 +44235,32 @@ export class PostgreSqlParser extends SQLParserBase { } public xmlExistsArgument(): XmlExistsArgumentContext { let localContext = new XmlExistsArgumentContext(this.context, this.state); - this.enterRule(localContext, 700, PostgreSqlParser.RULE_xmlExistsArgument); + this.enterRule(localContext, 692, PostgreSqlParser.RULE_xmlExistsArgument); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7320; + this.state = 7274; this.match(PostgreSqlParser.KW_PASSING); - this.state = 7322; + this.state = 7276; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1002, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 998, this.context) ) { case 1: { - this.state = 7321; - this.xml_passing_mech(); + this.state = 7275; + this.xmlPassingMech(); } break; } - this.state = 7324; + this.state = 7278; this.primaryExpression(0); - this.state = 7326; + this.state = 7280; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 147) { { - this.state = 7325; - this.xml_passing_mech(); + this.state = 7279; + this.xmlPassingMech(); } } @@ -44493,16 +44280,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public xml_passing_mech(): Xml_passing_mechContext { - let localContext = new Xml_passing_mechContext(this.context, this.state); - this.enterRule(localContext, 702, PostgreSqlParser.RULE_xml_passing_mech); + public xmlPassingMech(): XmlPassingMechContext { + let localContext = new XmlPassingMechContext(this.context, this.state); + this.enterRule(localContext, 694, PostgreSqlParser.RULE_xmlPassingMech); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7328; + this.state = 7282; this.match(PostgreSqlParser.KW_BY); - this.state = 7329; + this.state = 7283; _la = this.tokenStream.LA(1); if(!(_la === 304 || _la === 450)) { this.errorHandler.recoverInline(this); @@ -44527,34 +44314,34 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public window_clause(): Window_clauseContext { - let localContext = new Window_clauseContext(this.context, this.state); - this.enterRule(localContext, 704, PostgreSqlParser.RULE_window_clause); + public windowClause(): WindowClauseContext { + let localContext = new WindowClauseContext(this.context, this.state); + this.enterRule(localContext, 696, PostgreSqlParser.RULE_windowClause); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 7331; + this.state = 7285; this.match(PostgreSqlParser.KW_WINDOW); - this.state = 7332; - this.window_definition(); - this.state = 7337; + this.state = 7286; + this.windowDefinition(); + this.state = 7291; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1004, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1000, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 7333; + this.state = 7287; this.match(PostgreSqlParser.COMMA); - this.state = 7334; - this.window_definition(); + this.state = 7288; + this.windowDefinition(); } } } - this.state = 7339; + this.state = 7293; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1004, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1000, this.context); } } } @@ -44572,18 +44359,18 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public window_definition(): Window_definitionContext { - let localContext = new Window_definitionContext(this.context, this.state); - this.enterRule(localContext, 706, PostgreSqlParser.RULE_window_definition); + public windowDefinition(): WindowDefinitionContext { + let localContext = new WindowDefinitionContext(this.context, this.state); + this.enterRule(localContext, 698, PostgreSqlParser.RULE_windowDefinition); try { this.enterOuterAlt(localContext, 1); { - this.state = 7340; + this.state = 7294; this.colId(); - this.state = 7341; + this.state = 7295; this.match(PostgreSqlParser.KW_AS); - this.state = 7342; - this.window_specification(); + this.state = 7296; + this.windowSpecification(); } } catch (re) { @@ -44602,19 +44389,19 @@ export class PostgreSqlParser extends SQLParserBase { } public over_clause(): Over_clauseContext { let localContext = new Over_clauseContext(this.context, this.state); - this.enterRule(localContext, 708, PostgreSqlParser.RULE_over_clause); + this.enterRule(localContext, 700, PostgreSqlParser.RULE_over_clause); try { this.enterOuterAlt(localContext, 1); { - this.state = 7344; + this.state = 7298; this.match(PostgreSqlParser.KW_OVER); - this.state = 7347; + this.state = 7301; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: { - this.state = 7345; - this.window_specification(); + this.state = 7299; + this.windowSpecification(); } break; case PostgreSqlParser.KW_DEFAULT: @@ -45012,7 +44799,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 7346; + this.state = 7300; this.colId(); } break; @@ -45035,60 +44822,60 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public window_specification(): Window_specificationContext { - let localContext = new Window_specificationContext(this.context, this.state); - this.enterRule(localContext, 710, PostgreSqlParser.RULE_window_specification); + public windowSpecification(): WindowSpecificationContext { + let localContext = new WindowSpecificationContext(this.context, this.state); + this.enterRule(localContext, 702, PostgreSqlParser.RULE_windowSpecification); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7349; + this.state = 7303; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7351; + this.state = 7305; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1006, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1002, this.context) ) { case 1: { - this.state = 7350; + this.state = 7304; this.colId(); } break; } - this.state = 7356; + this.state = 7310; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 285) { { - this.state = 7353; + this.state = 7307; this.match(PostgreSqlParser.KW_PARTITION); - this.state = 7354; + this.state = 7308; this.match(PostgreSqlParser.KW_BY); - this.state = 7355; - this.expr_list(); + this.state = 7309; + this.exprList(); } } - this.state = 7359; + this.state = 7313; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 83) { { - this.state = 7358; - this.sort_clause(); + this.state = 7312; + this.sortClause(); } } - this.state = 7362; + this.state = 7316; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 299 || _la === 320 || _la === 481) { { - this.state = 7361; - this.opt_frame_clause(); + this.state = 7315; + this.optFrameClause(); } } - this.state = 7364; + this.state = 7318; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -45106,14 +44893,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_frame_clause(): Opt_frame_clauseContext { - let localContext = new Opt_frame_clauseContext(this.context, this.state); - this.enterRule(localContext, 712, PostgreSqlParser.RULE_opt_frame_clause); + public optFrameClause(): OptFrameClauseContext { + let localContext = new OptFrameClauseContext(this.context, this.state); + this.enterRule(localContext, 704, PostgreSqlParser.RULE_optFrameClause); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7366; + this.state = 7320; _la = this.tokenStream.LA(1); if(!(_la === 299 || _la === 320 || _la === 481)) { this.errorHandler.recoverInline(this); @@ -45123,58 +44910,58 @@ export class PostgreSqlParser extends SQLParserBase { this.consume(); } { - this.state = 7371; + this.state = 7325; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1010, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1006, this.context) ) { case 1: { - this.state = 7367; + this.state = 7321; this.match(PostgreSqlParser.KW_BETWEEN); - this.state = 7368; - this.frame_bound(); - this.state = 7369; + this.state = 7322; + this.frameBound(); + this.state = 7323; this.match(PostgreSqlParser.KW_AND); } break; } - this.state = 7373; - this.frame_bound(); + this.state = 7327; + this.frameBound(); } - this.state = 7384; + this.state = 7338; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 199) { { - this.state = 7375; + this.state = 7329; this.match(PostgreSqlParser.KW_EXCLUDE); - this.state = 7382; + this.state = 7336; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_CURRENT: { - this.state = 7376; + this.state = 7330; this.match(PostgreSqlParser.KW_CURRENT); - this.state = 7377; + this.state = 7331; this.match(PostgreSqlParser.KW_ROW); } break; case PostgreSqlParser.KW_GROUP: { - this.state = 7378; + this.state = 7332; this.match(PostgreSqlParser.KW_GROUP); } break; case PostgreSqlParser.KW_TIES: { - this.state = 7379; + this.state = 7333; this.match(PostgreSqlParser.KW_TIES); } break; case PostgreSqlParser.KW_NO: { - this.state = 7380; + this.state = 7334; this.match(PostgreSqlParser.KW_NO); - this.state = 7381; + this.state = 7335; this.match(PostgreSqlParser.KW_OTHERS); } break; @@ -45200,34 +44987,34 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public frame_bound(): Frame_boundContext { - let localContext = new Frame_boundContext(this.context, this.state); - this.enterRule(localContext, 714, PostgreSqlParser.RULE_frame_bound); + public frameBound(): FrameBoundContext { + let localContext = new FrameBoundContext(this.context, this.state); + this.enterRule(localContext, 706, PostgreSqlParser.RULE_frameBound); let _la: number; try { - this.state = 7393; + this.state = 7347; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1014, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1010, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7388; + this.state = 7342; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1013, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1009, this.context) ) { case 1: { - this.state = 7386; + this.state = 7340; this.match(PostgreSqlParser.KW_UNBOUNDED); } break; case 2: { - this.state = 7387; + this.state = 7341; this.expression(); } break; } - this.state = 7390; + this.state = 7344; _la = this.tokenStream.LA(1); if(!(_la === 208 || _la === 289)) { this.errorHandler.recoverInline(this); @@ -45241,9 +45028,9 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7391; + this.state = 7345; this.match(PostgreSqlParser.KW_CURRENT); - this.state = 7392; + this.state = 7346; this.match(PostgreSqlParser.KW_ROW); } break; @@ -45265,30 +45052,30 @@ export class PostgreSqlParser extends SQLParserBase { } public row(): RowContext { let localContext = new RowContext(this.context, this.state); - this.enterRule(localContext, 716, PostgreSqlParser.RULE_row); + this.enterRule(localContext, 708, PostgreSqlParser.RULE_row); try { - this.state = 7402; + this.state = 7356; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ROW: this.enterOuterAlt(localContext, 1); { - this.state = 7395; - this.explicit_row(); + this.state = 7349; + this.explicitRow(); } break; case PostgreSqlParser.OPEN_PAREN: this.enterOuterAlt(localContext, 2); { - this.state = 7396; + this.state = 7350; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7397; - this.expr_list(); - this.state = 7398; + this.state = 7351; + this.exprList(); + this.state = 7352; this.match(PostgreSqlParser.COMMA); - this.state = 7399; + this.state = 7353; this.expression(); - this.state = 7400; + this.state = 7354; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -45310,28 +45097,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public explicit_row(): Explicit_rowContext { - let localContext = new Explicit_rowContext(this.context, this.state); - this.enterRule(localContext, 718, PostgreSqlParser.RULE_explicit_row); + public explicitRow(): ExplicitRowContext { + let localContext = new ExplicitRowContext(this.context, this.state); + this.enterRule(localContext, 710, PostgreSqlParser.RULE_explicitRow); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7404; + this.state = 7358; this.match(PostgreSqlParser.KW_ROW); - this.state = 7405; + this.state = 7359; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7407; + this.state = 7361; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 805318660) !== 0) || ((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 34074721) !== 0) || ((((_la - 75)) & ~0x1F) === 0 && ((1 << (_la - 75)) & 2174763023) !== 0) || ((((_la - 107)) & ~0x1F) === 0 && ((1 << (_la - 107)) & 4294967295) !== 0) || ((((_la - 139)) & ~0x1F) === 0 && ((1 << (_la - 139)) & 4294967295) !== 0) || ((((_la - 171)) & ~0x1F) === 0 && ((1 << (_la - 171)) & 4294967295) !== 0) || ((((_la - 203)) & ~0x1F) === 0 && ((1 << (_la - 203)) & 67108863) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3901572195) !== 0) || _la === 587) { { - this.state = 7406; - this.expr_list(); + this.state = 7360; + this.exprList(); } } - this.state = 7409; + this.state = 7363; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -45349,14 +45136,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public sub_type(): Sub_typeContext { - let localContext = new Sub_typeContext(this.context, this.state); - this.enterRule(localContext, 720, PostgreSqlParser.RULE_sub_type); + public subType(): SubTypeContext { + let localContext = new SubTypeContext(this.context, this.state); + this.enterRule(localContext, 712, PostgreSqlParser.RULE_subType); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7411; + this.state = 7365; _la = this.tokenStream.LA(1); if(!(_la === 30 || _la === 34 || _la === 90)) { this.errorHandler.recoverInline(this); @@ -45381,17 +45168,17 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public all_op(): All_opContext { - let localContext = new All_opContext(this.context, this.state); - this.enterRule(localContext, 722, PostgreSqlParser.RULE_all_op); + public allOp(): AllOpContext { + let localContext = new AllOpContext(this.context, this.state); + this.enterRule(localContext, 714, PostgreSqlParser.RULE_allOp); try { - this.state = 7415; + this.state = 7369; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.Operator: this.enterOuterAlt(localContext, 1); { - this.state = 7413; + this.state = 7367; this.match(PostgreSqlParser.Operator); } break; @@ -45409,8 +45196,8 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PERCENT: this.enterOuterAlt(localContext, 2); { - this.state = 7414; - this.mathop(); + this.state = 7368; + this.mathOp(); } break; default: @@ -45431,14 +45218,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public mathop(): MathopContext { - let localContext = new MathopContext(this.context, this.state); - this.enterRule(localContext, 724, PostgreSqlParser.RULE_mathop); + public mathOp(): MathOpContext { + let localContext = new MathOpContext(this.context, this.state); + this.enterRule(localContext, 716, PostgreSqlParser.RULE_mathOp); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7417; + this.state = 7371; _la = this.tokenStream.LA(1); if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 178517504) !== 0))) { this.errorHandler.recoverInline(this); @@ -45463,30 +45250,30 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public qual_op(): Qual_opContext { - let localContext = new Qual_opContext(this.context, this.state); - this.enterRule(localContext, 726, PostgreSqlParser.RULE_qual_op); + public qualOp(): QualOpContext { + let localContext = new QualOpContext(this.context, this.state); + this.enterRule(localContext, 718, PostgreSqlParser.RULE_qualOp); try { - this.state = 7425; + this.state = 7379; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.Operator: this.enterOuterAlt(localContext, 1); { - this.state = 7419; + this.state = 7373; this.match(PostgreSqlParser.Operator); } break; case PostgreSqlParser.KW_OPERATOR: this.enterOuterAlt(localContext, 2); { - this.state = 7420; + this.state = 7374; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 7421; + this.state = 7375; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7422; - this.any_operator(); - this.state = 7423; + this.state = 7376; + this.anyOperator(); + this.state = 7377; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -45508,11 +45295,11 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public qual_all_op(): Qual_all_opContext { - let localContext = new Qual_all_opContext(this.context, this.state); - this.enterRule(localContext, 728, PostgreSqlParser.RULE_qual_all_op); + public qualAllOp(): QualAllOpContext { + let localContext = new QualAllOpContext(this.context, this.state); + this.enterRule(localContext, 720, PostgreSqlParser.RULE_qualAllOp); try { - this.state = 7433; + this.state = 7387; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.STAR: @@ -45530,20 +45317,20 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.Operator: this.enterOuterAlt(localContext, 1); { - this.state = 7427; - this.all_op(); + this.state = 7381; + this.allOp(); } break; case PostgreSqlParser.KW_OPERATOR: this.enterOuterAlt(localContext, 2); { - this.state = 7428; + this.state = 7382; this.match(PostgreSqlParser.KW_OPERATOR); - this.state = 7429; + this.state = 7383; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7430; - this.any_operator(); - this.state = 7431; + this.state = 7384; + this.anyOperator(); + this.state = 7385; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -45565,12 +45352,12 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public subquery_Op(): Subquery_OpContext { - let localContext = new Subquery_OpContext(this.context, this.state); - this.enterRule(localContext, 730, PostgreSqlParser.RULE_subquery_Op); + public subqueryOperator(): SubqueryOperatorContext { + let localContext = new SubqueryOperatorContext(this.context, this.state); + this.enterRule(localContext, 722, PostgreSqlParser.RULE_subqueryOperator); let _la: number; try { - this.state = 7440; + this.state = 7394; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.STAR: @@ -45589,8 +45376,8 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_OPERATOR: this.enterOuterAlt(localContext, 1); { - this.state = 7435; - this.qual_all_op(); + this.state = 7389; + this.qualAllOp(); } break; case PostgreSqlParser.KW_NOT: @@ -45598,17 +45385,17 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_LIKE: this.enterOuterAlt(localContext, 2); { - this.state = 7437; + this.state = 7391; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 7436; + this.state = 7390; this.match(PostgreSqlParser.KW_NOT); } } - this.state = 7439; + this.state = 7393; _la = this.tokenStream.LA(1); if(!(_la === 114 || _la === 120)) { this.errorHandler.recoverInline(this); @@ -45637,32 +45424,32 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public expr_list(): Expr_listContext { - let localContext = new Expr_listContext(this.context, this.state); - this.enterRule(localContext, 732, PostgreSqlParser.RULE_expr_list); + public exprList(): ExprListContext { + let localContext = new ExprListContext(this.context, this.state); + this.enterRule(localContext, 724, PostgreSqlParser.RULE_exprList); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 7442; + this.state = 7396; this.expression(); - this.state = 7447; + this.state = 7401; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1022, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1018, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 7443; + this.state = 7397; this.match(PostgreSqlParser.COMMA); - this.state = 7444; + this.state = 7398; this.expression(); } } } - this.state = 7449; + this.state = 7403; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1022, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1018, this.context); } } } @@ -45680,22 +45467,22 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public column_expr(): Column_exprContext { - let localContext = new Column_exprContext(this.context, this.state); - this.enterRule(localContext, 734, PostgreSqlParser.RULE_column_expr); + public columnExpr(): ColumnExprContext { + let localContext = new ColumnExprContext(this.context, this.state); + this.enterRule(localContext, 726, PostgreSqlParser.RULE_columnExpr); try { - this.state = 7455; + this.state = 7409; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1023, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1019, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { { - this.state = 7450; + this.state = 7404; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7451; + this.state = 7405; this.expression(); - this.state = 7452; + this.state = 7406; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -45703,8 +45490,8 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7454; - this.column_name(); + this.state = 7408; + this.columnName(); } break; } @@ -45723,25 +45510,25 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public column_expr_no_paren(): Column_expr_no_parenContext { - let localContext = new Column_expr_no_parenContext(this.context, this.state); - this.enterRule(localContext, 736, PostgreSqlParser.RULE_column_expr_no_paren); + public columnExprNoParen(): ColumnExprNoParenContext { + let localContext = new ColumnExprNoParenContext(this.context, this.state); + this.enterRule(localContext, 728, PostgreSqlParser.RULE_columnExprNoParen); try { - this.state = 7459; + this.state = 7413; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1024, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1020, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7457; + this.state = 7411; this.expression(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7458; - this.column_name(); + this.state = 7412; + this.columnName(); } break; } @@ -45760,32 +45547,32 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_arg_list(): Func_arg_listContext { - let localContext = new Func_arg_listContext(this.context, this.state); - this.enterRule(localContext, 738, PostgreSqlParser.RULE_func_arg_list); + public funcArgList(): FuncArgListContext { + let localContext = new FuncArgListContext(this.context, this.state); + this.enterRule(localContext, 730, PostgreSqlParser.RULE_funcArgList); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 7461; - this.func_arg_expr(); - this.state = 7466; + this.state = 7415; + this.funcArgExpr(); + this.state = 7420; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1025, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1021, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 7462; + this.state = 7416; this.match(PostgreSqlParser.COMMA); - this.state = 7463; - this.func_arg_expr(); + this.state = 7417; + this.funcArgExpr(); } } } - this.state = 7468; + this.state = 7422; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1025, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1021, this.context); } } } @@ -45803,39 +45590,39 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public func_arg_expr(): Func_arg_exprContext { - let localContext = new Func_arg_exprContext(this.context, this.state); - this.enterRule(localContext, 740, PostgreSqlParser.RULE_func_arg_expr); + public funcArgExpr(): FuncArgExprContext { + let localContext = new FuncArgExprContext(this.context, this.state); + this.enterRule(localContext, 732, PostgreSqlParser.RULE_funcArgExpr); let _la: number; try { - this.state = 7476; + this.state = 7430; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1027, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1023, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7469; - this.column_name(); + this.state = 7423; + this.columnName(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7470; + this.state = 7424; this.expression(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 7471; - this.type_function_name(); - this.state = 7474; + this.state = 7425; + this.typeFunctionName(); + this.state = 7428; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 20 || _la === 22) { { - this.state = 7472; + this.state = 7426; _la = this.tokenStream.LA(1); if(!(_la === 20 || _la === 22)) { this.errorHandler.recoverInline(this); @@ -45844,7 +45631,7 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 7473; + this.state = 7427; this.expression(); } } @@ -45867,16 +45654,16 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public array_expr(): Array_exprContext { - let localContext = new Array_exprContext(this.context, this.state); - this.enterRule(localContext, 742, PostgreSqlParser.RULE_array_expr); + public arrayExpr(): ArrayExprContext { + let localContext = new ArrayExprContext(this.context, this.state); + this.enterRule(localContext, 734, PostgreSqlParser.RULE_arrayExpr); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7478; + this.state = 7432; this.match(PostgreSqlParser.OPEN_BRACKET); - this.state = 7488; + this.state = 7442; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: @@ -46322,28 +46109,28 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 7479; - this.expr_list(); + this.state = 7433; + this.exprList(); } break; case PostgreSqlParser.OPEN_BRACKET: { { - this.state = 7480; - this.array_expr(); - this.state = 7485; + this.state = 7434; + this.arrayExpr(); + this.state = 7439; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 7481; + this.state = 7435; this.match(PostgreSqlParser.COMMA); - this.state = 7482; - this.array_expr(); + this.state = 7436; + this.arrayExpr(); } } - this.state = 7487; + this.state = 7441; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -46355,7 +46142,7 @@ export class PostgreSqlParser extends SQLParserBase { default: break; } - this.state = 7490; + this.state = 7444; this.match(PostgreSqlParser.CLOSE_BRACKET); } } @@ -46373,66 +46160,66 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public extract_arg(): Extract_argContext { - let localContext = new Extract_argContext(this.context, this.state); - this.enterRule(localContext, 744, PostgreSqlParser.RULE_extract_arg); + public extractArg(): ExtractArgContext { + let localContext = new ExtractArgContext(this.context, this.state); + this.enterRule(localContext, 736, PostgreSqlParser.RULE_extractArg); try { - this.state = 7500; + this.state = 7454; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1030, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1026, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7492; + this.state = 7446; this.identifier(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7493; + this.state = 7447; this.match(PostgreSqlParser.KW_YEAR); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 7494; + this.state = 7448; this.match(PostgreSqlParser.KW_MONTH); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 7495; + this.state = 7449; this.match(PostgreSqlParser.KW_DAY); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 7496; + this.state = 7450; this.match(PostgreSqlParser.KW_HOUR); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 7497; + this.state = 7451; this.match(PostgreSqlParser.KW_MINUTE); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 7498; + this.state = 7452; this.match(PostgreSqlParser.KW_SECOND); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 7499; + this.state = 7453; this.stringConst(); } break; @@ -46452,14 +46239,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public unicode_normal_form(): Unicode_normal_formContext { - let localContext = new Unicode_normal_formContext(this.context, this.state); - this.enterRule(localContext, 746, PostgreSqlParser.RULE_unicode_normal_form); + public unicodeNormalForm(): UnicodeNormalFormContext { + let localContext = new UnicodeNormalFormContext(this.context, this.state); + this.enterRule(localContext, 738, PostgreSqlParser.RULE_unicodeNormalForm); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7502; + this.state = 7456; _la = this.tokenStream.LA(1); if(!(((((_la - 483)) & ~0x1F) === 0 && ((1 << (_la - 483)) & 15) !== 0))) { this.errorHandler.recoverInline(this); @@ -46484,31 +46271,31 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public substr_list(): Substr_listContext { - let localContext = new Substr_listContext(this.context, this.state); - this.enterRule(localContext, 748, PostgreSqlParser.RULE_substr_list); + public substrList(): SubstrListContext { + let localContext = new SubstrListContext(this.context, this.state); + this.enterRule(localContext, 740, PostgreSqlParser.RULE_substrList); let _la: number; try { - this.state = 7525; + this.state = 7479; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1033, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1029, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7504; + this.state = 7458; this.expression(); - this.state = 7505; + this.state = 7459; this.match(PostgreSqlParser.KW_FROM); - this.state = 7506; + this.state = 7460; this.expression(); - this.state = 7509; + this.state = 7463; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 62) { { - this.state = 7507; + this.state = 7461; this.match(PostgreSqlParser.KW_FOR); - this.state = 7508; + this.state = 7462; this.expression(); } } @@ -46518,20 +46305,20 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7511; + this.state = 7465; this.expression(); - this.state = 7512; + this.state = 7466; this.match(PostgreSqlParser.KW_FOR); - this.state = 7513; + this.state = 7467; this.expression(); - this.state = 7516; + this.state = 7470; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 64) { { - this.state = 7514; + this.state = 7468; this.match(PostgreSqlParser.KW_FROM); - this.state = 7515; + this.state = 7469; this.expression(); } } @@ -46541,23 +46328,23 @@ export class PostgreSqlParser extends SQLParserBase { case 3: this.enterOuterAlt(localContext, 3); { - this.state = 7518; + this.state = 7472; this.expression(); - this.state = 7519; + this.state = 7473; this.match(PostgreSqlParser.KW_SIMILAR); - this.state = 7520; + this.state = 7474; this.expression(); - this.state = 7521; + this.state = 7475; this.match(PostgreSqlParser.KW_ESCAPE); - this.state = 7522; + this.state = 7476; this.expression(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 7524; - this.expr_list(); + this.state = 7478; + this.exprList(); } break; } @@ -46578,17 +46365,17 @@ export class PostgreSqlParser extends SQLParserBase { } public when_clause(): When_clauseContext { let localContext = new When_clauseContext(this.context, this.state); - this.enterRule(localContext, 750, PostgreSqlParser.RULE_when_clause); + this.enterRule(localContext, 742, PostgreSqlParser.RULE_when_clause); try { this.enterOuterAlt(localContext, 1); { - this.state = 7527; + this.state = 7481; this.match(PostgreSqlParser.KW_WHEN); - this.state = 7528; + this.state = 7482; this.expression(); - this.state = 7529; + this.state = 7483; this.match(PostgreSqlParser.KW_THEN); - this.state = 7530; + this.state = 7484; this.expression(); } } @@ -46606,20 +46393,20 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public indirection_el(): Indirection_elContext { - let localContext = new Indirection_elContext(this.context, this.state); - this.enterRule(localContext, 752, PostgreSqlParser.RULE_indirection_el); + public indirectionEl(): IndirectionElContext { + let localContext = new IndirectionElContext(this.context, this.state); + this.enterRule(localContext, 744, PostgreSqlParser.RULE_indirectionEl); let _la: number; try { - this.state = 7549; + this.state = 7503; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.DOT: this.enterOuterAlt(localContext, 1); { - this.state = 7532; + this.state = 7486; this.match(PostgreSqlParser.DOT); - this.state = 7535; + this.state = 7489; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_ALL: @@ -47113,13 +46900,13 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 7533; + this.state = 7487; this.colLabel(); } break; case PostgreSqlParser.STAR: { - this.state = 7534; + this.state = 7488; this.match(PostgreSqlParser.STAR); } break; @@ -47131,37 +46918,37 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.OPEN_BRACKET: this.enterOuterAlt(localContext, 2); { - this.state = 7537; + this.state = 7491; this.match(PostgreSqlParser.OPEN_BRACKET); - this.state = 7546; + this.state = 7500; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1037, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1033, this.context) ) { case 1: { - this.state = 7538; + this.state = 7492; this.expression(); } break; case 2: { - this.state = 7540; + this.state = 7494; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 805318660) !== 0) || ((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 34074721) !== 0) || ((((_la - 75)) & ~0x1F) === 0 && ((1 << (_la - 75)) & 2174763023) !== 0) || ((((_la - 107)) & ~0x1F) === 0 && ((1 << (_la - 107)) & 4294967295) !== 0) || ((((_la - 139)) & ~0x1F) === 0 && ((1 << (_la - 139)) & 4294967295) !== 0) || ((((_la - 171)) & ~0x1F) === 0 && ((1 << (_la - 171)) & 4294967295) !== 0) || ((((_la - 203)) & ~0x1F) === 0 && ((1 << (_la - 203)) & 67108863) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3901572195) !== 0) || _la === 587) { { - this.state = 7539; + this.state = 7493; this.expression(); } } - this.state = 7542; + this.state = 7496; this.match(PostgreSqlParser.COLON); - this.state = 7544; + this.state = 7498; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 805318660) !== 0) || ((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 34074721) !== 0) || ((((_la - 75)) & ~0x1F) === 0 && ((1 << (_la - 75)) & 2174763023) !== 0) || ((((_la - 107)) & ~0x1F) === 0 && ((1 << (_la - 107)) & 4294967295) !== 0) || ((((_la - 139)) & ~0x1F) === 0 && ((1 << (_la - 139)) & 4294967295) !== 0) || ((((_la - 171)) & ~0x1F) === 0 && ((1 << (_la - 171)) & 4294967295) !== 0) || ((((_la - 203)) & ~0x1F) === 0 && ((1 << (_la - 203)) & 67108863) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3901572195) !== 0) || _la === 587) { { - this.state = 7543; + this.state = 7497; this.expression(); } } @@ -47169,7 +46956,7 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 7548; + this.state = 7502; this.match(PostgreSqlParser.CLOSE_BRACKET); } break; @@ -47193,12 +46980,12 @@ export class PostgreSqlParser extends SQLParserBase { } public indirection(): IndirectionContext { let localContext = new IndirectionContext(this.context, this.state); - this.enterRule(localContext, 754, PostgreSqlParser.RULE_indirection); + this.enterRule(localContext, 746, PostgreSqlParser.RULE_indirection); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 7552; + this.state = 7506; this.errorHandler.sync(this); alternative = 1; do { @@ -47206,17 +46993,17 @@ export class PostgreSqlParser extends SQLParserBase { case 1: { { - this.state = 7551; - this.indirection_el(); + this.state = 7505; + this.indirectionEl(); } } break; default: throw new antlr.NoViableAltException(this); } - this.state = 7554; + this.state = 7508; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1039, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1035, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } } @@ -47234,28 +47021,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_indirection(): Opt_indirectionContext { - let localContext = new Opt_indirectionContext(this.context, this.state); - this.enterRule(localContext, 756, PostgreSqlParser.RULE_opt_indirection); + public optIndirection(): OptIndirectionContext { + let localContext = new OptIndirectionContext(this.context, this.state); + this.enterRule(localContext, 748, PostgreSqlParser.RULE_optIndirection); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 7559; + this.state = 7513; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1040, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1036, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 7556; - this.indirection_el(); + this.state = 7510; + this.indirectionEl(); } } } - this.state = 7561; + this.state = 7515; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1040, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1036, this.context); } } } @@ -47273,32 +47060,32 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public target_list(): Target_listContext { - let localContext = new Target_listContext(this.context, this.state); - this.enterRule(localContext, 758, PostgreSqlParser.RULE_target_list); + public targetList(): TargetListContext { + let localContext = new TargetListContext(this.context, this.state); + this.enterRule(localContext, 750, PostgreSqlParser.RULE_targetList); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 7562; - this.target_el(); - this.state = 7567; + this.state = 7516; + this.targetEl(); + this.state = 7521; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1041, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1037, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 7563; + this.state = 7517; this.match(PostgreSqlParser.COMMA); - this.state = 7564; - this.target_el(); + this.state = 7518; + this.targetEl(); } } } - this.state = 7569; + this.state = 7523; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1041, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1037, this.context); } } } @@ -47316,33 +47103,33 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public target_el(): Target_elContext { - let localContext = new Target_elContext(this.context, this.state); - this.enterRule(localContext, 760, PostgreSqlParser.RULE_target_el); + public targetEl(): TargetElContext { + let localContext = new TargetElContext(this.context, this.state); + this.enterRule(localContext, 752, PostgreSqlParser.RULE_targetEl); try { - this.state = 7578; + this.state = 7532; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1043, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1039, this.context) ) { case 1: localContext = new Target_labelContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7570; - this.column_expr_no_paren(); - this.state = 7575; + this.state = 7524; + this.columnExprNoParen(); + this.state = 7529; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1042, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1038, this.context) ) { case 1: { - this.state = 7571; + this.state = 7525; this.match(PostgreSqlParser.KW_AS); - this.state = 7572; + this.state = 7526; this.colLabel(); } break; case 2: { - this.state = 7573; + this.state = 7527; this.identifier(); } break; @@ -47358,7 +47145,7 @@ export class PostgreSqlParser extends SQLParserBase { localContext = new Target_starContext(localContext); this.enterOuterAlt(localContext, 2); { - this.state = 7577; + this.state = 7531; this.match(PostgreSqlParser.STAR); } break; @@ -47378,28 +47165,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public qualified_name_list(): Qualified_name_listContext { - let localContext = new Qualified_name_listContext(this.context, this.state); - this.enterRule(localContext, 762, PostgreSqlParser.RULE_qualified_name_list); + public qualifiedNameList(): QualifiedNameListContext { + let localContext = new QualifiedNameListContext(this.context, this.state); + this.enterRule(localContext, 754, PostgreSqlParser.RULE_qualifiedNameList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7580; - this.qualified_name(); - this.state = 7585; + this.state = 7534; + this.qualifiedName(); + this.state = 7539; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 7581; + this.state = 7535; this.match(PostgreSqlParser.COMMA); - this.state = 7582; - this.qualified_name(); + this.state = 7536; + this.qualifiedName(); } } - this.state = 7587; + this.state = 7541; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -47419,28 +47206,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public table_name_list(): Table_name_listContext { - let localContext = new Table_name_listContext(this.context, this.state); - this.enterRule(localContext, 764, PostgreSqlParser.RULE_table_name_list); + public tableNameList(): TableNameListContext { + let localContext = new TableNameListContext(this.context, this.state); + this.enterRule(localContext, 756, PostgreSqlParser.RULE_tableNameList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7588; - this.table_name(); - this.state = 7593; + this.state = 7542; + this.tableName(); + this.state = 7547; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 7589; + this.state = 7543; this.match(PostgreSqlParser.COMMA); - this.state = 7590; - this.table_name(); + this.state = 7544; + this.tableName(); } } - this.state = 7595; + this.state = 7549; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -47460,28 +47247,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public schema_name_list(): Schema_name_listContext { - let localContext = new Schema_name_listContext(this.context, this.state); - this.enterRule(localContext, 766, PostgreSqlParser.RULE_schema_name_list); + public schemaNameList(): SchemaNameListContext { + let localContext = new SchemaNameListContext(this.context, this.state); + this.enterRule(localContext, 758, PostgreSqlParser.RULE_schemaNameList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7596; - this.schema_name(); - this.state = 7601; + this.state = 7550; + this.schemaName(); + this.state = 7555; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 7597; + this.state = 7551; this.match(PostgreSqlParser.COMMA); - this.state = 7598; - this.schema_name(); + this.state = 7552; + this.schemaName(); } } - this.state = 7603; + this.state = 7557; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -47501,28 +47288,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public database_nameList(): Database_nameListContext { - let localContext = new Database_nameListContext(this.context, this.state); - this.enterRule(localContext, 768, PostgreSqlParser.RULE_database_nameList); + public databaseNameList(): DatabaseNameListContext { + let localContext = new DatabaseNameListContext(this.context, this.state); + this.enterRule(localContext, 760, PostgreSqlParser.RULE_databaseNameList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7604; - this.database_name(); - this.state = 7609; + this.state = 7558; + this.databaseName(); + this.state = 7563; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 7605; + this.state = 7559; this.match(PostgreSqlParser.COMMA); - this.state = 7606; - this.database_name(); + this.state = 7560; + this.databaseName(); } } - this.state = 7611; + this.state = 7565; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -47542,15 +47329,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public tablespace_name_create(): Tablespace_name_createContext { - let localContext = new Tablespace_name_createContext(this.context, this.state); - this.enterRule(localContext, 770, PostgreSqlParser.RULE_tablespace_name_create); + public tableSpaceNameCreate(): TableSpaceNameCreateContext { + let localContext = new TableSpaceNameCreateContext(this.context, this.state); + this.enterRule(localContext, 762, PostgreSqlParser.RULE_tableSpaceNameCreate); try { - localContext = new TablespaceNameCreateContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7612; - this.qualified_name(); + this.state = 7566; + this.qualifiedName(); } } catch (re) { @@ -47567,15 +47353,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public tablespace_name(): Tablespace_nameContext { - let localContext = new Tablespace_nameContext(this.context, this.state); - this.enterRule(localContext, 772, PostgreSqlParser.RULE_tablespace_name); + public tableSpaceName(): TableSpaceNameContext { + let localContext = new TableSpaceNameContext(this.context, this.state); + this.enterRule(localContext, 764, PostgreSqlParser.RULE_tableSpaceName); try { - localContext = new TablespaceNameContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7614; - this.qualified_name(); + this.state = 7568; + this.qualifiedName(); } } catch (re) { @@ -47592,15 +47377,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public table_name_create(): Table_name_createContext { - let localContext = new Table_name_createContext(this.context, this.state); - this.enterRule(localContext, 774, PostgreSqlParser.RULE_table_name_create); + public tableNameCreate(): TableNameCreateContext { + let localContext = new TableNameCreateContext(this.context, this.state); + this.enterRule(localContext, 766, PostgreSqlParser.RULE_tableNameCreate); try { - localContext = new TableNameCreateContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7616; - this.qualified_name(); + this.state = 7570; + this.qualifiedName(); } } catch (re) { @@ -47617,15 +47401,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public table_name(): Table_nameContext { - let localContext = new Table_nameContext(this.context, this.state); - this.enterRule(localContext, 776, PostgreSqlParser.RULE_table_name); + public tableName(): TableNameContext { + let localContext = new TableNameContext(this.context, this.state); + this.enterRule(localContext, 768, PostgreSqlParser.RULE_tableName); try { - localContext = new TableNameContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7618; - this.qualified_name(); + this.state = 7572; + this.qualifiedName(); } } catch (re) { @@ -47642,15 +47425,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public view_name_create(): View_name_createContext { - let localContext = new View_name_createContext(this.context, this.state); - this.enterRule(localContext, 778, PostgreSqlParser.RULE_view_name_create); + public viewNameCreate(): ViewNameCreateContext { + let localContext = new ViewNameCreateContext(this.context, this.state); + this.enterRule(localContext, 770, PostgreSqlParser.RULE_viewNameCreate); try { - localContext = new ViewNameCreateContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7620; - this.qualified_name(); + this.state = 7574; + this.qualifiedName(); } } catch (re) { @@ -47667,15 +47449,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public view_name(): View_nameContext { - let localContext = new View_nameContext(this.context, this.state); - this.enterRule(localContext, 780, PostgreSqlParser.RULE_view_name); + public viewName(): ViewNameContext { + let localContext = new ViewNameContext(this.context, this.state); + this.enterRule(localContext, 772, PostgreSqlParser.RULE_viewName); try { - localContext = new ViewNameContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7622; - this.any_name(); + this.state = 7576; + this.anyName(); } } catch (re) { @@ -47692,20 +47473,20 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public qualified_name(): Qualified_nameContext { - let localContext = new Qualified_nameContext(this.context, this.state); - this.enterRule(localContext, 782, PostgreSqlParser.RULE_qualified_name); + public qualifiedName(): QualifiedNameContext { + let localContext = new QualifiedNameContext(this.context, this.state); + this.enterRule(localContext, 774, PostgreSqlParser.RULE_qualifiedName); try { this.enterOuterAlt(localContext, 1); { - this.state = 7624; + this.state = 7578; this.colId(); - this.state = 7626; + this.state = 7580; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1048, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1044, this.context) ) { case 1: { - this.state = 7625; + this.state = 7579; this.indirection(); } break; @@ -47726,28 +47507,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public tablespace_name_list(): Tablespace_name_listContext { - let localContext = new Tablespace_name_listContext(this.context, this.state); - this.enterRule(localContext, 784, PostgreSqlParser.RULE_tablespace_name_list); + public tableSpaceNameList(): TableSpaceNameListContext { + let localContext = new TableSpaceNameListContext(this.context, this.state); + this.enterRule(localContext, 776, PostgreSqlParser.RULE_tableSpaceNameList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7628; - this.tablespace_name(); - this.state = 7633; + this.state = 7582; + this.tableSpaceName(); + this.state = 7587; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 7629; + this.state = 7583; this.match(PostgreSqlParser.COMMA); - this.state = 7630; - this.tablespace_name(); + this.state = 7584; + this.tableSpaceName(); } } - this.state = 7635; + this.state = 7589; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -47767,28 +47548,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public name_list(): Name_listContext { - let localContext = new Name_listContext(this.context, this.state); - this.enterRule(localContext, 786, PostgreSqlParser.RULE_name_list); + public nameList(): NameListContext { + let localContext = new NameListContext(this.context, this.state); + this.enterRule(localContext, 778, PostgreSqlParser.RULE_nameList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7636; + this.state = 7590; this.colId(); - this.state = 7641; + this.state = 7595; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 7637; + this.state = 7591; this.match(PostgreSqlParser.COMMA); - this.state = 7638; + this.state = 7592; this.colId(); } } - this.state = 7643; + this.state = 7597; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -47808,15 +47589,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public database_name_create(): Database_name_createContext { - let localContext = new Database_name_createContext(this.context, this.state); - this.enterRule(localContext, 788, PostgreSqlParser.RULE_database_name_create); + public databaseNameCreate(): DatabaseNameCreateContext { + let localContext = new DatabaseNameCreateContext(this.context, this.state); + this.enterRule(localContext, 780, PostgreSqlParser.RULE_databaseNameCreate); try { - localContext = new DatabaseNameCreateContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7644; - this.any_name(); + this.state = 7598; + this.anyName(); } } catch (re) { @@ -47833,15 +47613,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public database_name(): Database_nameContext { - let localContext = new Database_nameContext(this.context, this.state); - this.enterRule(localContext, 790, PostgreSqlParser.RULE_database_name); + public databaseName(): DatabaseNameContext { + let localContext = new DatabaseNameContext(this.context, this.state); + this.enterRule(localContext, 782, PostgreSqlParser.RULE_databaseName); try { - localContext = new DatabaseNameContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7646; - this.any_name(); + this.state = 7600; + this.anyName(); } } catch (re) { @@ -47858,15 +47637,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public schema_name(): Schema_nameContext { - let localContext = new Schema_nameContext(this.context, this.state); - this.enterRule(localContext, 792, PostgreSqlParser.RULE_schema_name); + public schemaName(): SchemaNameContext { + let localContext = new SchemaNameContext(this.context, this.state); + this.enterRule(localContext, 784, PostgreSqlParser.RULE_schemaName); try { - localContext = new SchemaNameContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7648; - this.any_name(); + this.state = 7602; + this.anyName(); } } catch (re) { @@ -47883,14 +47661,13 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public routine_name_create(): Routine_name_createContext { - let localContext = new Routine_name_createContext(this.context, this.state); - this.enterRule(localContext, 794, PostgreSqlParser.RULE_routine_name_create); + public routineNameCreate(): RoutineNameCreateContext { + let localContext = new RoutineNameCreateContext(this.context, this.state); + this.enterRule(localContext, 786, PostgreSqlParser.RULE_routineNameCreate); try { - localContext = new RoutineNameCreateContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7650; + this.state = 7604; this.colId(); } } @@ -47908,14 +47685,13 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public routine_name(): Routine_nameContext { - let localContext = new Routine_nameContext(this.context, this.state); - this.enterRule(localContext, 796, PostgreSqlParser.RULE_routine_name); + public routineName(): RoutineNameContext { + let localContext = new RoutineNameContext(this.context, this.state); + this.enterRule(localContext, 788, PostgreSqlParser.RULE_routineName); try { - localContext = new RoutineNameContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7652; + this.state = 7606; this.colId(); } } @@ -47933,28 +47709,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public procedure_name(): Procedure_nameContext { - let localContext = new Procedure_nameContext(this.context, this.state); - this.enterRule(localContext, 798, PostgreSqlParser.RULE_procedure_name); + public procedureName(): ProcedureNameContext { + let localContext = new ProcedureNameContext(this.context, this.state); + this.enterRule(localContext, 790, PostgreSqlParser.RULE_procedureName); try { - this.state = 7658; + this.state = 7612; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1051, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1047, this.context) ) { case 1: - localContext = new ProcedureNameContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7654; - this.type_function_name(); + this.state = 7608; + this.typeFunctionName(); } break; case 2: - localContext = new ProcedureNameContext(localContext); this.enterOuterAlt(localContext, 2); { - this.state = 7655; + this.state = 7609; this.colId(); - this.state = 7656; + this.state = 7610; this.indirection(); } break; @@ -47974,28 +47748,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public procedure_name_create(): Procedure_name_createContext { - let localContext = new Procedure_name_createContext(this.context, this.state); - this.enterRule(localContext, 800, PostgreSqlParser.RULE_procedure_name_create); + public procedureNameCreate(): ProcedureNameCreateContext { + let localContext = new ProcedureNameCreateContext(this.context, this.state); + this.enterRule(localContext, 792, PostgreSqlParser.RULE_procedureNameCreate); try { - this.state = 7664; + this.state = 7618; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1052, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1048, this.context) ) { case 1: - localContext = new ProcedureNameCreateContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7660; - this.type_function_name(); + this.state = 7614; + this.typeFunctionName(); } break; case 2: - localContext = new ProcedureNameCreateContext(localContext); this.enterOuterAlt(localContext, 2); { - this.state = 7661; + this.state = 7615; this.colId(); - this.state = 7662; + this.state = 7616; this.indirection(); } break; @@ -48015,28 +47787,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public column_name(): Column_nameContext { - let localContext = new Column_nameContext(this.context, this.state); - this.enterRule(localContext, 802, PostgreSqlParser.RULE_column_name); + public columnName(): ColumnNameContext { + let localContext = new ColumnNameContext(this.context, this.state); + this.enterRule(localContext, 794, PostgreSqlParser.RULE_columnName); try { - this.state = 7670; + this.state = 7624; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1053, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1049, this.context) ) { case 1: - localContext = new ColumnNameContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7666; + this.state = 7620; this.colId(); - this.state = 7667; - this.opt_indirection(); + this.state = 7621; + this.optIndirection(); } break; case 2: - localContext = new ColumnNameMatchContext(localContext); this.enterOuterAlt(localContext, 2); { - this.state = 7669; + this.state = 7623; if (!(this.shouldMatchEmpty())) { throw this.createFailedPredicateException("this.shouldMatchEmpty()"); } @@ -48058,14 +47828,13 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public column_name_create(): Column_name_createContext { - let localContext = new Column_name_createContext(this.context, this.state); - this.enterRule(localContext, 804, PostgreSqlParser.RULE_column_name_create); + public columnNameCreate(): ColumnNameCreateContext { + let localContext = new ColumnNameCreateContext(this.context, this.state); + this.enterRule(localContext, 796, PostgreSqlParser.RULE_columnNameCreate); try { - localContext = new ColumnNameCreateContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7672; + this.state = 7626; this.colId(); } } @@ -48083,28 +47852,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public function_name_create(): Function_name_createContext { - let localContext = new Function_name_createContext(this.context, this.state); - this.enterRule(localContext, 806, PostgreSqlParser.RULE_function_name_create); + public functionNameCreate(): FunctionNameCreateContext { + let localContext = new FunctionNameCreateContext(this.context, this.state); + this.enterRule(localContext, 798, PostgreSqlParser.RULE_functionNameCreate); try { - this.state = 7678; + this.state = 7632; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1054, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1050, this.context) ) { case 1: - localContext = new FunctionNameCreateContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7674; - this.type_function_name(); + this.state = 7628; + this.typeFunctionName(); } break; case 2: - localContext = new FunctionNameCreateContext(localContext); this.enterOuterAlt(localContext, 2); { - this.state = 7675; + this.state = 7629; this.colId(); - this.state = 7676; + this.state = 7630; this.indirection(); } break; @@ -48124,28 +47891,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public function_name(): Function_nameContext { - let localContext = new Function_nameContext(this.context, this.state); - this.enterRule(localContext, 808, PostgreSqlParser.RULE_function_name); + public functionName(): FunctionNameContext { + let localContext = new FunctionNameContext(this.context, this.state); + this.enterRule(localContext, 800, PostgreSqlParser.RULE_functionName); try { - this.state = 7684; + this.state = 7638; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1055, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1051, this.context) ) { case 1: - localContext = new FunctionNameContext(localContext); this.enterOuterAlt(localContext, 1); { - this.state = 7680; - this.type_function_name(); + this.state = 7634; + this.typeFunctionName(); } break; case 2: - localContext = new FunctionNameContext(localContext); this.enterOuterAlt(localContext, 2); { - this.state = 7681; + this.state = 7635; this.colId(); - this.state = 7682; + this.state = 7636; this.indirection(); } break; @@ -48167,20 +47932,20 @@ export class PostgreSqlParser extends SQLParserBase { } public stringConst(): StringConstContext { let localContext = new StringConstContext(this.context, this.state); - this.enterRule(localContext, 810, PostgreSqlParser.RULE_stringConst); + this.enterRule(localContext, 802, PostgreSqlParser.RULE_stringConst); try { this.enterOuterAlt(localContext, 1); { - this.state = 7686; + this.state = 7640; this.anysconst(); - this.state = 7689; + this.state = 7643; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1056, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1052, this.context) ) { case 1: { - this.state = 7687; + this.state = 7641; this.match(PostgreSqlParser.KW_UESCAPE); - this.state = 7688; + this.state = 7642; this.anysconst(); } break; @@ -48203,53 +47968,53 @@ export class PostgreSqlParser extends SQLParserBase { } public anysconst(): AnysconstContext { let localContext = new AnysconstContext(this.context, this.state); - this.enterRule(localContext, 812, PostgreSqlParser.RULE_anysconst); + this.enterRule(localContext, 804, PostgreSqlParser.RULE_anysconst); let _la: number; try { - this.state = 7702; + this.state = 7656; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.StringConstant: this.enterOuterAlt(localContext, 1); { - this.state = 7691; + this.state = 7645; this.match(PostgreSqlParser.StringConstant); } break; case PostgreSqlParser.UnicodeEscapeStringConstant: this.enterOuterAlt(localContext, 2); { - this.state = 7692; + this.state = 7646; this.match(PostgreSqlParser.UnicodeEscapeStringConstant); } break; case PostgreSqlParser.BeginDollarStringConstant: this.enterOuterAlt(localContext, 3); { - this.state = 7693; + this.state = 7647; this.match(PostgreSqlParser.BeginDollarStringConstant); - this.state = 7697; + this.state = 7651; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 591) { { { - this.state = 7694; + this.state = 7648; this.match(PostgreSqlParser.DollarText); } } - this.state = 7699; + this.state = 7653; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 7700; + this.state = 7654; this.match(PostgreSqlParser.EndDollarStringConstant); } break; case PostgreSqlParser.EscapeStringConstant: this.enterOuterAlt(localContext, 4); { - this.state = 7701; + this.state = 7655; this.match(PostgreSqlParser.EscapeStringConstant); } break; @@ -48273,17 +48038,17 @@ export class PostgreSqlParser extends SQLParserBase { } public signedConst(): SignedConstContext { let localContext = new SignedConstContext(this.context, this.state); - this.enterRule(localContext, 814, PostgreSqlParser.RULE_signedConst); + this.enterRule(localContext, 806, PostgreSqlParser.RULE_signedConst); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7705; + this.state = 7659; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 12 || _la === 13) { { - this.state = 7704; + this.state = 7658; _la = this.tokenStream.LA(1); if(!(_la === 12 || _la === 13)) { this.errorHandler.recoverInline(this); @@ -48295,7 +48060,7 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 7707; + this.state = 7661; this.match(PostgreSqlParser.Integral); } } @@ -48315,43 +48080,43 @@ export class PostgreSqlParser extends SQLParserBase { } public roleSpec(): RoleSpecContext { let localContext = new RoleSpecContext(this.context, this.state); - this.enterRule(localContext, 816, PostgreSqlParser.RULE_roleSpec); + this.enterRule(localContext, 808, PostgreSqlParser.RULE_roleSpec); try { - this.state = 7714; + this.state = 7668; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1060, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1056, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7709; + this.state = 7663; this.nonReservedWord(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7710; + this.state = 7664; this.match(PostgreSqlParser.KW_CURRENT_USER); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 7711; + this.state = 7665; this.match(PostgreSqlParser.KW_CURRENT_ROLE); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 7712; + this.state = 7666; this.match(PostgreSqlParser.KW_SESSION_USER); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 7713; + this.state = 7667; this.match(PostgreSqlParser.KW_PUBLIC); } break; @@ -48371,28 +48136,28 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public role_list(): Role_listContext { - let localContext = new Role_listContext(this.context, this.state); - this.enterRule(localContext, 818, PostgreSqlParser.RULE_role_list); + public roleList(): RoleListContext { + let localContext = new RoleListContext(this.context, this.state); + this.enterRule(localContext, 810, PostgreSqlParser.RULE_roleList); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7716; + this.state = 7670; this.roleSpec(); - this.state = 7721; + this.state = 7675; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 7717; + this.state = 7671; this.match(PostgreSqlParser.COMMA); - this.state = 7718; + this.state = 7672; this.roleSpec(); } } - this.state = 7723; + this.state = 7677; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -48414,23 +48179,23 @@ export class PostgreSqlParser extends SQLParserBase { } public colId(): ColIdContext { let localContext = new ColIdContext(this.context, this.state); - this.enterRule(localContext, 820, PostgreSqlParser.RULE_colId); + this.enterRule(localContext, 812, PostgreSqlParser.RULE_colId); try { - this.state = 7726; + this.state = 7680; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1062, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1058, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7724; + this.state = 7678; this.identifier(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7725; - this.col_name_keyword(); + this.state = 7679; + this.colNameKeyword(); } break; } @@ -48449,25 +48214,25 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public type_function_name(): Type_function_nameContext { - let localContext = new Type_function_nameContext(this.context, this.state); - this.enterRule(localContext, 822, PostgreSqlParser.RULE_type_function_name); + public typeFunctionName(): TypeFunctionNameContext { + let localContext = new TypeFunctionNameContext(this.context, this.state); + this.enterRule(localContext, 814, PostgreSqlParser.RULE_typeFunctionName); try { - this.state = 7730; + this.state = 7684; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1063, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1059, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7728; + this.state = 7682; this.identifier(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7729; - this.type_func_name_keyword(); + this.state = 7683; + this.typeFuncNameKeyword(); } break; } @@ -48488,30 +48253,30 @@ export class PostgreSqlParser extends SQLParserBase { } public nonReservedWord(): NonReservedWordContext { let localContext = new NonReservedWordContext(this.context, this.state); - this.enterRule(localContext, 824, PostgreSqlParser.RULE_nonReservedWord); + this.enterRule(localContext, 816, PostgreSqlParser.RULE_nonReservedWord); try { - this.state = 7735; + this.state = 7689; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1064, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1060, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7732; + this.state = 7686; this.identifier(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7733; - this.col_name_keyword(); + this.state = 7687; + this.colNameKeyword(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 7734; - this.type_func_name_keyword(); + this.state = 7688; + this.typeFuncNameKeyword(); } break; } @@ -48532,37 +48297,37 @@ export class PostgreSqlParser extends SQLParserBase { } public colLabel(): ColLabelContext { let localContext = new ColLabelContext(this.context, this.state); - this.enterRule(localContext, 826, PostgreSqlParser.RULE_colLabel); + this.enterRule(localContext, 818, PostgreSqlParser.RULE_colLabel); try { - this.state = 7741; + this.state = 7695; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1065, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1061, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7737; + this.state = 7691; this.identifier(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7738; - this.col_name_keyword(); + this.state = 7692; + this.colNameKeyword(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 7739; - this.type_func_name_keyword(); + this.state = 7693; + this.typeFuncNameKeyword(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 7740; - this.reserved_keyword(); + this.state = 7694; + this.reservedKeyword(); } break; } @@ -48583,24 +48348,24 @@ export class PostgreSqlParser extends SQLParserBase { } public identifier(): IdentifierContext { let localContext = new IdentifierContext(this.context, this.state); - this.enterRule(localContext, 828, PostgreSqlParser.RULE_identifier); + this.enterRule(localContext, 820, PostgreSqlParser.RULE_identifier); try { - this.state = 7754; + this.state = 7708; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.Identifier: this.enterOuterAlt(localContext, 1); { - this.state = 7743; + this.state = 7697; this.match(PostgreSqlParser.Identifier); - this.state = 7746; + this.state = 7700; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1066, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1062, this.context) ) { case 1: { - this.state = 7744; + this.state = 7698; this.match(PostgreSqlParser.KW_UESCAPE); - this.state = 7745; + this.state = 7699; this.anysconst(); } break; @@ -48613,35 +48378,35 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: this.enterOuterAlt(localContext, 2); { - this.state = 7748; + this.state = 7702; this.stringConst(); } break; case PostgreSqlParser.QuotedIdentifier: this.enterOuterAlt(localContext, 3); { - this.state = 7749; + this.state = 7703; this.match(PostgreSqlParser.QuotedIdentifier); } break; case PostgreSqlParser.UnicodeQuotedIdentifier: this.enterOuterAlt(localContext, 4); { - this.state = 7750; + this.state = 7704; this.match(PostgreSqlParser.UnicodeQuotedIdentifier); } break; case PostgreSqlParser.PLSQLVARIABLENAME: this.enterOuterAlt(localContext, 5); { - this.state = 7751; + this.state = 7705; this.match(PostgreSqlParser.PLSQLVARIABLENAME); } break; case PostgreSqlParser.PLSQLIDENTIFIER: this.enterOuterAlt(localContext, 6); { - this.state = 7752; + this.state = 7706; this.match(PostgreSqlParser.PLSQLIDENTIFIER); } break; @@ -48981,8 +48746,8 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_BUFFER_USAGE_LIMIT: this.enterOuterAlt(localContext, 7); { - this.state = 7753; - this.unreserved_keyword(); + this.state = 7707; + this.unreservedKeyword(); } break; default: @@ -49003,14 +48768,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public unreserved_keyword(): Unreserved_keywordContext { - let localContext = new Unreserved_keywordContext(this.context, this.state); - this.enterRule(localContext, 830, PostgreSqlParser.RULE_unreserved_keyword); + public unreservedKeyword(): UnreservedKeywordContext { + let localContext = new UnreservedKeywordContext(this.context, this.state); + this.enterRule(localContext, 822, PostgreSqlParser.RULE_unreservedKeyword); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7756; + this.state = 7710; _la = this.tokenStream.LA(1); if(!(_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 32767) !== 0) || ((((_la - 433)) & ~0x1F) === 0 && ((1 << (_la - 433)) & 4291821567) !== 0) || ((((_la - 465)) & ~0x1F) === 0 && ((1 << (_la - 465)) & 4278187359) !== 0) || ((((_la - 497)) & ~0x1F) === 0 && ((1 << (_la - 497)) & 146800319) !== 0) || _la === 547 || _la === 548)) { this.errorHandler.recoverInline(this); @@ -49035,367 +48800,367 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public col_name_keyword(): Col_name_keywordContext { - let localContext = new Col_name_keywordContext(this.context, this.state); - this.enterRule(localContext, 832, PostgreSqlParser.RULE_col_name_keyword); + public colNameKeyword(): ColNameKeywordContext { + let localContext = new ColNameKeywordContext(this.context, this.state); + this.enterRule(localContext, 824, PostgreSqlParser.RULE_colNameKeyword); try { - this.state = 7809; + this.state = 7763; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1068, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1064, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7758; + this.state = 7712; this.match(PostgreSqlParser.KW_BETWEEN); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7759; + this.state = 7713; this.match(PostgreSqlParser.KW_BIGINT); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 7760; + this.state = 7714; this.bit(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 7761; + this.state = 7715; this.match(PostgreSqlParser.KW_BOOLEAN); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 7762; + this.state = 7716; this.match(PostgreSqlParser.KW_CHAR); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 7763; + this.state = 7717; this.character(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 7764; + this.state = 7718; this.match(PostgreSqlParser.KW_COALESCE); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 7765; + this.state = 7719; this.match(PostgreSqlParser.KW_DEC); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 7766; + this.state = 7720; this.match(PostgreSqlParser.KW_DECIMAL); } break; case 10: this.enterOuterAlt(localContext, 10); { - this.state = 7767; + this.state = 7721; this.match(PostgreSqlParser.KW_EXISTS); } break; case 11: this.enterOuterAlt(localContext, 11); { - this.state = 7768; + this.state = 7722; this.match(PostgreSqlParser.KW_EXTRACT); } break; case 12: this.enterOuterAlt(localContext, 12); { - this.state = 7769; + this.state = 7723; this.match(PostgreSqlParser.KW_FLOAT); } break; case 13: this.enterOuterAlt(localContext, 13); { - this.state = 7770; + this.state = 7724; this.match(PostgreSqlParser.KW_GREATEST); } break; case 14: this.enterOuterAlt(localContext, 14); { - this.state = 7771; + this.state = 7725; this.match(PostgreSqlParser.KW_GROUPING); } break; case 15: this.enterOuterAlt(localContext, 15); { - this.state = 7772; + this.state = 7726; this.match(PostgreSqlParser.KW_INOUT); } break; case 16: this.enterOuterAlt(localContext, 16); { - this.state = 7773; + this.state = 7727; this.match(PostgreSqlParser.KW_INT); } break; case 17: this.enterOuterAlt(localContext, 17); { - this.state = 7774; + this.state = 7728; this.match(PostgreSqlParser.KW_INTEGER); } break; case 18: this.enterOuterAlt(localContext, 18); { - this.state = 7775; + this.state = 7729; this.match(PostgreSqlParser.KW_INTERVAL); } break; case 19: this.enterOuterAlt(localContext, 19); { - this.state = 7776; + this.state = 7730; this.match(PostgreSqlParser.KW_LEAST); } break; case 20: this.enterOuterAlt(localContext, 20); { - this.state = 7777; + this.state = 7731; this.match(PostgreSqlParser.KW_NATIONAL); } break; case 21: this.enterOuterAlt(localContext, 21); { - this.state = 7778; + this.state = 7732; this.match(PostgreSqlParser.KW_NCHAR); } break; case 22: this.enterOuterAlt(localContext, 22); { - this.state = 7779; + this.state = 7733; this.match(PostgreSqlParser.KW_NONE); } break; case 23: this.enterOuterAlt(localContext, 23); { - this.state = 7780; + this.state = 7734; this.match(PostgreSqlParser.KW_NORMALIZE); } break; case 24: this.enterOuterAlt(localContext, 24); { - this.state = 7781; + this.state = 7735; this.match(PostgreSqlParser.KW_NULLIF); } break; case 25: this.enterOuterAlt(localContext, 25); { - this.state = 7782; + this.state = 7736; this.numeric(); } break; case 26: this.enterOuterAlt(localContext, 26); { - this.state = 7783; + this.state = 7737; this.match(PostgreSqlParser.KW_OUT); } break; case 27: this.enterOuterAlt(localContext, 27); { - this.state = 7784; + this.state = 7738; this.match(PostgreSqlParser.KW_OVERLAY); } break; case 28: this.enterOuterAlt(localContext, 28); { - this.state = 7785; + this.state = 7739; this.match(PostgreSqlParser.KW_POSITION); } break; case 29: this.enterOuterAlt(localContext, 29); { - this.state = 7786; + this.state = 7740; this.match(PostgreSqlParser.KW_PRECISION); } break; case 30: this.enterOuterAlt(localContext, 30); { - this.state = 7787; + this.state = 7741; this.match(PostgreSqlParser.KW_REAL); } break; case 31: this.enterOuterAlt(localContext, 31); { - this.state = 7788; + this.state = 7742; this.match(PostgreSqlParser.KW_ROW); } break; case 32: this.enterOuterAlt(localContext, 32); { - this.state = 7789; + this.state = 7743; this.match(PostgreSqlParser.KW_SETOF); } break; case 33: this.enterOuterAlt(localContext, 33); { - this.state = 7790; + this.state = 7744; this.match(PostgreSqlParser.KW_SMALLINT); } break; case 34: this.enterOuterAlt(localContext, 34); { - this.state = 7791; + this.state = 7745; this.match(PostgreSqlParser.KW_SUBSTRING); } break; case 35: this.enterOuterAlt(localContext, 35); { - this.state = 7792; + this.state = 7746; this.match(PostgreSqlParser.KW_TIME); } break; case 36: this.enterOuterAlt(localContext, 36); { - this.state = 7793; + this.state = 7747; this.match(PostgreSqlParser.KW_TIMESTAMP); } break; case 37: this.enterOuterAlt(localContext, 37); { - this.state = 7794; + this.state = 7748; this.match(PostgreSqlParser.KW_TREAT); } break; case 38: this.enterOuterAlt(localContext, 38); { - this.state = 7795; + this.state = 7749; this.match(PostgreSqlParser.KW_TRIM); } break; case 39: this.enterOuterAlt(localContext, 39); { - this.state = 7796; + this.state = 7750; this.match(PostgreSqlParser.KW_VALUES); } break; case 40: this.enterOuterAlt(localContext, 40); { - this.state = 7797; + this.state = 7751; this.match(PostgreSqlParser.KW_VARCHAR); } break; case 41: this.enterOuterAlt(localContext, 41); { - this.state = 7798; + this.state = 7752; this.match(PostgreSqlParser.KW_XMLATTRIBUTES); } break; case 42: this.enterOuterAlt(localContext, 42); { - this.state = 7799; + this.state = 7753; this.match(PostgreSqlParser.KW_XMLCONCAT); } break; case 43: this.enterOuterAlt(localContext, 43); { - this.state = 7800; + this.state = 7754; this.match(PostgreSqlParser.KW_XMLELEMENT); } break; case 44: this.enterOuterAlt(localContext, 44); { - this.state = 7801; + this.state = 7755; this.match(PostgreSqlParser.KW_XMLEXISTS); } break; case 45: this.enterOuterAlt(localContext, 45); { - this.state = 7802; + this.state = 7756; this.match(PostgreSqlParser.KW_XMLFOREST); } break; case 46: this.enterOuterAlt(localContext, 46); { - this.state = 7803; + this.state = 7757; this.match(PostgreSqlParser.KW_XMLNAMESPACES); } break; case 47: this.enterOuterAlt(localContext, 47); { - this.state = 7804; + this.state = 7758; this.match(PostgreSqlParser.KW_XMLPARSE); } break; case 48: this.enterOuterAlt(localContext, 48); { - this.state = 7805; + this.state = 7759; this.match(PostgreSqlParser.KW_XMLPI); } break; case 49: this.enterOuterAlt(localContext, 49); { - this.state = 7806; + this.state = 7760; this.match(PostgreSqlParser.KW_XMLROOT); } break; case 50: this.enterOuterAlt(localContext, 50); { - this.state = 7807; + this.state = 7761; this.match(PostgreSqlParser.KW_XMLSERIALIZE); } break; case 51: this.enterOuterAlt(localContext, 51); { - this.state = 7808; + this.state = 7762; this.match(PostgreSqlParser.KW_XMLTABLE); } break; @@ -49415,14 +49180,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public type_func_name_keyword(): Type_func_name_keywordContext { - let localContext = new Type_func_name_keywordContext(this.context, this.state); - this.enterRule(localContext, 834, PostgreSqlParser.RULE_type_func_name_keyword); + public typeFuncNameKeyword(): TypeFuncNameKeywordContext { + let localContext = new TypeFuncNameKeywordContext(this.context, this.state); + this.enterRule(localContext, 826, PostgreSqlParser.RULE_typeFuncNameKeyword); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7811; + this.state = 7765; _la = this.tokenStream.LA(1); if(!(((((_la - 106)) & ~0x1F) === 0 && ((1 << (_la - 106)) & 8126463) !== 0) || _la === 472)) { this.errorHandler.recoverInline(this); @@ -49447,14 +49212,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public reserved_keyword(): Reserved_keywordContext { - let localContext = new Reserved_keywordContext(this.context, this.state); - this.enterRule(localContext, 836, PostgreSqlParser.RULE_reserved_keyword); + public reservedKeyword(): ReservedKeywordContext { + let localContext = new ReservedKeywordContext(this.context, this.state); + this.enterRule(localContext, 828, PostgreSqlParser.RULE_reservedKeyword); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7813; + this.state = 7767; _la = this.tokenStream.LA(1); if(!(((((_la - 30)) & ~0x1F) === 0 && ((1 << (_la - 30)) & 4286578687) !== 0) || ((((_la - 62)) & ~0x1F) === 0 && ((1 << (_la - 62)) & 4294966783) !== 0) || ((((_la - 94)) & ~0x1F) === 0 && ((1 << (_la - 94)) & 4095) !== 0) || _la === 454)) { this.errorHandler.recoverInline(this); @@ -49479,63 +49244,63 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public pl_block(): Pl_blockContext { - let localContext = new Pl_blockContext(this.context, this.state); - this.enterRule(localContext, 838, PostgreSqlParser.RULE_pl_block); + public plBlock(): PlBlockContext { + let localContext = new PlBlockContext(this.context, this.state); + this.enterRule(localContext, 830, PostgreSqlParser.RULE_plBlock); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { { - this.state = 7816; + this.state = 7770; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 18) { { - this.state = 7815; - this.label_decl(); + this.state = 7769; + this.labelDecl(); } } - this.state = 7828; + this.state = 7782; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 178) { { - this.state = 7818; + this.state = 7772; this.match(PostgreSqlParser.KW_DECLARE); - this.state = 7826; + this.state = 7780; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1072, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1068, this.context) ) { case 1: { - this.state = 7822; + this.state = 7776; this.errorHandler.sync(this); alternative = 1; do { switch (alternative) { case 1: { - this.state = 7822; + this.state = 7776; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1070, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1066, this.context) ) { case 1: { - this.state = 7819; - this.decl_statement(); + this.state = 7773; + this.declStatement(); } break; case 2: { - this.state = 7820; + this.state = 7774; this.match(PostgreSqlParser.KW_DECLARE); } break; case 3: { - this.state = 7821; - this.label_decl(); + this.state = 7775; + this.labelDecl(); } break; } @@ -49544,9 +49309,9 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 7824; + this.state = 7778; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1071, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1067, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } break; @@ -49555,43 +49320,43 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 7830; + this.state = 7784; this.match(PostgreSqlParser.KW_BEGIN); - this.state = 7834; + this.state = 7788; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1074, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1070, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 7831; - this.proc_stmt(); + this.state = 7785; + this.procStmt(); } } } - this.state = 7836; + this.state = 7790; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1074, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1070, this.context); } - this.state = 7838; + this.state = 7792; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 517) { { - this.state = 7837; - this.exception_sect(); + this.state = 7791; + this.exceptionSect(); } } - this.state = 7840; + this.state = 7794; this.match(PostgreSqlParser.KW_END); - this.state = 7842; + this.state = 7796; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 7841; - this.any_identifier(); + this.state = 7795; + this.anyIdentifier(); } } @@ -49611,17 +49376,17 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public label_decl(): Label_declContext { - let localContext = new Label_declContext(this.context, this.state); - this.enterRule(localContext, 840, PostgreSqlParser.RULE_label_decl); + public labelDecl(): LabelDeclContext { + let localContext = new LabelDeclContext(this.context, this.state); + this.enterRule(localContext, 832, PostgreSqlParser.RULE_labelDecl); try { this.enterOuterAlt(localContext, 1); { - this.state = 7844; + this.state = 7798; this.match(PostgreSqlParser.LESS_LESS); - this.state = 7845; - this.any_identifier(); - this.state = 7846; + this.state = 7799; + this.anyIdentifier(); + this.state = 7800; this.match(PostgreSqlParser.GREATER_GREATER); } } @@ -49639,30 +49404,30 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public decl_statement(): Decl_statementContext { - let localContext = new Decl_statementContext(this.context, this.state); - this.enterRule(localContext, 842, PostgreSqlParser.RULE_decl_statement); + public declStatement(): DeclStatementContext { + let localContext = new DeclStatementContext(this.context, this.state); + this.enterRule(localContext, 834, PostgreSqlParser.RULE_declStatement); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7848; - this.any_identifier(); - this.state = 7895; + this.state = 7802; + this.anyIdentifier(); + this.state = 7849; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1087, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1083, this.context) ) { case 1: { - this.state = 7849; + this.state = 7803; this.match(PostgreSqlParser.KW_ALIAS); - this.state = 7850; + this.state = 7804; this.match(PostgreSqlParser.KW_FOR); - this.state = 7853; + this.state = 7807; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.PARAM: { - this.state = 7851; + this.state = 7805; this.match(PostgreSqlParser.PARAM); } break; @@ -50061,7 +49826,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 7852; + this.state = 7806; this.colId(); } break; @@ -50072,66 +49837,66 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 7856; + this.state = 7810; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1078, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1074, this.context) ) { case 1: { - this.state = 7855; + this.state = 7809; this.match(PostgreSqlParser.KW_CONSTANT); } break; } - this.state = 7858; + this.state = 7812; this.typename(); - this.state = 7860; + this.state = 7814; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 43) { { - this.state = 7859; - this.opt_collate_clause(); + this.state = 7813; + this.collateClause(); } } - this.state = 7864; + this.state = 7818; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 77) { { - this.state = 7862; + this.state = 7816; this.match(PostgreSqlParser.KW_NOT); - this.state = 7863; + this.state = 7817; this.match(PostgreSqlParser.KW_NULL); } } - this.state = 7871; + this.state = 7825; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 10 || _la === 20 || _la === 53) { { - this.state = 7868; + this.state = 7822; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.EQUAL: case PostgreSqlParser.COLON_EQUALS: { - this.state = 7866; - this.assign_operator(); + this.state = 7820; + this.assignOperator(); } break; case PostgreSqlParser.KW_DEFAULT: { - this.state = 7867; + this.state = 7821; this.match(PostgreSqlParser.KW_DEFAULT); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 7870; - this.sql_expression(); + this.state = 7824; + this.sqlExpression(); } } @@ -50139,59 +49904,59 @@ export class PostgreSqlParser extends SQLParserBase { break; case 3: { - this.state = 7877; + this.state = 7831; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269 || _la === 324) { { - this.state = 7874; + this.state = 7828; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 7873; + this.state = 7827; this.match(PostgreSqlParser.KW_NO); } } - this.state = 7876; + this.state = 7830; this.match(PostgreSqlParser.KW_SCROLL); } } - this.state = 7879; + this.state = 7833; this.match(PostgreSqlParser.KW_CURSOR); - this.state = 7891; + this.state = 7845; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 7880; + this.state = 7834; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7881; - this.decl_cursor_arg(); - this.state = 7886; + this.state = 7835; + this.declCursorArg(); + this.state = 7840; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 7882; + this.state = 7836; this.match(PostgreSqlParser.COMMA); - this.state = 7883; - this.decl_cursor_arg(); + this.state = 7837; + this.declCursorArg(); } } - this.state = 7888; + this.state = 7842; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 7889; + this.state = 7843; this.match(PostgreSqlParser.CLOSE_PAREN); } } - this.state = 7893; + this.state = 7847; _la = this.tokenStream.LA(1); if(!(_la === 62 || _la === 116)) { this.errorHandler.recoverInline(this); @@ -50200,12 +49965,12 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 7894; + this.state = 7848; this.selectStmt(); } break; } - this.state = 7897; + this.state = 7851; this.match(PostgreSqlParser.SEMI); } } @@ -50223,15 +49988,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public decl_cursor_arg(): Decl_cursor_argContext { - let localContext = new Decl_cursor_argContext(this.context, this.state); - this.enterRule(localContext, 844, PostgreSqlParser.RULE_decl_cursor_arg); + public declCursorArg(): DeclCursorArgContext { + let localContext = new DeclCursorArgContext(this.context, this.state); + this.enterRule(localContext, 836, PostgreSqlParser.RULE_declCursorArg); try { this.enterOuterAlt(localContext, 1); { - this.state = 7899; - this.any_identifier(); - this.state = 7900; + this.state = 7853; + this.anyIdentifier(); + this.state = 7854; this.typename(); } } @@ -50249,14 +50014,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public assign_operator(): Assign_operatorContext { - let localContext = new Assign_operatorContext(this.context, this.state); - this.enterRule(localContext, 846, PostgreSqlParser.RULE_assign_operator); + public assignOperator(): AssignOperatorContext { + let localContext = new AssignOperatorContext(this.context, this.state); + this.enterRule(localContext, 838, PostgreSqlParser.RULE_assignOperator); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7902; + this.state = 7856; _la = this.tokenStream.LA(1); if(!(_la === 10 || _la === 20)) { this.errorHandler.recoverInline(this); @@ -50281,167 +50046,167 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public proc_stmt(): Proc_stmtContext { - let localContext = new Proc_stmtContext(this.context, this.state); - this.enterRule(localContext, 848, PostgreSqlParser.RULE_proc_stmt); + public procStmt(): ProcStmtContext { + let localContext = new ProcStmtContext(this.context, this.state); + this.enterRule(localContext, 840, PostgreSqlParser.RULE_procStmt); try { - this.state = 7928; + this.state = 7882; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1088, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1084, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 7904; - this.pl_block(); - this.state = 7905; + this.state = 7858; + this.plBlock(); + this.state = 7859; this.match(PostgreSqlParser.SEMI); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 7907; - this.stmt_return(); + this.state = 7861; + this.stmtReturn(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 7908; - this.stmt_raise(); + this.state = 7862; + this.stmtRaise(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 7909; - this.stmt_assign(); + this.state = 7863; + this.stmtAssign(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 7910; - this.stmt_if(); + this.state = 7864; + this.stmtIf(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 7911; - this.stmt_case(); + this.state = 7865; + this.stmtCase(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 7912; - this.stmt_loop_while_for(); + this.state = 7866; + this.stmtLoopWhileFor(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 7913; - this.stmt_foreach_a(); + this.state = 7867; + this.stmtForeach(); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 7914; - this.stmt_exit(); + this.state = 7868; + this.stmtExit(); } break; case 10: this.enterOuterAlt(localContext, 10); { - this.state = 7915; - this.stmt_assert(); + this.state = 7869; + this.stmtAssert(); } break; case 11: this.enterOuterAlt(localContext, 11); { - this.state = 7916; - this.stmt_execsql(); + this.state = 7870; + this.stmtExecsql(); } break; case 12: this.enterOuterAlt(localContext, 12); { - this.state = 7917; - this.stmt_dynexecute(); + this.state = 7871; + this.stmtDynexecute(); } break; case 13: this.enterOuterAlt(localContext, 13); { - this.state = 7918; - this.stmt_perform(); + this.state = 7872; + this.stmtPerform(); } break; case 14: this.enterOuterAlt(localContext, 14); { - this.state = 7919; - this.stmt_call(); + this.state = 7873; + this.stmtCall(); } break; case 15: this.enterOuterAlt(localContext, 15); { - this.state = 7920; - this.stmt_getdiag(); + this.state = 7874; + this.stmtGetdiag(); } break; case 16: this.enterOuterAlt(localContext, 16); { - this.state = 7921; - this.stmt_open(); + this.state = 7875; + this.stmtOpen(); } break; case 17: this.enterOuterAlt(localContext, 17); { - this.state = 7922; - this.stmt_fetch(); + this.state = 7876; + this.stmtFetch(); } break; case 18: this.enterOuterAlt(localContext, 18); { - this.state = 7923; - this.stmt_move(); + this.state = 7877; + this.stmtMove(); } break; case 19: this.enterOuterAlt(localContext, 19); { - this.state = 7924; - this.stmt_close(); + this.state = 7878; + this.stmtClose(); } break; case 20: this.enterOuterAlt(localContext, 20); { - this.state = 7925; - this.stmt_null(); + this.state = 7879; + this.stmtNull(); } break; case 21: this.enterOuterAlt(localContext, 21); { - this.state = 7926; - this.stmt_commit_or_rollback(); + this.state = 7880; + this.stmtCommitOrRollback(); } break; case 22: this.enterOuterAlt(localContext, 22); { - this.state = 7927; - this.stmt_set(); + this.state = 7881; + this.stmtSet(); } break; } @@ -50460,17 +50225,17 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_perform(): Stmt_performContext { - let localContext = new Stmt_performContext(this.context, this.state); - this.enterRule(localContext, 850, PostgreSqlParser.RULE_stmt_perform); + public stmtPerform(): StmtPerformContext { + let localContext = new StmtPerformContext(this.context, this.state); + this.enterRule(localContext, 842, PostgreSqlParser.RULE_stmtPerform); try { this.enterOuterAlt(localContext, 1); { - this.state = 7930; + this.state = 7884; this.match(PostgreSqlParser.KW_PERFORM); - this.state = 7931; - this.sql_expression(); - this.state = 7932; + this.state = 7885; + this.sqlExpression(); + this.state = 7886; this.match(PostgreSqlParser.SEMI); } } @@ -50488,41 +50253,41 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_call(): Stmt_callContext { - let localContext = new Stmt_callContext(this.context, this.state); - this.enterRule(localContext, 852, PostgreSqlParser.RULE_stmt_call); + public stmtCall(): StmtCallContext { + let localContext = new StmtCallContext(this.context, this.state); + this.enterRule(localContext, 844, PostgreSqlParser.RULE_stmtCall); let _la: number; try { - this.state = 7953; + this.state = 7907; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_CALL: this.enterOuterAlt(localContext, 1); { - this.state = 7934; + this.state = 7888; this.match(PostgreSqlParser.KW_CALL); - this.state = 7935; - this.any_identifier(); - this.state = 7942; + this.state = 7889; + this.anyIdentifier(); + this.state = 7896; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1090, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1086, this.context) ) { case 1: { - this.state = 7936; + this.state = 7890; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7938; + this.state = 7892; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 805318660) !== 0) || ((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 34074721) !== 0) || ((((_la - 75)) & ~0x1F) === 0 && ((1 << (_la - 75)) & 2174763023) !== 0) || ((((_la - 107)) & ~0x1F) === 0 && ((1 << (_la - 107)) & 4294967295) !== 0) || ((((_la - 139)) & ~0x1F) === 0 && ((1 << (_la - 139)) & 4294967295) !== 0) || ((((_la - 171)) & ~0x1F) === 0 && ((1 << (_la - 171)) & 4294967295) !== 0) || ((((_la - 203)) & ~0x1F) === 0 && ((1 << (_la - 203)) & 67108863) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3901572195) !== 0) || _la === 587) { { - this.state = 7937; - this.expr_list(); + this.state = 7891; + this.exprList(); } } - this.state = 7940; + this.state = 7894; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 7941; + this.state = 7895; this.match(PostgreSqlParser.SEMI); } break; @@ -50532,25 +50297,25 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_DO: this.enterOuterAlt(localContext, 2); { - this.state = 7944; + this.state = 7898; this.match(PostgreSqlParser.KW_DO); - this.state = 7945; - this.any_identifier(); - this.state = 7946; + this.state = 7899; + this.anyIdentifier(); + this.state = 7900; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 7948; + this.state = 7902; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 805318660) !== 0) || ((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 34074721) !== 0) || ((((_la - 75)) & ~0x1F) === 0 && ((1 << (_la - 75)) & 2174763023) !== 0) || ((((_la - 107)) & ~0x1F) === 0 && ((1 << (_la - 107)) & 4294967295) !== 0) || ((((_la - 139)) & ~0x1F) === 0 && ((1 << (_la - 139)) & 4294967295) !== 0) || ((((_la - 171)) & ~0x1F) === 0 && ((1 << (_la - 171)) & 4294967295) !== 0) || ((((_la - 203)) & ~0x1F) === 0 && ((1 << (_la - 203)) & 67108863) !== 0) || ((((_la - 238)) & ~0x1F) === 0 && ((1 << (_la - 238)) & 4294967295) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & 4294967295) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & 4294967295) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & 4294967295) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & 4294967295) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & 4294967295) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & 4278190079) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & 4294967295) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & 1174402559) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3901572195) !== 0) || _la === 587) { { - this.state = 7947; - this.expr_list(); + this.state = 7901; + this.exprList(); } } - this.state = 7950; + this.state = 7904; this.match(PostgreSqlParser.CLOSE_PAREN); - this.state = 7951; + this.state = 7905; this.match(PostgreSqlParser.SEMI); } break; @@ -50572,19 +50337,19 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_assign(): Stmt_assignContext { - let localContext = new Stmt_assignContext(this.context, this.state); - this.enterRule(localContext, 854, PostgreSqlParser.RULE_stmt_assign); + public stmtAssign(): StmtAssignContext { + let localContext = new StmtAssignContext(this.context, this.state); + this.enterRule(localContext, 846, PostgreSqlParser.RULE_stmtAssign); try { this.enterOuterAlt(localContext, 1); { - this.state = 7955; - this.assign_var(); - this.state = 7956; - this.assign_operator(); - this.state = 7957; - this.sql_expression(); - this.state = 7958; + this.state = 7909; + this.assignVar(); + this.state = 7910; + this.assignOperator(); + this.state = 7911; + this.sqlExpression(); + this.state = 7912; this.match(PostgreSqlParser.SEMI); } } @@ -50602,21 +50367,21 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_getdiag(): Stmt_getdiagContext { - let localContext = new Stmt_getdiagContext(this.context, this.state); - this.enterRule(localContext, 856, PostgreSqlParser.RULE_stmt_getdiag); + public stmtGetdiag(): StmtGetdiagContext { + let localContext = new StmtGetdiagContext(this.context, this.state); + this.enterRule(localContext, 848, PostgreSqlParser.RULE_stmtGetdiag); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7960; + this.state = 7914; this.match(PostgreSqlParser.KW_GET); - this.state = 7962; + this.state = 7916; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 434 || _la === 501) { { - this.state = 7961; + this.state = 7915; _la = this.tokenStream.LA(1); if(!(_la === 434 || _la === 501)) { this.errorHandler.recoverInline(this); @@ -50628,29 +50393,29 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 7964; + this.state = 7918; this.match(PostgreSqlParser.KW_DIAGNOSTICS); { - this.state = 7965; - this.getdiag_list_item(); - this.state = 7970; + this.state = 7919; + this.getdiagListItem(); + this.state = 7924; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 7966; + this.state = 7920; this.match(PostgreSqlParser.COMMA); - this.state = 7967; - this.getdiag_list_item(); + this.state = 7921; + this.getdiagListItem(); } } - this.state = 7972; + this.state = 7926; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 7973; + this.state = 7927; this.match(PostgreSqlParser.SEMI); } } @@ -50668,17 +50433,17 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public getdiag_list_item(): Getdiag_list_itemContext { - let localContext = new Getdiag_list_itemContext(this.context, this.state); - this.enterRule(localContext, 858, PostgreSqlParser.RULE_getdiag_list_item); + public getdiagListItem(): GetdiagListItemContext { + let localContext = new GetdiagListItemContext(this.context, this.state); + this.enterRule(localContext, 850, PostgreSqlParser.RULE_getdiagListItem); try { this.enterOuterAlt(localContext, 1); { - this.state = 7975; - this.assign_var(); - this.state = 7976; - this.assign_operator(); - this.state = 7977; + this.state = 7929; + this.assignVar(); + this.state = 7930; + this.assignOperator(); + this.state = 7931; this.colId(); } } @@ -50696,14 +50461,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public assign_var(): Assign_varContext { - let localContext = new Assign_varContext(this.context, this.state); - this.enterRule(localContext, 860, PostgreSqlParser.RULE_assign_var); + public assignVar(): AssignVarContext { + let localContext = new AssignVarContext(this.context, this.state); + this.enterRule(localContext, 852, PostgreSqlParser.RULE_assignVar); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 7981; + this.state = 7935; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -51101,34 +50866,34 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 7979; - this.any_name(); + this.state = 7933; + this.anyName(); } break; case PostgreSqlParser.PARAM: { - this.state = 7980; + this.state = 7934; this.match(PostgreSqlParser.PARAM); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 7989; + this.state = 7943; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 4) { { { - this.state = 7983; + this.state = 7937; this.match(PostgreSqlParser.OPEN_BRACKET); - this.state = 7984; + this.state = 7938; this.expression(); - this.state = 7985; + this.state = 7939; this.match(PostgreSqlParser.CLOSE_BRACKET); } } - this.state = 7991; + this.state = 7945; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -51148,87 +50913,87 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_if(): Stmt_ifContext { - let localContext = new Stmt_ifContext(this.context, this.state); - this.enterRule(localContext, 862, PostgreSqlParser.RULE_stmt_if); + public stmtIf(): StmtIfContext { + let localContext = new StmtIfContext(this.context, this.state); + this.enterRule(localContext, 854, PostgreSqlParser.RULE_stmtIf); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 7992; + this.state = 7946; this.match(PostgreSqlParser.KW_IF); - this.state = 7993; - this.sql_expression(); - this.state = 7994; + this.state = 7947; + this.sqlExpression(); + this.state = 7948; this.match(PostgreSqlParser.KW_THEN); - this.state = 7998; + this.state = 7952; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1097, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1093, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 7995; - this.proc_stmt(); + this.state = 7949; + this.procStmt(); } } } - this.state = 8000; + this.state = 7954; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1097, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1093, this.context); } { - this.state = 8012; + this.state = 7966; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 502) { { { - this.state = 8001; + this.state = 7955; this.match(PostgreSqlParser.KW_ELSIF); - this.state = 8002; + this.state = 7956; this.expression(); - this.state = 8003; + this.state = 7957; this.match(PostgreSqlParser.KW_THEN); - this.state = 8007; + this.state = 7961; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1098, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1094, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 8004; - this.proc_stmt(); + this.state = 7958; + this.procStmt(); } } } - this.state = 8009; + this.state = 7963; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1098, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1094, this.context); } } } - this.state = 8014; + this.state = 7968; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 8016; + this.state = 7970; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 58) { { - this.state = 8015; - this.stmt_else(); + this.state = 7969; + this.stmtElse(); } } - this.state = 8018; + this.state = 7972; this.match(PostgreSqlParser.KW_END); - this.state = 8019; + this.state = 7973; this.match(PostgreSqlParser.KW_IF); - this.state = 8020; + this.state = 7974; this.match(PostgreSqlParser.SEMI); } } @@ -51246,30 +51011,30 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_else(): Stmt_elseContext { - let localContext = new Stmt_elseContext(this.context, this.state); - this.enterRule(localContext, 864, PostgreSqlParser.RULE_stmt_else); + public stmtElse(): StmtElseContext { + let localContext = new StmtElseContext(this.context, this.state); + this.enterRule(localContext, 856, PostgreSqlParser.RULE_stmtElse); try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 8022; + this.state = 7976; this.match(PostgreSqlParser.KW_ELSE); - this.state = 8026; + this.state = 7980; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1101, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1097, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 8023; - this.proc_stmt(); + this.state = 7977; + this.procStmt(); } } } - this.state = 8028; + this.state = 7982; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1101, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1097, this.context); } } } @@ -51287,75 +51052,75 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_case(): Stmt_caseContext { - let localContext = new Stmt_caseContext(this.context, this.state); - this.enterRule(localContext, 866, PostgreSqlParser.RULE_stmt_case); + public stmtCase(): StmtCaseContext { + let localContext = new StmtCaseContext(this.context, this.state); + this.enterRule(localContext, 858, PostgreSqlParser.RULE_stmtCase); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 8029; + this.state = 7983; this.match(PostgreSqlParser.KW_CASE); - this.state = 8031; + this.state = 7985; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1102, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1098, this.context) ) { case 1: { - this.state = 8030; - this.sql_expression(); + this.state = 7984; + this.sqlExpression(); } break; } - this.state = 8042; + this.state = 7996; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 8033; + this.state = 7987; this.match(PostgreSqlParser.KW_WHEN); - this.state = 8034; - this.expr_list(); - this.state = 8035; + this.state = 7988; + this.exprList(); + this.state = 7989; this.match(PostgreSqlParser.KW_THEN); - this.state = 8039; + this.state = 7993; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1103, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1099, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 8036; - this.proc_stmt(); + this.state = 7990; + this.procStmt(); } } } - this.state = 8041; + this.state = 7995; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1103, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1099, this.context); } } } - this.state = 8044; + this.state = 7998; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 102); - this.state = 8047; + this.state = 8001; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 58) { { - this.state = 8046; - this.stmt_else(); + this.state = 8000; + this.stmtElse(); } } - this.state = 8049; + this.state = 8003; this.match(PostgreSqlParser.KW_END); - this.state = 8050; + this.state = 8004; this.match(PostgreSqlParser.KW_CASE); - this.state = 8051; + this.state = 8005; this.match(PostgreSqlParser.SEMI); } } @@ -51373,32 +51138,32 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_loop_while_for(): Stmt_loop_while_forContext { - let localContext = new Stmt_loop_while_forContext(this.context, this.state); - this.enterRule(localContext, 868, PostgreSqlParser.RULE_stmt_loop_while_for); + public stmtLoopWhileFor(): StmtLoopWhileForContext { + let localContext = new StmtLoopWhileForContext(this.context, this.state); + this.enterRule(localContext, 860, PostgreSqlParser.RULE_stmtLoopWhileFor); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8054; + this.state = 8008; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 18) { { - this.state = 8053; - this.label_decl(); + this.state = 8007; + this.labelDecl(); } } - this.state = 8060; + this.state = 8014; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_WHILE: { { - this.state = 8056; + this.state = 8010; this.match(PostgreSqlParser.KW_WHILE); - this.state = 8057; + this.state = 8011; this.expression(); } } @@ -51406,10 +51171,10 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_FOR: { { - this.state = 8058; + this.state = 8012; this.match(PostgreSqlParser.KW_FOR); - this.state = 8059; - this.for_control(); + this.state = 8013; + this.forControl(); } } break; @@ -51418,8 +51183,8 @@ export class PostgreSqlParser extends SQLParserBase { default: break; } - this.state = 8062; - this.loop_body(); + this.state = 8016; + this.loopBody(); } } catch (re) { @@ -51436,31 +51201,31 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public for_control(): For_controlContext { - let localContext = new For_controlContext(this.context, this.state); - this.enterRule(localContext, 870, PostgreSqlParser.RULE_for_control); + public forControl(): ForControlContext { + let localContext = new ForControlContext(this.context, this.state); + this.enterRule(localContext, 862, PostgreSqlParser.RULE_forControl); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8064; - this.any_name_list(); - this.state = 8065; + this.state = 8018; + this.anyNameList(); + this.state = 8019; this.match(PostgreSqlParser.KW_IN); - this.state = 8088; + this.state = 8042; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1112, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1108, this.context) ) { case 1: { - this.state = 8066; + this.state = 8020; this.colId(); - this.state = 8068; + this.state = 8022; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 8067; - this.execute_param_clause(); + this.state = 8021; + this.executeParamClause(); } } @@ -51468,31 +51233,31 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 8070; + this.state = 8024; this.selectStmt(); } break; case 3: { - this.state = 8071; + this.state = 8025; this.explainStmt(); } break; case 4: { - this.state = 8072; + this.state = 8026; this.match(PostgreSqlParser.KW_EXECUTE); - this.state = 8073; + this.state = 8027; this.expression(); - this.state = 8076; + this.state = 8030; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 8074; + this.state = 8028; this.match(PostgreSqlParser.KW_USING); - this.state = 8075; - this.expr_list(); + this.state = 8029; + this.exprList(); } } @@ -51500,30 +51265,30 @@ export class PostgreSqlParser extends SQLParserBase { break; case 5: { - this.state = 8079; + this.state = 8033; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1110, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1106, this.context) ) { case 1: { - this.state = 8078; + this.state = 8032; this.match(PostgreSqlParser.KW_REVERSE); } break; } - this.state = 8081; + this.state = 8035; this.expression(); - this.state = 8082; + this.state = 8036; this.match(PostgreSqlParser.DOT_DOT); - this.state = 8083; + this.state = 8037; this.expression(); - this.state = 8086; + this.state = 8040; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 147) { { - this.state = 8084; + this.state = 8038; this.match(PostgreSqlParser.KW_BY); - this.state = 8085; + this.state = 8039; this.expression(); } } @@ -51547,47 +51312,47 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_foreach_a(): Stmt_foreach_aContext { - let localContext = new Stmt_foreach_aContext(this.context, this.state); - this.enterRule(localContext, 872, PostgreSqlParser.RULE_stmt_foreach_a); + public stmtForeach(): StmtForeachContext { + let localContext = new StmtForeachContext(this.context, this.state); + this.enterRule(localContext, 864, PostgreSqlParser.RULE_stmtForeach); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8091; + this.state = 8045; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 18) { { - this.state = 8090; - this.label_decl(); + this.state = 8044; + this.labelDecl(); } } - this.state = 8093; + this.state = 8047; this.match(PostgreSqlParser.KW_FOREACH); - this.state = 8094; - this.any_name_list(); - this.state = 8097; + this.state = 8048; + this.anyNameList(); + this.state = 8051; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 506) { { - this.state = 8095; + this.state = 8049; this.match(PostgreSqlParser.KW_SLICE); - this.state = 8096; + this.state = 8050; this.match(PostgreSqlParser.Integral); } } - this.state = 8099; + this.state = 8053; this.match(PostgreSqlParser.KW_IN); - this.state = 8100; + this.state = 8054; this.match(PostgreSqlParser.KW_ARRAY); - this.state = 8101; + this.state = 8055; this.expression(); - this.state = 8102; - this.loop_body(); + this.state = 8056; + this.loopBody(); } } catch (re) { @@ -51604,14 +51369,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_exit(): Stmt_exitContext { - let localContext = new Stmt_exitContext(this.context, this.state); - this.enterRule(localContext, 874, PostgreSqlParser.RULE_stmt_exit); + public stmtExit(): StmtExitContext { + let localContext = new StmtExitContext(this.context, this.state); + this.enterRule(localContext, 866, PostgreSqlParser.RULE_stmtExit); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8104; + this.state = 8058; _la = this.tokenStream.LA(1); if(!(_la === 167 || _la === 507)) { this.errorHandler.recoverInline(this); @@ -51620,29 +51385,29 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 8106; + this.state = 8060; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 8105; - this.any_identifier(); + this.state = 8059; + this.anyIdentifier(); } } - this.state = 8110; + this.state = 8064; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 102) { { - this.state = 8108; + this.state = 8062; this.match(PostgreSqlParser.KW_WHEN); - this.state = 8109; - this.sql_expression(); + this.state = 8063; + this.sqlExpression(); } } - this.state = 8112; + this.state = 8066; this.match(PostgreSqlParser.SEMI); } } @@ -51660,42 +51425,42 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_return(): Stmt_returnContext { - let localContext = new Stmt_returnContext(this.context, this.state); - this.enterRule(localContext, 876, PostgreSqlParser.RULE_stmt_return); + public stmtReturn(): StmtReturnContext { + let localContext = new StmtReturnContext(this.context, this.state); + this.enterRule(localContext, 868, PostgreSqlParser.RULE_stmtReturn); try { this.enterOuterAlt(localContext, 1); { - this.state = 8114; + this.state = 8068; this.match(PostgreSqlParser.KW_RETURN); - this.state = 8129; + this.state = 8083; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1119, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1115, this.context) ) { case 1: { - this.state = 8115; + this.state = 8069; this.match(PostgreSqlParser.KW_NEXT); - this.state = 8116; - this.sql_expression(); + this.state = 8070; + this.sqlExpression(); } break; case 2: { - this.state = 8117; + this.state = 8071; this.match(PostgreSqlParser.KW_QUERY); - this.state = 8124; + this.state = 8078; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_EXECUTE: { - this.state = 8118; + this.state = 8072; this.match(PostgreSqlParser.KW_EXECUTE); - this.state = 8119; + this.state = 8073; this.expression(); - this.state = 8120; + this.state = 8074; this.match(PostgreSqlParser.KW_USING); - this.state = 8121; - this.expr_list(); + this.state = 8075; + this.exprList(); } break; case PostgreSqlParser.OPEN_PAREN: @@ -51704,7 +51469,7 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_WITH: case PostgreSqlParser.KW_VALUES: { - this.state = 8123; + this.state = 8077; this.selectStmt(); } break; @@ -51715,20 +51480,20 @@ export class PostgreSqlParser extends SQLParserBase { break; case 3: { - this.state = 8127; + this.state = 8081; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1118, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1114, this.context) ) { case 1: { - this.state = 8126; - this.sql_expression(); + this.state = 8080; + this.sqlExpression(); } break; } } break; } - this.state = 8131; + this.state = 8085; this.match(PostgreSqlParser.SEMI); } } @@ -51746,26 +51511,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_raise(): Stmt_raiseContext { - let localContext = new Stmt_raiseContext(this.context, this.state); - this.enterRule(localContext, 878, PostgreSqlParser.RULE_stmt_raise); + public stmtRaise(): StmtRaiseContext { + let localContext = new StmtRaiseContext(this.context, this.state); + this.enterRule(localContext, 870, PostgreSqlParser.RULE_stmtRaise); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8133; + this.state = 8087; this.match(PostgreSqlParser.KW_RAISE); - this.state = 8163; + this.state = 8117; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1126, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1122, this.context) ) { case 1: { - this.state = 8135; + this.state = 8089; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1120, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1116, this.context) ) { case 1: { - this.state = 8134; + this.state = 8088; _la = this.tokenStream.LA(1); if(!(((((_la - 512)) & ~0x1F) === 0 && ((1 << (_la - 512)) & 63) !== 0))) { this.errorHandler.recoverInline(this); @@ -51777,21 +51542,21 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 8149; + this.state = 8103; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1123, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1119, this.context) ) { case 1: { - this.state = 8137; + this.state = 8091; this.identifier(); } break; case 2: { { - this.state = 8138; + this.state = 8092; this.match(PostgreSqlParser.KW_SQLSTATE); - this.state = 8139; + this.state = 8093; this.stringConst(); } } @@ -51799,26 +51564,26 @@ export class PostgreSqlParser extends SQLParserBase { case 3: { { - this.state = 8140; + this.state = 8094; this.stringConst(); - this.state = 8147; + this.state = 8101; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 8143; + this.state = 8097; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 8141; + this.state = 8095; this.match(PostgreSqlParser.COMMA); - this.state = 8142; + this.state = 8096; this.expression(); } } - this.state = 8145; + this.state = 8099; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 6); @@ -51829,29 +51594,29 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 8160; + this.state = 8114; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 8151; + this.state = 8105; this.match(PostgreSqlParser.KW_USING); { - this.state = 8152; - this.opt_raise_using_elem(); - this.state = 8157; + this.state = 8106; + this.optRaiseUsingElem(); + this.state = 8111; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 8153; + this.state = 8107; this.match(PostgreSqlParser.COMMA); - this.state = 8154; - this.opt_raise_using_elem(); + this.state = 8108; + this.optRaiseUsingElem(); } } - this.state = 8159; + this.state = 8113; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -51859,7 +51624,7 @@ export class PostgreSqlParser extends SQLParserBase { } } - this.state = 8162; + this.state = 8116; this.match(PostgreSqlParser.SEMI); } break; @@ -51880,17 +51645,17 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_raise_using_elem(): Opt_raise_using_elemContext { - let localContext = new Opt_raise_using_elemContext(this.context, this.state); - this.enterRule(localContext, 880, PostgreSqlParser.RULE_opt_raise_using_elem); + public optRaiseUsingElem(): OptRaiseUsingElemContext { + let localContext = new OptRaiseUsingElemContext(this.context, this.state); + this.enterRule(localContext, 872, PostgreSqlParser.RULE_optRaiseUsingElem); try { this.enterOuterAlt(localContext, 1); { - this.state = 8165; + this.state = 8119; this.identifier(); - this.state = 8166; + this.state = 8120; this.match(PostgreSqlParser.EQUAL); - this.state = 8167; + this.state = 8121; this.expression(); } } @@ -51908,30 +51673,30 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_assert(): Stmt_assertContext { - let localContext = new Stmt_assertContext(this.context, this.state); - this.enterRule(localContext, 882, PostgreSqlParser.RULE_stmt_assert); + public stmtAssert(): StmtAssertContext { + let localContext = new StmtAssertContext(this.context, this.state); + this.enterRule(localContext, 874, PostgreSqlParser.RULE_stmtAssert); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8169; + this.state = 8123; this.match(PostgreSqlParser.KW_ASSERT); - this.state = 8170; - this.sql_expression(); - this.state = 8173; + this.state = 8124; + this.sqlExpression(); + this.state = 8127; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 6) { { - this.state = 8171; + this.state = 8125; this.match(PostgreSqlParser.COMMA); - this.state = 8172; - this.sql_expression(); + this.state = 8126; + this.sqlExpression(); } } - this.state = 8175; + this.state = 8129; this.match(PostgreSqlParser.SEMI); } } @@ -51949,47 +51714,47 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public loop_body(): Loop_bodyContext { - let localContext = new Loop_bodyContext(this.context, this.state); - this.enterRule(localContext, 884, PostgreSqlParser.RULE_loop_body); + public loopBody(): LoopBodyContext { + let localContext = new LoopBodyContext(this.context, this.state); + this.enterRule(localContext, 876, PostgreSqlParser.RULE_loopBody); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 8177; + this.state = 8131; this.match(PostgreSqlParser.KW_LOOP); - this.state = 8181; + this.state = 8135; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1128, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1124, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 8178; - this.proc_stmt(); + this.state = 8132; + this.procStmt(); } } } - this.state = 8183; + this.state = 8137; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1128, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1124, this.context); } - this.state = 8184; + this.state = 8138; this.match(PostgreSqlParser.KW_END); - this.state = 8185; + this.state = 8139; this.match(PostgreSqlParser.KW_LOOP); - this.state = 8187; + this.state = 8141; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 8186; - this.any_identifier(); + this.state = 8140; + this.anyIdentifier(); } } - this.state = 8189; + this.state = 8143; this.match(PostgreSqlParser.SEMI); } } @@ -52007,26 +51772,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_execsql(): Stmt_execsqlContext { - let localContext = new Stmt_execsqlContext(this.context, this.state); - this.enterRule(localContext, 886, PostgreSqlParser.RULE_stmt_execsql); + public stmtExecsql(): StmtExecsqlContext { + let localContext = new StmtExecsqlContext(this.context, this.state); + this.enterRule(localContext, 878, PostgreSqlParser.RULE_stmtExecsql); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8191; + this.state = 8145; this.stmt(); - this.state = 8193; + this.state = 8147; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 71) { { - this.state = 8192; - this.opt_execute_into(); + this.state = 8146; + this.optExecuteInto(); } } - this.state = 8195; + this.state = 8149; this.match(PostgreSqlParser.SEMI); } } @@ -52044,41 +51809,41 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_dynexecute(): Stmt_dynexecuteContext { - let localContext = new Stmt_dynexecuteContext(this.context, this.state); - this.enterRule(localContext, 888, PostgreSqlParser.RULE_stmt_dynexecute); + public stmtDynexecute(): StmtDynexecuteContext { + let localContext = new StmtDynexecuteContext(this.context, this.state); + this.enterRule(localContext, 880, PostgreSqlParser.RULE_stmtDynexecute); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8197; + this.state = 8151; this.match(PostgreSqlParser.KW_EXECUTE); - this.state = 8198; + this.state = 8152; this.expression(); - this.state = 8214; + this.state = 8168; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1135, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1131, this.context) ) { case 1: { - this.state = 8200; + this.state = 8154; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 71) { { - this.state = 8199; - this.opt_execute_into(); + this.state = 8153; + this.optExecuteInto(); } } - this.state = 8204; + this.state = 8158; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 8202; + this.state = 8156; this.match(PostgreSqlParser.KW_USING); - this.state = 8203; - this.expr_list(); + this.state = 8157; + this.exprList(); } } @@ -52086,25 +51851,25 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 8208; + this.state = 8162; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 8206; + this.state = 8160; this.match(PostgreSqlParser.KW_USING); - this.state = 8207; - this.expr_list(); + this.state = 8161; + this.exprList(); } } - this.state = 8211; + this.state = 8165; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 71) { { - this.state = 8210; - this.opt_execute_into(); + this.state = 8164; + this.optExecuteInto(); } } @@ -52116,7 +51881,7 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 8216; + this.state = 8170; this.match(PostgreSqlParser.SEMI); } } @@ -52134,26 +51899,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_execute_into(): Opt_execute_intoContext { - let localContext = new Opt_execute_intoContext(this.context, this.state); - this.enterRule(localContext, 890, PostgreSqlParser.RULE_opt_execute_into); + public optExecuteInto(): OptExecuteIntoContext { + let localContext = new OptExecuteIntoContext(this.context, this.state); + this.enterRule(localContext, 882, PostgreSqlParser.RULE_optExecuteInto); try { this.enterOuterAlt(localContext, 1); { - this.state = 8218; + this.state = 8172; this.match(PostgreSqlParser.KW_INTO); - this.state = 8220; + this.state = 8174; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1136, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1132, this.context) ) { case 1: { - this.state = 8219; + this.state = 8173; this.match(PostgreSqlParser.KW_STRICT); } break; } - this.state = 8222; - this.expr_list(); + this.state = 8176; + this.exprList(); } } catch (re) { @@ -52170,45 +51935,45 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_open(): Stmt_openContext { - let localContext = new Stmt_openContext(this.context, this.state); - this.enterRule(localContext, 892, PostgreSqlParser.RULE_stmt_open); + public stmtOpen(): StmtOpenContext { + let localContext = new StmtOpenContext(this.context, this.state); + this.enterRule(localContext, 884, PostgreSqlParser.RULE_stmtOpen); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8224; + this.state = 8178; this.match(PostgreSqlParser.KW_OPEN); - this.state = 8256; + this.state = 8210; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1143, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1139, this.context) ) { case 1: { - this.state = 8225; - this.cursor_variable(); - this.state = 8230; + this.state = 8179; + this.cursorVariable(); + this.state = 8184; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269 || _la === 324) { { - this.state = 8227; + this.state = 8181; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 8226; + this.state = 8180; this.match(PostgreSqlParser.KW_NO); } } - this.state = 8229; + this.state = 8183; this.match(PostgreSqlParser.KW_SCROLL); } } - this.state = 8232; + this.state = 8186; this.match(PostgreSqlParser.KW_FOR); - this.state = 8240; + this.state = 8194; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.OPEN_PAREN: @@ -52217,25 +51982,25 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.KW_WITH: case PostgreSqlParser.KW_VALUES: { - this.state = 8233; + this.state = 8187; this.selectStmt(); } break; case PostgreSqlParser.KW_EXECUTE: { - this.state = 8234; + this.state = 8188; this.match(PostgreSqlParser.KW_EXECUTE); - this.state = 8235; - this.sql_expression(); - this.state = 8238; + this.state = 8189; + this.sqlExpression(); + this.state = 8192; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 100) { { - this.state = 8236; + this.state = 8190; this.match(PostgreSqlParser.KW_USING); - this.state = 8237; - this.expr_list(); + this.state = 8191; + this.exprList(); } } @@ -52248,36 +52013,36 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 8242; + this.state = 8196; this.colId(); - this.state = 8254; + this.state = 8208; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 8243; + this.state = 8197; this.match(PostgreSqlParser.OPEN_PAREN); { - this.state = 8244; - this.opt_open_bound_list_item(); - this.state = 8249; + this.state = 8198; + this.optOpenBoundListItem(); + this.state = 8203; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 8245; + this.state = 8199; this.match(PostgreSqlParser.COMMA); - this.state = 8246; - this.opt_open_bound_list_item(); + this.state = 8200; + this.optOpenBoundListItem(); } } - this.state = 8251; + this.state = 8205; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 8252; + this.state = 8206; this.match(PostgreSqlParser.CLOSE_PAREN); } } @@ -52285,7 +52050,7 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 8258; + this.state = 8212; this.match(PostgreSqlParser.SEMI); } } @@ -52303,25 +52068,25 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_open_bound_list_item(): Opt_open_bound_list_itemContext { - let localContext = new Opt_open_bound_list_itemContext(this.context, this.state); - this.enterRule(localContext, 894, PostgreSqlParser.RULE_opt_open_bound_list_item); + public optOpenBoundListItem(): OptOpenBoundListItemContext { + let localContext = new OptOpenBoundListItemContext(this.context, this.state); + this.enterRule(localContext, 886, PostgreSqlParser.RULE_optOpenBoundListItem); try { this.enterOuterAlt(localContext, 1); { - this.state = 8263; + this.state = 8217; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1144, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1140, this.context) ) { case 1: { - this.state = 8260; + this.state = 8214; this.colId(); - this.state = 8261; + this.state = 8215; this.match(PostgreSqlParser.COLON_EQUALS); } break; } - this.state = 8265; + this.state = 8219; this.expression(); } } @@ -52339,42 +52104,42 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_fetch(): Stmt_fetchContext { - let localContext = new Stmt_fetchContext(this.context, this.state); - this.enterRule(localContext, 896, PostgreSqlParser.RULE_stmt_fetch); + public stmtFetch(): StmtFetchContext { + let localContext = new StmtFetchContext(this.context, this.state); + this.enterRule(localContext, 888, PostgreSqlParser.RULE_stmtFetch); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8267; + this.state = 8221; this.match(PostgreSqlParser.KW_FETCH); - this.state = 8269; + this.state = 8223; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1145, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1141, this.context) ) { case 1: { - this.state = 8268; - localContext._direction = this.opt_fetch_direction(); + this.state = 8222; + localContext._direction = this.optFetchFirection(); } break; } - this.state = 8272; + this.state = 8226; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 64 || _la === 68) { { - this.state = 8271; - this.from_in(); + this.state = 8225; + this.fromIn(); } } - this.state = 8274; - this.cursor_variable(); - this.state = 8275; + this.state = 8228; + this.cursorVariable(); + this.state = 8229; this.match(PostgreSqlParser.KW_INTO); - this.state = 8276; - this.expr_list(); - this.state = 8277; + this.state = 8230; + this.exprList(); + this.state = 8231; this.match(PostgreSqlParser.SEMI); } } @@ -52392,51 +52157,51 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public opt_fetch_direction(): Opt_fetch_directionContext { - let localContext = new Opt_fetch_directionContext(this.context, this.state); - this.enterRule(localContext, 898, PostgreSqlParser.RULE_opt_fetch_direction); + public optFetchFirection(): OptFetchFirectionContext { + let localContext = new OptFetchFirectionContext(this.context, this.state); + this.enterRule(localContext, 890, PostgreSqlParser.RULE_optFetchFirection); let _la: number; try { - this.state = 8293; + this.state = 8247; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1149, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1145, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 8279; + this.state = 8233; this.match(PostgreSqlParser.KW_NEXT); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 8280; + this.state = 8234; this.match(PostgreSqlParser.KW_PRIOR); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 8281; + this.state = 8235; this.match(PostgreSqlParser.KW_FIRST); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 8282; + this.state = 8236; this.match(PostgreSqlParser.KW_LAST); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 8284; + this.state = 8238; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1147, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1143, this.context) ) { case 1: { - this.state = 8283; + this.state = 8237; _la = this.tokenStream.LA(1); if(!(_la === 130 || _la === 307)) { this.errorHandler.recoverInline(this); @@ -52448,21 +52213,21 @@ export class PostgreSqlParser extends SQLParserBase { } break; } - this.state = 8286; + this.state = 8240; this.expression(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 8287; + this.state = 8241; this.match(PostgreSqlParser.KW_ALL); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 8288; + this.state = 8242; _la = this.tokenStream.LA(1); if(!(_la === 144 || _la === 210)) { this.errorHandler.recoverInline(this); @@ -52471,18 +52236,18 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 8291; + this.state = 8245; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1148, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1144, this.context) ) { case 1: { - this.state = 8289; + this.state = 8243; this.expression(); } break; case 2: { - this.state = 8290; + this.state = 8244; this.match(PostgreSqlParser.KW_ALL); } break; @@ -52505,27 +52270,27 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_move(): Stmt_moveContext { - let localContext = new Stmt_moveContext(this.context, this.state); - this.enterRule(localContext, 900, PostgreSqlParser.RULE_stmt_move); + public stmtMove(): StmtMoveContext { + let localContext = new StmtMoveContext(this.context, this.state); + this.enterRule(localContext, 892, PostgreSqlParser.RULE_stmtMove); try { this.enterOuterAlt(localContext, 1); { - this.state = 8295; + this.state = 8249; this.match(PostgreSqlParser.KW_MOVE); - this.state = 8297; + this.state = 8251; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1150, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1146, this.context) ) { case 1: { - this.state = 8296; - this.opt_fetch_direction(); + this.state = 8250; + this.optFetchFirection(); } break; } - this.state = 8299; - this.cursor_variable(); - this.state = 8300; + this.state = 8253; + this.cursorVariable(); + this.state = 8254; this.match(PostgreSqlParser.SEMI); } } @@ -52545,89 +52310,99 @@ export class PostgreSqlParser extends SQLParserBase { } public mergeStmt(): MergeStmtContext { let localContext = new MergeStmtContext(this.context, this.state); - this.enterRule(localContext, 902, PostgreSqlParser.RULE_mergeStmt); + this.enterRule(localContext, 894, PostgreSqlParser.RULE_mergeStmt); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8303; + this.state = 8257; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 8302; - this.with_clause(); + this.state = 8256; + this.withClause(); } } - this.state = 8305; + this.state = 8259; this.match(PostgreSqlParser.KW_MERGE); - this.state = 8306; + this.state = 8260; this.match(PostgreSqlParser.KW_INTO); - this.state = 8308; + this.state = 8262; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 81) { { - this.state = 8307; + this.state = 8261; this.match(PostgreSqlParser.KW_ONLY); } } - this.state = 8310; - this.table_name(); - this.state = 8312; + this.state = 8264; + this.tableName(); + this.state = 8266; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 9) { { - this.state = 8311; + this.state = 8265; this.match(PostgreSqlParser.STAR); } } - this.state = 8318; + this.state = 8272; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36 || _la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 8315; + this.state = 8269; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 8314; + this.state = 8268; this.match(PostgreSqlParser.KW_AS); } } - this.state = 8317; + this.state = 8271; this.colId(); } } - this.state = 8320; + this.state = 8274; this.match(PostgreSqlParser.KW_USING); - this.state = 8321; - this.data_source(); - this.state = 8322; + this.state = 8275; + this.dataSource(); + this.state = 8276; this.match(PostgreSqlParser.KW_ON); - this.state = 8323; + this.state = 8277; this.expression(); - this.state = 8325; + this.state = 8279; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 8324; - this.merge_when_clause(); + this.state = 8278; + this.mergeWhenClause(); } } - this.state = 8327; + this.state = 8281; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 102); + this.state = 8284; + this.errorHandler.sync(this); + _la = this.tokenStream.LA(1); + if (_la === 87) { + { + this.state = 8283; + this.returningClause(); + } + } + } } catch (re) { @@ -52644,36 +52419,36 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public data_source(): Data_sourceContext { - let localContext = new Data_sourceContext(this.context, this.state); - this.enterRule(localContext, 904, PostgreSqlParser.RULE_data_source); + public dataSource(): DataSourceContext { + let localContext = new DataSourceContext(this.context, this.state); + this.enterRule(localContext, 896, PostgreSqlParser.RULE_dataSource); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8340; + this.state = 8297; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1160, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1157, this.context) ) { case 1: { - this.state = 8330; + this.state = 8287; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 81) { { - this.state = 8329; + this.state = 8286; this.match(PostgreSqlParser.KW_ONLY); } } - this.state = 8332; - this.table_name(); - this.state = 8334; + this.state = 8289; + this.tableName(); + this.state = 8291; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 9) { { - this.state = 8333; + this.state = 8290; this.match(PostgreSqlParser.STAR); } } @@ -52682,41 +52457,41 @@ export class PostgreSqlParser extends SQLParserBase { break; case 2: { - this.state = 8338; + this.state = 8295; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1159, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1156, this.context) ) { case 1: { - this.state = 8336; - this.select_no_parens(); + this.state = 8293; + this.selectNoParens(); } break; case 2: { - this.state = 8337; - this.values_clause(); + this.state = 8294; + this.valuesClause(); } break; } } break; } - this.state = 8346; + this.state = 8303; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36 || _la === 53 || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 4294959489) !== 0) || ((((_la - 148)) & ~0x1F) === 0 && ((1 << (_la - 148)) & 4294967295) !== 0) || ((((_la - 180)) & ~0x1F) === 0 && ((1 << (_la - 180)) & 4294967295) !== 0) || ((((_la - 212)) & ~0x1F) === 0 && ((1 << (_la - 212)) & 4227989503) !== 0) || ((((_la - 244)) & ~0x1F) === 0 && ((1 << (_la - 244)) & 4294967295) !== 0) || ((((_la - 276)) & ~0x1F) === 0 && ((1 << (_la - 276)) & 4294967295) !== 0) || ((((_la - 308)) & ~0x1F) === 0 && ((1 << (_la - 308)) & 4294967295) !== 0) || ((((_la - 340)) & ~0x1F) === 0 && ((1 << (_la - 340)) & 4294967295) !== 0) || ((((_la - 372)) & ~0x1F) === 0 && ((1 << (_la - 372)) & 4294967295) !== 0) || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & 4294967295) !== 0) || ((((_la - 436)) & ~0x1F) === 0 && ((1 << (_la - 436)) & 4294705151) !== 0) || ((((_la - 468)) & ~0x1F) === 0 && ((1 << (_la - 468)) & 4294967279) !== 0) || ((((_la - 500)) & ~0x1F) === 0 && ((1 << (_la - 500)) & 18350039) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 3221570659) !== 0) || _la === 587) { { - this.state = 8343; + this.state = 8300; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 36) { { - this.state = 8342; + this.state = 8299; this.match(PostgreSqlParser.KW_AS); } } - this.state = 8345; + this.state = 8302; this.colId(); } } @@ -52737,55 +52512,55 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public merge_when_clause(): Merge_when_clauseContext { - let localContext = new Merge_when_clauseContext(this.context, this.state); - this.enterRule(localContext, 906, PostgreSqlParser.RULE_merge_when_clause); + public mergeWhenClause(): MergeWhenClauseContext { + let localContext = new MergeWhenClauseContext(this.context, this.state); + this.enterRule(localContext, 898, PostgreSqlParser.RULE_mergeWhenClause); let _la: number; try { - this.state = 8374; + this.state = 8331; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1167, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1164, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 8348; + this.state = 8305; this.match(PostgreSqlParser.KW_WHEN); - this.state = 8349; + this.state = 8306; this.match(PostgreSqlParser.KW_MATCHED); - this.state = 8352; + this.state = 8309; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 33) { { - this.state = 8350; + this.state = 8307; this.match(PostgreSqlParser.KW_AND); - this.state = 8351; + this.state = 8308; this.expression(); } } - this.state = 8354; + this.state = 8311; this.match(PostgreSqlParser.KW_THEN); - this.state = 8359; + this.state = 8316; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_UPDATE: { - this.state = 8355; - this.merge_update(); + this.state = 8312; + this.mergeUpdate(); } break; case PostgreSqlParser.KW_DELETE: { - this.state = 8356; + this.state = 8313; this.match(PostgreSqlParser.KW_DELETE); } break; case PostgreSqlParser.KW_DO: { - this.state = 8357; + this.state = 8314; this.match(PostgreSqlParser.KW_DO); - this.state = 8358; + this.state = 8315; this.match(PostgreSqlParser.KW_NOTHING); } break; @@ -52797,40 +52572,40 @@ export class PostgreSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 8361; + this.state = 8318; this.match(PostgreSqlParser.KW_WHEN); - this.state = 8362; + this.state = 8319; this.match(PostgreSqlParser.KW_NOT); - this.state = 8363; + this.state = 8320; this.match(PostgreSqlParser.KW_MATCHED); - this.state = 8366; + this.state = 8323; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 33) { { - this.state = 8364; + this.state = 8321; this.match(PostgreSqlParser.KW_AND); - this.state = 8365; + this.state = 8322; this.expression(); } } - this.state = 8368; + this.state = 8325; this.match(PostgreSqlParser.KW_THEN); - this.state = 8372; + this.state = 8329; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_INSERT: { - this.state = 8369; - this.merge_insert(); + this.state = 8326; + this.mergeInsert(); } break; case PostgreSqlParser.KW_DO: { - this.state = 8370; + this.state = 8327; this.match(PostgreSqlParser.KW_DO); - this.state = 8371; + this.state = 8328; this.match(PostgreSqlParser.KW_NOTHING); } break; @@ -52855,33 +52630,33 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public merge_insert(): Merge_insertContext { - let localContext = new Merge_insertContext(this.context, this.state); - this.enterRule(localContext, 908, PostgreSqlParser.RULE_merge_insert); + public mergeInsert(): MergeInsertContext { + let localContext = new MergeInsertContext(this.context, this.state); + this.enterRule(localContext, 900, PostgreSqlParser.RULE_mergeInsert); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8376; + this.state = 8333; this.match(PostgreSqlParser.KW_INSERT); - this.state = 8378; + this.state = 8335; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 8377; - this.opt_column_list(); + this.state = 8334; + this.optColumnList(); } } - this.state = 8383; + this.state = 8340; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 463) { { - this.state = 8380; + this.state = 8337; this.match(PostgreSqlParser.KW_OVERRIDING); - this.state = 8381; + this.state = 8338; _la = this.tokenStream.LA(1); if(!(_la === 99 || _la === 349)) { this.errorHandler.recoverInline(this); @@ -52890,13 +52665,13 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 8382; + this.state = 8339; this.match(PostgreSqlParser.KW_VALUE); } } - this.state = 8385; - this.default_values_or_values(); + this.state = 8342; + this.defaultValuesOrValues(); } } catch (re) { @@ -52913,65 +52688,65 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public merge_update(): Merge_updateContext { - let localContext = new Merge_updateContext(this.context, this.state); - this.enterRule(localContext, 910, PostgreSqlParser.RULE_merge_update); + public mergeUpdate(): MergeUpdateContext { + let localContext = new MergeUpdateContext(this.context, this.state); + this.enterRule(localContext, 902, PostgreSqlParser.RULE_mergeUpdate); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 8387; + this.state = 8344; this.match(PostgreSqlParser.KW_UPDATE); - this.state = 8388; + this.state = 8345; this.match(PostgreSqlParser.KW_SET); - this.state = 8406; + this.state = 8363; this.errorHandler.sync(this); alternative = 1; do { switch (alternative) { case 1: { - this.state = 8406; + this.state = 8363; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1171, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1168, this.context) ) { case 1: { - this.state = 8389; - this.column_name(); - this.state = 8390; + this.state = 8346; + this.columnName(); + this.state = 8347; this.match(PostgreSqlParser.EQUAL); - this.state = 8391; + this.state = 8348; this.exprofdefault(); } break; case 2: { - this.state = 8393; - this.opt_column_list(); - this.state = 8394; + this.state = 8350; + this.optColumnList(); + this.state = 8351; this.match(PostgreSqlParser.EQUAL); - this.state = 8395; + this.state = 8352; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 8396; + this.state = 8353; this.exprofdefault(); - this.state = 8401; + this.state = 8358; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 8397; + this.state = 8354; this.match(PostgreSqlParser.COMMA); - this.state = 8398; + this.state = 8355; this.exprofdefault(); } } - this.state = 8403; + this.state = 8360; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 8404; + this.state = 8361; this.match(PostgreSqlParser.CLOSE_PAREN); } break; @@ -52981,9 +52756,9 @@ export class PostgreSqlParser extends SQLParserBase { default: throw new antlr.NoViableAltException(this); } - this.state = 8408; + this.state = 8365; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1172, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1169, this.context); } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER); } } @@ -53001,49 +52776,49 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public default_values_or_values(): Default_values_or_valuesContext { - let localContext = new Default_values_or_valuesContext(this.context, this.state); - this.enterRule(localContext, 912, PostgreSqlParser.RULE_default_values_or_values); + public defaultValuesOrValues(): DefaultValuesOrValuesContext { + let localContext = new DefaultValuesOrValuesContext(this.context, this.state); + this.enterRule(localContext, 904, PostgreSqlParser.RULE_defaultValuesOrValues); let _la: number; try { - this.state = 8424; + this.state = 8381; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_VALUES: this.enterOuterAlt(localContext, 1); { - this.state = 8410; + this.state = 8367; this.match(PostgreSqlParser.KW_VALUES); - this.state = 8411; + this.state = 8368; this.match(PostgreSqlParser.OPEN_PAREN); - this.state = 8412; + this.state = 8369; this.exprofdefault(); - this.state = 8417; + this.state = 8374; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 6) { { { - this.state = 8413; + this.state = 8370; this.match(PostgreSqlParser.COMMA); - this.state = 8414; + this.state = 8371; this.exprofdefault(); } } - this.state = 8419; + this.state = 8376; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 8420; + this.state = 8377; this.match(PostgreSqlParser.CLOSE_PAREN); } break; case PostgreSqlParser.KW_DEFAULT: this.enterOuterAlt(localContext, 2); { - this.state = 8422; + this.state = 8379; this.match(PostgreSqlParser.KW_DEFAULT); - this.state = 8423; + this.state = 8380; this.match(PostgreSqlParser.KW_VALUES); } break; @@ -53067,22 +52842,22 @@ export class PostgreSqlParser extends SQLParserBase { } public exprofdefault(): ExprofdefaultContext { let localContext = new ExprofdefaultContext(this.context, this.state); - this.enterRule(localContext, 914, PostgreSqlParser.RULE_exprofdefault); + this.enterRule(localContext, 906, PostgreSqlParser.RULE_exprofdefault); try { - this.state = 8428; + this.state = 8385; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1175, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1172, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 8426; + this.state = 8383; this.sortBy(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 8427; + this.state = 8384; this.match(PostgreSqlParser.KW_DEFAULT); } break; @@ -53102,17 +52877,17 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_close(): Stmt_closeContext { - let localContext = new Stmt_closeContext(this.context, this.state); - this.enterRule(localContext, 916, PostgreSqlParser.RULE_stmt_close); + public stmtClose(): StmtCloseContext { + let localContext = new StmtCloseContext(this.context, this.state); + this.enterRule(localContext, 908, PostgreSqlParser.RULE_stmtClose); try { this.enterOuterAlt(localContext, 1); { - this.state = 8430; + this.state = 8387; this.match(PostgreSqlParser.KW_CLOSE); - this.state = 8431; - this.cursor_variable(); - this.state = 8432; + this.state = 8388; + this.cursorVariable(); + this.state = 8389; this.match(PostgreSqlParser.SEMI); } } @@ -53130,15 +52905,15 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_null(): Stmt_nullContext { - let localContext = new Stmt_nullContext(this.context, this.state); - this.enterRule(localContext, 918, PostgreSqlParser.RULE_stmt_null); + public stmtNull(): StmtNullContext { + let localContext = new StmtNullContext(this.context, this.state); + this.enterRule(localContext, 910, PostgreSqlParser.RULE_stmtNull); try { this.enterOuterAlt(localContext, 1); { - this.state = 8434; + this.state = 8391; this.match(PostgreSqlParser.KW_NULL); - this.state = 8435; + this.state = 8392; this.match(PostgreSqlParser.SEMI); } } @@ -53156,14 +52931,14 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_commit_or_rollback(): Stmt_commit_or_rollbackContext { - let localContext = new Stmt_commit_or_rollbackContext(this.context, this.state); - this.enterRule(localContext, 920, PostgreSqlParser.RULE_stmt_commit_or_rollback); + public stmtCommitOrRollback(): StmtCommitOrRollbackContext { + let localContext = new StmtCommitOrRollbackContext(this.context, this.state); + this.enterRule(localContext, 912, PostgreSqlParser.RULE_stmtCommitOrRollback); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8437; + this.state = 8394; _la = this.tokenStream.LA(1); if(!(_la === 161 || _la === 319)) { this.errorHandler.recoverInline(this); @@ -53172,29 +52947,29 @@ export class PostgreSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 8443; + this.state = 8400; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 33) { { - this.state = 8438; + this.state = 8395; this.match(PostgreSqlParser.KW_AND); - this.state = 8440; + this.state = 8397; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 269) { { - this.state = 8439; + this.state = 8396; this.match(PostgreSqlParser.KW_NO); } } - this.state = 8442; + this.state = 8399; this.match(PostgreSqlParser.KW_CHAIN); } } - this.state = 8445; + this.state = 8402; this.match(PostgreSqlParser.SEMI); } } @@ -53212,34 +52987,34 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public stmt_set(): Stmt_setContext { - let localContext = new Stmt_setContext(this.context, this.state); - this.enterRule(localContext, 922, PostgreSqlParser.RULE_stmt_set); + public stmtSet(): StmtSetContext { + let localContext = new StmtSetContext(this.context, this.state); + this.enterRule(localContext, 914, PostgreSqlParser.RULE_stmtSet); try { - this.state = 8459; + this.state = 8416; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_SET: this.enterOuterAlt(localContext, 1); { - this.state = 8447; + this.state = 8404; this.match(PostgreSqlParser.KW_SET); - this.state = 8448; - this.any_name(); - this.state = 8449; + this.state = 8405; + this.anyName(); + this.state = 8406; this.match(PostgreSqlParser.KW_TO); - this.state = 8450; + this.state = 8407; this.match(PostgreSqlParser.KW_DEFAULT); - this.state = 8451; + this.state = 8408; this.match(PostgreSqlParser.SEMI); } break; case PostgreSqlParser.KW_RESET: this.enterOuterAlt(localContext, 2); { - this.state = 8453; + this.state = 8410; this.match(PostgreSqlParser.KW_RESET); - this.state = 8456; + this.state = 8413; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -53637,20 +53412,20 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.PLSQLIDENTIFIER: case PostgreSqlParser.EscapeStringConstant: { - this.state = 8454; - this.any_name(); + this.state = 8411; + this.anyName(); } break; case PostgreSqlParser.KW_ALL: { - this.state = 8455; + this.state = 8412; this.match(PostgreSqlParser.KW_ALL); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 8458; + this.state = 8415; this.match(PostgreSqlParser.SEMI); } break; @@ -53672,11 +53447,11 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public cursor_variable(): Cursor_variableContext { - let localContext = new Cursor_variableContext(this.context, this.state); - this.enterRule(localContext, 924, PostgreSqlParser.RULE_cursor_variable); + public cursorVariable(): CursorVariableContext { + let localContext = new CursorVariableContext(this.context, this.state); + this.enterRule(localContext, 916, PostgreSqlParser.RULE_cursorVariable); try { - this.state = 8463; + this.state = 8420; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case PostgreSqlParser.KW_DEFAULT: @@ -54075,14 +53850,14 @@ export class PostgreSqlParser extends SQLParserBase { case PostgreSqlParser.EscapeStringConstant: this.enterOuterAlt(localContext, 1); { - this.state = 8461; + this.state = 8418; this.colId(); } break; case PostgreSqlParser.PARAM: this.enterOuterAlt(localContext, 2); { - this.state = 8462; + this.state = 8419; this.match(PostgreSqlParser.PARAM); } break; @@ -54104,65 +53879,65 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public exception_sect(): Exception_sectContext { - let localContext = new Exception_sectContext(this.context, this.state); - this.enterRule(localContext, 926, PostgreSqlParser.RULE_exception_sect); + public exceptionSect(): ExceptionSectContext { + let localContext = new ExceptionSectContext(this.context, this.state); + this.enterRule(localContext, 918, PostgreSqlParser.RULE_exceptionSect); let _la: number; try { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 8465; + this.state = 8422; this.match(PostgreSqlParser.KW_EXCEPTION); - this.state = 8482; + this.state = 8439; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 8466; + this.state = 8423; this.match(PostgreSqlParser.KW_WHEN); { - this.state = 8467; - this.proc_condition(); - this.state = 8472; + this.state = 8424; + this.procCondition(); + this.state = 8429; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 82) { { { - this.state = 8468; + this.state = 8425; this.match(PostgreSqlParser.KW_OR); - this.state = 8469; - this.proc_condition(); + this.state = 8426; + this.procCondition(); } } - this.state = 8474; + this.state = 8431; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } - this.state = 8475; + this.state = 8432; this.match(PostgreSqlParser.KW_THEN); - this.state = 8479; + this.state = 8436; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1182, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1179, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 8476; - this.proc_stmt(); + this.state = 8433; + this.procStmt(); } } } - this.state = 8481; + this.state = 8438; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 1182, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 1179, this.context); } } } - this.state = 8484; + this.state = 8441; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 102); @@ -54182,26 +53957,26 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public proc_condition(): Proc_conditionContext { - let localContext = new Proc_conditionContext(this.context, this.state); - this.enterRule(localContext, 928, PostgreSqlParser.RULE_proc_condition); + public procCondition(): ProcConditionContext { + let localContext = new ProcConditionContext(this.context, this.state); + this.enterRule(localContext, 920, PostgreSqlParser.RULE_procCondition); try { - this.state = 8489; + this.state = 8446; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1184, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1181, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 8486; - this.any_identifier(); + this.state = 8443; + this.anyIdentifier(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 8487; + this.state = 8444; this.match(PostgreSqlParser.KW_SQLSTATE); - this.state = 8488; + this.state = 8445; this.stringConst(); } break; @@ -54221,25 +53996,25 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public any_identifier(): Any_identifierContext { - let localContext = new Any_identifierContext(this.context, this.state); - this.enterRule(localContext, 930, PostgreSqlParser.RULE_any_identifier); + public anyIdentifier(): AnyIdentifierContext { + let localContext = new AnyIdentifierContext(this.context, this.state); + this.enterRule(localContext, 922, PostgreSqlParser.RULE_anyIdentifier); try { - this.state = 8493; + this.state = 8450; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1185, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1182, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 8491; + this.state = 8448; this.colId(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 8492; - this.unreserved_keyword(); + this.state = 8449; + this.unreservedKeyword(); } break; } @@ -54258,82 +54033,82 @@ export class PostgreSqlParser extends SQLParserBase { } return localContext; } - public sql_expression(): Sql_expressionContext { - let localContext = new Sql_expressionContext(this.context, this.state); - this.enterRule(localContext, 932, PostgreSqlParser.RULE_sql_expression); + public sqlExpression(): SqlExpressionContext { + let localContext = new SqlExpressionContext(this.context, this.state); + this.enterRule(localContext, 924, PostgreSqlParser.RULE_sqlExpression); let _la: number; try { this.enterOuterAlt(localContext, 1); { - this.state = 8496; + this.state = 8453; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1186, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1183, this.context) ) { case 1: { - this.state = 8495; - this.target_list(); + this.state = 8452; + this.targetList(); } break; } - this.state = 8499; + this.state = 8456; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1187, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1184, this.context) ) { case 1: { - this.state = 8498; - this.into_clause(); + this.state = 8455; + this.intoClause(); } break; } - this.state = 8502; + this.state = 8459; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 64) { { - this.state = 8501; - this.from_clause(); + this.state = 8458; + this.fromClause(); } } - this.state = 8505; + this.state = 8462; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 103) { { - this.state = 8504; - this.where_clause(); + this.state = 8461; + this.whereClause(); } } - this.state = 8508; + this.state = 8465; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 66) { { - this.state = 8507; - this.group_clause(); + this.state = 8464; + this.groupClause(); } } - this.state = 8512; + this.state = 8469; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 67) { { - this.state = 8510; + this.state = 8467; this.match(PostgreSqlParser.KW_HAVING); - this.state = 8511; + this.state = 8468; this.expression(); } } - this.state = 8515; + this.state = 8472; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 1192, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 1189, this.context) ) { case 1: { - this.state = 8514; - this.window_clause(); + this.state = 8471; + this.windowClause(); } break; } @@ -54356,14 +54131,14 @@ export class PostgreSqlParser extends SQLParserBase { public override sempred(localContext: antlr.RuleContext | null, ruleIndex: number, predIndex: number): boolean { switch (ruleIndex) { - case 339: + case 335: return this.booleanExpression_sempred(localContext as BooleanExpressionContext, predIndex); - case 341: + case 337: return this.valueExpression_sempred(localContext as ValueExpressionContext, predIndex); - case 342: + case 338: return this.primaryExpression_sempred(localContext as PrimaryExpressionContext, predIndex); - case 401: - return this.column_name_sempred(localContext as Column_nameContext, predIndex); + case 397: + return this.columnName_sempred(localContext as ColumnNameContext, predIndex); } return true; } @@ -54402,7 +54177,7 @@ export class PostgreSqlParser extends SQLParserBase { } return true; } - private column_name_sempred(localContext: Column_nameContext | null, predIndex: number): boolean { + private columnName_sempred(localContext: ColumnNameContext | null, predIndex: number): boolean { switch (predIndex) { case 10: return this.shouldMatchEmpty(); @@ -54411,7 +54186,7 @@ export class PostgreSqlParser extends SQLParserBase { } public static readonly _serializedATN: number[] = [ - 4,1,593,8518,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, + 4,1,593,8475,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, @@ -54492,3833 +54267,3815 @@ export class PostgreSqlParser extends SQLParserBase { 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, - 1,0,5,0,936,8,0,10,0,12,0,939,9,0,1,0,1,0,1,1,1,1,3,1,945,8,1,1, - 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, - 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, - 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, - 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, - 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, - 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, - 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, - 2,1,2,1,2,1,2,1,2,1,2,3,2,1065,8,2,3,2,1067,8,2,1,3,1,3,1,3,1,4, - 1,4,1,4,1,4,3,4,1076,8,4,1,4,5,4,1079,8,4,10,4,12,4,1082,9,4,1,5, - 1,5,1,5,3,5,1087,8,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5, - 1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5, - 1,5,1,5,1,5,1,5,1,5,1,5,3,5,1122,8,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6, - 1,6,3,6,1132,8,6,1,7,1,7,1,7,1,7,3,7,1138,8,7,1,7,5,7,1141,8,7,10, - 7,12,7,1144,9,7,1,8,1,8,1,8,1,8,3,8,1150,8,8,1,8,5,8,1153,8,8,10, - 8,12,8,1156,9,8,1,9,1,9,1,9,1,9,3,9,1162,8,9,1,9,1,9,1,9,1,9,1,9, - 1,10,1,10,1,10,1,10,3,10,1173,8,10,1,10,1,10,1,11,1,11,5,11,1179, - 8,11,10,11,12,11,1182,9,11,1,11,3,11,1185,8,11,1,11,1,11,1,11,1, - 11,1,11,1,11,1,11,1,11,1,11,1,11,3,11,1197,8,11,1,11,1,11,1,11,1, - 11,3,11,1203,8,11,1,12,1,12,1,12,1,12,3,12,1209,8,12,1,12,1,12,3, - 12,1213,8,12,1,12,1,12,1,12,3,12,1218,8,12,1,12,1,12,3,12,1222,8, - 12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,3,12,1235, - 8,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,3,12,1245,8,12,3,12, - 1247,8,12,1,13,1,13,1,13,1,13,3,13,1253,8,13,1,13,5,13,1256,8,13, - 10,13,12,13,1259,9,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1, - 15,1,15,3,15,1271,8,15,1,15,3,15,1274,8,15,1,15,1,15,1,15,3,15,1279, - 8,15,1,15,5,15,1282,8,15,10,15,12,15,1285,9,15,1,16,1,16,1,17,1, - 17,1,17,1,17,1,17,1,17,3,17,1295,8,17,1,18,1,18,3,18,1299,8,18,1, - 18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,3,19,1311,8,19,1, - 20,1,20,3,20,1315,8,20,1,20,3,20,1318,8,20,1,20,1,20,3,20,1322,8, - 20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,3,21,1334,8, - 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,21,1,21,1,21,3,21,1352,8,21,1,22,1,22,1,22,5,22,1357,8,22,10, - 22,12,22,1360,9,22,1,23,1,23,1,23,5,23,1365,8,23,10,23,12,23,1368, - 9,23,1,24,1,24,3,24,1372,8,24,1,25,1,25,1,25,1,25,1,25,3,25,1379, - 8,25,1,26,1,26,1,26,1,26,1,26,1,26,3,26,1387,8,26,1,27,1,27,1,27, - 1,27,3,27,1393,8,27,1,28,1,28,1,28,1,28,1,28,1,28,3,28,1401,8,28, - 1,28,1,28,1,28,1,28,1,28,1,28,3,28,1409,8,28,1,29,1,29,3,29,1413, - 8,29,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31, - 3,31,1427,8,31,1,32,1,32,1,32,3,32,1432,8,32,1,33,1,33,1,33,3,33, - 1437,8,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,3,34, - 1449,8,34,1,35,1,35,1,35,1,35,3,35,1455,8,35,1,35,1,35,1,36,1,36, - 1,37,1,37,1,37,1,38,1,38,1,38,3,38,1467,8,38,1,38,1,38,1,38,3,38, - 1472,8,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,3,38,1482,8,38, - 1,38,1,38,1,38,1,38,3,38,1488,8,38,1,38,1,38,1,38,3,38,1493,8,38, - 1,38,1,38,1,38,1,38,1,38,1,38,3,38,1501,8,38,1,38,1,38,1,38,3,38, - 1506,8,38,1,38,1,38,1,38,1,38,1,38,3,38,1513,8,38,1,38,1,38,1,38, - 3,38,1518,8,38,1,38,1,38,1,38,3,38,1523,8,38,1,38,1,38,1,38,1,38, - 1,38,1,38,1,38,1,38,3,38,1533,8,38,1,38,1,38,1,38,3,38,1538,8,38, - 1,38,1,38,1,38,3,38,1543,8,38,1,38,1,38,1,38,1,38,1,38,3,38,1550, - 8,38,1,38,1,38,3,38,1554,8,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38, - 1,38,1,38,1,38,1,38,1,38,3,38,1568,8,38,1,38,1,38,1,38,1,38,3,38, - 1574,8,38,1,38,1,38,1,38,1,38,3,38,1580,8,38,1,38,1,38,1,38,3,38, - 1585,8,38,1,39,1,39,1,39,5,39,1590,8,39,10,39,12,39,1593,9,39,1, - 40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,3,40,1604,8,40,1,41,1, - 41,1,41,1,41,5,41,1610,8,41,10,41,12,41,1613,9,41,1,41,1,41,1,42, - 1,42,1,42,3,42,1620,8,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,3,44,1636,8,44,1,45,1,45,1,45,1,45, - 1,46,1,46,1,46,3,46,1645,8,46,1,46,1,46,1,46,1,46,1,46,5,46,1652, - 8,46,10,46,12,46,1655,9,46,1,46,1,46,1,46,1,46,1,46,1,46,3,46,1663, - 8,46,1,46,1,46,3,46,1667,8,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46, - 1,46,1,46,1,46,3,46,1679,8,46,1,46,1,46,1,46,1,46,1,46,1,46,3,46, - 1687,8,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,3,46,1697,8,46, - 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,46, - 1,46,1,46,1,46,1,46,1,46,3,46,1717,8,46,1,46,1,46,1,46,3,46,1722, - 8,46,1,46,3,46,1725,8,46,1,46,1,46,1,46,1,46,1,46,3,46,1732,8,46, - 1,46,3,46,1735,8,46,1,46,1,46,3,46,1739,8,46,1,46,1,46,3,46,1743, - 8,46,1,46,3,46,1746,8,46,1,46,1,46,1,46,3,46,1751,8,46,1,46,1,46, - 1,46,3,46,1756,8,46,1,46,1,46,3,46,1760,8,46,1,46,1,46,1,46,1,46, - 1,46,1,46,1,46,3,46,1769,8,46,1,46,1,46,1,46,1,46,3,46,1775,8,46, - 1,46,1,46,3,46,1779,8,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,3,46, - 1788,8,46,1,46,3,46,1791,8,46,1,46,1,46,1,46,1,46,3,46,1797,8,46, - 1,46,1,46,1,46,1,46,1,46,1,46,1,46,3,46,1806,8,46,1,46,1,46,1,46, - 1,46,1,46,1,46,1,46,1,46,4,46,1816,8,46,11,46,12,46,1817,1,46,1, - 46,3,46,1822,8,46,1,46,1,46,3,46,1826,8,46,1,46,1,46,1,46,3,46,1831, - 8,46,1,46,3,46,1834,8,46,1,46,1,46,1,46,1,46,3,46,1840,8,46,4,46, - 1842,8,46,11,46,12,46,1843,1,46,1,46,3,46,1848,8,46,1,46,1,46,1, - 46,1,46,3,46,1854,8,46,1,46,1,46,3,46,1858,8,46,1,46,1,46,1,46,3, - 46,1863,8,46,1,46,1,46,1,46,3,46,1868,8,46,1,46,1,46,3,46,1872,8, - 46,1,46,3,46,1875,8,46,1,47,1,47,1,47,1,47,1,47,3,47,1882,8,47,1, - 48,1,48,1,49,1,49,1,49,1,50,1,50,1,50,1,50,5,50,1893,8,50,10,50, - 12,50,1896,9,50,1,50,1,50,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52, - 3,52,1908,8,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53, - 1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,3,53, - 1932,8,53,1,54,1,54,1,54,1,54,1,54,1,54,5,54,1940,8,54,10,54,12, - 54,1943,9,54,1,55,1,55,1,55,1,55,3,55,1949,8,55,1,55,1,55,1,55,3, - 55,1954,8,55,1,55,1,55,3,55,1958,8,55,1,55,1,55,1,55,1,55,1,55,3, - 55,1965,8,55,1,55,1,55,1,55,3,55,1970,8,55,1,55,3,55,1973,8,55,3, - 55,1975,8,55,1,56,1,56,1,56,3,56,1980,8,56,1,57,1,57,3,57,1984,8, - 57,1,57,1,57,3,57,1988,8,57,1,57,1,57,3,57,1992,8,57,1,57,1,57,1, - 57,3,57,1997,8,57,1,57,3,57,2000,8,57,1,57,1,57,3,57,2004,8,57,1, - 57,3,57,2007,8,57,1,57,1,57,3,57,2011,8,57,1,57,1,57,1,57,1,57,1, - 57,1,57,3,57,2019,8,57,1,57,1,57,1,57,3,57,2024,8,57,1,57,3,57,2027, - 8,57,1,57,1,57,3,57,2031,8,57,1,58,1,58,1,58,1,58,3,58,2037,8,58, - 1,58,1,58,1,58,1,58,1,58,1,58,1,58,3,58,2046,8,58,1,58,1,58,3,58, - 2050,8,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,3,58,2060,8,58, - 1,58,1,58,1,58,3,58,2065,8,58,5,58,2067,8,58,10,58,12,58,2070,9, - 58,1,58,3,58,2073,8,58,5,58,2075,8,58,10,58,12,58,2078,9,58,1,59, - 1,59,1,59,1,59,3,59,2084,8,59,1,59,1,59,1,59,3,59,2089,8,59,5,59, - 2091,8,59,10,59,12,59,2094,9,59,1,59,1,59,3,59,2098,8,59,1,60,1, - 60,1,60,1,60,1,60,1,60,1,60,1,60,5,60,2108,8,60,10,60,12,60,2111, - 9,60,1,60,1,60,3,60,2115,8,60,1,61,1,61,3,61,2119,8,61,1,61,1,61, - 3,61,2123,8,61,1,61,1,61,1,61,3,61,2128,8,61,1,61,1,61,3,61,2132, - 8,61,1,61,3,61,2135,8,61,1,61,3,61,2138,8,61,1,61,3,61,2141,8,61, - 1,61,3,61,2144,8,61,1,61,3,61,2147,8,61,1,61,1,61,1,61,3,61,2152, - 8,61,1,61,3,61,2155,8,61,1,61,3,61,2158,8,61,1,61,3,61,2161,8,61, - 1,61,3,61,2164,8,61,1,61,3,61,2167,8,61,1,61,1,61,1,61,1,61,3,61, - 2173,8,61,1,61,1,61,3,61,2177,8,61,1,61,3,61,2180,8,61,1,61,3,61, - 2183,8,61,1,61,3,61,2186,8,61,1,61,3,61,2189,8,61,3,61,2191,8,61, - 1,62,1,62,1,62,1,62,1,62,3,62,2198,8,62,1,63,1,63,1,63,1,63,5,63, - 2204,8,63,10,63,12,63,2207,9,63,1,63,1,63,1,64,1,64,1,64,5,64,2214, - 8,64,10,64,12,64,2217,9,64,1,65,1,65,3,65,2221,8,65,1,65,1,65,1, - 65,1,65,1,65,1,65,5,65,2229,8,65,10,65,12,65,2232,9,65,3,65,2234, - 8,65,1,66,1,66,1,66,3,66,2239,8,66,1,66,5,66,2242,8,66,10,66,12, - 66,2245,9,66,1,66,1,66,3,66,2249,8,66,1,66,3,66,2252,8,66,1,67,1, - 67,1,67,3,67,2257,8,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,3,67,2266, - 8,67,3,67,2268,8,67,1,67,1,67,3,67,2272,8,67,1,67,3,67,2275,8,67, - 1,67,1,67,3,67,2279,8,67,1,67,5,67,2282,8,67,10,67,12,67,2285,9, - 67,1,68,1,68,3,68,2289,8,68,1,68,1,68,3,68,2293,8,68,1,68,3,68,2296, - 8,68,1,68,1,68,3,68,2300,8,68,1,69,3,69,2303,8,69,1,69,1,69,1,69, - 3,69,2308,8,69,1,69,3,69,2311,8,69,1,69,1,69,1,69,3,69,2316,8,69, - 1,69,3,69,2319,8,69,1,69,1,69,3,69,2323,8,69,1,69,3,69,2326,8,69, - 1,69,3,69,2329,8,69,1,69,1,69,1,69,3,69,2334,8,69,1,69,3,69,2337, - 8,69,1,69,1,69,1,69,1,69,1,69,1,69,3,69,2345,8,69,1,69,1,69,1,69, - 1,69,1,69,1,69,1,69,1,69,4,69,2355,8,69,11,69,12,69,2356,1,69,1, - 69,3,69,2361,8,69,1,69,1,69,1,69,1,69,1,69,3,69,2368,8,69,1,69,1, - 69,1,69,3,69,2373,8,69,1,69,3,69,2376,8,69,1,69,3,69,2379,8,69,1, - 69,3,69,2382,8,69,1,70,1,70,1,70,3,70,2387,8,70,1,71,1,71,1,72,1, - 72,1,72,1,72,1,72,5,72,2396,8,72,10,72,12,72,2399,9,72,1,72,1,72, - 1,72,3,72,2404,8,72,1,72,1,72,3,72,2408,8,72,1,72,3,72,2411,8,72, - 1,72,3,72,2414,8,72,1,72,5,72,2417,8,72,10,72,12,72,2420,9,72,1, - 72,1,72,5,72,2424,8,72,10,72,12,72,2427,9,72,3,72,2429,8,72,1,72, - 1,72,3,72,2433,8,72,1,72,1,72,1,72,1,72,5,72,2439,8,72,10,72,12, - 72,2442,9,72,1,72,1,72,3,72,2446,8,72,1,72,3,72,2449,8,72,1,72,3, - 72,2452,8,72,1,72,1,72,1,72,1,72,1,72,3,72,2459,8,72,1,72,5,72,2462, - 8,72,10,72,12,72,2465,9,72,1,72,1,72,1,72,1,72,1,72,1,72,3,72,2473, - 8,72,1,72,3,72,2476,8,72,1,72,3,72,2479,8,72,1,72,5,72,2482,8,72, - 10,72,12,72,2485,9,72,3,72,2487,8,72,1,73,1,73,1,73,1,73,1,74,1, - 74,1,74,1,74,5,74,2497,8,74,10,74,12,74,2500,9,74,1,74,1,74,1,75, - 1,75,1,75,5,75,2507,8,75,10,75,12,75,2510,9,75,1,76,1,76,1,76,1, - 77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,3,78,2526,8, - 78,1,79,1,79,3,79,2530,8,79,1,79,1,79,3,79,2534,8,79,3,79,2536,8, - 79,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,3,82,2553,8,82,3,82,2555,8,82,1,83,1,83,1,83,1,83,1, - 83,1,84,1,84,1,84,1,84,1,84,1,84,1,84,5,84,2569,8,84,10,84,12,84, - 2572,9,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,85,3,85,2582,8,85, - 1,85,3,85,2585,8,85,1,85,3,85,2588,8,85,1,86,1,86,1,86,1,87,1,87, - 1,87,1,87,3,87,2597,8,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,3,88, - 2606,8,88,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91, - 1,92,1,92,1,92,3,92,2622,8,92,1,92,3,92,2625,8,92,1,92,3,92,2628, - 8,92,1,92,1,92,1,92,1,92,5,92,2634,8,92,10,92,12,92,2637,9,92,1, - 92,3,92,2640,8,92,1,92,1,92,1,93,1,93,1,93,3,93,2647,8,93,1,93,1, - 93,1,93,1,93,1,93,1,94,1,94,3,94,2656,8,94,1,94,1,94,3,94,2660,8, - 94,1,94,1,94,1,94,1,94,3,94,2666,8,94,1,95,1,95,3,95,2670,8,95,1, - 95,3,95,2673,8,95,1,95,3,95,2676,8,95,1,95,3,95,2679,8,95,1,95,3, - 95,2682,8,95,1,96,1,96,1,96,1,96,3,96,2688,8,96,1,97,1,97,3,97,2692, - 8,97,1,97,1,97,1,97,3,97,2697,8,97,1,97,1,97,3,97,2701,8,97,1,97, - 3,97,2704,8,97,1,97,3,97,2707,8,97,1,97,3,97,2710,8,97,1,97,1,97, - 1,97,3,97,2715,8,97,1,98,1,98,1,98,1,98,3,98,2721,8,98,1,98,1,98, - 3,98,2725,8,98,1,99,1,99,3,99,2729,8,99,1,99,1,99,3,99,2733,8,99, - 1,99,1,99,4,99,2737,8,99,11,99,12,99,2738,3,99,2741,8,99,1,100,1, - 100,1,100,3,100,2746,8,100,1,100,1,100,4,100,2750,8,100,11,100,12, - 100,2751,1,101,1,101,1,101,1,101,3,101,2758,8,101,1,101,1,101,3, - 101,2762,8,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1, - 101,1,101,1,101,1,101,1,101,3,101,2777,8,101,1,101,1,101,1,101,3, - 101,2782,8,101,1,101,3,101,2785,8,101,3,101,2787,8,101,1,102,3,102, - 2790,8,102,1,102,1,102,3,102,2794,8,102,1,103,1,103,3,103,2798,8, - 103,1,103,3,103,2801,8,103,1,103,3,103,2804,8,103,1,103,1,103,1, - 103,1,103,1,103,1,103,3,103,2812,8,103,1,103,1,103,1,103,1,103,3, - 103,2818,8,103,3,103,2820,8,103,1,104,1,104,1,104,1,104,3,104,2826, - 8,104,1,104,1,104,1,104,3,104,2831,8,104,1,105,1,105,1,105,3,105, - 2836,8,105,1,105,1,105,3,105,2840,8,105,1,105,1,105,1,105,1,105, - 1,105,5,105,2847,8,105,10,105,12,105,2850,9,105,1,106,1,106,1,106, - 1,106,1,106,1,106,5,106,2858,8,106,10,106,12,106,2861,9,106,1,107, - 1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107, - 1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107, - 1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107, - 1,107,1,107,3,107,2899,8,107,1,108,1,108,1,108,1,108,1,108,1,108, - 4,108,2907,8,108,11,108,12,108,2908,3,108,2911,8,108,1,108,3,108, - 2914,8,108,1,109,1,109,3,109,2918,8,109,1,109,1,109,3,109,2922,8, - 109,1,110,1,110,1,110,1,110,1,110,1,110,4,110,2930,8,110,11,110, - 12,110,2931,3,110,2934,8,110,1,110,1,110,4,110,2938,8,110,11,110, - 12,110,2939,3,110,2942,8,110,1,111,1,111,1,111,1,111,1,111,5,111, - 2949,8,111,10,111,12,111,2952,9,111,1,111,1,111,1,112,1,112,1,112, - 1,112,1,112,5,112,2961,8,112,10,112,12,112,2964,9,112,1,112,1,112, - 1,113,1,113,1,113,1,114,1,114,1,114,1,115,1,115,1,115,3,115,2977, - 8,115,1,115,1,115,1,115,3,115,2982,8,115,1,115,3,115,2985,8,115, - 1,115,1,115,1,115,1,115,1,115,3,115,2992,8,115,1,116,1,116,1,116, - 3,116,2997,8,116,1,117,1,117,1,117,1,117,1,117,1,117,3,117,3005, - 8,117,3,117,3007,8,117,1,118,1,118,1,118,1,118,3,118,3013,8,118, - 1,118,1,118,1,118,3,118,3018,8,118,1,118,1,118,3,118,3022,8,118, - 1,118,1,118,1,118,3,118,3027,8,118,1,118,1,118,1,118,1,118,3,118, - 3033,8,118,1,118,1,118,1,118,1,118,1,118,3,118,3040,8,118,1,118, - 1,118,1,118,1,118,3,118,3046,8,118,3,118,3048,8,118,1,119,1,119, - 1,119,1,119,1,119,1,119,1,119,3,119,3057,8,119,1,119,1,119,1,119, - 1,119,3,119,3063,8,119,1,119,1,119,1,119,1,119,1,119,1,119,3,119, - 3071,8,119,1,120,1,120,1,120,1,120,3,120,3077,8,120,1,120,1,120, - 1,120,3,120,3082,8,120,1,120,1,120,1,120,3,120,3087,8,120,1,121, - 1,121,1,121,1,121,1,121,1,121,3,121,3095,8,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,3,122, - 3110,8,122,3,122,3112,8,122,1,122,1,122,3,122,3116,8,122,1,122,1, - 122,3,122,3120,8,122,1,122,3,122,3123,8,122,1,122,3,122,3126,8,122, - 1,123,1,123,1,123,1,123,1,123,1,123,1,123,3,123,3135,8,123,1,123, - 3,123,3138,8,123,1,123,3,123,3141,8,123,1,124,1,124,1,124,1,124, - 3,124,3147,8,124,1,124,1,124,5,124,3151,8,124,10,124,12,124,3154, - 9,124,1,124,3,124,3157,8,124,1,124,1,124,1,124,1,124,1,124,1,124, - 1,124,1,124,1,124,1,124,3,124,3169,8,124,1,124,1,124,1,124,1,124, - 3,124,3175,8,124,1,125,3,125,3178,8,125,1,125,1,125,1,125,3,125, - 3183,8,125,1,125,1,125,3,125,3187,8,125,1,125,1,125,1,125,1,125, - 1,125,3,125,3194,8,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125, - 1,125,3,125,3204,8,125,3,125,3206,8,125,1,126,1,126,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,128,1,128,1,128,1,128,1,129,1,129,3,129,3230,8,129,1,129, - 1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,3,129,3242, - 8,129,1,129,4,129,3245,8,129,11,129,12,129,3246,3,129,3249,8,129, - 1,129,1,129,3,129,3253,8,129,1,129,3,129,3256,8,129,1,129,3,129, - 3259,8,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,3,129, - 3269,8,129,1,129,3,129,3272,8,129,1,129,1,129,1,129,1,129,1,129, - 1,129,1,129,1,129,3,129,3282,8,129,1,129,5,129,3285,8,129,10,129, - 12,129,3288,9,129,1,129,1,129,3,129,3292,8,129,1,129,3,129,3295, - 8,129,1,129,3,129,3298,8,129,1,129,1,129,1,129,1,129,1,129,1,129, - 3,129,3306,8,129,1,130,1,130,1,130,1,130,3,130,3312,8,130,1,131, - 1,131,1,131,5,131,3317,8,131,10,131,12,131,3320,9,131,1,132,1,132, - 1,132,1,132,1,132,3,132,3327,8,132,1,132,3,132,3330,8,132,1,133, - 1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,3,134,3341,8,134, - 1,135,1,135,3,135,3345,8,135,1,135,1,135,5,135,3349,8,135,10,135, - 12,135,3352,9,135,1,136,1,136,1,136,1,136,3,136,3358,8,136,1,137, - 3,137,3361,8,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,3,137, - 3370,8,137,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138, - 1,138,5,138,3382,8,138,10,138,12,138,3385,9,138,3,138,3387,8,138, - 1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,5,139, - 3399,8,139,10,139,12,139,3402,9,139,1,139,1,139,1,140,1,140,1,140, - 1,140,1,140,1,140,3,140,3412,8,140,1,140,3,140,3415,8,140,1,141, - 1,141,1,141,1,141,1,141,1,141,1,141,1,141,5,141,3425,8,141,10,141, - 12,141,3428,9,141,1,142,1,142,3,142,3432,8,142,1,142,1,142,1,142, - 1,142,1,142,1,142,1,142,1,142,1,142,5,142,3443,8,142,10,142,12,142, - 3446,9,142,1,142,1,142,3,142,3450,8,142,1,142,1,142,1,142,1,142, - 1,142,1,142,1,142,1,142,1,142,1,142,1,142,3,142,3463,8,142,1,142, - 1,142,1,142,1,142,1,142,5,142,3470,8,142,10,142,12,142,3473,9,142, - 3,142,3475,8,142,1,142,3,142,3478,8,142,1,142,1,142,1,142,1,142, - 1,142,3,142,3485,8,142,1,142,3,142,3488,8,142,1,142,1,142,1,142, - 1,142,1,142,1,142,1,142,1,142,1,142,1,142,3,142,3500,8,142,1,142, - 1,142,1,142,1,142,3,142,3506,8,142,3,142,3508,8,142,1,143,1,143, - 1,143,1,143,5,143,3514,8,143,10,143,12,143,3517,9,143,1,143,1,143, - 1,144,1,144,1,144,3,144,3524,8,144,1,145,1,145,1,145,1,145,1,145, - 1,145,3,145,3532,8,145,1,146,1,146,1,146,1,146,1,147,1,147,1,147, - 1,147,1,147,1,147,3,147,3544,8,147,1,147,1,147,1,147,3,147,3549, - 8,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,3,147, - 3560,8,147,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149, - 3,149,3571,8,149,1,149,1,149,1,149,1,149,1,149,1,149,3,149,3579, - 8,149,1,149,1,149,1,149,1,149,5,149,3585,8,149,10,149,12,149,3588, - 9,149,1,150,1,150,1,150,1,150,3,150,3594,8,150,1,150,1,150,1,150, - 1,150,1,150,3,150,3601,8,150,3,150,3603,8,150,1,150,3,150,3606,8, - 150,1,150,1,150,1,150,3,150,3611,8,150,1,150,1,150,1,150,3,150,3616, - 8,150,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,152,1,152,5,152,3633,8,152,10,152,12,152,3636, - 9,152,1,152,1,152,1,152,1,152,5,152,3642,8,152,10,152,12,152,3645, - 9,152,3,152,3647,8,152,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,155,1,155,1,155,1,155,1,155,3,155,3674,8,155,1,155, - 1,155,1,155,1,155,1,155,1,155,1,155,3,155,3683,8,155,1,155,3,155, - 3686,8,155,1,155,1,155,3,155,3690,8,155,1,155,1,155,3,155,3694,8, - 155,1,155,1,155,3,155,3698,8,155,1,155,1,155,1,155,5,155,3703,8, - 155,10,155,12,155,3706,9,155,1,155,3,155,3709,8,155,1,155,1,155, - 3,155,3713,8,155,1,155,1,155,3,155,3717,8,155,1,155,1,155,3,155, - 3721,8,155,1,155,1,155,1,155,3,155,3726,8,155,1,155,1,155,3,155, - 3730,8,155,1,155,1,155,1,155,3,155,3735,8,155,1,155,1,155,1,155, - 1,155,3,155,3741,8,155,1,155,1,155,1,155,3,155,3746,8,155,1,155, - 1,155,1,155,5,155,3751,8,155,10,155,12,155,3754,9,155,1,155,3,155, - 3757,8,155,1,155,1,155,1,155,1,155,3,155,3763,8,155,1,155,1,155, - 3,155,3767,8,155,1,155,1,155,1,155,3,155,3772,8,155,1,155,1,155, - 1,155,1,155,1,155,1,155,3,155,3780,8,155,1,155,1,155,1,155,1,155, - 3,155,3786,8,155,1,155,1,155,1,155,3,155,3791,8,155,1,155,1,155, - 1,155,1,155,1,155,3,155,3798,8,155,1,155,1,155,1,155,3,155,3803, - 8,155,1,155,1,155,3,155,3807,8,155,1,155,1,155,1,155,3,155,3812, - 8,155,1,155,1,155,1,155,1,155,3,155,3818,8,155,1,155,1,155,1,155, - 1,155,1,155,3,155,3825,8,155,1,155,1,155,1,155,3,155,3830,8,155, - 1,155,1,155,1,155,1,155,1,155,3,155,3837,8,155,1,155,1,155,1,155, - 3,155,3842,8,155,1,155,1,155,1,155,1,155,1,155,3,155,3849,8,155, - 1,155,1,155,3,155,3853,8,155,1,155,1,155,1,155,1,155,5,155,3859, - 8,155,10,155,12,155,3862,9,155,1,155,3,155,3865,8,155,3,155,3867, - 8,155,1,156,3,156,3870,8,156,1,156,1,156,1,156,3,156,3875,8,156, - 1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,3,156,3885,8,156, - 1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157, - 1,157,1,157,3,157,3900,8,157,1,157,3,157,3903,8,157,1,157,1,157, - 1,157,1,157,1,157,1,157,3,157,3911,8,157,1,158,1,158,1,158,5,158, - 3916,8,158,10,158,12,158,3919,9,158,1,159,1,159,3,159,3923,8,159, - 1,160,1,160,4,160,3927,8,160,11,160,12,160,3928,1,161,1,161,3,161, - 3933,8,161,1,161,1,161,1,161,5,161,3938,8,161,10,161,12,161,3941, - 9,161,1,161,1,161,3,161,3945,8,161,1,161,3,161,3948,8,161,1,162, - 3,162,3951,8,162,1,162,1,162,3,162,3955,8,162,1,163,1,163,1,163, - 1,163,1,163,1,163,1,163,3,163,3964,8,163,1,163,1,163,1,163,1,163, - 1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163, - 1,163,3,163,3982,8,163,1,163,3,163,3985,8,163,1,163,1,163,1,163, - 1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163, - 1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163, - 1,163,1,163,1,163,1,163,1,163,3,163,4017,8,163,1,163,1,163,1,163, - 3,163,4022,8,163,1,164,1,164,1,164,1,164,3,164,4028,8,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,164,1,164,1,164,1,164,1,164,1,164,3,164,4048,8,164,1,164,1,164, - 1,164,3,164,4053,8,164,1,165,1,165,1,165,1,166,3,166,4059,8,166, - 1,166,3,166,4062,8,166,1,166,1,166,3,166,4066,8,166,1,166,1,166, - 3,166,4070,8,166,1,166,1,166,1,166,1,166,3,166,4076,8,166,1,166, - 3,166,4079,8,166,1,166,1,166,3,166,4083,8,166,1,166,1,166,3,166, - 4087,8,166,1,166,1,166,1,166,3,166,4092,8,166,1,166,3,166,4095,8, - 166,1,166,3,166,4098,8,166,1,166,3,166,4101,8,166,1,167,1,167,1, - 168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,3,168,4114,8, - 168,1,169,1,169,1,169,1,169,3,169,4120,8,169,1,169,1,169,1,169,1, - 169,1,169,1,169,3,169,4128,8,169,1,170,1,170,1,170,5,170,4133,8, - 170,10,170,12,170,4136,9,170,1,170,1,170,3,170,4140,8,170,1,170, - 3,170,4143,8,170,1,170,1,170,1,170,5,170,4148,8,170,10,170,12,170, - 4151,9,170,3,170,4153,8,170,1,171,1,171,1,172,1,172,1,172,1,172, - 3,172,4161,8,172,1,172,3,172,4164,8,172,1,173,1,173,1,173,3,173, - 4169,8,173,1,173,1,173,1,173,1,173,1,173,3,173,4176,8,173,1,173, - 3,173,4179,8,173,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,173,1,173,1,173,1,173,5,173,4197,8,173, - 10,173,12,173,4200,9,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173, - 1,173,1,173,3,173,4211,8,173,1,174,3,174,4214,8,174,1,174,1,174, - 1,174,1,174,3,174,4220,8,174,1,174,5,174,4223,8,174,10,174,12,174, - 4226,9,174,1,175,1,175,1,175,1,175,5,175,4232,8,175,10,175,12,175, - 4235,9,175,1,175,1,175,1,175,1,175,1,175,3,175,4242,8,175,1,175, - 1,175,1,175,3,175,4247,8,175,1,176,1,176,1,176,1,176,3,176,4253, - 8,176,1,176,1,176,1,176,5,176,4258,8,176,10,176,12,176,4261,9,176, - 1,176,1,176,1,176,1,176,1,176,3,176,4268,8,176,1,176,3,176,4271, - 8,176,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,5,177, - 4282,8,177,10,177,12,177,4285,9,177,1,177,1,177,1,178,1,178,1,178, - 1,178,1,178,1,178,1,178,1,178,1,178,3,178,4298,8,178,1,178,1,178, - 1,178,1,178,3,178,4304,8,178,1,178,1,178,1,178,1,178,1,178,1,178, - 3,178,4312,8,178,3,178,4314,8,178,1,179,1,179,1,180,1,180,3,180, - 4320,8,180,1,180,1,180,3,180,4324,8,180,1,180,3,180,4327,8,180,1, - 180,3,180,4330,8,180,1,180,1,180,1,180,3,180,4335,8,180,1,180,1, - 180,1,180,3,180,4340,8,180,1,180,1,180,3,180,4344,8,180,1,180,3, - 180,4347,8,180,1,180,3,180,4350,8,180,1,180,3,180,4353,8,180,1,180, - 3,180,4356,8,180,1,181,1,181,1,181,1,181,5,181,4362,8,181,10,181, - 12,181,4365,9,181,1,181,1,181,1,182,1,182,1,182,1,182,1,182,1,182, - 3,182,4375,8,182,1,182,3,182,4378,8,182,1,182,3,182,4381,8,182,1, - 182,1,182,1,182,3,182,4386,8,182,1,182,3,182,4389,8,182,1,182,1, - 182,3,182,4393,8,182,1,183,1,183,3,183,4397,8,183,1,183,1,183,1, - 183,1,183,3,183,4403,8,183,1,183,1,183,1,183,1,183,5,183,4409,8, - 183,10,183,12,183,4412,9,183,3,183,4414,8,183,1,183,1,183,1,183, - 1,183,1,183,1,183,1,183,1,183,1,183,5,183,4425,8,183,10,183,12,183, - 4428,9,183,1,183,1,183,3,183,4432,8,183,3,183,4434,8,183,1,183,4, - 183,4437,8,183,11,183,12,183,4438,1,183,1,183,1,183,1,183,1,183, - 3,183,4446,8,183,1,184,1,184,1,184,1,185,1,185,3,185,4453,8,185, - 1,185,1,185,1,186,1,186,1,186,5,186,4460,8,186,10,186,12,186,4463, - 9,186,1,187,1,187,1,187,5,187,4468,8,187,10,187,12,187,4471,9,187, - 1,188,1,188,1,188,1,188,1,188,3,188,4478,8,188,1,189,1,189,1,189, - 5,189,4483,8,189,10,189,12,189,4486,9,189,1,190,1,190,1,190,1,190, - 1,190,3,190,4493,8,190,1,191,1,191,1,191,5,191,4498,8,191,10,191, - 12,191,4501,9,191,1,192,1,192,1,192,1,192,1,192,3,192,4508,8,192, - 1,193,1,193,3,193,4512,8,193,1,193,1,193,3,193,4516,8,193,3,193, - 4518,8,193,1,193,1,193,1,194,1,194,3,194,4524,8,194,1,194,1,194, - 1,194,3,194,4529,8,194,1,195,1,195,3,195,4533,8,195,1,195,1,195, - 1,195,1,195,1,195,3,195,4540,8,195,1,196,1,196,1,196,3,196,4545, - 8,196,1,197,1,197,1,197,3,197,4550,8,197,1,197,1,197,1,197,3,197, - 4555,8,197,3,197,4557,8,197,1,197,1,197,1,198,1,198,1,198,1,199, - 1,199,1,199,3,199,4567,8,199,1,199,1,199,1,199,1,199,1,199,1,199, - 1,199,1,199,3,199,4577,8,199,1,199,1,199,1,199,1,199,1,199,1,199, - 1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,3,199,4593,8,199, - 1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200, - 1,200,1,200,1,200,5,200,4609,8,200,10,200,12,200,4612,9,200,1,200, - 1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,3,200,4623,8,200, - 1,200,1,200,1,200,1,200,1,200,3,200,4630,8,200,1,201,1,201,1,201, - 1,202,1,202,1,202,1,203,1,203,1,203,1,203,1,203,1,203,1,203,3,203, - 4645,8,203,1,203,4,203,4648,8,203,11,203,12,203,4649,1,203,3,203, - 4653,8,203,1,204,1,204,1,204,3,204,4658,8,204,1,204,1,204,1,204, - 3,204,4663,8,204,1,204,1,204,1,204,3,204,4668,8,204,1,204,3,204, - 4671,8,204,1,204,3,204,4674,8,204,1,205,1,205,1,205,3,205,4679,8, - 205,1,205,1,205,1,205,5,205,4684,8,205,10,205,12,205,4687,9,205, - 1,205,3,205,4690,8,205,1,206,1,206,1,206,3,206,4695,8,206,1,206, - 1,206,1,206,5,206,4700,8,206,10,206,12,206,4703,9,206,1,206,3,206, - 4706,8,206,1,207,1,207,1,207,1,207,3,207,4712,8,207,1,207,1,207, - 1,207,1,207,1,207,1,207,1,207,3,207,4721,8,207,1,207,1,207,1,208, - 1,208,1,208,5,208,4728,8,208,10,208,12,208,4731,9,208,1,208,1,208, - 1,209,1,209,1,209,1,210,1,210,1,210,1,210,4,210,4742,8,210,11,210, - 12,210,4743,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211, - 1,211,1,211,3,211,4757,8,211,1,211,1,211,1,211,1,211,3,211,4763, - 8,211,1,211,1,211,3,211,4767,8,211,3,211,4769,8,211,1,212,1,212, - 1,212,1,213,1,213,3,213,4776,8,213,1,213,1,213,1,213,1,213,1,213, - 1,213,1,213,1,213,1,213,1,213,1,213,3,213,4789,8,213,1,213,1,213, - 1,213,1,213,1,213,3,213,4796,8,213,3,213,4798,8,213,1,213,1,213, - 1,214,1,214,1,214,1,214,1,214,1,215,1,215,1,215,1,215,1,215,5,215, - 4812,8,215,10,215,12,215,4815,9,215,1,215,3,215,4818,8,215,1,215, - 1,215,3,215,4822,8,215,1,215,1,215,1,215,3,215,4827,8,215,1,215, - 1,215,1,215,3,215,4832,8,215,1,215,1,215,1,215,3,215,4837,8,215, - 1,215,1,215,1,215,3,215,4842,8,215,1,215,3,215,4845,8,215,1,216, - 1,216,1,216,1,216,1,216,1,217,1,217,1,217,1,217,1,217,3,217,4857, - 8,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217, - 1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217, - 1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217, - 1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217, - 1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,3,217,4910,8,217, - 1,217,1,217,1,217,1,217,1,217,1,217,1,217,3,217,4919,8,217,1,217, - 1,217,3,217,4923,8,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217, - 3,217,4932,8,217,1,217,1,217,3,217,4936,8,217,1,217,1,217,1,217, - 1,217,1,217,1,217,1,217,3,217,4945,8,217,1,217,1,217,3,217,4949, - 8,217,1,217,1,217,1,217,3,217,4954,8,217,1,217,3,217,4957,8,217, - 1,217,1,217,3,217,4961,8,217,1,217,1,217,1,217,3,217,4966,8,217, - 3,217,4968,8,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,3,217, - 4977,8,217,1,217,1,217,1,217,3,217,4982,8,217,1,217,1,217,1,217, - 1,217,1,217,1,217,1,217,1,217,1,217,3,217,4993,8,217,1,217,1,217, - 3,217,4997,8,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217, - 1,217,1,217,1,217,1,217,3,217,5011,8,217,1,217,1,217,1,217,1,217, - 1,217,1,217,3,217,5019,8,217,1,217,1,217,1,217,1,217,1,217,1,217, - 1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217, - 1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217, - 1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,3,217,5057,8,217, - 3,217,5059,8,217,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218, - 1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,3,218,5078, - 8,218,1,218,3,218,5081,8,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,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,3,219,5108,8,219, - 1,219,1,219,3,219,5112,8,219,1,219,1,219,3,219,5116,8,219,1,219, - 1,219,3,219,5120,8,219,1,219,1,219,3,219,5124,8,219,1,219,3,219, - 5127,8,219,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,219,3,219,5142,8,219,1,219,1,219,1,219,1,219, - 1,219,3,219,5149,8,219,1,220,1,220,1,220,1,220,1,220,1,220,1,221, - 1,221,1,221,1,221,5,221,5161,8,221,10,221,12,221,5164,9,221,1,221, - 1,221,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,3,222,5176, - 8,222,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,224,1,224, - 1,224,1,224,3,224,5201,8,224,1,224,1,224,1,224,1,224,1,224,1,224, + 7,461,2,462,7,462,1,0,5,0,928,8,0,10,0,12,0,931,9,0,1,0,1,0,1,1, + 1,1,3,1,937,8,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, + 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1057,8,2,3,2,1059,8, + 2,1,3,1,3,1,3,1,4,1,4,1,4,1,4,3,4,1068,8,4,1,4,5,4,1071,8,4,10,4, + 12,4,1074,9,4,1,5,1,5,1,5,3,5,1079,8,5,1,5,1,5,1,5,1,5,1,5,1,5,1, + 5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1, + 5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,1114,8,5,1,6,1,6,1, + 6,1,6,1,6,1,6,1,6,1,6,3,6,1124,8,6,1,7,1,7,1,7,1,7,3,7,1130,8,7, + 1,7,5,7,1133,8,7,10,7,12,7,1136,9,7,1,8,1,8,1,8,1,8,3,8,1142,8,8, + 1,8,5,8,1145,8,8,10,8,12,8,1148,9,8,1,9,1,9,1,9,1,9,3,9,1154,8,9, + 1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,3,10,1165,8,10,1,10,1,10, + 1,11,1,11,5,11,1171,8,11,10,11,12,11,1174,9,11,1,11,3,11,1177,8, + 11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,3,11,1189,8, + 11,1,11,1,11,1,11,1,11,3,11,1195,8,11,1,12,1,12,1,12,1,12,3,12,1201, + 8,12,1,12,1,12,3,12,1205,8,12,1,12,1,12,1,12,3,12,1210,8,12,1,12, + 1,12,3,12,1214,8,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12, + 1,12,1,12,3,12,1227,8,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12, + 3,12,1237,8,12,3,12,1239,8,12,1,13,1,13,1,13,1,13,3,13,1245,8,13, + 1,13,5,13,1248,8,13,10,13,12,13,1251,9,13,1,14,1,14,1,14,1,14,1, + 14,1,14,1,14,1,15,1,15,1,15,3,15,1263,8,15,1,15,3,15,1266,8,15,1, + 15,1,15,1,15,3,15,1271,8,15,1,15,5,15,1274,8,15,10,15,12,15,1277, + 9,15,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,17,3,17,1287,8,17,1,18, + 1,18,3,18,1291,8,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19, + 1,19,3,19,1303,8,19,1,20,1,20,3,20,1307,8,20,1,20,3,20,1310,8,20, + 1,20,1,20,3,20,1314,8,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21, + 1,21,1,21,3,21,1326,8,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,21,1,21,1,21,3,21,1344,8,21,1,22,1,22, + 1,22,5,22,1349,8,22,10,22,12,22,1352,9,22,1,23,1,23,1,23,5,23,1357, + 8,23,10,23,12,23,1360,9,23,1,24,1,24,3,24,1364,8,24,1,25,1,25,1, + 25,1,25,1,25,3,25,1371,8,25,1,26,1,26,1,26,1,26,1,26,1,26,3,26,1379, + 8,26,1,27,1,27,1,27,1,27,3,27,1385,8,27,1,28,1,28,1,28,1,28,1,28, + 1,28,3,28,1393,8,28,1,28,1,28,1,28,1,28,1,28,1,28,3,28,1401,8,28, + 1,29,1,29,3,29,1405,8,29,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31, + 1,31,1,31,1,31,1,31,3,31,1419,8,31,1,32,1,32,1,32,3,32,1424,8,32, + 1,33,1,33,1,33,3,33,1429,8,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34, + 1,34,1,34,1,34,3,34,1441,8,34,1,35,1,35,1,35,1,35,3,35,1447,8,35, + 1,35,1,35,1,36,1,36,1,37,1,37,1,37,1,38,1,38,1,38,3,38,1459,8,38, + 1,38,1,38,1,38,3,38,1464,8,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38, + 1,38,3,38,1474,8,38,1,38,1,38,1,38,1,38,3,38,1480,8,38,1,38,1,38, + 1,38,3,38,1485,8,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,3,38,1494, + 8,38,1,38,1,38,1,38,1,38,1,38,3,38,1501,8,38,1,38,1,38,1,38,3,38, + 1506,8,38,1,38,1,38,1,38,3,38,1511,8,38,1,38,1,38,1,38,1,38,1,38, + 1,38,1,38,1,38,3,38,1521,8,38,1,38,1,38,1,38,3,38,1526,8,38,1,38, + 1,38,1,38,3,38,1531,8,38,1,38,1,38,1,38,1,38,1,38,3,38,1538,8,38, + 1,38,1,38,3,38,1542,8,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38, + 1,38,1,38,1,38,1,38,3,38,1556,8,38,1,38,1,38,1,38,1,38,3,38,1562, + 8,38,1,38,1,38,1,38,1,38,3,38,1568,8,38,1,38,1,38,1,38,3,38,1573, + 8,38,1,39,1,39,1,39,5,39,1578,8,39,10,39,12,39,1581,9,39,1,40,1, + 40,1,40,1,40,1,40,1,40,3,40,1589,8,40,1,41,1,41,1,41,1,41,1,42,1, + 42,1,42,3,42,1598,8,42,1,42,1,42,1,42,1,42,1,42,5,42,1605,8,42,10, + 42,12,42,1608,9,42,1,42,1,42,1,42,1,42,1,42,1,42,3,42,1616,8,42, + 1,42,1,42,3,42,1620,8,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42, + 1,42,1,42,3,42,1632,8,42,1,42,1,42,1,42,1,42,1,42,1,42,3,42,1640, + 8,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,3,42,1650,8,42,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,42,1,42, + 1,42,1,42,1,42,1,42,3,42,1670,8,42,1,42,1,42,1,42,3,42,1675,8,42, + 1,42,3,42,1678,8,42,1,42,1,42,1,42,1,42,1,42,3,42,1685,8,42,1,42, + 3,42,1688,8,42,1,42,1,42,3,42,1692,8,42,1,42,1,42,3,42,1696,8,42, + 1,42,3,42,1699,8,42,1,42,1,42,1,42,3,42,1704,8,42,1,42,1,42,1,42, + 3,42,1709,8,42,1,42,1,42,3,42,1713,8,42,1,42,1,42,1,42,1,42,1,42, + 1,42,1,42,3,42,1722,8,42,1,42,1,42,1,42,1,42,3,42,1728,8,42,1,42, + 1,42,3,42,1732,8,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,3,42,1741, + 8,42,1,42,3,42,1744,8,42,1,42,1,42,1,42,1,42,3,42,1750,8,42,1,42, + 1,42,1,42,1,42,1,42,1,42,1,42,3,42,1759,8,42,1,42,1,42,1,42,1,42, + 1,42,1,42,1,42,1,42,4,42,1769,8,42,11,42,12,42,1770,1,42,1,42,3, + 42,1775,8,42,1,42,1,42,3,42,1779,8,42,1,42,1,42,1,42,3,42,1784,8, + 42,1,42,3,42,1787,8,42,1,42,1,42,1,42,1,42,3,42,1793,8,42,4,42,1795, + 8,42,11,42,12,42,1796,1,42,1,42,3,42,1801,8,42,1,42,1,42,1,42,1, + 42,3,42,1807,8,42,1,42,1,42,3,42,1811,8,42,1,42,1,42,1,42,3,42,1816, + 8,42,1,42,1,42,1,42,3,42,1821,8,42,1,42,1,42,3,42,1825,8,42,1,42, + 3,42,1828,8,42,1,43,1,43,1,43,1,43,1,43,3,43,1835,8,43,1,44,1,44, + 1,45,1,45,1,45,1,46,1,46,1,46,1,46,5,46,1846,8,46,10,46,12,46,1849, + 9,46,1,46,1,46,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,3,48,1861, + 8,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49, + 1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,3,49,1886, + 8,49,1,50,1,50,1,50,1,50,1,50,1,50,5,50,1894,8,50,10,50,12,50,1897, + 9,50,1,51,1,51,1,51,1,51,3,51,1903,8,51,1,51,1,51,1,51,3,51,1908, + 8,51,1,51,1,51,3,51,1912,8,51,1,51,1,51,1,51,1,51,1,51,3,51,1919, + 8,51,1,51,1,51,1,51,3,51,1924,8,51,1,51,3,51,1927,8,51,3,51,1929, + 8,51,1,52,1,52,1,52,3,52,1934,8,52,1,53,1,53,3,53,1938,8,53,1,53, + 1,53,3,53,1942,8,53,1,53,1,53,3,53,1946,8,53,1,53,1,53,1,53,3,53, + 1951,8,53,1,53,3,53,1954,8,53,1,53,1,53,3,53,1958,8,53,1,53,3,53, + 1961,8,53,1,53,1,53,3,53,1965,8,53,1,53,1,53,1,53,1,53,1,53,1,53, + 3,53,1973,8,53,1,53,1,53,1,53,3,53,1978,8,53,1,53,3,53,1981,8,53, + 1,53,1,53,3,53,1985,8,53,1,54,1,54,1,54,1,54,3,54,1991,8,54,1,54, + 1,54,1,54,1,54,1,54,1,54,1,54,3,54,2000,8,54,1,54,1,54,3,54,2004, + 8,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,3,54,2014,8,54,1,54, + 1,54,1,54,3,54,2019,8,54,5,54,2021,8,54,10,54,12,54,2024,9,54,1, + 54,3,54,2027,8,54,5,54,2029,8,54,10,54,12,54,2032,9,54,1,55,1,55, + 1,55,1,55,3,55,2038,8,55,1,55,1,55,1,55,3,55,2043,8,55,5,55,2045, + 8,55,10,55,12,55,2048,9,55,1,55,1,55,3,55,2052,8,55,1,56,1,56,1, + 56,1,56,1,56,1,56,1,56,1,56,5,56,2062,8,56,10,56,12,56,2065,9,56, + 1,56,1,56,3,56,2069,8,56,1,57,1,57,3,57,2073,8,57,1,57,1,57,3,57, + 2077,8,57,1,57,1,57,1,57,3,57,2082,8,57,1,57,1,57,3,57,2086,8,57, + 1,57,3,57,2089,8,57,1,57,3,57,2092,8,57,1,57,3,57,2095,8,57,1,57, + 3,57,2098,8,57,1,57,3,57,2101,8,57,1,57,1,57,1,57,3,57,2106,8,57, + 1,57,3,57,2109,8,57,1,57,3,57,2112,8,57,1,57,3,57,2115,8,57,1,57, + 3,57,2118,8,57,1,57,3,57,2121,8,57,1,57,1,57,1,57,1,57,3,57,2127, + 8,57,1,57,1,57,3,57,2131,8,57,1,57,3,57,2134,8,57,1,57,3,57,2137, + 8,57,1,57,3,57,2140,8,57,1,57,3,57,2143,8,57,3,57,2145,8,57,1,58, + 1,58,1,58,1,58,1,58,3,58,2152,8,58,1,59,1,59,1,59,1,59,5,59,2158, + 8,59,10,59,12,59,2161,9,59,1,59,1,59,1,60,1,60,1,60,5,60,2168,8, + 60,10,60,12,60,2171,9,60,1,61,1,61,3,61,2175,8,61,1,61,1,61,1,61, + 1,61,1,61,1,61,5,61,2183,8,61,10,61,12,61,2186,9,61,3,61,2188,8, + 61,1,62,1,62,1,62,3,62,2193,8,62,1,62,5,62,2196,8,62,10,62,12,62, + 2199,9,62,1,62,1,62,3,62,2203,8,62,1,62,3,62,2206,8,62,1,63,1,63, + 1,63,3,63,2211,8,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,3,63,2220, + 8,63,3,63,2222,8,63,1,63,1,63,3,63,2226,8,63,1,63,3,63,2229,8,63, + 1,63,1,63,3,63,2233,8,63,1,63,5,63,2236,8,63,10,63,12,63,2239,9, + 63,1,64,1,64,3,64,2243,8,64,1,64,1,64,3,64,2247,8,64,1,64,3,64,2250, + 8,64,1,64,1,64,3,64,2254,8,64,1,65,3,65,2257,8,65,1,65,1,65,1,65, + 3,65,2262,8,65,1,65,3,65,2265,8,65,1,65,1,65,1,65,3,65,2270,8,65, + 1,65,3,65,2273,8,65,1,65,1,65,3,65,2277,8,65,1,65,3,65,2280,8,65, + 1,65,3,65,2283,8,65,1,65,1,65,1,65,3,65,2288,8,65,1,65,3,65,2291, + 8,65,1,65,1,65,1,65,1,65,1,65,1,65,3,65,2299,8,65,1,65,1,65,1,65, + 1,65,1,65,1,65,1,65,1,65,4,65,2309,8,65,11,65,12,65,2310,1,65,1, + 65,3,65,2315,8,65,1,65,1,65,1,65,1,65,1,65,3,65,2322,8,65,1,65,1, + 65,1,65,3,65,2327,8,65,1,65,3,65,2330,8,65,1,65,3,65,2333,8,65,1, + 65,3,65,2336,8,65,1,66,1,66,1,66,3,66,2341,8,66,1,67,1,67,1,68,1, + 68,1,68,1,68,1,68,5,68,2350,8,68,10,68,12,68,2353,9,68,1,68,1,68, + 1,68,3,68,2358,8,68,1,68,1,68,3,68,2362,8,68,1,68,3,68,2365,8,68, + 1,68,3,68,2368,8,68,1,68,5,68,2371,8,68,10,68,12,68,2374,9,68,1, + 68,1,68,5,68,2378,8,68,10,68,12,68,2381,9,68,3,68,2383,8,68,1,68, + 1,68,3,68,2387,8,68,1,68,1,68,1,68,1,68,5,68,2393,8,68,10,68,12, + 68,2396,9,68,1,68,1,68,3,68,2400,8,68,1,68,3,68,2403,8,68,1,68,3, + 68,2406,8,68,1,68,1,68,1,68,1,68,1,68,3,68,2413,8,68,1,68,5,68,2416, + 8,68,10,68,12,68,2419,9,68,1,68,1,68,1,68,1,68,1,68,1,68,3,68,2427, + 8,68,1,68,3,68,2430,8,68,1,68,3,68,2433,8,68,1,68,5,68,2436,8,68, + 10,68,12,68,2439,9,68,3,68,2441,8,68,1,69,1,69,1,69,1,69,1,70,1, + 70,1,70,1,70,5,70,2451,8,70,10,70,12,70,2454,9,70,1,70,1,70,1,71, + 1,71,1,71,5,71,2461,8,71,10,71,12,71,2464,9,71,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,3,74,2480,8, + 74,1,75,1,75,3,75,2484,8,75,1,75,1,75,3,75,2488,8,75,3,75,2490,8, + 75,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1, + 78,1,78,1,78,3,78,2507,8,78,3,78,2509,8,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,5,80,2523,8,80,10,80,12,80, + 2526,9,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,3,81,2536,8,81, + 1,81,3,81,2539,8,81,1,81,3,81,2542,8,81,1,82,1,82,1,82,1,83,1,83, + 1,83,1,83,3,83,2551,8,83,1,84,1,84,1,84,1,84,1,84,1,84,1,84,3,84, + 2560,8,84,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87, + 1,88,1,88,1,88,3,88,2576,8,88,1,88,3,88,2579,8,88,1,88,3,88,2582, + 8,88,1,88,1,88,1,88,1,88,5,88,2588,8,88,10,88,12,88,2591,9,88,1, + 88,3,88,2594,8,88,1,88,1,88,1,89,1,89,1,89,3,89,2601,8,89,1,89,1, + 89,1,89,1,89,1,89,1,90,1,90,3,90,2610,8,90,1,90,1,90,3,90,2614,8, + 90,1,90,1,90,1,90,1,90,3,90,2620,8,90,1,91,1,91,3,91,2624,8,91,1, + 91,3,91,2627,8,91,1,91,3,91,2630,8,91,1,91,3,91,2633,8,91,1,91,3, + 91,2636,8,91,1,92,1,92,1,92,1,92,3,92,2642,8,92,1,93,1,93,3,93,2646, + 8,93,1,93,1,93,1,93,3,93,2651,8,93,1,93,1,93,3,93,2655,8,93,1,93, + 3,93,2658,8,93,1,93,3,93,2661,8,93,1,93,3,93,2664,8,93,1,93,1,93, + 1,93,3,93,2669,8,93,1,94,1,94,1,94,1,94,3,94,2675,8,94,1,94,1,94, + 3,94,2679,8,94,1,95,1,95,3,95,2683,8,95,1,95,1,95,3,95,2687,8,95, + 1,95,1,95,4,95,2691,8,95,11,95,12,95,2692,3,95,2695,8,95,1,96,1, + 96,1,96,3,96,2700,8,96,1,96,1,96,4,96,2704,8,96,11,96,12,96,2705, + 1,97,1,97,1,97,1,97,3,97,2712,8,97,1,97,1,97,3,97,2716,8,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,3,97, + 2731,8,97,1,97,1,97,1,97,3,97,2736,8,97,1,97,3,97,2739,8,97,3,97, + 2741,8,97,1,98,3,98,2744,8,98,1,98,1,98,3,98,2748,8,98,1,99,1,99, + 3,99,2752,8,99,1,99,3,99,2755,8,99,1,99,3,99,2758,8,99,1,99,1,99, + 1,99,1,99,1,99,1,99,3,99,2766,8,99,1,99,1,99,1,99,1,99,3,99,2772, + 8,99,3,99,2774,8,99,1,100,1,100,1,100,1,100,3,100,2780,8,100,1,100, + 1,100,1,100,3,100,2785,8,100,1,101,1,101,1,101,3,101,2790,8,101, + 1,101,1,101,3,101,2794,8,101,1,101,1,101,1,101,1,101,1,101,5,101, + 2801,8,101,10,101,12,101,2804,9,101,1,102,1,102,1,102,1,102,1,102, + 1,102,5,102,2812,8,102,10,102,12,102,2815,9,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,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, + 3,103,2853,8,103,1,104,1,104,1,104,1,104,1,104,1,104,4,104,2861, + 8,104,11,104,12,104,2862,3,104,2865,8,104,1,104,3,104,2868,8,104, + 1,105,1,105,3,105,2872,8,105,1,105,1,105,3,105,2876,8,105,1,106, + 1,106,1,106,1,106,1,106,1,106,4,106,2884,8,106,11,106,12,106,2885, + 3,106,2888,8,106,1,106,1,106,4,106,2892,8,106,11,106,12,106,2893, + 3,106,2896,8,106,1,107,1,107,1,107,1,107,1,107,5,107,2903,8,107, + 10,107,12,107,2906,9,107,1,107,1,107,1,108,1,108,1,108,1,108,1,108, + 5,108,2915,8,108,10,108,12,108,2918,9,108,1,108,1,108,1,109,1,109, + 1,109,1,110,1,110,1,110,1,111,1,111,1,111,3,111,2931,8,111,1,111, + 1,111,1,111,3,111,2936,8,111,1,111,3,111,2939,8,111,1,111,1,111, + 1,111,1,111,1,111,3,111,2946,8,111,1,112,1,112,1,112,3,112,2951, + 8,112,1,113,1,113,1,113,1,113,1,113,1,113,3,113,2959,8,113,3,113, + 2961,8,113,1,114,1,114,1,114,1,114,3,114,2967,8,114,1,114,1,114, + 1,114,3,114,2972,8,114,1,114,1,114,3,114,2976,8,114,1,114,1,114, + 1,114,3,114,2981,8,114,1,114,1,114,1,114,1,114,3,114,2987,8,114, + 1,114,1,114,1,114,1,114,1,114,3,114,2994,8,114,1,114,1,114,1,114, + 1,114,3,114,3000,8,114,3,114,3002,8,114,1,115,1,115,1,115,1,115, + 1,115,1,115,1,115,3,115,3011,8,115,1,115,1,115,1,115,1,115,3,115, + 3017,8,115,1,115,1,115,1,115,1,115,1,115,1,115,3,115,3025,8,115, + 1,116,1,116,1,116,1,116,3,116,3031,8,116,1,116,1,116,1,116,3,116, + 3036,8,116,1,116,1,116,1,116,3,116,3041,8,116,1,117,1,117,1,117, + 1,117,1,117,1,117,3,117,3049,8,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,118,3,118,3064,8,118, + 3,118,3066,8,118,1,118,1,118,3,118,3070,8,118,1,118,1,118,3,118, + 3074,8,118,1,118,3,118,3077,8,118,1,118,3,118,3080,8,118,1,119,1, + 119,1,119,1,119,1,119,1,119,1,119,3,119,3089,8,119,1,119,3,119,3092, + 8,119,1,119,3,119,3095,8,119,1,120,1,120,1,120,1,120,3,120,3101, + 8,120,1,120,1,120,5,120,3105,8,120,10,120,12,120,3108,9,120,1,120, + 3,120,3111,8,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120, + 1,120,1,120,3,120,3123,8,120,1,120,1,120,1,120,1,120,3,120,3129, + 8,120,1,121,3,121,3132,8,121,1,121,1,121,1,121,3,121,3137,8,121, + 1,121,1,121,3,121,3141,8,121,1,121,1,121,1,121,1,121,1,121,3,121, + 3148,8,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,3,121, + 3158,8,121,3,121,3160,8,121,1,122,1,122,1,122,1,122,1,122,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,3,125,3184,8,125,1,125,1,125,1,125, + 1,125,1,125,1,125,1,125,1,125,1,125,1,125,3,125,3196,8,125,1,125, + 4,125,3199,8,125,11,125,12,125,3200,3,125,3203,8,125,1,125,1,125, + 3,125,3207,8,125,1,125,3,125,3210,8,125,1,125,3,125,3213,8,125,1, + 125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,3,125,3223,8,125,1, + 125,3,125,3226,8,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1, + 125,3,125,3236,8,125,1,125,5,125,3239,8,125,10,125,12,125,3242,9, + 125,1,125,1,125,3,125,3246,8,125,1,125,3,125,3249,8,125,1,125,3, + 125,3252,8,125,1,125,1,125,1,125,1,125,1,125,1,125,3,125,3260,8, + 125,1,126,1,126,1,126,1,126,3,126,3266,8,126,1,127,1,127,1,127,5, + 127,3271,8,127,10,127,12,127,3274,9,127,1,128,1,128,1,128,1,128, + 1,128,3,128,3281,8,128,1,128,3,128,3284,8,128,1,129,1,129,1,129, + 1,129,1,129,1,130,1,130,1,130,1,130,3,130,3295,8,130,1,131,1,131, + 3,131,3299,8,131,1,131,1,131,5,131,3303,8,131,10,131,12,131,3306, + 9,131,1,132,1,132,1,132,1,132,3,132,3312,8,132,1,133,3,133,3315, + 8,133,1,133,1,133,1,133,1,133,1,133,1,133,1,133,3,133,3324,8,133, + 1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134,5,134, + 3336,8,134,10,134,12,134,3339,9,134,3,134,3341,8,134,1,134,1,134, + 1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,5,135,3353,8,135, + 10,135,12,135,3356,9,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136, + 1,136,3,136,3366,8,136,1,136,3,136,3369,8,136,1,137,1,137,1,137, + 1,137,1,137,1,137,1,137,1,137,5,137,3379,8,137,10,137,12,137,3382, + 9,137,1,138,1,138,3,138,3386,8,138,1,138,1,138,1,138,1,138,1,138, + 1,138,1,138,1,138,1,138,5,138,3397,8,138,10,138,12,138,3400,9,138, + 1,138,1,138,3,138,3404,8,138,1,138,1,138,1,138,1,138,1,138,1,138, + 1,138,1,138,1,138,1,138,1,138,3,138,3417,8,138,1,138,1,138,1,138, + 1,138,1,138,5,138,3424,8,138,10,138,12,138,3427,9,138,3,138,3429, + 8,138,1,138,3,138,3432,8,138,1,138,1,138,1,138,1,138,1,138,3,138, + 3439,8,138,1,138,3,138,3442,8,138,1,138,1,138,1,138,1,138,1,138, + 1,138,1,138,1,138,1,138,1,138,3,138,3454,8,138,1,138,1,138,1,138, + 1,138,3,138,3460,8,138,3,138,3462,8,138,1,139,1,139,1,139,1,139, + 5,139,3468,8,139,10,139,12,139,3471,9,139,1,139,1,139,1,140,1,140, + 1,140,3,140,3478,8,140,1,141,1,141,1,141,1,141,1,141,1,141,3,141, + 3486,8,141,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143, + 1,143,3,143,3498,8,143,1,143,1,143,1,143,3,143,3503,8,143,1,143, + 1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,3,143,3514,8,143, + 1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,3,145,3525, + 8,145,1,145,1,145,1,145,1,145,1,145,1,145,3,145,3533,8,145,1,145, + 1,145,1,145,1,145,5,145,3539,8,145,10,145,12,145,3542,9,145,1,146, + 1,146,1,146,1,146,3,146,3548,8,146,1,146,1,146,1,146,1,146,1,146, + 3,146,3555,8,146,3,146,3557,8,146,1,146,3,146,3560,8,146,1,146,1, + 146,1,146,3,146,3565,8,146,1,146,1,146,1,146,3,146,3570,8,146,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,148,5,148,3587,8,148,10,148,12,148,3590,9,148, + 1,148,1,148,1,148,1,148,5,148,3596,8,148,10,148,12,148,3599,9,148, + 3,148,3601,8,148,1,149,1,149,1,149,1,149,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,151,1,151,3,151,3628,8,151,1,151,1,151, + 1,151,1,151,1,151,1,151,1,151,3,151,3637,8,151,1,151,3,151,3640, + 8,151,1,151,1,151,3,151,3644,8,151,1,151,1,151,3,151,3648,8,151, + 1,151,1,151,3,151,3652,8,151,1,151,1,151,1,151,5,151,3657,8,151, + 10,151,12,151,3660,9,151,1,151,3,151,3663,8,151,1,151,1,151,3,151, + 3667,8,151,1,151,1,151,3,151,3671,8,151,1,151,1,151,3,151,3675,8, + 151,1,151,1,151,1,151,3,151,3680,8,151,1,151,1,151,3,151,3684,8, + 151,1,151,1,151,1,151,3,151,3689,8,151,1,151,1,151,1,151,1,151,3, + 151,3695,8,151,1,151,1,151,1,151,3,151,3700,8,151,1,151,1,151,1, + 151,5,151,3705,8,151,10,151,12,151,3708,9,151,1,151,3,151,3711,8, + 151,1,151,1,151,1,151,1,151,3,151,3717,8,151,1,151,1,151,3,151,3721, + 8,151,1,151,1,151,1,151,3,151,3726,8,151,1,151,1,151,1,151,1,151, + 1,151,1,151,3,151,3734,8,151,1,151,1,151,1,151,1,151,3,151,3740, + 8,151,1,151,1,151,1,151,3,151,3745,8,151,1,151,1,151,1,151,1,151, + 1,151,3,151,3752,8,151,1,151,1,151,1,151,3,151,3757,8,151,1,151, + 1,151,3,151,3761,8,151,1,151,1,151,1,151,3,151,3766,8,151,1,151, + 1,151,1,151,1,151,3,151,3772,8,151,1,151,1,151,1,151,1,151,1,151, + 3,151,3779,8,151,1,151,1,151,1,151,3,151,3784,8,151,1,151,1,151, + 1,151,1,151,1,151,3,151,3791,8,151,1,151,1,151,1,151,3,151,3796, + 8,151,1,151,1,151,1,151,1,151,1,151,3,151,3803,8,151,1,151,1,151, + 3,151,3807,8,151,1,151,1,151,1,151,1,151,5,151,3813,8,151,10,151, + 12,151,3816,9,151,1,151,3,151,3819,8,151,3,151,3821,8,151,1,152, + 3,152,3824,8,152,1,152,1,152,1,152,3,152,3829,8,152,1,152,1,152, + 1,152,1,152,1,152,1,152,1,152,1,152,3,152,3839,8,152,1,153,1,153, + 1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153, + 3,153,3854,8,153,1,153,3,153,3857,8,153,1,153,1,153,1,153,1,153, + 1,153,1,153,3,153,3865,8,153,1,154,1,154,1,154,5,154,3870,8,154, + 10,154,12,154,3873,9,154,1,155,1,155,3,155,3877,8,155,1,156,1,156, + 4,156,3881,8,156,11,156,12,156,3882,1,157,1,157,3,157,3887,8,157, + 1,157,1,157,1,157,5,157,3892,8,157,10,157,12,157,3895,9,157,1,157, + 1,157,3,157,3899,8,157,1,157,3,157,3902,8,157,1,158,3,158,3905,8, + 158,1,158,1,158,3,158,3909,8,158,1,159,1,159,1,159,1,159,1,159,1, + 159,1,159,3,159,3918,8,159,1,159,1,159,1,159,1,159,1,159,1,159,1, + 159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,3,159, + 3936,8,159,1,159,3,159,3939,8,159,1,159,1,159,1,159,1,159,1,159, + 1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159, + 1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159, + 1,159,1,159,1,159,3,159,3971,8,159,1,159,1,159,1,159,3,159,3976, + 8,159,1,160,1,160,1,160,1,160,3,160,3982,8,160,1,160,1,160,1,160, + 1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160, + 1,160,1,160,1,160,1,160,3,160,4002,8,160,1,160,1,160,1,160,3,160, + 4007,8,160,1,161,1,161,1,161,1,162,3,162,4013,8,162,1,162,3,162, + 4016,8,162,1,162,1,162,3,162,4020,8,162,1,162,1,162,3,162,4024,8, + 162,1,162,1,162,1,162,1,162,3,162,4030,8,162,1,162,3,162,4033,8, + 162,1,162,1,162,3,162,4037,8,162,1,162,1,162,3,162,4041,8,162,1, + 162,1,162,1,162,3,162,4046,8,162,1,162,3,162,4049,8,162,1,162,3, + 162,4052,8,162,1,162,3,162,4055,8,162,1,163,1,163,1,164,1,164,1, + 164,1,164,1,164,1,164,1,164,1,164,1,164,3,164,4068,8,164,1,165,1, + 165,1,165,1,165,3,165,4074,8,165,1,165,1,165,1,165,1,165,1,165,1, + 165,3,165,4082,8,165,1,166,1,166,1,166,5,166,4087,8,166,10,166,12, + 166,4090,9,166,1,166,1,166,3,166,4094,8,166,1,166,3,166,4097,8,166, + 1,166,1,166,1,166,5,166,4102,8,166,10,166,12,166,4105,9,166,3,166, + 4107,8,166,1,167,1,167,1,168,1,168,1,168,1,168,3,168,4115,8,168, + 1,168,3,168,4118,8,168,1,169,1,169,1,169,3,169,4123,8,169,1,169, + 1,169,1,169,1,169,1,169,3,169,4130,8,169,1,169,3,169,4133,8,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,5,169,4151,8,169,10,169,12,169,4154, + 9,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,3,169, + 4165,8,169,1,170,3,170,4168,8,170,1,170,1,170,1,170,1,170,3,170, + 4174,8,170,1,170,5,170,4177,8,170,10,170,12,170,4180,9,170,1,171, + 1,171,1,171,1,171,5,171,4186,8,171,10,171,12,171,4189,9,171,1,171, + 1,171,1,171,1,171,1,171,3,171,4196,8,171,1,171,1,171,1,171,3,171, + 4201,8,171,1,172,1,172,1,172,1,172,3,172,4207,8,172,1,172,1,172, + 1,172,5,172,4212,8,172,10,172,12,172,4215,9,172,1,172,1,172,1,172, + 1,172,1,172,3,172,4222,8,172,1,172,3,172,4225,8,172,1,173,1,173, + 1,173,1,173,1,173,1,173,1,173,1,173,1,173,5,173,4236,8,173,10,173, + 12,173,4239,9,173,1,173,1,173,1,174,1,174,1,174,1,174,1,174,1,174, + 1,174,1,174,1,174,3,174,4252,8,174,1,174,1,174,1,174,1,174,3,174, + 4258,8,174,1,174,1,174,1,174,1,174,1,174,1,174,3,174,4266,8,174, + 3,174,4268,8,174,1,175,1,175,1,176,1,176,3,176,4274,8,176,1,176, + 1,176,3,176,4278,8,176,1,176,3,176,4281,8,176,1,176,3,176,4284,8, + 176,1,176,1,176,1,176,3,176,4289,8,176,1,176,1,176,1,176,3,176,4294, + 8,176,1,176,1,176,3,176,4298,8,176,1,176,3,176,4301,8,176,1,176, + 3,176,4304,8,176,1,176,3,176,4307,8,176,1,176,3,176,4310,8,176,1, + 177,1,177,1,177,1,177,5,177,4316,8,177,10,177,12,177,4319,9,177, + 1,177,1,177,1,178,1,178,1,178,1,178,1,178,1,178,3,178,4329,8,178, + 1,178,3,178,4332,8,178,1,178,3,178,4335,8,178,1,178,1,178,1,178, + 3,178,4340,8,178,1,178,3,178,4343,8,178,1,178,1,178,3,178,4347,8, + 178,1,179,1,179,3,179,4351,8,179,1,179,1,179,1,179,1,179,3,179,4357, + 8,179,1,179,1,179,1,179,1,179,5,179,4363,8,179,10,179,12,179,4366, + 9,179,3,179,4368,8,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179, + 1,179,1,179,5,179,4379,8,179,10,179,12,179,4382,9,179,1,179,1,179, + 3,179,4386,8,179,3,179,4388,8,179,1,179,4,179,4391,8,179,11,179, + 12,179,4392,1,179,1,179,1,179,1,179,1,179,3,179,4400,8,179,1,180, + 1,180,1,180,1,181,1,181,3,181,4407,8,181,1,181,1,181,1,182,1,182, + 1,182,5,182,4414,8,182,10,182,12,182,4417,9,182,1,183,1,183,1,183, + 5,183,4422,8,183,10,183,12,183,4425,9,183,1,184,1,184,1,184,1,184, + 1,184,3,184,4432,8,184,1,185,1,185,1,185,5,185,4437,8,185,10,185, + 12,185,4440,9,185,1,186,1,186,1,186,1,186,1,186,3,186,4447,8,186, + 1,187,1,187,1,187,5,187,4452,8,187,10,187,12,187,4455,9,187,1,188, + 1,188,1,188,1,188,1,188,3,188,4462,8,188,1,189,1,189,3,189,4466, + 8,189,1,189,1,189,3,189,4470,8,189,3,189,4472,8,189,1,189,1,189, + 1,190,1,190,3,190,4478,8,190,1,190,1,190,1,190,3,190,4483,8,190, + 1,191,1,191,3,191,4487,8,191,1,191,1,191,1,191,1,191,1,191,3,191, + 4494,8,191,1,192,1,192,1,192,3,192,4499,8,192,1,193,1,193,1,193, + 3,193,4504,8,193,1,193,1,193,1,193,3,193,4509,8,193,3,193,4511,8, + 193,1,193,1,193,1,194,1,194,1,194,1,195,1,195,1,195,3,195,4521,8, + 195,1,195,1,195,1,195,1,195,1,195,1,195,1,195,1,195,3,195,4531,8, + 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,195,1,195,3,195,4547,8,195,1,196,1,196,1,196,1,196, + 1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,5,196, + 4563,8,196,10,196,12,196,4566,9,196,1,196,1,196,1,196,1,196,1,196, + 1,196,1,196,1,196,1,196,3,196,4577,8,196,1,196,1,196,1,196,1,196, + 1,196,3,196,4584,8,196,1,197,1,197,1,197,1,198,1,198,1,198,1,199, + 1,199,1,199,1,199,1,199,1,199,1,199,3,199,4599,8,199,1,199,4,199, + 4602,8,199,11,199,12,199,4603,1,199,3,199,4607,8,199,1,200,1,200, + 1,200,3,200,4612,8,200,1,200,1,200,1,200,3,200,4617,8,200,1,200, + 1,200,1,200,3,200,4622,8,200,1,200,3,200,4625,8,200,1,200,3,200, + 4628,8,200,1,201,1,201,1,201,3,201,4633,8,201,1,201,1,201,1,201, + 5,201,4638,8,201,10,201,12,201,4641,9,201,1,201,3,201,4644,8,201, + 1,202,1,202,1,202,3,202,4649,8,202,1,202,1,202,1,202,5,202,4654, + 8,202,10,202,12,202,4657,9,202,1,202,3,202,4660,8,202,1,203,1,203, + 1,203,1,203,3,203,4666,8,203,1,203,1,203,1,203,1,203,1,203,1,203, + 1,203,3,203,4675,8,203,1,203,1,203,1,204,1,204,1,204,5,204,4682, + 8,204,10,204,12,204,4685,9,204,1,204,1,204,1,205,1,205,1,205,1,206, + 1,206,1,206,1,206,4,206,4696,8,206,11,206,12,206,4697,1,207,1,207, + 1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,3,207,4711, + 8,207,1,207,1,207,1,207,1,207,3,207,4717,8,207,1,207,1,207,3,207, + 4721,8,207,3,207,4723,8,207,1,208,1,208,1,208,1,209,1,209,3,209, + 4730,8,209,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,209, + 1,209,1,209,3,209,4743,8,209,1,209,1,209,1,209,1,209,1,209,3,209, + 4750,8,209,3,209,4752,8,209,1,209,1,209,1,210,1,210,1,210,1,210, + 1,210,1,211,1,211,1,211,1,211,1,211,5,211,4766,8,211,10,211,12,211, + 4769,9,211,1,211,3,211,4772,8,211,1,211,1,211,3,211,4776,8,211,1, + 211,1,211,1,211,3,211,4781,8,211,1,211,1,211,1,211,3,211,4786,8, + 211,1,211,1,211,1,211,3,211,4791,8,211,1,211,1,211,1,211,3,211,4796, + 8,211,1,211,3,211,4799,8,211,1,212,1,212,1,212,1,212,1,212,1,213, + 1,213,1,213,1,213,1,213,3,213,4811,8,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,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,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,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,3,213,4864,8,213,1,213,1,213,1,213,1,213,1,213, + 1,213,1,213,3,213,4873,8,213,1,213,1,213,3,213,4877,8,213,1,213, + 1,213,1,213,1,213,1,213,1,213,1,213,3,213,4886,8,213,1,213,1,213, + 3,213,4890,8,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,3,213, + 4899,8,213,1,213,1,213,3,213,4903,8,213,1,213,1,213,1,213,3,213, + 4908,8,213,1,213,3,213,4911,8,213,1,213,1,213,3,213,4915,8,213,1, + 213,1,213,1,213,3,213,4920,8,213,3,213,4922,8,213,1,213,1,213,1, + 213,1,213,1,213,1,213,1,213,3,213,4931,8,213,1,213,1,213,1,213,3, + 213,4936,8,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1, + 213,3,213,4947,8,213,1,213,1,213,3,213,4951,8,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,3,213, + 4965,8,213,1,213,1,213,1,213,1,213,1,213,1,213,3,213,4973,8,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,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,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213, + 1,213,1,213,1,213,3,213,5011,8,213,3,213,5013,8,213,1,214,1,214, + 1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214, + 1,214,1,214,1,214,1,214,3,214,5032,8,214,1,214,3,214,5035,8,214, + 1,214,1,214,1,214,1,214,1,214,1,215,1,215,1,215,1,215,1,215,1,215, + 1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215, + 1,215,1,215,1,215,3,215,5062,8,215,1,215,1,215,3,215,5066,8,215, + 1,215,1,215,3,215,5070,8,215,1,215,1,215,3,215,5074,8,215,1,215, + 1,215,3,215,5078,8,215,1,215,3,215,5081,8,215,1,215,1,215,1,215, + 1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,3,215, + 5096,8,215,1,215,1,215,1,215,1,215,1,215,3,215,5103,8,215,1,216, + 1,216,1,216,1,216,1,216,1,216,1,217,1,217,1,217,1,217,5,217,5115, + 8,217,10,217,12,217,5118,9,217,1,217,1,217,1,218,1,218,1,218,1,218, + 1,218,1,218,1,218,1,218,3,218,5130,8,218,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,3,220,5155,8,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,220,3,220,5174,8,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, + 3,220,5189,8,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,3,220,5205,8,220,1,220,1,220, + 1,220,1,220,1,220,3,220,5212,8,220,1,221,1,221,1,221,1,221,1,221, + 1,221,1,221,1,221,1,221,3,221,5223,8,221,1,221,3,221,5226,8,221, + 1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222, + 1,222,1,222,1,222,1,222,5,222,5243,8,222,10,222,12,222,5246,9,222, + 3,222,5248,8,222,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223, + 1,223,5,223,5259,8,223,10,223,12,223,5262,9,223,1,223,3,223,5265, + 8,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,224,1,224,1,224,1,224,1,224,3,224,5285,8,224, + 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,5,224,5295,8,224, + 10,224,12,224,5298,9,224,1,224,3,224,5301,8,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,224,1,224, - 3,224,5220,8,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,224,3,224,5235,8,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,224,1,224, - 3,224,5251,8,224,1,224,1,224,1,224,1,224,1,224,3,224,5258,8,224, - 1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,3,225,5269, - 8,225,1,225,3,225,5272,8,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,5,226,5289, - 8,226,10,226,12,226,5292,9,226,3,226,5294,8,226,1,227,1,227,1,227, - 1,227,1,227,1,227,1,227,1,227,1,227,5,227,5305,8,227,10,227,12,227, - 5308,9,227,1,227,3,227,5311,8,227,1,228,1,228,1,228,1,228,1,228, - 1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228, - 1,228,1,228,3,228,5331,8,228,1,228,1,228,1,228,1,228,1,228,1,228, - 1,228,1,228,5,228,5341,8,228,10,228,12,228,5344,9,228,1,228,3,228, - 5347,8,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228, - 1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228, - 3,228,5369,8,228,1,229,1,229,3,229,5373,8,229,1,229,1,229,1,229, - 1,229,1,229,1,229,1,229,1,229,3,229,5383,8,229,1,229,1,229,3,229, - 5387,8,229,1,229,1,229,1,229,1,229,3,229,5393,8,229,1,229,1,229, - 3,229,5397,8,229,5,229,5399,8,229,10,229,12,229,5402,9,229,1,229, - 3,229,5405,8,229,1,230,1,230,1,230,1,230,1,230,3,230,5412,8,230, - 1,231,1,231,1,231,3,231,5417,8,231,1,232,1,232,1,232,1,233,1,233, - 1,233,1,234,1,234,1,234,3,234,5428,8,234,1,235,1,235,3,235,5432, - 8,235,1,235,3,235,5435,8,235,1,235,1,235,1,235,3,235,5440,8,235, - 1,235,1,235,1,235,1,235,3,235,5446,8,235,1,235,1,235,1,235,1,235, - 1,235,1,235,1,235,1,235,1,235,3,235,5457,8,235,1,235,1,235,3,235, - 5461,8,235,1,235,3,235,5464,8,235,1,235,1,235,3,235,5468,8,235,1, - 235,1,235,3,235,5472,8,235,1,235,3,235,5475,8,235,1,236,1,236,1, - 237,1,237,1,237,1,237,1,237,1,237,3,237,5485,8,237,1,237,3,237,5488, - 8,237,1,238,1,238,3,238,5492,8,238,1,238,5,238,5495,8,238,10,238, - 12,238,5498,9,238,1,239,1,239,1,239,3,239,5503,8,239,1,239,3,239, - 5506,8,239,1,239,1,239,1,239,3,239,5511,8,239,1,239,3,239,5514,8, - 239,1,239,1,239,1,239,1,239,1,239,3,239,5521,8,239,3,239,5523,8, - 239,1,239,1,239,1,239,1,239,3,239,5529,8,239,1,239,1,239,3,239,5533, - 8,239,1,240,1,240,1,240,1,241,1,241,1,241,1,241,3,241,5542,8,241, - 1,241,4,241,5545,8,241,11,241,12,241,5546,3,241,5549,8,241,1,242, - 1,242,1,242,1,242,1,242,1,242,1,242,1,242,3,242,5559,8,242,1,242, - 3,242,5562,8,242,1,242,1,242,1,242,3,242,5567,8,242,1,243,1,243, - 1,243,1,243,1,243,1,243,3,243,5575,8,243,1,243,3,243,5578,8,243, - 1,243,4,243,5581,8,243,11,243,12,243,5582,3,243,5585,8,243,3,243, - 5587,8,243,1,244,1,244,1,244,1,244,3,244,5593,8,244,1,245,1,245, - 1,245,1,245,1,245,1,245,1,246,1,246,1,246,1,246,1,246,1,247,1,247, - 1,247,1,247,3,247,5610,8,247,1,247,1,247,5,247,5614,8,247,10,247, - 12,247,5617,9,247,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248, - 1,248,1,248,3,248,5629,8,248,1,248,1,248,1,248,1,248,3,248,5635, - 8,248,1,248,1,248,3,248,5639,8,248,1,248,1,248,1,248,3,248,5644, - 8,248,1,249,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,250,1,250,1,250,1,250,1,250,1,250,1,250, - 1,250,1,250,1,250,1,250,1,250,1,250,1,250,3,250,5674,8,250,1,250, - 1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250, - 1,250,3,250,5689,8,250,1,250,1,250,1,250,3,250,5694,8,250,1,251, - 1,251,3,251,5698,8,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251, - 1,251,1,251,1,252,1,252,3,252,5711,8,252,1,252,1,252,3,252,5715, - 8,252,3,252,5717,8,252,1,252,1,252,1,252,1,252,1,252,5,252,5724, - 8,252,10,252,12,252,5727,9,252,1,252,1,252,1,252,3,252,5732,8,252, - 3,252,5734,8,252,1,253,1,253,3,253,5738,8,253,1,253,3,253,5741,8, - 253,1,253,3,253,5744,8,253,1,253,3,253,5747,8,253,1,253,3,253,5750, - 8,253,3,253,5752,8,253,1,253,3,253,5755,8,253,1,254,1,254,3,254, - 5759,8,254,1,254,1,254,1,254,1,254,5,254,5765,8,254,10,254,12,254, - 5768,9,254,1,254,1,254,3,254,5772,8,254,1,254,3,254,5775,8,254,1, - 255,1,255,1,256,1,256,3,256,5781,8,256,1,256,1,256,3,256,5785,8, - 256,1,257,1,257,3,257,5789,8,257,1,257,1,257,1,257,3,257,5794,8, - 257,3,257,5796,8,257,1,258,1,258,3,258,5800,8,258,1,259,1,259,3, - 259,5804,8,259,1,260,1,260,1,260,5,260,5809,8,260,10,260,12,260, - 5812,9,260,1,261,1,261,1,261,3,261,5817,8,261,1,261,1,261,3,261, - 5821,8,261,3,261,5823,8,261,3,261,5825,8,261,1,261,1,261,1,262,1, - 262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,3,262,5838,8,262,1, - 263,1,263,1,263,1,263,5,263,5844,8,263,10,263,12,263,5847,9,263, - 1,263,1,263,1,264,1,264,1,264,3,264,5854,8,264,1,264,1,264,1,264, - 1,265,1,265,1,265,1,265,5,265,5863,8,265,10,265,12,265,5866,9,265, - 1,265,1,265,1,266,1,266,1,266,1,266,1,266,3,266,5875,8,266,1,267, - 1,267,1,267,3,267,5880,8,267,1,267,1,267,3,267,5884,8,267,1,267, - 1,267,3,267,5888,8,267,1,267,1,267,1,267,1,267,1,267,3,267,5895, - 8,267,1,267,3,267,5898,8,267,3,267,5900,8,267,1,268,1,268,1,268, - 1,268,1,269,1,269,3,269,5908,8,269,1,269,1,269,3,269,5912,8,269, - 1,270,3,270,5915,8,270,1,270,1,270,1,270,1,270,1,270,3,270,5922, - 8,270,1,270,1,270,1,270,1,270,1,270,3,270,5929,8,270,1,270,1,270, - 1,270,3,270,5934,8,270,1,270,1,270,1,270,1,270,1,270,3,270,5941, - 8,270,1,270,3,270,5944,8,270,3,270,5946,8,270,1,270,3,270,5949,8, - 270,1,271,1,271,1,271,1,271,3,271,5955,8,271,1,271,1,271,1,271,3, - 271,5960,8,271,1,271,1,271,3,271,5964,8,271,1,272,1,272,1,272,5, - 272,5969,8,272,10,272,12,272,5972,9,272,1,273,1,273,1,273,1,274, - 1,274,1,274,1,275,3,275,5981,8,275,1,275,1,275,1,275,1,275,1,275, - 3,275,5988,8,275,1,275,3,275,5991,8,275,1,275,3,275,5994,8,275,1, - 276,1,276,3,276,5998,8,276,1,276,1,276,1,276,1,276,1,276,1,276,1, - 276,1,276,1,276,3,276,6009,8,276,1,276,3,276,6012,8,276,1,276,3, - 276,6015,8,276,1,276,3,276,6018,8,276,1,277,3,277,6021,8,277,1,277, - 1,277,1,277,1,277,1,277,3,277,6028,8,277,1,277,3,277,6031,8,277, - 1,277,3,277,6034,8,277,1,278,1,278,1,278,5,278,6039,8,278,10,278, - 12,278,6042,9,278,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279, - 1,279,3,279,6053,8,279,1,279,1,279,1,279,1,279,1,279,3,279,6060, - 8,279,3,279,6062,8,279,1,280,1,280,1,280,3,280,6067,8,280,1,280, - 1,280,1,280,5,280,6072,8,280,10,280,12,280,6075,9,280,1,280,1,280, - 1,280,3,280,6080,8,280,1,280,1,280,1,280,1,281,1,281,3,281,6087, - 8,281,1,282,1,282,1,282,3,282,6092,8,282,1,282,1,282,1,283,3,283, - 6097,8,283,1,283,1,283,3,283,6101,8,283,1,283,1,283,3,283,6105,8, - 283,1,283,1,283,3,283,6109,8,283,3,283,6111,8,283,1,284,1,284,3, - 284,6115,8,284,1,285,1,285,3,285,6119,8,285,1,285,3,285,6122,8,285, - 1,285,3,285,6125,8,285,3,285,6127,8,285,1,285,1,285,1,285,1,285, - 1,285,1,285,1,285,1,285,3,285,6137,8,285,3,285,6139,8,285,1,285, - 1,285,1,285,3,285,6144,8,285,5,285,6146,8,285,10,285,12,285,6149, - 9,285,1,286,1,286,3,286,6153,8,286,1,287,1,287,3,287,6157,8,287, - 1,287,1,287,1,287,5,287,6162,8,287,10,287,12,287,6165,9,287,1,288, - 1,288,3,288,6169,8,288,1,288,1,288,3,288,6173,8,288,1,288,3,288, - 6176,8,288,1,288,1,288,1,288,1,288,3,288,6182,8,288,1,288,3,288, - 6185,8,288,1,289,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,290,1,290,1,290,3,290,6204,8,290, - 1,290,1,290,1,290,1,291,1,291,3,291,6211,8,291,1,291,1,291,3,291, - 6215,8,291,1,292,3,292,6218,8,292,1,292,1,292,3,292,6222,8,292,1, - 292,1,292,3,292,6226,8,292,1,292,3,292,6229,8,292,1,292,3,292,6232, - 8,292,1,293,1,293,1,293,3,293,6237,8,293,1,294,1,294,1,294,1,294, - 1,294,5,294,6244,8,294,10,294,12,294,6247,9,294,1,295,1,295,1,295, - 1,295,3,295,6253,8,295,1,295,1,295,3,295,6257,8,295,1,296,1,296, - 3,296,6261,8,296,1,296,1,296,3,296,6265,8,296,1,296,3,296,6268,8, - 296,3,296,6270,8,296,1,297,1,297,1,297,3,297,6275,8,297,1,297,1, - 297,3,297,6279,8,297,1,298,1,298,1,298,3,298,6284,8,298,1,298,1, - 298,1,298,1,298,3,298,6290,8,298,1,299,1,299,1,299,1,299,1,299,3, - 299,6297,8,299,1,300,1,300,1,300,3,300,6302,8,300,1,301,1,301,1, - 301,3,301,6307,8,301,1,301,1,301,1,302,1,302,1,302,5,302,6314,8, - 302,10,302,12,302,6317,9,302,1,303,1,303,1,303,1,303,3,303,6323, - 8,303,1,303,1,303,1,303,1,303,5,303,6329,8,303,10,303,12,303,6332, - 9,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,3,303,6342, - 8,303,1,304,1,304,1,304,3,304,6347,8,304,1,304,1,304,3,304,6351, - 8,304,1,304,3,304,6354,8,304,1,304,1,304,3,304,6358,8,304,1,304, - 1,304,1,304,3,304,6363,8,304,4,304,6365,8,304,11,304,12,304,6366, - 1,304,1,304,1,304,3,304,6372,8,304,1,305,1,305,1,305,1,305,5,305, - 6378,8,305,10,305,12,305,6381,9,305,1,306,1,306,1,306,1,307,1,307, - 1,307,5,307,6389,8,307,10,307,12,307,6392,9,307,1,308,1,308,3,308, - 6396,8,308,1,308,1,308,3,308,6400,8,308,1,308,3,308,6403,8,308,1, - 308,3,308,6406,8,308,3,308,6408,8,308,1,308,3,308,6411,8,308,1,308, - 3,308,6414,8,308,1,308,3,308,6417,8,308,1,308,1,308,3,308,6421,8, - 308,1,308,1,308,3,308,6425,8,308,1,308,1,308,3,308,6429,8,308,3, - 308,6431,8,308,1,308,1,308,1,308,1,308,1,308,1,308,1,308,3,308,6440, - 8,308,1,308,1,308,1,308,3,308,6445,8,308,1,308,1,308,1,308,1,308, - 3,308,6451,8,308,1,308,1,308,3,308,6455,8,308,3,308,6457,8,308,1, - 308,1,308,1,308,1,308,1,308,3,308,6464,8,308,1,308,1,308,1,308,3, - 308,6469,8,308,1,308,1,308,1,308,1,308,5,308,6475,8,308,10,308,12, - 308,6478,9,308,1,309,3,309,6481,8,309,1,309,1,309,1,309,1,309,1, - 309,3,309,6488,8,309,1,310,1,310,1,310,3,310,6493,8,310,1,310,3, - 310,6496,8,310,1,310,1,310,1,310,1,310,3,310,6502,8,310,1,311,1, - 311,3,311,6506,8,311,1,312,1,312,1,312,1,312,3,312,6512,8,312,1, - 313,1,313,1,313,1,313,1,313,1,313,1,313,3,313,6521,8,313,1,313,1, - 313,1,313,1,313,3,313,6527,8,313,3,313,6529,8,313,1,314,1,314,1, - 314,3,314,6534,8,314,1,314,3,314,6537,8,314,1,314,1,314,1,314,1, - 314,1,314,1,314,1,314,3,314,6546,8,314,1,314,1,314,1,314,1,314,1, - 314,3,314,6553,8,314,3,314,6555,8,314,1,315,1,315,1,315,5,315,6560, - 8,315,10,315,12,315,6563,9,315,1,316,1,316,3,316,6567,8,316,1,316, - 3,316,6570,8,316,1,317,1,317,1,317,1,317,1,317,1,317,1,317,1,317, - 3,317,6580,8,317,1,318,1,318,1,318,1,318,1,318,1,318,1,318,5,318, - 6589,8,318,10,318,12,318,6592,9,318,1,318,1,318,3,318,6596,8,318, - 1,318,1,318,3,318,6600,8,318,1,319,1,319,1,319,1,319,1,319,1,319, - 3,319,6608,8,319,1,320,1,320,1,320,1,321,1,321,1,321,1,321,1,321, - 3,321,6618,8,321,1,322,1,322,1,322,5,322,6623,8,322,10,322,12,322, - 6626,9,322,1,323,1,323,1,323,3,323,6631,8,323,1,324,1,324,1,324, - 1,324,1,324,1,324,1,324,5,324,6640,8,324,10,324,12,324,6643,9,324, - 1,324,1,324,1,324,3,324,6648,8,324,1,324,1,324,1,324,1,324,1,324, - 1,324,5,324,6656,8,324,10,324,12,324,6659,9,324,1,324,1,324,1,325, - 1,325,1,325,1,325,3,325,6667,8,325,1,325,1,325,3,325,6671,8,325, - 1,325,4,325,6674,8,325,11,325,12,325,6675,3,325,6678,8,325,1,325, - 1,325,3,325,6682,8,325,1,326,1,326,1,326,1,326,1,326,1,326,3,326, - 6690,8,326,1,327,3,327,6693,8,327,1,327,1,327,1,327,3,327,6698,8, - 327,1,327,5,327,6701,8,327,10,327,12,327,6704,9,327,1,327,1,327, - 1,327,1,327,3,327,6710,8,327,3,327,6712,8,327,1,327,1,327,1,327, - 1,327,3,327,6718,8,327,1,328,1,328,3,328,6722,8,328,1,328,3,328, - 6725,8,328,1,328,1,328,1,328,3,328,6730,8,328,1,328,3,328,6733,8, - 328,3,328,6735,8,328,1,329,1,329,1,329,1,329,3,329,6741,8,329,1, - 330,1,330,1,330,1,330,1,330,1,330,1,330,3,330,6750,8,330,1,330,1, - 330,1,330,1,330,3,330,6756,8,330,1,330,3,330,6759,8,330,1,331,1, - 331,1,331,1,331,1,332,1,332,3,332,6767,8,332,1,332,3,332,6770,8, - 332,1,333,1,333,3,333,6774,8,333,1,333,1,333,1,333,1,333,3,333,6780, - 8,333,3,333,6782,8,333,1,333,3,333,6785,8,333,1,334,1,334,3,334, - 6789,8,334,1,334,1,334,1,334,3,334,6794,8,334,1,335,1,335,1,335, - 1,335,1,335,3,335,6801,8,335,1,335,1,335,1,335,1,335,1,335,3,335, - 6808,8,335,3,335,6810,8,335,1,335,1,335,1,335,1,335,3,335,6816,8, - 335,3,335,6818,8,335,1,335,1,335,1,335,3,335,6823,8,335,3,335,6825, - 8,335,1,336,1,336,3,336,6829,8,336,1,337,1,337,1,338,1,338,1,339, - 1,339,1,339,3,339,6838,8,339,1,339,1,339,3,339,6842,8,339,1,339, - 1,339,1,339,1,339,1,339,1,339,5,339,6850,8,339,10,339,12,339,6853, - 9,339,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340, - 1,340,3,340,6866,8,340,1,340,3,340,6869,8,340,1,340,1,340,1,340, - 1,340,1,340,1,340,3,340,6877,8,340,1,340,1,340,1,340,1,340,1,340, - 5,340,6884,8,340,10,340,12,340,6887,9,340,1,340,1,340,1,340,3,340, - 6892,8,340,1,340,1,340,1,340,3,340,6897,8,340,1,340,1,340,1,340, - 1,340,1,340,1,340,3,340,6905,8,340,3,340,6907,8,340,1,340,1,340, - 1,340,3,340,6912,8,340,1,340,1,340,3,340,6916,8,340,1,340,1,340, - 1,340,3,340,6921,8,340,1,340,1,340,1,340,3,340,6926,8,340,1,341, - 1,341,1,341,1,341,3,341,6932,8,341,1,341,1,341,1,341,1,341,1,341, - 1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,5,341,6948, - 8,341,10,341,12,341,6951,9,341,1,342,1,342,1,342,1,342,1,342,1,342, - 3,342,6959,8,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342, - 1,342,1,342,1,342,1,342,1,342,3,342,6974,8,342,1,342,1,342,1,342, - 3,342,6979,8,342,1,342,3,342,6982,8,342,1,342,1,342,1,342,1,342, - 3,342,6988,8,342,1,342,1,342,1,342,3,342,6993,8,342,1,342,1,342, - 1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,3,342,7006, - 8,342,1,342,4,342,7009,8,342,11,342,12,342,7010,1,342,1,342,3,342, - 7015,8,342,1,342,1,342,1,342,1,342,1,342,3,342,7022,8,342,1,342, + 1,224,1,224,1,224,1,224,1,224,1,224,3,224,5323,8,224,1,225,1,225, + 3,225,5327,8,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225, + 3,225,5337,8,225,1,225,1,225,3,225,5341,8,225,1,225,1,225,1,225, + 1,225,3,225,5347,8,225,1,225,1,225,3,225,5351,8,225,5,225,5353,8, + 225,10,225,12,225,5356,9,225,1,225,3,225,5359,8,225,1,226,1,226, + 1,226,1,226,1,226,3,226,5366,8,226,1,227,1,227,1,227,3,227,5371, + 8,227,1,228,1,228,1,228,1,229,1,229,1,229,1,230,1,230,1,230,3,230, + 5382,8,230,1,231,1,231,3,231,5386,8,231,1,231,3,231,5389,8,231,1, + 231,1,231,1,231,3,231,5394,8,231,1,231,1,231,1,231,1,231,3,231,5400, + 8,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,3,231, + 5411,8,231,1,231,1,231,3,231,5415,8,231,1,231,3,231,5418,8,231,1, + 231,1,231,3,231,5422,8,231,1,231,1,231,3,231,5426,8,231,1,231,3, + 231,5429,8,231,1,232,1,232,1,233,1,233,1,233,1,233,1,233,1,233,3, + 233,5439,8,233,1,233,3,233,5442,8,233,1,234,1,234,3,234,5446,8,234, + 1,234,5,234,5449,8,234,10,234,12,234,5452,9,234,1,235,1,235,1,235, + 3,235,5457,8,235,1,235,3,235,5460,8,235,1,235,1,235,1,235,3,235, + 5465,8,235,1,235,3,235,5468,8,235,1,235,1,235,1,235,1,235,1,235, + 3,235,5475,8,235,3,235,5477,8,235,1,235,1,235,1,235,1,235,3,235, + 5483,8,235,1,235,1,235,3,235,5487,8,235,1,236,1,236,1,236,1,237, + 1,237,1,237,1,237,3,237,5496,8,237,1,237,4,237,5499,8,237,11,237, + 12,237,5500,3,237,5503,8,237,1,238,1,238,1,238,1,238,1,238,1,238, + 1,238,1,238,3,238,5513,8,238,1,238,3,238,5516,8,238,1,238,1,238, + 1,238,3,238,5521,8,238,1,239,1,239,1,239,1,239,1,239,1,239,3,239, + 5529,8,239,1,239,3,239,5532,8,239,1,239,4,239,5535,8,239,11,239, + 12,239,5536,3,239,5539,8,239,3,239,5541,8,239,1,240,1,240,1,240, + 1,240,3,240,5547,8,240,1,241,1,241,1,241,1,241,1,241,1,241,1,242, + 1,242,1,242,1,242,1,242,1,243,1,243,1,243,1,243,3,243,5564,8,243, + 1,243,1,243,5,243,5568,8,243,10,243,12,243,5571,9,243,1,244,1,244, + 1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,3,244,5583,8,244, + 1,244,1,244,1,244,1,244,3,244,5589,8,244,1,244,1,244,3,244,5593, + 8,244,1,244,1,244,1,244,3,244,5598,8,244,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,246,1,246,1,246,1,246,1,246, + 1,246,1,246,3,246,5628,8,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,3,246,5643,8,246,1,246, + 1,246,1,246,3,246,5648,8,246,1,247,1,247,3,247,5652,8,247,1,247, + 1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,248,1,248,3,248, + 5665,8,248,1,248,1,248,3,248,5669,8,248,3,248,5671,8,248,1,248,1, + 248,1,248,1,248,1,248,5,248,5678,8,248,10,248,12,248,5681,9,248, + 1,248,1,248,1,248,3,248,5686,8,248,3,248,5688,8,248,1,249,1,249, + 3,249,5692,8,249,1,249,3,249,5695,8,249,1,249,3,249,5698,8,249,1, + 249,3,249,5701,8,249,1,249,3,249,5704,8,249,3,249,5706,8,249,1,249, + 3,249,5709,8,249,1,250,1,250,3,250,5713,8,250,1,250,1,250,1,250, + 1,250,5,250,5719,8,250,10,250,12,250,5722,9,250,1,250,1,250,3,250, + 5726,8,250,1,250,3,250,5729,8,250,1,251,1,251,1,252,1,252,3,252, + 5735,8,252,1,252,1,252,3,252,5739,8,252,1,253,1,253,3,253,5743,8, + 253,1,253,1,253,1,253,3,253,5748,8,253,3,253,5750,8,253,1,254,1, + 254,3,254,5754,8,254,1,255,1,255,3,255,5758,8,255,1,256,1,256,1, + 256,5,256,5763,8,256,10,256,12,256,5766,9,256,1,257,1,257,1,257, + 3,257,5771,8,257,1,257,1,257,3,257,5775,8,257,3,257,5777,8,257,3, + 257,5779,8,257,1,257,1,257,1,258,1,258,1,258,1,258,1,258,1,258,1, + 258,1,258,1,258,3,258,5792,8,258,1,259,1,259,1,259,1,259,5,259,5798, + 8,259,10,259,12,259,5801,9,259,1,259,1,259,1,260,1,260,1,260,3,260, + 5808,8,260,1,260,1,260,1,260,1,261,1,261,1,261,1,261,5,261,5817, + 8,261,10,261,12,261,5820,9,261,1,261,1,261,1,262,1,262,1,262,1,262, + 1,262,3,262,5829,8,262,1,263,1,263,1,263,3,263,5834,8,263,1,263, + 1,263,3,263,5838,8,263,1,263,1,263,3,263,5842,8,263,1,263,1,263, + 1,263,1,263,1,263,3,263,5849,8,263,1,263,3,263,5852,8,263,3,263, + 5854,8,263,1,264,1,264,1,264,1,264,1,265,1,265,3,265,5862,8,265, + 1,265,1,265,3,265,5866,8,265,1,266,3,266,5869,8,266,1,266,1,266, + 1,266,1,266,1,266,3,266,5876,8,266,1,266,1,266,1,266,1,266,1,266, + 3,266,5883,8,266,1,266,1,266,1,266,3,266,5888,8,266,1,266,1,266, + 1,266,1,266,1,266,3,266,5895,8,266,1,266,3,266,5898,8,266,3,266, + 5900,8,266,1,266,3,266,5903,8,266,1,267,1,267,1,267,1,267,3,267, + 5909,8,267,1,267,1,267,1,267,3,267,5914,8,267,1,267,1,267,3,267, + 5918,8,267,1,268,1,268,1,268,5,268,5923,8,268,10,268,12,268,5926, + 9,268,1,269,1,269,1,269,1,270,1,270,1,270,1,271,3,271,5935,8,271, + 1,271,1,271,1,271,1,271,1,271,3,271,5942,8,271,1,271,3,271,5945, + 8,271,1,271,3,271,5948,8,271,1,272,1,272,3,272,5952,8,272,1,272, + 1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,3,272,5963,8,272, + 1,272,3,272,5966,8,272,1,272,3,272,5969,8,272,1,272,3,272,5972,8, + 272,1,273,3,273,5975,8,273,1,273,1,273,1,273,1,273,1,273,3,273,5982, + 8,273,1,273,3,273,5985,8,273,1,273,3,273,5988,8,273,1,274,1,274, + 1,274,5,274,5993,8,274,10,274,12,274,5996,9,274,1,275,1,275,1,275, + 1,275,1,275,1,275,1,275,1,275,1,275,3,275,6007,8,275,1,275,1,275, + 1,275,1,275,1,275,3,275,6014,8,275,3,275,6016,8,275,1,276,1,276, + 1,276,3,276,6021,8,276,1,276,1,276,1,276,5,276,6026,8,276,10,276, + 12,276,6029,9,276,1,276,1,276,1,276,3,276,6034,8,276,1,276,1,276, + 1,276,1,277,1,277,3,277,6041,8,277,1,278,1,278,1,278,3,278,6046, + 8,278,1,278,1,278,1,279,3,279,6051,8,279,1,279,1,279,3,279,6055, + 8,279,1,279,1,279,3,279,6059,8,279,1,279,1,279,3,279,6063,8,279, + 3,279,6065,8,279,1,280,1,280,3,280,6069,8,280,1,281,1,281,3,281, + 6073,8,281,1,281,3,281,6076,8,281,1,281,3,281,6079,8,281,3,281,6081, + 8,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,3,281,6091, + 8,281,3,281,6093,8,281,1,281,1,281,1,281,3,281,6098,8,281,5,281, + 6100,8,281,10,281,12,281,6103,9,281,1,282,1,282,3,282,6107,8,282, + 1,283,1,283,3,283,6111,8,283,1,283,1,283,1,283,5,283,6116,8,283, + 10,283,12,283,6119,9,283,1,284,1,284,3,284,6123,8,284,1,284,1,284, + 3,284,6127,8,284,1,284,3,284,6130,8,284,1,284,1,284,1,284,1,284, + 3,284,6136,8,284,1,284,3,284,6139,8,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,3,286,6158,8,286,1,286,1,286,1,286,1,287,1,287,3,287, + 6165,8,287,1,287,1,287,3,287,6169,8,287,1,288,3,288,6172,8,288,1, + 288,1,288,3,288,6176,8,288,1,288,1,288,3,288,6180,8,288,1,288,3, + 288,6183,8,288,1,288,3,288,6186,8,288,1,289,1,289,1,289,3,289,6191, + 8,289,1,290,1,290,1,290,1,290,1,290,5,290,6198,8,290,10,290,12,290, + 6201,9,290,1,291,1,291,1,291,1,291,3,291,6207,8,291,1,291,1,291, + 3,291,6211,8,291,1,292,1,292,3,292,6215,8,292,1,292,1,292,3,292, + 6219,8,292,1,292,3,292,6222,8,292,3,292,6224,8,292,1,293,1,293,1, + 293,3,293,6229,8,293,1,293,1,293,3,293,6233,8,293,1,294,1,294,1, + 294,3,294,6238,8,294,1,294,1,294,1,294,1,294,3,294,6244,8,294,1, + 295,1,295,1,295,1,295,1,295,3,295,6251,8,295,1,296,1,296,1,296,3, + 296,6256,8,296,1,297,1,297,1,297,3,297,6261,8,297,1,297,1,297,1, + 298,1,298,1,298,5,298,6268,8,298,10,298,12,298,6271,9,298,1,299, + 1,299,1,299,1,299,3,299,6277,8,299,1,299,1,299,1,299,1,299,5,299, + 6283,8,299,10,299,12,299,6286,9,299,1,299,1,299,1,299,1,299,1,299, + 1,299,1,299,1,299,3,299,6296,8,299,1,300,1,300,1,300,3,300,6301, + 8,300,1,300,1,300,3,300,6305,8,300,1,300,3,300,6308,8,300,1,300, + 1,300,3,300,6312,8,300,1,300,1,300,1,300,3,300,6317,8,300,4,300, + 6319,8,300,11,300,12,300,6320,1,300,1,300,1,300,3,300,6326,8,300, + 1,301,1,301,1,301,1,301,5,301,6332,8,301,10,301,12,301,6335,9,301, + 1,302,1,302,1,302,1,303,1,303,1,303,5,303,6343,8,303,10,303,12,303, + 6346,9,303,1,304,1,304,3,304,6350,8,304,1,304,1,304,3,304,6354,8, + 304,1,304,3,304,6357,8,304,1,304,3,304,6360,8,304,3,304,6362,8,304, + 1,304,3,304,6365,8,304,1,304,3,304,6368,8,304,1,304,3,304,6371,8, + 304,1,304,1,304,3,304,6375,8,304,1,304,1,304,3,304,6379,8,304,1, + 304,1,304,3,304,6383,8,304,3,304,6385,8,304,1,304,1,304,1,304,1, + 304,1,304,1,304,1,304,3,304,6394,8,304,1,304,1,304,1,304,3,304,6399, + 8,304,1,304,1,304,1,304,1,304,3,304,6405,8,304,1,304,1,304,3,304, + 6409,8,304,3,304,6411,8,304,1,304,1,304,1,304,1,304,1,304,3,304, + 6418,8,304,1,304,1,304,1,304,3,304,6423,8,304,1,304,1,304,1,304, + 1,304,5,304,6429,8,304,10,304,12,304,6432,9,304,1,305,3,305,6435, + 8,305,1,305,1,305,1,305,1,305,1,305,3,305,6442,8,305,1,306,1,306, + 1,306,3,306,6447,8,306,1,306,3,306,6450,8,306,1,306,1,306,1,306, + 1,306,3,306,6456,8,306,1,307,1,307,3,307,6460,8,307,1,308,1,308, + 1,308,1,308,3,308,6466,8,308,1,309,1,309,1,309,1,309,1,309,1,309, + 1,309,3,309,6475,8,309,1,309,1,309,1,309,1,309,3,309,6481,8,309, + 3,309,6483,8,309,1,310,1,310,1,310,3,310,6488,8,310,1,310,3,310, + 6491,8,310,1,310,1,310,1,310,1,310,1,310,1,310,1,310,3,310,6500, + 8,310,1,310,1,310,1,310,1,310,1,310,3,310,6507,8,310,3,310,6509, + 8,310,1,311,1,311,1,311,5,311,6514,8,311,10,311,12,311,6517,9,311, + 1,312,1,312,3,312,6521,8,312,1,312,3,312,6524,8,312,1,313,1,313, + 1,313,1,313,1,313,1,313,1,313,1,313,3,313,6534,8,313,1,314,1,314, + 1,314,1,314,1,314,1,314,1,314,5,314,6543,8,314,10,314,12,314,6546, + 9,314,1,314,1,314,3,314,6550,8,314,1,314,1,314,3,314,6554,8,314, + 1,315,1,315,1,315,1,315,1,315,1,315,3,315,6562,8,315,1,316,1,316, + 1,316,1,317,1,317,1,317,1,317,1,317,3,317,6572,8,317,1,318,1,318, + 1,318,5,318,6577,8,318,10,318,12,318,6580,9,318,1,319,1,319,1,319, + 3,319,6585,8,319,1,320,1,320,1,320,1,320,1,320,1,320,1,320,5,320, + 6594,8,320,10,320,12,320,6597,9,320,1,320,1,320,1,320,3,320,6602, + 8,320,1,320,1,320,1,320,1,320,1,320,1,320,5,320,6610,8,320,10,320, + 12,320,6613,9,320,1,320,1,320,1,321,1,321,1,321,1,321,3,321,6621, + 8,321,1,321,1,321,3,321,6625,8,321,1,321,4,321,6628,8,321,11,321, + 12,321,6629,3,321,6632,8,321,1,321,1,321,3,321,6636,8,321,1,322, + 1,322,1,322,1,322,1,322,1,322,3,322,6644,8,322,1,323,3,323,6647, + 8,323,1,323,1,323,1,323,3,323,6652,8,323,1,323,5,323,6655,8,323, + 10,323,12,323,6658,9,323,1,323,1,323,1,323,1,323,3,323,6664,8,323, + 3,323,6666,8,323,1,323,1,323,1,323,1,323,3,323,6672,8,323,1,324, + 1,324,3,324,6676,8,324,1,324,3,324,6679,8,324,1,324,1,324,1,324, + 3,324,6684,8,324,1,324,3,324,6687,8,324,3,324,6689,8,324,1,325,1, + 325,1,325,1,325,3,325,6695,8,325,1,326,1,326,1,326,1,326,1,326,1, + 326,1,326,3,326,6704,8,326,1,326,1,326,1,326,1,326,3,326,6710,8, + 326,1,326,3,326,6713,8,326,1,327,1,327,1,327,1,327,1,328,1,328,3, + 328,6721,8,328,1,328,3,328,6724,8,328,1,329,1,329,3,329,6728,8,329, + 1,329,1,329,1,329,1,329,3,329,6734,8,329,3,329,6736,8,329,1,329, + 3,329,6739,8,329,1,330,1,330,3,330,6743,8,330,1,330,1,330,1,330, + 3,330,6748,8,330,1,331,1,331,1,331,1,331,1,331,3,331,6755,8,331, + 1,331,1,331,1,331,1,331,1,331,3,331,6762,8,331,3,331,6764,8,331, + 1,331,1,331,1,331,1,331,3,331,6770,8,331,3,331,6772,8,331,1,331, + 1,331,1,331,3,331,6777,8,331,3,331,6779,8,331,1,332,1,332,3,332, + 6783,8,332,1,333,1,333,1,334,1,334,1,335,1,335,1,335,3,335,6792, + 8,335,1,335,1,335,3,335,6796,8,335,1,335,1,335,1,335,1,335,1,335, + 1,335,5,335,6804,8,335,10,335,12,335,6807,9,335,1,336,1,336,1,336, + 1,336,1,336,1,336,1,336,1,336,1,336,1,336,1,336,3,336,6820,8,336, + 1,336,3,336,6823,8,336,1,336,1,336,1,336,1,336,1,336,1,336,3,336, + 6831,8,336,1,336,1,336,1,336,1,336,1,336,5,336,6838,8,336,10,336, + 12,336,6841,9,336,1,336,1,336,1,336,3,336,6846,8,336,1,336,1,336, + 1,336,3,336,6851,8,336,1,336,1,336,1,336,1,336,1,336,1,336,3,336, + 6859,8,336,3,336,6861,8,336,1,336,1,336,1,336,3,336,6866,8,336,1, + 336,1,336,3,336,6870,8,336,1,336,1,336,1,336,3,336,6875,8,336,1, + 336,1,336,1,336,3,336,6880,8,336,1,337,1,337,1,337,1,337,3,337,6886, + 8,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337, + 1,337,1,337,1,337,1,337,5,337,6902,8,337,10,337,12,337,6905,9,337, + 1,338,1,338,1,338,1,338,1,338,1,338,3,338,6913,8,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, + 3,338,6928,8,338,1,338,1,338,1,338,3,338,6933,8,338,1,338,3,338, + 6936,8,338,1,338,1,338,1,338,1,338,3,338,6942,8,338,1,338,1,338, + 1,338,3,338,6947,8,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338, + 1,338,1,338,1,338,1,338,3,338,6960,8,338,1,338,4,338,6963,8,338, + 11,338,12,338,6964,1,338,1,338,3,338,6969,8,338,1,338,1,338,1,338, + 1,338,1,338,3,338,6976,8,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, + 3,338,6995,8,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338, + 1,338,1,338,3,338,7007,8,338,1,338,1,338,1,338,3,338,7012,8,338, + 1,338,1,338,1,338,1,338,1,338,1,338,3,338,7020,8,338,5,338,7022, + 8,338,10,338,12,338,7025,9,338,1,339,1,339,1,339,1,339,1,339,1,339, + 3,339,7033,8,339,1,339,3,339,7036,8,339,1,339,1,339,1,339,3,339, + 7041,8,339,1,339,1,339,1,339,3,339,7046,8,339,1,339,3,339,7049,8, + 339,1,339,1,339,1,340,1,340,1,340,1,340,1,340,1,340,1,340,3,340, + 7060,8,340,1,340,1,340,1,340,1,340,1,340,1,340,3,340,7068,8,340, + 1,340,1,340,1,340,3,340,7073,8,340,3,340,7075,8,340,1,340,3,340, + 7078,8,340,1,341,1,341,3,341,7082,8,341,1,342,1,342,1,342,1,342, + 1,342,1,342,1,342,1,342,1,342,3,342,7093,8,342,1,342,1,342,1,342, + 1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342, + 1,342,1,342,1,342,1,342,1,342,3,342,7114,8,342,1,342,1,342,1,342, + 1,342,1,342,1,342,3,342,7122,8,342,1,342,1,342,1,342,1,342,1,342, + 1,342,1,342,1,342,1,342,1,342,1,342,3,342,7135,8,342,1,342,1,342, + 1,342,1,342,1,342,1,342,1,342,1,342,3,342,7145,8,342,1,342,1,342, + 1,342,1,342,3,342,7151,8,342,1,342,1,342,1,342,1,342,3,342,7157, + 8,342,1,342,3,342,7160,8,342,1,342,3,342,7163,8,342,1,342,1,342, + 1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342, + 1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342, + 3,342,7189,8,342,3,342,7191,8,342,1,342,1,342,1,342,1,342,1,342, 1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342, - 1,342,1,342,1,342,1,342,1,342,3,342,7041,8,342,1,342,1,342,1,342, - 1,342,1,342,1,342,1,342,1,342,1,342,1,342,3,342,7053,8,342,1,342, - 1,342,1,342,3,342,7058,8,342,1,342,1,342,1,342,1,342,1,342,1,342, - 3,342,7066,8,342,5,342,7068,8,342,10,342,12,342,7071,9,342,1,343, - 1,343,1,343,1,343,1,343,1,343,3,343,7079,8,343,1,343,3,343,7082, - 8,343,1,343,1,343,1,343,3,343,7087,8,343,1,343,1,343,1,343,3,343, - 7092,8,343,1,343,3,343,7095,8,343,1,343,1,343,1,344,1,344,1,344, - 1,344,1,344,1,344,1,344,3,344,7106,8,344,1,344,1,344,1,344,1,344, - 1,344,1,344,3,344,7114,8,344,1,344,1,344,1,344,3,344,7119,8,344, - 3,344,7121,8,344,1,344,3,344,7124,8,344,1,345,1,345,3,345,7128,8, - 345,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,3,346, - 7139,8,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,346,1,346,1,346,1,346,1,346,3,346, - 7160,8,346,1,346,1,346,1,346,1,346,1,346,1,346,3,346,7168,8,346, - 1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346, - 3,346,7181,8,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346, - 3,346,7191,8,346,1,346,1,346,1,346,1,346,3,346,7197,8,346,1,346, - 1,346,1,346,1,346,3,346,7203,8,346,1,346,3,346,7206,8,346,1,346, - 3,346,7209,8,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,346,1,346,1,346,1,346,1,346, - 1,346,1,346,1,346,1,346,1,346,3,346,7235,8,346,3,346,7237,8,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,346,1,346,1,346,1,346,1,346,3,346,7258,8,346, - 1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,3,346,7268,8,346, - 1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346, - 3,346,7281,8,346,1,346,1,346,1,346,3,346,7286,8,346,1,346,1,346, - 3,346,7290,8,346,3,346,7292,8,346,1,346,1,346,1,346,1,346,1,346, - 1,346,1,346,1,346,1,346,1,346,3,346,7304,8,346,1,347,1,347,1,347, - 5,347,7309,8,347,10,347,12,347,7312,9,347,1,348,1,348,1,348,3,348, - 7317,8,348,1,349,1,349,1,350,1,350,3,350,7323,8,350,1,350,1,350, - 3,350,7327,8,350,1,351,1,351,1,351,1,352,1,352,1,352,1,352,5,352, - 7336,8,352,10,352,12,352,7339,9,352,1,353,1,353,1,353,1,353,1,354, - 1,354,1,354,3,354,7348,8,354,1,355,1,355,3,355,7352,8,355,1,355, - 1,355,1,355,3,355,7357,8,355,1,355,3,355,7360,8,355,1,355,3,355, - 7363,8,355,1,355,1,355,1,356,1,356,1,356,1,356,1,356,3,356,7372, - 8,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,3,356, - 7383,8,356,3,356,7385,8,356,1,357,1,357,3,357,7389,8,357,1,357,1, - 357,1,357,3,357,7394,8,357,1,358,1,358,1,358,1,358,1,358,1,358,1, - 358,3,358,7403,8,358,1,359,1,359,1,359,3,359,7408,8,359,1,359,1, - 359,1,360,1,360,1,361,1,361,3,361,7416,8,361,1,362,1,362,1,363,1, - 363,1,363,1,363,1,363,1,363,3,363,7426,8,363,1,364,1,364,1,364,1, - 364,1,364,1,364,3,364,7434,8,364,1,365,1,365,3,365,7438,8,365,1, - 365,3,365,7441,8,365,1,366,1,366,1,366,5,366,7446,8,366,10,366,12, - 366,7449,9,366,1,367,1,367,1,367,1,367,1,367,3,367,7456,8,367,1, - 368,1,368,3,368,7460,8,368,1,369,1,369,1,369,5,369,7465,8,369,10, - 369,12,369,7468,9,369,1,370,1,370,1,370,1,370,1,370,3,370,7475,8, - 370,3,370,7477,8,370,1,371,1,371,1,371,1,371,1,371,5,371,7484,8, - 371,10,371,12,371,7487,9,371,3,371,7489,8,371,1,371,1,371,1,372, - 1,372,1,372,1,372,1,372,1,372,1,372,1,372,3,372,7501,8,372,1,373, - 1,373,1,374,1,374,1,374,1,374,1,374,3,374,7510,8,374,1,374,1,374, - 1,374,1,374,1,374,3,374,7517,8,374,1,374,1,374,1,374,1,374,1,374, - 1,374,1,374,3,374,7526,8,374,1,375,1,375,1,375,1,375,1,375,1,376, - 1,376,1,376,3,376,7536,8,376,1,376,1,376,1,376,3,376,7541,8,376, - 1,376,1,376,3,376,7545,8,376,3,376,7547,8,376,1,376,3,376,7550,8, - 376,1,377,4,377,7553,8,377,11,377,12,377,7554,1,378,5,378,7558,8, - 378,10,378,12,378,7561,9,378,1,379,1,379,1,379,5,379,7566,8,379, - 10,379,12,379,7569,9,379,1,380,1,380,1,380,1,380,1,380,3,380,7576, - 8,380,1,380,3,380,7579,8,380,1,381,1,381,1,381,5,381,7584,8,381, - 10,381,12,381,7587,9,381,1,382,1,382,1,382,5,382,7592,8,382,10,382, - 12,382,7595,9,382,1,383,1,383,1,383,5,383,7600,8,383,10,383,12,383, - 7603,9,383,1,384,1,384,1,384,5,384,7608,8,384,10,384,12,384,7611, - 9,384,1,385,1,385,1,386,1,386,1,387,1,387,1,388,1,388,1,389,1,389, - 1,390,1,390,1,391,1,391,3,391,7627,8,391,1,392,1,392,1,392,5,392, - 7632,8,392,10,392,12,392,7635,9,392,1,393,1,393,1,393,5,393,7640, - 8,393,10,393,12,393,7643,9,393,1,394,1,394,1,395,1,395,1,396,1,396, - 1,397,1,397,1,398,1,398,1,399,1,399,1,399,1,399,3,399,7659,8,399, - 1,400,1,400,1,400,1,400,3,400,7665,8,400,1,401,1,401,1,401,1,401, - 3,401,7671,8,401,1,402,1,402,1,403,1,403,1,403,1,403,3,403,7679, - 8,403,1,404,1,404,1,404,1,404,3,404,7685,8,404,1,405,1,405,1,405, - 3,405,7690,8,405,1,406,1,406,1,406,1,406,5,406,7696,8,406,10,406, - 12,406,7699,9,406,1,406,1,406,3,406,7703,8,406,1,407,3,407,7706, - 8,407,1,407,1,407,1,408,1,408,1,408,1,408,1,408,3,408,7715,8,408, - 1,409,1,409,1,409,5,409,7720,8,409,10,409,12,409,7723,9,409,1,410, - 1,410,3,410,7727,8,410,1,411,1,411,3,411,7731,8,411,1,412,1,412, - 1,412,3,412,7736,8,412,1,413,1,413,1,413,1,413,3,413,7742,8,413, - 1,414,1,414,1,414,3,414,7747,8,414,1,414,1,414,1,414,1,414,1,414, - 1,414,3,414,7755,8,414,1,415,1,415,1,416,1,416,1,416,1,416,1,416, - 1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416, - 1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416, - 1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416, - 1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416,1,416, - 1,416,1,416,3,416,7810,8,416,1,417,1,417,1,418,1,418,1,419,3,419, - 7817,8,419,1,419,1,419,1,419,1,419,4,419,7823,8,419,11,419,12,419, - 7824,3,419,7827,8,419,3,419,7829,8,419,1,419,1,419,5,419,7833,8, - 419,10,419,12,419,7836,9,419,1,419,3,419,7839,8,419,1,419,1,419, - 3,419,7843,8,419,1,420,1,420,1,420,1,420,1,421,1,421,1,421,1,421, - 1,421,3,421,7854,8,421,1,421,3,421,7857,8,421,1,421,1,421,3,421, - 7861,8,421,1,421,1,421,3,421,7865,8,421,1,421,1,421,3,421,7869,8, - 421,1,421,3,421,7872,8,421,1,421,3,421,7875,8,421,1,421,3,421,7878, - 8,421,1,421,1,421,1,421,1,421,1,421,5,421,7885,8,421,10,421,12,421, - 7888,9,421,1,421,1,421,3,421,7892,8,421,1,421,1,421,3,421,7896,8, - 421,1,421,1,421,1,422,1,422,1,422,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,424,1,424,1,424, - 1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,3,424, - 7929,8,424,1,425,1,425,1,425,1,425,1,426,1,426,1,426,1,426,3,426, - 7939,8,426,1,426,1,426,3,426,7943,8,426,1,426,1,426,1,426,1,426, - 3,426,7949,8,426,1,426,1,426,1,426,3,426,7954,8,426,1,427,1,427, - 1,427,1,427,1,427,1,428,1,428,3,428,7963,8,428,1,428,1,428,1,428, - 1,428,5,428,7969,8,428,10,428,12,428,7972,9,428,1,428,1,428,1,429, - 1,429,1,429,1,429,1,430,1,430,3,430,7982,8,430,1,430,1,430,1,430, - 1,430,5,430,7988,8,430,10,430,12,430,7991,9,430,1,431,1,431,1,431, - 1,431,5,431,7997,8,431,10,431,12,431,8000,9,431,1,431,1,431,1,431, - 1,431,5,431,8006,8,431,10,431,12,431,8009,9,431,5,431,8011,8,431, - 10,431,12,431,8014,9,431,1,431,3,431,8017,8,431,1,431,1,431,1,431, - 1,431,1,432,1,432,5,432,8025,8,432,10,432,12,432,8028,9,432,1,433, - 1,433,3,433,8032,8,433,1,433,1,433,1,433,1,433,5,433,8038,8,433, - 10,433,12,433,8041,9,433,4,433,8043,8,433,11,433,12,433,8044,1,433, - 3,433,8048,8,433,1,433,1,433,1,433,1,433,1,434,3,434,8055,8,434, - 1,434,1,434,1,434,1,434,3,434,8061,8,434,1,434,1,434,1,435,1,435, - 1,435,1,435,3,435,8069,8,435,1,435,1,435,1,435,1,435,1,435,1,435, - 3,435,8077,8,435,1,435,3,435,8080,8,435,1,435,1,435,1,435,1,435, - 1,435,3,435,8087,8,435,3,435,8089,8,435,1,436,3,436,8092,8,436,1, - 436,1,436,1,436,1,436,3,436,8098,8,436,1,436,1,436,1,436,1,436,1, - 436,1,437,1,437,3,437,8107,8,437,1,437,1,437,3,437,8111,8,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,3,438,8125,8,438,1,438,3,438,8128,8,438,3,438,8130,8,438,1, - 438,1,438,1,439,1,439,3,439,8136,8,439,1,439,1,439,1,439,1,439,1, - 439,1,439,4,439,8144,8,439,11,439,12,439,8145,3,439,8148,8,439,3, - 439,8150,8,439,1,439,1,439,1,439,1,439,5,439,8156,8,439,10,439,12, - 439,8159,9,439,3,439,8161,8,439,1,439,3,439,8164,8,439,1,440,1,440, - 1,440,1,440,1,441,1,441,1,441,1,441,3,441,8174,8,441,1,441,1,441, - 1,442,1,442,5,442,8180,8,442,10,442,12,442,8183,9,442,1,442,1,442, - 1,442,3,442,8188,8,442,1,442,1,442,1,443,1,443,3,443,8194,8,443, - 1,443,1,443,1,444,1,444,1,444,3,444,8201,8,444,1,444,1,444,3,444, - 8205,8,444,1,444,1,444,3,444,8209,8,444,1,444,3,444,8212,8,444,1, - 444,3,444,8215,8,444,1,444,1,444,1,445,1,445,3,445,8221,8,445,1, - 445,1,445,1,446,1,446,1,446,3,446,8228,8,446,1,446,3,446,8231,8, - 446,1,446,1,446,1,446,1,446,1,446,1,446,3,446,8239,8,446,3,446,8241, - 8,446,1,446,1,446,1,446,1,446,1,446,5,446,8248,8,446,10,446,12,446, - 8251,9,446,1,446,1,446,3,446,8255,8,446,3,446,8257,8,446,1,446,1, - 446,1,447,1,447,1,447,3,447,8264,8,447,1,447,1,447,1,448,1,448,3, - 448,8270,8,448,1,448,3,448,8273,8,448,1,448,1,448,1,448,1,448,1, - 448,1,449,1,449,1,449,1,449,1,449,3,449,8285,8,449,1,449,1,449,1, - 449,1,449,1,449,3,449,8292,8,449,3,449,8294,8,449,1,450,1,450,3, - 450,8298,8,450,1,450,1,450,1,450,1,451,3,451,8304,8,451,1,451,1, - 451,1,451,3,451,8309,8,451,1,451,1,451,3,451,8313,8,451,1,451,3, - 451,8316,8,451,1,451,3,451,8319,8,451,1,451,1,451,1,451,1,451,1, - 451,4,451,8326,8,451,11,451,12,451,8327,1,452,3,452,8331,8,452,1, - 452,1,452,3,452,8335,8,452,1,452,1,452,3,452,8339,8,452,3,452,8341, - 8,452,1,452,3,452,8344,8,452,1,452,3,452,8347,8,452,1,453,1,453, - 1,453,1,453,3,453,8353,8,453,1,453,1,453,1,453,1,453,1,453,3,453, - 8360,8,453,1,453,1,453,1,453,1,453,1,453,3,453,8367,8,453,1,453, - 1,453,1,453,1,453,3,453,8373,8,453,3,453,8375,8,453,1,454,1,454, - 3,454,8379,8,454,1,454,1,454,1,454,3,454,8384,8,454,1,454,1,454, - 1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455, - 1,455,5,455,8400,8,455,10,455,12,455,8403,9,455,1,455,1,455,4,455, - 8407,8,455,11,455,12,455,8408,1,456,1,456,1,456,1,456,1,456,5,456, - 8416,8,456,10,456,12,456,8419,9,456,1,456,1,456,1,456,1,456,3,456, - 8425,8,456,1,457,1,457,3,457,8429,8,457,1,458,1,458,1,458,1,458, - 1,459,1,459,1,459,1,460,1,460,1,460,3,460,8441,8,460,1,460,3,460, - 8444,8,460,1,460,1,460,1,461,1,461,1,461,1,461,1,461,1,461,1,461, - 1,461,1,461,3,461,8457,8,461,1,461,3,461,8460,8,461,1,462,1,462, - 3,462,8464,8,462,1,463,1,463,1,463,1,463,1,463,5,463,8471,8,463, - 10,463,12,463,8474,9,463,1,463,1,463,5,463,8478,8,463,10,463,12, - 463,8481,9,463,4,463,8483,8,463,11,463,12,463,8484,1,464,1,464,1, - 464,3,464,8490,8,464,1,465,1,465,3,465,8494,8,465,1,466,3,466,8497, - 8,466,1,466,3,466,8500,8,466,1,466,3,466,8503,8,466,1,466,3,466, - 8506,8,466,1,466,3,466,8509,8,466,1,466,1,466,3,466,8513,8,466,1, - 466,3,466,8516,8,466,1,466,0,3,678,682,684,467,0,2,4,6,8,10,12,14, - 16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58, - 60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100, - 102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132, - 134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164, - 166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196, - 198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228, - 230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260, - 262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292, - 294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324, - 326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356, - 358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388, - 390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420, - 422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452, - 454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484, - 486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516, - 518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548, - 550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580, - 582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612, - 614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644, - 646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676, - 678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708, - 710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740, - 742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772, - 774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804, - 806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836, - 838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868, - 870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900, - 902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932, - 0,119,2,0,195,195,364,364,2,0,66,66,318,318,2,0,99,99,318,318,2, - 0,134,134,318,318,1,0,529,531,2,0,10,10,94,94,2,0,133,133,191,191, - 2,0,254,254,332,332,2,0,162,162,363,363,2,0,180,180,221,221,5,0, - 30,30,288,288,329,329,352,352,354,354,2,0,109,109,532,532,2,0,158, - 158,277,277,2,0,367,367,439,439,2,0,139,139,312,312,2,0,191,191, - 333,333,2,0,313,313,333,333,2,0,150,150,315,315,2,0,64,64,94,94, - 4,0,78,78,183,183,197,197,298,298,1,0,549,551,2,0,213,213,254,254, - 2,0,352,352,354,354,2,0,200,200,224,224,9,0,30,30,160,160,165,165, - 179,179,219,219,227,227,342,342,345,345,438,438,3,0,113,113,284, - 284,336,336,2,0,53,53,78,78,2,0,105,105,379,379,2,0,260,260,262, - 262,3,0,173,173,260,260,262,262,1,0,12,13,2,0,64,64,375,375,2,0, - 156,156,206,206,2,0,189,189,360,360,2,0,215,215,373,373,3,0,133, - 133,191,191,333,333,5,0,30,30,88,88,182,182,241,241,369,369,2,0, - 9,9,94,94,2,0,92,92,226,226,1,0,448,449,2,0,92,92,414,414,2,0,341, - 341,414,414,4,0,163,163,185,185,283,283,353,353,2,0,135,135,145, - 145,2,0,211,211,278,278,3,0,321,321,357,357,445,445,3,0,66,66,99, - 99,318,318,5,0,108,108,168,168,226,226,328,328,342,342,2,0,167,167, - 314,314,2,0,61,61,265,265,4,0,207,207,249,249,268,268,293,293,2, - 0,130,130,307,307,2,0,64,64,68,68,10,0,46,46,88,88,182,182,202,202, - 241,241,352,352,354,354,357,358,369,369,521,523,5,0,212,212,329, - 329,350,350,455,455,457,457,5,0,212,212,329,329,350,350,361,361, - 455,456,2,0,37,37,55,55,2,0,207,207,249,249,2,0,10,10,53,53,2,0, - 181,181,243,243,2,0,170,170,320,320,2,0,141,141,223,223,5,0,108, - 108,168,168,189,189,342,342,360,360,2,0,226,226,328,328,2,0,163, - 163,185,185,2,0,186,186,193,193,4,0,88,88,182,182,241,241,369,369, - 2,0,137,137,242,242,2,0,161,161,319,319,4,0,129,129,161,161,319, - 319,454,454,2,0,356,356,380,380,2,0,81,81,382,382,2,0,151,151,254, - 254,2,0,133,133,138,138,1,0,31,32,2,0,128,128,547,547,2,0,60,60, - 96,96,2,0,99,99,349,349,2,0,131,131,414,414,2,0,201,201,334,334, - 3,0,59,59,70,70,97,97,2,0,30,30,56,56,1,0,527,528,2,0,207,207,268, - 268,2,0,320,320,414,414,2,0,574,574,576,576,1,0,468,469,4,0,113, - 113,115,115,119,119,126,126,2,0,360,360,477,477,2,0,394,395,409, - 409,2,0,391,392,406,406,1,0,391,392,1,0,418,419,5,0,10,10,16,17, - 21,21,23,23,25,25,3,0,9,9,14,14,27,27,2,0,98,98,396,396,2,0,50,51, - 75,76,2,0,41,41,420,420,3,0,39,39,73,73,95,95,4,0,393,393,399,399, - 404,404,425,425,2,0,292,292,347,347,2,0,166,166,188,188,2,0,304, - 304,450,450,3,0,299,299,320,320,481,481,2,0,208,208,289,289,3,0, - 30,30,34,34,90,90,6,0,9,10,12,17,21,21,23,23,25,25,27,27,2,0,114, - 114,120,120,2,0,20,20,22,22,1,0,483,486,17,0,53,53,116,116,123,124, - 129,228,238,386,433,452,455,469,471,471,473,473,475,475,477,488, - 490,502,504,504,506,518,520,520,524,524,547,548,3,0,106,123,125, - 128,472,472,4,0,30,52,54,70,72,105,454,454,2,0,62,62,116,116,2,0, - 10,10,20,20,2,0,434,434,501,501,2,0,167,167,507,507,1,0,512,517, - 2,0,144,144,210,210,9959,0,937,1,0,0,0,2,942,1,0,0,0,4,1066,1,0, - 0,0,6,1068,1,0,0,0,8,1071,1,0,0,0,10,1121,1,0,0,0,12,1131,1,0,0, - 0,14,1133,1,0,0,0,16,1145,1,0,0,0,18,1157,1,0,0,0,20,1168,1,0,0, - 0,22,1202,1,0,0,0,24,1246,1,0,0,0,26,1248,1,0,0,0,28,1260,1,0,0, - 0,30,1267,1,0,0,0,32,1286,1,0,0,0,34,1294,1,0,0,0,36,1296,1,0,0, - 0,38,1310,1,0,0,0,40,1314,1,0,0,0,42,1351,1,0,0,0,44,1353,1,0,0, - 0,46,1361,1,0,0,0,48,1371,1,0,0,0,50,1378,1,0,0,0,52,1386,1,0,0, - 0,54,1392,1,0,0,0,56,1408,1,0,0,0,58,1412,1,0,0,0,60,1414,1,0,0, - 0,62,1426,1,0,0,0,64,1431,1,0,0,0,66,1436,1,0,0,0,68,1438,1,0,0, - 0,70,1450,1,0,0,0,72,1458,1,0,0,0,74,1460,1,0,0,0,76,1584,1,0,0, - 0,78,1586,1,0,0,0,80,1603,1,0,0,0,82,1605,1,0,0,0,84,1619,1,0,0, - 0,86,1621,1,0,0,0,88,1635,1,0,0,0,90,1637,1,0,0,0,92,1874,1,0,0, - 0,94,1881,1,0,0,0,96,1883,1,0,0,0,98,1885,1,0,0,0,100,1888,1,0,0, - 0,102,1899,1,0,0,0,104,1902,1,0,0,0,106,1931,1,0,0,0,108,1933,1, - 0,0,0,110,1974,1,0,0,0,112,1976,1,0,0,0,114,2030,1,0,0,0,116,2076, - 1,0,0,0,118,2097,1,0,0,0,120,2099,1,0,0,0,122,2116,1,0,0,0,124,2197, - 1,0,0,0,126,2199,1,0,0,0,128,2210,1,0,0,0,130,2233,1,0,0,0,132,2251, - 1,0,0,0,134,2253,1,0,0,0,136,2288,1,0,0,0,138,2381,1,0,0,0,140,2386, - 1,0,0,0,142,2388,1,0,0,0,144,2486,1,0,0,0,146,2488,1,0,0,0,148,2492, - 1,0,0,0,150,2503,1,0,0,0,152,2511,1,0,0,0,154,2514,1,0,0,0,156,2517, - 1,0,0,0,158,2535,1,0,0,0,160,2537,1,0,0,0,162,2541,1,0,0,0,164,2554, - 1,0,0,0,166,2556,1,0,0,0,168,2561,1,0,0,0,170,2581,1,0,0,0,172,2589, - 1,0,0,0,174,2596,1,0,0,0,176,2598,1,0,0,0,178,2607,1,0,0,0,180,2610, - 1,0,0,0,182,2614,1,0,0,0,184,2618,1,0,0,0,186,2643,1,0,0,0,188,2653, - 1,0,0,0,190,2667,1,0,0,0,192,2683,1,0,0,0,194,2689,1,0,0,0,196,2716, - 1,0,0,0,198,2726,1,0,0,0,200,2742,1,0,0,0,202,2786,1,0,0,0,204,2793, - 1,0,0,0,206,2795,1,0,0,0,208,2821,1,0,0,0,210,2832,1,0,0,0,212,2851, - 1,0,0,0,214,2862,1,0,0,0,216,2900,1,0,0,0,218,2921,1,0,0,0,220,2923, - 1,0,0,0,222,2943,1,0,0,0,224,2955,1,0,0,0,226,2967,1,0,0,0,228,2970, - 1,0,0,0,230,2973,1,0,0,0,232,2993,1,0,0,0,234,2998,1,0,0,0,236,3047, - 1,0,0,0,238,3049,1,0,0,0,240,3072,1,0,0,0,242,3088,1,0,0,0,244,3100, - 1,0,0,0,246,3127,1,0,0,0,248,3142,1,0,0,0,250,3205,1,0,0,0,252,3207, - 1,0,0,0,254,3212,1,0,0,0,256,3218,1,0,0,0,258,3305,1,0,0,0,260,3311, - 1,0,0,0,262,3313,1,0,0,0,264,3329,1,0,0,0,266,3331,1,0,0,0,268,3340, - 1,0,0,0,270,3344,1,0,0,0,272,3357,1,0,0,0,274,3369,1,0,0,0,276,3371, - 1,0,0,0,278,3393,1,0,0,0,280,3405,1,0,0,0,282,3416,1,0,0,0,284,3507, - 1,0,0,0,286,3509,1,0,0,0,288,3520,1,0,0,0,290,3531,1,0,0,0,292,3533, - 1,0,0,0,294,3559,1,0,0,0,296,3561,1,0,0,0,298,3565,1,0,0,0,300,3615, - 1,0,0,0,302,3617,1,0,0,0,304,3623,1,0,0,0,306,3648,1,0,0,0,308,3652, - 1,0,0,0,310,3866,1,0,0,0,312,3884,1,0,0,0,314,3910,1,0,0,0,316,3912, - 1,0,0,0,318,3920,1,0,0,0,320,3926,1,0,0,0,322,3930,1,0,0,0,324,3950, - 1,0,0,0,326,3956,1,0,0,0,328,4023,1,0,0,0,330,4054,1,0,0,0,332,4100, - 1,0,0,0,334,4102,1,0,0,0,336,4104,1,0,0,0,338,4115,1,0,0,0,340,4152, - 1,0,0,0,342,4154,1,0,0,0,344,4160,1,0,0,0,346,4210,1,0,0,0,348,4213, - 1,0,0,0,350,4227,1,0,0,0,352,4248,1,0,0,0,354,4272,1,0,0,0,356,4313, - 1,0,0,0,358,4315,1,0,0,0,360,4317,1,0,0,0,362,4357,1,0,0,0,364,4374, - 1,0,0,0,366,4394,1,0,0,0,368,4447,1,0,0,0,370,4450,1,0,0,0,372,4456, - 1,0,0,0,374,4464,1,0,0,0,376,4477,1,0,0,0,378,4479,1,0,0,0,380,4492, - 1,0,0,0,382,4494,1,0,0,0,384,4507,1,0,0,0,386,4517,1,0,0,0,388,4528, - 1,0,0,0,390,4539,1,0,0,0,392,4541,1,0,0,0,394,4546,1,0,0,0,396,4560, - 1,0,0,0,398,4592,1,0,0,0,400,4629,1,0,0,0,402,4631,1,0,0,0,404,4634, - 1,0,0,0,406,4637,1,0,0,0,408,4654,1,0,0,0,410,4675,1,0,0,0,412,4691, - 1,0,0,0,414,4707,1,0,0,0,416,4729,1,0,0,0,418,4734,1,0,0,0,420,4737, - 1,0,0,0,422,4745,1,0,0,0,424,4770,1,0,0,0,426,4773,1,0,0,0,428,4801, - 1,0,0,0,430,4806,1,0,0,0,432,4846,1,0,0,0,434,5058,1,0,0,0,436,5060, - 1,0,0,0,438,5148,1,0,0,0,440,5150,1,0,0,0,442,5156,1,0,0,0,444,5167, - 1,0,0,0,446,5177,1,0,0,0,448,5257,1,0,0,0,450,5259,1,0,0,0,452,5273, - 1,0,0,0,454,5295,1,0,0,0,456,5368,1,0,0,0,458,5370,1,0,0,0,460,5411, - 1,0,0,0,462,5413,1,0,0,0,464,5418,1,0,0,0,466,5421,1,0,0,0,468,5424, - 1,0,0,0,470,5474,1,0,0,0,472,5476,1,0,0,0,474,5487,1,0,0,0,476,5489, - 1,0,0,0,478,5499,1,0,0,0,480,5534,1,0,0,0,482,5537,1,0,0,0,484,5558, - 1,0,0,0,486,5568,1,0,0,0,488,5588,1,0,0,0,490,5594,1,0,0,0,492,5600, - 1,0,0,0,494,5605,1,0,0,0,496,5618,1,0,0,0,498,5645,1,0,0,0,500,5693, - 1,0,0,0,502,5695,1,0,0,0,504,5733,1,0,0,0,506,5735,1,0,0,0,508,5756, - 1,0,0,0,510,5776,1,0,0,0,512,5780,1,0,0,0,514,5795,1,0,0,0,516,5797, - 1,0,0,0,518,5801,1,0,0,0,520,5805,1,0,0,0,522,5813,1,0,0,0,524,5837, - 1,0,0,0,526,5839,1,0,0,0,528,5850,1,0,0,0,530,5858,1,0,0,0,532,5874, - 1,0,0,0,534,5899,1,0,0,0,536,5901,1,0,0,0,538,5905,1,0,0,0,540,5914, - 1,0,0,0,542,5954,1,0,0,0,544,5965,1,0,0,0,546,5973,1,0,0,0,548,5976, - 1,0,0,0,550,5980,1,0,0,0,552,5995,1,0,0,0,554,6020,1,0,0,0,556,6035, - 1,0,0,0,558,6061,1,0,0,0,560,6063,1,0,0,0,562,6086,1,0,0,0,564,6088, - 1,0,0,0,566,6096,1,0,0,0,568,6114,1,0,0,0,570,6138,1,0,0,0,572,6150, - 1,0,0,0,574,6154,1,0,0,0,576,6166,1,0,0,0,578,6186,1,0,0,0,580,6194, - 1,0,0,0,582,6208,1,0,0,0,584,6231,1,0,0,0,586,6233,1,0,0,0,588,6238, - 1,0,0,0,590,6248,1,0,0,0,592,6269,1,0,0,0,594,6271,1,0,0,0,596,6280, - 1,0,0,0,598,6291,1,0,0,0,600,6301,1,0,0,0,602,6303,1,0,0,0,604,6310, - 1,0,0,0,606,6341,1,0,0,0,608,6371,1,0,0,0,610,6373,1,0,0,0,612,6382, - 1,0,0,0,614,6385,1,0,0,0,616,6456,1,0,0,0,618,6480,1,0,0,0,620,6501, - 1,0,0,0,622,6503,1,0,0,0,624,6511,1,0,0,0,626,6528,1,0,0,0,628,6554, - 1,0,0,0,630,6556,1,0,0,0,632,6564,1,0,0,0,634,6571,1,0,0,0,636,6595, - 1,0,0,0,638,6601,1,0,0,0,640,6609,1,0,0,0,642,6612,1,0,0,0,644,6619, - 1,0,0,0,646,6627,1,0,0,0,648,6632,1,0,0,0,650,6662,1,0,0,0,652,6689, - 1,0,0,0,654,6717,1,0,0,0,656,6734,1,0,0,0,658,6740,1,0,0,0,660,6758, - 1,0,0,0,662,6760,1,0,0,0,664,6764,1,0,0,0,666,6781,1,0,0,0,668,6786, - 1,0,0,0,670,6824,1,0,0,0,672,6826,1,0,0,0,674,6830,1,0,0,0,676,6832, - 1,0,0,0,678,6841,1,0,0,0,680,6925,1,0,0,0,682,6931,1,0,0,0,684,7040, - 1,0,0,0,686,7072,1,0,0,0,688,7123,1,0,0,0,690,7127,1,0,0,0,692,7303, - 1,0,0,0,694,7305,1,0,0,0,696,7313,1,0,0,0,698,7318,1,0,0,0,700,7320, - 1,0,0,0,702,7328,1,0,0,0,704,7331,1,0,0,0,706,7340,1,0,0,0,708,7344, - 1,0,0,0,710,7349,1,0,0,0,712,7366,1,0,0,0,714,7393,1,0,0,0,716,7402, - 1,0,0,0,718,7404,1,0,0,0,720,7411,1,0,0,0,722,7415,1,0,0,0,724,7417, - 1,0,0,0,726,7425,1,0,0,0,728,7433,1,0,0,0,730,7440,1,0,0,0,732,7442, - 1,0,0,0,734,7455,1,0,0,0,736,7459,1,0,0,0,738,7461,1,0,0,0,740,7476, - 1,0,0,0,742,7478,1,0,0,0,744,7500,1,0,0,0,746,7502,1,0,0,0,748,7525, - 1,0,0,0,750,7527,1,0,0,0,752,7549,1,0,0,0,754,7552,1,0,0,0,756,7559, - 1,0,0,0,758,7562,1,0,0,0,760,7578,1,0,0,0,762,7580,1,0,0,0,764,7588, - 1,0,0,0,766,7596,1,0,0,0,768,7604,1,0,0,0,770,7612,1,0,0,0,772,7614, - 1,0,0,0,774,7616,1,0,0,0,776,7618,1,0,0,0,778,7620,1,0,0,0,780,7622, - 1,0,0,0,782,7624,1,0,0,0,784,7628,1,0,0,0,786,7636,1,0,0,0,788,7644, - 1,0,0,0,790,7646,1,0,0,0,792,7648,1,0,0,0,794,7650,1,0,0,0,796,7652, - 1,0,0,0,798,7658,1,0,0,0,800,7664,1,0,0,0,802,7670,1,0,0,0,804,7672, - 1,0,0,0,806,7678,1,0,0,0,808,7684,1,0,0,0,810,7686,1,0,0,0,812,7702, - 1,0,0,0,814,7705,1,0,0,0,816,7714,1,0,0,0,818,7716,1,0,0,0,820,7726, - 1,0,0,0,822,7730,1,0,0,0,824,7735,1,0,0,0,826,7741,1,0,0,0,828,7754, - 1,0,0,0,830,7756,1,0,0,0,832,7809,1,0,0,0,834,7811,1,0,0,0,836,7813, - 1,0,0,0,838,7816,1,0,0,0,840,7844,1,0,0,0,842,7848,1,0,0,0,844,7899, - 1,0,0,0,846,7902,1,0,0,0,848,7928,1,0,0,0,850,7930,1,0,0,0,852,7953, - 1,0,0,0,854,7955,1,0,0,0,856,7960,1,0,0,0,858,7975,1,0,0,0,860,7981, - 1,0,0,0,862,7992,1,0,0,0,864,8022,1,0,0,0,866,8029,1,0,0,0,868,8054, - 1,0,0,0,870,8064,1,0,0,0,872,8091,1,0,0,0,874,8104,1,0,0,0,876,8114, - 1,0,0,0,878,8133,1,0,0,0,880,8165,1,0,0,0,882,8169,1,0,0,0,884,8177, - 1,0,0,0,886,8191,1,0,0,0,888,8197,1,0,0,0,890,8218,1,0,0,0,892,8224, - 1,0,0,0,894,8263,1,0,0,0,896,8267,1,0,0,0,898,8293,1,0,0,0,900,8295, - 1,0,0,0,902,8303,1,0,0,0,904,8340,1,0,0,0,906,8374,1,0,0,0,908,8376, - 1,0,0,0,910,8387,1,0,0,0,912,8424,1,0,0,0,914,8428,1,0,0,0,916,8430, - 1,0,0,0,918,8434,1,0,0,0,920,8437,1,0,0,0,922,8459,1,0,0,0,924,8463, - 1,0,0,0,926,8465,1,0,0,0,928,8489,1,0,0,0,930,8493,1,0,0,0,932,8496, - 1,0,0,0,934,936,3,2,1,0,935,934,1,0,0,0,936,939,1,0,0,0,937,935, - 1,0,0,0,937,938,1,0,0,0,938,940,1,0,0,0,939,937,1,0,0,0,940,941, - 5,0,0,1,941,1,1,0,0,0,942,944,3,4,2,0,943,945,5,7,0,0,944,943,1, - 0,0,0,944,945,1,0,0,0,945,3,1,0,0,0,946,1067,3,280,140,0,947,1067, - 3,490,245,0,948,1067,3,486,243,0,949,1067,3,488,244,0,950,1067,3, - 354,177,0,951,1067,3,496,248,0,952,1067,3,294,147,0,953,1067,3,212, - 106,0,954,1067,3,214,107,0,955,1067,3,220,110,0,956,1067,3,234,117, - 0,957,1067,3,406,203,0,958,1067,3,28,14,0,959,1067,3,436,218,0,960, - 1067,3,438,219,0,961,1067,3,448,224,0,962,1067,3,440,220,0,963,1067, - 3,446,223,0,964,1067,3,246,123,0,965,1067,3,248,124,0,966,1067,3, - 200,100,0,967,1067,3,492,246,0,968,1067,3,76,38,0,969,1067,3,432, - 216,0,970,1067,3,108,54,0,971,1067,3,452,226,0,972,1067,3,18,9,0, - 973,1067,3,20,10,0,974,1067,3,16,8,0,975,1067,3,456,228,0,976,1067, - 3,186,93,0,977,1067,3,500,250,0,978,1067,3,498,249,0,979,1067,3, - 242,121,0,980,1067,3,508,254,0,981,1067,3,6,3,0,982,1067,3,72,36, - 0,983,1067,3,112,56,0,984,1067,3,504,252,0,985,1067,3,326,163,0, - 986,1067,3,70,35,0,987,1067,3,114,57,0,988,1067,3,256,128,0,989, - 1067,3,188,94,0,990,1067,3,282,141,0,991,1067,3,422,211,0,992,1067, - 3,502,251,0,993,1067,3,494,247,0,994,1067,3,210,105,0,995,1067,3, - 216,108,0,996,1067,3,230,115,0,997,1067,3,236,118,0,998,1067,3,366, - 183,0,999,1067,3,26,13,0,1000,1067,3,194,97,0,1001,1067,3,298,149, - 0,1002,1067,3,302,151,0,1003,1067,3,450,225,0,1004,1067,3,304,152, - 0,1005,1067,3,244,122,0,1006,1067,3,206,103,0,1007,1067,3,30,15, - 0,1008,1067,3,198,99,0,1009,1067,3,122,61,0,1010,1067,3,454,227, - 0,1011,1067,3,184,92,0,1012,1067,3,208,104,0,1013,1067,3,426,213, - 0,1014,1067,3,258,129,0,1015,1067,3,276,138,0,1016,1067,3,8,4,0, - 1017,1067,3,14,7,0,1018,1067,3,240,120,0,1019,1067,3,482,241,0,1020, - 1067,3,538,269,0,1021,1067,3,560,280,0,1022,1067,3,284,142,0,1023, - 1067,3,550,275,0,1024,1067,3,74,37,0,1025,1067,3,420,210,0,1026, - 1067,3,310,155,0,1027,1067,3,534,267,0,1028,1067,3,522,261,0,1029, - 1067,3,330,165,0,1030,1067,3,336,168,0,1031,1067,3,350,175,0,1032, - 1067,3,902,451,0,1033,1067,3,238,119,0,1034,1067,3,360,180,0,1035, - 1067,3,540,270,0,1036,1067,3,466,233,0,1037,1067,3,196,98,0,1038, - 1067,3,480,240,0,1039,1067,3,552,276,0,1040,1067,3,462,231,0,1041, - 1067,3,528,264,0,1042,1067,3,308,154,0,1043,1067,3,430,215,0,1044, - 1067,3,410,205,0,1045,1067,3,408,204,0,1046,1067,3,412,206,0,1047, - 1067,3,434,217,0,1048,1067,3,338,169,0,1049,1067,3,352,176,0,1050, - 1067,3,458,229,0,1051,1067,3,328,164,0,1052,1067,3,562,281,0,1053, - 1067,3,470,235,0,1054,1067,3,322,161,0,1055,1067,3,468,234,0,1056, - 1067,3,554,277,0,1057,1067,3,506,253,0,1058,1067,3,60,30,0,1059, - 1067,3,36,18,0,1060,1067,3,68,34,0,1061,1067,3,478,239,0,1062,1064, - 5,584,0,0,1063,1065,5,585,0,0,1064,1063,1,0,0,0,1064,1065,1,0,0, - 0,1065,1067,1,0,0,0,1066,946,1,0,0,0,1066,947,1,0,0,0,1066,948,1, - 0,0,0,1066,949,1,0,0,0,1066,950,1,0,0,0,1066,951,1,0,0,0,1066,952, - 1,0,0,0,1066,953,1,0,0,0,1066,954,1,0,0,0,1066,955,1,0,0,0,1066, - 956,1,0,0,0,1066,957,1,0,0,0,1066,958,1,0,0,0,1066,959,1,0,0,0,1066, - 960,1,0,0,0,1066,961,1,0,0,0,1066,962,1,0,0,0,1066,963,1,0,0,0,1066, - 964,1,0,0,0,1066,965,1,0,0,0,1066,966,1,0,0,0,1066,967,1,0,0,0,1066, - 968,1,0,0,0,1066,969,1,0,0,0,1066,970,1,0,0,0,1066,971,1,0,0,0,1066, - 972,1,0,0,0,1066,973,1,0,0,0,1066,974,1,0,0,0,1066,975,1,0,0,0,1066, - 976,1,0,0,0,1066,977,1,0,0,0,1066,978,1,0,0,0,1066,979,1,0,0,0,1066, - 980,1,0,0,0,1066,981,1,0,0,0,1066,982,1,0,0,0,1066,983,1,0,0,0,1066, - 984,1,0,0,0,1066,985,1,0,0,0,1066,986,1,0,0,0,1066,987,1,0,0,0,1066, - 988,1,0,0,0,1066,989,1,0,0,0,1066,990,1,0,0,0,1066,991,1,0,0,0,1066, - 992,1,0,0,0,1066,993,1,0,0,0,1066,994,1,0,0,0,1066,995,1,0,0,0,1066, - 996,1,0,0,0,1066,997,1,0,0,0,1066,998,1,0,0,0,1066,999,1,0,0,0,1066, - 1000,1,0,0,0,1066,1001,1,0,0,0,1066,1002,1,0,0,0,1066,1003,1,0,0, - 0,1066,1004,1,0,0,0,1066,1005,1,0,0,0,1066,1006,1,0,0,0,1066,1007, - 1,0,0,0,1066,1008,1,0,0,0,1066,1009,1,0,0,0,1066,1010,1,0,0,0,1066, - 1011,1,0,0,0,1066,1012,1,0,0,0,1066,1013,1,0,0,0,1066,1014,1,0,0, - 0,1066,1015,1,0,0,0,1066,1016,1,0,0,0,1066,1017,1,0,0,0,1066,1018, - 1,0,0,0,1066,1019,1,0,0,0,1066,1020,1,0,0,0,1066,1021,1,0,0,0,1066, - 1022,1,0,0,0,1066,1023,1,0,0,0,1066,1024,1,0,0,0,1066,1025,1,0,0, - 0,1066,1026,1,0,0,0,1066,1027,1,0,0,0,1066,1028,1,0,0,0,1066,1029, - 1,0,0,0,1066,1030,1,0,0,0,1066,1031,1,0,0,0,1066,1032,1,0,0,0,1066, - 1033,1,0,0,0,1066,1034,1,0,0,0,1066,1035,1,0,0,0,1066,1036,1,0,0, - 0,1066,1037,1,0,0,0,1066,1038,1,0,0,0,1066,1039,1,0,0,0,1066,1040, - 1,0,0,0,1066,1041,1,0,0,0,1066,1042,1,0,0,0,1066,1043,1,0,0,0,1066, - 1044,1,0,0,0,1066,1045,1,0,0,0,1066,1046,1,0,0,0,1066,1047,1,0,0, - 0,1066,1048,1,0,0,0,1066,1049,1,0,0,0,1066,1050,1,0,0,0,1066,1051, - 1,0,0,0,1066,1052,1,0,0,0,1066,1053,1,0,0,0,1066,1054,1,0,0,0,1066, - 1055,1,0,0,0,1066,1056,1,0,0,0,1066,1057,1,0,0,0,1066,1058,1,0,0, - 0,1066,1059,1,0,0,0,1066,1060,1,0,0,0,1066,1061,1,0,0,0,1066,1062, - 1,0,0,0,1067,5,1,0,0,0,1068,1069,5,433,0,0,1069,1070,3,686,343,0, - 1070,7,1,0,0,0,1071,1072,5,46,0,0,1072,1073,5,318,0,0,1073,1075, - 3,816,408,0,1074,1076,5,105,0,0,1075,1074,1,0,0,0,1075,1076,1,0, - 0,0,1076,1080,1,0,0,0,1077,1079,3,12,6,0,1078,1077,1,0,0,0,1079, - 1082,1,0,0,0,1080,1078,1,0,0,0,1080,1081,1,0,0,0,1081,9,1,0,0,0, - 1082,1080,1,0,0,0,1083,1086,5,287,0,0,1084,1087,3,810,405,0,1085, - 1087,5,78,0,0,1086,1084,1,0,0,0,1086,1085,1,0,0,0,1087,1122,1,0, - 0,0,1088,1089,7,0,0,0,1089,1090,5,287,0,0,1090,1122,3,810,405,0, - 1091,1122,5,228,0,0,1092,1122,5,229,0,0,1093,1122,5,236,0,0,1094, - 1122,5,237,0,0,1095,1122,5,234,0,0,1096,1122,5,235,0,0,1097,1122, - 5,232,0,0,1098,1122,5,233,0,0,1099,1122,5,230,0,0,1100,1122,5,231, - 0,0,1101,1122,5,535,0,0,1102,1122,5,536,0,0,1103,1122,5,537,0,0, - 1104,1122,5,538,0,0,1105,1122,5,539,0,0,1106,1122,5,540,0,0,1107, - 1108,5,164,0,0,1108,1109,5,74,0,0,1109,1122,3,814,407,0,1110,1111, - 5,371,0,0,1111,1112,5,368,0,0,1112,1122,3,810,405,0,1113,1114,5, - 68,0,0,1114,1115,7,1,0,0,1115,1122,3,786,393,0,1116,1117,7,2,0,0, - 1117,1122,3,818,409,0,1118,1119,5,134,0,0,1119,1122,3,786,393,0, - 1120,1122,3,828,414,0,1121,1083,1,0,0,0,1121,1088,1,0,0,0,1121,1091, - 1,0,0,0,1121,1092,1,0,0,0,1121,1093,1,0,0,0,1121,1094,1,0,0,0,1121, - 1095,1,0,0,0,1121,1096,1,0,0,0,1121,1097,1,0,0,0,1121,1098,1,0,0, - 0,1121,1099,1,0,0,0,1121,1100,1,0,0,0,1121,1101,1,0,0,0,1121,1102, - 1,0,0,0,1121,1103,1,0,0,0,1121,1104,1,0,0,0,1121,1105,1,0,0,0,1121, - 1106,1,0,0,0,1121,1107,1,0,0,0,1121,1110,1,0,0,0,1121,1113,1,0,0, - 0,1121,1116,1,0,0,0,1121,1118,1,0,0,0,1121,1120,1,0,0,0,1122,11, - 1,0,0,0,1123,1132,3,10,5,0,1124,1125,5,348,0,0,1125,1132,5,574,0, - 0,1126,1127,7,3,0,0,1127,1132,3,818,409,0,1128,1129,5,68,0,0,1129, - 1130,7,1,0,0,1130,1132,3,818,409,0,1131,1123,1,0,0,0,1131,1124,1, - 0,0,0,1131,1126,1,0,0,0,1131,1128,1,0,0,0,1132,13,1,0,0,0,1133,1134, - 5,46,0,0,1134,1135,5,99,0,0,1135,1137,3,816,408,0,1136,1138,5,105, - 0,0,1137,1136,1,0,0,0,1137,1138,1,0,0,0,1138,1142,1,0,0,0,1139,1141, - 3,12,6,0,1140,1139,1,0,0,0,1141,1144,1,0,0,0,1142,1140,1,0,0,0,1142, - 1143,1,0,0,0,1143,15,1,0,0,0,1144,1142,1,0,0,0,1145,1146,5,138,0, - 0,1146,1147,7,2,0,0,1147,1149,3,816,408,0,1148,1150,5,105,0,0,1149, - 1148,1,0,0,0,1149,1150,1,0,0,0,1150,1154,1,0,0,0,1151,1153,3,10, - 5,0,1152,1151,1,0,0,0,1153,1156,1,0,0,0,1154,1152,1,0,0,0,1154,1155, - 1,0,0,0,1155,17,1,0,0,0,1156,1154,1,0,0,0,1157,1158,5,138,0,0,1158, - 1161,7,2,0,0,1159,1162,5,30,0,0,1160,1162,3,816,408,0,1161,1159, - 1,0,0,0,1161,1160,1,0,0,0,1162,1163,1,0,0,0,1163,1164,5,68,0,0,1164, - 1165,5,175,0,0,1165,1166,3,790,395,0,1166,1167,3,64,32,0,1167,19, - 1,0,0,0,1168,1169,5,138,0,0,1169,1170,5,442,0,0,1170,1172,3,796, - 398,0,1171,1173,3,370,185,0,1172,1171,1,0,0,0,1172,1173,1,0,0,0, - 1173,1174,1,0,0,0,1174,1175,3,22,11,0,1175,21,1,0,0,0,1176,1180, - 3,24,12,0,1177,1179,3,24,12,0,1178,1177,1,0,0,0,1179,1182,1,0,0, - 0,1180,1178,1,0,0,0,1180,1181,1,0,0,0,1181,1184,1,0,0,0,1182,1180, - 1,0,0,0,1183,1185,5,315,0,0,1184,1183,1,0,0,0,1184,1185,1,0,0,0, - 1185,1203,1,0,0,0,1186,1187,5,309,0,0,1187,1188,5,94,0,0,1188,1203, - 3,794,397,0,1189,1190,5,282,0,0,1190,1191,5,94,0,0,1191,1203,3,816, - 408,0,1192,1193,5,333,0,0,1193,1194,5,323,0,0,1194,1203,3,32,16, - 0,1195,1197,5,269,0,0,1196,1195,1,0,0,0,1196,1197,1,0,0,0,1197,1198, - 1,0,0,0,1198,1199,5,462,0,0,1199,1200,5,80,0,0,1200,1201,5,204,0, - 0,1201,1203,3,820,410,0,1202,1176,1,0,0,0,1202,1186,1,0,0,0,1202, - 1189,1,0,0,0,1202,1192,1,0,0,0,1202,1196,1,0,0,0,1203,23,1,0,0,0, - 1204,1247,5,222,0,0,1205,1247,5,338,0,0,1206,1247,5,377,0,0,1207, - 1209,5,77,0,0,1208,1207,1,0,0,0,1208,1209,1,0,0,0,1209,1210,1,0, - 0,0,1210,1247,5,250,0,0,1211,1213,5,205,0,0,1212,1211,1,0,0,0,1212, - 1213,1,0,0,0,1213,1214,1,0,0,0,1214,1215,5,327,0,0,1215,1222,5,243, - 0,0,1216,1218,5,205,0,0,1217,1216,1,0,0,0,1217,1218,1,0,0,0,1218, - 1219,1,0,0,0,1219,1220,5,327,0,0,1220,1222,5,181,0,0,1221,1212,1, - 0,0,0,1221,1217,1,0,0,0,1222,1247,1,0,0,0,1223,1224,5,460,0,0,1224, - 1247,7,4,0,0,1225,1226,5,170,0,0,1226,1247,3,826,413,0,1227,1228, - 5,320,0,0,1228,1247,3,820,410,0,1229,1230,5,333,0,0,1230,1231,3, - 820,410,0,1231,1234,7,5,0,0,1232,1235,3,820,410,0,1233,1235,5,53, - 0,0,1234,1232,1,0,0,0,1234,1233,1,0,0,0,1235,1247,1,0,0,0,1236,1237, - 5,333,0,0,1237,1238,3,820,410,0,1238,1239,5,64,0,0,1239,1240,5,434, - 0,0,1240,1247,1,0,0,0,1241,1244,5,313,0,0,1242,1245,3,820,410,0, - 1243,1245,5,30,0,0,1244,1242,1,0,0,0,1244,1243,1,0,0,0,1245,1247, - 1,0,0,0,1246,1204,1,0,0,0,1246,1205,1,0,0,0,1246,1206,1,0,0,0,1246, - 1208,1,0,0,0,1246,1221,1,0,0,0,1246,1223,1,0,0,0,1246,1225,1,0,0, - 0,1246,1227,1,0,0,0,1246,1229,1,0,0,0,1246,1236,1,0,0,0,1246,1241, - 1,0,0,0,1247,25,1,0,0,0,1248,1249,5,46,0,0,1249,1250,5,66,0,0,1250, - 1252,3,816,408,0,1251,1253,5,105,0,0,1252,1251,1,0,0,0,1252,1253, - 1,0,0,0,1253,1257,1,0,0,0,1254,1256,3,12,6,0,1255,1254,1,0,0,0,1256, - 1259,1,0,0,0,1257,1255,1,0,0,0,1257,1258,1,0,0,0,1258,27,1,0,0,0, - 1259,1257,1,0,0,0,1260,1261,5,138,0,0,1261,1262,5,66,0,0,1262,1263, - 3,816,408,0,1263,1264,7,6,0,0,1264,1265,5,99,0,0,1265,1266,3,818, - 409,0,1266,29,1,0,0,0,1267,1268,5,46,0,0,1268,1270,5,323,0,0,1269, - 1271,3,296,148,0,1270,1269,1,0,0,0,1270,1271,1,0,0,0,1271,1278,1, - 0,0,0,1272,1274,3,32,16,0,1273,1272,1,0,0,0,1273,1274,1,0,0,0,1274, - 1275,1,0,0,0,1275,1276,5,106,0,0,1276,1279,3,816,408,0,1277,1279, - 3,32,16,0,1278,1273,1,0,0,0,1278,1277,1,0,0,0,1279,1283,1,0,0,0, - 1280,1282,3,34,17,0,1281,1280,1,0,0,0,1282,1285,1,0,0,0,1283,1281, - 1,0,0,0,1283,1284,1,0,0,0,1284,31,1,0,0,0,1285,1283,1,0,0,0,1286, - 1287,3,318,159,0,1287,33,1,0,0,0,1288,1295,3,122,61,0,1289,1295, - 3,360,180,0,1290,1295,3,198,99,0,1291,1295,3,258,129,0,1292,1295, - 3,336,168,0,1293,1295,3,478,239,0,1294,1288,1,0,0,0,1294,1289,1, - 0,0,0,1294,1290,1,0,0,0,1294,1291,1,0,0,0,1294,1292,1,0,0,0,1294, - 1293,1,0,0,0,1295,35,1,0,0,0,1296,1298,5,333,0,0,1297,1299,7,7,0, - 0,1298,1297,1,0,0,0,1298,1299,1,0,0,0,1299,1300,1,0,0,0,1300,1301, - 3,38,19,0,1301,37,1,0,0,0,1302,1303,5,356,0,0,1303,1311,3,476,238, - 0,1304,1305,5,332,0,0,1305,1306,5,154,0,0,1306,1307,5,36,0,0,1307, - 1308,5,356,0,0,1308,1311,3,476,238,0,1309,1311,3,42,21,0,1310,1302, - 1,0,0,0,1310,1304,1,0,0,0,1310,1309,1,0,0,0,1311,39,1,0,0,0,1312, - 1315,5,30,0,0,1313,1315,3,44,22,0,1314,1312,1,0,0,0,1314,1313,1, - 0,0,0,1315,1317,1,0,0,0,1316,1318,7,5,0,0,1317,1316,1,0,0,0,1317, - 1318,1,0,0,0,1318,1321,1,0,0,0,1319,1322,5,53,0,0,1320,1322,3,46, - 23,0,1321,1319,1,0,0,0,1321,1320,1,0,0,0,1321,1322,1,0,0,0,1322, - 41,1,0,0,0,1323,1324,5,418,0,0,1324,1325,5,386,0,0,1325,1352,3,56, - 28,0,1326,1327,5,152,0,0,1327,1352,3,810,405,0,1328,1329,5,323,0, - 0,1329,1352,3,792,396,0,1330,1333,5,267,0,0,1331,1334,3,810,405, - 0,1332,1334,5,53,0,0,1333,1331,1,0,0,0,1333,1332,1,0,0,0,1333,1334, - 1,0,0,0,1334,1352,1,0,0,0,1335,1336,5,318,0,0,1336,1352,3,58,29, - 0,1337,1338,5,332,0,0,1338,1339,5,106,0,0,1339,1352,3,58,29,0,1340, - 1341,5,383,0,0,1341,1342,5,279,0,0,1342,1352,3,698,349,0,1343,1344, - 5,356,0,0,1344,1345,5,337,0,0,1345,1352,3,810,405,0,1346,1347,3, - 44,22,0,1347,1348,5,64,0,0,1348,1349,5,434,0,0,1349,1352,1,0,0,0, - 1350,1352,3,40,20,0,1351,1323,1,0,0,0,1351,1326,1,0,0,0,1351,1328, - 1,0,0,0,1351,1330,1,0,0,0,1351,1335,1,0,0,0,1351,1337,1,0,0,0,1351, - 1340,1,0,0,0,1351,1343,1,0,0,0,1351,1346,1,0,0,0,1351,1350,1,0,0, - 0,1352,43,1,0,0,0,1353,1358,3,820,410,0,1354,1355,5,11,0,0,1355, - 1357,3,820,410,0,1356,1354,1,0,0,0,1357,1360,1,0,0,0,1358,1356,1, - 0,0,0,1358,1359,1,0,0,0,1359,45,1,0,0,0,1360,1358,1,0,0,0,1361,1366, - 3,48,24,0,1362,1363,5,6,0,0,1363,1365,3,48,24,0,1364,1362,1,0,0, - 0,1365,1368,1,0,0,0,1366,1364,1,0,0,0,1366,1367,1,0,0,0,1367,47, - 1,0,0,0,1368,1366,1,0,0,0,1369,1372,3,54,27,0,1370,1372,3,204,102, - 0,1371,1369,1,0,0,0,1371,1370,1,0,0,0,1372,49,1,0,0,0,1373,1374, - 5,300,0,0,1374,1379,7,8,0,0,1375,1376,5,310,0,0,1376,1379,5,300, - 0,0,1377,1379,5,330,0,0,1378,1373,1,0,0,0,1378,1375,1,0,0,0,1378, - 1377,1,0,0,0,1379,51,1,0,0,0,1380,1387,5,96,0,0,1381,1387,5,60,0, - 0,1382,1387,5,80,0,0,1383,1387,3,802,401,0,1384,1387,3,834,417,0, - 1385,1387,3,810,405,0,1386,1380,1,0,0,0,1386,1381,1,0,0,0,1386,1382, - 1,0,0,0,1386,1383,1,0,0,0,1386,1384,1,0,0,0,1386,1385,1,0,0,0,1387, - 53,1,0,0,0,1388,1393,5,96,0,0,1389,1393,5,60,0,0,1390,1393,5,80, - 0,0,1391,1393,3,58,29,0,1392,1388,1,0,0,0,1392,1389,1,0,0,0,1392, - 1390,1,0,0,0,1392,1391,1,0,0,0,1393,55,1,0,0,0,1394,1409,3,810,405, - 0,1395,1409,5,53,0,0,1396,1409,3,828,414,0,1397,1398,5,403,0,0,1398, - 1400,3,810,405,0,1399,1401,3,670,335,0,1400,1399,1,0,0,0,1400,1401, - 1,0,0,0,1401,1409,1,0,0,0,1402,1403,5,403,0,0,1403,1404,3,662,331, - 0,1404,1405,3,810,405,0,1405,1409,1,0,0,0,1406,1409,3,204,102,0, - 1407,1409,5,254,0,0,1408,1394,1,0,0,0,1408,1395,1,0,0,0,1408,1396, - 1,0,0,0,1408,1397,1,0,0,0,1408,1402,1,0,0,0,1408,1406,1,0,0,0,1408, - 1407,1,0,0,0,1409,57,1,0,0,0,1410,1413,3,824,412,0,1411,1413,3,810, - 405,0,1412,1410,1,0,0,0,1412,1411,1,0,0,0,1413,59,1,0,0,0,1414,1415, - 5,313,0,0,1415,1416,3,62,31,0,1416,61,1,0,0,0,1417,1418,5,418,0, - 0,1418,1427,5,386,0,0,1419,1420,5,356,0,0,1420,1421,5,244,0,0,1421, - 1427,5,251,0,0,1422,1423,5,332,0,0,1423,1427,5,106,0,0,1424,1427, - 5,30,0,0,1425,1427,3,44,22,0,1426,1417,1,0,0,0,1426,1419,1,0,0,0, - 1426,1422,1,0,0,0,1426,1424,1,0,0,0,1426,1425,1,0,0,0,1427,63,1, - 0,0,0,1428,1429,5,333,0,0,1429,1432,3,38,19,0,1430,1432,3,60,30, - 0,1431,1428,1,0,0,0,1431,1430,1,0,0,0,1432,65,1,0,0,0,1433,1434, - 5,333,0,0,1434,1437,3,42,21,0,1435,1437,3,60,30,0,1436,1433,1,0, - 0,0,1436,1435,1,0,0,0,1437,67,1,0,0,0,1438,1448,5,335,0,0,1439,1449, - 3,44,22,0,1440,1441,5,418,0,0,1441,1449,5,386,0,0,1442,1443,5,356, - 0,0,1443,1444,5,244,0,0,1444,1449,5,251,0,0,1445,1446,5,332,0,0, - 1446,1449,5,106,0,0,1447,1449,5,30,0,0,1448,1439,1,0,0,0,1448,1440, - 1,0,0,0,1448,1442,1,0,0,0,1448,1445,1,0,0,0,1448,1447,1,0,0,0,1449, - 69,1,0,0,0,1450,1451,5,333,0,0,1451,1454,5,165,0,0,1452,1455,5,30, - 0,0,1453,1455,3,762,381,0,1454,1452,1,0,0,0,1454,1453,1,0,0,0,1455, - 1456,1,0,0,0,1456,1457,7,9,0,0,1457,71,1,0,0,0,1458,1459,5,155,0, - 0,1459,73,1,0,0,0,1460,1461,5,187,0,0,1461,1462,7,10,0,0,1462,75, - 1,0,0,0,1463,1464,5,138,0,0,1464,1466,5,92,0,0,1465,1467,3,424,212, - 0,1466,1465,1,0,0,0,1466,1467,1,0,0,0,1467,1468,1,0,0,0,1468,1471, - 3,626,313,0,1469,1472,3,78,39,0,1470,1472,3,88,44,0,1471,1469,1, - 0,0,0,1471,1470,1,0,0,0,1472,1585,1,0,0,0,1473,1474,5,138,0,0,1474, - 1475,5,92,0,0,1475,1476,5,30,0,0,1476,1477,5,68,0,0,1477,1481,3, - 178,89,0,1478,1479,5,281,0,0,1479,1480,5,147,0,0,1480,1482,3,818, - 409,0,1481,1478,1,0,0,0,1481,1482,1,0,0,0,1482,1483,1,0,0,0,1483, - 1484,5,333,0,0,1484,1485,5,351,0,0,1485,1487,3,770,385,0,1486,1488, - 5,272,0,0,1487,1486,1,0,0,0,1487,1488,1,0,0,0,1488,1585,1,0,0,0, - 1489,1490,5,138,0,0,1490,1492,5,92,0,0,1491,1493,3,424,212,0,1492, - 1491,1,0,0,0,1492,1493,1,0,0,0,1493,1494,1,0,0,0,1494,1495,3,776, - 388,0,1495,1500,3,90,45,0,1496,1497,5,62,0,0,1497,1498,5,422,0,0, - 1498,1501,3,80,40,0,1499,1501,5,53,0,0,1500,1496,1,0,0,0,1500,1499, - 1,0,0,0,1501,1585,1,0,0,0,1502,1503,5,138,0,0,1503,1505,5,92,0,0, - 1504,1506,3,424,212,0,1505,1504,1,0,0,0,1505,1506,1,0,0,0,1506,1507, - 1,0,0,0,1507,1508,3,776,388,0,1508,1509,5,436,0,0,1509,1510,5,285, - 0,0,1510,1512,3,782,391,0,1511,1513,7,11,0,0,1512,1511,1,0,0,0,1512, - 1513,1,0,0,0,1513,1585,1,0,0,0,1514,1515,5,138,0,0,1515,1517,5,226, - 0,0,1516,1518,3,424,212,0,1517,1516,1,0,0,0,1517,1518,1,0,0,0,1518, - 1519,1,0,0,0,1519,1522,3,782,391,0,1520,1523,3,78,39,0,1521,1523, - 3,90,45,0,1522,1520,1,0,0,0,1522,1521,1,0,0,0,1523,1585,1,0,0,0, - 1524,1525,5,138,0,0,1525,1526,5,226,0,0,1526,1527,5,30,0,0,1527, - 1528,5,68,0,0,1528,1532,3,178,89,0,1529,1530,5,281,0,0,1530,1531, - 5,147,0,0,1531,1533,3,818,409,0,1532,1529,1,0,0,0,1532,1533,1,0, - 0,0,1533,1534,1,0,0,0,1534,1535,5,333,0,0,1535,1537,3,178,89,0,1536, - 1538,5,272,0,0,1537,1536,1,0,0,0,1537,1538,1,0,0,0,1538,1585,1,0, - 0,0,1539,1540,5,138,0,0,1540,1542,5,328,0,0,1541,1543,3,424,212, - 0,1542,1541,1,0,0,0,1542,1543,1,0,0,0,1543,1544,1,0,0,0,1544,1545, - 3,782,391,0,1545,1546,3,78,39,0,1546,1585,1,0,0,0,1547,1549,5,138, - 0,0,1548,1550,5,259,0,0,1549,1548,1,0,0,0,1549,1550,1,0,0,0,1550, - 1551,1,0,0,0,1551,1553,5,376,0,0,1552,1554,3,424,212,0,1553,1552, - 1,0,0,0,1553,1554,1,0,0,0,1554,1555,1,0,0,0,1555,1556,3,780,390, - 0,1556,1557,3,78,39,0,1557,1585,1,0,0,0,1558,1559,5,138,0,0,1559, - 1560,5,259,0,0,1560,1561,5,376,0,0,1561,1562,5,30,0,0,1562,1563, - 5,68,0,0,1563,1567,3,178,89,0,1564,1565,5,281,0,0,1565,1566,5,147, - 0,0,1566,1568,3,818,409,0,1567,1564,1,0,0,0,1567,1568,1,0,0,0,1568, - 1569,1,0,0,0,1569,1570,5,333,0,0,1570,1571,5,351,0,0,1571,1573,3, - 770,385,0,1572,1574,5,272,0,0,1573,1572,1,0,0,0,1573,1574,1,0,0, - 0,1574,1585,1,0,0,0,1575,1576,5,138,0,0,1576,1577,5,63,0,0,1577, - 1579,5,92,0,0,1578,1580,3,424,212,0,1579,1578,1,0,0,0,1579,1580, - 1,0,0,0,1580,1581,1,0,0,0,1581,1582,3,626,313,0,1582,1583,3,78,39, - 0,1583,1585,1,0,0,0,1584,1463,1,0,0,0,1584,1473,1,0,0,0,1584,1489, - 1,0,0,0,1584,1502,1,0,0,0,1584,1514,1,0,0,0,1584,1524,1,0,0,0,1584, - 1539,1,0,0,0,1584,1547,1,0,0,0,1584,1558,1,0,0,0,1584,1575,1,0,0, - 0,1585,77,1,0,0,0,1586,1591,3,92,46,0,1587,1588,5,6,0,0,1588,1590, - 3,92,46,0,1589,1587,1,0,0,0,1590,1593,1,0,0,0,1591,1589,1,0,0,0, - 1591,1592,1,0,0,0,1592,79,1,0,0,0,1593,1591,1,0,0,0,1594,1595,5, - 68,0,0,1595,1604,3,536,268,0,1596,1597,5,64,0,0,1597,1598,3,82,41, - 0,1598,1599,5,94,0,0,1599,1600,3,82,41,0,1600,1604,1,0,0,0,1601, - 1602,5,105,0,0,1602,1604,3,86,43,0,1603,1594,1,0,0,0,1603,1596,1, - 0,0,0,1603,1601,1,0,0,0,1604,81,1,0,0,0,1605,1606,5,2,0,0,1606,1611, - 3,84,42,0,1607,1608,5,6,0,0,1608,1610,3,84,42,0,1609,1607,1,0,0, - 0,1610,1613,1,0,0,0,1611,1609,1,0,0,0,1611,1612,1,0,0,0,1612,1614, - 1,0,0,0,1613,1611,1,0,0,0,1614,1615,5,3,0,0,1615,83,1,0,0,0,1616, - 1620,3,536,268,0,1617,1620,5,262,0,0,1618,1620,5,260,0,0,1619,1616, - 1,0,0,0,1619,1617,1,0,0,0,1619,1618,1,0,0,0,1620,85,1,0,0,0,1621, - 1622,5,2,0,0,1622,1623,5,533,0,0,1623,1624,3,204,102,0,1624,1625, - 5,6,0,0,1625,1626,5,534,0,0,1626,1627,3,204,102,0,1627,1628,5,3, - 0,0,1628,87,1,0,0,0,1629,1630,3,90,45,0,1630,1631,3,106,53,0,1631, - 1636,1,0,0,0,1632,1633,5,436,0,0,1633,1634,5,285,0,0,1634,1636,3, - 782,391,0,1635,1629,1,0,0,0,1635,1632,1,0,0,0,1636,89,1,0,0,0,1637, - 1638,5,435,0,0,1638,1639,5,285,0,0,1639,1640,3,782,391,0,1640,91, - 1,0,0,0,1641,1644,5,133,0,0,1642,1643,5,45,0,0,1643,1645,3,820,410, - 0,1644,1642,1,0,0,0,1644,1645,1,0,0,0,1645,1646,1,0,0,0,1646,1875, - 3,144,72,0,1647,1648,5,138,0,0,1648,1649,5,45,0,0,1649,1653,3,820, - 410,0,1650,1652,3,274,137,0,1651,1650,1,0,0,0,1652,1655,1,0,0,0, - 1653,1651,1,0,0,0,1653,1654,1,0,0,0,1654,1875,1,0,0,0,1655,1653, - 1,0,0,0,1656,1657,5,372,0,0,1657,1658,5,45,0,0,1658,1875,3,820,410, - 0,1659,1660,5,191,0,0,1660,1662,5,45,0,0,1661,1663,3,424,212,0,1662, - 1661,1,0,0,0,1662,1663,1,0,0,0,1663,1664,1,0,0,0,1664,1666,3,820, - 410,0,1665,1667,3,96,48,0,1666,1665,1,0,0,0,1666,1667,1,0,0,0,1667, - 1875,1,0,0,0,1668,1669,5,333,0,0,1669,1670,5,379,0,0,1670,1875,7, - 12,0,0,1671,1672,5,158,0,0,1672,1673,5,80,0,0,1673,1875,3,820,410, - 0,1674,1675,5,333,0,0,1675,1875,7,13,0,0,1676,1678,5,193,0,0,1677, - 1679,7,14,0,0,1678,1677,1,0,0,0,1678,1679,1,0,0,0,1679,1680,1,0, - 0,0,1680,1875,5,357,0,0,1681,1682,5,186,0,0,1682,1686,5,357,0,0, - 1683,1687,5,30,0,0,1684,1687,5,99,0,0,1685,1687,3,820,410,0,1686, - 1683,1,0,0,0,1686,1684,1,0,0,0,1686,1685,1,0,0,0,1687,1875,1,0,0, - 0,1688,1689,5,193,0,0,1689,1690,7,14,0,0,1690,1691,5,321,0,0,1691, - 1875,3,820,410,0,1692,1693,5,186,0,0,1693,1694,5,321,0,0,1694,1875, - 3,820,410,0,1695,1697,5,269,0,0,1696,1695,1,0,0,0,1696,1697,1,0, - 0,0,1697,1698,1,0,0,0,1698,1699,5,228,0,0,1699,1875,3,782,391,0, - 1700,1701,5,275,0,0,1701,1875,3,318,159,0,1702,1703,5,77,0,0,1703, - 1875,5,275,0,0,1704,1705,5,282,0,0,1705,1706,5,94,0,0,1706,1875, - 3,816,408,0,1707,1708,5,333,0,0,1708,1709,5,351,0,0,1709,1875,3, - 770,385,0,1710,1711,5,312,0,0,1711,1716,5,219,0,0,1712,1717,5,270, - 0,0,1713,1717,5,113,0,0,1714,1717,5,53,0,0,1715,1717,3,182,91,0, - 1716,1712,1,0,0,0,1716,1713,1,0,0,0,1716,1714,1,0,0,0,1716,1715, - 1,0,0,0,1717,1875,1,0,0,0,1718,1725,5,193,0,0,1719,1725,5,186,0, - 0,1720,1722,5,269,0,0,1721,1720,1,0,0,0,1721,1722,1,0,0,0,1722,1723, - 1,0,0,0,1723,1725,5,209,0,0,1724,1718,1,0,0,0,1724,1719,1,0,0,0, - 1724,1721,1,0,0,0,1725,1726,1,0,0,0,1726,1727,5,414,0,0,1727,1728, - 5,251,0,0,1728,1875,5,327,0,0,1729,1731,5,191,0,0,1730,1732,5,44, - 0,0,1731,1730,1,0,0,0,1731,1732,1,0,0,0,1732,1734,1,0,0,0,1733,1735, - 3,424,212,0,1734,1733,1,0,0,0,1734,1735,1,0,0,0,1735,1736,1,0,0, - 0,1736,1738,3,802,401,0,1737,1739,3,96,48,0,1738,1737,1,0,0,0,1738, - 1739,1,0,0,0,1739,1875,1,0,0,0,1740,1742,5,133,0,0,1741,1743,5,44, - 0,0,1742,1741,1,0,0,0,1742,1743,1,0,0,0,1743,1745,1,0,0,0,1744,1746, - 3,296,148,0,1745,1744,1,0,0,0,1745,1746,1,0,0,0,1746,1747,1,0,0, - 0,1747,1875,3,134,67,0,1748,1750,5,138,0,0,1749,1751,5,44,0,0,1750, - 1749,1,0,0,0,1750,1751,1,0,0,0,1751,1752,1,0,0,0,1752,1755,3,802, - 401,0,1753,1756,3,94,47,0,1754,1756,3,224,112,0,1755,1753,1,0,0, - 0,1755,1754,1,0,0,0,1756,1875,1,0,0,0,1757,1759,5,138,0,0,1758,1760, - 5,44,0,0,1759,1758,1,0,0,0,1759,1760,1,0,0,0,1760,1761,1,0,0,0,1761, - 1762,3,802,401,0,1762,1763,7,15,0,0,1763,1764,5,77,0,0,1764,1765, - 5,78,0,0,1765,1875,1,0,0,0,1766,1768,5,138,0,0,1767,1769,5,44,0, - 0,1768,1767,1,0,0,0,1768,1769,1,0,0,0,1769,1770,1,0,0,0,1770,1771, - 3,802,401,0,1771,1772,5,191,0,0,1772,1774,5,437,0,0,1773,1775,3, - 424,212,0,1774,1773,1,0,0,0,1774,1775,1,0,0,0,1775,1875,1,0,0,0, - 1776,1778,5,138,0,0,1777,1779,5,44,0,0,1778,1777,1,0,0,0,1778,1779, - 1,0,0,0,1779,1780,1,0,0,0,1780,1781,3,802,401,0,1781,1782,5,333, - 0,0,1782,1783,5,342,0,0,1783,1784,3,814,407,0,1784,1875,1,0,0,0, - 1785,1787,5,138,0,0,1786,1788,5,44,0,0,1787,1786,1,0,0,0,1787,1788, - 1,0,0,0,1788,1789,1,0,0,0,1789,1791,3,802,401,0,1790,1785,1,0,0, - 0,1790,1791,1,0,0,0,1791,1792,1,0,0,0,1792,1793,7,16,0,0,1793,1875, - 3,100,50,0,1794,1796,5,138,0,0,1795,1797,5,44,0,0,1796,1795,1,0, - 0,0,1796,1797,1,0,0,0,1797,1798,1,0,0,0,1798,1799,3,802,401,0,1799, - 1800,5,333,0,0,1800,1801,5,345,0,0,1801,1802,3,820,410,0,1802,1875, - 1,0,0,0,1803,1805,5,138,0,0,1804,1806,5,44,0,0,1805,1804,1,0,0,0, - 1805,1806,1,0,0,0,1806,1807,1,0,0,0,1807,1808,3,802,401,0,1808,1809, - 5,133,0,0,1809,1810,5,438,0,0,1810,1811,3,140,70,0,1811,1812,5,36, - 0,0,1812,1821,5,219,0,0,1813,1815,5,2,0,0,1814,1816,3,202,101,0, - 1815,1814,1,0,0,0,1816,1817,1,0,0,0,1817,1815,1,0,0,0,1817,1818, - 1,0,0,0,1818,1819,1,0,0,0,1819,1820,5,3,0,0,1820,1822,1,0,0,0,1821, - 1813,1,0,0,0,1821,1822,1,0,0,0,1822,1875,1,0,0,0,1823,1825,5,138, - 0,0,1824,1826,5,44,0,0,1825,1824,1,0,0,0,1825,1826,1,0,0,0,1826, - 1827,1,0,0,0,1827,1841,3,802,401,0,1828,1833,5,314,0,0,1829,1831, - 5,105,0,0,1830,1829,1,0,0,0,1830,1831,1,0,0,0,1831,1832,1,0,0,0, - 1832,1834,3,204,102,0,1833,1830,1,0,0,0,1833,1834,1,0,0,0,1834,1842, - 1,0,0,0,1835,1839,5,333,0,0,1836,1840,3,202,101,0,1837,1838,5,438, - 0,0,1838,1840,3,140,70,0,1839,1836,1,0,0,0,1839,1837,1,0,0,0,1840, - 1842,1,0,0,0,1841,1828,1,0,0,0,1841,1835,1,0,0,0,1842,1843,1,0,0, - 0,1843,1841,1,0,0,0,1843,1844,1,0,0,0,1844,1875,1,0,0,0,1845,1847, - 5,138,0,0,1846,1848,5,44,0,0,1847,1846,1,0,0,0,1847,1848,1,0,0,0, - 1848,1849,1,0,0,0,1849,1850,3,802,401,0,1850,1851,5,191,0,0,1851, - 1853,5,219,0,0,1852,1854,3,424,212,0,1853,1852,1,0,0,0,1853,1854, - 1,0,0,0,1854,1875,1,0,0,0,1855,1857,5,138,0,0,1856,1858,5,44,0,0, - 1857,1856,1,0,0,0,1857,1858,1,0,0,0,1858,1859,1,0,0,0,1859,1862, - 3,802,401,0,1860,1861,5,333,0,0,1861,1863,5,174,0,0,1862,1860,1, - 0,0,0,1862,1863,1,0,0,0,1863,1864,1,0,0,0,1864,1865,5,360,0,0,1865, - 1867,3,654,327,0,1866,1868,3,98,49,0,1867,1866,1,0,0,0,1867,1868, - 1,0,0,0,1868,1871,1,0,0,0,1869,1870,5,100,0,0,1870,1872,3,676,338, - 0,1871,1869,1,0,0,0,1871,1872,1,0,0,0,1872,1875,1,0,0,0,1873,1875, - 3,224,112,0,1874,1641,1,0,0,0,1874,1647,1,0,0,0,1874,1656,1,0,0, - 0,1874,1659,1,0,0,0,1874,1668,1,0,0,0,1874,1671,1,0,0,0,1874,1674, - 1,0,0,0,1874,1676,1,0,0,0,1874,1681,1,0,0,0,1874,1688,1,0,0,0,1874, - 1692,1,0,0,0,1874,1696,1,0,0,0,1874,1700,1,0,0,0,1874,1702,1,0,0, - 0,1874,1704,1,0,0,0,1874,1707,1,0,0,0,1874,1710,1,0,0,0,1874,1724, - 1,0,0,0,1874,1729,1,0,0,0,1874,1740,1,0,0,0,1874,1748,1,0,0,0,1874, - 1757,1,0,0,0,1874,1766,1,0,0,0,1874,1776,1,0,0,0,1874,1790,1,0,0, - 0,1874,1794,1,0,0,0,1874,1803,1,0,0,0,1874,1823,1,0,0,0,1874,1845, - 1,0,0,0,1874,1855,1,0,0,0,1874,1873,1,0,0,0,1875,93,1,0,0,0,1876, - 1877,5,333,0,0,1877,1878,5,53,0,0,1878,1882,3,676,338,0,1879,1880, - 5,191,0,0,1880,1882,5,53,0,0,1881,1876,1,0,0,0,1881,1879,1,0,0,0, - 1882,95,1,0,0,0,1883,1884,7,17,0,0,1884,97,1,0,0,0,1885,1886,5,43, - 0,0,1886,1887,3,318,159,0,1887,99,1,0,0,0,1888,1889,5,2,0,0,1889, - 1894,3,104,52,0,1890,1891,5,6,0,0,1891,1893,3,104,52,0,1892,1890, - 1,0,0,0,1893,1896,1,0,0,0,1894,1892,1,0,0,0,1894,1895,1,0,0,0,1895, - 1897,1,0,0,0,1896,1894,1,0,0,0,1897,1898,5,3,0,0,1898,101,1,0,0, - 0,1899,1900,5,105,0,0,1900,1901,3,100,50,0,1901,103,1,0,0,0,1902, - 1907,3,826,413,0,1903,1904,5,10,0,0,1904,1908,3,290,145,0,1905,1906, - 5,11,0,0,1906,1908,3,288,144,0,1907,1903,1,0,0,0,1907,1905,1,0,0, - 0,1907,1908,1,0,0,0,1908,105,1,0,0,0,1909,1910,5,62,0,0,1910,1911, - 5,422,0,0,1911,1912,5,105,0,0,1912,1913,5,2,0,0,1913,1914,5,533, - 0,0,1914,1915,5,574,0,0,1915,1916,5,6,0,0,1916,1917,5,534,0,0,1917, - 1918,5,574,0,0,1918,1932,5,3,0,0,1919,1920,5,62,0,0,1920,1921,5, - 422,0,0,1921,1922,5,68,0,0,1922,1932,3,536,268,0,1923,1924,5,62, - 0,0,1924,1925,5,422,0,0,1925,1926,5,64,0,0,1926,1927,3,536,268,0, - 1927,1928,5,94,0,0,1928,1929,3,536,268,0,1929,1932,1,0,0,0,1930, - 1932,5,53,0,0,1931,1909,1,0,0,0,1931,1919,1,0,0,0,1931,1923,1,0, - 0,0,1931,1930,1,0,0,0,1932,107,1,0,0,0,1933,1934,5,138,0,0,1934, - 1935,5,360,0,0,1935,1936,3,318,159,0,1936,1941,3,110,55,0,1937,1938, - 5,6,0,0,1938,1940,3,110,55,0,1939,1937,1,0,0,0,1940,1943,1,0,0,0, - 1941,1939,1,0,0,0,1941,1942,1,0,0,0,1942,109,1,0,0,0,1943,1941,1, - 0,0,0,1944,1945,5,133,0,0,1945,1946,5,143,0,0,1946,1948,3,646,323, - 0,1947,1949,3,96,48,0,1948,1947,1,0,0,0,1948,1949,1,0,0,0,1949,1975, - 1,0,0,0,1950,1951,5,191,0,0,1951,1953,5,143,0,0,1952,1954,3,424, - 212,0,1953,1952,1,0,0,0,1953,1954,1,0,0,0,1954,1955,1,0,0,0,1955, - 1957,3,820,410,0,1956,1958,3,96,48,0,1957,1956,1,0,0,0,1957,1958, - 1,0,0,0,1958,1975,1,0,0,0,1959,1960,5,138,0,0,1960,1961,5,143,0, - 0,1961,1964,3,820,410,0,1962,1963,5,333,0,0,1963,1965,5,174,0,0, - 1964,1962,1,0,0,0,1964,1965,1,0,0,0,1965,1966,1,0,0,0,1966,1967, - 5,360,0,0,1967,1969,3,654,327,0,1968,1970,3,98,49,0,1969,1968,1, - 0,0,0,1969,1970,1,0,0,0,1970,1972,1,0,0,0,1971,1973,3,96,48,0,1972, - 1971,1,0,0,0,1972,1973,1,0,0,0,1973,1975,1,0,0,0,1974,1944,1,0,0, - 0,1974,1950,1,0,0,0,1974,1959,1,0,0,0,1975,111,1,0,0,0,1976,1979, - 5,157,0,0,1977,1980,3,820,410,0,1978,1980,5,30,0,0,1979,1977,1,0, - 0,0,1979,1978,1,0,0,0,1980,113,1,0,0,0,1981,1983,5,169,0,0,1982, - 1984,5,107,0,0,1983,1982,1,0,0,0,1983,1984,1,0,0,0,1984,1985,1,0, - 0,0,1985,1987,3,776,388,0,1986,1988,3,146,73,0,1987,1986,1,0,0,0, - 1987,1988,1,0,0,0,1988,1989,1,0,0,0,1989,1991,7,18,0,0,1990,1992, - 5,297,0,0,1991,1990,1,0,0,0,1991,1992,1,0,0,0,1992,1996,1,0,0,0, - 1993,1997,3,810,405,0,1994,1997,5,343,0,0,1995,1997,5,344,0,0,1996, - 1993,1,0,0,0,1996,1994,1,0,0,0,1996,1995,1,0,0,0,1997,2003,1,0,0, - 0,1998,2000,5,100,0,0,1999,1998,1,0,0,0,1999,2000,1,0,0,0,2000,2001, - 1,0,0,0,2001,2002,5,184,0,0,2002,2004,3,810,405,0,2003,1999,1,0, - 0,0,2003,2004,1,0,0,0,2004,2006,1,0,0,0,2005,2007,5,105,0,0,2006, - 2005,1,0,0,0,2006,2007,1,0,0,0,2007,2008,1,0,0,0,2008,2010,3,118, - 59,0,2009,2011,3,640,320,0,2010,2009,1,0,0,0,2010,2011,1,0,0,0,2011, - 2031,1,0,0,0,2012,2013,5,169,0,0,2013,2014,5,2,0,0,2014,2015,3,532, - 266,0,2015,2016,5,3,0,0,2016,2018,5,94,0,0,2017,2019,5,297,0,0,2018, - 2017,1,0,0,0,2018,2019,1,0,0,0,2019,2023,1,0,0,0,2020,2024,3,810, - 405,0,2021,2024,5,343,0,0,2022,2024,5,344,0,0,2023,2020,1,0,0,0, - 2023,2021,1,0,0,0,2023,2022,1,0,0,0,2024,2026,1,0,0,0,2025,2027, - 5,105,0,0,2026,2025,1,0,0,0,2026,2027,1,0,0,0,2027,2028,1,0,0,0, - 2028,2029,3,118,59,0,2029,2031,1,0,0,0,2030,1981,1,0,0,0,2030,2012, - 1,0,0,0,2031,115,1,0,0,0,2032,2075,5,107,0,0,2033,2075,5,112,0,0, - 2034,2036,7,19,0,0,2035,2037,5,36,0,0,2036,2035,1,0,0,0,2036,2037, - 1,0,0,0,2037,2038,1,0,0,0,2038,2075,3,810,405,0,2039,2075,5,171, - 0,0,2040,2075,5,216,0,0,2041,2042,5,209,0,0,2042,2045,5,298,0,0, - 2043,2046,3,150,75,0,2044,2046,5,9,0,0,2045,2043,1,0,0,0,2045,2044, - 1,0,0,0,2046,2075,1,0,0,0,2047,2049,5,209,0,0,2048,2050,5,77,0,0, - 2049,2048,1,0,0,0,2049,2050,1,0,0,0,2050,2051,1,0,0,0,2051,2052, - 5,78,0,0,2052,2075,3,150,75,0,2053,2054,5,194,0,0,2054,2075,3,810, - 405,0,2055,2072,7,20,0,0,2056,2059,5,2,0,0,2057,2060,3,150,75,0, - 2058,2060,5,9,0,0,2059,2057,1,0,0,0,2059,2058,1,0,0,0,2060,2068, - 1,0,0,0,2061,2064,5,6,0,0,2062,2065,3,150,75,0,2063,2065,5,9,0,0, - 2064,2062,1,0,0,0,2064,2063,1,0,0,0,2065,2067,1,0,0,0,2066,2061, - 1,0,0,0,2067,2070,1,0,0,0,2068,2066,1,0,0,0,2068,2069,1,0,0,0,2069, - 2071,1,0,0,0,2070,2068,1,0,0,0,2071,2073,5,3,0,0,2072,2056,1,0,0, - 0,2072,2073,1,0,0,0,2073,2075,1,0,0,0,2074,2032,1,0,0,0,2074,2033, - 1,0,0,0,2074,2034,1,0,0,0,2074,2039,1,0,0,0,2074,2040,1,0,0,0,2074, - 2041,1,0,0,0,2074,2047,1,0,0,0,2074,2053,1,0,0,0,2074,2055,1,0,0, - 0,2075,2078,1,0,0,0,2076,2074,1,0,0,0,2076,2077,1,0,0,0,2077,117, - 1,0,0,0,2078,2076,1,0,0,0,2079,2098,3,116,58,0,2080,2083,5,2,0,0, - 2081,2084,3,116,58,0,2082,2084,3,120,60,0,2083,2081,1,0,0,0,2083, - 2082,1,0,0,0,2084,2092,1,0,0,0,2085,2088,5,6,0,0,2086,2089,3,116, - 58,0,2087,2089,3,120,60,0,2088,2086,1,0,0,0,2088,2087,1,0,0,0,2089, - 2091,1,0,0,0,2090,2085,1,0,0,0,2091,2094,1,0,0,0,2092,2090,1,0,0, - 0,2092,2093,1,0,0,0,2093,2095,1,0,0,0,2094,2092,1,0,0,0,2095,2096, - 5,3,0,0,2096,2098,1,0,0,0,2097,2079,1,0,0,0,2097,2080,1,0,0,0,2098, - 119,1,0,0,0,2099,2114,3,826,413,0,2100,2115,3,54,27,0,2101,2115, - 3,204,102,0,2102,2115,5,9,0,0,2103,2104,5,2,0,0,2104,2109,3,52,26, - 0,2105,2106,5,6,0,0,2106,2108,3,52,26,0,2107,2105,1,0,0,0,2108,2111, - 1,0,0,0,2109,2107,1,0,0,0,2109,2110,1,0,0,0,2110,2112,1,0,0,0,2111, - 2109,1,0,0,0,2112,2113,5,3,0,0,2113,2115,1,0,0,0,2114,2100,1,0,0, - 0,2114,2101,1,0,0,0,2114,2102,1,0,0,0,2114,2103,1,0,0,0,2114,2115, - 1,0,0,0,2115,121,1,0,0,0,2116,2118,5,46,0,0,2117,2119,3,124,62,0, - 2118,2117,1,0,0,0,2118,2119,1,0,0,0,2119,2120,1,0,0,0,2120,2122, - 5,92,0,0,2121,2123,3,296,148,0,2122,2121,1,0,0,0,2122,2123,1,0,0, - 0,2123,2124,1,0,0,0,2124,2190,3,774,387,0,2125,2127,5,2,0,0,2126, - 2128,3,128,64,0,2127,2126,1,0,0,0,2127,2128,1,0,0,0,2128,2129,1, - 0,0,0,2129,2131,5,3,0,0,2130,2132,3,166,83,0,2131,2130,1,0,0,0,2131, - 2132,1,0,0,0,2132,2134,1,0,0,0,2133,2135,3,168,84,0,2134,2133,1, - 0,0,0,2134,2135,1,0,0,0,2135,2137,1,0,0,0,2136,2138,3,172,86,0,2137, - 2136,1,0,0,0,2137,2138,1,0,0,0,2138,2140,1,0,0,0,2139,2141,3,174, - 87,0,2140,2139,1,0,0,0,2140,2141,1,0,0,0,2141,2143,1,0,0,0,2142, - 2144,3,176,88,0,2143,2142,1,0,0,0,2143,2144,1,0,0,0,2144,2146,1, - 0,0,0,2145,2147,3,178,89,0,2146,2145,1,0,0,0,2146,2147,1,0,0,0,2147, - 2191,1,0,0,0,2148,2149,5,275,0,0,2149,2151,3,318,159,0,2150,2152, - 3,126,63,0,2151,2150,1,0,0,0,2151,2152,1,0,0,0,2152,2154,1,0,0,0, - 2153,2155,3,168,84,0,2154,2153,1,0,0,0,2154,2155,1,0,0,0,2155,2157, - 1,0,0,0,2156,2158,3,172,86,0,2157,2156,1,0,0,0,2157,2158,1,0,0,0, - 2158,2160,1,0,0,0,2159,2161,3,174,87,0,2160,2159,1,0,0,0,2160,2161, - 1,0,0,0,2161,2163,1,0,0,0,2162,2164,3,176,88,0,2163,2162,1,0,0,0, - 2163,2164,1,0,0,0,2164,2166,1,0,0,0,2165,2167,3,178,89,0,2166,2165, - 1,0,0,0,2166,2167,1,0,0,0,2167,2191,1,0,0,0,2168,2169,5,285,0,0, - 2169,2170,5,275,0,0,2170,2172,3,782,391,0,2171,2173,3,126,63,0,2172, - 2171,1,0,0,0,2172,2173,1,0,0,0,2173,2174,1,0,0,0,2174,2176,3,106, - 53,0,2175,2177,3,168,84,0,2176,2175,1,0,0,0,2176,2177,1,0,0,0,2177, - 2179,1,0,0,0,2178,2180,3,172,86,0,2179,2178,1,0,0,0,2179,2180,1, - 0,0,0,2180,2182,1,0,0,0,2181,2183,3,174,87,0,2182,2181,1,0,0,0,2182, - 2183,1,0,0,0,2183,2185,1,0,0,0,2184,2186,3,176,88,0,2185,2184,1, - 0,0,0,2185,2186,1,0,0,0,2186,2188,1,0,0,0,2187,2189,3,178,89,0,2188, - 2187,1,0,0,0,2188,2189,1,0,0,0,2189,2191,1,0,0,0,2190,2125,1,0,0, - 0,2190,2148,1,0,0,0,2190,2168,1,0,0,0,2191,123,1,0,0,0,2192,2198, - 5,354,0,0,2193,2198,5,352,0,0,2194,2195,7,21,0,0,2195,2198,7,22, - 0,0,2196,2198,5,367,0,0,2197,2192,1,0,0,0,2197,2193,1,0,0,0,2197, - 2194,1,0,0,0,2197,2196,1,0,0,0,2198,125,1,0,0,0,2199,2200,5,2,0, - 0,2200,2205,3,132,66,0,2201,2202,5,6,0,0,2202,2204,3,132,66,0,2203, - 2201,1,0,0,0,2204,2207,1,0,0,0,2205,2203,1,0,0,0,2205,2206,1,0,0, - 0,2206,2208,1,0,0,0,2207,2205,1,0,0,0,2208,2209,5,3,0,0,2209,127, - 1,0,0,0,2210,2215,3,130,65,0,2211,2212,5,6,0,0,2212,2214,3,130,65, - 0,2213,2211,1,0,0,0,2214,2217,1,0,0,0,2215,2213,1,0,0,0,2215,2216, - 1,0,0,0,2216,129,1,0,0,0,2217,2215,1,0,0,0,2218,2219,5,45,0,0,2219, - 2221,3,820,410,0,2220,2218,1,0,0,0,2220,2221,1,0,0,0,2221,2222,1, - 0,0,0,2222,2234,3,144,72,0,2223,2234,3,134,67,0,2224,2225,5,120, - 0,0,2225,2230,3,782,391,0,2226,2227,7,23,0,0,2227,2229,3,142,71, - 0,2228,2226,1,0,0,0,2229,2232,1,0,0,0,2230,2228,1,0,0,0,2230,2231, - 1,0,0,0,2231,2234,1,0,0,0,2232,2230,1,0,0,0,2233,2220,1,0,0,0,2233, - 2223,1,0,0,0,2233,2224,1,0,0,0,2234,131,1,0,0,0,2235,2238,3,804, - 402,0,2236,2237,5,105,0,0,2237,2239,5,280,0,0,2238,2236,1,0,0,0, - 2238,2239,1,0,0,0,2239,2243,1,0,0,0,2240,2242,3,136,68,0,2241,2240, - 1,0,0,0,2242,2245,1,0,0,0,2243,2241,1,0,0,0,2243,2244,1,0,0,0,2244, - 2252,1,0,0,0,2245,2243,1,0,0,0,2246,2247,5,45,0,0,2247,2249,3,820, - 410,0,2248,2246,1,0,0,0,2248,2249,1,0,0,0,2249,2250,1,0,0,0,2250, - 2252,3,144,72,0,2251,2235,1,0,0,0,2251,2248,1,0,0,0,2252,133,1,0, - 0,0,2253,2254,3,804,402,0,2254,2256,3,654,327,0,2255,2257,3,222, - 111,0,2256,2255,1,0,0,0,2256,2257,1,0,0,0,2257,2267,1,0,0,0,2258, - 2265,5,345,0,0,2259,2266,5,544,0,0,2260,2266,5,205,0,0,2261,2266, - 5,545,0,0,2262,2266,5,546,0,0,2263,2266,5,53,0,0,2264,2266,3,820, - 410,0,2265,2259,1,0,0,0,2265,2260,1,0,0,0,2265,2261,1,0,0,0,2265, - 2262,1,0,0,0,2265,2263,1,0,0,0,2265,2264,1,0,0,0,2266,2268,1,0,0, - 0,2267,2258,1,0,0,0,2267,2268,1,0,0,0,2268,2271,1,0,0,0,2269,2270, - 5,543,0,0,2270,2272,3,820,410,0,2271,2269,1,0,0,0,2271,2272,1,0, - 0,0,2272,2274,1,0,0,0,2273,2275,3,98,49,0,2274,2273,1,0,0,0,2274, - 2275,1,0,0,0,2275,2278,1,0,0,0,2276,2277,5,105,0,0,2277,2279,5,280, - 0,0,2278,2276,1,0,0,0,2278,2279,1,0,0,0,2279,2283,1,0,0,0,2280,2282, - 3,136,68,0,2281,2280,1,0,0,0,2282,2285,1,0,0,0,2283,2281,1,0,0,0, - 2283,2284,1,0,0,0,2284,135,1,0,0,0,2285,2283,1,0,0,0,2286,2287,5, - 45,0,0,2287,2289,3,820,410,0,2288,2286,1,0,0,0,2288,2289,1,0,0,0, - 2289,2290,1,0,0,0,2290,2295,3,138,69,0,2291,2293,5,77,0,0,2292,2291, - 1,0,0,0,2292,2293,1,0,0,0,2293,2294,1,0,0,0,2294,2296,5,54,0,0,2295, - 2292,1,0,0,0,2295,2296,1,0,0,0,2296,2299,1,0,0,0,2297,2298,5,69, - 0,0,2298,2300,7,9,0,0,2299,2297,1,0,0,0,2299,2300,1,0,0,0,2300,137, - 1,0,0,0,2301,2303,5,77,0,0,2302,2301,1,0,0,0,2302,2303,1,0,0,0,2303, - 2304,1,0,0,0,2304,2382,5,78,0,0,2305,2307,5,98,0,0,2306,2308,3,402, - 201,0,2307,2306,1,0,0,0,2307,2308,1,0,0,0,2308,2310,1,0,0,0,2309, - 2311,3,180,90,0,2310,2309,1,0,0,0,2310,2311,1,0,0,0,2311,2382,1, - 0,0,0,2312,2318,5,98,0,0,2313,2315,5,273,0,0,2314,2316,5,77,0,0, - 2315,2314,1,0,0,0,2315,2316,1,0,0,0,2316,2317,1,0,0,0,2317,2319, - 5,56,0,0,2318,2313,1,0,0,0,2318,2319,1,0,0,0,2319,2322,1,0,0,0,2320, - 2321,5,441,0,0,2321,2323,3,362,181,0,2322,2320,1,0,0,0,2322,2323, - 1,0,0,0,2323,2325,1,0,0,0,2324,2326,3,574,287,0,2325,2324,1,0,0, - 0,2325,2326,1,0,0,0,2326,2328,1,0,0,0,2327,2329,3,180,90,0,2328, - 2327,1,0,0,0,2328,2329,1,0,0,0,2329,2382,1,0,0,0,2330,2331,5,85, - 0,0,2331,2333,5,245,0,0,2332,2334,3,402,201,0,2333,2332,1,0,0,0, - 2333,2334,1,0,0,0,2334,2336,1,0,0,0,2335,2337,3,180,90,0,2336,2335, - 1,0,0,0,2336,2337,1,0,0,0,2337,2382,1,0,0,0,2338,2339,5,42,0,0,2339, - 2340,5,2,0,0,2340,2341,3,676,338,0,2341,2344,5,3,0,0,2342,2343,5, - 269,0,0,2343,2345,5,228,0,0,2344,2342,1,0,0,0,2344,2345,1,0,0,0, - 2345,2382,1,0,0,0,2346,2347,5,53,0,0,2347,2382,3,684,342,0,2348, - 2349,5,438,0,0,2349,2350,3,140,70,0,2350,2367,5,36,0,0,2351,2360, - 5,219,0,0,2352,2354,5,2,0,0,2353,2355,3,202,101,0,2354,2353,1,0, - 0,0,2355,2356,1,0,0,0,2356,2354,1,0,0,0,2356,2357,1,0,0,0,2357,2358, - 1,0,0,0,2358,2359,5,3,0,0,2359,2361,1,0,0,0,2360,2352,1,0,0,0,2360, - 2361,1,0,0,0,2361,2368,1,0,0,0,2362,2363,5,2,0,0,2363,2364,3,676, - 338,0,2364,2365,5,3,0,0,2365,2366,5,440,0,0,2366,2368,1,0,0,0,2367, - 2351,1,0,0,0,2367,2362,1,0,0,0,2368,2382,1,0,0,0,2369,2370,5,86, - 0,0,2370,2372,3,782,391,0,2371,2373,3,146,73,0,2372,2371,1,0,0,0, - 2372,2373,1,0,0,0,2373,2375,1,0,0,0,2374,2376,3,154,77,0,2375,2374, - 1,0,0,0,2375,2376,1,0,0,0,2376,2378,1,0,0,0,2377,2379,3,158,79,0, - 2378,2377,1,0,0,0,2378,2379,1,0,0,0,2379,2382,1,0,0,0,2380,2382, - 3,98,49,0,2381,2302,1,0,0,0,2381,2305,1,0,0,0,2381,2312,1,0,0,0, - 2381,2330,1,0,0,0,2381,2338,1,0,0,0,2381,2346,1,0,0,0,2381,2348, - 1,0,0,0,2381,2369,1,0,0,0,2381,2380,1,0,0,0,2382,139,1,0,0,0,2383, - 2387,5,139,0,0,2384,2385,5,147,0,0,2385,2387,5,53,0,0,2386,2383, - 1,0,0,0,2386,2384,1,0,0,0,2387,141,1,0,0,0,2388,2389,7,24,0,0,2389, - 143,1,0,0,0,2390,2391,5,42,0,0,2391,2392,5,2,0,0,2392,2393,3,676, - 338,0,2393,2397,5,3,0,0,2394,2396,3,274,137,0,2395,2394,1,0,0,0, - 2396,2399,1,0,0,0,2397,2395,1,0,0,0,2397,2398,1,0,0,0,2398,2487, - 1,0,0,0,2399,2397,1,0,0,0,2400,2404,5,98,0,0,2401,2402,5,85,0,0, - 2402,2404,5,245,0,0,2403,2400,1,0,0,0,2403,2401,1,0,0,0,2404,2428, - 1,0,0,0,2405,2407,3,146,73,0,2406,2408,3,152,76,0,2407,2406,1,0, - 0,0,2407,2408,1,0,0,0,2408,2410,1,0,0,0,2409,2411,3,402,201,0,2410, - 2409,1,0,0,0,2410,2411,1,0,0,0,2411,2413,1,0,0,0,2412,2414,3,180, - 90,0,2413,2412,1,0,0,0,2413,2414,1,0,0,0,2414,2418,1,0,0,0,2415, - 2417,3,274,137,0,2416,2415,1,0,0,0,2417,2420,1,0,0,0,2418,2416,1, - 0,0,0,2418,2419,1,0,0,0,2419,2429,1,0,0,0,2420,2418,1,0,0,0,2421, - 2425,3,182,91,0,2422,2424,3,274,137,0,2423,2422,1,0,0,0,2424,2427, - 1,0,0,0,2425,2423,1,0,0,0,2425,2426,1,0,0,0,2426,2429,1,0,0,0,2427, - 2425,1,0,0,0,2428,2405,1,0,0,0,2428,2421,1,0,0,0,2429,2487,1,0,0, - 0,2430,2432,5,199,0,0,2431,2433,3,172,86,0,2432,2431,1,0,0,0,2432, - 2433,1,0,0,0,2433,2434,1,0,0,0,2434,2435,5,2,0,0,2435,2440,3,156, - 78,0,2436,2437,5,6,0,0,2437,2439,3,156,78,0,2438,2436,1,0,0,0,2439, - 2442,1,0,0,0,2440,2438,1,0,0,0,2440,2441,1,0,0,0,2441,2443,1,0,0, - 0,2442,2440,1,0,0,0,2443,2445,5,3,0,0,2444,2446,3,152,76,0,2445, - 2444,1,0,0,0,2445,2446,1,0,0,0,2446,2448,1,0,0,0,2447,2449,3,402, - 201,0,2448,2447,1,0,0,0,2448,2449,1,0,0,0,2449,2451,1,0,0,0,2450, - 2452,3,180,90,0,2451,2450,1,0,0,0,2451,2452,1,0,0,0,2452,2458,1, - 0,0,0,2453,2454,5,103,0,0,2454,2455,5,2,0,0,2455,2456,3,676,338, - 0,2456,2457,5,3,0,0,2457,2459,1,0,0,0,2458,2453,1,0,0,0,2458,2459, - 1,0,0,0,2459,2463,1,0,0,0,2460,2462,3,274,137,0,2461,2460,1,0,0, - 0,2462,2465,1,0,0,0,2463,2461,1,0,0,0,2463,2464,1,0,0,0,2464,2487, - 1,0,0,0,2465,2463,1,0,0,0,2466,2467,5,63,0,0,2467,2468,5,245,0,0, - 2468,2469,3,146,73,0,2469,2470,5,86,0,0,2470,2472,3,782,391,0,2471, - 2473,3,146,73,0,2472,2471,1,0,0,0,2472,2473,1,0,0,0,2473,2475,1, - 0,0,0,2474,2476,3,154,77,0,2475,2474,1,0,0,0,2475,2476,1,0,0,0,2476, - 2478,1,0,0,0,2477,2479,3,158,79,0,2478,2477,1,0,0,0,2478,2479,1, - 0,0,0,2479,2483,1,0,0,0,2480,2482,3,274,137,0,2481,2480,1,0,0,0, - 2482,2485,1,0,0,0,2483,2481,1,0,0,0,2483,2484,1,0,0,0,2484,2487, - 1,0,0,0,2485,2483,1,0,0,0,2486,2390,1,0,0,0,2486,2403,1,0,0,0,2486, - 2430,1,0,0,0,2486,2466,1,0,0,0,2487,145,1,0,0,0,2488,2489,5,2,0, - 0,2489,2490,3,150,75,0,2490,2491,5,3,0,0,2491,147,1,0,0,0,2492,2493, - 5,2,0,0,2493,2498,3,804,402,0,2494,2495,5,6,0,0,2495,2497,3,804, - 402,0,2496,2494,1,0,0,0,2497,2500,1,0,0,0,2498,2496,1,0,0,0,2498, - 2499,1,0,0,0,2499,2501,1,0,0,0,2500,2498,1,0,0,0,2501,2502,5,3,0, - 0,2502,149,1,0,0,0,2503,2508,3,802,401,0,2504,2505,5,6,0,0,2505, - 2507,3,802,401,0,2506,2504,1,0,0,0,2507,2510,1,0,0,0,2508,2506,1, - 0,0,0,2508,2509,1,0,0,0,2509,151,1,0,0,0,2510,2508,1,0,0,0,2511, - 2512,5,441,0,0,2512,2513,3,146,73,0,2513,153,1,0,0,0,2514,2515,5, - 258,0,0,2515,2516,7,25,0,0,2516,155,1,0,0,0,2517,2518,3,364,182, - 0,2518,2525,5,105,0,0,2519,2526,3,416,208,0,2520,2521,5,278,0,0, - 2521,2522,5,2,0,0,2522,2523,3,416,208,0,2523,2524,5,3,0,0,2524,2526, - 1,0,0,0,2525,2519,1,0,0,0,2525,2520,1,0,0,0,2526,157,1,0,0,0,2527, - 2529,3,160,80,0,2528,2530,3,162,81,0,2529,2528,1,0,0,0,2529,2530, - 1,0,0,0,2530,2536,1,0,0,0,2531,2533,3,162,81,0,2532,2534,3,160,80, - 0,2533,2532,1,0,0,0,2533,2534,1,0,0,0,2534,2536,1,0,0,0,2535,2527, - 1,0,0,0,2535,2531,1,0,0,0,2536,159,1,0,0,0,2537,2538,5,80,0,0,2538, - 2539,5,369,0,0,2539,2540,3,164,82,0,2540,161,1,0,0,0,2541,2542,5, - 80,0,0,2542,2543,5,182,0,0,2543,2544,3,164,82,0,2544,163,1,0,0,0, - 2545,2546,5,269,0,0,2546,2555,5,132,0,0,2547,2555,5,315,0,0,2548, - 2555,5,150,0,0,2549,2550,5,333,0,0,2550,2552,7,26,0,0,2551,2553, - 3,150,75,0,2552,2551,1,0,0,0,2552,2553,1,0,0,0,2553,2555,1,0,0,0, - 2554,2545,1,0,0,0,2554,2547,1,0,0,0,2554,2548,1,0,0,0,2554,2549, - 1,0,0,0,2555,165,1,0,0,0,2556,2557,5,238,0,0,2557,2558,5,2,0,0,2558, - 2559,3,762,381,0,2559,2560,5,3,0,0,2560,167,1,0,0,0,2561,2562,5, - 285,0,0,2562,2563,5,147,0,0,2563,2564,3,820,410,0,2564,2565,5,2, - 0,0,2565,2570,3,170,85,0,2566,2567,5,6,0,0,2567,2569,3,170,85,0, - 2568,2566,1,0,0,0,2569,2572,1,0,0,0,2570,2568,1,0,0,0,2570,2571, - 1,0,0,0,2571,2573,1,0,0,0,2572,2570,1,0,0,0,2573,2574,5,3,0,0,2574, - 169,1,0,0,0,2575,2582,3,802,401,0,2576,2582,3,690,345,0,2577,2578, - 5,2,0,0,2578,2579,3,676,338,0,2579,2580,5,3,0,0,2580,2582,1,0,0, - 0,2581,2575,1,0,0,0,2581,2576,1,0,0,0,2581,2577,1,0,0,0,2582,2584, - 1,0,0,0,2583,2585,3,98,49,0,2584,2583,1,0,0,0,2584,2585,1,0,0,0, - 2585,2587,1,0,0,0,2586,2588,3,318,159,0,2587,2586,1,0,0,0,2587,2588, - 1,0,0,0,2588,171,1,0,0,0,2589,2590,5,100,0,0,2590,2591,3,820,410, - 0,2591,173,1,0,0,0,2592,2593,5,105,0,0,2593,2597,3,100,50,0,2594, - 2595,7,27,0,0,2595,2597,5,277,0,0,2596,2592,1,0,0,0,2596,2594,1, - 0,0,0,2597,175,1,0,0,0,2598,2599,5,80,0,0,2599,2605,5,161,0,0,2600, - 2606,5,191,0,0,2601,2602,5,182,0,0,2602,2606,5,320,0,0,2603,2604, - 5,292,0,0,2604,2606,5,320,0,0,2605,2600,1,0,0,0,2605,2601,1,0,0, - 0,2605,2603,1,0,0,0,2606,177,1,0,0,0,2607,2608,5,351,0,0,2608,2609, - 3,772,386,0,2609,179,1,0,0,0,2610,2611,5,100,0,0,2611,2612,5,226, - 0,0,2612,2613,3,178,89,0,2613,181,1,0,0,0,2614,2615,5,100,0,0,2615, - 2616,5,226,0,0,2616,2617,3,820,410,0,2617,183,1,0,0,0,2618,2619, - 5,46,0,0,2619,2624,5,342,0,0,2620,2622,3,296,148,0,2621,2620,1,0, - 0,0,2621,2622,1,0,0,0,2622,2623,1,0,0,0,2623,2625,3,318,159,0,2624, - 2621,1,0,0,0,2624,2625,1,0,0,0,2625,2627,1,0,0,0,2626,2628,3,146, - 73,0,2627,2626,1,0,0,0,2627,2628,1,0,0,0,2628,2629,1,0,0,0,2629, - 2639,5,80,0,0,2630,2635,3,734,367,0,2631,2632,5,6,0,0,2632,2634, - 3,734,367,0,2633,2631,1,0,0,0,2634,2637,1,0,0,0,2635,2633,1,0,0, - 0,2635,2636,1,0,0,0,2636,2640,1,0,0,0,2637,2635,1,0,0,0,2638,2640, - 3,732,366,0,2639,2630,1,0,0,0,2639,2638,1,0,0,0,2640,2641,1,0,0, - 0,2641,2642,3,612,306,0,2642,185,1,0,0,0,2643,2644,5,138,0,0,2644, - 2646,5,342,0,0,2645,2647,3,424,212,0,2646,2645,1,0,0,0,2646,2647, - 1,0,0,0,2647,2648,1,0,0,0,2648,2649,3,318,159,0,2649,2650,5,333, - 0,0,2650,2651,5,342,0,0,2651,2652,3,814,407,0,2652,187,1,0,0,0,2653, - 2655,5,46,0,0,2654,2656,3,124,62,0,2655,2654,1,0,0,0,2655,2656,1, - 0,0,0,2656,2657,1,0,0,0,2657,2659,5,92,0,0,2658,2660,3,296,148,0, - 2659,2658,1,0,0,0,2659,2660,1,0,0,0,2660,2661,1,0,0,0,2661,2662, - 3,190,95,0,2662,2663,5,36,0,0,2663,2665,3,562,281,0,2664,2666,3, - 192,96,0,2665,2664,1,0,0,0,2665,2666,1,0,0,0,2666,189,1,0,0,0,2667, - 2669,3,774,387,0,2668,2670,3,148,74,0,2669,2668,1,0,0,0,2669,2670, - 1,0,0,0,2670,2672,1,0,0,0,2671,2673,3,172,86,0,2672,2671,1,0,0,0, - 2672,2673,1,0,0,0,2673,2675,1,0,0,0,2674,2676,3,174,87,0,2675,2674, - 1,0,0,0,2675,2676,1,0,0,0,2676,2678,1,0,0,0,2677,2679,3,176,88,0, - 2678,2677,1,0,0,0,2678,2679,1,0,0,0,2679,2681,1,0,0,0,2680,2682, - 3,178,89,0,2681,2680,1,0,0,0,2681,2682,1,0,0,0,2682,191,1,0,0,0, - 2683,2687,5,105,0,0,2684,2688,5,174,0,0,2685,2686,5,269,0,0,2686, - 2688,5,174,0,0,2687,2684,1,0,0,0,2687,2685,1,0,0,0,2688,193,1,0, - 0,0,2689,2691,5,46,0,0,2690,2692,5,367,0,0,2691,2690,1,0,0,0,2691, - 2692,1,0,0,0,2692,2693,1,0,0,0,2693,2694,5,259,0,0,2694,2696,5,376, - 0,0,2695,2697,3,296,148,0,2696,2695,1,0,0,0,2696,2697,1,0,0,0,2697, - 2698,1,0,0,0,2698,2700,3,778,389,0,2699,2701,3,148,74,0,2700,2699, - 1,0,0,0,2700,2701,1,0,0,0,2701,2703,1,0,0,0,2702,2704,3,172,86,0, - 2703,2702,1,0,0,0,2703,2704,1,0,0,0,2704,2706,1,0,0,0,2705,2707, - 3,102,51,0,2706,2705,1,0,0,0,2706,2707,1,0,0,0,2707,2709,1,0,0,0, - 2708,2710,3,178,89,0,2709,2708,1,0,0,0,2709,2710,1,0,0,0,2710,2711, - 1,0,0,0,2711,2712,5,36,0,0,2712,2714,3,562,281,0,2713,2715,3,192, - 96,0,2714,2713,1,0,0,0,2714,2715,1,0,0,0,2715,195,1,0,0,0,2716,2717, - 5,305,0,0,2717,2718,5,259,0,0,2718,2720,5,376,0,0,2719,2721,5,109, - 0,0,2720,2719,1,0,0,0,2720,2721,1,0,0,0,2721,2722,1,0,0,0,2722,2724, - 3,780,390,0,2723,2725,3,192,96,0,2724,2723,1,0,0,0,2724,2725,1,0, - 0,0,2725,197,1,0,0,0,2726,2728,5,46,0,0,2727,2729,3,124,62,0,2728, - 2727,1,0,0,0,2728,2729,1,0,0,0,2729,2730,1,0,0,0,2730,2732,5,328, - 0,0,2731,2733,3,296,148,0,2732,2731,1,0,0,0,2732,2733,1,0,0,0,2733, - 2734,1,0,0,0,2734,2740,3,782,391,0,2735,2737,3,202,101,0,2736,2735, - 1,0,0,0,2737,2738,1,0,0,0,2738,2736,1,0,0,0,2738,2739,1,0,0,0,2739, - 2741,1,0,0,0,2740,2736,1,0,0,0,2740,2741,1,0,0,0,2741,199,1,0,0, - 0,2742,2743,5,138,0,0,2743,2745,5,328,0,0,2744,2746,3,424,212,0, - 2745,2744,1,0,0,0,2745,2746,1,0,0,0,2746,2747,1,0,0,0,2747,2749, - 3,782,391,0,2748,2750,3,202,101,0,2749,2748,1,0,0,0,2750,2751,1, - 0,0,0,2751,2749,1,0,0,0,2751,2752,1,0,0,0,2752,201,1,0,0,0,2753, - 2754,5,36,0,0,2754,2787,3,656,328,0,2755,2757,5,148,0,0,2756,2758, - 3,204,102,0,2757,2756,1,0,0,0,2757,2758,1,0,0,0,2758,2787,1,0,0, - 0,2759,2761,5,225,0,0,2760,2762,5,147,0,0,2761,2760,1,0,0,0,2761, - 2762,1,0,0,0,2762,2763,1,0,0,0,2763,2787,3,204,102,0,2764,2765,7, - 28,0,0,2765,2787,3,204,102,0,2766,2767,5,269,0,0,2767,2787,7,29, - 0,0,2768,2769,5,281,0,0,2769,2770,5,147,0,0,2770,2787,3,802,401, - 0,2771,2772,5,328,0,0,2772,2773,5,266,0,0,2773,2787,3,318,159,0, - 2774,2776,5,340,0,0,2775,2777,5,105,0,0,2776,2775,1,0,0,0,2776,2777, - 1,0,0,0,2777,2778,1,0,0,0,2778,2787,3,204,102,0,2779,2781,5,314, - 0,0,2780,2782,5,105,0,0,2781,2780,1,0,0,0,2781,2782,1,0,0,0,2782, - 2784,1,0,0,0,2783,2785,3,204,102,0,2784,2783,1,0,0,0,2784,2785,1, - 0,0,0,2785,2787,1,0,0,0,2786,2753,1,0,0,0,2786,2755,1,0,0,0,2786, - 2759,1,0,0,0,2786,2764,1,0,0,0,2786,2766,1,0,0,0,2786,2768,1,0,0, - 0,2786,2771,1,0,0,0,2786,2774,1,0,0,0,2786,2779,1,0,0,0,2787,203, - 1,0,0,0,2788,2790,7,30,0,0,2789,2788,1,0,0,0,2789,2790,1,0,0,0,2790, - 2791,1,0,0,0,2791,2794,5,576,0,0,2792,2794,3,814,407,0,2793,2789, - 1,0,0,0,2793,2792,1,0,0,0,2794,205,1,0,0,0,2795,2797,5,46,0,0,2796, - 2798,3,368,184,0,2797,2796,1,0,0,0,2797,2798,1,0,0,0,2798,2800,1, - 0,0,0,2799,2801,5,359,0,0,2800,2799,1,0,0,0,2800,2801,1,0,0,0,2801, - 2803,1,0,0,0,2802,2804,5,295,0,0,2803,2802,1,0,0,0,2803,2804,1,0, - 0,0,2804,2805,1,0,0,0,2805,2806,5,247,0,0,2806,2819,3,820,410,0, - 2807,2808,5,215,0,0,2808,2811,3,318,159,0,2809,2810,5,239,0,0,2810, - 2812,3,318,159,0,2811,2809,1,0,0,0,2811,2812,1,0,0,0,2812,2817,1, - 0,0,0,2813,2814,5,373,0,0,2814,2818,3,318,159,0,2815,2816,5,269, - 0,0,2816,2818,5,373,0,0,2817,2813,1,0,0,0,2817,2815,1,0,0,0,2817, - 2818,1,0,0,0,2818,2820,1,0,0,0,2819,2807,1,0,0,0,2819,2820,1,0,0, - 0,2820,207,1,0,0,0,2821,2822,5,46,0,0,2822,2825,3,178,89,0,2823, - 2824,5,282,0,0,2824,2826,3,816,408,0,2825,2823,1,0,0,0,2825,2826, - 1,0,0,0,2826,2827,1,0,0,0,2827,2828,5,255,0,0,2828,2830,3,810,405, - 0,2829,2831,3,102,51,0,2830,2829,1,0,0,0,2830,2831,1,0,0,0,2831, - 209,1,0,0,0,2832,2833,5,46,0,0,2833,2835,5,204,0,0,2834,2836,3,296, - 148,0,2835,2834,1,0,0,0,2835,2836,1,0,0,0,2836,2837,1,0,0,0,2837, - 2839,3,820,410,0,2838,2840,5,105,0,0,2839,2838,1,0,0,0,2839,2840, - 1,0,0,0,2840,2848,1,0,0,0,2841,2842,5,323,0,0,2842,2847,3,792,396, - 0,2843,2844,7,31,0,0,2844,2847,3,58,29,0,2845,2847,5,150,0,0,2846, - 2841,1,0,0,0,2846,2843,1,0,0,0,2846,2845,1,0,0,0,2847,2850,1,0,0, - 0,2848,2846,1,0,0,0,2848,2849,1,0,0,0,2849,211,1,0,0,0,2850,2848, - 1,0,0,0,2851,2852,5,138,0,0,2852,2853,5,204,0,0,2853,2854,3,820, - 410,0,2854,2859,5,369,0,0,2855,2856,5,94,0,0,2856,2858,3,58,29,0, - 2857,2855,1,0,0,0,2858,2861,1,0,0,0,2859,2857,1,0,0,0,2859,2860, - 1,0,0,0,2860,213,1,0,0,0,2861,2859,1,0,0,0,2862,2863,5,138,0,0,2863, - 2864,5,204,0,0,2864,2865,3,820,410,0,2865,2898,7,6,0,0,2866,2867, - 5,443,0,0,2867,2868,5,62,0,0,2868,2869,3,654,327,0,2869,2870,5,247, - 0,0,2870,2871,3,820,410,0,2871,2899,1,0,0,0,2872,2873,5,442,0,0, - 2873,2899,3,376,188,0,2874,2875,5,296,0,0,2875,2899,3,380,190,0, - 2876,2877,5,278,0,0,2877,2878,7,32,0,0,2878,2879,3,318,159,0,2879, - 2880,3,172,86,0,2880,2899,1,0,0,0,2881,2882,5,278,0,0,2882,2899, - 3,418,209,0,2883,2884,5,211,0,0,2884,2899,3,384,192,0,2885,2886, - 7,33,0,0,2886,2899,3,654,327,0,2887,2888,5,41,0,0,2888,2889,5,2, - 0,0,2889,2890,3,654,327,0,2890,2891,5,36,0,0,2891,2892,3,654,327, - 0,2892,2893,5,3,0,0,2893,2899,1,0,0,0,2894,2895,5,136,0,0,2895,2899, - 3,396,198,0,2896,2899,3,314,157,0,2897,2899,3,312,156,0,2898,2866, - 1,0,0,0,2898,2872,1,0,0,0,2898,2874,1,0,0,0,2898,2876,1,0,0,0,2898, - 2881,1,0,0,0,2898,2883,1,0,0,0,2898,2885,1,0,0,0,2898,2887,1,0,0, - 0,2898,2894,1,0,0,0,2898,2896,1,0,0,0,2898,2897,1,0,0,0,2899,215, - 1,0,0,0,2900,2901,5,46,0,0,2901,2902,5,63,0,0,2902,2903,5,174,0, - 0,2903,2904,5,381,0,0,2904,2910,3,820,410,0,2905,2907,3,218,109, - 0,2906,2905,1,0,0,0,2907,2908,1,0,0,0,2908,2906,1,0,0,0,2908,2909, - 1,0,0,0,2909,2911,1,0,0,0,2910,2906,1,0,0,0,2910,2911,1,0,0,0,2911, - 2913,1,0,0,0,2912,2914,3,222,111,0,2913,2912,1,0,0,0,2913,2914,1, - 0,0,0,2914,217,1,0,0,0,2915,2917,7,34,0,0,2916,2918,3,318,159,0, - 2917,2916,1,0,0,0,2917,2918,1,0,0,0,2918,2922,1,0,0,0,2919,2920, - 5,269,0,0,2920,2922,7,34,0,0,2921,2915,1,0,0,0,2921,2919,1,0,0,0, - 2922,219,1,0,0,0,2923,2924,5,138,0,0,2924,2925,5,63,0,0,2925,2926, - 5,174,0,0,2926,2927,5,381,0,0,2927,2941,3,820,410,0,2928,2930,3, - 218,109,0,2929,2928,1,0,0,0,2930,2931,1,0,0,0,2931,2929,1,0,0,0, - 2931,2932,1,0,0,0,2932,2934,1,0,0,0,2933,2929,1,0,0,0,2933,2934, - 1,0,0,0,2934,2935,1,0,0,0,2935,2942,3,224,112,0,2936,2938,3,218, - 109,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,2942,1,0,0,0,2941,2933,1,0,0,0,2941,2937,1,0,0, - 0,2942,221,1,0,0,0,2943,2944,5,280,0,0,2944,2945,5,2,0,0,2945,2950, - 3,228,114,0,2946,2947,5,6,0,0,2947,2949,3,228,114,0,2948,2946,1, - 0,0,0,2949,2952,1,0,0,0,2950,2948,1,0,0,0,2950,2951,1,0,0,0,2951, - 2953,1,0,0,0,2952,2950,1,0,0,0,2953,2954,5,3,0,0,2954,223,1,0,0, - 0,2955,2956,5,280,0,0,2956,2957,5,2,0,0,2957,2962,3,226,113,0,2958, - 2959,5,6,0,0,2959,2961,3,226,113,0,2960,2958,1,0,0,0,2961,2964,1, - 0,0,0,2962,2960,1,0,0,0,2962,2963,1,0,0,0,2963,2965,1,0,0,0,2964, - 2962,1,0,0,0,2965,2966,5,3,0,0,2966,225,1,0,0,0,2967,2968,7,35,0, - 0,2968,2969,3,228,114,0,2969,227,1,0,0,0,2970,2971,3,826,413,0,2971, - 2972,3,810,405,0,2972,229,1,0,0,0,2973,2974,5,46,0,0,2974,2976,5, - 331,0,0,2975,2977,3,296,148,0,2976,2975,1,0,0,0,2976,2977,1,0,0, - 0,2977,2978,1,0,0,0,2978,2981,3,820,410,0,2979,2980,5,360,0,0,2980, - 2982,3,810,405,0,2981,2979,1,0,0,0,2981,2982,1,0,0,0,2982,2984,1, - 0,0,0,2983,2985,3,232,116,0,2984,2983,1,0,0,0,2984,2985,1,0,0,0, - 2985,2986,1,0,0,0,2986,2987,5,63,0,0,2987,2988,5,174,0,0,2988,2989, - 5,381,0,0,2989,2991,3,820,410,0,2990,2992,3,222,111,0,2991,2990, - 1,0,0,0,2991,2992,1,0,0,0,2992,231,1,0,0,0,2993,2996,5,375,0,0,2994, - 2997,3,810,405,0,2995,2997,5,78,0,0,2996,2994,1,0,0,0,2996,2995, - 1,0,0,0,2997,233,1,0,0,0,2998,2999,5,138,0,0,2999,3000,5,331,0,0, - 3000,3006,3,820,410,0,3001,3007,3,224,112,0,3002,3004,3,232,116, - 0,3003,3005,3,224,112,0,3004,3003,1,0,0,0,3004,3005,1,0,0,0,3005, - 3007,1,0,0,0,3006,3001,1,0,0,0,3006,3002,1,0,0,0,3007,235,1,0,0, - 0,3008,3009,5,46,0,0,3009,3010,5,63,0,0,3010,3012,5,92,0,0,3011, - 3013,3,296,148,0,3012,3011,1,0,0,0,3012,3013,1,0,0,0,3013,3014,1, - 0,0,0,3014,3015,3,774,387,0,3015,3017,5,2,0,0,3016,3018,3,128,64, - 0,3017,3016,1,0,0,0,3017,3018,1,0,0,0,3018,3019,1,0,0,0,3019,3021, - 5,3,0,0,3020,3022,3,166,83,0,3021,3020,1,0,0,0,3021,3022,1,0,0,0, - 3022,3023,1,0,0,0,3023,3024,5,331,0,0,3024,3026,3,820,410,0,3025, - 3027,3,222,111,0,3026,3025,1,0,0,0,3026,3027,1,0,0,0,3027,3048,1, - 0,0,0,3028,3029,5,46,0,0,3029,3030,5,63,0,0,3030,3032,5,92,0,0,3031, - 3033,3,296,148,0,3032,3031,1,0,0,0,3032,3033,1,0,0,0,3033,3034,1, - 0,0,0,3034,3035,3,774,387,0,3035,3036,5,285,0,0,3036,3037,5,275, - 0,0,3037,3039,3,776,388,0,3038,3040,3,126,63,0,3039,3038,1,0,0,0, - 3039,3040,1,0,0,0,3040,3041,1,0,0,0,3041,3042,3,106,53,0,3042,3043, - 5,331,0,0,3043,3045,3,820,410,0,3044,3046,3,222,111,0,3045,3044, - 1,0,0,0,3045,3046,1,0,0,0,3046,3048,1,0,0,0,3047,3008,1,0,0,0,3047, - 3028,1,0,0,0,3048,237,1,0,0,0,3049,3050,5,444,0,0,3050,3051,5,63, - 0,0,3051,3052,5,323,0,0,3052,3062,3,792,396,0,3053,3054,5,74,0,0, - 3054,3057,5,94,0,0,3055,3057,5,59,0,0,3056,3053,1,0,0,0,3056,3055, - 1,0,0,0,3057,3058,1,0,0,0,3058,3059,5,2,0,0,3059,3060,3,630,315, - 0,3060,3061,5,3,0,0,3061,3063,1,0,0,0,3062,3056,1,0,0,0,3062,3063, - 1,0,0,0,3063,3064,1,0,0,0,3064,3065,5,64,0,0,3065,3066,5,331,0,0, - 3066,3067,3,820,410,0,3067,3068,5,71,0,0,3068,3070,3,820,410,0,3069, - 3071,3,222,111,0,3070,3069,1,0,0,0,3070,3071,1,0,0,0,3071,239,1, - 0,0,0,3072,3073,5,46,0,0,3073,3074,5,99,0,0,3074,3076,5,257,0,0, - 3075,3077,3,296,148,0,3076,3075,1,0,0,0,3076,3077,1,0,0,0,3077,3078, - 1,0,0,0,3078,3081,5,62,0,0,3079,3082,3,816,408,0,3080,3082,5,99, - 0,0,3081,3079,1,0,0,0,3081,3080,1,0,0,0,3082,3083,1,0,0,0,3083,3084, - 5,331,0,0,3084,3086,3,820,410,0,3085,3087,3,222,111,0,3086,3085, - 1,0,0,0,3086,3087,1,0,0,0,3087,241,1,0,0,0,3088,3089,5,138,0,0,3089, - 3090,5,99,0,0,3090,3091,5,257,0,0,3091,3094,5,62,0,0,3092,3095,3, - 816,408,0,3093,3095,5,99,0,0,3094,3092,1,0,0,0,3094,3093,1,0,0,0, - 3095,3096,1,0,0,0,3096,3097,5,331,0,0,3097,3098,3,820,410,0,3098, - 3099,3,224,112,0,3099,243,1,0,0,0,3100,3101,5,46,0,0,3101,3102,5, - 445,0,0,3102,3103,3,820,410,0,3103,3104,5,80,0,0,3104,3111,3,782, - 391,0,3105,3109,5,36,0,0,3106,3110,5,541,0,0,3107,3110,5,542,0,0, - 3108,3110,3,828,414,0,3109,3106,1,0,0,0,3109,3107,1,0,0,0,3109,3108, - 1,0,0,0,3110,3112,1,0,0,0,3111,3105,1,0,0,0,3111,3112,1,0,0,0,3112, - 3115,1,0,0,0,3113,3114,5,62,0,0,3114,3116,7,36,0,0,3115,3113,1,0, - 0,0,3115,3116,1,0,0,0,3116,3119,1,0,0,0,3117,3118,5,94,0,0,3118, - 3120,3,818,409,0,3119,3117,1,0,0,0,3119,3120,1,0,0,0,3120,3122,1, - 0,0,0,3121,3123,3,252,126,0,3122,3121,1,0,0,0,3122,3123,1,0,0,0, - 3123,3125,1,0,0,0,3124,3126,3,254,127,0,3125,3124,1,0,0,0,3125,3126, - 1,0,0,0,3126,245,1,0,0,0,3127,3128,5,138,0,0,3128,3129,5,445,0,0, - 3129,3130,3,820,410,0,3130,3131,5,80,0,0,3131,3134,3,782,391,0,3132, - 3133,5,94,0,0,3133,3135,3,818,409,0,3134,3132,1,0,0,0,3134,3135, - 1,0,0,0,3135,3137,1,0,0,0,3136,3138,3,252,126,0,3137,3136,1,0,0, - 0,3137,3138,1,0,0,0,3138,3140,1,0,0,0,3139,3141,3,254,127,0,3140, - 3139,1,0,0,0,3140,3141,1,0,0,0,3141,247,1,0,0,0,3142,3143,5,138, - 0,0,3143,3144,5,296,0,0,3144,3146,3,798,399,0,3145,3147,3,370,185, - 0,3146,3145,1,0,0,0,3146,3147,1,0,0,0,3147,3174,1,0,0,0,3148,3152, - 3,250,125,0,3149,3151,3,250,125,0,3150,3149,1,0,0,0,3151,3154,1, - 0,0,0,3152,3150,1,0,0,0,3152,3153,1,0,0,0,3153,3156,1,0,0,0,3154, - 3152,1,0,0,0,3155,3157,5,315,0,0,3156,3155,1,0,0,0,3156,3157,1,0, - 0,0,3157,3175,1,0,0,0,3158,3159,5,309,0,0,3159,3160,5,94,0,0,3160, - 3175,3,800,400,0,3161,3162,5,282,0,0,3162,3163,5,94,0,0,3163,3175, - 3,816,408,0,3164,3165,5,333,0,0,3165,3166,5,323,0,0,3166,3175,3, - 32,16,0,3167,3169,5,269,0,0,3168,3167,1,0,0,0,3168,3169,1,0,0,0, - 3169,3170,1,0,0,0,3170,3171,5,462,0,0,3171,3172,5,80,0,0,3172,3173, - 5,204,0,0,3173,3175,3,820,410,0,3174,3148,1,0,0,0,3174,3158,1,0, - 0,0,3174,3161,1,0,0,0,3174,3164,1,0,0,0,3174,3168,1,0,0,0,3175,249, - 1,0,0,0,3176,3178,5,205,0,0,3177,3176,1,0,0,0,3177,3178,1,0,0,0, - 3178,3179,1,0,0,0,3179,3180,5,327,0,0,3180,3187,5,243,0,0,3181,3183, - 5,205,0,0,3182,3181,1,0,0,0,3182,3183,1,0,0,0,3183,3184,1,0,0,0, - 3184,3185,5,327,0,0,3185,3187,5,181,0,0,3186,3177,1,0,0,0,3186,3182, - 1,0,0,0,3187,3206,1,0,0,0,3188,3189,5,333,0,0,3189,3190,3,820,410, - 0,3190,3193,7,37,0,0,3191,3194,3,820,410,0,3192,3194,5,53,0,0,3193, - 3191,1,0,0,0,3193,3192,1,0,0,0,3194,3206,1,0,0,0,3195,3196,5,333, - 0,0,3196,3197,3,820,410,0,3197,3198,5,64,0,0,3198,3199,5,434,0,0, - 3199,3206,1,0,0,0,3200,3203,5,313,0,0,3201,3204,3,820,410,0,3202, - 3204,5,30,0,0,3203,3201,1,0,0,0,3203,3202,1,0,0,0,3204,3206,1,0, - 0,0,3205,3186,1,0,0,0,3205,3188,1,0,0,0,3205,3195,1,0,0,0,3205,3200, - 1,0,0,0,3206,251,1,0,0,0,3207,3208,5,100,0,0,3208,3209,5,2,0,0,3209, - 3210,3,676,338,0,3210,3211,5,3,0,0,3211,253,1,0,0,0,3212,3213,5, - 105,0,0,3213,3214,5,42,0,0,3214,3215,5,2,0,0,3215,3216,3,676,338, - 0,3216,3217,5,3,0,0,3217,255,1,0,0,0,3218,3219,5,46,0,0,3219,3220, - 5,131,0,0,3220,3221,5,446,0,0,3221,3222,3,820,410,0,3222,3223,5, - 360,0,0,3223,3224,7,38,0,0,3224,3225,5,215,0,0,3225,3226,3,318,159, - 0,3226,257,1,0,0,0,3227,3229,5,46,0,0,3228,3230,3,368,184,0,3229, - 3228,1,0,0,0,3229,3230,1,0,0,0,3230,3231,1,0,0,0,3231,3232,5,357, - 0,0,3232,3233,3,820,410,0,3233,3234,3,260,130,0,3234,3235,3,262, - 131,0,3235,3236,5,80,0,0,3236,3248,3,776,388,0,3237,3244,5,447,0, - 0,3238,3239,7,39,0,0,3239,3241,7,40,0,0,3240,3242,5,36,0,0,3241, - 3240,1,0,0,0,3241,3242,1,0,0,0,3242,3243,1,0,0,0,3243,3245,3,820, - 410,0,3244,3238,1,0,0,0,3245,3246,1,0,0,0,3246,3244,1,0,0,0,3246, - 3247,1,0,0,0,3247,3249,1,0,0,0,3248,3237,1,0,0,0,3248,3249,1,0,0, - 0,3249,3255,1,0,0,0,3250,3252,5,62,0,0,3251,3253,5,192,0,0,3252, - 3251,1,0,0,0,3252,3253,1,0,0,0,3253,3254,1,0,0,0,3254,3256,7,41, - 0,0,3255,3250,1,0,0,0,3255,3256,1,0,0,0,3256,3258,1,0,0,0,3257,3259, - 3,266,133,0,3258,3257,1,0,0,0,3258,3259,1,0,0,0,3259,3260,1,0,0, - 0,3260,3261,5,202,0,0,3261,3262,3,268,134,0,3262,3263,5,2,0,0,3263, - 3264,3,270,135,0,3264,3265,5,3,0,0,3265,3306,1,0,0,0,3266,3268,5, - 46,0,0,3267,3269,3,368,184,0,3268,3267,1,0,0,0,3268,3269,1,0,0,0, - 3269,3271,1,0,0,0,3270,3272,5,45,0,0,3271,3270,1,0,0,0,3271,3272, - 1,0,0,0,3272,3273,1,0,0,0,3273,3274,5,357,0,0,3274,3275,3,820,410, - 0,3275,3276,3,260,130,0,3276,3277,3,262,131,0,3277,3278,5,80,0,0, - 3278,3281,3,776,388,0,3279,3280,5,64,0,0,3280,3282,3,782,391,0,3281, - 3279,1,0,0,0,3281,3282,1,0,0,0,3282,3286,1,0,0,0,3283,3285,3,274, - 137,0,3284,3283,1,0,0,0,3285,3288,1,0,0,0,3286,3284,1,0,0,0,3286, - 3287,1,0,0,0,3287,3294,1,0,0,0,3288,3286,1,0,0,0,3289,3291,5,62, - 0,0,3290,3292,5,192,0,0,3291,3290,1,0,0,0,3291,3292,1,0,0,0,3292, - 3293,1,0,0,0,3293,3295,7,41,0,0,3294,3289,1,0,0,0,3294,3295,1,0, - 0,0,3295,3297,1,0,0,0,3296,3298,3,266,133,0,3297,3296,1,0,0,0,3297, - 3298,1,0,0,0,3298,3299,1,0,0,0,3299,3300,5,202,0,0,3300,3301,3,268, - 134,0,3301,3302,5,2,0,0,3302,3303,3,270,135,0,3303,3304,5,3,0,0, - 3304,3306,1,0,0,0,3305,3227,1,0,0,0,3305,3266,1,0,0,0,3306,259,1, - 0,0,0,3307,3312,5,145,0,0,3308,3312,5,135,0,0,3309,3310,5,242,0, - 0,3310,3312,5,275,0,0,3311,3307,1,0,0,0,3311,3308,1,0,0,0,3311,3309, - 1,0,0,0,3312,261,1,0,0,0,3313,3318,3,264,132,0,3314,3315,5,82,0, - 0,3315,3317,3,264,132,0,3316,3314,1,0,0,0,3317,3320,1,0,0,0,3318, - 3316,1,0,0,0,3318,3319,1,0,0,0,3319,263,1,0,0,0,3320,3318,1,0,0, - 0,3321,3330,5,241,0,0,3322,3330,5,182,0,0,3323,3326,5,369,0,0,3324, - 3325,5,275,0,0,3325,3327,3,150,75,0,3326,3324,1,0,0,0,3326,3327, - 1,0,0,0,3327,3330,1,0,0,0,3328,3330,5,358,0,0,3329,3321,1,0,0,0, - 3329,3322,1,0,0,0,3329,3323,1,0,0,0,3329,3328,1,0,0,0,3330,265,1, - 0,0,0,3331,3332,5,102,0,0,3332,3333,5,2,0,0,3333,3334,3,676,338, - 0,3334,3335,5,3,0,0,3335,267,1,0,0,0,3336,3337,5,211,0,0,3337,3341, - 3,808,404,0,3338,3339,5,296,0,0,3339,3341,3,798,399,0,3340,3336, - 1,0,0,0,3340,3338,1,0,0,0,3341,269,1,0,0,0,3342,3345,3,272,136,0, - 3343,3345,1,0,0,0,3344,3342,1,0,0,0,3344,3343,1,0,0,0,3345,3350, - 1,0,0,0,3346,3347,5,6,0,0,3347,3349,3,272,136,0,3348,3346,1,0,0, - 0,3349,3352,1,0,0,0,3350,3348,1,0,0,0,3350,3351,1,0,0,0,3351,271, - 1,0,0,0,3352,3350,1,0,0,0,3353,3358,5,574,0,0,3354,3358,5,576,0, - 0,3355,3358,3,810,405,0,3356,3358,3,826,413,0,3357,3353,1,0,0,0, - 3357,3354,1,0,0,0,3357,3355,1,0,0,0,3357,3356,1,0,0,0,3358,273,1, - 0,0,0,3359,3361,5,77,0,0,3360,3359,1,0,0,0,3360,3361,1,0,0,0,3361, - 3362,1,0,0,0,3362,3370,5,54,0,0,3363,3364,5,69,0,0,3364,3370,7,9, - 0,0,3365,3366,5,77,0,0,3366,3370,5,371,0,0,3367,3368,5,269,0,0,3368, - 3370,5,228,0,0,3369,3360,1,0,0,0,3369,3363,1,0,0,0,3369,3365,1,0, - 0,0,3369,3367,1,0,0,0,3370,275,1,0,0,0,3371,3372,5,46,0,0,3372,3373, - 5,198,0,0,3373,3374,5,357,0,0,3374,3375,3,820,410,0,3375,3376,5, - 80,0,0,3376,3386,3,826,413,0,3377,3378,5,102,0,0,3378,3383,3,278, - 139,0,3379,3380,5,33,0,0,3380,3382,3,278,139,0,3381,3379,1,0,0,0, - 3382,3385,1,0,0,0,3383,3381,1,0,0,0,3383,3384,1,0,0,0,3384,3387, - 1,0,0,0,3385,3383,1,0,0,0,3386,3377,1,0,0,0,3386,3387,1,0,0,0,3387, - 3388,1,0,0,0,3388,3389,5,202,0,0,3389,3390,3,268,134,0,3390,3391, - 5,2,0,0,3391,3392,5,3,0,0,3392,277,1,0,0,0,3393,3394,3,820,410,0, - 3394,3395,5,68,0,0,3395,3396,5,2,0,0,3396,3400,3,810,405,0,3397, - 3399,3,464,232,0,3398,3397,1,0,0,0,3399,3402,1,0,0,0,3400,3398,1, - 0,0,0,3400,3401,1,0,0,0,3401,3403,1,0,0,0,3402,3400,1,0,0,0,3403, - 3404,5,3,0,0,3404,279,1,0,0,0,3405,3406,5,138,0,0,3406,3407,5,198, - 0,0,3407,3408,5,357,0,0,3408,3414,3,820,410,0,3409,3411,5,193,0, - 0,3410,3412,7,14,0,0,3411,3410,1,0,0,0,3411,3412,1,0,0,0,3412,3415, - 1,0,0,0,3413,3415,5,186,0,0,3414,3409,1,0,0,0,3414,3413,1,0,0,0, - 3415,281,1,0,0,0,3416,3417,5,46,0,0,3417,3418,5,140,0,0,3418,3419, - 3,318,159,0,3419,3420,5,42,0,0,3420,3421,5,2,0,0,3421,3422,3,676, - 338,0,3422,3426,5,3,0,0,3423,3425,3,274,137,0,3424,3423,1,0,0,0, - 3425,3428,1,0,0,0,3426,3424,1,0,0,0,3426,3427,1,0,0,0,3427,283,1, - 0,0,0,3428,3426,1,0,0,0,3429,3431,5,46,0,0,3430,3432,3,368,184,0, - 3431,3430,1,0,0,0,3431,3432,1,0,0,0,3432,3433,1,0,0,0,3433,3434, - 5,136,0,0,3434,3449,3,808,404,0,3435,3436,3,394,197,0,3436,3437, - 3,286,143,0,3437,3450,1,0,0,0,3438,3439,5,2,0,0,3439,3444,3,292, - 146,0,3440,3441,5,6,0,0,3441,3443,3,292,146,0,3442,3440,1,0,0,0, - 3443,3446,1,0,0,0,3444,3442,1,0,0,0,3444,3445,1,0,0,0,3445,3447, - 1,0,0,0,3446,3444,1,0,0,0,3447,3448,5,3,0,0,3448,3450,1,0,0,0,3449, - 3435,1,0,0,0,3449,3438,1,0,0,0,3450,3508,1,0,0,0,3451,3452,5,46, - 0,0,3452,3453,5,278,0,0,3453,3454,3,416,208,0,3454,3455,3,286,143, - 0,3455,3508,1,0,0,0,3456,3457,5,46,0,0,3457,3458,5,360,0,0,3458, - 3459,3,318,159,0,3459,3477,5,36,0,0,3460,3462,5,2,0,0,3461,3463, - 3,644,322,0,3462,3461,1,0,0,0,3462,3463,1,0,0,0,3463,3464,1,0,0, - 0,3464,3478,5,3,0,0,3465,3466,5,196,0,0,3466,3474,5,2,0,0,3467,3471, - 3,810,405,0,3468,3470,3,464,232,0,3469,3468,1,0,0,0,3470,3473,1, - 0,0,0,3471,3469,1,0,0,0,3471,3472,1,0,0,0,3472,3475,1,0,0,0,3473, - 3471,1,0,0,0,3474,3467,1,0,0,0,3474,3475,1,0,0,0,3475,3476,1,0,0, - 0,3476,3478,5,3,0,0,3477,3460,1,0,0,0,3477,3465,1,0,0,0,3478,3508, - 1,0,0,0,3479,3480,5,46,0,0,3480,3481,5,360,0,0,3481,3487,3,318,159, - 0,3482,3483,5,36,0,0,3483,3485,5,299,0,0,3484,3482,1,0,0,0,3484, - 3485,1,0,0,0,3485,3486,1,0,0,0,3486,3488,3,286,143,0,3487,3484,1, - 0,0,0,3487,3488,1,0,0,0,3488,3508,1,0,0,0,3489,3490,5,46,0,0,3490, - 3491,5,355,0,0,3491,3492,5,325,0,0,3492,3493,7,42,0,0,3493,3494, - 3,318,159,0,3494,3495,3,286,143,0,3495,3508,1,0,0,0,3496,3497,5, - 46,0,0,3497,3499,5,108,0,0,3498,3500,3,296,148,0,3499,3498,1,0,0, - 0,3499,3500,1,0,0,0,3500,3501,1,0,0,0,3501,3505,3,318,159,0,3502, - 3506,3,286,143,0,3503,3504,5,64,0,0,3504,3506,3,318,159,0,3505,3502, - 1,0,0,0,3505,3503,1,0,0,0,3506,3508,1,0,0,0,3507,3429,1,0,0,0,3507, - 3451,1,0,0,0,3507,3456,1,0,0,0,3507,3479,1,0,0,0,3507,3489,1,0,0, - 0,3507,3496,1,0,0,0,3508,285,1,0,0,0,3509,3510,5,2,0,0,3510,3515, - 3,288,144,0,3511,3512,5,6,0,0,3512,3514,3,288,144,0,3513,3511,1, - 0,0,0,3514,3517,1,0,0,0,3515,3513,1,0,0,0,3515,3516,1,0,0,0,3516, - 3518,1,0,0,0,3517,3515,1,0,0,0,3518,3519,5,3,0,0,3519,287,1,0,0, - 0,3520,3523,3,826,413,0,3521,3522,5,10,0,0,3522,3524,3,290,145,0, - 3523,3521,1,0,0,0,3523,3524,1,0,0,0,3524,289,1,0,0,0,3525,3532,3, - 390,195,0,3526,3532,3,836,418,0,3527,3532,3,728,364,0,3528,3532, - 3,204,102,0,3529,3532,3,810,405,0,3530,3532,5,407,0,0,3531,3525, - 1,0,0,0,3531,3526,1,0,0,0,3531,3527,1,0,0,0,3531,3528,1,0,0,0,3531, - 3529,1,0,0,0,3531,3530,1,0,0,0,3532,291,1,0,0,0,3533,3534,3,828, - 414,0,3534,3535,5,10,0,0,3535,3536,3,290,145,0,3536,293,1,0,0,0, - 3537,3538,5,138,0,0,3538,3539,5,360,0,0,3539,3540,3,318,159,0,3540, - 3541,5,133,0,0,3541,3543,5,450,0,0,3542,3544,3,296,148,0,3543,3542, - 1,0,0,0,3543,3544,1,0,0,0,3544,3545,1,0,0,0,3545,3548,3,810,405, - 0,3546,3547,7,43,0,0,3547,3549,3,810,405,0,3548,3546,1,0,0,0,3548, - 3549,1,0,0,0,3549,3560,1,0,0,0,3550,3551,5,138,0,0,3551,3552,5,360, - 0,0,3552,3553,3,318,159,0,3553,3554,5,309,0,0,3554,3555,5,450,0, - 0,3555,3556,3,810,405,0,3556,3557,5,94,0,0,3557,3558,3,810,405,0, - 3558,3560,1,0,0,0,3559,3537,1,0,0,0,3559,3550,1,0,0,0,3560,295,1, - 0,0,0,3561,3562,5,220,0,0,3562,3563,5,77,0,0,3563,3564,5,396,0,0, - 3564,297,1,0,0,0,3565,3566,5,46,0,0,3566,3567,5,278,0,0,3567,3568, - 5,156,0,0,3568,3570,3,318,159,0,3569,3571,5,53,0,0,3570,3569,1,0, - 0,0,3570,3571,1,0,0,0,3571,3572,1,0,0,0,3572,3573,5,62,0,0,3573, - 3574,5,360,0,0,3574,3575,3,654,327,0,3575,3578,3,172,86,0,3576,3577, - 5,206,0,0,3577,3579,3,318,159,0,3578,3576,1,0,0,0,3578,3579,1,0, - 0,0,3579,3580,1,0,0,0,3580,3581,5,36,0,0,3581,3586,3,300,150,0,3582, - 3583,5,6,0,0,3583,3585,3,300,150,0,3584,3582,1,0,0,0,3585,3588,1, - 0,0,0,3586,3584,1,0,0,0,3586,3587,1,0,0,0,3587,299,1,0,0,0,3588, - 3586,1,0,0,0,3589,3590,5,278,0,0,3590,3591,5,574,0,0,3591,3593,3, - 416,208,0,3592,3594,3,414,207,0,3593,3592,1,0,0,0,3593,3594,1,0, - 0,0,3594,3602,1,0,0,0,3595,3600,5,62,0,0,3596,3601,5,325,0,0,3597, - 3598,5,83,0,0,3598,3599,5,147,0,0,3599,3601,3,318,159,0,3600,3596, - 1,0,0,0,3600,3597,1,0,0,0,3601,3603,1,0,0,0,3602,3595,1,0,0,0,3602, - 3603,1,0,0,0,3603,3605,1,0,0,0,3604,3606,5,302,0,0,3605,3604,1,0, - 0,0,3605,3606,1,0,0,0,3606,3616,1,0,0,0,3607,3608,5,211,0,0,3608, - 3610,5,574,0,0,3609,3611,3,530,265,0,3610,3609,1,0,0,0,3610,3611, - 1,0,0,0,3611,3612,1,0,0,0,3612,3616,3,384,192,0,3613,3614,5,345, - 0,0,3614,3616,3,654,327,0,3615,3589,1,0,0,0,3615,3607,1,0,0,0,3615, - 3613,1,0,0,0,3616,301,1,0,0,0,3617,3618,5,46,0,0,3618,3619,5,278, - 0,0,3619,3620,5,206,0,0,3620,3621,3,318,159,0,3621,3622,3,172,86, - 0,3622,303,1,0,0,0,3623,3624,5,138,0,0,3624,3625,5,278,0,0,3625, - 3626,5,206,0,0,3626,3627,3,318,159,0,3627,3646,3,172,86,0,3628,3629, - 5,133,0,0,3629,3634,3,300,150,0,3630,3631,5,6,0,0,3631,3633,3,300, - 150,0,3632,3630,1,0,0,0,3633,3636,1,0,0,0,3634,3632,1,0,0,0,3634, - 3635,1,0,0,0,3635,3647,1,0,0,0,3636,3634,1,0,0,0,3637,3638,5,191, - 0,0,3638,3643,3,306,153,0,3639,3640,5,6,0,0,3640,3642,3,306,153, - 0,3641,3639,1,0,0,0,3642,3645,1,0,0,0,3643,3641,1,0,0,0,3643,3644, - 1,0,0,0,3644,3647,1,0,0,0,3645,3643,1,0,0,0,3646,3628,1,0,0,0,3646, - 3637,1,0,0,0,3647,305,1,0,0,0,3648,3649,7,44,0,0,3649,3650,5,574, - 0,0,3650,3651,3,530,265,0,3651,307,1,0,0,0,3652,3653,5,301,0,0,3653, - 3654,5,281,0,0,3654,3655,5,147,0,0,3655,3656,3,818,409,0,3656,3657, - 5,94,0,0,3657,3658,3,816,408,0,3658,309,1,0,0,0,3659,3682,5,191, - 0,0,3660,3683,5,328,0,0,3661,3683,5,226,0,0,3662,3683,5,108,0,0, - 3663,3683,5,168,0,0,3664,3683,5,342,0,0,3665,3683,5,452,0,0,3666, - 3683,5,331,0,0,3667,3668,5,131,0,0,3668,3683,5,446,0,0,3669,3670, - 5,198,0,0,3670,3683,5,357,0,0,3671,3683,5,204,0,0,3672,3674,5,295, - 0,0,3673,3672,1,0,0,0,3673,3674,1,0,0,0,3674,3675,1,0,0,0,3675,3683, - 5,247,0,0,3676,3677,5,63,0,0,3677,3678,5,174,0,0,3678,3683,5,381, - 0,0,3679,3680,5,355,0,0,3680,3681,5,325,0,0,3681,3683,7,42,0,0,3682, - 3660,1,0,0,0,3682,3661,1,0,0,0,3682,3662,1,0,0,0,3682,3663,1,0,0, - 0,3682,3664,1,0,0,0,3682,3665,1,0,0,0,3682,3666,1,0,0,0,3682,3667, - 1,0,0,0,3682,3669,1,0,0,0,3682,3671,1,0,0,0,3682,3673,1,0,0,0,3682, - 3676,1,0,0,0,3682,3679,1,0,0,0,3683,3685,1,0,0,0,3684,3686,3,424, - 212,0,3685,3684,1,0,0,0,3685,3686,1,0,0,0,3686,3687,1,0,0,0,3687, - 3689,3,786,393,0,3688,3690,3,96,48,0,3689,3688,1,0,0,0,3689,3690, - 1,0,0,0,3690,3867,1,0,0,0,3691,3693,5,191,0,0,3692,3694,5,259,0, - 0,3693,3692,1,0,0,0,3693,3694,1,0,0,0,3694,3695,1,0,0,0,3695,3697, - 5,376,0,0,3696,3698,3,424,212,0,3697,3696,1,0,0,0,3697,3698,1,0, - 0,0,3698,3699,1,0,0,0,3699,3704,3,780,390,0,3700,3701,5,6,0,0,3701, - 3703,3,780,390,0,3702,3700,1,0,0,0,3703,3706,1,0,0,0,3704,3702,1, - 0,0,0,3704,3705,1,0,0,0,3705,3708,1,0,0,0,3706,3704,1,0,0,0,3707, - 3709,3,96,48,0,3708,3707,1,0,0,0,3708,3709,1,0,0,0,3709,3867,1,0, - 0,0,3710,3712,5,191,0,0,3711,3713,5,63,0,0,3712,3711,1,0,0,0,3712, - 3713,1,0,0,0,3713,3714,1,0,0,0,3714,3716,5,92,0,0,3715,3717,3,424, - 212,0,3716,3715,1,0,0,0,3716,3717,1,0,0,0,3717,3718,1,0,0,0,3718, - 3720,3,764,382,0,3719,3721,3,96,48,0,3720,3719,1,0,0,0,3720,3721, - 1,0,0,0,3721,3867,1,0,0,0,3722,3723,5,191,0,0,3723,3725,5,323,0, - 0,3724,3726,3,424,212,0,3725,3724,1,0,0,0,3725,3726,1,0,0,0,3726, - 3727,1,0,0,0,3727,3729,3,766,383,0,3728,3730,3,96,48,0,3729,3728, - 1,0,0,0,3729,3730,1,0,0,0,3730,3867,1,0,0,0,3731,3732,5,191,0,0, - 3732,3734,7,45,0,0,3733,3735,3,424,212,0,3734,3733,1,0,0,0,3734, - 3735,1,0,0,0,3735,3736,1,0,0,0,3736,3737,3,820,410,0,3737,3738,5, - 80,0,0,3738,3740,3,318,159,0,3739,3741,3,96,48,0,3740,3739,1,0,0, - 0,3740,3741,1,0,0,0,3741,3867,1,0,0,0,3742,3743,5,191,0,0,3743,3745, - 7,33,0,0,3744,3746,3,424,212,0,3745,3744,1,0,0,0,3745,3746,1,0,0, - 0,3746,3747,1,0,0,0,3747,3752,3,654,327,0,3748,3749,5,6,0,0,3749, - 3751,3,654,327,0,3750,3748,1,0,0,0,3751,3754,1,0,0,0,3752,3750,1, - 0,0,0,3752,3753,1,0,0,0,3753,3756,1,0,0,0,3754,3752,1,0,0,0,3755, - 3757,3,96,48,0,3756,3755,1,0,0,0,3756,3757,1,0,0,0,3757,3867,1,0, - 0,0,3758,3759,5,191,0,0,3759,3760,5,226,0,0,3760,3762,5,109,0,0, - 3761,3763,3,424,212,0,3762,3761,1,0,0,0,3762,3763,1,0,0,0,3763,3764, - 1,0,0,0,3764,3766,3,316,158,0,3765,3767,3,96,48,0,3766,3765,1,0, - 0,0,3766,3767,1,0,0,0,3767,3867,1,0,0,0,3768,3769,5,191,0,0,3769, - 3771,5,41,0,0,3770,3772,3,424,212,0,3771,3770,1,0,0,0,3771,3772, - 1,0,0,0,3772,3773,1,0,0,0,3773,3774,5,2,0,0,3774,3775,3,654,327, - 0,3775,3776,5,36,0,0,3776,3777,3,654,327,0,3777,3779,5,3,0,0,3778, - 3780,3,96,48,0,3779,3778,1,0,0,0,3779,3780,1,0,0,0,3780,3867,1,0, - 0,0,3781,3782,5,191,0,0,3782,3783,5,278,0,0,3783,3785,7,32,0,0,3784, - 3786,3,424,212,0,3785,3784,1,0,0,0,3785,3786,1,0,0,0,3786,3787,1, - 0,0,0,3787,3788,3,318,159,0,3788,3790,3,172,86,0,3789,3791,3,96, - 48,0,3790,3789,1,0,0,0,3790,3791,1,0,0,0,3791,3867,1,0,0,0,3792, - 3793,5,191,0,0,3793,3794,5,281,0,0,3794,3795,5,147,0,0,3795,3797, - 3,818,409,0,3796,3798,3,96,48,0,3797,3796,1,0,0,0,3797,3798,1,0, - 0,0,3798,3867,1,0,0,0,3799,3800,5,191,0,0,3800,3802,5,451,0,0,3801, - 3803,3,424,212,0,3802,3801,1,0,0,0,3802,3803,1,0,0,0,3803,3804,1, - 0,0,0,3804,3806,3,820,410,0,3805,3807,3,96,48,0,3806,3805,1,0,0, - 0,3806,3807,1,0,0,0,3807,3867,1,0,0,0,3808,3809,5,191,0,0,3809,3811, - 5,351,0,0,3810,3812,3,424,212,0,3811,3810,1,0,0,0,3811,3812,1,0, - 0,0,3812,3813,1,0,0,0,3813,3867,3,772,386,0,3814,3815,5,191,0,0, - 3815,3817,5,443,0,0,3816,3818,3,424,212,0,3817,3816,1,0,0,0,3817, - 3818,1,0,0,0,3818,3819,1,0,0,0,3819,3820,5,62,0,0,3820,3821,3,654, - 327,0,3821,3822,5,247,0,0,3822,3824,3,820,410,0,3823,3825,3,96,48, - 0,3824,3823,1,0,0,0,3824,3825,1,0,0,0,3825,3867,1,0,0,0,3826,3827, - 5,191,0,0,3827,3829,7,46,0,0,3828,3830,3,424,212,0,3829,3828,1,0, - 0,0,3829,3830,1,0,0,0,3830,3831,1,0,0,0,3831,3867,3,818,409,0,3832, - 3833,5,191,0,0,3833,3834,5,99,0,0,3834,3836,5,257,0,0,3835,3837, - 3,424,212,0,3836,3835,1,0,0,0,3836,3837,1,0,0,0,3837,3838,1,0,0, - 0,3838,3841,5,62,0,0,3839,3842,3,816,408,0,3840,3842,5,99,0,0,3841, - 3839,1,0,0,0,3841,3840,1,0,0,0,3842,3843,1,0,0,0,3843,3844,5,331, - 0,0,3844,3867,3,820,410,0,3845,3846,5,191,0,0,3846,3848,5,175,0, - 0,3847,3849,3,424,212,0,3848,3847,1,0,0,0,3848,3849,1,0,0,0,3849, - 3850,1,0,0,0,3850,3864,3,790,395,0,3851,3853,5,105,0,0,3852,3851, - 1,0,0,0,3852,3853,1,0,0,0,3853,3854,1,0,0,0,3854,3855,5,2,0,0,3855, - 3860,5,209,0,0,3856,3857,5,6,0,0,3857,3859,5,209,0,0,3858,3856,1, - 0,0,0,3859,3862,1,0,0,0,3860,3858,1,0,0,0,3860,3861,1,0,0,0,3861, - 3863,1,0,0,0,3862,3860,1,0,0,0,3863,3865,5,3,0,0,3864,3852,1,0,0, - 0,3864,3865,1,0,0,0,3865,3867,1,0,0,0,3866,3659,1,0,0,0,3866,3691, - 1,0,0,0,3866,3710,1,0,0,0,3866,3722,1,0,0,0,3866,3731,1,0,0,0,3866, - 3742,1,0,0,0,3866,3758,1,0,0,0,3866,3768,1,0,0,0,3866,3781,1,0,0, - 0,3866,3792,1,0,0,0,3866,3799,1,0,0,0,3866,3808,1,0,0,0,3866,3814, - 1,0,0,0,3866,3826,1,0,0,0,3866,3832,1,0,0,0,3866,3845,1,0,0,0,3867, - 311,1,0,0,0,3868,3870,5,63,0,0,3869,3868,1,0,0,0,3869,3870,1,0,0, - 0,3870,3871,1,0,0,0,3871,3872,5,92,0,0,3872,3885,3,776,388,0,3873, - 3875,5,259,0,0,3874,3873,1,0,0,0,3874,3875,1,0,0,0,3875,3876,1,0, - 0,0,3876,3877,5,376,0,0,3877,3885,3,780,390,0,3878,3879,7,47,0,0, - 3879,3885,3,318,159,0,3880,3881,5,355,0,0,3881,3882,5,325,0,0,3882, - 3883,7,42,0,0,3883,3885,3,318,159,0,3884,3869,1,0,0,0,3884,3874, - 1,0,0,0,3884,3878,1,0,0,0,3884,3880,1,0,0,0,3885,313,1,0,0,0,3886, - 3887,5,198,0,0,3887,3903,5,357,0,0,3888,3889,5,131,0,0,3889,3903, - 5,446,0,0,3890,3903,5,204,0,0,3891,3903,5,452,0,0,3892,3903,5,331, - 0,0,3893,3903,5,318,0,0,3894,3903,5,451,0,0,3895,3896,5,63,0,0,3896, - 3897,5,174,0,0,3897,3903,5,381,0,0,3898,3900,5,295,0,0,3899,3898, - 1,0,0,0,3899,3900,1,0,0,0,3900,3901,1,0,0,0,3901,3903,5,247,0,0, - 3902,3886,1,0,0,0,3902,3888,1,0,0,0,3902,3890,1,0,0,0,3902,3891, - 1,0,0,0,3902,3892,1,0,0,0,3902,3893,1,0,0,0,3902,3894,1,0,0,0,3902, - 3895,1,0,0,0,3902,3899,1,0,0,0,3903,3904,1,0,0,0,3904,3911,3,820, - 410,0,3905,3906,5,323,0,0,3906,3911,3,792,396,0,3907,3908,5,175, - 0,0,3908,3911,3,790,395,0,3909,3911,3,178,89,0,3910,3902,1,0,0,0, - 3910,3905,1,0,0,0,3910,3907,1,0,0,0,3910,3909,1,0,0,0,3911,315,1, - 0,0,0,3912,3917,3,318,159,0,3913,3914,5,6,0,0,3914,3916,3,318,159, - 0,3915,3913,1,0,0,0,3916,3919,1,0,0,0,3917,3915,1,0,0,0,3917,3918, - 1,0,0,0,3918,317,1,0,0,0,3919,3917,1,0,0,0,3920,3922,3,820,410,0, - 3921,3923,3,320,160,0,3922,3921,1,0,0,0,3922,3923,1,0,0,0,3923,319, - 1,0,0,0,3924,3925,5,11,0,0,3925,3927,3,826,413,0,3926,3924,1,0,0, - 0,3927,3928,1,0,0,0,3928,3926,1,0,0,0,3928,3929,1,0,0,0,3929,321, - 1,0,0,0,3930,3932,5,358,0,0,3931,3933,5,92,0,0,3932,3931,1,0,0,0, - 3932,3933,1,0,0,0,3933,3934,1,0,0,0,3934,3939,3,324,162,0,3935,3936, - 5,6,0,0,3936,3938,3,324,162,0,3937,3935,1,0,0,0,3938,3941,1,0,0, - 0,3939,3937,1,0,0,0,3939,3940,1,0,0,0,3940,3944,1,0,0,0,3941,3939, - 1,0,0,0,3942,3943,7,48,0,0,3943,3945,5,219,0,0,3944,3942,1,0,0,0, - 3944,3945,1,0,0,0,3945,3947,1,0,0,0,3946,3948,3,96,48,0,3947,3946, - 1,0,0,0,3947,3948,1,0,0,0,3948,323,1,0,0,0,3949,3951,5,81,0,0,3950, - 3949,1,0,0,0,3950,3951,1,0,0,0,3951,3952,1,0,0,0,3952,3954,3,776, - 388,0,3953,3955,5,9,0,0,3954,3953,1,0,0,0,3954,3955,1,0,0,0,3955, - 325,1,0,0,0,3956,3957,5,159,0,0,3957,4016,5,80,0,0,3958,4017,3,312, - 156,0,3959,4017,3,314,157,0,3960,3961,5,44,0,0,3961,3963,3,820,410, - 0,3962,3964,3,320,160,0,3963,3962,1,0,0,0,3963,3964,1,0,0,0,3964, - 3965,1,0,0,0,3965,3966,5,11,0,0,3966,3967,3,802,401,0,3967,4017, - 1,0,0,0,3968,3969,7,33,0,0,3969,4017,3,654,327,0,3970,3971,5,136, - 0,0,3971,4017,3,396,198,0,3972,3973,5,211,0,0,3973,4017,3,384,192, - 0,3974,3975,5,278,0,0,3975,4017,3,418,209,0,3976,3977,5,45,0,0,3977, - 3978,3,820,410,0,3978,3984,5,80,0,0,3979,3985,3,776,388,0,3980,3982, - 5,189,0,0,3981,3980,1,0,0,0,3981,3982,1,0,0,0,3982,3983,1,0,0,0, - 3983,3985,3,318,159,0,3984,3979,1,0,0,0,3984,3981,1,0,0,0,3985,4017, - 1,0,0,0,3986,3987,7,45,0,0,3987,3988,3,820,410,0,3988,3989,5,80, - 0,0,3989,3990,3,318,159,0,3990,4017,1,0,0,0,3991,3992,5,296,0,0, - 3992,4017,3,380,190,0,3993,3994,5,442,0,0,3994,4017,3,376,188,0, - 3995,3996,5,443,0,0,3996,3997,5,62,0,0,3997,3998,3,654,327,0,3998, - 3999,5,247,0,0,3999,4000,3,820,410,0,4000,4017,1,0,0,0,4001,4002, - 5,278,0,0,4002,4003,7,32,0,0,4003,4004,3,318,159,0,4004,4005,3,172, - 86,0,4005,4017,1,0,0,0,4006,4007,5,248,0,0,4007,4008,5,274,0,0,4008, - 4017,3,204,102,0,4009,4010,5,41,0,0,4010,4011,5,2,0,0,4011,4012, - 3,654,327,0,4012,4013,5,36,0,0,4013,4014,3,654,327,0,4014,4015,5, - 3,0,0,4015,4017,1,0,0,0,4016,3958,1,0,0,0,4016,3959,1,0,0,0,4016, - 3960,1,0,0,0,4016,3968,1,0,0,0,4016,3970,1,0,0,0,4016,3972,1,0,0, - 0,4016,3974,1,0,0,0,4016,3976,1,0,0,0,4016,3986,1,0,0,0,4016,3991, - 1,0,0,0,4016,3993,1,0,0,0,4016,3995,1,0,0,0,4016,4001,1,0,0,0,4016, - 4006,1,0,0,0,4016,4009,1,0,0,0,4017,4018,1,0,0,0,4018,4021,5,116, - 0,0,4019,4022,3,810,405,0,4020,4022,5,78,0,0,4021,4019,1,0,0,0,4021, - 4020,1,0,0,0,4022,327,1,0,0,0,4023,4024,5,327,0,0,4024,4027,5,246, - 0,0,4025,4026,5,62,0,0,4026,4028,3,58,29,0,4027,4025,1,0,0,0,4027, - 4028,1,0,0,0,4028,4029,1,0,0,0,4029,4047,5,80,0,0,4030,4031,7,33, - 0,0,4031,4048,3,654,327,0,4032,4033,5,136,0,0,4033,4048,3,396,198, - 0,4034,4035,5,44,0,0,4035,4048,3,802,401,0,4036,4037,5,211,0,0,4037, - 4048,3,384,192,0,4038,4039,5,248,0,0,4039,4040,5,274,0,0,4040,4048, - 3,204,102,0,4041,4042,5,296,0,0,4042,4048,3,380,190,0,4043,4044, - 5,442,0,0,4044,4048,3,376,188,0,4045,4048,3,312,156,0,4046,4048, - 3,314,157,0,4047,4030,1,0,0,0,4047,4032,1,0,0,0,4047,4034,1,0,0, - 0,4047,4036,1,0,0,0,4047,4038,1,0,0,0,4047,4041,1,0,0,0,4047,4043, - 1,0,0,0,4047,4045,1,0,0,0,4047,4046,1,0,0,0,4048,4049,1,0,0,0,4049, - 4052,5,116,0,0,4050,4053,3,810,405,0,4051,4053,5,78,0,0,4052,4050, - 1,0,0,0,4052,4051,1,0,0,0,4053,329,1,0,0,0,4054,4055,7,49,0,0,4055, - 4056,3,332,166,0,4056,331,1,0,0,0,4057,4059,7,50,0,0,4058,4057,1, - 0,0,0,4058,4059,1,0,0,0,4059,4061,1,0,0,0,4060,4062,3,334,167,0, - 4061,4060,1,0,0,0,4061,4062,1,0,0,0,4062,4063,1,0,0,0,4063,4101, - 3,820,410,0,4064,4066,7,51,0,0,4065,4064,1,0,0,0,4065,4066,1,0,0, - 0,4066,4067,1,0,0,0,4067,4069,3,814,407,0,4068,4070,3,334,167,0, - 4069,4068,1,0,0,0,4069,4070,1,0,0,0,4070,4071,1,0,0,0,4071,4072, - 3,820,410,0,4072,4101,1,0,0,0,4073,4075,5,210,0,0,4074,4076,3,814, - 407,0,4075,4074,1,0,0,0,4075,4076,1,0,0,0,4076,4078,1,0,0,0,4077, - 4079,3,334,167,0,4078,4077,1,0,0,0,4078,4079,1,0,0,0,4079,4080,1, - 0,0,0,4080,4101,3,820,410,0,4081,4083,5,210,0,0,4082,4081,1,0,0, - 0,4082,4083,1,0,0,0,4083,4084,1,0,0,0,4084,4086,5,30,0,0,4085,4087, - 3,334,167,0,4086,4085,1,0,0,0,4086,4087,1,0,0,0,4087,4088,1,0,0, - 0,4088,4101,3,820,410,0,4089,4094,5,144,0,0,4090,4092,5,30,0,0,4091, - 4090,1,0,0,0,4091,4092,1,0,0,0,4092,4095,1,0,0,0,4093,4095,3,814, - 407,0,4094,4091,1,0,0,0,4094,4093,1,0,0,0,4095,4097,1,0,0,0,4096, - 4098,3,334,167,0,4097,4096,1,0,0,0,4097,4098,1,0,0,0,4098,4099,1, - 0,0,0,4099,4101,3,820,410,0,4100,4058,1,0,0,0,4100,4065,1,0,0,0, - 4100,4073,1,0,0,0,4100,4082,1,0,0,0,4100,4089,1,0,0,0,4101,333,1, - 0,0,0,4102,4103,7,52,0,0,4103,335,1,0,0,0,4104,4105,5,65,0,0,4105, - 4106,3,340,170,0,4106,4107,5,80,0,0,4107,4108,3,346,173,0,4108,4109, - 5,94,0,0,4109,4113,3,348,174,0,4110,4111,5,105,0,0,4111,4112,5,65, - 0,0,4112,4114,5,279,0,0,4113,4110,1,0,0,0,4113,4114,1,0,0,0,4114, - 337,1,0,0,0,4115,4119,5,317,0,0,4116,4117,5,65,0,0,4117,4118,5,279, - 0,0,4118,4120,5,62,0,0,4119,4116,1,0,0,0,4119,4120,1,0,0,0,4120, - 4121,1,0,0,0,4121,4122,3,340,170,0,4122,4123,5,80,0,0,4123,4124, - 3,346,173,0,4124,4125,5,64,0,0,4125,4127,3,348,174,0,4126,4128,3, - 96,48,0,4127,4126,1,0,0,0,4127,4128,1,0,0,0,4128,339,1,0,0,0,4129, - 4134,3,344,172,0,4130,4131,5,6,0,0,4131,4133,3,344,172,0,4132,4130, - 1,0,0,0,4133,4136,1,0,0,0,4134,4132,1,0,0,0,4134,4135,1,0,0,0,4135, - 4153,1,0,0,0,4136,4134,1,0,0,0,4137,4139,5,30,0,0,4138,4140,5,294, - 0,0,4139,4138,1,0,0,0,4139,4140,1,0,0,0,4140,4142,1,0,0,0,4141,4143, - 3,146,73,0,4142,4141,1,0,0,0,4142,4143,1,0,0,0,4143,4153,1,0,0,0, - 4144,4149,3,342,171,0,4145,4146,5,6,0,0,4146,4148,3,342,171,0,4147, - 4145,1,0,0,0,4148,4151,1,0,0,0,4149,4147,1,0,0,0,4149,4150,1,0,0, - 0,4150,4153,1,0,0,0,4151,4149,1,0,0,0,4152,4129,1,0,0,0,4152,4137, - 1,0,0,0,4152,4144,1,0,0,0,4153,341,1,0,0,0,4154,4155,7,53,0,0,4155, - 343,1,0,0,0,4156,4161,5,88,0,0,4157,4161,5,86,0,0,4158,4161,5,46, - 0,0,4159,4161,3,820,410,0,4160,4156,1,0,0,0,4160,4157,1,0,0,0,4160, - 4158,1,0,0,0,4160,4159,1,0,0,0,4161,4163,1,0,0,0,4162,4164,3,146, - 73,0,4163,4162,1,0,0,0,4163,4164,1,0,0,0,4164,345,1,0,0,0,4165,4166, - 5,92,0,0,4166,4211,3,764,382,0,4167,4169,5,328,0,0,4168,4167,1,0, - 0,0,4168,4169,1,0,0,0,4169,4170,1,0,0,0,4170,4211,3,762,381,0,4171, - 4175,5,63,0,0,4172,4173,5,174,0,0,4173,4176,5,381,0,0,4174,4176, - 5,331,0,0,4175,4172,1,0,0,0,4175,4174,1,0,0,0,4176,4179,1,0,0,0, - 4177,4179,5,247,0,0,4178,4171,1,0,0,0,4178,4177,1,0,0,0,4179,4180, - 1,0,0,0,4180,4211,3,786,393,0,4181,4182,5,211,0,0,4182,4211,3,382, - 191,0,4183,4184,5,296,0,0,4184,4211,3,378,189,0,4185,4186,5,442, - 0,0,4186,4211,3,374,187,0,4187,4188,5,175,0,0,4188,4211,3,768,384, - 0,4189,4190,7,33,0,0,4190,4211,3,316,158,0,4191,4192,5,248,0,0,4192, - 4193,5,274,0,0,4193,4198,3,204,102,0,4194,4195,5,6,0,0,4195,4197, - 3,204,102,0,4196,4194,1,0,0,0,4197,4200,1,0,0,0,4198,4196,1,0,0, - 0,4198,4199,1,0,0,0,4199,4211,1,0,0,0,4200,4198,1,0,0,0,4201,4202, - 5,323,0,0,4202,4211,3,766,383,0,4203,4204,5,351,0,0,4204,4211,3, - 784,392,0,4205,4206,5,30,0,0,4206,4207,7,54,0,0,4207,4208,5,68,0, - 0,4208,4209,5,323,0,0,4209,4211,3,766,383,0,4210,4165,1,0,0,0,4210, - 4168,1,0,0,0,4210,4178,1,0,0,0,4210,4181,1,0,0,0,4210,4183,1,0,0, - 0,4210,4185,1,0,0,0,4210,4187,1,0,0,0,4210,4189,1,0,0,0,4210,4191, - 1,0,0,0,4210,4201,1,0,0,0,4210,4203,1,0,0,0,4210,4205,1,0,0,0,4211, - 347,1,0,0,0,4212,4214,5,66,0,0,4213,4212,1,0,0,0,4213,4214,1,0,0, - 0,4214,4215,1,0,0,0,4215,4216,3,816,408,0,4216,4224,1,0,0,0,4217, - 4219,5,6,0,0,4218,4220,5,66,0,0,4219,4218,1,0,0,0,4219,4220,1,0, - 0,0,4220,4221,1,0,0,0,4221,4223,3,816,408,0,4222,4217,1,0,0,0,4223, - 4226,1,0,0,0,4224,4222,1,0,0,0,4224,4225,1,0,0,0,4225,349,1,0,0, - 0,4226,4224,1,0,0,0,4227,4228,5,65,0,0,4228,4233,3,344,172,0,4229, - 4230,5,6,0,0,4230,4232,3,344,172,0,4231,4229,1,0,0,0,4232,4235,1, - 0,0,0,4233,4231,1,0,0,0,4233,4234,1,0,0,0,4234,4236,1,0,0,0,4235, - 4233,1,0,0,0,4236,4237,5,94,0,0,4237,4241,3,818,409,0,4238,4239, - 5,105,0,0,4239,4240,5,134,0,0,4240,4242,5,279,0,0,4241,4238,1,0, - 0,0,4241,4242,1,0,0,0,4242,4246,1,0,0,0,4243,4244,5,214,0,0,4244, - 4245,5,147,0,0,4245,4247,3,816,408,0,4246,4243,1,0,0,0,4246,4247, - 1,0,0,0,4247,351,1,0,0,0,4248,4252,5,317,0,0,4249,4250,5,134,0,0, - 4250,4251,5,279,0,0,4251,4253,5,62,0,0,4252,4249,1,0,0,0,4252,4253, - 1,0,0,0,4253,4254,1,0,0,0,4254,4259,3,344,172,0,4255,4256,5,6,0, - 0,4256,4258,3,344,172,0,4257,4255,1,0,0,0,4258,4261,1,0,0,0,4259, - 4257,1,0,0,0,4259,4260,1,0,0,0,4260,4262,1,0,0,0,4261,4259,1,0,0, - 0,4262,4263,5,64,0,0,4263,4267,3,818,409,0,4264,4265,5,214,0,0,4265, - 4266,5,147,0,0,4266,4268,3,816,408,0,4267,4264,1,0,0,0,4267,4268, - 1,0,0,0,4268,4270,1,0,0,0,4269,4271,3,96,48,0,4270,4269,1,0,0,0, - 4270,4271,1,0,0,0,4271,353,1,0,0,0,4272,4273,5,138,0,0,4273,4274, - 5,53,0,0,4274,4283,5,294,0,0,4275,4276,5,68,0,0,4276,4277,5,323, - 0,0,4277,4282,3,766,383,0,4278,4279,5,62,0,0,4279,4280,7,2,0,0,4280, - 4282,3,818,409,0,4281,4275,1,0,0,0,4281,4278,1,0,0,0,4282,4285,1, - 0,0,0,4283,4281,1,0,0,0,4283,4284,1,0,0,0,4284,4286,1,0,0,0,4285, - 4283,1,0,0,0,4286,4287,3,356,178,0,4287,355,1,0,0,0,4288,4289,5, - 65,0,0,4289,4290,3,340,170,0,4290,4291,5,80,0,0,4291,4292,3,358, - 179,0,4292,4293,5,94,0,0,4293,4297,3,348,174,0,4294,4295,5,105,0, - 0,4295,4296,5,65,0,0,4296,4298,5,279,0,0,4297,4294,1,0,0,0,4297, - 4298,1,0,0,0,4298,4314,1,0,0,0,4299,4303,5,317,0,0,4300,4301,5,65, - 0,0,4301,4302,5,279,0,0,4302,4304,5,62,0,0,4303,4300,1,0,0,0,4303, - 4304,1,0,0,0,4304,4305,1,0,0,0,4305,4306,3,340,170,0,4306,4307,5, - 80,0,0,4307,4308,3,358,179,0,4308,4309,5,64,0,0,4309,4311,3,348, - 174,0,4310,4312,3,96,48,0,4311,4310,1,0,0,0,4311,4312,1,0,0,0,4312, - 4314,1,0,0,0,4313,4288,1,0,0,0,4313,4299,1,0,0,0,4314,357,1,0,0, - 0,4315,4316,7,55,0,0,4316,359,1,0,0,0,4317,4319,5,46,0,0,4318,4320, - 5,98,0,0,4319,4318,1,0,0,0,4319,4320,1,0,0,0,4320,4321,1,0,0,0,4321, - 4323,5,226,0,0,4322,4324,5,109,0,0,4323,4322,1,0,0,0,4323,4324,1, - 0,0,0,4324,4326,1,0,0,0,4325,4327,3,296,148,0,4326,4325,1,0,0,0, - 4326,4327,1,0,0,0,4327,4329,1,0,0,0,4328,4330,3,820,410,0,4329,4328, - 1,0,0,0,4329,4330,1,0,0,0,4330,4331,1,0,0,0,4331,4332,5,80,0,0,4332, - 4334,3,626,313,0,4333,4335,3,172,86,0,4334,4333,1,0,0,0,4334,4335, - 1,0,0,0,4335,4336,1,0,0,0,4336,4339,3,362,181,0,4337,4338,5,441, - 0,0,4338,4340,3,362,181,0,4339,4337,1,0,0,0,4339,4340,1,0,0,0,4340, - 4346,1,0,0,0,4341,4343,5,273,0,0,4342,4344,5,77,0,0,4343,4342,1, - 0,0,0,4343,4344,1,0,0,0,4344,4345,1,0,0,0,4345,4347,5,56,0,0,4346, - 4341,1,0,0,0,4346,4347,1,0,0,0,4347,4349,1,0,0,0,4348,4350,3,102, - 51,0,4349,4348,1,0,0,0,4349,4350,1,0,0,0,4350,4352,1,0,0,0,4351, - 4353,3,178,89,0,4352,4351,1,0,0,0,4352,4353,1,0,0,0,4353,4355,1, - 0,0,0,4354,4356,3,640,320,0,4355,4354,1,0,0,0,4355,4356,1,0,0,0, - 4356,361,1,0,0,0,4357,4358,5,2,0,0,4358,4363,3,364,182,0,4359,4360, - 5,6,0,0,4360,4362,3,364,182,0,4361,4359,1,0,0,0,4362,4365,1,0,0, - 0,4363,4361,1,0,0,0,4363,4364,1,0,0,0,4364,4366,1,0,0,0,4365,4363, - 1,0,0,0,4366,4367,5,3,0,0,4367,363,1,0,0,0,4368,4375,3,802,401,0, - 4369,4375,3,690,345,0,4370,4371,5,2,0,0,4371,4372,3,676,338,0,4372, - 4373,5,3,0,0,4373,4375,1,0,0,0,4374,4368,1,0,0,0,4374,4369,1,0,0, - 0,4374,4370,1,0,0,0,4375,4377,1,0,0,0,4376,4378,3,98,49,0,4377,4376, - 1,0,0,0,4377,4378,1,0,0,0,4378,4385,1,0,0,0,4379,4381,3,318,159, - 0,4380,4379,1,0,0,0,4380,4381,1,0,0,0,4381,4386,1,0,0,0,4382,4383, - 3,318,159,0,4383,4384,3,100,50,0,4384,4386,1,0,0,0,4385,4380,1,0, - 0,0,4385,4382,1,0,0,0,4386,4388,1,0,0,0,4387,4389,7,56,0,0,4388, - 4387,1,0,0,0,4388,4389,1,0,0,0,4389,4392,1,0,0,0,4390,4391,5,273, - 0,0,4391,4393,7,57,0,0,4392,4390,1,0,0,0,4392,4393,1,0,0,0,4393, - 365,1,0,0,0,4394,4396,5,46,0,0,4395,4397,3,368,184,0,4396,4395,1, - 0,0,0,4396,4397,1,0,0,0,4397,4402,1,0,0,0,4398,4399,5,211,0,0,4399, - 4403,3,806,403,0,4400,4401,5,296,0,0,4401,4403,3,800,400,0,4402, - 4398,1,0,0,0,4402,4400,1,0,0,0,4403,4404,1,0,0,0,4404,4413,5,2,0, - 0,4405,4410,3,392,196,0,4406,4407,5,6,0,0,4407,4409,3,392,196,0, - 4408,4406,1,0,0,0,4409,4412,1,0,0,0,4410,4408,1,0,0,0,4410,4411, - 1,0,0,0,4411,4414,1,0,0,0,4412,4410,1,0,0,0,4413,4405,1,0,0,0,4413, - 4414,1,0,0,0,4414,4415,1,0,0,0,4415,4416,5,3,0,0,4416,4433,1,0,0, - 0,4417,4431,5,316,0,0,4418,4432,3,390,195,0,4419,4420,5,92,0,0,4420, - 4421,5,2,0,0,4421,4426,3,404,202,0,4422,4423,5,6,0,0,4423,4425,3, - 404,202,0,4424,4422,1,0,0,0,4425,4428,1,0,0,0,4426,4424,1,0,0,0, - 4426,4427,1,0,0,0,4427,4429,1,0,0,0,4428,4426,1,0,0,0,4429,4430, - 5,3,0,0,4430,4432,1,0,0,0,4431,4418,1,0,0,0,4431,4419,1,0,0,0,4432, - 4434,1,0,0,0,4433,4417,1,0,0,0,4433,4434,1,0,0,0,4434,4436,1,0,0, - 0,4435,4437,3,400,200,0,4436,4435,1,0,0,0,4437,4438,1,0,0,0,4438, - 4436,1,0,0,0,4438,4439,1,0,0,0,4439,4445,1,0,0,0,4440,4441,5,105, - 0,0,4441,4442,5,2,0,0,4442,4443,3,786,393,0,4443,4444,5,3,0,0,4444, - 4446,1,0,0,0,4445,4440,1,0,0,0,4445,4446,1,0,0,0,4446,367,1,0,0, - 0,4447,4448,5,82,0,0,4448,4449,5,311,0,0,4449,369,1,0,0,0,4450,4452, - 5,2,0,0,4451,4453,3,372,186,0,4452,4451,1,0,0,0,4452,4453,1,0,0, - 0,4453,4454,1,0,0,0,4454,4455,5,3,0,0,4455,371,1,0,0,0,4456,4461, - 3,386,193,0,4457,4458,5,6,0,0,4458,4460,3,386,193,0,4459,4457,1, - 0,0,0,4460,4463,1,0,0,0,4461,4459,1,0,0,0,4461,4462,1,0,0,0,4462, - 373,1,0,0,0,4463,4461,1,0,0,0,4464,4469,3,376,188,0,4465,4466,5, - 6,0,0,4466,4468,3,376,188,0,4467,4465,1,0,0,0,4468,4471,1,0,0,0, - 4469,4467,1,0,0,0,4469,4470,1,0,0,0,4470,375,1,0,0,0,4471,4469,1, - 0,0,0,4472,4473,3,796,398,0,4473,4474,3,370,185,0,4474,4478,1,0, - 0,0,4475,4478,3,834,417,0,4476,4478,3,782,391,0,4477,4472,1,0,0, - 0,4477,4475,1,0,0,0,4477,4476,1,0,0,0,4478,377,1,0,0,0,4479,4484, - 3,380,190,0,4480,4481,5,6,0,0,4481,4483,3,380,190,0,4482,4480,1, - 0,0,0,4483,4486,1,0,0,0,4484,4482,1,0,0,0,4484,4485,1,0,0,0,4485, - 379,1,0,0,0,4486,4484,1,0,0,0,4487,4488,3,798,399,0,4488,4489,3, - 370,185,0,4489,4493,1,0,0,0,4490,4493,3,834,417,0,4491,4493,3,782, - 391,0,4492,4487,1,0,0,0,4492,4490,1,0,0,0,4492,4491,1,0,0,0,4493, - 381,1,0,0,0,4494,4499,3,384,192,0,4495,4496,5,6,0,0,4496,4498,3, - 384,192,0,4497,4495,1,0,0,0,4498,4501,1,0,0,0,4499,4497,1,0,0,0, - 4499,4500,1,0,0,0,4500,383,1,0,0,0,4501,4499,1,0,0,0,4502,4503,3, - 808,404,0,4503,4504,3,370,185,0,4504,4508,1,0,0,0,4505,4508,3,834, - 417,0,4506,4508,3,782,391,0,4507,4502,1,0,0,0,4507,4505,1,0,0,0, - 4507,4506,1,0,0,0,4508,385,1,0,0,0,4509,4511,3,388,194,0,4510,4512, - 3,822,411,0,4511,4510,1,0,0,0,4511,4512,1,0,0,0,4512,4518,1,0,0, - 0,4513,4515,3,822,411,0,4514,4516,3,388,194,0,4515,4514,1,0,0,0, - 4515,4516,1,0,0,0,4516,4518,1,0,0,0,4517,4509,1,0,0,0,4517,4513, - 1,0,0,0,4517,4518,1,0,0,0,4518,4519,1,0,0,0,4519,4520,3,390,195, - 0,4520,387,1,0,0,0,4521,4523,5,68,0,0,4522,4524,5,453,0,0,4523,4522, - 1,0,0,0,4523,4524,1,0,0,0,4524,4529,1,0,0,0,4525,4529,5,453,0,0, - 4526,4529,5,400,0,0,4527,4529,5,101,0,0,4528,4521,1,0,0,0,4528,4525, - 1,0,0,0,4528,4526,1,0,0,0,4528,4527,1,0,0,0,4529,389,1,0,0,0,4530, - 4540,3,654,327,0,4531,4533,5,415,0,0,4532,4531,1,0,0,0,4532,4533, - 1,0,0,0,4533,4534,1,0,0,0,4534,4535,3,822,411,0,4535,4536,3,320, - 160,0,4536,4537,5,27,0,0,4537,4538,5,360,0,0,4538,4540,1,0,0,0,4539, - 4530,1,0,0,0,4539,4532,1,0,0,0,4540,391,1,0,0,0,4541,4544,3,386, - 193,0,4542,4543,7,58,0,0,4543,4545,3,676,338,0,4544,4542,1,0,0,0, - 4544,4545,1,0,0,0,4545,393,1,0,0,0,4546,4556,5,2,0,0,4547,4557,5, - 9,0,0,4548,4550,3,372,186,0,4549,4548,1,0,0,0,4549,4550,1,0,0,0, - 4550,4554,1,0,0,0,4551,4552,5,83,0,0,4552,4553,5,147,0,0,4553,4555, - 3,372,186,0,4554,4551,1,0,0,0,4554,4555,1,0,0,0,4555,4557,1,0,0, - 0,4556,4547,1,0,0,0,4556,4549,1,0,0,0,4557,4558,1,0,0,0,4558,4559, - 5,3,0,0,4559,395,1,0,0,0,4560,4561,3,808,404,0,4561,4562,3,394,197, - 0,4562,397,1,0,0,0,4563,4564,5,316,0,0,4564,4567,5,78,0,0,4565,4567, - 5,149,0,0,4566,4563,1,0,0,0,4566,4565,1,0,0,0,4567,4568,1,0,0,0, - 4568,4569,5,80,0,0,4569,4570,5,78,0,0,4570,4593,5,458,0,0,4571,4593, - 5,346,0,0,4572,4593,5,222,0,0,4573,4593,5,338,0,0,4574,4593,5,377, - 0,0,4575,4577,5,205,0,0,4576,4575,1,0,0,0,4576,4577,1,0,0,0,4577, - 4578,1,0,0,0,4578,4579,5,327,0,0,4579,4593,7,59,0,0,4580,4593,5, - 250,0,0,4581,4582,5,77,0,0,4582,4593,5,250,0,0,4583,4584,7,60,0, - 0,4584,4593,3,204,102,0,4585,4586,5,459,0,0,4586,4593,3,318,159, - 0,4587,4588,5,333,0,0,4588,4593,3,42,21,0,4589,4593,3,60,30,0,4590, - 4591,5,460,0,0,4591,4593,3,820,410,0,4592,4566,1,0,0,0,4592,4571, - 1,0,0,0,4592,4572,1,0,0,0,4592,4573,1,0,0,0,4592,4574,1,0,0,0,4592, - 4576,1,0,0,0,4592,4580,1,0,0,0,4592,4581,1,0,0,0,4592,4583,1,0,0, - 0,4592,4585,1,0,0,0,4592,4587,1,0,0,0,4592,4589,1,0,0,0,4592,4590, - 1,0,0,0,4593,399,1,0,0,0,4594,4595,5,36,0,0,4595,4596,3,810,405, - 0,4596,4597,3,464,232,0,4597,4630,1,0,0,0,4598,4599,5,247,0,0,4599, - 4630,3,58,29,0,4600,4601,5,443,0,0,4601,4602,5,62,0,0,4602,4603, - 5,360,0,0,4603,4610,3,654,327,0,4604,4605,5,6,0,0,4605,4606,5,62, - 0,0,4606,4607,5,360,0,0,4607,4609,3,654,327,0,4608,4604,1,0,0,0, - 4609,4612,1,0,0,0,4610,4608,1,0,0,0,4610,4611,1,0,0,0,4611,4630, - 1,0,0,0,4612,4610,1,0,0,0,4613,4630,5,104,0,0,4614,4615,5,333,0, - 0,4615,4622,3,820,410,0,4616,4617,5,94,0,0,4617,4623,3,820,410,0, - 4618,4619,5,10,0,0,4619,4623,3,820,410,0,4620,4621,5,64,0,0,4621, - 4623,5,434,0,0,4622,4616,1,0,0,0,4622,4618,1,0,0,0,4622,4620,1,0, - 0,0,4623,4630,1,0,0,0,4624,4625,5,36,0,0,4625,4630,3,820,410,0,4626, - 4630,3,4,2,0,4627,4630,3,398,199,0,4628,4630,3,820,410,0,4629,4594, - 1,0,0,0,4629,4598,1,0,0,0,4629,4600,1,0,0,0,4629,4613,1,0,0,0,4629, - 4614,1,0,0,0,4629,4624,1,0,0,0,4629,4626,1,0,0,0,4629,4627,1,0,0, - 0,4629,4628,1,0,0,0,4630,401,1,0,0,0,4631,4632,5,105,0,0,4632,4633, - 3,286,143,0,4633,403,1,0,0,0,4634,4635,3,802,401,0,4635,4636,3,390, - 195,0,4636,405,1,0,0,0,4637,4644,5,138,0,0,4638,4639,5,211,0,0,4639, - 4645,3,384,192,0,4640,4641,5,296,0,0,4641,4645,3,380,190,0,4642, - 4643,5,442,0,0,4643,4645,3,376,188,0,4644,4638,1,0,0,0,4644,4640, - 1,0,0,0,4644,4642,1,0,0,0,4645,4647,1,0,0,0,4646,4648,3,398,199, - 0,4647,4646,1,0,0,0,4648,4649,1,0,0,0,4649,4647,1,0,0,0,4649,4650, - 1,0,0,0,4650,4652,1,0,0,0,4651,4653,5,315,0,0,4652,4651,1,0,0,0, - 4652,4653,1,0,0,0,4653,407,1,0,0,0,4654,4670,5,191,0,0,4655,4657, - 5,211,0,0,4656,4658,3,424,212,0,4657,4656,1,0,0,0,4657,4658,1,0, - 0,0,4658,4659,1,0,0,0,4659,4671,3,382,191,0,4660,4662,5,296,0,0, - 4661,4663,3,424,212,0,4662,4661,1,0,0,0,4662,4663,1,0,0,0,4663,4664, - 1,0,0,0,4664,4671,3,378,189,0,4665,4667,5,442,0,0,4666,4668,3,424, - 212,0,4667,4666,1,0,0,0,4667,4668,1,0,0,0,4668,4669,1,0,0,0,4669, - 4671,3,374,187,0,4670,4655,1,0,0,0,4670,4660,1,0,0,0,4670,4665,1, - 0,0,0,4671,4673,1,0,0,0,4672,4674,3,96,48,0,4673,4672,1,0,0,0,4673, - 4674,1,0,0,0,4674,409,1,0,0,0,4675,4676,5,191,0,0,4676,4678,5,136, - 0,0,4677,4679,3,424,212,0,4678,4677,1,0,0,0,4678,4679,1,0,0,0,4679, - 4680,1,0,0,0,4680,4685,3,396,198,0,4681,4682,5,6,0,0,4682,4684,3, - 396,198,0,4683,4681,1,0,0,0,4684,4687,1,0,0,0,4685,4683,1,0,0,0, - 4685,4686,1,0,0,0,4686,4689,1,0,0,0,4687,4685,1,0,0,0,4688,4690, - 3,96,48,0,4689,4688,1,0,0,0,4689,4690,1,0,0,0,4690,411,1,0,0,0,4691, - 4692,5,191,0,0,4692,4694,5,278,0,0,4693,4695,3,424,212,0,4694,4693, - 1,0,0,0,4694,4695,1,0,0,0,4695,4696,1,0,0,0,4696,4701,3,418,209, - 0,4697,4698,5,6,0,0,4698,4700,3,418,209,0,4699,4697,1,0,0,0,4700, - 4703,1,0,0,0,4701,4699,1,0,0,0,4701,4702,1,0,0,0,4702,4705,1,0,0, - 0,4703,4701,1,0,0,0,4704,4706,3,96,48,0,4705,4704,1,0,0,0,4705,4706, - 1,0,0,0,4706,413,1,0,0,0,4707,4720,5,2,0,0,4708,4711,3,654,327,0, - 4709,4710,5,6,0,0,4710,4712,3,654,327,0,4711,4709,1,0,0,0,4711,4712, - 1,0,0,0,4712,4721,1,0,0,0,4713,4714,5,407,0,0,4714,4715,5,6,0,0, - 4715,4721,3,654,327,0,4716,4717,3,654,327,0,4717,4718,5,6,0,0,4718, - 4719,5,407,0,0,4719,4721,1,0,0,0,4720,4708,1,0,0,0,4720,4713,1,0, - 0,0,4720,4716,1,0,0,0,4721,4722,1,0,0,0,4722,4723,5,3,0,0,4723,415, - 1,0,0,0,4724,4725,3,820,410,0,4725,4726,5,11,0,0,4726,4728,1,0,0, - 0,4727,4724,1,0,0,0,4728,4731,1,0,0,0,4729,4727,1,0,0,0,4729,4730, - 1,0,0,0,4730,4732,1,0,0,0,4731,4729,1,0,0,0,4732,4733,3,722,361, - 0,4733,417,1,0,0,0,4734,4735,3,416,208,0,4735,4736,3,414,207,0,4736, - 419,1,0,0,0,4737,4741,5,57,0,0,4738,4742,3,810,405,0,4739,4740,5, - 247,0,0,4740,4742,3,58,29,0,4741,4738,1,0,0,0,4741,4739,1,0,0,0, - 4742,4743,1,0,0,0,4743,4741,1,0,0,0,4743,4744,1,0,0,0,4744,421,1, - 0,0,0,4745,4746,5,46,0,0,4746,4747,5,41,0,0,4747,4748,5,2,0,0,4748, - 4749,3,654,327,0,4749,4750,5,36,0,0,4750,4751,3,654,327,0,4751,4768, - 5,3,0,0,4752,4753,5,379,0,0,4753,4756,5,211,0,0,4754,4755,5,36,0, - 0,4755,4757,7,61,0,0,4756,4754,1,0,0,0,4756,4757,1,0,0,0,4757,4769, - 1,0,0,0,4758,4762,5,105,0,0,4759,4760,5,211,0,0,4760,4763,3,384, - 192,0,4761,4763,5,400,0,0,4762,4759,1,0,0,0,4762,4761,1,0,0,0,4763, - 4766,1,0,0,0,4764,4765,5,36,0,0,4765,4767,7,61,0,0,4766,4764,1,0, - 0,0,4766,4767,1,0,0,0,4767,4769,1,0,0,0,4768,4752,1,0,0,0,4768,4758, - 1,0,0,0,4769,423,1,0,0,0,4770,4771,5,220,0,0,4771,4772,5,396,0,0, - 4772,425,1,0,0,0,4773,4775,5,46,0,0,4774,4776,3,368,184,0,4775,4774, - 1,0,0,0,4775,4776,1,0,0,0,4776,4777,1,0,0,0,4777,4778,5,443,0,0, - 4778,4779,5,62,0,0,4779,4780,3,654,327,0,4780,4781,5,247,0,0,4781, - 4782,3,820,410,0,4782,4797,5,2,0,0,4783,4784,5,64,0,0,4784,4788, - 3,428,214,0,4785,4786,5,6,0,0,4786,4787,5,94,0,0,4787,4789,3,428, - 214,0,4788,4785,1,0,0,0,4788,4789,1,0,0,0,4789,4798,1,0,0,0,4790, - 4791,5,94,0,0,4791,4795,3,428,214,0,4792,4793,5,6,0,0,4793,4794, - 5,64,0,0,4794,4796,3,428,214,0,4795,4792,1,0,0,0,4795,4796,1,0,0, - 0,4796,4798,1,0,0,0,4797,4783,1,0,0,0,4797,4790,1,0,0,0,4798,4799, - 1,0,0,0,4799,4800,5,3,0,0,4800,427,1,0,0,0,4801,4802,5,461,0,0,4802, - 4803,5,105,0,0,4803,4804,5,211,0,0,4804,4805,3,384,192,0,4805,429, - 1,0,0,0,4806,4817,5,306,0,0,4807,4808,5,2,0,0,4808,4813,5,128,0, - 0,4809,4810,5,6,0,0,4810,4812,5,128,0,0,4811,4809,1,0,0,0,4812,4815, - 1,0,0,0,4813,4811,1,0,0,0,4813,4814,1,0,0,0,4814,4816,1,0,0,0,4815, - 4813,1,0,0,0,4816,4818,5,3,0,0,4817,4807,1,0,0,0,4817,4818,1,0,0, - 0,4818,4844,1,0,0,0,4819,4821,5,226,0,0,4820,4822,5,109,0,0,4821, - 4820,1,0,0,0,4821,4822,1,0,0,0,4822,4823,1,0,0,0,4823,4845,3,782, - 391,0,4824,4826,5,92,0,0,4825,4827,5,109,0,0,4826,4825,1,0,0,0,4826, - 4827,1,0,0,0,4827,4828,1,0,0,0,4828,4845,3,776,388,0,4829,4831,5, - 323,0,0,4830,4832,5,109,0,0,4831,4830,1,0,0,0,4831,4832,1,0,0,0, - 4832,4833,1,0,0,0,4833,4845,3,792,396,0,4834,4836,5,349,0,0,4835, - 4837,5,109,0,0,4836,4835,1,0,0,0,4836,4837,1,0,0,0,4837,4838,1,0, - 0,0,4838,4845,3,820,410,0,4839,4841,5,175,0,0,4840,4842,5,109,0, - 0,4841,4840,1,0,0,0,4841,4842,1,0,0,0,4842,4843,1,0,0,0,4843,4845, - 3,790,395,0,4844,4819,1,0,0,0,4844,4824,1,0,0,0,4844,4829,1,0,0, - 0,4844,4834,1,0,0,0,4844,4839,1,0,0,0,4845,431,1,0,0,0,4846,4847, - 5,138,0,0,4847,4848,3,178,89,0,4848,4849,7,16,0,0,4849,4850,3,100, - 50,0,4850,433,1,0,0,0,4851,4856,5,138,0,0,4852,4853,5,136,0,0,4853, - 4857,3,396,198,0,4854,4855,5,442,0,0,4855,4857,3,376,188,0,4856, - 4852,1,0,0,0,4856,4854,1,0,0,0,4857,4858,1,0,0,0,4858,4859,5,309, - 0,0,4859,4860,5,94,0,0,4860,4861,3,820,410,0,4861,5059,1,0,0,0,4862, - 4863,5,138,0,0,4863,4864,5,175,0,0,4864,4865,3,790,395,0,4865,4866, - 5,309,0,0,4866,4867,5,94,0,0,4867,4868,3,788,394,0,4868,5059,1,0, - 0,0,4869,4870,5,138,0,0,4870,4871,7,62,0,0,4871,4872,3,318,159,0, - 4872,4873,5,309,0,0,4873,4874,5,94,0,0,4874,4875,3,820,410,0,4875, - 5059,1,0,0,0,4876,4877,5,138,0,0,4877,4878,5,211,0,0,4878,4879,3, - 384,192,0,4879,4880,5,309,0,0,4880,4881,5,94,0,0,4881,4882,3,806, - 403,0,4882,5059,1,0,0,0,4883,4884,5,138,0,0,4884,4885,5,278,0,0, - 4885,4886,7,32,0,0,4886,4887,3,318,159,0,4887,4888,3,172,86,0,4888, - 4889,5,309,0,0,4889,4890,5,94,0,0,4890,4891,3,820,410,0,4891,5059, - 1,0,0,0,4892,4893,5,138,0,0,4893,4894,5,296,0,0,4894,4895,3,380, - 190,0,4895,4896,5,309,0,0,4896,4897,5,94,0,0,4897,4898,3,800,400, - 0,4898,5059,1,0,0,0,4899,4900,5,138,0,0,4900,4901,5,323,0,0,4901, - 4902,3,792,396,0,4902,4903,5,309,0,0,4903,4904,5,94,0,0,4904,4905, - 3,32,16,0,4905,5059,1,0,0,0,4906,4907,5,138,0,0,4907,4909,7,63,0, - 0,4908,4910,3,424,212,0,4909,4908,1,0,0,0,4909,4910,1,0,0,0,4910, - 4911,1,0,0,0,4911,4912,3,782,391,0,4912,4913,5,309,0,0,4913,4914, - 5,94,0,0,4914,4915,3,820,410,0,4915,5059,1,0,0,0,4916,4918,5,138, - 0,0,4917,4919,5,259,0,0,4918,4917,1,0,0,0,4918,4919,1,0,0,0,4919, - 4920,1,0,0,0,4920,4922,5,376,0,0,4921,4923,3,424,212,0,4922,4921, - 1,0,0,0,4922,4923,1,0,0,0,4923,4924,1,0,0,0,4924,4925,3,780,390, - 0,4925,4926,5,309,0,0,4926,4927,5,94,0,0,4927,4928,3,778,389,0,4928, - 5059,1,0,0,0,4929,4931,5,138,0,0,4930,4932,5,63,0,0,4931,4930,1, - 0,0,0,4931,4932,1,0,0,0,4932,4933,1,0,0,0,4933,4935,5,92,0,0,4934, - 4936,3,424,212,0,4935,4934,1,0,0,0,4935,4936,1,0,0,0,4936,4937,1, - 0,0,0,4937,4938,3,626,313,0,4938,4939,5,309,0,0,4939,4940,5,94,0, - 0,4940,4941,3,774,387,0,4941,5059,1,0,0,0,4942,4967,5,138,0,0,4943, - 4945,5,63,0,0,4944,4943,1,0,0,0,4944,4945,1,0,0,0,4945,4946,1,0, - 0,0,4946,4948,5,92,0,0,4947,4949,3,424,212,0,4948,4947,1,0,0,0,4948, - 4949,1,0,0,0,4949,4950,1,0,0,0,4950,4951,3,626,313,0,4951,4953,5, - 309,0,0,4952,4954,5,44,0,0,4953,4952,1,0,0,0,4953,4954,1,0,0,0,4954, - 4968,1,0,0,0,4955,4957,5,259,0,0,4956,4955,1,0,0,0,4956,4957,1,0, - 0,0,4957,4958,1,0,0,0,4958,4960,5,376,0,0,4959,4961,3,424,212,0, - 4960,4959,1,0,0,0,4960,4961,1,0,0,0,4961,4962,1,0,0,0,4962,4963, - 3,780,390,0,4963,4965,5,309,0,0,4964,4966,5,44,0,0,4965,4964,1,0, - 0,0,4965,4966,1,0,0,0,4966,4968,1,0,0,0,4967,4944,1,0,0,0,4967,4956, - 1,0,0,0,4968,4969,1,0,0,0,4969,4970,3,802,401,0,4970,4971,5,94,0, - 0,4971,4972,3,804,402,0,4972,5059,1,0,0,0,4973,4981,5,138,0,0,4974, - 4976,5,92,0,0,4975,4977,3,424,212,0,4976,4975,1,0,0,0,4976,4977, - 1,0,0,0,4977,4978,1,0,0,0,4978,4982,3,626,313,0,4979,4980,5,189, - 0,0,4980,4982,3,318,159,0,4981,4974,1,0,0,0,4981,4979,1,0,0,0,4982, - 4983,1,0,0,0,4983,4984,5,309,0,0,4984,4985,5,45,0,0,4985,4986,3, - 820,410,0,4986,4987,5,94,0,0,4987,4988,3,820,410,0,4988,5059,1,0, - 0,0,4989,4996,5,138,0,0,4990,4992,5,445,0,0,4991,4993,3,424,212, - 0,4992,4991,1,0,0,0,4992,4993,1,0,0,0,4993,4997,1,0,0,0,4994,4997, - 5,321,0,0,4995,4997,5,357,0,0,4996,4990,1,0,0,0,4996,4994,1,0,0, - 0,4996,4995,1,0,0,0,4997,4998,1,0,0,0,4998,4999,3,820,410,0,4999, - 5000,5,80,0,0,5000,5001,3,782,391,0,5001,5002,5,309,0,0,5002,5003, - 5,94,0,0,5003,5004,3,820,410,0,5004,5059,1,0,0,0,5005,5018,5,138, - 0,0,5006,5007,5,63,0,0,5007,5008,5,174,0,0,5008,5019,5,381,0,0,5009, - 5011,5,295,0,0,5010,5009,1,0,0,0,5010,5011,1,0,0,0,5011,5012,1,0, - 0,0,5012,5019,5,247,0,0,5013,5019,5,452,0,0,5014,5019,5,331,0,0, - 5015,5019,5,451,0,0,5016,5017,5,198,0,0,5017,5019,5,357,0,0,5018, - 5006,1,0,0,0,5018,5010,1,0,0,0,5018,5013,1,0,0,0,5018,5014,1,0,0, - 0,5018,5015,1,0,0,0,5018,5016,1,0,0,0,5019,5020,1,0,0,0,5020,5021, - 3,820,410,0,5021,5022,5,309,0,0,5022,5023,5,94,0,0,5023,5024,3,820, - 410,0,5024,5059,1,0,0,0,5025,5026,5,138,0,0,5026,5027,7,46,0,0,5027, - 5028,3,816,408,0,5028,5029,5,309,0,0,5029,5030,5,94,0,0,5030,5031, - 3,816,408,0,5031,5059,1,0,0,0,5032,5033,5,138,0,0,5033,5034,3,178, - 89,0,5034,5035,5,309,0,0,5035,5036,5,94,0,0,5036,5037,3,770,385, - 0,5037,5059,1,0,0,0,5038,5039,5,138,0,0,5039,5040,5,355,0,0,5040, - 5041,5,325,0,0,5041,5042,7,42,0,0,5042,5043,3,318,159,0,5043,5044, - 5,309,0,0,5044,5045,5,94,0,0,5045,5046,3,820,410,0,5046,5059,1,0, - 0,0,5047,5048,5,138,0,0,5048,5049,5,360,0,0,5049,5050,3,318,159, - 0,5050,5051,5,309,0,0,5051,5052,5,143,0,0,5052,5053,3,820,410,0, - 5053,5054,5,94,0,0,5054,5056,3,820,410,0,5055,5057,3,96,48,0,5056, - 5055,1,0,0,0,5056,5057,1,0,0,0,5057,5059,1,0,0,0,5058,4851,1,0,0, - 0,5058,4862,1,0,0,0,5058,4869,1,0,0,0,5058,4876,1,0,0,0,5058,4883, - 1,0,0,0,5058,4892,1,0,0,0,5058,4899,1,0,0,0,5058,4906,1,0,0,0,5058, - 4916,1,0,0,0,5058,4929,1,0,0,0,5058,4942,1,0,0,0,5058,4973,1,0,0, - 0,5058,4989,1,0,0,0,5058,5005,1,0,0,0,5058,5025,1,0,0,0,5058,5032, - 1,0,0,0,5058,5038,1,0,0,0,5058,5047,1,0,0,0,5059,435,1,0,0,0,5060, - 5077,5,138,0,0,5061,5062,5,211,0,0,5062,5078,3,384,192,0,5063,5064, - 5,296,0,0,5064,5078,3,380,190,0,5065,5066,5,442,0,0,5066,5078,3, - 376,188,0,5067,5068,5,357,0,0,5068,5069,3,820,410,0,5069,5070,5, - 80,0,0,5070,5071,3,782,391,0,5071,5078,1,0,0,0,5072,5073,5,259,0, - 0,5073,5074,5,376,0,0,5074,5078,3,780,390,0,5075,5076,5,226,0,0, - 5076,5078,3,782,391,0,5077,5061,1,0,0,0,5077,5063,1,0,0,0,5077,5065, - 1,0,0,0,5077,5067,1,0,0,0,5077,5072,1,0,0,0,5077,5075,1,0,0,0,5078, - 5080,1,0,0,0,5079,5081,5,269,0,0,5080,5079,1,0,0,0,5080,5081,1,0, - 0,0,5081,5082,1,0,0,0,5082,5083,5,462,0,0,5083,5084,5,80,0,0,5084, - 5085,5,204,0,0,5085,5086,3,820,410,0,5086,437,1,0,0,0,5087,5126, - 5,138,0,0,5088,5089,5,136,0,0,5089,5127,3,396,198,0,5090,5091,5, - 204,0,0,5091,5127,3,820,410,0,5092,5093,5,211,0,0,5093,5127,3,384, - 192,0,5094,5095,5,278,0,0,5095,5127,3,418,209,0,5096,5097,5,278, - 0,0,5097,5098,7,32,0,0,5098,5099,3,318,159,0,5099,5100,3,172,86, - 0,5100,5127,1,0,0,0,5101,5102,5,296,0,0,5102,5127,3,380,190,0,5103, - 5104,5,442,0,0,5104,5127,3,376,188,0,5105,5107,5,328,0,0,5106,5108, - 3,424,212,0,5107,5106,1,0,0,0,5107,5108,1,0,0,0,5108,5109,1,0,0, - 0,5109,5127,3,782,391,0,5110,5112,5,259,0,0,5111,5110,1,0,0,0,5111, - 5112,1,0,0,0,5112,5113,1,0,0,0,5113,5115,5,376,0,0,5114,5116,3,424, - 212,0,5115,5114,1,0,0,0,5115,5116,1,0,0,0,5116,5117,1,0,0,0,5117, - 5127,3,780,390,0,5118,5120,5,63,0,0,5119,5118,1,0,0,0,5119,5120, - 1,0,0,0,5120,5121,1,0,0,0,5121,5123,5,92,0,0,5122,5124,3,424,212, - 0,5123,5122,1,0,0,0,5123,5124,1,0,0,0,5124,5125,1,0,0,0,5125,5127, - 3,626,313,0,5126,5088,1,0,0,0,5126,5090,1,0,0,0,5126,5092,1,0,0, - 0,5126,5094,1,0,0,0,5126,5096,1,0,0,0,5126,5101,1,0,0,0,5126,5103, - 1,0,0,0,5126,5105,1,0,0,0,5126,5111,1,0,0,0,5126,5119,1,0,0,0,5127, - 5128,1,0,0,0,5128,5129,5,333,0,0,5129,5130,5,323,0,0,5130,5131,3, - 792,396,0,5131,5149,1,0,0,0,5132,5141,5,138,0,0,5133,5134,5,355, - 0,0,5134,5135,5,325,0,0,5135,5142,7,42,0,0,5136,5142,5,108,0,0,5137, - 5142,5,168,0,0,5138,5142,5,189,0,0,5139,5142,5,342,0,0,5140,5142, - 5,360,0,0,5141,5133,1,0,0,0,5141,5136,1,0,0,0,5141,5137,1,0,0,0, - 5141,5138,1,0,0,0,5141,5139,1,0,0,0,5141,5140,1,0,0,0,5142,5143, - 1,0,0,0,5143,5144,3,318,159,0,5144,5145,5,333,0,0,5145,5146,5,323, - 0,0,5146,5147,3,792,396,0,5147,5149,1,0,0,0,5148,5087,1,0,0,0,5148, - 5132,1,0,0,0,5149,439,1,0,0,0,5150,5151,5,138,0,0,5151,5152,5,278, - 0,0,5152,5153,3,418,209,0,5153,5154,5,333,0,0,5154,5155,3,442,221, - 0,5155,441,1,0,0,0,5156,5157,5,2,0,0,5157,5162,3,444,222,0,5158, - 5159,5,6,0,0,5159,5161,3,444,222,0,5160,5158,1,0,0,0,5161,5164,1, - 0,0,0,5162,5160,1,0,0,0,5162,5163,1,0,0,0,5163,5165,1,0,0,0,5164, - 5162,1,0,0,0,5165,5166,5,3,0,0,5166,443,1,0,0,0,5167,5168,3,826, - 413,0,5168,5175,5,10,0,0,5169,5176,5,407,0,0,5170,5176,3,390,195, - 0,5171,5176,3,836,418,0,5172,5176,3,728,364,0,5173,5176,3,204,102, - 0,5174,5176,3,810,405,0,5175,5169,1,0,0,0,5175,5170,1,0,0,0,5175, - 5171,1,0,0,0,5175,5172,1,0,0,0,5175,5173,1,0,0,0,5175,5174,1,0,0, - 0,5176,445,1,0,0,0,5177,5178,5,138,0,0,5178,5179,5,360,0,0,5179, - 5180,3,318,159,0,5180,5181,5,333,0,0,5181,5182,3,442,221,0,5182, - 447,1,0,0,0,5183,5184,5,138,0,0,5184,5185,5,278,0,0,5185,5186,7, - 32,0,0,5186,5187,3,318,159,0,5187,5188,3,172,86,0,5188,5189,5,282, - 0,0,5189,5190,5,94,0,0,5190,5191,3,816,408,0,5191,5258,1,0,0,0,5192, - 5219,5,138,0,0,5193,5194,5,136,0,0,5194,5220,3,396,198,0,5195,5196, - 5,175,0,0,5196,5220,3,790,395,0,5197,5198,5,211,0,0,5198,5220,3, - 384,192,0,5199,5201,5,295,0,0,5200,5199,1,0,0,0,5200,5201,1,0,0, - 0,5201,5202,1,0,0,0,5202,5203,5,247,0,0,5203,5220,3,820,410,0,5204, - 5205,5,248,0,0,5205,5206,5,274,0,0,5206,5220,3,204,102,0,5207,5208, - 5,248,0,0,5208,5209,5,274,0,0,5209,5220,3,204,102,0,5210,5211,5, - 278,0,0,5211,5220,3,418,209,0,5212,5213,5,296,0,0,5213,5220,3,380, - 190,0,5214,5215,5,442,0,0,5215,5220,3,376,188,0,5216,5217,5,323, - 0,0,5217,5220,3,792,396,0,5218,5220,3,178,89,0,5219,5193,1,0,0,0, - 5219,5195,1,0,0,0,5219,5197,1,0,0,0,5219,5200,1,0,0,0,5219,5204, - 1,0,0,0,5219,5207,1,0,0,0,5219,5210,1,0,0,0,5219,5212,1,0,0,0,5219, - 5214,1,0,0,0,5219,5216,1,0,0,0,5219,5218,1,0,0,0,5220,5221,1,0,0, - 0,5221,5222,5,282,0,0,5222,5223,5,94,0,0,5223,5224,3,816,408,0,5224, - 5258,1,0,0,0,5225,5234,5,138,0,0,5226,5227,5,355,0,0,5227,5228,5, - 325,0,0,5228,5235,7,64,0,0,5229,5235,5,108,0,0,5230,5235,5,168,0, - 0,5231,5235,5,189,0,0,5232,5235,5,360,0,0,5233,5235,5,342,0,0,5234, - 5226,1,0,0,0,5234,5229,1,0,0,0,5234,5230,1,0,0,0,5234,5231,1,0,0, - 0,5234,5232,1,0,0,0,5234,5233,1,0,0,0,5235,5236,1,0,0,0,5236,5237, - 3,318,159,0,5237,5238,5,282,0,0,5238,5239,5,94,0,0,5239,5240,3,816, - 408,0,5240,5258,1,0,0,0,5241,5250,5,138,0,0,5242,5251,5,331,0,0, - 5243,5244,5,63,0,0,5244,5245,5,174,0,0,5245,5251,5,381,0,0,5246, - 5247,5,198,0,0,5247,5251,5,357,0,0,5248,5251,5,452,0,0,5249,5251, - 5,451,0,0,5250,5242,1,0,0,0,5250,5243,1,0,0,0,5250,5246,1,0,0,0, - 5250,5248,1,0,0,0,5250,5249,1,0,0,0,5251,5252,1,0,0,0,5252,5253, - 3,820,410,0,5253,5254,5,282,0,0,5254,5255,5,94,0,0,5255,5256,3,816, - 408,0,5256,5258,1,0,0,0,5257,5183,1,0,0,0,5257,5192,1,0,0,0,5257, - 5225,1,0,0,0,5257,5241,1,0,0,0,5258,449,1,0,0,0,5259,5260,5,46,0, - 0,5260,5261,5,452,0,0,5261,5268,3,820,410,0,5262,5263,5,62,0,0,5263, - 5264,5,92,0,0,5264,5269,3,630,315,0,5265,5266,5,62,0,0,5266,5267, - 5,30,0,0,5267,5269,5,350,0,0,5268,5262,1,0,0,0,5268,5265,1,0,0,0, - 5268,5269,1,0,0,0,5269,5271,1,0,0,0,5270,5272,3,402,201,0,5271,5270, - 1,0,0,0,5271,5272,1,0,0,0,5272,451,1,0,0,0,5273,5274,5,138,0,0,5274, - 5275,5,452,0,0,5275,5293,3,820,410,0,5276,5277,5,282,0,0,5277,5278, - 5,94,0,0,5278,5294,3,816,408,0,5279,5280,5,333,0,0,5280,5294,3,286, - 143,0,5281,5282,5,309,0,0,5282,5283,5,94,0,0,5283,5294,3,820,410, - 0,5284,5285,7,35,0,0,5285,5290,3,628,314,0,5286,5287,5,6,0,0,5287, - 5289,3,628,314,0,5288,5286,1,0,0,0,5289,5292,1,0,0,0,5290,5288,1, - 0,0,0,5290,5291,1,0,0,0,5291,5294,1,0,0,0,5292,5290,1,0,0,0,5293, - 5276,1,0,0,0,5293,5279,1,0,0,0,5293,5281,1,0,0,0,5293,5284,1,0,0, - 0,5294,453,1,0,0,0,5295,5296,5,46,0,0,5296,5297,5,451,0,0,5297,5298, - 3,820,410,0,5298,5299,5,164,0,0,5299,5300,3,810,405,0,5300,5301, - 5,452,0,0,5301,5306,3,826,413,0,5302,5303,5,6,0,0,5303,5305,3,826, - 413,0,5304,5302,1,0,0,0,5305,5308,1,0,0,0,5306,5304,1,0,0,0,5306, - 5307,1,0,0,0,5307,5310,1,0,0,0,5308,5306,1,0,0,0,5309,5311,3,402, - 201,0,5310,5309,1,0,0,0,5310,5311,1,0,0,0,5311,455,1,0,0,0,5312, - 5313,5,138,0,0,5313,5314,5,451,0,0,5314,5315,3,820,410,0,5315,5316, - 5,333,0,0,5316,5317,3,286,143,0,5317,5369,1,0,0,0,5318,5319,5,138, - 0,0,5319,5320,5,451,0,0,5320,5321,3,820,410,0,5321,5322,5,164,0, - 0,5322,5323,3,810,405,0,5323,5369,1,0,0,0,5324,5325,5,138,0,0,5325, - 5326,5,451,0,0,5326,5327,3,820,410,0,5327,5328,5,305,0,0,5328,5330, - 5,452,0,0,5329,5331,3,402,201,0,5330,5329,1,0,0,0,5330,5331,1,0, - 0,0,5331,5369,1,0,0,0,5332,5333,5,138,0,0,5333,5334,5,451,0,0,5334, - 5335,3,820,410,0,5335,5336,7,35,0,0,5336,5337,5,452,0,0,5337,5342, - 3,826,413,0,5338,5339,5,6,0,0,5339,5341,3,826,413,0,5340,5338,1, - 0,0,0,5341,5344,1,0,0,0,5342,5340,1,0,0,0,5342,5343,1,0,0,0,5343, - 5346,1,0,0,0,5344,5342,1,0,0,0,5345,5347,3,402,201,0,5346,5345,1, - 0,0,0,5346,5347,1,0,0,0,5347,5369,1,0,0,0,5348,5349,5,138,0,0,5349, - 5350,5,451,0,0,5350,5351,3,820,410,0,5351,5352,7,65,0,0,5352,5369, - 1,0,0,0,5353,5354,5,138,0,0,5354,5355,5,451,0,0,5355,5356,3,820, - 410,0,5356,5357,5,465,0,0,5357,5358,5,2,0,0,5358,5359,3,292,146, - 0,5359,5360,5,3,0,0,5360,5369,1,0,0,0,5361,5362,5,138,0,0,5362,5363, - 5,451,0,0,5363,5364,3,820,410,0,5364,5365,5,282,0,0,5365,5366,5, - 94,0,0,5366,5367,3,816,408,0,5367,5369,1,0,0,0,5368,5312,1,0,0,0, - 5368,5318,1,0,0,0,5368,5324,1,0,0,0,5368,5332,1,0,0,0,5368,5348, - 1,0,0,0,5368,5353,1,0,0,0,5368,5361,1,0,0,0,5369,457,1,0,0,0,5370, - 5372,5,46,0,0,5371,5373,3,368,184,0,5372,5371,1,0,0,0,5372,5373, - 1,0,0,0,5373,5374,1,0,0,0,5374,5375,5,321,0,0,5375,5376,3,820,410, - 0,5376,5377,5,36,0,0,5377,5378,5,80,0,0,5378,5379,7,66,0,0,5379, - 5380,5,94,0,0,5380,5382,3,782,391,0,5381,5383,3,640,320,0,5382,5381, - 1,0,0,0,5382,5383,1,0,0,0,5383,5384,1,0,0,0,5384,5386,5,57,0,0,5385, - 5387,7,67,0,0,5386,5385,1,0,0,0,5386,5387,1,0,0,0,5387,5404,1,0, - 0,0,5388,5405,5,270,0,0,5389,5405,3,460,230,0,5390,5392,5,2,0,0, - 5391,5393,3,460,230,0,5392,5391,1,0,0,0,5392,5393,1,0,0,0,5393,5400, - 1,0,0,0,5394,5396,5,7,0,0,5395,5397,3,460,230,0,5396,5395,1,0,0, - 0,5396,5397,1,0,0,0,5397,5399,1,0,0,0,5398,5394,1,0,0,0,5399,5402, - 1,0,0,0,5400,5398,1,0,0,0,5400,5401,1,0,0,0,5401,5403,1,0,0,0,5402, - 5400,1,0,0,0,5403,5405,5,3,0,0,5404,5388,1,0,0,0,5404,5389,1,0,0, - 0,5404,5390,1,0,0,0,5405,459,1,0,0,0,5406,5412,3,562,281,0,5407, - 5412,3,540,270,0,5408,5412,3,554,277,0,5409,5412,3,550,275,0,5410, - 5412,3,462,231,0,5411,5406,1,0,0,0,5411,5407,1,0,0,0,5411,5408,1, - 0,0,0,5411,5409,1,0,0,0,5411,5410,1,0,0,0,5412,461,1,0,0,0,5413, - 5414,5,271,0,0,5414,5416,3,820,410,0,5415,5417,3,464,232,0,5416, - 5415,1,0,0,0,5416,5417,1,0,0,0,5417,463,1,0,0,0,5418,5419,5,6,0, - 0,5419,5420,3,810,405,0,5420,465,1,0,0,0,5421,5422,5,252,0,0,5422, - 5423,3,820,410,0,5423,467,1,0,0,0,5424,5427,5,366,0,0,5425,5428, - 3,820,410,0,5426,5428,5,9,0,0,5427,5425,1,0,0,0,5427,5426,1,0,0, - 0,5428,469,1,0,0,0,5429,5431,5,146,0,0,5430,5432,3,472,236,0,5431, - 5430,1,0,0,0,5431,5432,1,0,0,0,5432,5434,1,0,0,0,5433,5435,3,476, - 238,0,5434,5433,1,0,0,0,5434,5435,1,0,0,0,5435,5475,1,0,0,0,5436, - 5437,5,340,0,0,5437,5439,5,356,0,0,5438,5440,3,476,238,0,5439,5438, - 1,0,0,0,5439,5440,1,0,0,0,5440,5475,1,0,0,0,5441,5442,5,322,0,0, - 5442,5475,3,820,410,0,5443,5445,5,308,0,0,5444,5446,5,322,0,0,5445, - 5444,1,0,0,0,5445,5446,1,0,0,0,5446,5447,1,0,0,0,5447,5475,3,820, - 410,0,5448,5449,5,290,0,0,5449,5450,5,356,0,0,5450,5475,3,810,405, - 0,5451,5452,7,68,0,0,5452,5453,5,291,0,0,5453,5475,3,810,405,0,5454, - 5456,7,69,0,0,5455,5457,3,472,236,0,5456,5455,1,0,0,0,5456,5457, - 1,0,0,0,5457,5463,1,0,0,0,5458,5460,5,33,0,0,5459,5461,5,269,0,0, - 5460,5459,1,0,0,0,5460,5461,1,0,0,0,5461,5462,1,0,0,0,5462,5464, - 5,153,0,0,5463,5458,1,0,0,0,5463,5464,1,0,0,0,5464,5475,1,0,0,0, - 5465,5467,5,319,0,0,5466,5468,3,472,236,0,5467,5466,1,0,0,0,5467, - 5468,1,0,0,0,5468,5469,1,0,0,0,5469,5471,5,94,0,0,5470,5472,5,322, - 0,0,5471,5470,1,0,0,0,5471,5472,1,0,0,0,5472,5473,1,0,0,0,5473,5475, - 3,820,410,0,5474,5429,1,0,0,0,5474,5436,1,0,0,0,5474,5441,1,0,0, - 0,5474,5443,1,0,0,0,5474,5448,1,0,0,0,5474,5451,1,0,0,0,5474,5454, - 1,0,0,0,5474,5465,1,0,0,0,5475,471,1,0,0,0,5476,5477,7,70,0,0,5477, - 473,1,0,0,0,5478,5479,5,244,0,0,5479,5480,5,251,0,0,5480,5488,3, - 50,25,0,5481,5482,5,300,0,0,5482,5488,7,71,0,0,5483,5485,5,77,0, - 0,5484,5483,1,0,0,0,5484,5485,1,0,0,0,5485,5486,1,0,0,0,5486,5488, - 5,54,0,0,5487,5478,1,0,0,0,5487,5481,1,0,0,0,5487,5484,1,0,0,0,5488, - 475,1,0,0,0,5489,5496,3,474,237,0,5490,5492,5,6,0,0,5491,5490,1, - 0,0,0,5491,5492,1,0,0,0,5492,5493,1,0,0,0,5493,5495,3,474,237,0, - 5494,5491,1,0,0,0,5495,5498,1,0,0,0,5496,5494,1,0,0,0,5496,5497, - 1,0,0,0,5497,477,1,0,0,0,5498,5496,1,0,0,0,5499,5502,5,46,0,0,5500, - 5501,5,82,0,0,5501,5503,5,311,0,0,5502,5500,1,0,0,0,5502,5503,1, - 0,0,0,5503,5505,1,0,0,0,5504,5506,3,124,62,0,5505,5504,1,0,0,0,5505, - 5506,1,0,0,0,5506,5522,1,0,0,0,5507,5508,5,376,0,0,5508,5510,3,778, - 389,0,5509,5511,3,148,74,0,5510,5509,1,0,0,0,5510,5511,1,0,0,0,5511, - 5513,1,0,0,0,5512,5514,3,102,51,0,5513,5512,1,0,0,0,5513,5514,1, - 0,0,0,5514,5523,1,0,0,0,5515,5516,5,303,0,0,5516,5517,5,376,0,0, - 5517,5518,3,778,389,0,5518,5520,3,146,73,0,5519,5521,3,102,51,0, - 5520,5519,1,0,0,0,5520,5521,1,0,0,0,5521,5523,1,0,0,0,5522,5507, - 1,0,0,0,5522,5515,1,0,0,0,5523,5524,1,0,0,0,5524,5525,5,36,0,0,5525, - 5532,3,562,281,0,5526,5528,5,105,0,0,5527,5529,7,72,0,0,5528,5527, - 1,0,0,0,5528,5529,1,0,0,0,5529,5530,1,0,0,0,5530,5531,5,42,0,0,5531, - 5533,5,279,0,0,5532,5526,1,0,0,0,5532,5533,1,0,0,0,5533,479,1,0, - 0,0,5534,5535,5,253,0,0,5535,5536,3,810,405,0,5536,481,1,0,0,0,5537, - 5538,5,46,0,0,5538,5539,5,175,0,0,5539,5541,3,788,394,0,5540,5542, - 5,105,0,0,5541,5540,1,0,0,0,5541,5542,1,0,0,0,5542,5548,1,0,0,0, - 5543,5545,3,484,242,0,5544,5543,1,0,0,0,5545,5546,1,0,0,0,5546,5544, - 1,0,0,0,5546,5547,1,0,0,0,5547,5549,1,0,0,0,5548,5544,1,0,0,0,5548, - 5549,1,0,0,0,5549,483,1,0,0,0,5550,5551,5,164,0,0,5551,5559,5,74, - 0,0,5552,5559,5,194,0,0,5553,5559,5,255,0,0,5554,5559,5,282,0,0, - 5555,5559,5,351,0,0,5556,5559,5,353,0,0,5557,5559,3,828,414,0,5558, - 5550,1,0,0,0,5558,5552,1,0,0,0,5558,5553,1,0,0,0,5558,5554,1,0,0, - 0,5558,5555,1,0,0,0,5558,5556,1,0,0,0,5558,5557,1,0,0,0,5559,5561, - 1,0,0,0,5560,5562,5,10,0,0,5561,5560,1,0,0,0,5561,5562,1,0,0,0,5562, - 5566,1,0,0,0,5563,5567,3,814,407,0,5564,5567,3,54,27,0,5565,5567, - 5,53,0,0,5566,5563,1,0,0,0,5566,5564,1,0,0,0,5566,5565,1,0,0,0,5567, - 485,1,0,0,0,5568,5569,5,138,0,0,5569,5570,5,175,0,0,5570,5586,3, - 790,395,0,5571,5572,5,333,0,0,5572,5573,5,351,0,0,5573,5575,3,770, - 385,0,5574,5571,1,0,0,0,5574,5575,1,0,0,0,5575,5587,1,0,0,0,5576, - 5578,5,105,0,0,5577,5576,1,0,0,0,5577,5578,1,0,0,0,5578,5580,1,0, - 0,0,5579,5581,3,484,242,0,5580,5579,1,0,0,0,5581,5582,1,0,0,0,5582, - 5580,1,0,0,0,5582,5583,1,0,0,0,5583,5585,1,0,0,0,5584,5577,1,0,0, - 0,5584,5585,1,0,0,0,5585,5587,1,0,0,0,5586,5574,1,0,0,0,5586,5584, - 1,0,0,0,5587,487,1,0,0,0,5588,5589,5,138,0,0,5589,5590,5,175,0,0, - 5590,5592,3,790,395,0,5591,5593,3,64,32,0,5592,5591,1,0,0,0,5592, - 5593,1,0,0,0,5593,489,1,0,0,0,5594,5595,5,138,0,0,5595,5596,5,108, - 0,0,5596,5597,3,318,159,0,5597,5598,5,305,0,0,5598,5599,5,375,0, - 0,5599,491,1,0,0,0,5600,5601,5,138,0,0,5601,5602,5,349,0,0,5602, - 5603,7,16,0,0,5603,5604,3,40,20,0,5604,493,1,0,0,0,5605,5606,5,46, - 0,0,5606,5607,5,189,0,0,5607,5609,3,318,159,0,5608,5610,5,36,0,0, - 5609,5608,1,0,0,0,5609,5610,1,0,0,0,5610,5611,1,0,0,0,5611,5615, - 3,654,327,0,5612,5614,3,136,68,0,5613,5612,1,0,0,0,5614,5617,1,0, - 0,0,5615,5613,1,0,0,0,5615,5616,1,0,0,0,5616,495,1,0,0,0,5617,5615, - 1,0,0,0,5618,5619,5,138,0,0,5619,5620,5,189,0,0,5620,5643,3,318, - 159,0,5621,5644,3,94,47,0,5622,5623,7,15,0,0,5623,5624,5,77,0,0, - 5624,5644,5,78,0,0,5625,5628,5,133,0,0,5626,5627,5,45,0,0,5627,5629, - 3,820,410,0,5628,5626,1,0,0,0,5628,5629,1,0,0,0,5629,5630,1,0,0, - 0,5630,5644,3,144,72,0,5631,5632,5,191,0,0,5632,5634,5,45,0,0,5633, - 5635,3,424,212,0,5634,5633,1,0,0,0,5634,5635,1,0,0,0,5635,5636,1, - 0,0,0,5636,5638,3,820,410,0,5637,5639,3,96,48,0,5638,5637,1,0,0, - 0,5638,5639,1,0,0,0,5639,5644,1,0,0,0,5640,5641,5,372,0,0,5641,5642, - 5,45,0,0,5642,5644,3,820,410,0,5643,5621,1,0,0,0,5643,5622,1,0,0, - 0,5643,5625,1,0,0,0,5643,5631,1,0,0,0,5643,5640,1,0,0,0,5644,497, - 1,0,0,0,5645,5646,5,138,0,0,5646,5647,5,355,0,0,5647,5648,5,325, - 0,0,5648,5649,5,185,0,0,5649,5650,3,318,159,0,5650,5651,3,286,143, - 0,5651,499,1,0,0,0,5652,5653,5,138,0,0,5653,5654,5,355,0,0,5654, - 5655,5,325,0,0,5655,5656,5,163,0,0,5656,5657,3,318,159,0,5657,5658, - 7,73,0,0,5658,5659,5,257,0,0,5659,5660,5,62,0,0,5660,5661,3,786, - 393,0,5661,5662,5,105,0,0,5662,5663,3,316,158,0,5663,5694,1,0,0, - 0,5664,5665,5,138,0,0,5665,5666,5,355,0,0,5666,5667,5,325,0,0,5667, - 5668,5,163,0,0,5668,5669,3,318,159,0,5669,5670,5,138,0,0,5670,5673, - 5,257,0,0,5671,5672,5,62,0,0,5672,5674,3,786,393,0,5673,5671,1,0, - 0,0,5673,5674,1,0,0,0,5674,5675,1,0,0,0,5675,5676,5,311,0,0,5676, - 5677,3,318,159,0,5677,5678,5,105,0,0,5678,5679,3,318,159,0,5679, - 5694,1,0,0,0,5680,5681,5,138,0,0,5681,5682,5,355,0,0,5682,5683,5, - 325,0,0,5683,5684,5,163,0,0,5684,5685,3,318,159,0,5685,5686,5,191, - 0,0,5686,5688,5,257,0,0,5687,5689,3,424,212,0,5688,5687,1,0,0,0, - 5688,5689,1,0,0,0,5689,5690,1,0,0,0,5690,5691,5,62,0,0,5691,5692, - 3,786,393,0,5692,5694,1,0,0,0,5693,5652,1,0,0,0,5693,5664,1,0,0, - 0,5693,5680,1,0,0,0,5694,501,1,0,0,0,5695,5697,5,46,0,0,5696,5698, - 5,53,0,0,5697,5696,1,0,0,0,5697,5698,1,0,0,0,5698,5699,1,0,0,0,5699, - 5700,5,168,0,0,5700,5701,3,318,159,0,5701,5702,5,62,0,0,5702,5703, - 3,810,405,0,5703,5704,5,94,0,0,5704,5705,3,810,405,0,5705,5706,5, - 64,0,0,5706,5707,3,318,159,0,5707,503,1,0,0,0,5708,5710,5,158,0, - 0,5709,5711,3,516,258,0,5710,5709,1,0,0,0,5710,5711,1,0,0,0,5711, - 5716,1,0,0,0,5712,5714,3,776,388,0,5713,5715,3,172,86,0,5714,5713, - 1,0,0,0,5714,5715,1,0,0,0,5715,5717,1,0,0,0,5716,5712,1,0,0,0,5716, - 5717,1,0,0,0,5717,5734,1,0,0,0,5718,5719,5,158,0,0,5719,5720,5,2, - 0,0,5720,5725,3,516,258,0,5721,5722,5,6,0,0,5722,5724,3,516,258, - 0,5723,5721,1,0,0,0,5724,5727,1,0,0,0,5725,5723,1,0,0,0,5725,5726, - 1,0,0,0,5726,5728,1,0,0,0,5727,5725,1,0,0,0,5728,5729,5,3,0,0,5729, - 5731,3,776,388,0,5730,5732,3,172,86,0,5731,5730,1,0,0,0,5731,5732, - 1,0,0,0,5732,5734,1,0,0,0,5733,5708,1,0,0,0,5733,5718,1,0,0,0,5734, - 505,1,0,0,0,5735,5751,5,370,0,0,5736,5738,5,113,0,0,5737,5736,1, - 0,0,0,5737,5738,1,0,0,0,5738,5740,1,0,0,0,5739,5741,5,112,0,0,5740, - 5739,1,0,0,0,5740,5741,1,0,0,0,5741,5743,1,0,0,0,5742,5744,3,516, - 258,0,5743,5742,1,0,0,0,5743,5744,1,0,0,0,5744,5746,1,0,0,0,5745, - 5747,3,510,255,0,5746,5745,1,0,0,0,5746,5747,1,0,0,0,5747,5752,1, - 0,0,0,5748,5750,3,526,263,0,5749,5748,1,0,0,0,5749,5750,1,0,0,0, - 5750,5752,1,0,0,0,5751,5737,1,0,0,0,5751,5749,1,0,0,0,5752,5754, - 1,0,0,0,5753,5755,3,520,260,0,5754,5753,1,0,0,0,5754,5755,1,0,0, - 0,5755,507,1,0,0,0,5756,5771,3,510,255,0,5757,5759,3,516,258,0,5758, - 5757,1,0,0,0,5758,5759,1,0,0,0,5759,5772,1,0,0,0,5760,5761,5,2,0, - 0,5761,5766,3,514,257,0,5762,5763,5,6,0,0,5763,5765,3,514,257,0, - 5764,5762,1,0,0,0,5765,5768,1,0,0,0,5766,5764,1,0,0,0,5766,5767, - 1,0,0,0,5767,5769,1,0,0,0,5768,5766,1,0,0,0,5769,5770,5,3,0,0,5770, - 5772,1,0,0,0,5771,5758,1,0,0,0,5771,5760,1,0,0,0,5772,5774,1,0,0, - 0,5773,5775,3,520,260,0,5774,5773,1,0,0,0,5774,5775,1,0,0,0,5775, - 509,1,0,0,0,5776,5777,7,74,0,0,5777,511,1,0,0,0,5778,5781,3,824, - 412,0,5779,5781,3,510,255,0,5780,5778,1,0,0,0,5780,5779,1,0,0,0, - 5781,5784,1,0,0,0,5782,5785,3,54,27,0,5783,5785,3,204,102,0,5784, - 5782,1,0,0,0,5784,5783,1,0,0,0,5784,5785,1,0,0,0,5785,513,1,0,0, - 0,5786,5788,7,75,0,0,5787,5789,7,76,0,0,5788,5787,1,0,0,0,5788,5789, - 1,0,0,0,5789,5796,1,0,0,0,5790,5793,5,548,0,0,5791,5794,3,204,102, - 0,5792,5794,3,810,405,0,5793,5791,1,0,0,0,5793,5792,1,0,0,0,5794, - 5796,1,0,0,0,5795,5786,1,0,0,0,5795,5790,1,0,0,0,5796,515,1,0,0, - 0,5797,5799,5,128,0,0,5798,5800,7,76,0,0,5799,5798,1,0,0,0,5799, - 5800,1,0,0,0,5800,517,1,0,0,0,5801,5803,3,776,388,0,5802,5804,3, - 146,73,0,5803,5802,1,0,0,0,5803,5804,1,0,0,0,5804,519,1,0,0,0,5805, - 5810,3,518,259,0,5806,5807,5,6,0,0,5807,5809,3,518,259,0,5808,5806, - 1,0,0,0,5809,5812,1,0,0,0,5810,5808,1,0,0,0,5810,5811,1,0,0,0,5811, - 521,1,0,0,0,5812,5810,1,0,0,0,5813,5824,5,203,0,0,5814,5825,3,526, - 263,0,5815,5817,5,128,0,0,5816,5815,1,0,0,0,5816,5817,1,0,0,0,5817, - 5825,1,0,0,0,5818,5820,3,510,255,0,5819,5821,3,516,258,0,5820,5819, - 1,0,0,0,5820,5821,1,0,0,0,5821,5823,1,0,0,0,5822,5818,1,0,0,0,5822, - 5823,1,0,0,0,5823,5825,1,0,0,0,5824,5814,1,0,0,0,5824,5816,1,0,0, - 0,5824,5822,1,0,0,0,5825,5826,1,0,0,0,5826,5827,3,524,262,0,5827, - 523,1,0,0,0,5828,5838,3,562,281,0,5829,5838,3,540,270,0,5830,5838, - 3,554,277,0,5831,5838,3,550,275,0,5832,5838,3,560,280,0,5833,5838, - 3,188,94,0,5834,5838,3,194,97,0,5835,5838,3,196,98,0,5836,5838,3, - 534,267,0,5837,5828,1,0,0,0,5837,5829,1,0,0,0,5837,5830,1,0,0,0, - 5837,5831,1,0,0,0,5837,5832,1,0,0,0,5837,5833,1,0,0,0,5837,5834, - 1,0,0,0,5837,5835,1,0,0,0,5837,5836,1,0,0,0,5838,525,1,0,0,0,5839, - 5840,5,2,0,0,5840,5845,3,512,256,0,5841,5842,5,6,0,0,5842,5844,3, - 512,256,0,5843,5841,1,0,0,0,5844,5847,1,0,0,0,5845,5843,1,0,0,0, - 5845,5846,1,0,0,0,5846,5848,1,0,0,0,5847,5845,1,0,0,0,5848,5849, - 5,3,0,0,5849,527,1,0,0,0,5850,5851,5,290,0,0,5851,5853,3,820,410, - 0,5852,5854,3,530,265,0,5853,5852,1,0,0,0,5853,5854,1,0,0,0,5854, - 5855,1,0,0,0,5855,5856,5,36,0,0,5856,5857,3,532,266,0,5857,529,1, - 0,0,0,5858,5859,5,2,0,0,5859,5864,3,654,327,0,5860,5861,5,6,0,0, - 5861,5863,3,654,327,0,5862,5860,1,0,0,0,5863,5866,1,0,0,0,5864,5862, - 1,0,0,0,5864,5865,1,0,0,0,5865,5867,1,0,0,0,5866,5864,1,0,0,0,5867, - 5868,5,3,0,0,5868,531,1,0,0,0,5869,5875,3,562,281,0,5870,5875,3, - 540,270,0,5871,5875,3,554,277,0,5872,5875,3,550,275,0,5873,5875, - 3,902,451,0,5874,5869,1,0,0,0,5874,5870,1,0,0,0,5874,5871,1,0,0, - 0,5874,5872,1,0,0,0,5874,5873,1,0,0,0,5875,533,1,0,0,0,5876,5877, - 5,202,0,0,5877,5879,3,820,410,0,5878,5880,3,536,268,0,5879,5878, - 1,0,0,0,5879,5880,1,0,0,0,5880,5900,1,0,0,0,5881,5883,5,46,0,0,5882, - 5884,3,124,62,0,5883,5882,1,0,0,0,5883,5884,1,0,0,0,5884,5885,1, - 0,0,0,5885,5887,5,92,0,0,5886,5888,3,296,148,0,5887,5886,1,0,0,0, - 5887,5888,1,0,0,0,5888,5889,1,0,0,0,5889,5890,3,190,95,0,5890,5891, - 5,36,0,0,5891,5892,5,202,0,0,5892,5894,3,820,410,0,5893,5895,3,536, - 268,0,5894,5893,1,0,0,0,5894,5895,1,0,0,0,5895,5897,1,0,0,0,5896, - 5898,3,192,96,0,5897,5896,1,0,0,0,5897,5898,1,0,0,0,5898,5900,1, - 0,0,0,5899,5876,1,0,0,0,5899,5881,1,0,0,0,5900,535,1,0,0,0,5901, - 5902,5,2,0,0,5902,5903,3,732,366,0,5903,5904,5,3,0,0,5904,537,1, - 0,0,0,5905,5907,5,177,0,0,5906,5908,5,290,0,0,5907,5906,1,0,0,0, - 5907,5908,1,0,0,0,5908,5911,1,0,0,0,5909,5912,3,820,410,0,5910,5912, - 5,30,0,0,5911,5909,1,0,0,0,5911,5910,1,0,0,0,5912,539,1,0,0,0,5913, - 5915,3,574,287,0,5914,5913,1,0,0,0,5914,5915,1,0,0,0,5915,5916,1, - 0,0,0,5916,5917,5,241,0,0,5917,5918,5,71,0,0,5918,5921,3,776,388, - 0,5919,5920,5,36,0,0,5920,5922,3,820,410,0,5921,5919,1,0,0,0,5921, - 5922,1,0,0,0,5922,5923,1,0,0,0,5923,5945,3,542,271,0,5924,5925,5, - 80,0,0,5925,5933,5,464,0,0,5926,5928,3,362,181,0,5927,5929,3,640, - 320,0,5928,5927,1,0,0,0,5928,5929,1,0,0,0,5929,5934,1,0,0,0,5930, - 5931,5,80,0,0,5931,5932,5,45,0,0,5932,5934,3,820,410,0,5933,5926, - 1,0,0,0,5933,5930,1,0,0,0,5933,5934,1,0,0,0,5934,5935,1,0,0,0,5935, - 5943,5,57,0,0,5936,5937,5,369,0,0,5937,5938,5,333,0,0,5938,5940, - 3,556,278,0,5939,5941,3,640,320,0,5940,5939,1,0,0,0,5940,5941,1, - 0,0,0,5941,5944,1,0,0,0,5942,5944,5,270,0,0,5943,5936,1,0,0,0,5943, - 5942,1,0,0,0,5944,5946,1,0,0,0,5945,5924,1,0,0,0,5945,5946,1,0,0, - 0,5946,5948,1,0,0,0,5947,5949,3,548,274,0,5948,5947,1,0,0,0,5948, - 5949,1,0,0,0,5949,541,1,0,0,0,5950,5951,5,2,0,0,5951,5952,3,544, - 272,0,5952,5953,5,3,0,0,5953,5955,1,0,0,0,5954,5950,1,0,0,0,5954, - 5955,1,0,0,0,5955,5959,1,0,0,0,5956,5957,5,463,0,0,5957,5958,7,77, - 0,0,5958,5960,5,450,0,0,5959,5956,1,0,0,0,5959,5960,1,0,0,0,5960, - 5963,1,0,0,0,5961,5964,3,912,456,0,5962,5964,3,562,281,0,5963,5961, - 1,0,0,0,5963,5962,1,0,0,0,5964,543,1,0,0,0,5965,5970,3,546,273,0, - 5966,5967,5,6,0,0,5967,5969,3,546,273,0,5968,5966,1,0,0,0,5969,5972, - 1,0,0,0,5970,5968,1,0,0,0,5970,5971,1,0,0,0,5971,545,1,0,0,0,5972, - 5970,1,0,0,0,5973,5974,3,802,401,0,5974,5975,3,756,378,0,5975,547, - 1,0,0,0,5976,5977,5,87,0,0,5977,5978,3,758,379,0,5978,549,1,0,0, - 0,5979,5981,3,574,287,0,5980,5979,1,0,0,0,5980,5981,1,0,0,0,5981, - 5982,1,0,0,0,5982,5983,5,182,0,0,5983,5984,5,64,0,0,5984,5987,3, - 632,316,0,5985,5986,5,100,0,0,5986,5988,3,614,307,0,5987,5985,1, - 0,0,0,5987,5988,1,0,0,0,5988,5990,1,0,0,0,5989,5991,3,642,321,0, - 5990,5989,1,0,0,0,5990,5991,1,0,0,0,5991,5993,1,0,0,0,5992,5994, - 3,548,274,0,5993,5992,1,0,0,0,5993,5994,1,0,0,0,5994,551,1,0,0,0, - 5995,5997,5,256,0,0,5996,5998,5,92,0,0,5997,5996,1,0,0,0,5997,5998, - 1,0,0,0,5998,5999,1,0,0,0,5999,6014,3,630,315,0,6000,6011,5,68,0, - 0,6001,6002,7,78,0,0,6002,6012,7,79,0,0,6003,6008,5,334,0,0,6004, - 6005,5,369,0,0,6005,6009,5,201,0,0,6006,6007,5,414,0,0,6007,6009, - 5,201,0,0,6008,6004,1,0,0,0,6008,6006,1,0,0,0,6008,6009,1,0,0,0, - 6009,6012,1,0,0,0,6010,6012,5,201,0,0,6011,6001,1,0,0,0,6011,6003, - 1,0,0,0,6011,6010,1,0,0,0,6012,6013,1,0,0,0,6013,6015,5,263,0,0, - 6014,6000,1,0,0,0,6014,6015,1,0,0,0,6015,6017,1,0,0,0,6016,6018, - 5,272,0,0,6017,6016,1,0,0,0,6017,6018,1,0,0,0,6018,553,1,0,0,0,6019, - 6021,3,574,287,0,6020,6019,1,0,0,0,6020,6021,1,0,0,0,6021,6022,1, - 0,0,0,6022,6023,5,369,0,0,6023,6024,3,632,316,0,6024,6025,5,333, - 0,0,6025,6027,3,556,278,0,6026,6028,3,612,306,0,6027,6026,1,0,0, - 0,6027,6028,1,0,0,0,6028,6030,1,0,0,0,6029,6031,3,642,321,0,6030, - 6029,1,0,0,0,6030,6031,1,0,0,0,6031,6033,1,0,0,0,6032,6034,3,548, - 274,0,6033,6032,1,0,0,0,6033,6034,1,0,0,0,6034,555,1,0,0,0,6035, - 6040,3,558,279,0,6036,6037,5,6,0,0,6037,6039,3,558,279,0,6038,6036, - 1,0,0,0,6039,6042,1,0,0,0,6040,6038,1,0,0,0,6040,6041,1,0,0,0,6041, - 557,1,0,0,0,6042,6040,1,0,0,0,6043,6044,3,546,273,0,6044,6045,5, - 10,0,0,6045,6046,3,676,338,0,6046,6062,1,0,0,0,6047,6048,5,2,0,0, - 6048,6049,3,544,272,0,6049,6050,5,3,0,0,6050,6059,5,10,0,0,6051, - 6053,5,414,0,0,6052,6051,1,0,0,0,6052,6053,1,0,0,0,6053,6054,1,0, - 0,0,6054,6060,3,676,338,0,6055,6056,5,2,0,0,6056,6057,3,568,284, - 0,6057,6058,5,3,0,0,6058,6060,1,0,0,0,6059,6052,1,0,0,0,6059,6055, - 1,0,0,0,6060,6062,1,0,0,0,6061,6043,1,0,0,0,6061,6047,1,0,0,0,6062, - 559,1,0,0,0,6063,6064,5,178,0,0,6064,6073,3,820,410,0,6065,6067, - 5,269,0,0,6066,6065,1,0,0,0,6066,6067,1,0,0,0,6067,6068,1,0,0,0, - 6068,6072,5,324,0,0,6069,6072,5,107,0,0,6070,6072,5,240,0,0,6071, - 6066,1,0,0,0,6071,6069,1,0,0,0,6071,6070,1,0,0,0,6072,6075,1,0,0, - 0,6073,6071,1,0,0,0,6073,6074,1,0,0,0,6074,6076,1,0,0,0,6075,6073, - 1,0,0,0,6076,6079,5,172,0,0,6077,6078,7,27,0,0,6078,6080,5,217,0, - 0,6079,6077,1,0,0,0,6079,6080,1,0,0,0,6080,6081,1,0,0,0,6081,6082, - 5,62,0,0,6082,6083,3,562,281,0,6083,561,1,0,0,0,6084,6087,3,566, - 283,0,6085,6087,3,564,282,0,6086,6084,1,0,0,0,6086,6085,1,0,0,0, - 6087,563,1,0,0,0,6088,6091,5,2,0,0,6089,6092,3,566,283,0,6090,6092, - 3,564,282,0,6091,6089,1,0,0,0,6091,6090,1,0,0,0,6092,6093,1,0,0, - 0,6093,6094,5,3,0,0,6094,565,1,0,0,0,6095,6097,3,574,287,0,6096, - 6095,1,0,0,0,6096,6097,1,0,0,0,6097,6098,1,0,0,0,6098,6100,3,568, - 284,0,6099,6101,3,588,294,0,6100,6099,1,0,0,0,6100,6101,1,0,0,0, - 6101,6110,1,0,0,0,6102,6104,3,608,304,0,6103,6105,3,592,296,0,6104, - 6103,1,0,0,0,6104,6105,1,0,0,0,6105,6111,1,0,0,0,6106,6108,3,592, - 296,0,6107,6109,3,608,304,0,6108,6107,1,0,0,0,6108,6109,1,0,0,0, - 6109,6111,1,0,0,0,6110,6102,1,0,0,0,6110,6106,1,0,0,0,6110,6111, - 1,0,0,0,6111,567,1,0,0,0,6112,6115,3,570,285,0,6113,6115,3,564,282, - 0,6114,6112,1,0,0,0,6114,6113,1,0,0,0,6115,569,1,0,0,0,6116,6126, - 5,88,0,0,6117,6119,5,30,0,0,6118,6117,1,0,0,0,6118,6119,1,0,0,0, - 6119,6121,1,0,0,0,6120,6122,3,582,291,0,6121,6120,1,0,0,0,6121,6122, - 1,0,0,0,6122,6127,1,0,0,0,6123,6125,3,586,293,0,6124,6123,1,0,0, - 0,6124,6125,1,0,0,0,6125,6127,1,0,0,0,6126,6118,1,0,0,0,6126,6124, - 1,0,0,0,6127,6128,1,0,0,0,6128,6139,3,932,466,0,6129,6139,3,610, - 305,0,6130,6131,5,92,0,0,6131,6139,3,626,313,0,6132,6133,3,564,282, - 0,6133,6136,3,572,286,0,6134,6137,3,570,285,0,6135,6137,3,564,282, - 0,6136,6134,1,0,0,0,6136,6135,1,0,0,0,6137,6139,1,0,0,0,6138,6116, - 1,0,0,0,6138,6129,1,0,0,0,6138,6130,1,0,0,0,6138,6132,1,0,0,0,6139, - 6147,1,0,0,0,6140,6143,3,572,286,0,6141,6144,3,570,285,0,6142,6144, - 3,564,282,0,6143,6141,1,0,0,0,6143,6142,1,0,0,0,6144,6146,1,0,0, - 0,6145,6140,1,0,0,0,6146,6149,1,0,0,0,6147,6145,1,0,0,0,6147,6148, - 1,0,0,0,6148,571,1,0,0,0,6149,6147,1,0,0,0,6150,6152,7,80,0,0,6151, - 6153,7,81,0,0,6152,6151,1,0,0,0,6152,6153,1,0,0,0,6153,573,1,0,0, - 0,6154,6156,5,105,0,0,6155,6157,5,303,0,0,6156,6155,1,0,0,0,6156, - 6157,1,0,0,0,6157,6158,1,0,0,0,6158,6163,3,576,288,0,6159,6160,5, - 6,0,0,6160,6162,3,576,288,0,6161,6159,1,0,0,0,6162,6165,1,0,0,0, - 6163,6161,1,0,0,0,6163,6164,1,0,0,0,6164,575,1,0,0,0,6165,6163,1, - 0,0,0,6166,6168,3,820,410,0,6167,6169,3,146,73,0,6168,6167,1,0,0, - 0,6168,6169,1,0,0,0,6169,6170,1,0,0,0,6170,6175,5,36,0,0,6171,6173, - 5,77,0,0,6172,6171,1,0,0,0,6172,6173,1,0,0,0,6173,6174,1,0,0,0,6174, - 6176,5,259,0,0,6175,6172,1,0,0,0,6175,6176,1,0,0,0,6176,6177,1,0, - 0,0,6177,6178,5,2,0,0,6178,6179,3,532,266,0,6179,6181,5,3,0,0,6180, - 6182,3,578,289,0,6181,6180,1,0,0,0,6181,6182,1,0,0,0,6182,6184,1, - 0,0,0,6183,6185,3,580,290,0,6184,6183,1,0,0,0,6184,6185,1,0,0,0, - 6185,577,1,0,0,0,6186,6187,5,325,0,0,6187,6188,7,82,0,0,6188,6189, - 5,207,0,0,6189,6190,5,147,0,0,6190,6191,3,150,75,0,6191,6192,5,333, - 0,0,6192,6193,3,802,401,0,6193,579,1,0,0,0,6194,6195,5,173,0,0,6195, - 6196,3,150,75,0,6196,6197,5,333,0,0,6197,6203,3,802,401,0,6198,6199, - 5,94,0,0,6199,6200,3,820,410,0,6200,6201,5,53,0,0,6201,6202,3,820, - 410,0,6202,6204,1,0,0,0,6203,6198,1,0,0,0,6203,6204,1,0,0,0,6204, - 6205,1,0,0,0,6205,6206,5,100,0,0,6206,6207,3,802,401,0,6207,581, - 1,0,0,0,6208,6214,5,71,0,0,6209,6211,5,346,0,0,6210,6209,1,0,0,0, - 6210,6211,1,0,0,0,6211,6212,1,0,0,0,6212,6215,3,584,292,0,6213,6215, - 3,732,366,0,6214,6210,1,0,0,0,6214,6213,1,0,0,0,6215,583,1,0,0,0, - 6216,6218,7,21,0,0,6217,6216,1,0,0,0,6217,6218,1,0,0,0,6218,6219, - 1,0,0,0,6219,6221,7,22,0,0,6220,6222,5,92,0,0,6221,6220,1,0,0,0, - 6221,6222,1,0,0,0,6222,6223,1,0,0,0,6223,6232,3,774,387,0,6224,6226, - 5,367,0,0,6225,6224,1,0,0,0,6225,6226,1,0,0,0,6226,6228,1,0,0,0, - 6227,6229,5,92,0,0,6228,6227,1,0,0,0,6228,6229,1,0,0,0,6229,6230, - 1,0,0,0,6230,6232,3,774,387,0,6231,6217,1,0,0,0,6231,6225,1,0,0, - 0,6232,585,1,0,0,0,6233,6236,5,56,0,0,6234,6235,5,80,0,0,6235,6237, - 3,536,268,0,6236,6234,1,0,0,0,6236,6237,1,0,0,0,6237,587,1,0,0,0, - 6238,6239,5,83,0,0,6239,6240,5,147,0,0,6240,6245,3,590,295,0,6241, - 6242,5,6,0,0,6242,6244,3,590,295,0,6243,6241,1,0,0,0,6244,6247,1, - 0,0,0,6245,6243,1,0,0,0,6245,6246,1,0,0,0,6246,589,1,0,0,0,6247, - 6245,1,0,0,0,6248,6252,3,736,368,0,6249,6250,5,100,0,0,6250,6253, - 3,728,364,0,6251,6253,7,56,0,0,6252,6249,1,0,0,0,6252,6251,1,0,0, - 0,6252,6253,1,0,0,0,6253,6256,1,0,0,0,6254,6255,5,273,0,0,6255,6257, - 7,57,0,0,6256,6254,1,0,0,0,6256,6257,1,0,0,0,6257,591,1,0,0,0,6258, - 6260,3,598,299,0,6259,6261,3,596,298,0,6260,6259,1,0,0,0,6260,6261, - 1,0,0,0,6261,6270,1,0,0,0,6262,6265,3,594,297,0,6263,6265,3,596, - 298,0,6264,6262,1,0,0,0,6264,6263,1,0,0,0,6265,6267,1,0,0,0,6266, - 6268,3,598,299,0,6267,6266,1,0,0,0,6267,6268,1,0,0,0,6268,6270,1, - 0,0,0,6269,6258,1,0,0,0,6269,6264,1,0,0,0,6270,593,1,0,0,0,6271, - 6274,5,74,0,0,6272,6275,3,676,338,0,6273,6275,5,30,0,0,6274,6272, - 1,0,0,0,6274,6273,1,0,0,0,6275,6278,1,0,0,0,6276,6277,5,6,0,0,6277, - 6279,3,676,338,0,6278,6276,1,0,0,0,6278,6279,1,0,0,0,6279,595,1, - 0,0,0,6280,6281,5,61,0,0,6281,6283,7,83,0,0,6282,6284,3,600,300, - 0,6283,6282,1,0,0,0,6283,6284,1,0,0,0,6284,6285,1,0,0,0,6285,6289, - 7,84,0,0,6286,6290,5,81,0,0,6287,6288,5,105,0,0,6288,6290,5,467, - 0,0,6289,6286,1,0,0,0,6289,6287,1,0,0,0,6290,597,1,0,0,0,6291,6296, - 5,79,0,0,6292,6293,3,600,300,0,6293,6294,7,84,0,0,6294,6297,1,0, - 0,0,6295,6297,3,676,338,0,6296,6292,1,0,0,0,6296,6295,1,0,0,0,6297, - 599,1,0,0,0,6298,6299,7,30,0,0,6299,6302,7,85,0,0,6300,6302,3,684, - 342,0,6301,6298,1,0,0,0,6301,6300,1,0,0,0,6302,601,1,0,0,0,6303, - 6304,5,66,0,0,6304,6306,5,147,0,0,6305,6307,7,81,0,0,6306,6305,1, - 0,0,0,6306,6307,1,0,0,0,6307,6308,1,0,0,0,6308,6309,3,604,302,0, - 6309,603,1,0,0,0,6310,6315,3,606,303,0,6311,6312,5,6,0,0,6312,6314, - 3,606,303,0,6313,6311,1,0,0,0,6314,6317,1,0,0,0,6315,6313,1,0,0, - 0,6315,6316,1,0,0,0,6316,605,1,0,0,0,6317,6315,1,0,0,0,6318,6342, - 3,736,368,0,6319,6320,5,2,0,0,6320,6342,5,3,0,0,6321,6323,7,86,0, - 0,6322,6321,1,0,0,0,6322,6323,1,0,0,0,6323,6324,1,0,0,0,6324,6325, - 5,2,0,0,6325,6330,3,736,368,0,6326,6327,5,6,0,0,6327,6329,3,736, - 368,0,6328,6326,1,0,0,0,6329,6332,1,0,0,0,6330,6328,1,0,0,0,6330, - 6331,1,0,0,0,6331,6333,1,0,0,0,6332,6330,1,0,0,0,6333,6334,5,3,0, - 0,6334,6342,1,0,0,0,6335,6336,5,470,0,0,6336,6337,5,471,0,0,6337, - 6338,5,2,0,0,6338,6339,3,604,302,0,6339,6340,5,3,0,0,6340,6342,1, - 0,0,0,6341,6318,1,0,0,0,6341,6319,1,0,0,0,6341,6322,1,0,0,0,6341, - 6335,1,0,0,0,6342,607,1,0,0,0,6343,6353,5,62,0,0,6344,6345,5,269, - 0,0,6345,6347,5,245,0,0,6346,6344,1,0,0,0,6346,6347,1,0,0,0,6347, - 6348,1,0,0,0,6348,6354,5,369,0,0,6349,6351,5,245,0,0,6350,6349,1, - 0,0,0,6350,6351,1,0,0,0,6351,6352,1,0,0,0,6352,6354,5,334,0,0,6353, - 6346,1,0,0,0,6353,6350,1,0,0,0,6354,6357,1,0,0,0,6355,6356,5,275, - 0,0,6356,6358,3,762,381,0,6357,6355,1,0,0,0,6357,6358,1,0,0,0,6358, - 6362,1,0,0,0,6359,6363,5,272,0,0,6360,6361,5,465,0,0,6361,6363,5, - 466,0,0,6362,6359,1,0,0,0,6362,6360,1,0,0,0,6362,6363,1,0,0,0,6363, - 6365,1,0,0,0,6364,6343,1,0,0,0,6365,6366,1,0,0,0,6366,6364,1,0,0, - 0,6366,6367,1,0,0,0,6367,6372,1,0,0,0,6368,6369,5,62,0,0,6369,6370, - 5,300,0,0,6370,6372,5,81,0,0,6371,6364,1,0,0,0,6371,6368,1,0,0,0, - 6372,609,1,0,0,0,6373,6374,5,422,0,0,6374,6379,3,536,268,0,6375, - 6376,5,6,0,0,6376,6378,3,536,268,0,6377,6375,1,0,0,0,6378,6381,1, - 0,0,0,6379,6377,1,0,0,0,6379,6380,1,0,0,0,6380,611,1,0,0,0,6381, - 6379,1,0,0,0,6382,6383,5,64,0,0,6383,6384,3,614,307,0,6384,613,1, - 0,0,0,6385,6390,3,616,308,0,6386,6387,5,6,0,0,6387,6389,3,616,308, - 0,6388,6386,1,0,0,0,6389,6392,1,0,0,0,6390,6388,1,0,0,0,6390,6391, - 1,0,0,0,6391,615,1,0,0,0,6392,6390,1,0,0,0,6393,6408,3,626,313,0, - 6394,6396,5,81,0,0,6395,6394,1,0,0,0,6395,6396,1,0,0,0,6396,6397, - 1,0,0,0,6397,6399,3,780,390,0,6398,6400,5,9,0,0,6399,6398,1,0,0, - 0,6399,6400,1,0,0,0,6400,6402,1,0,0,0,6401,6403,3,150,75,0,6402, - 6401,1,0,0,0,6402,6403,1,0,0,0,6403,6405,1,0,0,0,6404,6406,3,640, - 320,0,6405,6404,1,0,0,0,6405,6406,1,0,0,0,6406,6408,1,0,0,0,6407, - 6393,1,0,0,0,6407,6395,1,0,0,0,6408,6410,1,0,0,0,6409,6411,3,618, - 309,0,6410,6409,1,0,0,0,6410,6411,1,0,0,0,6411,6413,1,0,0,0,6412, - 6414,3,634,317,0,6413,6412,1,0,0,0,6413,6414,1,0,0,0,6414,6457,1, - 0,0,0,6415,6417,5,72,0,0,6416,6415,1,0,0,0,6416,6417,1,0,0,0,6417, - 6430,1,0,0,0,6418,6420,3,648,324,0,6419,6421,3,618,309,0,6420,6419, - 1,0,0,0,6420,6421,1,0,0,0,6421,6431,1,0,0,0,6422,6424,3,636,318, - 0,6423,6425,3,620,310,0,6424,6423,1,0,0,0,6424,6425,1,0,0,0,6425, - 6431,1,0,0,0,6426,6428,3,564,282,0,6427,6429,3,618,309,0,6428,6427, - 1,0,0,0,6428,6429,1,0,0,0,6429,6431,1,0,0,0,6430,6418,1,0,0,0,6430, - 6422,1,0,0,0,6430,6426,1,0,0,0,6431,6457,1,0,0,0,6432,6433,5,2,0, - 0,6433,6450,3,616,308,0,6434,6435,5,110,0,0,6435,6436,5,118,0,0, - 6436,6451,3,616,308,0,6437,6439,5,121,0,0,6438,6440,3,622,311,0, - 6439,6438,1,0,0,0,6439,6440,1,0,0,0,6440,6441,1,0,0,0,6441,6442, - 5,118,0,0,6442,6451,3,616,308,0,6443,6445,3,622,311,0,6444,6443, - 1,0,0,0,6444,6445,1,0,0,0,6445,6446,1,0,0,0,6446,6447,5,118,0,0, - 6447,6448,3,616,308,0,6448,6449,3,624,312,0,6449,6451,1,0,0,0,6450, - 6434,1,0,0,0,6450,6437,1,0,0,0,6450,6444,1,0,0,0,6450,6451,1,0,0, - 0,6451,6452,1,0,0,0,6452,6454,5,3,0,0,6453,6455,3,618,309,0,6454, - 6453,1,0,0,0,6454,6455,1,0,0,0,6455,6457,1,0,0,0,6456,6407,1,0,0, - 0,6456,6416,1,0,0,0,6456,6432,1,0,0,0,6457,6476,1,0,0,0,6458,6459, - 5,110,0,0,6459,6460,5,118,0,0,6460,6475,3,616,308,0,6461,6463,5, - 121,0,0,6462,6464,3,622,311,0,6463,6462,1,0,0,0,6463,6464,1,0,0, - 0,6464,6465,1,0,0,0,6465,6466,5,118,0,0,6466,6475,3,616,308,0,6467, - 6469,3,622,311,0,6468,6467,1,0,0,0,6468,6469,1,0,0,0,6469,6470,1, - 0,0,0,6470,6471,5,118,0,0,6471,6472,3,616,308,0,6472,6473,3,624, - 312,0,6473,6475,1,0,0,0,6474,6458,1,0,0,0,6474,6461,1,0,0,0,6474, - 6468,1,0,0,0,6475,6478,1,0,0,0,6476,6474,1,0,0,0,6476,6477,1,0,0, - 0,6477,617,1,0,0,0,6478,6476,1,0,0,0,6479,6481,5,36,0,0,6480,6479, - 1,0,0,0,6480,6481,1,0,0,0,6481,6482,1,0,0,0,6482,6487,3,820,410, - 0,6483,6484,5,2,0,0,6484,6485,3,786,393,0,6485,6486,5,3,0,0,6486, - 6488,1,0,0,0,6487,6483,1,0,0,0,6487,6488,1,0,0,0,6488,619,1,0,0, - 0,6489,6502,3,618,309,0,6490,6492,5,36,0,0,6491,6493,3,820,410,0, - 6492,6491,1,0,0,0,6492,6493,1,0,0,0,6493,6496,1,0,0,0,6494,6496, - 3,820,410,0,6495,6490,1,0,0,0,6495,6494,1,0,0,0,6496,6497,1,0,0, - 0,6497,6498,5,2,0,0,6498,6499,3,644,322,0,6499,6500,5,3,0,0,6500, - 6502,1,0,0,0,6501,6489,1,0,0,0,6501,6495,1,0,0,0,6502,621,1,0,0, - 0,6503,6505,7,87,0,0,6504,6506,5,123,0,0,6505,6504,1,0,0,0,6505, - 6506,1,0,0,0,6506,623,1,0,0,0,6507,6508,5,100,0,0,6508,6512,3,146, - 73,0,6509,6510,5,80,0,0,6510,6512,3,676,338,0,6511,6507,1,0,0,0, - 6511,6509,1,0,0,0,6512,625,1,0,0,0,6513,6529,3,324,162,0,6514,6520, - 5,81,0,0,6515,6521,3,776,388,0,6516,6517,5,2,0,0,6517,6518,3,776, - 388,0,6518,6519,5,3,0,0,6519,6521,1,0,0,0,6520,6515,1,0,0,0,6520, - 6516,1,0,0,0,6521,6529,1,0,0,0,6522,6523,5,68,0,0,6523,6526,5,323, - 0,0,6524,6527,3,792,396,0,6525,6527,5,111,0,0,6526,6524,1,0,0,0, - 6526,6525,1,0,0,0,6527,6529,1,0,0,0,6528,6513,1,0,0,0,6528,6514, - 1,0,0,0,6528,6522,1,0,0,0,6529,627,1,0,0,0,6530,6531,5,92,0,0,6531, - 6533,3,324,162,0,6532,6534,3,146,73,0,6533,6532,1,0,0,0,6533,6534, - 1,0,0,0,6534,6536,1,0,0,0,6535,6537,3,640,320,0,6536,6535,1,0,0, - 0,6536,6537,1,0,0,0,6537,6555,1,0,0,0,6538,6539,5,92,0,0,6539,6545, - 5,81,0,0,6540,6546,3,776,388,0,6541,6542,5,2,0,0,6542,6543,3,776, - 388,0,6543,6544,5,3,0,0,6544,6546,1,0,0,0,6545,6540,1,0,0,0,6545, - 6541,1,0,0,0,6546,6555,1,0,0,0,6547,6548,5,350,0,0,6548,6549,5,68, - 0,0,6549,6552,5,323,0,0,6550,6553,3,792,396,0,6551,6553,5,111,0, - 0,6552,6550,1,0,0,0,6552,6551,1,0,0,0,6553,6555,1,0,0,0,6554,6530, - 1,0,0,0,6554,6538,1,0,0,0,6554,6547,1,0,0,0,6555,629,1,0,0,0,6556, - 6561,3,626,313,0,6557,6558,5,6,0,0,6558,6560,3,626,313,0,6559,6557, - 1,0,0,0,6560,6563,1,0,0,0,6561,6559,1,0,0,0,6561,6562,1,0,0,0,6562, - 631,1,0,0,0,6563,6561,1,0,0,0,6564,6569,3,626,313,0,6565,6567,5, - 36,0,0,6566,6565,1,0,0,0,6566,6567,1,0,0,0,6567,6568,1,0,0,0,6568, - 6570,3,820,410,0,6569,6566,1,0,0,0,6569,6570,1,0,0,0,6570,633,1, - 0,0,0,6571,6572,5,472,0,0,6572,6573,3,808,404,0,6573,6579,3,536, - 268,0,6574,6575,5,310,0,0,6575,6576,5,2,0,0,6576,6577,3,676,338, - 0,6577,6578,5,3,0,0,6578,6580,1,0,0,0,6579,6574,1,0,0,0,6579,6580, - 1,0,0,0,6580,635,1,0,0,0,6581,6596,3,690,345,0,6582,6583,5,320,0, - 0,6583,6584,5,64,0,0,6584,6585,5,2,0,0,6585,6590,3,638,319,0,6586, - 6587,5,6,0,0,6587,6589,3,638,319,0,6588,6586,1,0,0,0,6589,6592,1, - 0,0,0,6590,6588,1,0,0,0,6590,6591,1,0,0,0,6591,6593,1,0,0,0,6592, - 6590,1,0,0,0,6593,6594,5,3,0,0,6594,6596,1,0,0,0,6595,6581,1,0,0, - 0,6595,6582,1,0,0,0,6596,6599,1,0,0,0,6597,6598,5,105,0,0,6598,6600, - 5,473,0,0,6599,6597,1,0,0,0,6599,6600,1,0,0,0,6600,637,1,0,0,0,6601, - 6607,3,690,345,0,6602,6603,5,36,0,0,6603,6604,5,2,0,0,6604,6605, - 3,644,322,0,6605,6606,5,3,0,0,6606,6608,1,0,0,0,6607,6602,1,0,0, - 0,6607,6608,1,0,0,0,6608,639,1,0,0,0,6609,6610,5,103,0,0,6610,6611, - 3,736,368,0,6611,641,1,0,0,0,6612,6617,5,103,0,0,6613,6614,5,434, - 0,0,6614,6615,5,275,0,0,6615,6618,3,820,410,0,6616,6618,3,676,338, - 0,6617,6613,1,0,0,0,6617,6616,1,0,0,0,6618,643,1,0,0,0,6619,6624, - 3,646,323,0,6620,6621,5,6,0,0,6621,6623,3,646,323,0,6622,6620,1, - 0,0,0,6623,6626,1,0,0,0,6624,6622,1,0,0,0,6624,6625,1,0,0,0,6625, - 645,1,0,0,0,6626,6624,1,0,0,0,6627,6628,3,820,410,0,6628,6630,3, - 654,327,0,6629,6631,3,98,49,0,6630,6629,1,0,0,0,6630,6631,1,0,0, - 0,6631,647,1,0,0,0,6632,6633,5,474,0,0,6633,6647,5,2,0,0,6634,6635, - 5,476,0,0,6635,6636,5,2,0,0,6636,6641,3,652,326,0,6637,6638,5,6, - 0,0,6638,6640,3,652,326,0,6639,6637,1,0,0,0,6640,6643,1,0,0,0,6641, - 6639,1,0,0,0,6641,6642,1,0,0,0,6642,6644,1,0,0,0,6643,6641,1,0,0, - 0,6644,6645,5,3,0,0,6645,6646,5,6,0,0,6646,6648,1,0,0,0,6647,6634, - 1,0,0,0,6647,6648,1,0,0,0,6648,6649,1,0,0,0,6649,6650,3,684,342, - 0,6650,6651,3,700,350,0,6651,6652,5,475,0,0,6652,6657,3,650,325, - 0,6653,6654,5,6,0,0,6654,6656,3,650,325,0,6655,6653,1,0,0,0,6656, - 6659,1,0,0,0,6657,6655,1,0,0,0,6657,6658,1,0,0,0,6658,6660,1,0,0, - 0,6659,6657,1,0,0,0,6660,6661,5,3,0,0,6661,649,1,0,0,0,6662,6681, - 3,820,410,0,6663,6677,3,654,327,0,6664,6667,5,53,0,0,6665,6667,3, - 828,414,0,6666,6664,1,0,0,0,6666,6665,1,0,0,0,6667,6668,1,0,0,0, - 6668,6674,3,676,338,0,6669,6671,5,77,0,0,6670,6669,1,0,0,0,6670, - 6671,1,0,0,0,6671,6672,1,0,0,0,6672,6674,5,78,0,0,6673,6666,1,0, - 0,0,6673,6670,1,0,0,0,6674,6675,1,0,0,0,6675,6673,1,0,0,0,6675,6676, - 1,0,0,0,6676,6678,1,0,0,0,6677,6673,1,0,0,0,6677,6678,1,0,0,0,6678, - 6682,1,0,0,0,6679,6680,5,62,0,0,6680,6682,5,473,0,0,6681,6663,1, - 0,0,0,6681,6679,1,0,0,0,6682,651,1,0,0,0,6683,6684,3,684,342,0,6684, - 6685,5,36,0,0,6685,6686,3,826,413,0,6686,6690,1,0,0,0,6687,6688, - 5,53,0,0,6688,6690,3,684,342,0,6689,6683,1,0,0,0,6689,6687,1,0,0, - 0,6690,653,1,0,0,0,6691,6693,5,415,0,0,6692,6691,1,0,0,0,6692,6693, - 1,0,0,0,6693,6694,1,0,0,0,6694,6711,3,656,328,0,6695,6697,5,4,0, - 0,6696,6698,5,574,0,0,6697,6696,1,0,0,0,6697,6698,1,0,0,0,6698,6699, - 1,0,0,0,6699,6701,5,5,0,0,6700,6695,1,0,0,0,6701,6704,1,0,0,0,6702, - 6700,1,0,0,0,6702,6703,1,0,0,0,6703,6712,1,0,0,0,6704,6702,1,0,0, - 0,6705,6709,5,35,0,0,6706,6707,5,4,0,0,6707,6708,5,574,0,0,6708, - 6710,5,5,0,0,6709,6706,1,0,0,0,6709,6710,1,0,0,0,6710,6712,1,0,0, - 0,6711,6702,1,0,0,0,6711,6705,1,0,0,0,6712,6718,1,0,0,0,6713,6714, - 3,782,391,0,6714,6715,5,27,0,0,6715,6716,7,88,0,0,6716,6718,1,0, - 0,0,6717,6692,1,0,0,0,6717,6713,1,0,0,0,6718,655,1,0,0,0,6719,6721, - 3,822,411,0,6720,6722,3,320,160,0,6721,6720,1,0,0,0,6721,6722,1, - 0,0,0,6722,6724,1,0,0,0,6723,6725,3,536,268,0,6724,6723,1,0,0,0, - 6724,6725,1,0,0,0,6725,6735,1,0,0,0,6726,6735,3,658,329,0,6727,6732, - 5,403,0,0,6728,6730,3,670,335,0,6729,6728,1,0,0,0,6729,6730,1,0, - 0,0,6730,6733,1,0,0,0,6731,6733,3,662,331,0,6732,6729,1,0,0,0,6732, - 6731,1,0,0,0,6733,6735,1,0,0,0,6734,6719,1,0,0,0,6734,6726,1,0,0, - 0,6734,6727,1,0,0,0,6735,657,1,0,0,0,6736,6741,3,660,330,0,6737, - 6741,3,664,332,0,6738,6741,3,666,333,0,6739,6741,3,668,334,0,6740, - 6736,1,0,0,0,6740,6737,1,0,0,0,6740,6738,1,0,0,0,6740,6739,1,0,0, - 0,6741,659,1,0,0,0,6742,6759,5,401,0,0,6743,6759,5,402,0,0,6744, - 6759,5,416,0,0,6745,6759,5,388,0,0,6746,6759,5,413,0,0,6747,6749, - 5,398,0,0,6748,6750,3,662,331,0,6749,6748,1,0,0,0,6749,6750,1,0, - 0,0,6750,6759,1,0,0,0,6751,6752,5,190,0,0,6752,6759,5,412,0,0,6753, - 6755,7,89,0,0,6754,6756,3,536,268,0,6755,6754,1,0,0,0,6755,6756, - 1,0,0,0,6756,6759,1,0,0,0,6757,6759,5,390,0,0,6758,6742,1,0,0,0, - 6758,6743,1,0,0,0,6758,6744,1,0,0,0,6758,6745,1,0,0,0,6758,6746, - 1,0,0,0,6758,6747,1,0,0,0,6758,6751,1,0,0,0,6758,6753,1,0,0,0,6758, - 6757,1,0,0,0,6759,661,1,0,0,0,6760,6761,5,2,0,0,6761,6762,5,574, - 0,0,6762,6763,5,3,0,0,6763,663,1,0,0,0,6764,6766,5,389,0,0,6765, - 6767,5,374,0,0,6766,6765,1,0,0,0,6766,6767,1,0,0,0,6767,6769,1,0, - 0,0,6768,6770,3,536,268,0,6769,6768,1,0,0,0,6769,6770,1,0,0,0,6770, - 665,1,0,0,0,6771,6773,7,90,0,0,6772,6774,5,374,0,0,6773,6772,1,0, - 0,0,6773,6774,1,0,0,0,6774,6782,1,0,0,0,6775,6782,5,423,0,0,6776, - 6777,5,405,0,0,6777,6779,7,91,0,0,6778,6780,5,374,0,0,6779,6778, - 1,0,0,0,6779,6780,1,0,0,0,6780,6782,1,0,0,0,6781,6771,1,0,0,0,6781, - 6775,1,0,0,0,6781,6776,1,0,0,0,6782,6784,1,0,0,0,6783,6785,3,662, - 331,0,6784,6783,1,0,0,0,6784,6785,1,0,0,0,6785,667,1,0,0,0,6786, - 6788,7,92,0,0,6787,6789,3,662,331,0,6788,6787,1,0,0,0,6788,6789, - 1,0,0,0,6789,6793,1,0,0,0,6790,6791,7,27,0,0,6791,6792,5,418,0,0, - 6792,6794,5,386,0,0,6793,6790,1,0,0,0,6793,6794,1,0,0,0,6794,669, - 1,0,0,0,6795,6825,5,264,0,0,6796,6825,3,672,336,0,6797,6800,5,384, - 0,0,6798,6799,5,94,0,0,6799,6801,5,264,0,0,6800,6798,1,0,0,0,6800, - 6801,1,0,0,0,6801,6825,1,0,0,0,6802,6809,5,176,0,0,6803,6807,5,94, - 0,0,6804,6808,5,218,0,0,6805,6808,5,261,0,0,6806,6808,3,672,336, - 0,6807,6804,1,0,0,0,6807,6805,1,0,0,0,6807,6806,1,0,0,0,6808,6810, - 1,0,0,0,6809,6803,1,0,0,0,6809,6810,1,0,0,0,6810,6825,1,0,0,0,6811, - 6817,5,218,0,0,6812,6815,5,94,0,0,6813,6816,5,261,0,0,6814,6816, - 3,672,336,0,6815,6813,1,0,0,0,6815,6814,1,0,0,0,6816,6818,1,0,0, - 0,6817,6812,1,0,0,0,6817,6818,1,0,0,0,6818,6825,1,0,0,0,6819,6822, - 5,261,0,0,6820,6821,5,94,0,0,6821,6823,3,672,336,0,6822,6820,1,0, - 0,0,6822,6823,1,0,0,0,6823,6825,1,0,0,0,6824,6795,1,0,0,0,6824,6796, - 1,0,0,0,6824,6797,1,0,0,0,6824,6802,1,0,0,0,6824,6811,1,0,0,0,6824, - 6819,1,0,0,0,6825,671,1,0,0,0,6826,6828,5,326,0,0,6827,6829,3,662, - 331,0,6828,6827,1,0,0,0,6828,6829,1,0,0,0,6829,673,1,0,0,0,6830, - 6831,7,93,0,0,6831,675,1,0,0,0,6832,6833,3,678,339,0,6833,677,1, - 0,0,0,6834,6835,6,339,-1,0,6835,6837,3,682,341,0,6836,6838,3,680, - 340,0,6837,6836,1,0,0,0,6837,6838,1,0,0,0,6838,6842,1,0,0,0,6839, - 6840,5,77,0,0,6840,6842,3,678,339,3,6841,6834,1,0,0,0,6841,6839, - 1,0,0,0,6842,6851,1,0,0,0,6843,6844,10,2,0,0,6844,6845,5,33,0,0, - 6845,6850,3,678,339,3,6846,6847,10,1,0,0,6847,6848,5,82,0,0,6848, - 6850,3,678,339,2,6849,6843,1,0,0,0,6849,6846,1,0,0,0,6850,6853,1, - 0,0,0,6851,6849,1,0,0,0,6851,6852,1,0,0,0,6852,679,1,0,0,0,6853, - 6851,1,0,0,0,6854,6855,3,674,337,0,6855,6856,3,682,341,0,6856,6926, - 1,0,0,0,6857,6858,3,674,337,0,6858,6859,3,730,365,0,6859,6865,3, - 720,360,0,6860,6866,3,564,282,0,6861,6862,5,2,0,0,6862,6863,3,676, - 338,0,6863,6864,5,3,0,0,6864,6866,1,0,0,0,6865,6860,1,0,0,0,6865, - 6861,1,0,0,0,6866,6926,1,0,0,0,6867,6869,5,77,0,0,6868,6867,1,0, - 0,0,6868,6869,1,0,0,0,6869,6870,1,0,0,0,6870,6871,5,387,0,0,6871, - 6872,3,682,341,0,6872,6873,5,33,0,0,6873,6874,3,682,341,0,6874,6926, - 1,0,0,0,6875,6877,5,77,0,0,6876,6875,1,0,0,0,6876,6877,1,0,0,0,6877, - 6878,1,0,0,0,6878,6879,5,68,0,0,6879,6880,5,2,0,0,6880,6885,3,676, - 338,0,6881,6882,5,6,0,0,6882,6884,3,676,338,0,6883,6881,1,0,0,0, - 6884,6887,1,0,0,0,6885,6883,1,0,0,0,6885,6886,1,0,0,0,6886,6888, - 1,0,0,0,6887,6885,1,0,0,0,6888,6889,5,3,0,0,6889,6926,1,0,0,0,6890, - 6892,5,77,0,0,6891,6890,1,0,0,0,6891,6892,1,0,0,0,6892,6893,1,0, - 0,0,6893,6894,5,68,0,0,6894,6926,3,564,282,0,6895,6897,5,77,0,0, - 6896,6895,1,0,0,0,6896,6897,1,0,0,0,6897,6906,1,0,0,0,6898,6907, - 5,120,0,0,6899,6907,5,114,0,0,6900,6901,5,127,0,0,6901,6907,5,94, - 0,0,6902,6904,5,387,0,0,6903,6905,5,91,0,0,6904,6903,1,0,0,0,6904, - 6905,1,0,0,0,6905,6907,1,0,0,0,6906,6898,1,0,0,0,6906,6899,1,0,0, - 0,6906,6900,1,0,0,0,6906,6902,1,0,0,0,6907,6908,1,0,0,0,6908,6911, - 3,682,341,0,6909,6910,5,197,0,0,6910,6912,3,682,341,0,6911,6909, - 1,0,0,0,6911,6912,1,0,0,0,6912,6926,1,0,0,0,6913,6915,5,116,0,0, - 6914,6916,5,77,0,0,6915,6914,1,0,0,0,6915,6916,1,0,0,0,6916,6917, - 1,0,0,0,6917,6926,5,78,0,0,6918,6920,5,116,0,0,6919,6921,5,77,0, - 0,6920,6919,1,0,0,0,6920,6921,1,0,0,0,6921,6922,1,0,0,0,6922,6923, - 5,56,0,0,6923,6924,5,64,0,0,6924,6926,3,682,341,0,6925,6854,1,0, - 0,0,6925,6857,1,0,0,0,6925,6868,1,0,0,0,6925,6876,1,0,0,0,6925,6891, - 1,0,0,0,6925,6896,1,0,0,0,6925,6913,1,0,0,0,6925,6918,1,0,0,0,6926, - 681,1,0,0,0,6927,6928,6,341,-1,0,6928,6932,3,684,342,0,6929,6930, - 7,30,0,0,6930,6932,3,682,341,4,6931,6927,1,0,0,0,6931,6929,1,0,0, - 0,6932,6949,1,0,0,0,6933,6934,10,3,0,0,6934,6935,7,94,0,0,6935,6948, - 3,682,341,4,6936,6937,10,2,0,0,6937,6938,7,30,0,0,6938,6948,3,682, - 341,3,6939,6940,10,1,0,0,6940,6941,5,15,0,0,6941,6948,3,682,341, - 2,6942,6943,10,5,0,0,6943,6944,5,142,0,0,6944,6945,5,418,0,0,6945, - 6946,5,386,0,0,6946,6948,3,676,338,0,6947,6933,1,0,0,0,6947,6936, - 1,0,0,0,6947,6939,1,0,0,0,6947,6942,1,0,0,0,6948,6951,1,0,0,0,6949, - 6947,1,0,0,0,6949,6950,1,0,0,0,6950,683,1,0,0,0,6951,6949,1,0,0, - 0,6952,6953,6,342,-1,0,6953,6954,7,95,0,0,6954,7041,3,564,282,0, - 6955,6958,5,35,0,0,6956,6959,3,564,282,0,6957,6959,3,742,371,0,6958, - 6956,1,0,0,0,6958,6957,1,0,0,0,6959,7041,1,0,0,0,6960,6961,5,28, - 0,0,6961,7041,3,756,378,0,6962,6963,5,470,0,0,6963,7041,3,536,268, - 0,6964,7041,5,574,0,0,6965,7041,5,576,0,0,6966,7041,5,566,0,0,6967, - 7041,5,570,0,0,6968,6978,3,808,404,0,6969,6979,3,810,405,0,6970, - 6971,5,2,0,0,6971,6973,3,738,369,0,6972,6974,3,588,294,0,6973,6972, - 1,0,0,0,6973,6974,1,0,0,0,6974,6975,1,0,0,0,6975,6976,5,3,0,0,6976, - 6977,3,810,405,0,6977,6979,1,0,0,0,6978,6969,1,0,0,0,6978,6970,1, - 0,0,0,6979,7041,1,0,0,0,6980,6982,3,658,329,0,6981,6980,1,0,0,0, - 6981,6982,1,0,0,0,6982,6983,1,0,0,0,6983,7041,3,810,405,0,6984,6992, - 5,403,0,0,6985,6987,3,810,405,0,6986,6988,3,670,335,0,6987,6986, - 1,0,0,0,6987,6988,1,0,0,0,6988,6993,1,0,0,0,6989,6990,3,662,331, - 0,6990,6991,3,810,405,0,6991,6993,1,0,0,0,6992,6985,1,0,0,0,6992, - 6989,1,0,0,0,6993,7041,1,0,0,0,6994,7041,5,96,0,0,6995,7041,5,60, - 0,0,6996,7041,5,78,0,0,6997,7041,5,577,0,0,6998,6999,5,2,0,0,6999, - 7000,3,676,338,0,7000,7001,5,3,0,0,7001,7002,3,756,378,0,7002,7041, - 1,0,0,0,7003,7005,5,40,0,0,7004,7006,3,676,338,0,7005,7004,1,0,0, - 0,7005,7006,1,0,0,0,7006,7008,1,0,0,0,7007,7009,3,750,375,0,7008, - 7007,1,0,0,0,7009,7010,1,0,0,0,7010,7008,1,0,0,0,7010,7011,1,0,0, - 0,7011,7014,1,0,0,0,7012,7013,5,58,0,0,7013,7015,3,676,338,0,7014, - 7012,1,0,0,0,7014,7015,1,0,0,0,7015,7016,1,0,0,0,7016,7017,5,454, - 0,0,7017,7041,1,0,0,0,7018,7041,3,688,344,0,7019,7021,3,564,282, - 0,7020,7022,3,754,377,0,7021,7020,1,0,0,0,7021,7022,1,0,0,0,7022, - 7041,1,0,0,0,7023,7041,3,718,359,0,7024,7025,5,2,0,0,7025,7026,3, - 676,338,0,7026,7027,5,6,0,0,7027,7028,3,732,366,0,7028,7029,5,3, - 0,0,7029,7041,1,0,0,0,7030,7031,3,716,358,0,7031,7032,5,125,0,0, - 7032,7033,3,716,358,0,7033,7041,1,0,0,0,7034,7041,3,782,391,0,7035, - 7036,7,30,0,0,7036,7041,3,684,342,5,7037,7038,3,726,363,0,7038,7039, - 3,684,342,2,7039,7041,1,0,0,0,7040,6952,1,0,0,0,7040,6955,1,0,0, - 0,7040,6960,1,0,0,0,7040,6962,1,0,0,0,7040,6964,1,0,0,0,7040,6965, - 1,0,0,0,7040,6966,1,0,0,0,7040,6967,1,0,0,0,7040,6968,1,0,0,0,7040, - 6981,1,0,0,0,7040,6984,1,0,0,0,7040,6994,1,0,0,0,7040,6995,1,0,0, - 0,7040,6996,1,0,0,0,7040,6997,1,0,0,0,7040,6998,1,0,0,0,7040,7003, - 1,0,0,0,7040,7018,1,0,0,0,7040,7019,1,0,0,0,7040,7023,1,0,0,0,7040, - 7024,1,0,0,0,7040,7030,1,0,0,0,7040,7034,1,0,0,0,7040,7035,1,0,0, - 0,7040,7037,1,0,0,0,7041,7069,1,0,0,0,7042,7043,10,3,0,0,7043,7044, - 3,724,362,0,7044,7045,3,684,342,4,7045,7068,1,0,0,0,7046,7047,10, - 6,0,0,7047,7048,5,26,0,0,7048,7068,3,654,327,0,7049,7050,10,4,0, - 0,7050,7052,3,726,363,0,7051,7053,3,684,342,0,7052,7051,1,0,0,0, - 7052,7053,1,0,0,0,7053,7068,1,0,0,0,7054,7055,10,1,0,0,7055,7057, - 5,116,0,0,7056,7058,5,77,0,0,7057,7056,1,0,0,0,7057,7058,1,0,0,0, - 7058,7065,1,0,0,0,7059,7060,5,56,0,0,7060,7061,5,64,0,0,7061,7066, - 3,684,342,0,7062,7063,5,275,0,0,7063,7066,3,530,265,0,7064,7066, - 5,188,0,0,7065,7059,1,0,0,0,7065,7062,1,0,0,0,7065,7064,1,0,0,0, - 7066,7068,1,0,0,0,7067,7042,1,0,0,0,7067,7046,1,0,0,0,7067,7049, - 1,0,0,0,7067,7054,1,0,0,0,7068,7071,1,0,0,0,7069,7067,1,0,0,0,7069, - 7070,1,0,0,0,7070,685,1,0,0,0,7071,7069,1,0,0,0,7072,7073,3,808, - 404,0,7073,7094,5,2,0,0,7074,7078,3,738,369,0,7075,7076,5,6,0,0, - 7076,7077,5,101,0,0,7077,7079,3,740,370,0,7078,7075,1,0,0,0,7078, - 7079,1,0,0,0,7079,7081,1,0,0,0,7080,7082,3,588,294,0,7081,7080,1, - 0,0,0,7081,7082,1,0,0,0,7082,7095,1,0,0,0,7083,7084,5,101,0,0,7084, - 7086,3,740,370,0,7085,7087,3,588,294,0,7086,7085,1,0,0,0,7086,7087, - 1,0,0,0,7087,7095,1,0,0,0,7088,7089,7,81,0,0,7089,7091,3,738,369, - 0,7090,7092,3,588,294,0,7091,7090,1,0,0,0,7091,7092,1,0,0,0,7092, - 7095,1,0,0,0,7093,7095,5,9,0,0,7094,7074,1,0,0,0,7094,7083,1,0,0, - 0,7094,7088,1,0,0,0,7094,7093,1,0,0,0,7094,7095,1,0,0,0,7095,7096, - 1,0,0,0,7096,7097,5,3,0,0,7097,687,1,0,0,0,7098,7105,3,686,343,0, - 7099,7100,5,479,0,0,7100,7101,5,66,0,0,7101,7102,5,2,0,0,7102,7103, - 3,588,294,0,7103,7104,5,3,0,0,7104,7106,1,0,0,0,7105,7099,1,0,0, - 0,7105,7106,1,0,0,0,7106,7113,1,0,0,0,7107,7108,5,480,0,0,7108,7109, - 5,2,0,0,7109,7110,5,103,0,0,7110,7111,3,676,338,0,7111,7112,5,3, - 0,0,7112,7114,1,0,0,0,7113,7107,1,0,0,0,7113,7114,1,0,0,0,7114,7120, - 1,0,0,0,7115,7118,5,124,0,0,7116,7119,3,710,355,0,7117,7119,3,820, - 410,0,7118,7116,1,0,0,0,7118,7117,1,0,0,0,7119,7121,1,0,0,0,7120, - 7115,1,0,0,0,7120,7121,1,0,0,0,7121,7124,1,0,0,0,7122,7124,3,692, - 346,0,7123,7098,1,0,0,0,7123,7122,1,0,0,0,7124,689,1,0,0,0,7125, - 7128,3,686,343,0,7126,7128,3,692,346,0,7127,7125,1,0,0,0,7127,7126, - 1,0,0,0,7128,691,1,0,0,0,7129,7130,5,108,0,0,7130,7131,5,62,0,0, - 7131,7132,5,2,0,0,7132,7133,3,676,338,0,7133,7134,5,3,0,0,7134,7304, - 1,0,0,0,7135,7304,5,48,0,0,7136,7138,7,96,0,0,7137,7139,3,662,331, - 0,7138,7137,1,0,0,0,7138,7139,1,0,0,0,7139,7304,1,0,0,0,7140,7304, - 5,49,0,0,7141,7304,5,52,0,0,7142,7304,5,89,0,0,7143,7304,5,99,0, - 0,7144,7304,5,47,0,0,7145,7304,5,111,0,0,7146,7147,7,97,0,0,7147, - 7148,5,2,0,0,7148,7149,3,676,338,0,7149,7150,5,36,0,0,7150,7151, - 3,654,327,0,7151,7152,5,3,0,0,7152,7304,1,0,0,0,7153,7154,5,397, - 0,0,7154,7159,5,2,0,0,7155,7156,3,744,372,0,7156,7157,5,64,0,0,7157, - 7158,3,676,338,0,7158,7160,1,0,0,0,7159,7155,1,0,0,0,7159,7160,1, - 0,0,0,7160,7161,1,0,0,0,7161,7304,5,3,0,0,7162,7163,5,489,0,0,7163, - 7164,5,2,0,0,7164,7167,3,676,338,0,7165,7166,5,6,0,0,7166,7168,3, - 746,373,0,7167,7165,1,0,0,0,7167,7168,1,0,0,0,7168,7169,1,0,0,0, - 7169,7170,5,3,0,0,7170,7304,1,0,0,0,7171,7172,5,410,0,0,7172,7173, - 5,2,0,0,7173,7174,3,676,338,0,7174,7175,5,84,0,0,7175,7176,3,676, - 338,0,7176,7177,5,64,0,0,7177,7180,3,676,338,0,7178,7179,5,62,0, - 0,7179,7181,3,676,338,0,7180,7178,1,0,0,0,7180,7181,1,0,0,0,7181, - 7182,1,0,0,0,7182,7183,5,3,0,0,7183,7304,1,0,0,0,7184,7185,5,411, - 0,0,7185,7190,5,2,0,0,7186,7187,3,684,342,0,7187,7188,5,68,0,0,7188, - 7189,3,684,342,0,7189,7191,1,0,0,0,7190,7186,1,0,0,0,7190,7191,1, - 0,0,0,7191,7192,1,0,0,0,7192,7304,5,3,0,0,7193,7194,5,417,0,0,7194, - 7196,5,2,0,0,7195,7197,3,748,374,0,7196,7195,1,0,0,0,7196,7197,1, - 0,0,0,7197,7198,1,0,0,0,7198,7304,5,3,0,0,7199,7200,5,421,0,0,7200, - 7202,5,2,0,0,7201,7203,7,98,0,0,7202,7201,1,0,0,0,7202,7203,1,0, - 0,0,7203,7208,1,0,0,0,7204,7206,3,676,338,0,7205,7204,1,0,0,0,7205, - 7206,1,0,0,0,7206,7207,1,0,0,0,7207,7209,5,64,0,0,7208,7205,1,0, - 0,0,7208,7209,1,0,0,0,7209,7210,1,0,0,0,7210,7211,3,732,366,0,7211, - 7212,1,0,0,0,7212,7213,5,3,0,0,7213,7304,1,0,0,0,7214,7215,5,408, - 0,0,7215,7216,5,2,0,0,7216,7217,3,676,338,0,7217,7218,5,6,0,0,7218, - 7219,3,676,338,0,7219,7220,5,3,0,0,7220,7304,1,0,0,0,7221,7222,7, - 99,0,0,7222,7304,3,536,268,0,7223,7224,5,426,0,0,7224,7225,5,2,0, - 0,7225,7226,5,266,0,0,7226,7236,3,826,413,0,7227,7234,5,6,0,0,7228, - 7229,5,424,0,0,7229,7230,5,2,0,0,7230,7231,3,694,347,0,7231,7232, - 5,3,0,0,7232,7235,1,0,0,0,7233,7235,3,732,366,0,7234,7228,1,0,0, - 0,7234,7233,1,0,0,0,7235,7237,1,0,0,0,7236,7227,1,0,0,0,7236,7237, - 1,0,0,0,7237,7238,1,0,0,0,7238,7239,5,3,0,0,7239,7304,1,0,0,0,7240, - 7241,5,427,0,0,7241,7242,5,2,0,0,7242,7243,3,684,342,0,7243,7244, - 3,700,350,0,7244,7245,5,3,0,0,7245,7304,1,0,0,0,7246,7247,5,428, - 0,0,7247,7248,5,2,0,0,7248,7249,3,694,347,0,7249,7250,5,3,0,0,7250, - 7304,1,0,0,0,7251,7252,5,429,0,0,7252,7253,5,2,0,0,7253,7254,3,698, - 349,0,7254,7257,3,676,338,0,7255,7256,7,100,0,0,7256,7258,5,378, - 0,0,7257,7255,1,0,0,0,7257,7258,1,0,0,0,7258,7259,1,0,0,0,7259,7260, - 5,3,0,0,7260,7304,1,0,0,0,7261,7262,5,430,0,0,7262,7263,5,2,0,0, - 7263,7264,5,266,0,0,7264,7267,3,826,413,0,7265,7266,5,6,0,0,7266, - 7268,3,676,338,0,7267,7265,1,0,0,0,7267,7268,1,0,0,0,7268,7269,1, - 0,0,0,7269,7270,5,3,0,0,7270,7304,1,0,0,0,7271,7272,5,431,0,0,7272, - 7273,5,2,0,0,7273,7274,5,383,0,0,7274,7275,3,676,338,0,7275,7276, - 5,6,0,0,7276,7280,5,375,0,0,7277,7278,5,269,0,0,7278,7281,5,450, - 0,0,7279,7281,3,676,338,0,7280,7277,1,0,0,0,7280,7279,1,0,0,0,7281, - 7291,1,0,0,0,7282,7283,5,6,0,0,7283,7289,5,339,0,0,7284,7286,5,269, - 0,0,7285,7284,1,0,0,0,7285,7286,1,0,0,0,7286,7287,1,0,0,0,7287,7290, - 5,450,0,0,7288,7290,5,385,0,0,7289,7285,1,0,0,0,7289,7288,1,0,0, - 0,7290,7292,1,0,0,0,7291,7282,1,0,0,0,7291,7292,1,0,0,0,7292,7293, - 1,0,0,0,7293,7294,5,3,0,0,7294,7304,1,0,0,0,7295,7296,5,432,0,0, - 7296,7297,5,2,0,0,7297,7298,3,698,349,0,7298,7299,3,676,338,0,7299, - 7300,5,36,0,0,7300,7301,3,656,328,0,7301,7302,5,3,0,0,7302,7304, - 1,0,0,0,7303,7129,1,0,0,0,7303,7135,1,0,0,0,7303,7136,1,0,0,0,7303, - 7140,1,0,0,0,7303,7141,1,0,0,0,7303,7142,1,0,0,0,7303,7143,1,0,0, - 0,7303,7144,1,0,0,0,7303,7145,1,0,0,0,7303,7146,1,0,0,0,7303,7153, - 1,0,0,0,7303,7162,1,0,0,0,7303,7171,1,0,0,0,7303,7184,1,0,0,0,7303, - 7193,1,0,0,0,7303,7199,1,0,0,0,7303,7214,1,0,0,0,7303,7221,1,0,0, - 0,7303,7223,1,0,0,0,7303,7240,1,0,0,0,7303,7246,1,0,0,0,7303,7251, - 1,0,0,0,7303,7261,1,0,0,0,7303,7271,1,0,0,0,7303,7295,1,0,0,0,7304, - 693,1,0,0,0,7305,7310,3,696,348,0,7306,7307,5,6,0,0,7307,7309,3, - 696,348,0,7308,7306,1,0,0,0,7309,7312,1,0,0,0,7310,7308,1,0,0,0, - 7310,7311,1,0,0,0,7311,695,1,0,0,0,7312,7310,1,0,0,0,7313,7316,3, - 676,338,0,7314,7315,5,36,0,0,7315,7317,3,826,413,0,7316,7314,1,0, - 0,0,7316,7317,1,0,0,0,7317,697,1,0,0,0,7318,7319,7,101,0,0,7319, - 699,1,0,0,0,7320,7322,5,286,0,0,7321,7323,3,702,351,0,7322,7321, - 1,0,0,0,7322,7323,1,0,0,0,7323,7324,1,0,0,0,7324,7326,3,684,342, - 0,7325,7327,3,702,351,0,7326,7325,1,0,0,0,7326,7327,1,0,0,0,7327, - 701,1,0,0,0,7328,7329,5,147,0,0,7329,7330,7,102,0,0,7330,703,1,0, - 0,0,7331,7332,5,104,0,0,7332,7337,3,706,353,0,7333,7334,5,6,0,0, - 7334,7336,3,706,353,0,7335,7333,1,0,0,0,7336,7339,1,0,0,0,7337,7335, - 1,0,0,0,7337,7338,1,0,0,0,7338,705,1,0,0,0,7339,7337,1,0,0,0,7340, - 7341,3,820,410,0,7341,7342,5,36,0,0,7342,7343,3,710,355,0,7343,707, - 1,0,0,0,7344,7347,5,124,0,0,7345,7348,3,710,355,0,7346,7348,3,820, - 410,0,7347,7345,1,0,0,0,7347,7346,1,0,0,0,7348,709,1,0,0,0,7349, - 7351,5,2,0,0,7350,7352,3,820,410,0,7351,7350,1,0,0,0,7351,7352,1, - 0,0,0,7352,7356,1,0,0,0,7353,7354,5,285,0,0,7354,7355,5,147,0,0, - 7355,7357,3,732,366,0,7356,7353,1,0,0,0,7356,7357,1,0,0,0,7357,7359, - 1,0,0,0,7358,7360,3,588,294,0,7359,7358,1,0,0,0,7359,7360,1,0,0, - 0,7360,7362,1,0,0,0,7361,7363,3,712,356,0,7362,7361,1,0,0,0,7362, - 7363,1,0,0,0,7363,7364,1,0,0,0,7364,7365,5,3,0,0,7365,711,1,0,0, - 0,7366,7371,7,103,0,0,7367,7368,5,387,0,0,7368,7369,3,714,357,0, - 7369,7370,5,33,0,0,7370,7372,1,0,0,0,7371,7367,1,0,0,0,7371,7372, - 1,0,0,0,7372,7373,1,0,0,0,7373,7374,3,714,357,0,7374,7384,1,0,0, - 0,7375,7382,5,199,0,0,7376,7377,5,434,0,0,7377,7383,5,414,0,0,7378, - 7383,5,66,0,0,7379,7383,5,467,0,0,7380,7381,5,269,0,0,7381,7383, - 5,482,0,0,7382,7376,1,0,0,0,7382,7378,1,0,0,0,7382,7379,1,0,0,0, - 7382,7380,1,0,0,0,7383,7385,1,0,0,0,7384,7375,1,0,0,0,7384,7385, - 1,0,0,0,7385,713,1,0,0,0,7386,7389,5,362,0,0,7387,7389,3,676,338, - 0,7388,7386,1,0,0,0,7388,7387,1,0,0,0,7389,7390,1,0,0,0,7390,7394, - 7,104,0,0,7391,7392,5,434,0,0,7392,7394,5,414,0,0,7393,7388,1,0, - 0,0,7393,7391,1,0,0,0,7394,715,1,0,0,0,7395,7403,3,718,359,0,7396, - 7397,5,2,0,0,7397,7398,3,732,366,0,7398,7399,5,6,0,0,7399,7400,3, - 676,338,0,7400,7401,5,3,0,0,7401,7403,1,0,0,0,7402,7395,1,0,0,0, - 7402,7396,1,0,0,0,7403,717,1,0,0,0,7404,7405,5,414,0,0,7405,7407, - 5,2,0,0,7406,7408,3,732,366,0,7407,7406,1,0,0,0,7407,7408,1,0,0, - 0,7408,7409,1,0,0,0,7409,7410,5,3,0,0,7410,719,1,0,0,0,7411,7412, - 7,105,0,0,7412,721,1,0,0,0,7413,7416,5,29,0,0,7414,7416,3,724,362, - 0,7415,7413,1,0,0,0,7415,7414,1,0,0,0,7416,723,1,0,0,0,7417,7418, - 7,106,0,0,7418,725,1,0,0,0,7419,7426,5,29,0,0,7420,7421,5,278,0, - 0,7421,7422,5,2,0,0,7422,7423,3,416,208,0,7423,7424,5,3,0,0,7424, - 7426,1,0,0,0,7425,7419,1,0,0,0,7425,7420,1,0,0,0,7426,727,1,0,0, - 0,7427,7434,3,722,361,0,7428,7429,5,278,0,0,7429,7430,5,2,0,0,7430, - 7431,3,416,208,0,7431,7432,5,3,0,0,7432,7434,1,0,0,0,7433,7427,1, - 0,0,0,7433,7428,1,0,0,0,7434,729,1,0,0,0,7435,7441,3,728,364,0,7436, - 7438,5,77,0,0,7437,7436,1,0,0,0,7437,7438,1,0,0,0,7438,7439,1,0, - 0,0,7439,7441,7,107,0,0,7440,7435,1,0,0,0,7440,7437,1,0,0,0,7441, - 731,1,0,0,0,7442,7447,3,676,338,0,7443,7444,5,6,0,0,7444,7446,3, - 676,338,0,7445,7443,1,0,0,0,7446,7449,1,0,0,0,7447,7445,1,0,0,0, - 7447,7448,1,0,0,0,7448,733,1,0,0,0,7449,7447,1,0,0,0,7450,7451,5, - 2,0,0,7451,7452,3,676,338,0,7452,7453,5,3,0,0,7453,7456,1,0,0,0, - 7454,7456,3,802,401,0,7455,7450,1,0,0,0,7455,7454,1,0,0,0,7456,735, - 1,0,0,0,7457,7460,3,676,338,0,7458,7460,3,802,401,0,7459,7457,1, - 0,0,0,7459,7458,1,0,0,0,7460,737,1,0,0,0,7461,7466,3,740,370,0,7462, - 7463,5,6,0,0,7463,7465,3,740,370,0,7464,7462,1,0,0,0,7465,7468,1, - 0,0,0,7466,7464,1,0,0,0,7466,7467,1,0,0,0,7467,739,1,0,0,0,7468, - 7466,1,0,0,0,7469,7477,3,802,401,0,7470,7477,3,676,338,0,7471,7474, - 3,822,411,0,7472,7473,7,108,0,0,7473,7475,3,676,338,0,7474,7472, - 1,0,0,0,7474,7475,1,0,0,0,7475,7477,1,0,0,0,7476,7469,1,0,0,0,7476, - 7470,1,0,0,0,7476,7471,1,0,0,0,7477,741,1,0,0,0,7478,7488,5,4,0, - 0,7479,7489,3,732,366,0,7480,7485,3,742,371,0,7481,7482,5,6,0,0, - 7482,7484,3,742,371,0,7483,7481,1,0,0,0,7484,7487,1,0,0,0,7485,7483, - 1,0,0,0,7485,7486,1,0,0,0,7486,7489,1,0,0,0,7487,7485,1,0,0,0,7488, - 7479,1,0,0,0,7488,7480,1,0,0,0,7488,7489,1,0,0,0,7489,7490,1,0,0, - 0,7490,7491,5,5,0,0,7491,743,1,0,0,0,7492,7501,3,828,414,0,7493, - 7501,5,384,0,0,7494,7501,5,264,0,0,7495,7501,5,176,0,0,7496,7501, - 5,218,0,0,7497,7501,5,261,0,0,7498,7501,5,326,0,0,7499,7501,3,810, - 405,0,7500,7492,1,0,0,0,7500,7493,1,0,0,0,7500,7494,1,0,0,0,7500, - 7495,1,0,0,0,7500,7496,1,0,0,0,7500,7497,1,0,0,0,7500,7498,1,0,0, - 0,7500,7499,1,0,0,0,7501,745,1,0,0,0,7502,7503,7,109,0,0,7503,747, - 1,0,0,0,7504,7505,3,676,338,0,7505,7506,5,64,0,0,7506,7509,3,676, - 338,0,7507,7508,5,62,0,0,7508,7510,3,676,338,0,7509,7507,1,0,0,0, - 7509,7510,1,0,0,0,7510,7526,1,0,0,0,7511,7512,3,676,338,0,7512,7513, - 5,62,0,0,7513,7516,3,676,338,0,7514,7515,5,64,0,0,7515,7517,3,676, - 338,0,7516,7514,1,0,0,0,7516,7517,1,0,0,0,7517,7526,1,0,0,0,7518, - 7519,3,676,338,0,7519,7520,5,127,0,0,7520,7521,3,676,338,0,7521, - 7522,5,197,0,0,7522,7523,3,676,338,0,7523,7526,1,0,0,0,7524,7526, - 3,732,366,0,7525,7504,1,0,0,0,7525,7511,1,0,0,0,7525,7518,1,0,0, - 0,7525,7524,1,0,0,0,7526,749,1,0,0,0,7527,7528,5,102,0,0,7528,7529, - 3,676,338,0,7529,7530,5,93,0,0,7530,7531,3,676,338,0,7531,751,1, - 0,0,0,7532,7535,5,11,0,0,7533,7536,3,826,413,0,7534,7536,5,9,0,0, - 7535,7533,1,0,0,0,7535,7534,1,0,0,0,7536,7550,1,0,0,0,7537,7546, - 5,4,0,0,7538,7547,3,676,338,0,7539,7541,3,676,338,0,7540,7539,1, - 0,0,0,7540,7541,1,0,0,0,7541,7542,1,0,0,0,7542,7544,5,8,0,0,7543, - 7545,3,676,338,0,7544,7543,1,0,0,0,7544,7545,1,0,0,0,7545,7547,1, - 0,0,0,7546,7538,1,0,0,0,7546,7540,1,0,0,0,7547,7548,1,0,0,0,7548, - 7550,5,5,0,0,7549,7532,1,0,0,0,7549,7537,1,0,0,0,7550,753,1,0,0, - 0,7551,7553,3,752,376,0,7552,7551,1,0,0,0,7553,7554,1,0,0,0,7554, - 7552,1,0,0,0,7554,7555,1,0,0,0,7555,755,1,0,0,0,7556,7558,3,752, - 376,0,7557,7556,1,0,0,0,7558,7561,1,0,0,0,7559,7557,1,0,0,0,7559, - 7560,1,0,0,0,7560,757,1,0,0,0,7561,7559,1,0,0,0,7562,7567,3,760, - 380,0,7563,7564,5,6,0,0,7564,7566,3,760,380,0,7565,7563,1,0,0,0, - 7566,7569,1,0,0,0,7567,7565,1,0,0,0,7567,7568,1,0,0,0,7568,759,1, - 0,0,0,7569,7567,1,0,0,0,7570,7575,3,736,368,0,7571,7572,5,36,0,0, - 7572,7576,3,826,413,0,7573,7576,3,828,414,0,7574,7576,1,0,0,0,7575, - 7571,1,0,0,0,7575,7573,1,0,0,0,7575,7574,1,0,0,0,7576,7579,1,0,0, - 0,7577,7579,5,9,0,0,7578,7570,1,0,0,0,7578,7577,1,0,0,0,7579,761, - 1,0,0,0,7580,7585,3,782,391,0,7581,7582,5,6,0,0,7582,7584,3,782, - 391,0,7583,7581,1,0,0,0,7584,7587,1,0,0,0,7585,7583,1,0,0,0,7585, - 7586,1,0,0,0,7586,763,1,0,0,0,7587,7585,1,0,0,0,7588,7593,3,776, - 388,0,7589,7590,5,6,0,0,7590,7592,3,776,388,0,7591,7589,1,0,0,0, - 7592,7595,1,0,0,0,7593,7591,1,0,0,0,7593,7594,1,0,0,0,7594,765,1, - 0,0,0,7595,7593,1,0,0,0,7596,7601,3,792,396,0,7597,7598,5,6,0,0, - 7598,7600,3,792,396,0,7599,7597,1,0,0,0,7600,7603,1,0,0,0,7601,7599, - 1,0,0,0,7601,7602,1,0,0,0,7602,767,1,0,0,0,7603,7601,1,0,0,0,7604, - 7609,3,790,395,0,7605,7606,5,6,0,0,7606,7608,3,790,395,0,7607,7605, - 1,0,0,0,7608,7611,1,0,0,0,7609,7607,1,0,0,0,7609,7610,1,0,0,0,7610, - 769,1,0,0,0,7611,7609,1,0,0,0,7612,7613,3,782,391,0,7613,771,1,0, - 0,0,7614,7615,3,782,391,0,7615,773,1,0,0,0,7616,7617,3,782,391,0, - 7617,775,1,0,0,0,7618,7619,3,782,391,0,7619,777,1,0,0,0,7620,7621, - 3,782,391,0,7621,779,1,0,0,0,7622,7623,3,318,159,0,7623,781,1,0, - 0,0,7624,7626,3,820,410,0,7625,7627,3,754,377,0,7626,7625,1,0,0, - 0,7626,7627,1,0,0,0,7627,783,1,0,0,0,7628,7633,3,772,386,0,7629, - 7630,5,6,0,0,7630,7632,3,772,386,0,7631,7629,1,0,0,0,7632,7635,1, - 0,0,0,7633,7631,1,0,0,0,7633,7634,1,0,0,0,7634,785,1,0,0,0,7635, - 7633,1,0,0,0,7636,7641,3,820,410,0,7637,7638,5,6,0,0,7638,7640,3, - 820,410,0,7639,7637,1,0,0,0,7640,7643,1,0,0,0,7641,7639,1,0,0,0, - 7641,7642,1,0,0,0,7642,787,1,0,0,0,7643,7641,1,0,0,0,7644,7645,3, - 318,159,0,7645,789,1,0,0,0,7646,7647,3,318,159,0,7647,791,1,0,0, - 0,7648,7649,3,318,159,0,7649,793,1,0,0,0,7650,7651,3,820,410,0,7651, - 795,1,0,0,0,7652,7653,3,820,410,0,7653,797,1,0,0,0,7654,7659,3,822, - 411,0,7655,7656,3,820,410,0,7656,7657,3,754,377,0,7657,7659,1,0, - 0,0,7658,7654,1,0,0,0,7658,7655,1,0,0,0,7659,799,1,0,0,0,7660,7665, - 3,822,411,0,7661,7662,3,820,410,0,7662,7663,3,754,377,0,7663,7665, - 1,0,0,0,7664,7660,1,0,0,0,7664,7661,1,0,0,0,7665,801,1,0,0,0,7666, - 7667,3,820,410,0,7667,7668,3,756,378,0,7668,7671,1,0,0,0,7669,7671, - 4,401,10,0,7670,7666,1,0,0,0,7670,7669,1,0,0,0,7671,803,1,0,0,0, - 7672,7673,3,820,410,0,7673,805,1,0,0,0,7674,7679,3,822,411,0,7675, - 7676,3,820,410,0,7676,7677,3,754,377,0,7677,7679,1,0,0,0,7678,7674, - 1,0,0,0,7678,7675,1,0,0,0,7679,807,1,0,0,0,7680,7685,3,822,411,0, - 7681,7682,3,820,410,0,7682,7683,3,754,377,0,7683,7685,1,0,0,0,7684, - 7680,1,0,0,0,7684,7681,1,0,0,0,7685,809,1,0,0,0,7686,7689,3,812, - 406,0,7687,7688,5,487,0,0,7688,7690,3,812,406,0,7689,7687,1,0,0, - 0,7689,7690,1,0,0,0,7690,811,1,0,0,0,7691,7703,5,561,0,0,7692,7703, - 5,563,0,0,7693,7697,5,565,0,0,7694,7696,5,591,0,0,7695,7694,1,0, - 0,0,7696,7699,1,0,0,0,7697,7695,1,0,0,0,7697,7698,1,0,0,0,7698,7700, - 1,0,0,0,7699,7697,1,0,0,0,7700,7703,5,592,0,0,7701,7703,5,587,0, - 0,7702,7691,1,0,0,0,7702,7692,1,0,0,0,7702,7693,1,0,0,0,7702,7701, - 1,0,0,0,7703,813,1,0,0,0,7704,7706,7,30,0,0,7705,7704,1,0,0,0,7705, - 7706,1,0,0,0,7706,7707,1,0,0,0,7707,7708,5,574,0,0,7708,815,1,0, - 0,0,7709,7715,3,824,412,0,7710,7715,5,52,0,0,7711,7715,5,49,0,0, - 7712,7715,5,89,0,0,7713,7715,5,524,0,0,7714,7709,1,0,0,0,7714,7710, - 1,0,0,0,7714,7711,1,0,0,0,7714,7712,1,0,0,0,7714,7713,1,0,0,0,7715, - 817,1,0,0,0,7716,7721,3,816,408,0,7717,7718,5,6,0,0,7718,7720,3, - 816,408,0,7719,7717,1,0,0,0,7720,7723,1,0,0,0,7721,7719,1,0,0,0, - 7721,7722,1,0,0,0,7722,819,1,0,0,0,7723,7721,1,0,0,0,7724,7727,3, - 828,414,0,7725,7727,3,832,416,0,7726,7724,1,0,0,0,7726,7725,1,0, - 0,0,7727,821,1,0,0,0,7728,7731,3,828,414,0,7729,7731,3,834,417,0, - 7730,7728,1,0,0,0,7730,7729,1,0,0,0,7731,823,1,0,0,0,7732,7736,3, - 828,414,0,7733,7736,3,832,416,0,7734,7736,3,834,417,0,7735,7732, - 1,0,0,0,7735,7733,1,0,0,0,7735,7734,1,0,0,0,7736,825,1,0,0,0,7737, - 7742,3,828,414,0,7738,7742,3,832,416,0,7739,7742,3,834,417,0,7740, - 7742,3,836,418,0,7741,7737,1,0,0,0,7741,7738,1,0,0,0,7741,7739,1, - 0,0,0,7741,7740,1,0,0,0,7742,827,1,0,0,0,7743,7746,5,552,0,0,7744, - 7745,5,487,0,0,7745,7747,3,812,406,0,7746,7744,1,0,0,0,7746,7747, - 1,0,0,0,7747,7755,1,0,0,0,7748,7755,3,810,405,0,7749,7755,5,553, - 0,0,7750,7755,5,557,0,0,7751,7755,5,577,0,0,7752,7755,5,578,0,0, - 7753,7755,3,830,415,0,7754,7743,1,0,0,0,7754,7748,1,0,0,0,7754,7749, - 1,0,0,0,7754,7750,1,0,0,0,7754,7751,1,0,0,0,7754,7752,1,0,0,0,7754, - 7753,1,0,0,0,7755,829,1,0,0,0,7756,7757,7,110,0,0,7757,831,1,0,0, - 0,7758,7810,5,387,0,0,7759,7810,5,388,0,0,7760,7810,3,664,332,0, - 7761,7810,5,390,0,0,7762,7810,5,391,0,0,7763,7810,3,666,333,0,7764, - 7810,5,393,0,0,7765,7810,5,394,0,0,7766,7810,5,395,0,0,7767,7810, - 5,396,0,0,7768,7810,5,397,0,0,7769,7810,5,398,0,0,7770,7810,5,399, - 0,0,7771,7810,5,470,0,0,7772,7810,5,400,0,0,7773,7810,5,401,0,0, - 7774,7810,5,402,0,0,7775,7810,5,403,0,0,7776,7810,5,404,0,0,7777, - 7810,5,405,0,0,7778,7810,5,406,0,0,7779,7810,5,407,0,0,7780,7810, - 5,489,0,0,7781,7810,5,408,0,0,7782,7810,3,660,330,0,7783,7810,5, - 453,0,0,7784,7810,5,410,0,0,7785,7810,5,411,0,0,7786,7810,5,412, - 0,0,7787,7810,5,413,0,0,7788,7810,5,414,0,0,7789,7810,5,415,0,0, - 7790,7810,5,416,0,0,7791,7810,5,417,0,0,7792,7810,5,418,0,0,7793, - 7810,5,419,0,0,7794,7810,5,420,0,0,7795,7810,5,421,0,0,7796,7810, - 5,422,0,0,7797,7810,5,423,0,0,7798,7810,5,424,0,0,7799,7810,5,425, - 0,0,7800,7810,5,426,0,0,7801,7810,5,427,0,0,7802,7810,5,428,0,0, - 7803,7810,5,476,0,0,7804,7810,5,429,0,0,7805,7810,5,430,0,0,7806, - 7810,5,431,0,0,7807,7810,5,432,0,0,7808,7810,5,474,0,0,7809,7758, - 1,0,0,0,7809,7759,1,0,0,0,7809,7760,1,0,0,0,7809,7761,1,0,0,0,7809, - 7762,1,0,0,0,7809,7763,1,0,0,0,7809,7764,1,0,0,0,7809,7765,1,0,0, - 0,7809,7766,1,0,0,0,7809,7767,1,0,0,0,7809,7768,1,0,0,0,7809,7769, - 1,0,0,0,7809,7770,1,0,0,0,7809,7771,1,0,0,0,7809,7772,1,0,0,0,7809, - 7773,1,0,0,0,7809,7774,1,0,0,0,7809,7775,1,0,0,0,7809,7776,1,0,0, - 0,7809,7777,1,0,0,0,7809,7778,1,0,0,0,7809,7779,1,0,0,0,7809,7780, - 1,0,0,0,7809,7781,1,0,0,0,7809,7782,1,0,0,0,7809,7783,1,0,0,0,7809, - 7784,1,0,0,0,7809,7785,1,0,0,0,7809,7786,1,0,0,0,7809,7787,1,0,0, - 0,7809,7788,1,0,0,0,7809,7789,1,0,0,0,7809,7790,1,0,0,0,7809,7791, - 1,0,0,0,7809,7792,1,0,0,0,7809,7793,1,0,0,0,7809,7794,1,0,0,0,7809, - 7795,1,0,0,0,7809,7796,1,0,0,0,7809,7797,1,0,0,0,7809,7798,1,0,0, - 0,7809,7799,1,0,0,0,7809,7800,1,0,0,0,7809,7801,1,0,0,0,7809,7802, - 1,0,0,0,7809,7803,1,0,0,0,7809,7804,1,0,0,0,7809,7805,1,0,0,0,7809, - 7806,1,0,0,0,7809,7807,1,0,0,0,7809,7808,1,0,0,0,7810,833,1,0,0, - 0,7811,7812,7,111,0,0,7812,835,1,0,0,0,7813,7814,7,112,0,0,7814, - 837,1,0,0,0,7815,7817,3,840,420,0,7816,7815,1,0,0,0,7816,7817,1, - 0,0,0,7817,7828,1,0,0,0,7818,7826,5,178,0,0,7819,7823,3,842,421, - 0,7820,7823,5,178,0,0,7821,7823,3,840,420,0,7822,7819,1,0,0,0,7822, - 7820,1,0,0,0,7822,7821,1,0,0,0,7823,7824,1,0,0,0,7824,7822,1,0,0, - 0,7824,7825,1,0,0,0,7825,7827,1,0,0,0,7826,7822,1,0,0,0,7826,7827, - 1,0,0,0,7827,7829,1,0,0,0,7828,7818,1,0,0,0,7828,7829,1,0,0,0,7829, - 7830,1,0,0,0,7830,7834,5,146,0,0,7831,7833,3,848,424,0,7832,7831, - 1,0,0,0,7833,7836,1,0,0,0,7834,7832,1,0,0,0,7834,7835,1,0,0,0,7835, - 7838,1,0,0,0,7836,7834,1,0,0,0,7837,7839,3,926,463,0,7838,7837,1, - 0,0,0,7838,7839,1,0,0,0,7839,7840,1,0,0,0,7840,7842,5,454,0,0,7841, - 7843,3,930,465,0,7842,7841,1,0,0,0,7842,7843,1,0,0,0,7843,839,1, - 0,0,0,7844,7845,5,18,0,0,7845,7846,3,930,465,0,7846,7847,5,19,0, - 0,7847,841,1,0,0,0,7848,7895,3,930,465,0,7849,7850,5,496,0,0,7850, - 7853,5,62,0,0,7851,7854,5,28,0,0,7852,7854,3,820,410,0,7853,7851, - 1,0,0,0,7853,7852,1,0,0,0,7854,7896,1,0,0,0,7855,7857,5,497,0,0, - 7856,7855,1,0,0,0,7856,7857,1,0,0,0,7857,7858,1,0,0,0,7858,7860, - 3,654,327,0,7859,7861,3,98,49,0,7860,7859,1,0,0,0,7860,7861,1,0, - 0,0,7861,7864,1,0,0,0,7862,7863,5,77,0,0,7863,7865,5,78,0,0,7864, - 7862,1,0,0,0,7864,7865,1,0,0,0,7865,7871,1,0,0,0,7866,7869,3,846, - 423,0,7867,7869,5,53,0,0,7868,7866,1,0,0,0,7868,7867,1,0,0,0,7869, - 7870,1,0,0,0,7870,7872,3,932,466,0,7871,7868,1,0,0,0,7871,7872,1, - 0,0,0,7872,7896,1,0,0,0,7873,7875,5,269,0,0,7874,7873,1,0,0,0,7874, - 7875,1,0,0,0,7875,7876,1,0,0,0,7876,7878,5,324,0,0,7877,7874,1,0, - 0,0,7877,7878,1,0,0,0,7878,7879,1,0,0,0,7879,7891,5,172,0,0,7880, - 7881,5,2,0,0,7881,7886,3,844,422,0,7882,7883,5,6,0,0,7883,7885,3, - 844,422,0,7884,7882,1,0,0,0,7885,7888,1,0,0,0,7886,7884,1,0,0,0, - 7886,7887,1,0,0,0,7887,7889,1,0,0,0,7888,7886,1,0,0,0,7889,7890, - 5,3,0,0,7890,7892,1,0,0,0,7891,7880,1,0,0,0,7891,7892,1,0,0,0,7892, - 7893,1,0,0,0,7893,7894,7,113,0,0,7894,7896,3,562,281,0,7895,7849, - 1,0,0,0,7895,7856,1,0,0,0,7895,7877,1,0,0,0,7896,7897,1,0,0,0,7897, - 7898,5,7,0,0,7898,843,1,0,0,0,7899,7900,3,930,465,0,7900,7901,3, - 654,327,0,7901,845,1,0,0,0,7902,7903,7,114,0,0,7903,847,1,0,0,0, - 7904,7905,3,838,419,0,7905,7906,5,7,0,0,7906,7929,1,0,0,0,7907,7929, - 3,876,438,0,7908,7929,3,878,439,0,7909,7929,3,854,427,0,7910,7929, - 3,862,431,0,7911,7929,3,866,433,0,7912,7929,3,868,434,0,7913,7929, - 3,872,436,0,7914,7929,3,874,437,0,7915,7929,3,882,441,0,7916,7929, - 3,886,443,0,7917,7929,3,888,444,0,7918,7929,3,850,425,0,7919,7929, - 3,852,426,0,7920,7929,3,856,428,0,7921,7929,3,892,446,0,7922,7929, - 3,896,448,0,7923,7929,3,900,450,0,7924,7929,3,916,458,0,7925,7929, - 3,918,459,0,7926,7929,3,920,460,0,7927,7929,3,922,461,0,7928,7904, - 1,0,0,0,7928,7907,1,0,0,0,7928,7908,1,0,0,0,7928,7909,1,0,0,0,7928, - 7910,1,0,0,0,7928,7911,1,0,0,0,7928,7912,1,0,0,0,7928,7913,1,0,0, - 0,7928,7914,1,0,0,0,7928,7915,1,0,0,0,7928,7916,1,0,0,0,7928,7917, - 1,0,0,0,7928,7918,1,0,0,0,7928,7919,1,0,0,0,7928,7920,1,0,0,0,7928, - 7921,1,0,0,0,7928,7922,1,0,0,0,7928,7923,1,0,0,0,7928,7924,1,0,0, - 0,7928,7925,1,0,0,0,7928,7926,1,0,0,0,7928,7927,1,0,0,0,7929,849, - 1,0,0,0,7930,7931,5,498,0,0,7931,7932,3,932,466,0,7932,7933,5,7, - 0,0,7933,851,1,0,0,0,7934,7935,5,433,0,0,7935,7942,3,930,465,0,7936, - 7938,5,2,0,0,7937,7939,3,732,366,0,7938,7937,1,0,0,0,7938,7939,1, - 0,0,0,7939,7940,1,0,0,0,7940,7941,5,3,0,0,7941,7943,5,7,0,0,7942, - 7936,1,0,0,0,7942,7943,1,0,0,0,7943,7954,1,0,0,0,7944,7945,5,57, - 0,0,7945,7946,3,930,465,0,7946,7948,5,2,0,0,7947,7949,3,732,366, - 0,7948,7947,1,0,0,0,7948,7949,1,0,0,0,7949,7950,1,0,0,0,7950,7951, - 5,3,0,0,7951,7952,5,7,0,0,7952,7954,1,0,0,0,7953,7934,1,0,0,0,7953, - 7944,1,0,0,0,7954,853,1,0,0,0,7955,7956,3,860,430,0,7956,7957,3, - 846,423,0,7957,7958,3,932,466,0,7958,7959,5,7,0,0,7959,855,1,0,0, - 0,7960,7962,5,499,0,0,7961,7963,7,115,0,0,7962,7961,1,0,0,0,7962, - 7963,1,0,0,0,7963,7964,1,0,0,0,7964,7965,5,500,0,0,7965,7970,3,858, - 429,0,7966,7967,5,6,0,0,7967,7969,3,858,429,0,7968,7966,1,0,0,0, - 7969,7972,1,0,0,0,7970,7968,1,0,0,0,7970,7971,1,0,0,0,7971,7973, - 1,0,0,0,7972,7970,1,0,0,0,7973,7974,5,7,0,0,7974,857,1,0,0,0,7975, - 7976,3,860,430,0,7976,7977,3,846,423,0,7977,7978,3,820,410,0,7978, - 859,1,0,0,0,7979,7982,3,318,159,0,7980,7982,5,28,0,0,7981,7979,1, - 0,0,0,7981,7980,1,0,0,0,7982,7989,1,0,0,0,7983,7984,5,4,0,0,7984, - 7985,3,676,338,0,7985,7986,5,5,0,0,7986,7988,1,0,0,0,7987,7983,1, - 0,0,0,7988,7991,1,0,0,0,7989,7987,1,0,0,0,7989,7990,1,0,0,0,7990, - 861,1,0,0,0,7991,7989,1,0,0,0,7992,7993,5,220,0,0,7993,7994,3,932, - 466,0,7994,7998,5,93,0,0,7995,7997,3,848,424,0,7996,7995,1,0,0,0, - 7997,8000,1,0,0,0,7998,7996,1,0,0,0,7998,7999,1,0,0,0,7999,8012, - 1,0,0,0,8000,7998,1,0,0,0,8001,8002,5,502,0,0,8002,8003,3,676,338, - 0,8003,8007,5,93,0,0,8004,8006,3,848,424,0,8005,8004,1,0,0,0,8006, - 8009,1,0,0,0,8007,8005,1,0,0,0,8007,8008,1,0,0,0,8008,8011,1,0,0, - 0,8009,8007,1,0,0,0,8010,8001,1,0,0,0,8011,8014,1,0,0,0,8012,8010, - 1,0,0,0,8012,8013,1,0,0,0,8013,8016,1,0,0,0,8014,8012,1,0,0,0,8015, - 8017,3,864,432,0,8016,8015,1,0,0,0,8016,8017,1,0,0,0,8017,8018,1, - 0,0,0,8018,8019,5,454,0,0,8019,8020,5,220,0,0,8020,8021,5,7,0,0, - 8021,863,1,0,0,0,8022,8026,5,58,0,0,8023,8025,3,848,424,0,8024,8023, - 1,0,0,0,8025,8028,1,0,0,0,8026,8024,1,0,0,0,8026,8027,1,0,0,0,8027, - 865,1,0,0,0,8028,8026,1,0,0,0,8029,8031,5,40,0,0,8030,8032,3,932, - 466,0,8031,8030,1,0,0,0,8031,8032,1,0,0,0,8032,8042,1,0,0,0,8033, - 8034,5,102,0,0,8034,8035,3,732,366,0,8035,8039,5,93,0,0,8036,8038, - 3,848,424,0,8037,8036,1,0,0,0,8038,8041,1,0,0,0,8039,8037,1,0,0, - 0,8039,8040,1,0,0,0,8040,8043,1,0,0,0,8041,8039,1,0,0,0,8042,8033, - 1,0,0,0,8043,8044,1,0,0,0,8044,8042,1,0,0,0,8044,8045,1,0,0,0,8045, - 8047,1,0,0,0,8046,8048,3,864,432,0,8047,8046,1,0,0,0,8047,8048,1, - 0,0,0,8048,8049,1,0,0,0,8049,8050,5,454,0,0,8050,8051,5,40,0,0,8051, - 8052,5,7,0,0,8052,867,1,0,0,0,8053,8055,3,840,420,0,8054,8053,1, - 0,0,0,8054,8055,1,0,0,0,8055,8060,1,0,0,0,8056,8057,5,503,0,0,8057, - 8061,3,676,338,0,8058,8059,5,62,0,0,8059,8061,3,870,435,0,8060,8056, - 1,0,0,0,8060,8058,1,0,0,0,8060,8061,1,0,0,0,8061,8062,1,0,0,0,8062, - 8063,3,884,442,0,8063,869,1,0,0,0,8064,8065,3,316,158,0,8065,8088, - 5,68,0,0,8066,8068,3,820,410,0,8067,8069,3,536,268,0,8068,8067,1, - 0,0,0,8068,8069,1,0,0,0,8069,8089,1,0,0,0,8070,8089,3,562,281,0, - 8071,8089,3,522,261,0,8072,8073,5,202,0,0,8073,8076,3,676,338,0, - 8074,8075,5,100,0,0,8075,8077,3,732,366,0,8076,8074,1,0,0,0,8076, - 8077,1,0,0,0,8077,8089,1,0,0,0,8078,8080,5,504,0,0,8079,8078,1,0, - 0,0,8079,8080,1,0,0,0,8080,8081,1,0,0,0,8081,8082,3,676,338,0,8082, - 8083,5,24,0,0,8083,8086,3,676,338,0,8084,8085,5,147,0,0,8085,8087, - 3,676,338,0,8086,8084,1,0,0,0,8086,8087,1,0,0,0,8087,8089,1,0,0, - 0,8088,8066,1,0,0,0,8088,8070,1,0,0,0,8088,8071,1,0,0,0,8088,8072, - 1,0,0,0,8088,8079,1,0,0,0,8089,871,1,0,0,0,8090,8092,3,840,420,0, - 8091,8090,1,0,0,0,8091,8092,1,0,0,0,8092,8093,1,0,0,0,8093,8094, - 5,505,0,0,8094,8097,3,316,158,0,8095,8096,5,506,0,0,8096,8098,5, - 574,0,0,8097,8095,1,0,0,0,8097,8098,1,0,0,0,8098,8099,1,0,0,0,8099, - 8100,5,68,0,0,8100,8101,5,35,0,0,8101,8102,3,676,338,0,8102,8103, - 3,884,442,0,8103,873,1,0,0,0,8104,8106,7,116,0,0,8105,8107,3,930, - 465,0,8106,8105,1,0,0,0,8106,8107,1,0,0,0,8107,8110,1,0,0,0,8108, - 8109,5,102,0,0,8109,8111,3,932,466,0,8110,8108,1,0,0,0,8110,8111, - 1,0,0,0,8111,8112,1,0,0,0,8112,8113,5,7,0,0,8113,875,1,0,0,0,8114, - 8129,5,508,0,0,8115,8116,5,268,0,0,8116,8130,3,932,466,0,8117,8124, - 5,509,0,0,8118,8119,5,202,0,0,8119,8120,3,676,338,0,8120,8121,5, - 100,0,0,8121,8122,3,732,366,0,8122,8125,1,0,0,0,8123,8125,3,562, - 281,0,8124,8118,1,0,0,0,8124,8123,1,0,0,0,8125,8130,1,0,0,0,8126, - 8128,3,932,466,0,8127,8126,1,0,0,0,8127,8128,1,0,0,0,8128,8130,1, - 0,0,0,8129,8115,1,0,0,0,8129,8117,1,0,0,0,8129,8127,1,0,0,0,8130, - 8131,1,0,0,0,8131,8132,5,7,0,0,8132,877,1,0,0,0,8133,8163,5,510, - 0,0,8134,8136,7,117,0,0,8135,8134,1,0,0,0,8135,8136,1,0,0,0,8136, - 8149,1,0,0,0,8137,8150,3,828,414,0,8138,8139,5,511,0,0,8139,8150, - 3,810,405,0,8140,8147,3,810,405,0,8141,8142,5,6,0,0,8142,8144,3, - 676,338,0,8143,8141,1,0,0,0,8144,8145,1,0,0,0,8145,8143,1,0,0,0, - 8145,8146,1,0,0,0,8146,8148,1,0,0,0,8147,8143,1,0,0,0,8147,8148, - 1,0,0,0,8148,8150,1,0,0,0,8149,8137,1,0,0,0,8149,8138,1,0,0,0,8149, - 8140,1,0,0,0,8149,8150,1,0,0,0,8150,8160,1,0,0,0,8151,8152,5,100, - 0,0,8152,8157,3,880,440,0,8153,8154,5,6,0,0,8154,8156,3,880,440, - 0,8155,8153,1,0,0,0,8156,8159,1,0,0,0,8157,8155,1,0,0,0,8157,8158, - 1,0,0,0,8158,8161,1,0,0,0,8159,8157,1,0,0,0,8160,8151,1,0,0,0,8160, - 8161,1,0,0,0,8161,8162,1,0,0,0,8162,8164,5,7,0,0,8163,8135,1,0,0, - 0,8163,8164,1,0,0,0,8164,879,1,0,0,0,8165,8166,3,828,414,0,8166, - 8167,5,10,0,0,8167,8168,3,676,338,0,8168,881,1,0,0,0,8169,8170,5, - 518,0,0,8170,8173,3,932,466,0,8171,8172,5,6,0,0,8172,8174,3,932, - 466,0,8173,8171,1,0,0,0,8173,8174,1,0,0,0,8174,8175,1,0,0,0,8175, - 8176,5,7,0,0,8176,883,1,0,0,0,8177,8181,5,519,0,0,8178,8180,3,848, - 424,0,8179,8178,1,0,0,0,8180,8183,1,0,0,0,8181,8179,1,0,0,0,8181, - 8182,1,0,0,0,8182,8184,1,0,0,0,8183,8181,1,0,0,0,8184,8185,5,454, - 0,0,8185,8187,5,519,0,0,8186,8188,3,930,465,0,8187,8186,1,0,0,0, - 8187,8188,1,0,0,0,8188,8189,1,0,0,0,8189,8190,5,7,0,0,8190,885,1, - 0,0,0,8191,8193,3,4,2,0,8192,8194,3,890,445,0,8193,8192,1,0,0,0, - 8193,8194,1,0,0,0,8194,8195,1,0,0,0,8195,8196,5,7,0,0,8196,887,1, - 0,0,0,8197,8198,5,202,0,0,8198,8214,3,676,338,0,8199,8201,3,890, - 445,0,8200,8199,1,0,0,0,8200,8201,1,0,0,0,8201,8204,1,0,0,0,8202, - 8203,5,100,0,0,8203,8205,3,732,366,0,8204,8202,1,0,0,0,8204,8205, - 1,0,0,0,8205,8215,1,0,0,0,8206,8207,5,100,0,0,8207,8209,3,732,366, - 0,8208,8206,1,0,0,0,8208,8209,1,0,0,0,8209,8211,1,0,0,0,8210,8212, - 3,890,445,0,8211,8210,1,0,0,0,8211,8212,1,0,0,0,8212,8215,1,0,0, - 0,8213,8215,1,0,0,0,8214,8200,1,0,0,0,8214,8208,1,0,0,0,8214,8213, - 1,0,0,0,8215,8216,1,0,0,0,8216,8217,5,7,0,0,8217,889,1,0,0,0,8218, - 8220,5,71,0,0,8219,8221,5,346,0,0,8220,8219,1,0,0,0,8220,8221,1, - 0,0,0,8221,8222,1,0,0,0,8222,8223,3,732,366,0,8223,891,1,0,0,0,8224, - 8256,5,520,0,0,8225,8230,3,924,462,0,8226,8228,5,269,0,0,8227,8226, - 1,0,0,0,8227,8228,1,0,0,0,8228,8229,1,0,0,0,8229,8231,5,324,0,0, - 8230,8227,1,0,0,0,8230,8231,1,0,0,0,8231,8232,1,0,0,0,8232,8240, - 5,62,0,0,8233,8241,3,562,281,0,8234,8235,5,202,0,0,8235,8238,3,932, - 466,0,8236,8237,5,100,0,0,8237,8239,3,732,366,0,8238,8236,1,0,0, - 0,8238,8239,1,0,0,0,8239,8241,1,0,0,0,8240,8233,1,0,0,0,8240,8234, - 1,0,0,0,8241,8257,1,0,0,0,8242,8254,3,820,410,0,8243,8244,5,2,0, - 0,8244,8249,3,894,447,0,8245,8246,5,6,0,0,8246,8248,3,894,447,0, - 8247,8245,1,0,0,0,8248,8251,1,0,0,0,8249,8247,1,0,0,0,8249,8250, - 1,0,0,0,8250,8252,1,0,0,0,8251,8249,1,0,0,0,8252,8253,5,3,0,0,8253, - 8255,1,0,0,0,8254,8243,1,0,0,0,8254,8255,1,0,0,0,8255,8257,1,0,0, - 0,8256,8225,1,0,0,0,8256,8242,1,0,0,0,8257,8258,1,0,0,0,8258,8259, - 5,7,0,0,8259,893,1,0,0,0,8260,8261,3,820,410,0,8261,8262,5,20,0, - 0,8262,8264,1,0,0,0,8263,8260,1,0,0,0,8263,8264,1,0,0,0,8264,8265, - 1,0,0,0,8265,8266,3,676,338,0,8266,895,1,0,0,0,8267,8269,5,61,0, - 0,8268,8270,3,898,449,0,8269,8268,1,0,0,0,8269,8270,1,0,0,0,8270, - 8272,1,0,0,0,8271,8273,3,334,167,0,8272,8271,1,0,0,0,8272,8273,1, - 0,0,0,8273,8274,1,0,0,0,8274,8275,3,924,462,0,8275,8276,5,71,0,0, - 8276,8277,3,732,366,0,8277,8278,5,7,0,0,8278,897,1,0,0,0,8279,8294, - 5,268,0,0,8280,8294,5,293,0,0,8281,8294,5,207,0,0,8282,8294,5,249, - 0,0,8283,8285,7,51,0,0,8284,8283,1,0,0,0,8284,8285,1,0,0,0,8285, - 8286,1,0,0,0,8286,8294,3,676,338,0,8287,8294,5,30,0,0,8288,8291, - 7,118,0,0,8289,8292,3,676,338,0,8290,8292,5,30,0,0,8291,8289,1,0, - 0,0,8291,8290,1,0,0,0,8291,8292,1,0,0,0,8292,8294,1,0,0,0,8293,8279, - 1,0,0,0,8293,8280,1,0,0,0,8293,8281,1,0,0,0,8293,8282,1,0,0,0,8293, - 8284,1,0,0,0,8293,8287,1,0,0,0,8293,8288,1,0,0,0,8294,899,1,0,0, - 0,8295,8297,5,265,0,0,8296,8298,3,898,449,0,8297,8296,1,0,0,0,8297, - 8298,1,0,0,0,8298,8299,1,0,0,0,8299,8300,3,924,462,0,8300,8301,5, - 7,0,0,8301,901,1,0,0,0,8302,8304,3,574,287,0,8303,8302,1,0,0,0,8303, - 8304,1,0,0,0,8304,8305,1,0,0,0,8305,8306,5,525,0,0,8306,8308,5,71, - 0,0,8307,8309,5,81,0,0,8308,8307,1,0,0,0,8308,8309,1,0,0,0,8309, - 8310,1,0,0,0,8310,8312,3,776,388,0,8311,8313,5,9,0,0,8312,8311,1, - 0,0,0,8312,8313,1,0,0,0,8313,8318,1,0,0,0,8314,8316,5,36,0,0,8315, - 8314,1,0,0,0,8315,8316,1,0,0,0,8316,8317,1,0,0,0,8317,8319,3,820, - 410,0,8318,8315,1,0,0,0,8318,8319,1,0,0,0,8319,8320,1,0,0,0,8320, - 8321,5,100,0,0,8321,8322,3,904,452,0,8322,8323,5,80,0,0,8323,8325, - 3,676,338,0,8324,8326,3,906,453,0,8325,8324,1,0,0,0,8326,8327,1, - 0,0,0,8327,8325,1,0,0,0,8327,8328,1,0,0,0,8328,903,1,0,0,0,8329, - 8331,5,81,0,0,8330,8329,1,0,0,0,8330,8331,1,0,0,0,8331,8332,1,0, - 0,0,8332,8334,3,776,388,0,8333,8335,5,9,0,0,8334,8333,1,0,0,0,8334, - 8335,1,0,0,0,8335,8341,1,0,0,0,8336,8339,3,566,283,0,8337,8339,3, - 610,305,0,8338,8336,1,0,0,0,8338,8337,1,0,0,0,8339,8341,1,0,0,0, - 8340,8330,1,0,0,0,8340,8338,1,0,0,0,8341,8346,1,0,0,0,8342,8344, - 5,36,0,0,8343,8342,1,0,0,0,8343,8344,1,0,0,0,8344,8345,1,0,0,0,8345, - 8347,3,820,410,0,8346,8343,1,0,0,0,8346,8347,1,0,0,0,8347,905,1, - 0,0,0,8348,8349,5,102,0,0,8349,8352,5,526,0,0,8350,8351,5,33,0,0, - 8351,8353,3,676,338,0,8352,8350,1,0,0,0,8352,8353,1,0,0,0,8353,8354, - 1,0,0,0,8354,8359,5,93,0,0,8355,8360,3,910,455,0,8356,8360,5,182, - 0,0,8357,8358,5,57,0,0,8358,8360,5,270,0,0,8359,8355,1,0,0,0,8359, - 8356,1,0,0,0,8359,8357,1,0,0,0,8360,8375,1,0,0,0,8361,8362,5,102, - 0,0,8362,8363,5,77,0,0,8363,8366,5,526,0,0,8364,8365,5,33,0,0,8365, - 8367,3,676,338,0,8366,8364,1,0,0,0,8366,8367,1,0,0,0,8367,8368,1, - 0,0,0,8368,8372,5,93,0,0,8369,8373,3,908,454,0,8370,8371,5,57,0, - 0,8371,8373,5,270,0,0,8372,8369,1,0,0,0,8372,8370,1,0,0,0,8373,8375, - 1,0,0,0,8374,8348,1,0,0,0,8374,8361,1,0,0,0,8375,907,1,0,0,0,8376, - 8378,5,241,0,0,8377,8379,3,146,73,0,8378,8377,1,0,0,0,8378,8379, - 1,0,0,0,8379,8383,1,0,0,0,8380,8381,5,463,0,0,8381,8382,7,77,0,0, - 8382,8384,5,450,0,0,8383,8380,1,0,0,0,8383,8384,1,0,0,0,8384,8385, - 1,0,0,0,8385,8386,3,912,456,0,8386,909,1,0,0,0,8387,8388,5,369,0, - 0,8388,8406,5,333,0,0,8389,8390,3,802,401,0,8390,8391,5,10,0,0,8391, - 8392,3,914,457,0,8392,8407,1,0,0,0,8393,8394,3,146,73,0,8394,8395, - 5,10,0,0,8395,8396,5,2,0,0,8396,8401,3,914,457,0,8397,8398,5,6,0, - 0,8398,8400,3,914,457,0,8399,8397,1,0,0,0,8400,8403,1,0,0,0,8401, - 8399,1,0,0,0,8401,8402,1,0,0,0,8402,8404,1,0,0,0,8403,8401,1,0,0, - 0,8404,8405,5,3,0,0,8405,8407,1,0,0,0,8406,8389,1,0,0,0,8406,8393, - 1,0,0,0,8407,8408,1,0,0,0,8408,8406,1,0,0,0,8408,8409,1,0,0,0,8409, - 911,1,0,0,0,8410,8411,5,422,0,0,8411,8412,5,2,0,0,8412,8417,3,914, - 457,0,8413,8414,5,6,0,0,8414,8416,3,914,457,0,8415,8413,1,0,0,0, - 8416,8419,1,0,0,0,8417,8415,1,0,0,0,8417,8418,1,0,0,0,8418,8420, - 1,0,0,0,8419,8417,1,0,0,0,8420,8421,5,3,0,0,8421,8425,1,0,0,0,8422, - 8423,5,53,0,0,8423,8425,5,422,0,0,8424,8410,1,0,0,0,8424,8422,1, - 0,0,0,8425,913,1,0,0,0,8426,8429,3,590,295,0,8427,8429,5,53,0,0, - 8428,8426,1,0,0,0,8428,8427,1,0,0,0,8429,915,1,0,0,0,8430,8431,5, - 157,0,0,8431,8432,3,924,462,0,8432,8433,5,7,0,0,8433,917,1,0,0,0, - 8434,8435,5,78,0,0,8435,8436,5,7,0,0,8436,919,1,0,0,0,8437,8443, - 7,68,0,0,8438,8440,5,33,0,0,8439,8441,5,269,0,0,8440,8439,1,0,0, - 0,8440,8441,1,0,0,0,8441,8442,1,0,0,0,8442,8444,5,153,0,0,8443,8438, - 1,0,0,0,8443,8444,1,0,0,0,8444,8445,1,0,0,0,8445,8446,5,7,0,0,8446, - 921,1,0,0,0,8447,8448,5,333,0,0,8448,8449,3,318,159,0,8449,8450, - 5,94,0,0,8450,8451,5,53,0,0,8451,8452,5,7,0,0,8452,8460,1,0,0,0, - 8453,8456,5,313,0,0,8454,8457,3,318,159,0,8455,8457,5,30,0,0,8456, - 8454,1,0,0,0,8456,8455,1,0,0,0,8457,8458,1,0,0,0,8458,8460,5,7,0, - 0,8459,8447,1,0,0,0,8459,8453,1,0,0,0,8460,923,1,0,0,0,8461,8464, - 3,820,410,0,8462,8464,5,28,0,0,8463,8461,1,0,0,0,8463,8462,1,0,0, - 0,8464,925,1,0,0,0,8465,8482,5,517,0,0,8466,8467,5,102,0,0,8467, - 8472,3,928,464,0,8468,8469,5,82,0,0,8469,8471,3,928,464,0,8470,8468, - 1,0,0,0,8471,8474,1,0,0,0,8472,8470,1,0,0,0,8472,8473,1,0,0,0,8473, - 8475,1,0,0,0,8474,8472,1,0,0,0,8475,8479,5,93,0,0,8476,8478,3,848, - 424,0,8477,8476,1,0,0,0,8478,8481,1,0,0,0,8479,8477,1,0,0,0,8479, - 8480,1,0,0,0,8480,8483,1,0,0,0,8481,8479,1,0,0,0,8482,8466,1,0,0, - 0,8483,8484,1,0,0,0,8484,8482,1,0,0,0,8484,8485,1,0,0,0,8485,927, - 1,0,0,0,8486,8490,3,930,465,0,8487,8488,5,511,0,0,8488,8490,3,810, - 405,0,8489,8486,1,0,0,0,8489,8487,1,0,0,0,8490,929,1,0,0,0,8491, - 8494,3,820,410,0,8492,8494,3,830,415,0,8493,8491,1,0,0,0,8493,8492, - 1,0,0,0,8494,931,1,0,0,0,8495,8497,3,758,379,0,8496,8495,1,0,0,0, - 8496,8497,1,0,0,0,8497,8499,1,0,0,0,8498,8500,3,582,291,0,8499,8498, - 1,0,0,0,8499,8500,1,0,0,0,8500,8502,1,0,0,0,8501,8503,3,612,306, - 0,8502,8501,1,0,0,0,8502,8503,1,0,0,0,8503,8505,1,0,0,0,8504,8506, - 3,640,320,0,8505,8504,1,0,0,0,8505,8506,1,0,0,0,8506,8508,1,0,0, - 0,8507,8509,3,602,301,0,8508,8507,1,0,0,0,8508,8509,1,0,0,0,8509, - 8512,1,0,0,0,8510,8511,5,67,0,0,8511,8513,3,676,338,0,8512,8510, - 1,0,0,0,8512,8513,1,0,0,0,8513,8515,1,0,0,0,8514,8516,3,704,352, - 0,8515,8514,1,0,0,0,8515,8516,1,0,0,0,8516,933,1,0,0,0,1193,937, - 944,1064,1066,1075,1080,1086,1121,1131,1137,1142,1149,1154,1161, - 1172,1180,1184,1196,1202,1208,1212,1217,1221,1234,1244,1246,1252, - 1257,1270,1273,1278,1283,1294,1298,1310,1314,1317,1321,1333,1351, - 1358,1366,1371,1378,1386,1392,1400,1408,1412,1426,1431,1436,1448, - 1454,1466,1471,1481,1487,1492,1500,1505,1512,1517,1522,1532,1537, - 1542,1549,1553,1567,1573,1579,1584,1591,1603,1611,1619,1635,1644, - 1653,1662,1666,1678,1686,1696,1716,1721,1724,1731,1734,1738,1742, - 1745,1750,1755,1759,1768,1774,1778,1787,1790,1796,1805,1817,1821, - 1825,1830,1833,1839,1841,1843,1847,1853,1857,1862,1867,1871,1874, - 1881,1894,1907,1931,1941,1948,1953,1957,1964,1969,1972,1974,1979, - 1983,1987,1991,1996,1999,2003,2006,2010,2018,2023,2026,2030,2036, - 2045,2049,2059,2064,2068,2072,2074,2076,2083,2088,2092,2097,2109, - 2114,2118,2122,2127,2131,2134,2137,2140,2143,2146,2151,2154,2157, - 2160,2163,2166,2172,2176,2179,2182,2185,2188,2190,2197,2205,2215, - 2220,2230,2233,2238,2243,2248,2251,2256,2265,2267,2271,2274,2278, - 2283,2288,2292,2295,2299,2302,2307,2310,2315,2318,2322,2325,2328, - 2333,2336,2344,2356,2360,2367,2372,2375,2378,2381,2386,2397,2403, - 2407,2410,2413,2418,2425,2428,2432,2440,2445,2448,2451,2458,2463, - 2472,2475,2478,2483,2486,2498,2508,2525,2529,2533,2535,2552,2554, - 2570,2581,2584,2587,2596,2605,2621,2624,2627,2635,2639,2646,2655, - 2659,2665,2669,2672,2675,2678,2681,2687,2691,2696,2700,2703,2706, - 2709,2714,2720,2724,2728,2732,2738,2740,2745,2751,2757,2761,2776, - 2781,2784,2786,2789,2793,2797,2800,2803,2811,2817,2819,2825,2830, - 2835,2839,2846,2848,2859,2898,2908,2910,2913,2917,2921,2931,2933, - 2939,2941,2950,2962,2976,2981,2984,2991,2996,3004,3006,3012,3017, - 3021,3026,3032,3039,3045,3047,3056,3062,3070,3076,3081,3086,3094, - 3109,3111,3115,3119,3122,3125,3134,3137,3140,3146,3152,3156,3168, - 3174,3177,3182,3186,3193,3203,3205,3229,3241,3246,3248,3252,3255, - 3258,3268,3271,3281,3286,3291,3294,3297,3305,3311,3318,3326,3329, - 3340,3344,3350,3357,3360,3369,3383,3386,3400,3411,3414,3426,3431, - 3444,3449,3462,3471,3474,3477,3484,3487,3499,3505,3507,3515,3523, - 3531,3543,3548,3559,3570,3578,3586,3593,3600,3602,3605,3610,3615, - 3634,3643,3646,3673,3682,3685,3689,3693,3697,3704,3708,3712,3716, - 3720,3725,3729,3734,3740,3745,3752,3756,3762,3766,3771,3779,3785, - 3790,3797,3802,3806,3811,3817,3824,3829,3836,3841,3848,3852,3860, - 3864,3866,3869,3874,3884,3899,3902,3910,3917,3922,3928,3932,3939, - 3944,3947,3950,3954,3963,3981,3984,4016,4021,4027,4047,4052,4058, - 4061,4065,4069,4075,4078,4082,4086,4091,4094,4097,4100,4113,4119, - 4127,4134,4139,4142,4149,4152,4160,4163,4168,4175,4178,4198,4210, - 4213,4219,4224,4233,4241,4246,4252,4259,4267,4270,4281,4283,4297, - 4303,4311,4313,4319,4323,4326,4329,4334,4339,4343,4346,4349,4352, - 4355,4363,4374,4377,4380,4385,4388,4392,4396,4402,4410,4413,4426, - 4431,4433,4438,4445,4452,4461,4469,4477,4484,4492,4499,4507,4511, - 4515,4517,4523,4528,4532,4539,4544,4549,4554,4556,4566,4576,4592, - 4610,4622,4629,4644,4649,4652,4657,4662,4667,4670,4673,4678,4685, - 4689,4694,4701,4705,4711,4720,4729,4741,4743,4756,4762,4766,4768, - 4775,4788,4795,4797,4813,4817,4821,4826,4831,4836,4841,4844,4856, - 4909,4918,4922,4931,4935,4944,4948,4953,4956,4960,4965,4967,4976, - 4981,4992,4996,5010,5018,5056,5058,5077,5080,5107,5111,5115,5119, - 5123,5126,5141,5148,5162,5175,5200,5219,5234,5250,5257,5268,5271, - 5290,5293,5306,5310,5330,5342,5346,5368,5372,5382,5386,5392,5396, - 5400,5404,5411,5416,5427,5431,5434,5439,5445,5456,5460,5463,5467, - 5471,5474,5484,5487,5491,5496,5502,5505,5510,5513,5520,5522,5528, - 5532,5541,5546,5548,5558,5561,5566,5574,5577,5582,5584,5586,5592, - 5609,5615,5628,5634,5638,5643,5673,5688,5693,5697,5710,5714,5716, - 5725,5731,5733,5737,5740,5743,5746,5749,5751,5754,5758,5766,5771, - 5774,5780,5784,5788,5793,5795,5799,5803,5810,5816,5820,5822,5824, - 5837,5845,5853,5864,5874,5879,5883,5887,5894,5897,5899,5907,5911, - 5914,5921,5928,5933,5940,5943,5945,5948,5954,5959,5963,5970,5980, - 5987,5990,5993,5997,6008,6011,6014,6017,6020,6027,6030,6033,6040, - 6052,6059,6061,6066,6071,6073,6079,6086,6091,6096,6100,6104,6108, - 6110,6114,6118,6121,6124,6126,6136,6138,6143,6147,6152,6156,6163, - 6168,6172,6175,6181,6184,6203,6210,6214,6217,6221,6225,6228,6231, - 6236,6245,6252,6256,6260,6264,6267,6269,6274,6278,6283,6289,6296, - 6301,6306,6315,6322,6330,6341,6346,6350,6353,6357,6362,6366,6371, - 6379,6390,6395,6399,6402,6405,6407,6410,6413,6416,6420,6424,6428, - 6430,6439,6444,6450,6454,6456,6463,6468,6474,6476,6480,6487,6492, - 6495,6501,6505,6511,6520,6526,6528,6533,6536,6545,6552,6554,6561, - 6566,6569,6579,6590,6595,6599,6607,6617,6624,6630,6641,6647,6657, - 6666,6670,6673,6675,6677,6681,6689,6692,6697,6702,6709,6711,6717, - 6721,6724,6729,6732,6734,6740,6749,6755,6758,6766,6769,6773,6779, - 6781,6784,6788,6793,6800,6807,6809,6815,6817,6822,6824,6828,6837, - 6841,6849,6851,6865,6868,6876,6885,6891,6896,6904,6906,6911,6915, - 6920,6925,6931,6947,6949,6958,6973,6978,6981,6987,6992,7005,7010, - 7014,7021,7040,7052,7057,7065,7067,7069,7078,7081,7086,7091,7094, - 7105,7113,7118,7120,7123,7127,7138,7159,7167,7180,7190,7196,7202, - 7205,7208,7234,7236,7257,7267,7280,7285,7289,7291,7303,7310,7316, - 7322,7326,7337,7347,7351,7356,7359,7362,7371,7382,7384,7388,7393, - 7402,7407,7415,7425,7433,7437,7440,7447,7455,7459,7466,7474,7476, - 7485,7488,7500,7509,7516,7525,7535,7540,7544,7546,7549,7554,7559, - 7567,7575,7578,7585,7593,7601,7609,7626,7633,7641,7658,7664,7670, - 7678,7684,7689,7697,7702,7705,7714,7721,7726,7730,7735,7741,7746, - 7754,7809,7816,7822,7824,7826,7828,7834,7838,7842,7853,7856,7860, - 7864,7868,7871,7874,7877,7886,7891,7895,7928,7938,7942,7948,7953, - 7962,7970,7981,7989,7998,8007,8012,8016,8026,8031,8039,8044,8047, - 8054,8060,8068,8076,8079,8086,8088,8091,8097,8106,8110,8124,8127, - 8129,8135,8145,8147,8149,8157,8160,8163,8173,8181,8187,8193,8200, - 8204,8208,8211,8214,8220,8227,8230,8238,8240,8249,8254,8256,8263, - 8269,8272,8284,8291,8293,8297,8303,8308,8312,8315,8318,8327,8330, - 8334,8338,8340,8343,8346,8352,8359,8366,8372,8374,8378,8383,8401, - 8406,8408,8417,8424,8428,8440,8443,8456,8459,8463,8472,8479,8484, - 8489,8493,8496,8499,8502,8505,8508,8512,8515 + 1,342,1,342,1,342,3,342,7212,8,342,1,342,1,342,1,342,1,342,1,342, + 1,342,1,342,1,342,3,342,7222,8,342,1,342,1,342,1,342,1,342,1,342, + 1,342,1,342,1,342,1,342,1,342,1,342,3,342,7235,8,342,1,342,1,342, + 1,342,3,342,7240,8,342,1,342,1,342,3,342,7244,8,342,3,342,7246,8, + 342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342, + 3,342,7258,8,342,1,343,1,343,1,343,5,343,7263,8,343,10,343,12,343, + 7266,9,343,1,344,1,344,1,344,3,344,7271,8,344,1,345,1,345,1,346, + 1,346,3,346,7277,8,346,1,346,1,346,3,346,7281,8,346,1,347,1,347, + 1,347,1,348,1,348,1,348,1,348,5,348,7290,8,348,10,348,12,348,7293, + 9,348,1,349,1,349,1,349,1,349,1,350,1,350,1,350,3,350,7302,8,350, + 1,351,1,351,3,351,7306,8,351,1,351,1,351,1,351,3,351,7311,8,351, + 1,351,3,351,7314,8,351,1,351,3,351,7317,8,351,1,351,1,351,1,352, + 1,352,1,352,1,352,1,352,3,352,7326,8,352,1,352,1,352,1,352,1,352, + 1,352,1,352,1,352,1,352,1,352,3,352,7337,8,352,3,352,7339,8,352, + 1,353,1,353,3,353,7343,8,353,1,353,1,353,1,353,3,353,7348,8,353, + 1,354,1,354,1,354,1,354,1,354,1,354,1,354,3,354,7357,8,354,1,355, + 1,355,1,355,3,355,7362,8,355,1,355,1,355,1,356,1,356,1,357,1,357, + 3,357,7370,8,357,1,358,1,358,1,359,1,359,1,359,1,359,1,359,1,359, + 3,359,7380,8,359,1,360,1,360,1,360,1,360,1,360,1,360,3,360,7388, + 8,360,1,361,1,361,3,361,7392,8,361,1,361,3,361,7395,8,361,1,362, + 1,362,1,362,5,362,7400,8,362,10,362,12,362,7403,9,362,1,363,1,363, + 1,363,1,363,1,363,3,363,7410,8,363,1,364,1,364,3,364,7414,8,364, + 1,365,1,365,1,365,5,365,7419,8,365,10,365,12,365,7422,9,365,1,366, + 1,366,1,366,1,366,1,366,3,366,7429,8,366,3,366,7431,8,366,1,367, + 1,367,1,367,1,367,1,367,5,367,7438,8,367,10,367,12,367,7441,9,367, + 3,367,7443,8,367,1,367,1,367,1,368,1,368,1,368,1,368,1,368,1,368, + 1,368,1,368,3,368,7455,8,368,1,369,1,369,1,370,1,370,1,370,1,370, + 1,370,3,370,7464,8,370,1,370,1,370,1,370,1,370,1,370,3,370,7471, + 8,370,1,370,1,370,1,370,1,370,1,370,1,370,1,370,3,370,7480,8,370, + 1,371,1,371,1,371,1,371,1,371,1,372,1,372,1,372,3,372,7490,8,372, + 1,372,1,372,1,372,3,372,7495,8,372,1,372,1,372,3,372,7499,8,372, + 3,372,7501,8,372,1,372,3,372,7504,8,372,1,373,4,373,7507,8,373,11, + 373,12,373,7508,1,374,5,374,7512,8,374,10,374,12,374,7515,9,374, + 1,375,1,375,1,375,5,375,7520,8,375,10,375,12,375,7523,9,375,1,376, + 1,376,1,376,1,376,1,376,3,376,7530,8,376,1,376,3,376,7533,8,376, + 1,377,1,377,1,377,5,377,7538,8,377,10,377,12,377,7541,9,377,1,378, + 1,378,1,378,5,378,7546,8,378,10,378,12,378,7549,9,378,1,379,1,379, + 1,379,5,379,7554,8,379,10,379,12,379,7557,9,379,1,380,1,380,1,380, + 5,380,7562,8,380,10,380,12,380,7565,9,380,1,381,1,381,1,382,1,382, + 1,383,1,383,1,384,1,384,1,385,1,385,1,386,1,386,1,387,1,387,3,387, + 7581,8,387,1,388,1,388,1,388,5,388,7586,8,388,10,388,12,388,7589, + 9,388,1,389,1,389,1,389,5,389,7594,8,389,10,389,12,389,7597,9,389, + 1,390,1,390,1,391,1,391,1,392,1,392,1,393,1,393,1,394,1,394,1,395, + 1,395,1,395,1,395,3,395,7613,8,395,1,396,1,396,1,396,1,396,3,396, + 7619,8,396,1,397,1,397,1,397,1,397,3,397,7625,8,397,1,398,1,398, + 1,399,1,399,1,399,1,399,3,399,7633,8,399,1,400,1,400,1,400,1,400, + 3,400,7639,8,400,1,401,1,401,1,401,3,401,7644,8,401,1,402,1,402, + 1,402,1,402,5,402,7650,8,402,10,402,12,402,7653,9,402,1,402,1,402, + 3,402,7657,8,402,1,403,3,403,7660,8,403,1,403,1,403,1,404,1,404, + 1,404,1,404,1,404,3,404,7669,8,404,1,405,1,405,1,405,5,405,7674, + 8,405,10,405,12,405,7677,9,405,1,406,1,406,3,406,7681,8,406,1,407, + 1,407,3,407,7685,8,407,1,408,1,408,1,408,3,408,7690,8,408,1,409, + 1,409,1,409,1,409,3,409,7696,8,409,1,410,1,410,1,410,3,410,7701, + 8,410,1,410,1,410,1,410,1,410,1,410,1,410,3,410,7709,8,410,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,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412, + 1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412, + 1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412, + 1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,3,412,7764,8,412, + 1,413,1,413,1,414,1,414,1,415,3,415,7771,8,415,1,415,1,415,1,415, + 1,415,4,415,7777,8,415,11,415,12,415,7778,3,415,7781,8,415,3,415, + 7783,8,415,1,415,1,415,5,415,7787,8,415,10,415,12,415,7790,9,415, + 1,415,3,415,7793,8,415,1,415,1,415,3,415,7797,8,415,1,416,1,416, + 1,416,1,416,1,417,1,417,1,417,1,417,1,417,3,417,7808,8,417,1,417, + 3,417,7811,8,417,1,417,1,417,3,417,7815,8,417,1,417,1,417,3,417, + 7819,8,417,1,417,1,417,3,417,7823,8,417,1,417,3,417,7826,8,417,1, + 417,3,417,7829,8,417,1,417,3,417,7832,8,417,1,417,1,417,1,417,1, + 417,1,417,5,417,7839,8,417,10,417,12,417,7842,9,417,1,417,1,417, + 3,417,7846,8,417,1,417,1,417,3,417,7850,8,417,1,417,1,417,1,418, + 1,418,1,418,1,419,1,419,1,420,1,420,1,420,1,420,1,420,1,420,1,420, + 1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,420, + 1,420,1,420,1,420,1,420,1,420,1,420,3,420,7883,8,420,1,421,1,421, + 1,421,1,421,1,422,1,422,1,422,1,422,3,422,7893,8,422,1,422,1,422, + 3,422,7897,8,422,1,422,1,422,1,422,1,422,3,422,7903,8,422,1,422, + 1,422,1,422,3,422,7908,8,422,1,423,1,423,1,423,1,423,1,423,1,424, + 1,424,3,424,7917,8,424,1,424,1,424,1,424,1,424,5,424,7923,8,424, + 10,424,12,424,7926,9,424,1,424,1,424,1,425,1,425,1,425,1,425,1,426, + 1,426,3,426,7936,8,426,1,426,1,426,1,426,1,426,5,426,7942,8,426, + 10,426,12,426,7945,9,426,1,427,1,427,1,427,1,427,5,427,7951,8,427, + 10,427,12,427,7954,9,427,1,427,1,427,1,427,1,427,5,427,7960,8,427, + 10,427,12,427,7963,9,427,5,427,7965,8,427,10,427,12,427,7968,9,427, + 1,427,3,427,7971,8,427,1,427,1,427,1,427,1,427,1,428,1,428,5,428, + 7979,8,428,10,428,12,428,7982,9,428,1,429,1,429,3,429,7986,8,429, + 1,429,1,429,1,429,1,429,5,429,7992,8,429,10,429,12,429,7995,9,429, + 4,429,7997,8,429,11,429,12,429,7998,1,429,3,429,8002,8,429,1,429, + 1,429,1,429,1,429,1,430,3,430,8009,8,430,1,430,1,430,1,430,1,430, + 3,430,8015,8,430,1,430,1,430,1,431,1,431,1,431,1,431,3,431,8023, + 8,431,1,431,1,431,1,431,1,431,1,431,1,431,3,431,8031,8,431,1,431, + 3,431,8034,8,431,1,431,1,431,1,431,1,431,1,431,3,431,8041,8,431, + 3,431,8043,8,431,1,432,3,432,8046,8,432,1,432,1,432,1,432,1,432, + 3,432,8052,8,432,1,432,1,432,1,432,1,432,1,432,1,433,1,433,3,433, + 8061,8,433,1,433,1,433,3,433,8065,8,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,3,434,8079,8,434, + 1,434,3,434,8082,8,434,3,434,8084,8,434,1,434,1,434,1,435,1,435, + 3,435,8090,8,435,1,435,1,435,1,435,1,435,1,435,1,435,4,435,8098, + 8,435,11,435,12,435,8099,3,435,8102,8,435,3,435,8104,8,435,1,435, + 1,435,1,435,1,435,5,435,8110,8,435,10,435,12,435,8113,9,435,3,435, + 8115,8,435,1,435,3,435,8118,8,435,1,436,1,436,1,436,1,436,1,437, + 1,437,1,437,1,437,3,437,8128,8,437,1,437,1,437,1,438,1,438,5,438, + 8134,8,438,10,438,12,438,8137,9,438,1,438,1,438,1,438,3,438,8142, + 8,438,1,438,1,438,1,439,1,439,3,439,8148,8,439,1,439,1,439,1,440, + 1,440,1,440,3,440,8155,8,440,1,440,1,440,3,440,8159,8,440,1,440, + 1,440,3,440,8163,8,440,1,440,3,440,8166,8,440,1,440,3,440,8169,8, + 440,1,440,1,440,1,441,1,441,3,441,8175,8,441,1,441,1,441,1,442,1, + 442,1,442,3,442,8182,8,442,1,442,3,442,8185,8,442,1,442,1,442,1, + 442,1,442,1,442,1,442,3,442,8193,8,442,3,442,8195,8,442,1,442,1, + 442,1,442,1,442,1,442,5,442,8202,8,442,10,442,12,442,8205,9,442, + 1,442,1,442,3,442,8209,8,442,3,442,8211,8,442,1,442,1,442,1,443, + 1,443,1,443,3,443,8218,8,443,1,443,1,443,1,444,1,444,3,444,8224, + 8,444,1,444,3,444,8227,8,444,1,444,1,444,1,444,1,444,1,444,1,445, + 1,445,1,445,1,445,1,445,3,445,8239,8,445,1,445,1,445,1,445,1,445, + 1,445,3,445,8246,8,445,3,445,8248,8,445,1,446,1,446,3,446,8252,8, + 446,1,446,1,446,1,446,1,447,3,447,8258,8,447,1,447,1,447,1,447,3, + 447,8263,8,447,1,447,1,447,3,447,8267,8,447,1,447,3,447,8270,8,447, + 1,447,3,447,8273,8,447,1,447,1,447,1,447,1,447,1,447,4,447,8280, + 8,447,11,447,12,447,8281,1,447,3,447,8285,8,447,1,448,3,448,8288, + 8,448,1,448,1,448,3,448,8292,8,448,1,448,1,448,3,448,8296,8,448, + 3,448,8298,8,448,1,448,3,448,8301,8,448,1,448,3,448,8304,8,448,1, + 449,1,449,1,449,1,449,3,449,8310,8,449,1,449,1,449,1,449,1,449,1, + 449,3,449,8317,8,449,1,449,1,449,1,449,1,449,1,449,3,449,8324,8, + 449,1,449,1,449,1,449,1,449,3,449,8330,8,449,3,449,8332,8,449,1, + 450,1,450,3,450,8336,8,450,1,450,1,450,1,450,3,450,8341,8,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,5,451,8357,8,451,10,451,12,451,8360,9,451,1,451, + 1,451,4,451,8364,8,451,11,451,12,451,8365,1,452,1,452,1,452,1,452, + 1,452,5,452,8373,8,452,10,452,12,452,8376,9,452,1,452,1,452,1,452, + 1,452,3,452,8382,8,452,1,453,1,453,3,453,8386,8,453,1,454,1,454, + 1,454,1,454,1,455,1,455,1,455,1,456,1,456,1,456,3,456,8398,8,456, + 1,456,3,456,8401,8,456,1,456,1,456,1,457,1,457,1,457,1,457,1,457, + 1,457,1,457,1,457,1,457,3,457,8414,8,457,1,457,3,457,8417,8,457, + 1,458,1,458,3,458,8421,8,458,1,459,1,459,1,459,1,459,1,459,5,459, + 8428,8,459,10,459,12,459,8431,9,459,1,459,1,459,5,459,8435,8,459, + 10,459,12,459,8438,9,459,4,459,8440,8,459,11,459,12,459,8441,1,460, + 1,460,1,460,3,460,8447,8,460,1,461,1,461,3,461,8451,8,461,1,462, + 3,462,8454,8,462,1,462,3,462,8457,8,462,1,462,3,462,8460,8,462,1, + 462,3,462,8463,8,462,1,462,3,462,8466,8,462,1,462,1,462,3,462,8470, + 8,462,1,462,3,462,8473,8,462,1,462,0,3,670,674,676,463,0,2,4,6,8, + 10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52, + 54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96, + 98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130, + 132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162, + 164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194, + 196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226, + 228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258, + 260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290, + 292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322, + 324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354, + 356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386, + 388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418, + 420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450, + 452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482, + 484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514, + 516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546, + 548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578, + 580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610, + 612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642, + 644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674, + 676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706, + 708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738, + 740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770, + 772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802, + 804,806,808,810,812,814,816,818,820,822,824,826,828,830,832,834, + 836,838,840,842,844,846,848,850,852,854,856,858,860,862,864,866, + 868,870,872,874,876,878,880,882,884,886,888,890,892,894,896,898, + 900,902,904,906,908,910,912,914,916,918,920,922,924,0,119,2,0,195, + 195,364,364,2,0,66,66,318,318,2,0,99,99,318,318,2,0,134,134,318, + 318,1,0,529,531,2,0,10,10,94,94,2,0,133,133,191,191,2,0,254,254, + 332,332,2,0,162,162,363,363,2,0,180,180,221,221,5,0,30,30,288,288, + 329,329,352,352,354,354,2,0,109,109,532,532,2,0,158,158,277,277, + 2,0,367,367,439,439,2,0,139,139,312,312,2,0,191,191,333,333,2,0, + 313,313,333,333,2,0,150,150,315,315,2,0,64,64,94,94,4,0,78,78,183, + 183,197,197,298,298,1,0,549,551,2,0,213,213,254,254,2,0,352,352, + 354,354,2,0,200,200,224,224,9,0,30,30,160,160,165,165,179,179,219, + 219,227,227,342,342,345,345,438,438,3,0,113,113,284,284,336,336, + 2,0,53,53,78,78,2,0,105,105,379,379,2,0,260,260,262,262,3,0,173, + 173,260,260,262,262,1,0,12,13,2,0,64,64,375,375,2,0,156,156,206, + 206,2,0,189,189,360,360,2,0,215,215,373,373,3,0,133,133,191,191, + 333,333,5,0,30,30,88,88,182,182,241,241,369,369,2,0,9,9,94,94,2, + 0,92,92,226,226,1,0,448,449,2,0,92,92,414,414,2,0,341,341,414,414, + 4,0,163,163,185,185,283,283,353,353,2,0,135,135,145,145,2,0,211, + 211,278,278,3,0,321,321,357,357,445,445,3,0,66,66,99,99,318,318, + 5,0,108,108,168,168,226,226,328,328,342,342,2,0,167,167,314,314, + 2,0,61,61,265,265,4,0,207,207,249,249,268,268,293,293,2,0,130,130, + 307,307,2,0,64,64,68,68,10,0,46,46,88,88,182,182,202,202,241,241, + 352,352,354,354,357,358,369,369,521,523,5,0,212,212,329,329,350, + 350,455,455,457,457,5,0,212,212,329,329,350,350,361,361,455,456, + 2,0,37,37,55,55,2,0,207,207,249,249,2,0,10,10,53,53,2,0,181,181, + 243,243,2,0,170,170,320,320,2,0,141,141,223,223,5,0,108,108,168, + 168,189,189,342,342,360,360,2,0,226,226,328,328,2,0,163,163,185, + 185,2,0,186,186,193,193,4,0,88,88,182,182,241,241,369,369,2,0,137, + 137,242,242,2,0,161,161,319,319,4,0,129,129,161,161,319,319,454, + 454,2,0,356,356,380,380,2,0,81,81,382,382,2,0,151,151,254,254,2, + 0,133,133,138,138,1,0,31,32,2,0,128,128,547,547,2,0,60,60,96,96, + 2,0,99,99,349,349,2,0,131,131,414,414,2,0,201,201,334,334,3,0,59, + 59,70,70,97,97,2,0,30,30,56,56,1,0,527,528,2,0,207,207,268,268,2, + 0,320,320,414,414,2,0,574,574,576,576,1,0,468,469,4,0,113,113,115, + 115,119,119,126,126,2,0,360,360,477,477,2,0,394,395,409,409,2,0, + 391,392,406,406,1,0,391,392,1,0,418,419,5,0,10,10,16,17,21,21,23, + 23,25,25,3,0,9,9,14,14,27,27,2,0,98,98,396,396,2,0,50,51,75,76,2, + 0,41,41,420,420,3,0,39,39,73,73,95,95,4,0,393,393,399,399,404,404, + 425,425,2,0,292,292,347,347,2,0,166,166,188,188,2,0,304,304,450, + 450,3,0,299,299,320,320,481,481,2,0,208,208,289,289,3,0,30,30,34, + 34,90,90,6,0,9,10,12,17,21,21,23,23,25,25,27,27,2,0,114,114,120, + 120,2,0,20,20,22,22,1,0,483,486,17,0,53,53,116,116,123,124,129,228, + 238,386,433,452,455,469,471,471,473,473,475,475,477,488,490,502, + 504,504,506,518,520,520,524,524,547,548,3,0,106,123,125,128,472, + 472,4,0,30,52,54,70,72,105,454,454,2,0,62,62,116,116,2,0,10,10,20, + 20,2,0,434,434,501,501,2,0,167,167,507,507,1,0,512,517,2,0,144,144, + 210,210,9915,0,929,1,0,0,0,2,934,1,0,0,0,4,1058,1,0,0,0,6,1060,1, + 0,0,0,8,1063,1,0,0,0,10,1113,1,0,0,0,12,1123,1,0,0,0,14,1125,1,0, + 0,0,16,1137,1,0,0,0,18,1149,1,0,0,0,20,1160,1,0,0,0,22,1194,1,0, + 0,0,24,1238,1,0,0,0,26,1240,1,0,0,0,28,1252,1,0,0,0,30,1259,1,0, + 0,0,32,1278,1,0,0,0,34,1286,1,0,0,0,36,1288,1,0,0,0,38,1302,1,0, + 0,0,40,1306,1,0,0,0,42,1343,1,0,0,0,44,1345,1,0,0,0,46,1353,1,0, + 0,0,48,1363,1,0,0,0,50,1370,1,0,0,0,52,1378,1,0,0,0,54,1384,1,0, + 0,0,56,1400,1,0,0,0,58,1404,1,0,0,0,60,1406,1,0,0,0,62,1418,1,0, + 0,0,64,1423,1,0,0,0,66,1428,1,0,0,0,68,1430,1,0,0,0,70,1442,1,0, + 0,0,72,1450,1,0,0,0,74,1452,1,0,0,0,76,1572,1,0,0,0,78,1574,1,0, + 0,0,80,1588,1,0,0,0,82,1590,1,0,0,0,84,1827,1,0,0,0,86,1834,1,0, + 0,0,88,1836,1,0,0,0,90,1838,1,0,0,0,92,1841,1,0,0,0,94,1852,1,0, + 0,0,96,1855,1,0,0,0,98,1885,1,0,0,0,100,1887,1,0,0,0,102,1928,1, + 0,0,0,104,1930,1,0,0,0,106,1984,1,0,0,0,108,2030,1,0,0,0,110,2051, + 1,0,0,0,112,2053,1,0,0,0,114,2070,1,0,0,0,116,2151,1,0,0,0,118,2153, + 1,0,0,0,120,2164,1,0,0,0,122,2187,1,0,0,0,124,2205,1,0,0,0,126,2207, + 1,0,0,0,128,2242,1,0,0,0,130,2335,1,0,0,0,132,2340,1,0,0,0,134,2342, + 1,0,0,0,136,2440,1,0,0,0,138,2442,1,0,0,0,140,2446,1,0,0,0,142,2457, + 1,0,0,0,144,2465,1,0,0,0,146,2468,1,0,0,0,148,2471,1,0,0,0,150,2489, + 1,0,0,0,152,2491,1,0,0,0,154,2495,1,0,0,0,156,2508,1,0,0,0,158,2510, + 1,0,0,0,160,2515,1,0,0,0,162,2535,1,0,0,0,164,2543,1,0,0,0,166,2550, + 1,0,0,0,168,2552,1,0,0,0,170,2561,1,0,0,0,172,2564,1,0,0,0,174,2568, + 1,0,0,0,176,2572,1,0,0,0,178,2597,1,0,0,0,180,2607,1,0,0,0,182,2621, + 1,0,0,0,184,2637,1,0,0,0,186,2643,1,0,0,0,188,2670,1,0,0,0,190,2680, + 1,0,0,0,192,2696,1,0,0,0,194,2740,1,0,0,0,196,2747,1,0,0,0,198,2749, + 1,0,0,0,200,2775,1,0,0,0,202,2786,1,0,0,0,204,2805,1,0,0,0,206,2816, + 1,0,0,0,208,2854,1,0,0,0,210,2875,1,0,0,0,212,2877,1,0,0,0,214,2897, + 1,0,0,0,216,2909,1,0,0,0,218,2921,1,0,0,0,220,2924,1,0,0,0,222,2927, + 1,0,0,0,224,2947,1,0,0,0,226,2952,1,0,0,0,228,3001,1,0,0,0,230,3003, + 1,0,0,0,232,3026,1,0,0,0,234,3042,1,0,0,0,236,3054,1,0,0,0,238,3081, + 1,0,0,0,240,3096,1,0,0,0,242,3159,1,0,0,0,244,3161,1,0,0,0,246,3166, + 1,0,0,0,248,3172,1,0,0,0,250,3259,1,0,0,0,252,3265,1,0,0,0,254,3267, + 1,0,0,0,256,3283,1,0,0,0,258,3285,1,0,0,0,260,3294,1,0,0,0,262,3298, + 1,0,0,0,264,3311,1,0,0,0,266,3323,1,0,0,0,268,3325,1,0,0,0,270,3347, + 1,0,0,0,272,3359,1,0,0,0,274,3370,1,0,0,0,276,3461,1,0,0,0,278,3463, + 1,0,0,0,280,3474,1,0,0,0,282,3485,1,0,0,0,284,3487,1,0,0,0,286,3513, + 1,0,0,0,288,3515,1,0,0,0,290,3519,1,0,0,0,292,3569,1,0,0,0,294,3571, + 1,0,0,0,296,3577,1,0,0,0,298,3602,1,0,0,0,300,3606,1,0,0,0,302,3820, + 1,0,0,0,304,3838,1,0,0,0,306,3864,1,0,0,0,308,3866,1,0,0,0,310,3874, + 1,0,0,0,312,3880,1,0,0,0,314,3884,1,0,0,0,316,3904,1,0,0,0,318,3910, + 1,0,0,0,320,3977,1,0,0,0,322,4008,1,0,0,0,324,4054,1,0,0,0,326,4056, + 1,0,0,0,328,4058,1,0,0,0,330,4069,1,0,0,0,332,4106,1,0,0,0,334,4108, + 1,0,0,0,336,4114,1,0,0,0,338,4164,1,0,0,0,340,4167,1,0,0,0,342,4181, + 1,0,0,0,344,4202,1,0,0,0,346,4226,1,0,0,0,348,4267,1,0,0,0,350,4269, + 1,0,0,0,352,4271,1,0,0,0,354,4311,1,0,0,0,356,4328,1,0,0,0,358,4348, + 1,0,0,0,360,4401,1,0,0,0,362,4404,1,0,0,0,364,4410,1,0,0,0,366,4418, + 1,0,0,0,368,4431,1,0,0,0,370,4433,1,0,0,0,372,4446,1,0,0,0,374,4448, + 1,0,0,0,376,4461,1,0,0,0,378,4471,1,0,0,0,380,4482,1,0,0,0,382,4493, + 1,0,0,0,384,4495,1,0,0,0,386,4500,1,0,0,0,388,4514,1,0,0,0,390,4546, + 1,0,0,0,392,4583,1,0,0,0,394,4585,1,0,0,0,396,4588,1,0,0,0,398,4591, + 1,0,0,0,400,4608,1,0,0,0,402,4629,1,0,0,0,404,4645,1,0,0,0,406,4661, + 1,0,0,0,408,4683,1,0,0,0,410,4688,1,0,0,0,412,4691,1,0,0,0,414,4699, + 1,0,0,0,416,4724,1,0,0,0,418,4727,1,0,0,0,420,4755,1,0,0,0,422,4760, + 1,0,0,0,424,4800,1,0,0,0,426,5012,1,0,0,0,428,5014,1,0,0,0,430,5102, + 1,0,0,0,432,5104,1,0,0,0,434,5110,1,0,0,0,436,5121,1,0,0,0,438,5131, + 1,0,0,0,440,5211,1,0,0,0,442,5213,1,0,0,0,444,5227,1,0,0,0,446,5249, + 1,0,0,0,448,5322,1,0,0,0,450,5324,1,0,0,0,452,5365,1,0,0,0,454,5367, + 1,0,0,0,456,5372,1,0,0,0,458,5375,1,0,0,0,460,5378,1,0,0,0,462,5428, + 1,0,0,0,464,5430,1,0,0,0,466,5441,1,0,0,0,468,5443,1,0,0,0,470,5453, + 1,0,0,0,472,5488,1,0,0,0,474,5491,1,0,0,0,476,5512,1,0,0,0,478,5522, + 1,0,0,0,480,5542,1,0,0,0,482,5548,1,0,0,0,484,5554,1,0,0,0,486,5559, + 1,0,0,0,488,5572,1,0,0,0,490,5599,1,0,0,0,492,5647,1,0,0,0,494,5649, + 1,0,0,0,496,5687,1,0,0,0,498,5689,1,0,0,0,500,5710,1,0,0,0,502,5730, + 1,0,0,0,504,5734,1,0,0,0,506,5749,1,0,0,0,508,5751,1,0,0,0,510,5755, + 1,0,0,0,512,5759,1,0,0,0,514,5767,1,0,0,0,516,5791,1,0,0,0,518,5793, + 1,0,0,0,520,5804,1,0,0,0,522,5812,1,0,0,0,524,5828,1,0,0,0,526,5853, + 1,0,0,0,528,5855,1,0,0,0,530,5859,1,0,0,0,532,5868,1,0,0,0,534,5908, + 1,0,0,0,536,5919,1,0,0,0,538,5927,1,0,0,0,540,5930,1,0,0,0,542,5934, + 1,0,0,0,544,5949,1,0,0,0,546,5974,1,0,0,0,548,5989,1,0,0,0,550,6015, + 1,0,0,0,552,6017,1,0,0,0,554,6040,1,0,0,0,556,6042,1,0,0,0,558,6050, + 1,0,0,0,560,6068,1,0,0,0,562,6092,1,0,0,0,564,6104,1,0,0,0,566,6108, + 1,0,0,0,568,6120,1,0,0,0,570,6140,1,0,0,0,572,6148,1,0,0,0,574,6162, + 1,0,0,0,576,6185,1,0,0,0,578,6187,1,0,0,0,580,6192,1,0,0,0,582,6202, + 1,0,0,0,584,6223,1,0,0,0,586,6225,1,0,0,0,588,6234,1,0,0,0,590,6245, + 1,0,0,0,592,6255,1,0,0,0,594,6257,1,0,0,0,596,6264,1,0,0,0,598,6295, + 1,0,0,0,600,6325,1,0,0,0,602,6327,1,0,0,0,604,6336,1,0,0,0,606,6339, + 1,0,0,0,608,6410,1,0,0,0,610,6434,1,0,0,0,612,6455,1,0,0,0,614,6457, + 1,0,0,0,616,6465,1,0,0,0,618,6482,1,0,0,0,620,6508,1,0,0,0,622,6510, + 1,0,0,0,624,6518,1,0,0,0,626,6525,1,0,0,0,628,6549,1,0,0,0,630,6555, + 1,0,0,0,632,6563,1,0,0,0,634,6566,1,0,0,0,636,6573,1,0,0,0,638,6581, + 1,0,0,0,640,6586,1,0,0,0,642,6616,1,0,0,0,644,6643,1,0,0,0,646,6671, + 1,0,0,0,648,6688,1,0,0,0,650,6694,1,0,0,0,652,6712,1,0,0,0,654,6714, + 1,0,0,0,656,6718,1,0,0,0,658,6735,1,0,0,0,660,6740,1,0,0,0,662,6778, + 1,0,0,0,664,6780,1,0,0,0,666,6784,1,0,0,0,668,6786,1,0,0,0,670,6795, + 1,0,0,0,672,6879,1,0,0,0,674,6885,1,0,0,0,676,6994,1,0,0,0,678,7026, + 1,0,0,0,680,7077,1,0,0,0,682,7081,1,0,0,0,684,7257,1,0,0,0,686,7259, + 1,0,0,0,688,7267,1,0,0,0,690,7272,1,0,0,0,692,7274,1,0,0,0,694,7282, + 1,0,0,0,696,7285,1,0,0,0,698,7294,1,0,0,0,700,7298,1,0,0,0,702,7303, + 1,0,0,0,704,7320,1,0,0,0,706,7347,1,0,0,0,708,7356,1,0,0,0,710,7358, + 1,0,0,0,712,7365,1,0,0,0,714,7369,1,0,0,0,716,7371,1,0,0,0,718,7379, + 1,0,0,0,720,7387,1,0,0,0,722,7394,1,0,0,0,724,7396,1,0,0,0,726,7409, + 1,0,0,0,728,7413,1,0,0,0,730,7415,1,0,0,0,732,7430,1,0,0,0,734,7432, + 1,0,0,0,736,7454,1,0,0,0,738,7456,1,0,0,0,740,7479,1,0,0,0,742,7481, + 1,0,0,0,744,7503,1,0,0,0,746,7506,1,0,0,0,748,7513,1,0,0,0,750,7516, + 1,0,0,0,752,7532,1,0,0,0,754,7534,1,0,0,0,756,7542,1,0,0,0,758,7550, + 1,0,0,0,760,7558,1,0,0,0,762,7566,1,0,0,0,764,7568,1,0,0,0,766,7570, + 1,0,0,0,768,7572,1,0,0,0,770,7574,1,0,0,0,772,7576,1,0,0,0,774,7578, + 1,0,0,0,776,7582,1,0,0,0,778,7590,1,0,0,0,780,7598,1,0,0,0,782,7600, + 1,0,0,0,784,7602,1,0,0,0,786,7604,1,0,0,0,788,7606,1,0,0,0,790,7612, + 1,0,0,0,792,7618,1,0,0,0,794,7624,1,0,0,0,796,7626,1,0,0,0,798,7632, + 1,0,0,0,800,7638,1,0,0,0,802,7640,1,0,0,0,804,7656,1,0,0,0,806,7659, + 1,0,0,0,808,7668,1,0,0,0,810,7670,1,0,0,0,812,7680,1,0,0,0,814,7684, + 1,0,0,0,816,7689,1,0,0,0,818,7695,1,0,0,0,820,7708,1,0,0,0,822,7710, + 1,0,0,0,824,7763,1,0,0,0,826,7765,1,0,0,0,828,7767,1,0,0,0,830,7770, + 1,0,0,0,832,7798,1,0,0,0,834,7802,1,0,0,0,836,7853,1,0,0,0,838,7856, + 1,0,0,0,840,7882,1,0,0,0,842,7884,1,0,0,0,844,7907,1,0,0,0,846,7909, + 1,0,0,0,848,7914,1,0,0,0,850,7929,1,0,0,0,852,7935,1,0,0,0,854,7946, + 1,0,0,0,856,7976,1,0,0,0,858,7983,1,0,0,0,860,8008,1,0,0,0,862,8018, + 1,0,0,0,864,8045,1,0,0,0,866,8058,1,0,0,0,868,8068,1,0,0,0,870,8087, + 1,0,0,0,872,8119,1,0,0,0,874,8123,1,0,0,0,876,8131,1,0,0,0,878,8145, + 1,0,0,0,880,8151,1,0,0,0,882,8172,1,0,0,0,884,8178,1,0,0,0,886,8217, + 1,0,0,0,888,8221,1,0,0,0,890,8247,1,0,0,0,892,8249,1,0,0,0,894,8257, + 1,0,0,0,896,8297,1,0,0,0,898,8331,1,0,0,0,900,8333,1,0,0,0,902,8344, + 1,0,0,0,904,8381,1,0,0,0,906,8385,1,0,0,0,908,8387,1,0,0,0,910,8391, + 1,0,0,0,912,8394,1,0,0,0,914,8416,1,0,0,0,916,8420,1,0,0,0,918,8422, + 1,0,0,0,920,8446,1,0,0,0,922,8450,1,0,0,0,924,8453,1,0,0,0,926,928, + 3,2,1,0,927,926,1,0,0,0,928,931,1,0,0,0,929,927,1,0,0,0,929,930, + 1,0,0,0,930,932,1,0,0,0,931,929,1,0,0,0,932,933,5,0,0,1,933,1,1, + 0,0,0,934,936,3,4,2,0,935,937,5,7,0,0,936,935,1,0,0,0,936,937,1, + 0,0,0,937,3,1,0,0,0,938,1059,3,272,136,0,939,1059,3,482,241,0,940, + 1059,3,478,239,0,941,1059,3,480,240,0,942,1059,3,346,173,0,943,1059, + 3,488,244,0,944,1059,3,286,143,0,945,1059,3,204,102,0,946,1059,3, + 206,103,0,947,1059,3,212,106,0,948,1059,3,226,113,0,949,1059,3,398, + 199,0,950,1059,3,28,14,0,951,1059,3,428,214,0,952,1059,3,430,215, + 0,953,1059,3,440,220,0,954,1059,3,432,216,0,955,1059,3,438,219,0, + 956,1059,3,238,119,0,957,1059,3,240,120,0,958,1059,3,192,96,0,959, + 1059,3,484,242,0,960,1059,3,76,38,0,961,1059,3,424,212,0,962,1059, + 3,100,50,0,963,1059,3,444,222,0,964,1059,3,18,9,0,965,1059,3,20, + 10,0,966,1059,3,16,8,0,967,1059,3,448,224,0,968,1059,3,178,89,0, + 969,1059,3,492,246,0,970,1059,3,490,245,0,971,1059,3,234,117,0,972, + 1059,3,500,250,0,973,1059,3,6,3,0,974,1059,3,72,36,0,975,1059,3, + 104,52,0,976,1059,3,496,248,0,977,1059,3,318,159,0,978,1059,3,70, + 35,0,979,1059,3,106,53,0,980,1059,3,248,124,0,981,1059,3,180,90, + 0,982,1059,3,274,137,0,983,1059,3,414,207,0,984,1059,3,494,247,0, + 985,1059,3,486,243,0,986,1059,3,202,101,0,987,1059,3,208,104,0,988, + 1059,3,222,111,0,989,1059,3,228,114,0,990,1059,3,358,179,0,991,1059, + 3,26,13,0,992,1059,3,186,93,0,993,1059,3,290,145,0,994,1059,3,294, + 147,0,995,1059,3,442,221,0,996,1059,3,296,148,0,997,1059,3,236,118, + 0,998,1059,3,198,99,0,999,1059,3,30,15,0,1000,1059,3,190,95,0,1001, + 1059,3,114,57,0,1002,1059,3,446,223,0,1003,1059,3,176,88,0,1004, + 1059,3,200,100,0,1005,1059,3,418,209,0,1006,1059,3,250,125,0,1007, + 1059,3,268,134,0,1008,1059,3,8,4,0,1009,1059,3,14,7,0,1010,1059, + 3,232,116,0,1011,1059,3,474,237,0,1012,1059,3,530,265,0,1013,1059, + 3,552,276,0,1014,1059,3,276,138,0,1015,1059,3,542,271,0,1016,1059, + 3,74,37,0,1017,1059,3,412,206,0,1018,1059,3,302,151,0,1019,1059, + 3,526,263,0,1020,1059,3,514,257,0,1021,1059,3,322,161,0,1022,1059, + 3,328,164,0,1023,1059,3,342,171,0,1024,1059,3,894,447,0,1025,1059, + 3,230,115,0,1026,1059,3,352,176,0,1027,1059,3,532,266,0,1028,1059, + 3,458,229,0,1029,1059,3,188,94,0,1030,1059,3,472,236,0,1031,1059, + 3,544,272,0,1032,1059,3,454,227,0,1033,1059,3,520,260,0,1034,1059, + 3,300,150,0,1035,1059,3,422,211,0,1036,1059,3,402,201,0,1037,1059, + 3,400,200,0,1038,1059,3,404,202,0,1039,1059,3,426,213,0,1040,1059, + 3,330,165,0,1041,1059,3,344,172,0,1042,1059,3,450,225,0,1043,1059, + 3,320,160,0,1044,1059,3,554,277,0,1045,1059,3,462,231,0,1046,1059, + 3,314,157,0,1047,1059,3,460,230,0,1048,1059,3,546,273,0,1049,1059, + 3,498,249,0,1050,1059,3,60,30,0,1051,1059,3,36,18,0,1052,1059,3, + 68,34,0,1053,1059,3,470,235,0,1054,1056,5,584,0,0,1055,1057,5,585, + 0,0,1056,1055,1,0,0,0,1056,1057,1,0,0,0,1057,1059,1,0,0,0,1058,938, + 1,0,0,0,1058,939,1,0,0,0,1058,940,1,0,0,0,1058,941,1,0,0,0,1058, + 942,1,0,0,0,1058,943,1,0,0,0,1058,944,1,0,0,0,1058,945,1,0,0,0,1058, + 946,1,0,0,0,1058,947,1,0,0,0,1058,948,1,0,0,0,1058,949,1,0,0,0,1058, + 950,1,0,0,0,1058,951,1,0,0,0,1058,952,1,0,0,0,1058,953,1,0,0,0,1058, + 954,1,0,0,0,1058,955,1,0,0,0,1058,956,1,0,0,0,1058,957,1,0,0,0,1058, + 958,1,0,0,0,1058,959,1,0,0,0,1058,960,1,0,0,0,1058,961,1,0,0,0,1058, + 962,1,0,0,0,1058,963,1,0,0,0,1058,964,1,0,0,0,1058,965,1,0,0,0,1058, + 966,1,0,0,0,1058,967,1,0,0,0,1058,968,1,0,0,0,1058,969,1,0,0,0,1058, + 970,1,0,0,0,1058,971,1,0,0,0,1058,972,1,0,0,0,1058,973,1,0,0,0,1058, + 974,1,0,0,0,1058,975,1,0,0,0,1058,976,1,0,0,0,1058,977,1,0,0,0,1058, + 978,1,0,0,0,1058,979,1,0,0,0,1058,980,1,0,0,0,1058,981,1,0,0,0,1058, + 982,1,0,0,0,1058,983,1,0,0,0,1058,984,1,0,0,0,1058,985,1,0,0,0,1058, + 986,1,0,0,0,1058,987,1,0,0,0,1058,988,1,0,0,0,1058,989,1,0,0,0,1058, + 990,1,0,0,0,1058,991,1,0,0,0,1058,992,1,0,0,0,1058,993,1,0,0,0,1058, + 994,1,0,0,0,1058,995,1,0,0,0,1058,996,1,0,0,0,1058,997,1,0,0,0,1058, + 998,1,0,0,0,1058,999,1,0,0,0,1058,1000,1,0,0,0,1058,1001,1,0,0,0, + 1058,1002,1,0,0,0,1058,1003,1,0,0,0,1058,1004,1,0,0,0,1058,1005, + 1,0,0,0,1058,1006,1,0,0,0,1058,1007,1,0,0,0,1058,1008,1,0,0,0,1058, + 1009,1,0,0,0,1058,1010,1,0,0,0,1058,1011,1,0,0,0,1058,1012,1,0,0, + 0,1058,1013,1,0,0,0,1058,1014,1,0,0,0,1058,1015,1,0,0,0,1058,1016, + 1,0,0,0,1058,1017,1,0,0,0,1058,1018,1,0,0,0,1058,1019,1,0,0,0,1058, + 1020,1,0,0,0,1058,1021,1,0,0,0,1058,1022,1,0,0,0,1058,1023,1,0,0, + 0,1058,1024,1,0,0,0,1058,1025,1,0,0,0,1058,1026,1,0,0,0,1058,1027, + 1,0,0,0,1058,1028,1,0,0,0,1058,1029,1,0,0,0,1058,1030,1,0,0,0,1058, + 1031,1,0,0,0,1058,1032,1,0,0,0,1058,1033,1,0,0,0,1058,1034,1,0,0, + 0,1058,1035,1,0,0,0,1058,1036,1,0,0,0,1058,1037,1,0,0,0,1058,1038, + 1,0,0,0,1058,1039,1,0,0,0,1058,1040,1,0,0,0,1058,1041,1,0,0,0,1058, + 1042,1,0,0,0,1058,1043,1,0,0,0,1058,1044,1,0,0,0,1058,1045,1,0,0, + 0,1058,1046,1,0,0,0,1058,1047,1,0,0,0,1058,1048,1,0,0,0,1058,1049, + 1,0,0,0,1058,1050,1,0,0,0,1058,1051,1,0,0,0,1058,1052,1,0,0,0,1058, + 1053,1,0,0,0,1058,1054,1,0,0,0,1059,5,1,0,0,0,1060,1061,5,433,0, + 0,1061,1062,3,678,339,0,1062,7,1,0,0,0,1063,1064,5,46,0,0,1064,1065, + 5,318,0,0,1065,1067,3,808,404,0,1066,1068,5,105,0,0,1067,1066,1, + 0,0,0,1067,1068,1,0,0,0,1068,1072,1,0,0,0,1069,1071,3,12,6,0,1070, + 1069,1,0,0,0,1071,1074,1,0,0,0,1072,1070,1,0,0,0,1072,1073,1,0,0, + 0,1073,9,1,0,0,0,1074,1072,1,0,0,0,1075,1078,5,287,0,0,1076,1079, + 3,802,401,0,1077,1079,5,78,0,0,1078,1076,1,0,0,0,1078,1077,1,0,0, + 0,1079,1114,1,0,0,0,1080,1081,7,0,0,0,1081,1082,5,287,0,0,1082,1114, + 3,802,401,0,1083,1114,5,228,0,0,1084,1114,5,229,0,0,1085,1114,5, + 236,0,0,1086,1114,5,237,0,0,1087,1114,5,234,0,0,1088,1114,5,235, + 0,0,1089,1114,5,232,0,0,1090,1114,5,233,0,0,1091,1114,5,230,0,0, + 1092,1114,5,231,0,0,1093,1114,5,535,0,0,1094,1114,5,536,0,0,1095, + 1114,5,537,0,0,1096,1114,5,538,0,0,1097,1114,5,539,0,0,1098,1114, + 5,540,0,0,1099,1100,5,164,0,0,1100,1101,5,74,0,0,1101,1114,3,806, + 403,0,1102,1103,5,371,0,0,1103,1104,5,368,0,0,1104,1114,3,802,401, + 0,1105,1106,5,68,0,0,1106,1107,7,1,0,0,1107,1114,3,778,389,0,1108, + 1109,7,2,0,0,1109,1114,3,810,405,0,1110,1111,5,134,0,0,1111,1114, + 3,778,389,0,1112,1114,3,820,410,0,1113,1075,1,0,0,0,1113,1080,1, + 0,0,0,1113,1083,1,0,0,0,1113,1084,1,0,0,0,1113,1085,1,0,0,0,1113, + 1086,1,0,0,0,1113,1087,1,0,0,0,1113,1088,1,0,0,0,1113,1089,1,0,0, + 0,1113,1090,1,0,0,0,1113,1091,1,0,0,0,1113,1092,1,0,0,0,1113,1093, + 1,0,0,0,1113,1094,1,0,0,0,1113,1095,1,0,0,0,1113,1096,1,0,0,0,1113, + 1097,1,0,0,0,1113,1098,1,0,0,0,1113,1099,1,0,0,0,1113,1102,1,0,0, + 0,1113,1105,1,0,0,0,1113,1108,1,0,0,0,1113,1110,1,0,0,0,1113,1112, + 1,0,0,0,1114,11,1,0,0,0,1115,1124,3,10,5,0,1116,1117,5,348,0,0,1117, + 1124,5,574,0,0,1118,1119,7,3,0,0,1119,1124,3,810,405,0,1120,1121, + 5,68,0,0,1121,1122,7,1,0,0,1122,1124,3,810,405,0,1123,1115,1,0,0, + 0,1123,1116,1,0,0,0,1123,1118,1,0,0,0,1123,1120,1,0,0,0,1124,13, + 1,0,0,0,1125,1126,5,46,0,0,1126,1127,5,99,0,0,1127,1129,3,808,404, + 0,1128,1130,5,105,0,0,1129,1128,1,0,0,0,1129,1130,1,0,0,0,1130,1134, + 1,0,0,0,1131,1133,3,12,6,0,1132,1131,1,0,0,0,1133,1136,1,0,0,0,1134, + 1132,1,0,0,0,1134,1135,1,0,0,0,1135,15,1,0,0,0,1136,1134,1,0,0,0, + 1137,1138,5,138,0,0,1138,1139,7,2,0,0,1139,1141,3,808,404,0,1140, + 1142,5,105,0,0,1141,1140,1,0,0,0,1141,1142,1,0,0,0,1142,1146,1,0, + 0,0,1143,1145,3,10,5,0,1144,1143,1,0,0,0,1145,1148,1,0,0,0,1146, + 1144,1,0,0,0,1146,1147,1,0,0,0,1147,17,1,0,0,0,1148,1146,1,0,0,0, + 1149,1150,5,138,0,0,1150,1153,7,2,0,0,1151,1154,5,30,0,0,1152,1154, + 3,808,404,0,1153,1151,1,0,0,0,1153,1152,1,0,0,0,1154,1155,1,0,0, + 0,1155,1156,5,68,0,0,1156,1157,5,175,0,0,1157,1158,3,782,391,0,1158, + 1159,3,64,32,0,1159,19,1,0,0,0,1160,1161,5,138,0,0,1161,1162,5,442, + 0,0,1162,1164,3,788,394,0,1163,1165,3,362,181,0,1164,1163,1,0,0, + 0,1164,1165,1,0,0,0,1165,1166,1,0,0,0,1166,1167,3,22,11,0,1167,21, + 1,0,0,0,1168,1172,3,24,12,0,1169,1171,3,24,12,0,1170,1169,1,0,0, + 0,1171,1174,1,0,0,0,1172,1170,1,0,0,0,1172,1173,1,0,0,0,1173,1176, + 1,0,0,0,1174,1172,1,0,0,0,1175,1177,5,315,0,0,1176,1175,1,0,0,0, + 1176,1177,1,0,0,0,1177,1195,1,0,0,0,1178,1179,5,309,0,0,1179,1180, + 5,94,0,0,1180,1195,3,786,393,0,1181,1182,5,282,0,0,1182,1183,5,94, + 0,0,1183,1195,3,808,404,0,1184,1185,5,333,0,0,1185,1186,5,323,0, + 0,1186,1195,3,32,16,0,1187,1189,5,269,0,0,1188,1187,1,0,0,0,1188, + 1189,1,0,0,0,1189,1190,1,0,0,0,1190,1191,5,462,0,0,1191,1192,5,80, + 0,0,1192,1193,5,204,0,0,1193,1195,3,812,406,0,1194,1168,1,0,0,0, + 1194,1178,1,0,0,0,1194,1181,1,0,0,0,1194,1184,1,0,0,0,1194,1188, + 1,0,0,0,1195,23,1,0,0,0,1196,1239,5,222,0,0,1197,1239,5,338,0,0, + 1198,1239,5,377,0,0,1199,1201,5,77,0,0,1200,1199,1,0,0,0,1200,1201, + 1,0,0,0,1201,1202,1,0,0,0,1202,1239,5,250,0,0,1203,1205,5,205,0, + 0,1204,1203,1,0,0,0,1204,1205,1,0,0,0,1205,1206,1,0,0,0,1206,1207, + 5,327,0,0,1207,1214,5,243,0,0,1208,1210,5,205,0,0,1209,1208,1,0, + 0,0,1209,1210,1,0,0,0,1210,1211,1,0,0,0,1211,1212,5,327,0,0,1212, + 1214,5,181,0,0,1213,1204,1,0,0,0,1213,1209,1,0,0,0,1214,1239,1,0, + 0,0,1215,1216,5,460,0,0,1216,1239,7,4,0,0,1217,1218,5,170,0,0,1218, + 1239,3,818,409,0,1219,1220,5,320,0,0,1220,1239,3,812,406,0,1221, + 1222,5,333,0,0,1222,1223,3,812,406,0,1223,1226,7,5,0,0,1224,1227, + 3,812,406,0,1225,1227,5,53,0,0,1226,1224,1,0,0,0,1226,1225,1,0,0, + 0,1227,1239,1,0,0,0,1228,1229,5,333,0,0,1229,1230,3,812,406,0,1230, + 1231,5,64,0,0,1231,1232,5,434,0,0,1232,1239,1,0,0,0,1233,1236,5, + 313,0,0,1234,1237,3,812,406,0,1235,1237,5,30,0,0,1236,1234,1,0,0, + 0,1236,1235,1,0,0,0,1237,1239,1,0,0,0,1238,1196,1,0,0,0,1238,1197, + 1,0,0,0,1238,1198,1,0,0,0,1238,1200,1,0,0,0,1238,1213,1,0,0,0,1238, + 1215,1,0,0,0,1238,1217,1,0,0,0,1238,1219,1,0,0,0,1238,1221,1,0,0, + 0,1238,1228,1,0,0,0,1238,1233,1,0,0,0,1239,25,1,0,0,0,1240,1241, + 5,46,0,0,1241,1242,5,66,0,0,1242,1244,3,808,404,0,1243,1245,5,105, + 0,0,1244,1243,1,0,0,0,1244,1245,1,0,0,0,1245,1249,1,0,0,0,1246,1248, + 3,12,6,0,1247,1246,1,0,0,0,1248,1251,1,0,0,0,1249,1247,1,0,0,0,1249, + 1250,1,0,0,0,1250,27,1,0,0,0,1251,1249,1,0,0,0,1252,1253,5,138,0, + 0,1253,1254,5,66,0,0,1254,1255,3,808,404,0,1255,1256,7,6,0,0,1256, + 1257,5,99,0,0,1257,1258,3,810,405,0,1258,29,1,0,0,0,1259,1260,5, + 46,0,0,1260,1262,5,323,0,0,1261,1263,3,288,144,0,1262,1261,1,0,0, + 0,1262,1263,1,0,0,0,1263,1270,1,0,0,0,1264,1266,3,32,16,0,1265,1264, + 1,0,0,0,1265,1266,1,0,0,0,1266,1267,1,0,0,0,1267,1268,5,106,0,0, + 1268,1271,3,808,404,0,1269,1271,3,32,16,0,1270,1265,1,0,0,0,1270, + 1269,1,0,0,0,1271,1275,1,0,0,0,1272,1274,3,34,17,0,1273,1272,1,0, + 0,0,1274,1277,1,0,0,0,1275,1273,1,0,0,0,1275,1276,1,0,0,0,1276,31, + 1,0,0,0,1277,1275,1,0,0,0,1278,1279,3,310,155,0,1279,33,1,0,0,0, + 1280,1287,3,114,57,0,1281,1287,3,352,176,0,1282,1287,3,190,95,0, + 1283,1287,3,250,125,0,1284,1287,3,328,164,0,1285,1287,3,470,235, + 0,1286,1280,1,0,0,0,1286,1281,1,0,0,0,1286,1282,1,0,0,0,1286,1283, + 1,0,0,0,1286,1284,1,0,0,0,1286,1285,1,0,0,0,1287,35,1,0,0,0,1288, + 1290,5,333,0,0,1289,1291,7,7,0,0,1290,1289,1,0,0,0,1290,1291,1,0, + 0,0,1291,1292,1,0,0,0,1292,1293,3,38,19,0,1293,37,1,0,0,0,1294,1295, + 5,356,0,0,1295,1303,3,468,234,0,1296,1297,5,332,0,0,1297,1298,5, + 154,0,0,1298,1299,5,36,0,0,1299,1300,5,356,0,0,1300,1303,3,468,234, + 0,1301,1303,3,42,21,0,1302,1294,1,0,0,0,1302,1296,1,0,0,0,1302,1301, + 1,0,0,0,1303,39,1,0,0,0,1304,1307,5,30,0,0,1305,1307,3,44,22,0,1306, + 1304,1,0,0,0,1306,1305,1,0,0,0,1307,1309,1,0,0,0,1308,1310,7,5,0, + 0,1309,1308,1,0,0,0,1309,1310,1,0,0,0,1310,1313,1,0,0,0,1311,1314, + 5,53,0,0,1312,1314,3,46,23,0,1313,1311,1,0,0,0,1313,1312,1,0,0,0, + 1313,1314,1,0,0,0,1314,41,1,0,0,0,1315,1316,5,418,0,0,1316,1317, + 5,386,0,0,1317,1344,3,56,28,0,1318,1319,5,152,0,0,1319,1344,3,802, + 401,0,1320,1321,5,323,0,0,1321,1344,3,784,392,0,1322,1325,5,267, + 0,0,1323,1326,3,802,401,0,1324,1326,5,53,0,0,1325,1323,1,0,0,0,1325, + 1324,1,0,0,0,1325,1326,1,0,0,0,1326,1344,1,0,0,0,1327,1328,5,318, + 0,0,1328,1344,3,58,29,0,1329,1330,5,332,0,0,1330,1331,5,106,0,0, + 1331,1344,3,58,29,0,1332,1333,5,383,0,0,1333,1334,5,279,0,0,1334, + 1344,3,690,345,0,1335,1336,5,356,0,0,1336,1337,5,337,0,0,1337,1344, + 3,802,401,0,1338,1339,3,44,22,0,1339,1340,5,64,0,0,1340,1341,5,434, + 0,0,1341,1344,1,0,0,0,1342,1344,3,40,20,0,1343,1315,1,0,0,0,1343, + 1318,1,0,0,0,1343,1320,1,0,0,0,1343,1322,1,0,0,0,1343,1327,1,0,0, + 0,1343,1329,1,0,0,0,1343,1332,1,0,0,0,1343,1335,1,0,0,0,1343,1338, + 1,0,0,0,1343,1342,1,0,0,0,1344,43,1,0,0,0,1345,1350,3,812,406,0, + 1346,1347,5,11,0,0,1347,1349,3,812,406,0,1348,1346,1,0,0,0,1349, + 1352,1,0,0,0,1350,1348,1,0,0,0,1350,1351,1,0,0,0,1351,45,1,0,0,0, + 1352,1350,1,0,0,0,1353,1358,3,48,24,0,1354,1355,5,6,0,0,1355,1357, + 3,48,24,0,1356,1354,1,0,0,0,1357,1360,1,0,0,0,1358,1356,1,0,0,0, + 1358,1359,1,0,0,0,1359,47,1,0,0,0,1360,1358,1,0,0,0,1361,1364,3, + 54,27,0,1362,1364,3,196,98,0,1363,1361,1,0,0,0,1363,1362,1,0,0,0, + 1364,49,1,0,0,0,1365,1366,5,300,0,0,1366,1371,7,8,0,0,1367,1368, + 5,310,0,0,1368,1371,5,300,0,0,1369,1371,5,330,0,0,1370,1365,1,0, + 0,0,1370,1367,1,0,0,0,1370,1369,1,0,0,0,1371,51,1,0,0,0,1372,1379, + 5,96,0,0,1373,1379,5,60,0,0,1374,1379,5,80,0,0,1375,1379,3,794,397, + 0,1376,1379,3,826,413,0,1377,1379,3,802,401,0,1378,1372,1,0,0,0, + 1378,1373,1,0,0,0,1378,1374,1,0,0,0,1378,1375,1,0,0,0,1378,1376, + 1,0,0,0,1378,1377,1,0,0,0,1379,53,1,0,0,0,1380,1385,5,96,0,0,1381, + 1385,5,60,0,0,1382,1385,5,80,0,0,1383,1385,3,58,29,0,1384,1380,1, + 0,0,0,1384,1381,1,0,0,0,1384,1382,1,0,0,0,1384,1383,1,0,0,0,1385, + 55,1,0,0,0,1386,1401,3,802,401,0,1387,1401,5,53,0,0,1388,1401,3, + 820,410,0,1389,1390,5,403,0,0,1390,1392,3,802,401,0,1391,1393,3, + 662,331,0,1392,1391,1,0,0,0,1392,1393,1,0,0,0,1393,1401,1,0,0,0, + 1394,1395,5,403,0,0,1395,1396,3,654,327,0,1396,1397,3,802,401,0, + 1397,1401,1,0,0,0,1398,1401,3,196,98,0,1399,1401,5,254,0,0,1400, + 1386,1,0,0,0,1400,1387,1,0,0,0,1400,1388,1,0,0,0,1400,1389,1,0,0, + 0,1400,1394,1,0,0,0,1400,1398,1,0,0,0,1400,1399,1,0,0,0,1401,57, + 1,0,0,0,1402,1405,3,816,408,0,1403,1405,3,802,401,0,1404,1402,1, + 0,0,0,1404,1403,1,0,0,0,1405,59,1,0,0,0,1406,1407,5,313,0,0,1407, + 1408,3,62,31,0,1408,61,1,0,0,0,1409,1410,5,418,0,0,1410,1419,5,386, + 0,0,1411,1412,5,356,0,0,1412,1413,5,244,0,0,1413,1419,5,251,0,0, + 1414,1415,5,332,0,0,1415,1419,5,106,0,0,1416,1419,5,30,0,0,1417, + 1419,3,44,22,0,1418,1409,1,0,0,0,1418,1411,1,0,0,0,1418,1414,1,0, + 0,0,1418,1416,1,0,0,0,1418,1417,1,0,0,0,1419,63,1,0,0,0,1420,1421, + 5,333,0,0,1421,1424,3,38,19,0,1422,1424,3,60,30,0,1423,1420,1,0, + 0,0,1423,1422,1,0,0,0,1424,65,1,0,0,0,1425,1426,5,333,0,0,1426,1429, + 3,42,21,0,1427,1429,3,60,30,0,1428,1425,1,0,0,0,1428,1427,1,0,0, + 0,1429,67,1,0,0,0,1430,1440,5,335,0,0,1431,1441,3,44,22,0,1432,1433, + 5,418,0,0,1433,1441,5,386,0,0,1434,1435,5,356,0,0,1435,1436,5,244, + 0,0,1436,1441,5,251,0,0,1437,1438,5,332,0,0,1438,1441,5,106,0,0, + 1439,1441,5,30,0,0,1440,1431,1,0,0,0,1440,1432,1,0,0,0,1440,1434, + 1,0,0,0,1440,1437,1,0,0,0,1440,1439,1,0,0,0,1441,69,1,0,0,0,1442, + 1443,5,333,0,0,1443,1446,5,165,0,0,1444,1447,5,30,0,0,1445,1447, + 3,754,377,0,1446,1444,1,0,0,0,1446,1445,1,0,0,0,1447,1448,1,0,0, + 0,1448,1449,7,9,0,0,1449,71,1,0,0,0,1450,1451,5,155,0,0,1451,73, + 1,0,0,0,1452,1453,5,187,0,0,1453,1454,7,10,0,0,1454,75,1,0,0,0,1455, + 1456,5,138,0,0,1456,1458,5,92,0,0,1457,1459,3,416,208,0,1458,1457, + 1,0,0,0,1458,1459,1,0,0,0,1459,1460,1,0,0,0,1460,1463,3,618,309, + 0,1461,1464,3,78,39,0,1462,1464,3,80,40,0,1463,1461,1,0,0,0,1463, + 1462,1,0,0,0,1464,1573,1,0,0,0,1465,1466,5,138,0,0,1466,1467,5,92, + 0,0,1467,1468,5,30,0,0,1468,1469,5,68,0,0,1469,1473,3,170,85,0,1470, + 1471,5,281,0,0,1471,1472,5,147,0,0,1472,1474,3,810,405,0,1473,1470, + 1,0,0,0,1473,1474,1,0,0,0,1474,1475,1,0,0,0,1475,1476,5,333,0,0, + 1476,1477,5,351,0,0,1477,1479,3,764,382,0,1478,1480,5,272,0,0,1479, + 1478,1,0,0,0,1479,1480,1,0,0,0,1480,1573,1,0,0,0,1481,1482,5,138, + 0,0,1482,1484,5,92,0,0,1483,1485,3,416,208,0,1484,1483,1,0,0,0,1484, + 1485,1,0,0,0,1485,1486,1,0,0,0,1486,1487,3,768,384,0,1487,1488,3, + 82,41,0,1488,1489,3,98,49,0,1489,1573,1,0,0,0,1490,1491,5,138,0, + 0,1491,1493,5,92,0,0,1492,1494,3,416,208,0,1493,1492,1,0,0,0,1493, + 1494,1,0,0,0,1494,1495,1,0,0,0,1495,1496,3,768,384,0,1496,1497,5, + 436,0,0,1497,1498,5,285,0,0,1498,1500,3,774,387,0,1499,1501,7,11, + 0,0,1500,1499,1,0,0,0,1500,1501,1,0,0,0,1501,1573,1,0,0,0,1502,1503, + 5,138,0,0,1503,1505,5,226,0,0,1504,1506,3,416,208,0,1505,1504,1, + 0,0,0,1505,1506,1,0,0,0,1506,1507,1,0,0,0,1507,1510,3,774,387,0, + 1508,1511,3,78,39,0,1509,1511,3,82,41,0,1510,1508,1,0,0,0,1510,1509, + 1,0,0,0,1511,1573,1,0,0,0,1512,1513,5,138,0,0,1513,1514,5,226,0, + 0,1514,1515,5,30,0,0,1515,1516,5,68,0,0,1516,1520,3,170,85,0,1517, + 1518,5,281,0,0,1518,1519,5,147,0,0,1519,1521,3,810,405,0,1520,1517, + 1,0,0,0,1520,1521,1,0,0,0,1521,1522,1,0,0,0,1522,1523,5,333,0,0, + 1523,1525,3,170,85,0,1524,1526,5,272,0,0,1525,1524,1,0,0,0,1525, + 1526,1,0,0,0,1526,1573,1,0,0,0,1527,1528,5,138,0,0,1528,1530,5,328, + 0,0,1529,1531,3,416,208,0,1530,1529,1,0,0,0,1530,1531,1,0,0,0,1531, + 1532,1,0,0,0,1532,1533,3,774,387,0,1533,1534,3,78,39,0,1534,1573, + 1,0,0,0,1535,1537,5,138,0,0,1536,1538,5,259,0,0,1537,1536,1,0,0, + 0,1537,1538,1,0,0,0,1538,1539,1,0,0,0,1539,1541,5,376,0,0,1540,1542, + 3,416,208,0,1541,1540,1,0,0,0,1541,1542,1,0,0,0,1542,1543,1,0,0, + 0,1543,1544,3,772,386,0,1544,1545,3,78,39,0,1545,1573,1,0,0,0,1546, + 1547,5,138,0,0,1547,1548,5,259,0,0,1548,1549,5,376,0,0,1549,1550, + 5,30,0,0,1550,1551,5,68,0,0,1551,1555,3,170,85,0,1552,1553,5,281, + 0,0,1553,1554,5,147,0,0,1554,1556,3,810,405,0,1555,1552,1,0,0,0, + 1555,1556,1,0,0,0,1556,1557,1,0,0,0,1557,1558,5,333,0,0,1558,1559, + 5,351,0,0,1559,1561,3,764,382,0,1560,1562,5,272,0,0,1561,1560,1, + 0,0,0,1561,1562,1,0,0,0,1562,1573,1,0,0,0,1563,1564,5,138,0,0,1564, + 1565,5,63,0,0,1565,1567,5,92,0,0,1566,1568,3,416,208,0,1567,1566, + 1,0,0,0,1567,1568,1,0,0,0,1568,1569,1,0,0,0,1569,1570,3,618,309, + 0,1570,1571,3,78,39,0,1571,1573,1,0,0,0,1572,1455,1,0,0,0,1572,1465, + 1,0,0,0,1572,1481,1,0,0,0,1572,1490,1,0,0,0,1572,1502,1,0,0,0,1572, + 1512,1,0,0,0,1572,1527,1,0,0,0,1572,1535,1,0,0,0,1572,1546,1,0,0, + 0,1572,1563,1,0,0,0,1573,77,1,0,0,0,1574,1579,3,84,42,0,1575,1576, + 5,6,0,0,1576,1578,3,84,42,0,1577,1575,1,0,0,0,1578,1581,1,0,0,0, + 1579,1577,1,0,0,0,1579,1580,1,0,0,0,1580,79,1,0,0,0,1581,1579,1, + 0,0,0,1582,1583,3,82,41,0,1583,1584,3,98,49,0,1584,1589,1,0,0,0, + 1585,1586,5,436,0,0,1586,1587,5,285,0,0,1587,1589,3,774,387,0,1588, + 1582,1,0,0,0,1588,1585,1,0,0,0,1589,81,1,0,0,0,1590,1591,5,435,0, + 0,1591,1592,5,285,0,0,1592,1593,3,774,387,0,1593,83,1,0,0,0,1594, + 1597,5,133,0,0,1595,1596,5,45,0,0,1596,1598,3,812,406,0,1597,1595, + 1,0,0,0,1597,1598,1,0,0,0,1598,1599,1,0,0,0,1599,1828,3,136,68,0, + 1600,1601,5,138,0,0,1601,1602,5,45,0,0,1602,1606,3,812,406,0,1603, + 1605,3,266,133,0,1604,1603,1,0,0,0,1605,1608,1,0,0,0,1606,1604,1, + 0,0,0,1606,1607,1,0,0,0,1607,1828,1,0,0,0,1608,1606,1,0,0,0,1609, + 1610,5,372,0,0,1610,1611,5,45,0,0,1611,1828,3,812,406,0,1612,1613, + 5,191,0,0,1613,1615,5,45,0,0,1614,1616,3,416,208,0,1615,1614,1,0, + 0,0,1615,1616,1,0,0,0,1616,1617,1,0,0,0,1617,1619,3,812,406,0,1618, + 1620,3,88,44,0,1619,1618,1,0,0,0,1619,1620,1,0,0,0,1620,1828,1,0, + 0,0,1621,1622,5,333,0,0,1622,1623,5,379,0,0,1623,1828,7,12,0,0,1624, + 1625,5,158,0,0,1625,1626,5,80,0,0,1626,1828,3,812,406,0,1627,1628, + 5,333,0,0,1628,1828,7,13,0,0,1629,1631,5,193,0,0,1630,1632,7,14, + 0,0,1631,1630,1,0,0,0,1631,1632,1,0,0,0,1632,1633,1,0,0,0,1633,1828, + 5,357,0,0,1634,1635,5,186,0,0,1635,1639,5,357,0,0,1636,1640,5,30, + 0,0,1637,1640,5,99,0,0,1638,1640,3,812,406,0,1639,1636,1,0,0,0,1639, + 1637,1,0,0,0,1639,1638,1,0,0,0,1640,1828,1,0,0,0,1641,1642,5,193, + 0,0,1642,1643,7,14,0,0,1643,1644,5,321,0,0,1644,1828,3,812,406,0, + 1645,1646,5,186,0,0,1646,1647,5,321,0,0,1647,1828,3,812,406,0,1648, + 1650,5,269,0,0,1649,1648,1,0,0,0,1649,1650,1,0,0,0,1650,1651,1,0, + 0,0,1651,1652,5,228,0,0,1652,1828,3,774,387,0,1653,1654,5,275,0, + 0,1654,1828,3,310,155,0,1655,1656,5,77,0,0,1656,1828,5,275,0,0,1657, + 1658,5,282,0,0,1658,1659,5,94,0,0,1659,1828,3,808,404,0,1660,1661, + 5,333,0,0,1661,1662,5,351,0,0,1662,1828,3,764,382,0,1663,1664,5, + 312,0,0,1664,1669,5,219,0,0,1665,1670,5,270,0,0,1666,1670,5,113, + 0,0,1667,1670,5,53,0,0,1668,1670,3,174,87,0,1669,1665,1,0,0,0,1669, + 1666,1,0,0,0,1669,1667,1,0,0,0,1669,1668,1,0,0,0,1670,1828,1,0,0, + 0,1671,1678,5,193,0,0,1672,1678,5,186,0,0,1673,1675,5,269,0,0,1674, + 1673,1,0,0,0,1674,1675,1,0,0,0,1675,1676,1,0,0,0,1676,1678,5,209, + 0,0,1677,1671,1,0,0,0,1677,1672,1,0,0,0,1677,1674,1,0,0,0,1678,1679, + 1,0,0,0,1679,1680,5,414,0,0,1680,1681,5,251,0,0,1681,1828,5,327, + 0,0,1682,1684,5,191,0,0,1683,1685,5,44,0,0,1684,1683,1,0,0,0,1684, + 1685,1,0,0,0,1685,1687,1,0,0,0,1686,1688,3,416,208,0,1687,1686,1, + 0,0,0,1687,1688,1,0,0,0,1688,1689,1,0,0,0,1689,1691,3,794,397,0, + 1690,1692,3,88,44,0,1691,1690,1,0,0,0,1691,1692,1,0,0,0,1692,1828, + 1,0,0,0,1693,1695,5,133,0,0,1694,1696,5,44,0,0,1695,1694,1,0,0,0, + 1695,1696,1,0,0,0,1696,1698,1,0,0,0,1697,1699,3,288,144,0,1698,1697, + 1,0,0,0,1698,1699,1,0,0,0,1699,1700,1,0,0,0,1700,1828,3,126,63,0, + 1701,1703,5,138,0,0,1702,1704,5,44,0,0,1703,1702,1,0,0,0,1703,1704, + 1,0,0,0,1704,1705,1,0,0,0,1705,1708,3,794,397,0,1706,1709,3,86,43, + 0,1707,1709,3,216,108,0,1708,1706,1,0,0,0,1708,1707,1,0,0,0,1709, + 1828,1,0,0,0,1710,1712,5,138,0,0,1711,1713,5,44,0,0,1712,1711,1, + 0,0,0,1712,1713,1,0,0,0,1713,1714,1,0,0,0,1714,1715,3,794,397,0, + 1715,1716,7,15,0,0,1716,1717,5,77,0,0,1717,1718,5,78,0,0,1718,1828, + 1,0,0,0,1719,1721,5,138,0,0,1720,1722,5,44,0,0,1721,1720,1,0,0,0, + 1721,1722,1,0,0,0,1722,1723,1,0,0,0,1723,1724,3,794,397,0,1724,1725, + 5,191,0,0,1725,1727,5,437,0,0,1726,1728,3,416,208,0,1727,1726,1, + 0,0,0,1727,1728,1,0,0,0,1728,1828,1,0,0,0,1729,1731,5,138,0,0,1730, + 1732,5,44,0,0,1731,1730,1,0,0,0,1731,1732,1,0,0,0,1732,1733,1,0, + 0,0,1733,1734,3,794,397,0,1734,1735,5,333,0,0,1735,1736,5,342,0, + 0,1736,1737,3,806,403,0,1737,1828,1,0,0,0,1738,1740,5,138,0,0,1739, + 1741,5,44,0,0,1740,1739,1,0,0,0,1740,1741,1,0,0,0,1741,1742,1,0, + 0,0,1742,1744,3,794,397,0,1743,1738,1,0,0,0,1743,1744,1,0,0,0,1744, + 1745,1,0,0,0,1745,1746,7,16,0,0,1746,1828,3,92,46,0,1747,1749,5, + 138,0,0,1748,1750,5,44,0,0,1749,1748,1,0,0,0,1749,1750,1,0,0,0,1750, + 1751,1,0,0,0,1751,1752,3,794,397,0,1752,1753,5,333,0,0,1753,1754, + 5,345,0,0,1754,1755,3,812,406,0,1755,1828,1,0,0,0,1756,1758,5,138, + 0,0,1757,1759,5,44,0,0,1758,1757,1,0,0,0,1758,1759,1,0,0,0,1759, + 1760,1,0,0,0,1760,1761,3,794,397,0,1761,1762,5,133,0,0,1762,1763, + 5,438,0,0,1763,1764,3,132,66,0,1764,1765,5,36,0,0,1765,1774,5,219, + 0,0,1766,1768,5,2,0,0,1767,1769,3,194,97,0,1768,1767,1,0,0,0,1769, + 1770,1,0,0,0,1770,1768,1,0,0,0,1770,1771,1,0,0,0,1771,1772,1,0,0, + 0,1772,1773,5,3,0,0,1773,1775,1,0,0,0,1774,1766,1,0,0,0,1774,1775, + 1,0,0,0,1775,1828,1,0,0,0,1776,1778,5,138,0,0,1777,1779,5,44,0,0, + 1778,1777,1,0,0,0,1778,1779,1,0,0,0,1779,1780,1,0,0,0,1780,1794, + 3,794,397,0,1781,1786,5,314,0,0,1782,1784,5,105,0,0,1783,1782,1, + 0,0,0,1783,1784,1,0,0,0,1784,1785,1,0,0,0,1785,1787,3,196,98,0,1786, + 1783,1,0,0,0,1786,1787,1,0,0,0,1787,1795,1,0,0,0,1788,1792,5,333, + 0,0,1789,1793,3,194,97,0,1790,1791,5,438,0,0,1791,1793,3,132,66, + 0,1792,1789,1,0,0,0,1792,1790,1,0,0,0,1793,1795,1,0,0,0,1794,1781, + 1,0,0,0,1794,1788,1,0,0,0,1795,1796,1,0,0,0,1796,1794,1,0,0,0,1796, + 1797,1,0,0,0,1797,1828,1,0,0,0,1798,1800,5,138,0,0,1799,1801,5,44, + 0,0,1800,1799,1,0,0,0,1800,1801,1,0,0,0,1801,1802,1,0,0,0,1802,1803, + 3,794,397,0,1803,1804,5,191,0,0,1804,1806,5,219,0,0,1805,1807,3, + 416,208,0,1806,1805,1,0,0,0,1806,1807,1,0,0,0,1807,1828,1,0,0,0, + 1808,1810,5,138,0,0,1809,1811,5,44,0,0,1810,1809,1,0,0,0,1810,1811, + 1,0,0,0,1811,1812,1,0,0,0,1812,1815,3,794,397,0,1813,1814,5,333, + 0,0,1814,1816,5,174,0,0,1815,1813,1,0,0,0,1815,1816,1,0,0,0,1816, + 1817,1,0,0,0,1817,1818,5,360,0,0,1818,1820,3,646,323,0,1819,1821, + 3,90,45,0,1820,1819,1,0,0,0,1820,1821,1,0,0,0,1821,1824,1,0,0,0, + 1822,1823,5,100,0,0,1823,1825,3,668,334,0,1824,1822,1,0,0,0,1824, + 1825,1,0,0,0,1825,1828,1,0,0,0,1826,1828,3,216,108,0,1827,1594,1, + 0,0,0,1827,1600,1,0,0,0,1827,1609,1,0,0,0,1827,1612,1,0,0,0,1827, + 1621,1,0,0,0,1827,1624,1,0,0,0,1827,1627,1,0,0,0,1827,1629,1,0,0, + 0,1827,1634,1,0,0,0,1827,1641,1,0,0,0,1827,1645,1,0,0,0,1827,1649, + 1,0,0,0,1827,1653,1,0,0,0,1827,1655,1,0,0,0,1827,1657,1,0,0,0,1827, + 1660,1,0,0,0,1827,1663,1,0,0,0,1827,1677,1,0,0,0,1827,1682,1,0,0, + 0,1827,1693,1,0,0,0,1827,1701,1,0,0,0,1827,1710,1,0,0,0,1827,1719, + 1,0,0,0,1827,1729,1,0,0,0,1827,1743,1,0,0,0,1827,1747,1,0,0,0,1827, + 1756,1,0,0,0,1827,1776,1,0,0,0,1827,1798,1,0,0,0,1827,1808,1,0,0, + 0,1827,1826,1,0,0,0,1828,85,1,0,0,0,1829,1830,5,333,0,0,1830,1831, + 5,53,0,0,1831,1835,3,668,334,0,1832,1833,5,191,0,0,1833,1835,5,53, + 0,0,1834,1829,1,0,0,0,1834,1832,1,0,0,0,1835,87,1,0,0,0,1836,1837, + 7,17,0,0,1837,89,1,0,0,0,1838,1839,5,43,0,0,1839,1840,3,310,155, + 0,1840,91,1,0,0,0,1841,1842,5,2,0,0,1842,1847,3,96,48,0,1843,1844, + 5,6,0,0,1844,1846,3,96,48,0,1845,1843,1,0,0,0,1846,1849,1,0,0,0, + 1847,1845,1,0,0,0,1847,1848,1,0,0,0,1848,1850,1,0,0,0,1849,1847, + 1,0,0,0,1850,1851,5,3,0,0,1851,93,1,0,0,0,1852,1853,5,105,0,0,1853, + 1854,3,92,46,0,1854,95,1,0,0,0,1855,1860,3,818,409,0,1856,1857,5, + 10,0,0,1857,1861,3,282,141,0,1858,1859,5,11,0,0,1859,1861,3,280, + 140,0,1860,1856,1,0,0,0,1860,1858,1,0,0,0,1860,1861,1,0,0,0,1861, + 97,1,0,0,0,1862,1863,5,62,0,0,1863,1864,5,422,0,0,1864,1865,5,105, + 0,0,1865,1866,5,2,0,0,1866,1867,5,533,0,0,1867,1868,3,196,98,0,1868, + 1869,5,6,0,0,1869,1870,5,534,0,0,1870,1871,3,196,98,0,1871,1872, + 5,3,0,0,1872,1886,1,0,0,0,1873,1874,5,62,0,0,1874,1875,5,422,0,0, + 1875,1876,5,68,0,0,1876,1886,3,528,264,0,1877,1878,5,62,0,0,1878, + 1879,5,422,0,0,1879,1880,5,64,0,0,1880,1881,3,528,264,0,1881,1882, + 5,94,0,0,1882,1883,3,528,264,0,1883,1886,1,0,0,0,1884,1886,5,53, + 0,0,1885,1862,1,0,0,0,1885,1873,1,0,0,0,1885,1877,1,0,0,0,1885,1884, + 1,0,0,0,1886,99,1,0,0,0,1887,1888,5,138,0,0,1888,1889,5,360,0,0, + 1889,1890,3,310,155,0,1890,1895,3,102,51,0,1891,1892,5,6,0,0,1892, + 1894,3,102,51,0,1893,1891,1,0,0,0,1894,1897,1,0,0,0,1895,1893,1, + 0,0,0,1895,1896,1,0,0,0,1896,101,1,0,0,0,1897,1895,1,0,0,0,1898, + 1899,5,133,0,0,1899,1900,5,143,0,0,1900,1902,3,638,319,0,1901,1903, + 3,88,44,0,1902,1901,1,0,0,0,1902,1903,1,0,0,0,1903,1929,1,0,0,0, + 1904,1905,5,191,0,0,1905,1907,5,143,0,0,1906,1908,3,416,208,0,1907, + 1906,1,0,0,0,1907,1908,1,0,0,0,1908,1909,1,0,0,0,1909,1911,3,812, + 406,0,1910,1912,3,88,44,0,1911,1910,1,0,0,0,1911,1912,1,0,0,0,1912, + 1929,1,0,0,0,1913,1914,5,138,0,0,1914,1915,5,143,0,0,1915,1918,3, + 812,406,0,1916,1917,5,333,0,0,1917,1919,5,174,0,0,1918,1916,1,0, + 0,0,1918,1919,1,0,0,0,1919,1920,1,0,0,0,1920,1921,5,360,0,0,1921, + 1923,3,646,323,0,1922,1924,3,90,45,0,1923,1922,1,0,0,0,1923,1924, + 1,0,0,0,1924,1926,1,0,0,0,1925,1927,3,88,44,0,1926,1925,1,0,0,0, + 1926,1927,1,0,0,0,1927,1929,1,0,0,0,1928,1898,1,0,0,0,1928,1904, + 1,0,0,0,1928,1913,1,0,0,0,1929,103,1,0,0,0,1930,1933,5,157,0,0,1931, + 1934,3,812,406,0,1932,1934,5,30,0,0,1933,1931,1,0,0,0,1933,1932, + 1,0,0,0,1934,105,1,0,0,0,1935,1937,5,169,0,0,1936,1938,5,107,0,0, + 1937,1936,1,0,0,0,1937,1938,1,0,0,0,1938,1939,1,0,0,0,1939,1941, + 3,768,384,0,1940,1942,3,138,69,0,1941,1940,1,0,0,0,1941,1942,1,0, + 0,0,1942,1943,1,0,0,0,1943,1945,7,18,0,0,1944,1946,5,297,0,0,1945, + 1944,1,0,0,0,1945,1946,1,0,0,0,1946,1950,1,0,0,0,1947,1951,3,802, + 401,0,1948,1951,5,343,0,0,1949,1951,5,344,0,0,1950,1947,1,0,0,0, + 1950,1948,1,0,0,0,1950,1949,1,0,0,0,1951,1957,1,0,0,0,1952,1954, + 5,100,0,0,1953,1952,1,0,0,0,1953,1954,1,0,0,0,1954,1955,1,0,0,0, + 1955,1956,5,184,0,0,1956,1958,3,802,401,0,1957,1953,1,0,0,0,1957, + 1958,1,0,0,0,1958,1960,1,0,0,0,1959,1961,5,105,0,0,1960,1959,1,0, + 0,0,1960,1961,1,0,0,0,1961,1962,1,0,0,0,1962,1964,3,110,55,0,1963, + 1965,3,632,316,0,1964,1963,1,0,0,0,1964,1965,1,0,0,0,1965,1985,1, + 0,0,0,1966,1967,5,169,0,0,1967,1968,5,2,0,0,1968,1969,3,524,262, + 0,1969,1970,5,3,0,0,1970,1972,5,94,0,0,1971,1973,5,297,0,0,1972, + 1971,1,0,0,0,1972,1973,1,0,0,0,1973,1977,1,0,0,0,1974,1978,3,802, + 401,0,1975,1978,5,343,0,0,1976,1978,5,344,0,0,1977,1974,1,0,0,0, + 1977,1975,1,0,0,0,1977,1976,1,0,0,0,1978,1980,1,0,0,0,1979,1981, + 5,105,0,0,1980,1979,1,0,0,0,1980,1981,1,0,0,0,1981,1982,1,0,0,0, + 1982,1983,3,110,55,0,1983,1985,1,0,0,0,1984,1935,1,0,0,0,1984,1966, + 1,0,0,0,1985,107,1,0,0,0,1986,2029,5,107,0,0,1987,2029,5,112,0,0, + 1988,1990,7,19,0,0,1989,1991,5,36,0,0,1990,1989,1,0,0,0,1990,1991, + 1,0,0,0,1991,1992,1,0,0,0,1992,2029,3,802,401,0,1993,2029,5,171, + 0,0,1994,2029,5,216,0,0,1995,1996,5,209,0,0,1996,1999,5,298,0,0, + 1997,2000,3,142,71,0,1998,2000,5,9,0,0,1999,1997,1,0,0,0,1999,1998, + 1,0,0,0,2000,2029,1,0,0,0,2001,2003,5,209,0,0,2002,2004,5,77,0,0, + 2003,2002,1,0,0,0,2003,2004,1,0,0,0,2004,2005,1,0,0,0,2005,2006, + 5,78,0,0,2006,2029,3,142,71,0,2007,2008,5,194,0,0,2008,2029,3,802, + 401,0,2009,2026,7,20,0,0,2010,2013,5,2,0,0,2011,2014,3,142,71,0, + 2012,2014,5,9,0,0,2013,2011,1,0,0,0,2013,2012,1,0,0,0,2014,2022, + 1,0,0,0,2015,2018,5,6,0,0,2016,2019,3,142,71,0,2017,2019,5,9,0,0, + 2018,2016,1,0,0,0,2018,2017,1,0,0,0,2019,2021,1,0,0,0,2020,2015, + 1,0,0,0,2021,2024,1,0,0,0,2022,2020,1,0,0,0,2022,2023,1,0,0,0,2023, + 2025,1,0,0,0,2024,2022,1,0,0,0,2025,2027,5,3,0,0,2026,2010,1,0,0, + 0,2026,2027,1,0,0,0,2027,2029,1,0,0,0,2028,1986,1,0,0,0,2028,1987, + 1,0,0,0,2028,1988,1,0,0,0,2028,1993,1,0,0,0,2028,1994,1,0,0,0,2028, + 1995,1,0,0,0,2028,2001,1,0,0,0,2028,2007,1,0,0,0,2028,2009,1,0,0, + 0,2029,2032,1,0,0,0,2030,2028,1,0,0,0,2030,2031,1,0,0,0,2031,109, + 1,0,0,0,2032,2030,1,0,0,0,2033,2052,3,108,54,0,2034,2037,5,2,0,0, + 2035,2038,3,108,54,0,2036,2038,3,112,56,0,2037,2035,1,0,0,0,2037, + 2036,1,0,0,0,2038,2046,1,0,0,0,2039,2042,5,6,0,0,2040,2043,3,108, + 54,0,2041,2043,3,112,56,0,2042,2040,1,0,0,0,2042,2041,1,0,0,0,2043, + 2045,1,0,0,0,2044,2039,1,0,0,0,2045,2048,1,0,0,0,2046,2044,1,0,0, + 0,2046,2047,1,0,0,0,2047,2049,1,0,0,0,2048,2046,1,0,0,0,2049,2050, + 5,3,0,0,2050,2052,1,0,0,0,2051,2033,1,0,0,0,2051,2034,1,0,0,0,2052, + 111,1,0,0,0,2053,2068,3,818,409,0,2054,2069,3,54,27,0,2055,2069, + 3,196,98,0,2056,2069,5,9,0,0,2057,2058,5,2,0,0,2058,2063,3,52,26, + 0,2059,2060,5,6,0,0,2060,2062,3,52,26,0,2061,2059,1,0,0,0,2062,2065, + 1,0,0,0,2063,2061,1,0,0,0,2063,2064,1,0,0,0,2064,2066,1,0,0,0,2065, + 2063,1,0,0,0,2066,2067,5,3,0,0,2067,2069,1,0,0,0,2068,2054,1,0,0, + 0,2068,2055,1,0,0,0,2068,2056,1,0,0,0,2068,2057,1,0,0,0,2068,2069, + 1,0,0,0,2069,113,1,0,0,0,2070,2072,5,46,0,0,2071,2073,3,116,58,0, + 2072,2071,1,0,0,0,2072,2073,1,0,0,0,2073,2074,1,0,0,0,2074,2076, + 5,92,0,0,2075,2077,3,288,144,0,2076,2075,1,0,0,0,2076,2077,1,0,0, + 0,2077,2078,1,0,0,0,2078,2144,3,766,383,0,2079,2081,5,2,0,0,2080, + 2082,3,120,60,0,2081,2080,1,0,0,0,2081,2082,1,0,0,0,2082,2083,1, + 0,0,0,2083,2085,5,3,0,0,2084,2086,3,158,79,0,2085,2084,1,0,0,0,2085, + 2086,1,0,0,0,2086,2088,1,0,0,0,2087,2089,3,160,80,0,2088,2087,1, + 0,0,0,2088,2089,1,0,0,0,2089,2091,1,0,0,0,2090,2092,3,164,82,0,2091, + 2090,1,0,0,0,2091,2092,1,0,0,0,2092,2094,1,0,0,0,2093,2095,3,166, + 83,0,2094,2093,1,0,0,0,2094,2095,1,0,0,0,2095,2097,1,0,0,0,2096, + 2098,3,168,84,0,2097,2096,1,0,0,0,2097,2098,1,0,0,0,2098,2100,1, + 0,0,0,2099,2101,3,170,85,0,2100,2099,1,0,0,0,2100,2101,1,0,0,0,2101, + 2145,1,0,0,0,2102,2103,5,275,0,0,2103,2105,3,310,155,0,2104,2106, + 3,118,59,0,2105,2104,1,0,0,0,2105,2106,1,0,0,0,2106,2108,1,0,0,0, + 2107,2109,3,160,80,0,2108,2107,1,0,0,0,2108,2109,1,0,0,0,2109,2111, + 1,0,0,0,2110,2112,3,164,82,0,2111,2110,1,0,0,0,2111,2112,1,0,0,0, + 2112,2114,1,0,0,0,2113,2115,3,166,83,0,2114,2113,1,0,0,0,2114,2115, + 1,0,0,0,2115,2117,1,0,0,0,2116,2118,3,168,84,0,2117,2116,1,0,0,0, + 2117,2118,1,0,0,0,2118,2120,1,0,0,0,2119,2121,3,170,85,0,2120,2119, + 1,0,0,0,2120,2121,1,0,0,0,2121,2145,1,0,0,0,2122,2123,5,285,0,0, + 2123,2124,5,275,0,0,2124,2126,3,774,387,0,2125,2127,3,118,59,0,2126, + 2125,1,0,0,0,2126,2127,1,0,0,0,2127,2128,1,0,0,0,2128,2130,3,98, + 49,0,2129,2131,3,160,80,0,2130,2129,1,0,0,0,2130,2131,1,0,0,0,2131, + 2133,1,0,0,0,2132,2134,3,164,82,0,2133,2132,1,0,0,0,2133,2134,1, + 0,0,0,2134,2136,1,0,0,0,2135,2137,3,166,83,0,2136,2135,1,0,0,0,2136, + 2137,1,0,0,0,2137,2139,1,0,0,0,2138,2140,3,168,84,0,2139,2138,1, + 0,0,0,2139,2140,1,0,0,0,2140,2142,1,0,0,0,2141,2143,3,170,85,0,2142, + 2141,1,0,0,0,2142,2143,1,0,0,0,2143,2145,1,0,0,0,2144,2079,1,0,0, + 0,2144,2102,1,0,0,0,2144,2122,1,0,0,0,2145,115,1,0,0,0,2146,2152, + 5,354,0,0,2147,2152,5,352,0,0,2148,2149,7,21,0,0,2149,2152,7,22, + 0,0,2150,2152,5,367,0,0,2151,2146,1,0,0,0,2151,2147,1,0,0,0,2151, + 2148,1,0,0,0,2151,2150,1,0,0,0,2152,117,1,0,0,0,2153,2154,5,2,0, + 0,2154,2159,3,124,62,0,2155,2156,5,6,0,0,2156,2158,3,124,62,0,2157, + 2155,1,0,0,0,2158,2161,1,0,0,0,2159,2157,1,0,0,0,2159,2160,1,0,0, + 0,2160,2162,1,0,0,0,2161,2159,1,0,0,0,2162,2163,5,3,0,0,2163,119, + 1,0,0,0,2164,2169,3,122,61,0,2165,2166,5,6,0,0,2166,2168,3,122,61, + 0,2167,2165,1,0,0,0,2168,2171,1,0,0,0,2169,2167,1,0,0,0,2169,2170, + 1,0,0,0,2170,121,1,0,0,0,2171,2169,1,0,0,0,2172,2173,5,45,0,0,2173, + 2175,3,812,406,0,2174,2172,1,0,0,0,2174,2175,1,0,0,0,2175,2176,1, + 0,0,0,2176,2188,3,136,68,0,2177,2188,3,126,63,0,2178,2179,5,120, + 0,0,2179,2184,3,774,387,0,2180,2181,7,23,0,0,2181,2183,3,134,67, + 0,2182,2180,1,0,0,0,2183,2186,1,0,0,0,2184,2182,1,0,0,0,2184,2185, + 1,0,0,0,2185,2188,1,0,0,0,2186,2184,1,0,0,0,2187,2174,1,0,0,0,2187, + 2177,1,0,0,0,2187,2178,1,0,0,0,2188,123,1,0,0,0,2189,2192,3,796, + 398,0,2190,2191,5,105,0,0,2191,2193,5,280,0,0,2192,2190,1,0,0,0, + 2192,2193,1,0,0,0,2193,2197,1,0,0,0,2194,2196,3,128,64,0,2195,2194, + 1,0,0,0,2196,2199,1,0,0,0,2197,2195,1,0,0,0,2197,2198,1,0,0,0,2198, + 2206,1,0,0,0,2199,2197,1,0,0,0,2200,2201,5,45,0,0,2201,2203,3,812, + 406,0,2202,2200,1,0,0,0,2202,2203,1,0,0,0,2203,2204,1,0,0,0,2204, + 2206,3,136,68,0,2205,2189,1,0,0,0,2205,2202,1,0,0,0,2206,125,1,0, + 0,0,2207,2208,3,796,398,0,2208,2210,3,646,323,0,2209,2211,3,214, + 107,0,2210,2209,1,0,0,0,2210,2211,1,0,0,0,2211,2221,1,0,0,0,2212, + 2219,5,345,0,0,2213,2220,5,544,0,0,2214,2220,5,205,0,0,2215,2220, + 5,545,0,0,2216,2220,5,546,0,0,2217,2220,5,53,0,0,2218,2220,3,812, + 406,0,2219,2213,1,0,0,0,2219,2214,1,0,0,0,2219,2215,1,0,0,0,2219, + 2216,1,0,0,0,2219,2217,1,0,0,0,2219,2218,1,0,0,0,2220,2222,1,0,0, + 0,2221,2212,1,0,0,0,2221,2222,1,0,0,0,2222,2225,1,0,0,0,2223,2224, + 5,543,0,0,2224,2226,3,812,406,0,2225,2223,1,0,0,0,2225,2226,1,0, + 0,0,2226,2228,1,0,0,0,2227,2229,3,90,45,0,2228,2227,1,0,0,0,2228, + 2229,1,0,0,0,2229,2232,1,0,0,0,2230,2231,5,105,0,0,2231,2233,5,280, + 0,0,2232,2230,1,0,0,0,2232,2233,1,0,0,0,2233,2237,1,0,0,0,2234,2236, + 3,128,64,0,2235,2234,1,0,0,0,2236,2239,1,0,0,0,2237,2235,1,0,0,0, + 2237,2238,1,0,0,0,2238,127,1,0,0,0,2239,2237,1,0,0,0,2240,2241,5, + 45,0,0,2241,2243,3,812,406,0,2242,2240,1,0,0,0,2242,2243,1,0,0,0, + 2243,2244,1,0,0,0,2244,2249,3,130,65,0,2245,2247,5,77,0,0,2246,2245, + 1,0,0,0,2246,2247,1,0,0,0,2247,2248,1,0,0,0,2248,2250,5,54,0,0,2249, + 2246,1,0,0,0,2249,2250,1,0,0,0,2250,2253,1,0,0,0,2251,2252,5,69, + 0,0,2252,2254,7,9,0,0,2253,2251,1,0,0,0,2253,2254,1,0,0,0,2254,129, + 1,0,0,0,2255,2257,5,77,0,0,2256,2255,1,0,0,0,2256,2257,1,0,0,0,2257, + 2258,1,0,0,0,2258,2336,5,78,0,0,2259,2261,5,98,0,0,2260,2262,3,394, + 197,0,2261,2260,1,0,0,0,2261,2262,1,0,0,0,2262,2264,1,0,0,0,2263, + 2265,3,172,86,0,2264,2263,1,0,0,0,2264,2265,1,0,0,0,2265,2336,1, + 0,0,0,2266,2272,5,98,0,0,2267,2269,5,273,0,0,2268,2270,5,77,0,0, + 2269,2268,1,0,0,0,2269,2270,1,0,0,0,2270,2271,1,0,0,0,2271,2273, + 5,56,0,0,2272,2267,1,0,0,0,2272,2273,1,0,0,0,2273,2276,1,0,0,0,2274, + 2275,5,441,0,0,2275,2277,3,354,177,0,2276,2274,1,0,0,0,2276,2277, + 1,0,0,0,2277,2279,1,0,0,0,2278,2280,3,566,283,0,2279,2278,1,0,0, + 0,2279,2280,1,0,0,0,2280,2282,1,0,0,0,2281,2283,3,172,86,0,2282, + 2281,1,0,0,0,2282,2283,1,0,0,0,2283,2336,1,0,0,0,2284,2285,5,85, + 0,0,2285,2287,5,245,0,0,2286,2288,3,394,197,0,2287,2286,1,0,0,0, + 2287,2288,1,0,0,0,2288,2290,1,0,0,0,2289,2291,3,172,86,0,2290,2289, + 1,0,0,0,2290,2291,1,0,0,0,2291,2336,1,0,0,0,2292,2293,5,42,0,0,2293, + 2294,5,2,0,0,2294,2295,3,668,334,0,2295,2298,5,3,0,0,2296,2297,5, + 269,0,0,2297,2299,5,228,0,0,2298,2296,1,0,0,0,2298,2299,1,0,0,0, + 2299,2336,1,0,0,0,2300,2301,5,53,0,0,2301,2336,3,676,338,0,2302, + 2303,5,438,0,0,2303,2304,3,132,66,0,2304,2321,5,36,0,0,2305,2314, + 5,219,0,0,2306,2308,5,2,0,0,2307,2309,3,194,97,0,2308,2307,1,0,0, + 0,2309,2310,1,0,0,0,2310,2308,1,0,0,0,2310,2311,1,0,0,0,2311,2312, + 1,0,0,0,2312,2313,5,3,0,0,2313,2315,1,0,0,0,2314,2306,1,0,0,0,2314, + 2315,1,0,0,0,2315,2322,1,0,0,0,2316,2317,5,2,0,0,2317,2318,3,668, + 334,0,2318,2319,5,3,0,0,2319,2320,5,440,0,0,2320,2322,1,0,0,0,2321, + 2305,1,0,0,0,2321,2316,1,0,0,0,2322,2336,1,0,0,0,2323,2324,5,86, + 0,0,2324,2326,3,774,387,0,2325,2327,3,138,69,0,2326,2325,1,0,0,0, + 2326,2327,1,0,0,0,2327,2329,1,0,0,0,2328,2330,3,146,73,0,2329,2328, + 1,0,0,0,2329,2330,1,0,0,0,2330,2332,1,0,0,0,2331,2333,3,150,75,0, + 2332,2331,1,0,0,0,2332,2333,1,0,0,0,2333,2336,1,0,0,0,2334,2336, + 3,90,45,0,2335,2256,1,0,0,0,2335,2259,1,0,0,0,2335,2266,1,0,0,0, + 2335,2284,1,0,0,0,2335,2292,1,0,0,0,2335,2300,1,0,0,0,2335,2302, + 1,0,0,0,2335,2323,1,0,0,0,2335,2334,1,0,0,0,2336,131,1,0,0,0,2337, + 2341,5,139,0,0,2338,2339,5,147,0,0,2339,2341,5,53,0,0,2340,2337, + 1,0,0,0,2340,2338,1,0,0,0,2341,133,1,0,0,0,2342,2343,7,24,0,0,2343, + 135,1,0,0,0,2344,2345,5,42,0,0,2345,2346,5,2,0,0,2346,2347,3,668, + 334,0,2347,2351,5,3,0,0,2348,2350,3,266,133,0,2349,2348,1,0,0,0, + 2350,2353,1,0,0,0,2351,2349,1,0,0,0,2351,2352,1,0,0,0,2352,2441, + 1,0,0,0,2353,2351,1,0,0,0,2354,2358,5,98,0,0,2355,2356,5,85,0,0, + 2356,2358,5,245,0,0,2357,2354,1,0,0,0,2357,2355,1,0,0,0,2358,2382, + 1,0,0,0,2359,2361,3,138,69,0,2360,2362,3,144,72,0,2361,2360,1,0, + 0,0,2361,2362,1,0,0,0,2362,2364,1,0,0,0,2363,2365,3,394,197,0,2364, + 2363,1,0,0,0,2364,2365,1,0,0,0,2365,2367,1,0,0,0,2366,2368,3,172, + 86,0,2367,2366,1,0,0,0,2367,2368,1,0,0,0,2368,2372,1,0,0,0,2369, + 2371,3,266,133,0,2370,2369,1,0,0,0,2371,2374,1,0,0,0,2372,2370,1, + 0,0,0,2372,2373,1,0,0,0,2373,2383,1,0,0,0,2374,2372,1,0,0,0,2375, + 2379,3,174,87,0,2376,2378,3,266,133,0,2377,2376,1,0,0,0,2378,2381, + 1,0,0,0,2379,2377,1,0,0,0,2379,2380,1,0,0,0,2380,2383,1,0,0,0,2381, + 2379,1,0,0,0,2382,2359,1,0,0,0,2382,2375,1,0,0,0,2383,2441,1,0,0, + 0,2384,2386,5,199,0,0,2385,2387,3,164,82,0,2386,2385,1,0,0,0,2386, + 2387,1,0,0,0,2387,2388,1,0,0,0,2388,2389,5,2,0,0,2389,2394,3,148, + 74,0,2390,2391,5,6,0,0,2391,2393,3,148,74,0,2392,2390,1,0,0,0,2393, + 2396,1,0,0,0,2394,2392,1,0,0,0,2394,2395,1,0,0,0,2395,2397,1,0,0, + 0,2396,2394,1,0,0,0,2397,2399,5,3,0,0,2398,2400,3,144,72,0,2399, + 2398,1,0,0,0,2399,2400,1,0,0,0,2400,2402,1,0,0,0,2401,2403,3,394, + 197,0,2402,2401,1,0,0,0,2402,2403,1,0,0,0,2403,2405,1,0,0,0,2404, + 2406,3,172,86,0,2405,2404,1,0,0,0,2405,2406,1,0,0,0,2406,2412,1, + 0,0,0,2407,2408,5,103,0,0,2408,2409,5,2,0,0,2409,2410,3,668,334, + 0,2410,2411,5,3,0,0,2411,2413,1,0,0,0,2412,2407,1,0,0,0,2412,2413, + 1,0,0,0,2413,2417,1,0,0,0,2414,2416,3,266,133,0,2415,2414,1,0,0, + 0,2416,2419,1,0,0,0,2417,2415,1,0,0,0,2417,2418,1,0,0,0,2418,2441, + 1,0,0,0,2419,2417,1,0,0,0,2420,2421,5,63,0,0,2421,2422,5,245,0,0, + 2422,2423,3,138,69,0,2423,2424,5,86,0,0,2424,2426,3,774,387,0,2425, + 2427,3,138,69,0,2426,2425,1,0,0,0,2426,2427,1,0,0,0,2427,2429,1, + 0,0,0,2428,2430,3,146,73,0,2429,2428,1,0,0,0,2429,2430,1,0,0,0,2430, + 2432,1,0,0,0,2431,2433,3,150,75,0,2432,2431,1,0,0,0,2432,2433,1, + 0,0,0,2433,2437,1,0,0,0,2434,2436,3,266,133,0,2435,2434,1,0,0,0, + 2436,2439,1,0,0,0,2437,2435,1,0,0,0,2437,2438,1,0,0,0,2438,2441, + 1,0,0,0,2439,2437,1,0,0,0,2440,2344,1,0,0,0,2440,2357,1,0,0,0,2440, + 2384,1,0,0,0,2440,2420,1,0,0,0,2441,137,1,0,0,0,2442,2443,5,2,0, + 0,2443,2444,3,142,71,0,2444,2445,5,3,0,0,2445,139,1,0,0,0,2446,2447, + 5,2,0,0,2447,2452,3,796,398,0,2448,2449,5,6,0,0,2449,2451,3,796, + 398,0,2450,2448,1,0,0,0,2451,2454,1,0,0,0,2452,2450,1,0,0,0,2452, + 2453,1,0,0,0,2453,2455,1,0,0,0,2454,2452,1,0,0,0,2455,2456,5,3,0, + 0,2456,141,1,0,0,0,2457,2462,3,794,397,0,2458,2459,5,6,0,0,2459, + 2461,3,794,397,0,2460,2458,1,0,0,0,2461,2464,1,0,0,0,2462,2460,1, + 0,0,0,2462,2463,1,0,0,0,2463,143,1,0,0,0,2464,2462,1,0,0,0,2465, + 2466,5,441,0,0,2466,2467,3,138,69,0,2467,145,1,0,0,0,2468,2469,5, + 258,0,0,2469,2470,7,25,0,0,2470,147,1,0,0,0,2471,2472,3,356,178, + 0,2472,2479,5,105,0,0,2473,2480,3,408,204,0,2474,2475,5,278,0,0, + 2475,2476,5,2,0,0,2476,2477,3,408,204,0,2477,2478,5,3,0,0,2478,2480, + 1,0,0,0,2479,2473,1,0,0,0,2479,2474,1,0,0,0,2480,149,1,0,0,0,2481, + 2483,3,152,76,0,2482,2484,3,154,77,0,2483,2482,1,0,0,0,2483,2484, + 1,0,0,0,2484,2490,1,0,0,0,2485,2487,3,154,77,0,2486,2488,3,152,76, + 0,2487,2486,1,0,0,0,2487,2488,1,0,0,0,2488,2490,1,0,0,0,2489,2481, + 1,0,0,0,2489,2485,1,0,0,0,2490,151,1,0,0,0,2491,2492,5,80,0,0,2492, + 2493,5,369,0,0,2493,2494,3,156,78,0,2494,153,1,0,0,0,2495,2496,5, + 80,0,0,2496,2497,5,182,0,0,2497,2498,3,156,78,0,2498,155,1,0,0,0, + 2499,2500,5,269,0,0,2500,2509,5,132,0,0,2501,2509,5,315,0,0,2502, + 2509,5,150,0,0,2503,2504,5,333,0,0,2504,2506,7,26,0,0,2505,2507, + 3,142,71,0,2506,2505,1,0,0,0,2506,2507,1,0,0,0,2507,2509,1,0,0,0, + 2508,2499,1,0,0,0,2508,2501,1,0,0,0,2508,2502,1,0,0,0,2508,2503, + 1,0,0,0,2509,157,1,0,0,0,2510,2511,5,238,0,0,2511,2512,5,2,0,0,2512, + 2513,3,754,377,0,2513,2514,5,3,0,0,2514,159,1,0,0,0,2515,2516,5, + 285,0,0,2516,2517,5,147,0,0,2517,2518,3,812,406,0,2518,2519,5,2, + 0,0,2519,2524,3,162,81,0,2520,2521,5,6,0,0,2521,2523,3,162,81,0, + 2522,2520,1,0,0,0,2523,2526,1,0,0,0,2524,2522,1,0,0,0,2524,2525, + 1,0,0,0,2525,2527,1,0,0,0,2526,2524,1,0,0,0,2527,2528,5,3,0,0,2528, + 161,1,0,0,0,2529,2536,3,794,397,0,2530,2536,3,682,341,0,2531,2532, + 5,2,0,0,2532,2533,3,668,334,0,2533,2534,5,3,0,0,2534,2536,1,0,0, + 0,2535,2529,1,0,0,0,2535,2530,1,0,0,0,2535,2531,1,0,0,0,2536,2538, + 1,0,0,0,2537,2539,3,90,45,0,2538,2537,1,0,0,0,2538,2539,1,0,0,0, + 2539,2541,1,0,0,0,2540,2542,3,310,155,0,2541,2540,1,0,0,0,2541,2542, + 1,0,0,0,2542,163,1,0,0,0,2543,2544,5,100,0,0,2544,2545,3,812,406, + 0,2545,165,1,0,0,0,2546,2547,5,105,0,0,2547,2551,3,92,46,0,2548, + 2549,7,27,0,0,2549,2551,5,277,0,0,2550,2546,1,0,0,0,2550,2548,1, + 0,0,0,2551,167,1,0,0,0,2552,2553,5,80,0,0,2553,2559,5,161,0,0,2554, + 2560,5,191,0,0,2555,2556,5,182,0,0,2556,2560,5,320,0,0,2557,2558, + 5,292,0,0,2558,2560,5,320,0,0,2559,2554,1,0,0,0,2559,2555,1,0,0, + 0,2559,2557,1,0,0,0,2560,169,1,0,0,0,2561,2562,5,351,0,0,2562,2563, + 3,764,382,0,2563,171,1,0,0,0,2564,2565,5,100,0,0,2565,2566,5,226, + 0,0,2566,2567,3,170,85,0,2567,173,1,0,0,0,2568,2569,5,100,0,0,2569, + 2570,5,226,0,0,2570,2571,3,812,406,0,2571,175,1,0,0,0,2572,2573, + 5,46,0,0,2573,2578,5,342,0,0,2574,2576,3,288,144,0,2575,2574,1,0, + 0,0,2575,2576,1,0,0,0,2576,2577,1,0,0,0,2577,2579,3,310,155,0,2578, + 2575,1,0,0,0,2578,2579,1,0,0,0,2579,2581,1,0,0,0,2580,2582,3,138, + 69,0,2581,2580,1,0,0,0,2581,2582,1,0,0,0,2582,2583,1,0,0,0,2583, + 2593,5,80,0,0,2584,2589,3,726,363,0,2585,2586,5,6,0,0,2586,2588, + 3,726,363,0,2587,2585,1,0,0,0,2588,2591,1,0,0,0,2589,2587,1,0,0, + 0,2589,2590,1,0,0,0,2590,2594,1,0,0,0,2591,2589,1,0,0,0,2592,2594, + 3,724,362,0,2593,2584,1,0,0,0,2593,2592,1,0,0,0,2594,2595,1,0,0, + 0,2595,2596,3,604,302,0,2596,177,1,0,0,0,2597,2598,5,138,0,0,2598, + 2600,5,342,0,0,2599,2601,3,416,208,0,2600,2599,1,0,0,0,2600,2601, + 1,0,0,0,2601,2602,1,0,0,0,2602,2603,3,310,155,0,2603,2604,5,333, + 0,0,2604,2605,5,342,0,0,2605,2606,3,806,403,0,2606,179,1,0,0,0,2607, + 2609,5,46,0,0,2608,2610,3,116,58,0,2609,2608,1,0,0,0,2609,2610,1, + 0,0,0,2610,2611,1,0,0,0,2611,2613,5,92,0,0,2612,2614,3,288,144,0, + 2613,2612,1,0,0,0,2613,2614,1,0,0,0,2614,2615,1,0,0,0,2615,2616, + 3,182,91,0,2616,2617,5,36,0,0,2617,2619,3,554,277,0,2618,2620,3, + 184,92,0,2619,2618,1,0,0,0,2619,2620,1,0,0,0,2620,181,1,0,0,0,2621, + 2623,3,766,383,0,2622,2624,3,140,70,0,2623,2622,1,0,0,0,2623,2624, + 1,0,0,0,2624,2626,1,0,0,0,2625,2627,3,164,82,0,2626,2625,1,0,0,0, + 2626,2627,1,0,0,0,2627,2629,1,0,0,0,2628,2630,3,166,83,0,2629,2628, + 1,0,0,0,2629,2630,1,0,0,0,2630,2632,1,0,0,0,2631,2633,3,168,84,0, + 2632,2631,1,0,0,0,2632,2633,1,0,0,0,2633,2635,1,0,0,0,2634,2636, + 3,170,85,0,2635,2634,1,0,0,0,2635,2636,1,0,0,0,2636,183,1,0,0,0, + 2637,2641,5,105,0,0,2638,2642,5,174,0,0,2639,2640,5,269,0,0,2640, + 2642,5,174,0,0,2641,2638,1,0,0,0,2641,2639,1,0,0,0,2642,185,1,0, + 0,0,2643,2645,5,46,0,0,2644,2646,5,367,0,0,2645,2644,1,0,0,0,2645, + 2646,1,0,0,0,2646,2647,1,0,0,0,2647,2648,5,259,0,0,2648,2650,5,376, + 0,0,2649,2651,3,288,144,0,2650,2649,1,0,0,0,2650,2651,1,0,0,0,2651, + 2652,1,0,0,0,2652,2654,3,770,385,0,2653,2655,3,140,70,0,2654,2653, + 1,0,0,0,2654,2655,1,0,0,0,2655,2657,1,0,0,0,2656,2658,3,164,82,0, + 2657,2656,1,0,0,0,2657,2658,1,0,0,0,2658,2660,1,0,0,0,2659,2661, + 3,94,47,0,2660,2659,1,0,0,0,2660,2661,1,0,0,0,2661,2663,1,0,0,0, + 2662,2664,3,170,85,0,2663,2662,1,0,0,0,2663,2664,1,0,0,0,2664,2665, + 1,0,0,0,2665,2666,5,36,0,0,2666,2668,3,554,277,0,2667,2669,3,184, + 92,0,2668,2667,1,0,0,0,2668,2669,1,0,0,0,2669,187,1,0,0,0,2670,2671, + 5,305,0,0,2671,2672,5,259,0,0,2672,2674,5,376,0,0,2673,2675,5,109, + 0,0,2674,2673,1,0,0,0,2674,2675,1,0,0,0,2675,2676,1,0,0,0,2676,2678, + 3,772,386,0,2677,2679,3,184,92,0,2678,2677,1,0,0,0,2678,2679,1,0, + 0,0,2679,189,1,0,0,0,2680,2682,5,46,0,0,2681,2683,3,116,58,0,2682, + 2681,1,0,0,0,2682,2683,1,0,0,0,2683,2684,1,0,0,0,2684,2686,5,328, + 0,0,2685,2687,3,288,144,0,2686,2685,1,0,0,0,2686,2687,1,0,0,0,2687, + 2688,1,0,0,0,2688,2694,3,774,387,0,2689,2691,3,194,97,0,2690,2689, + 1,0,0,0,2691,2692,1,0,0,0,2692,2690,1,0,0,0,2692,2693,1,0,0,0,2693, + 2695,1,0,0,0,2694,2690,1,0,0,0,2694,2695,1,0,0,0,2695,191,1,0,0, + 0,2696,2697,5,138,0,0,2697,2699,5,328,0,0,2698,2700,3,416,208,0, + 2699,2698,1,0,0,0,2699,2700,1,0,0,0,2700,2701,1,0,0,0,2701,2703, + 3,774,387,0,2702,2704,3,194,97,0,2703,2702,1,0,0,0,2704,2705,1,0, + 0,0,2705,2703,1,0,0,0,2705,2706,1,0,0,0,2706,193,1,0,0,0,2707,2708, + 5,36,0,0,2708,2741,3,648,324,0,2709,2711,5,148,0,0,2710,2712,3,196, + 98,0,2711,2710,1,0,0,0,2711,2712,1,0,0,0,2712,2741,1,0,0,0,2713, + 2715,5,225,0,0,2714,2716,5,147,0,0,2715,2714,1,0,0,0,2715,2716,1, + 0,0,0,2716,2717,1,0,0,0,2717,2741,3,196,98,0,2718,2719,7,28,0,0, + 2719,2741,3,196,98,0,2720,2721,5,269,0,0,2721,2741,7,29,0,0,2722, + 2723,5,281,0,0,2723,2724,5,147,0,0,2724,2741,3,794,397,0,2725,2726, + 5,328,0,0,2726,2727,5,266,0,0,2727,2741,3,310,155,0,2728,2730,5, + 340,0,0,2729,2731,5,105,0,0,2730,2729,1,0,0,0,2730,2731,1,0,0,0, + 2731,2732,1,0,0,0,2732,2741,3,196,98,0,2733,2735,5,314,0,0,2734, + 2736,5,105,0,0,2735,2734,1,0,0,0,2735,2736,1,0,0,0,2736,2738,1,0, + 0,0,2737,2739,3,196,98,0,2738,2737,1,0,0,0,2738,2739,1,0,0,0,2739, + 2741,1,0,0,0,2740,2707,1,0,0,0,2740,2709,1,0,0,0,2740,2713,1,0,0, + 0,2740,2718,1,0,0,0,2740,2720,1,0,0,0,2740,2722,1,0,0,0,2740,2725, + 1,0,0,0,2740,2728,1,0,0,0,2740,2733,1,0,0,0,2741,195,1,0,0,0,2742, + 2744,7,30,0,0,2743,2742,1,0,0,0,2743,2744,1,0,0,0,2744,2745,1,0, + 0,0,2745,2748,5,576,0,0,2746,2748,3,806,403,0,2747,2743,1,0,0,0, + 2747,2746,1,0,0,0,2748,197,1,0,0,0,2749,2751,5,46,0,0,2750,2752, + 3,360,180,0,2751,2750,1,0,0,0,2751,2752,1,0,0,0,2752,2754,1,0,0, + 0,2753,2755,5,359,0,0,2754,2753,1,0,0,0,2754,2755,1,0,0,0,2755,2757, + 1,0,0,0,2756,2758,5,295,0,0,2757,2756,1,0,0,0,2757,2758,1,0,0,0, + 2758,2759,1,0,0,0,2759,2760,5,247,0,0,2760,2773,3,812,406,0,2761, + 2762,5,215,0,0,2762,2765,3,310,155,0,2763,2764,5,239,0,0,2764,2766, + 3,310,155,0,2765,2763,1,0,0,0,2765,2766,1,0,0,0,2766,2771,1,0,0, + 0,2767,2768,5,373,0,0,2768,2772,3,310,155,0,2769,2770,5,269,0,0, + 2770,2772,5,373,0,0,2771,2767,1,0,0,0,2771,2769,1,0,0,0,2771,2772, + 1,0,0,0,2772,2774,1,0,0,0,2773,2761,1,0,0,0,2773,2774,1,0,0,0,2774, + 199,1,0,0,0,2775,2776,5,46,0,0,2776,2779,3,170,85,0,2777,2778,5, + 282,0,0,2778,2780,3,808,404,0,2779,2777,1,0,0,0,2779,2780,1,0,0, + 0,2780,2781,1,0,0,0,2781,2782,5,255,0,0,2782,2784,3,802,401,0,2783, + 2785,3,94,47,0,2784,2783,1,0,0,0,2784,2785,1,0,0,0,2785,201,1,0, + 0,0,2786,2787,5,46,0,0,2787,2789,5,204,0,0,2788,2790,3,288,144,0, + 2789,2788,1,0,0,0,2789,2790,1,0,0,0,2790,2791,1,0,0,0,2791,2793, + 3,812,406,0,2792,2794,5,105,0,0,2793,2792,1,0,0,0,2793,2794,1,0, + 0,0,2794,2802,1,0,0,0,2795,2796,5,323,0,0,2796,2801,3,784,392,0, + 2797,2798,7,31,0,0,2798,2801,3,58,29,0,2799,2801,5,150,0,0,2800, + 2795,1,0,0,0,2800,2797,1,0,0,0,2800,2799,1,0,0,0,2801,2804,1,0,0, + 0,2802,2800,1,0,0,0,2802,2803,1,0,0,0,2803,203,1,0,0,0,2804,2802, + 1,0,0,0,2805,2806,5,138,0,0,2806,2807,5,204,0,0,2807,2808,3,812, + 406,0,2808,2813,5,369,0,0,2809,2810,5,94,0,0,2810,2812,3,58,29,0, + 2811,2809,1,0,0,0,2812,2815,1,0,0,0,2813,2811,1,0,0,0,2813,2814, + 1,0,0,0,2814,205,1,0,0,0,2815,2813,1,0,0,0,2816,2817,5,138,0,0,2817, + 2818,5,204,0,0,2818,2819,3,812,406,0,2819,2852,7,6,0,0,2820,2821, + 5,443,0,0,2821,2822,5,62,0,0,2822,2823,3,646,323,0,2823,2824,5,247, + 0,0,2824,2825,3,812,406,0,2825,2853,1,0,0,0,2826,2827,5,442,0,0, + 2827,2853,3,368,184,0,2828,2829,5,296,0,0,2829,2853,3,372,186,0, + 2830,2831,5,278,0,0,2831,2832,7,32,0,0,2832,2833,3,310,155,0,2833, + 2834,3,164,82,0,2834,2853,1,0,0,0,2835,2836,5,278,0,0,2836,2853, + 3,410,205,0,2837,2838,5,211,0,0,2838,2853,3,376,188,0,2839,2840, + 7,33,0,0,2840,2853,3,646,323,0,2841,2842,5,41,0,0,2842,2843,5,2, + 0,0,2843,2844,3,646,323,0,2844,2845,5,36,0,0,2845,2846,3,646,323, + 0,2846,2847,5,3,0,0,2847,2853,1,0,0,0,2848,2849,5,136,0,0,2849,2853, + 3,388,194,0,2850,2853,3,306,153,0,2851,2853,3,304,152,0,2852,2820, + 1,0,0,0,2852,2826,1,0,0,0,2852,2828,1,0,0,0,2852,2830,1,0,0,0,2852, + 2835,1,0,0,0,2852,2837,1,0,0,0,2852,2839,1,0,0,0,2852,2841,1,0,0, + 0,2852,2848,1,0,0,0,2852,2850,1,0,0,0,2852,2851,1,0,0,0,2853,207, + 1,0,0,0,2854,2855,5,46,0,0,2855,2856,5,63,0,0,2856,2857,5,174,0, + 0,2857,2858,5,381,0,0,2858,2864,3,812,406,0,2859,2861,3,210,105, + 0,2860,2859,1,0,0,0,2861,2862,1,0,0,0,2862,2860,1,0,0,0,2862,2863, + 1,0,0,0,2863,2865,1,0,0,0,2864,2860,1,0,0,0,2864,2865,1,0,0,0,2865, + 2867,1,0,0,0,2866,2868,3,214,107,0,2867,2866,1,0,0,0,2867,2868,1, + 0,0,0,2868,209,1,0,0,0,2869,2871,7,34,0,0,2870,2872,3,310,155,0, + 2871,2870,1,0,0,0,2871,2872,1,0,0,0,2872,2876,1,0,0,0,2873,2874, + 5,269,0,0,2874,2876,7,34,0,0,2875,2869,1,0,0,0,2875,2873,1,0,0,0, + 2876,211,1,0,0,0,2877,2878,5,138,0,0,2878,2879,5,63,0,0,2879,2880, + 5,174,0,0,2880,2881,5,381,0,0,2881,2895,3,812,406,0,2882,2884,3, + 210,105,0,2883,2882,1,0,0,0,2884,2885,1,0,0,0,2885,2883,1,0,0,0, + 2885,2886,1,0,0,0,2886,2888,1,0,0,0,2887,2883,1,0,0,0,2887,2888, + 1,0,0,0,2888,2889,1,0,0,0,2889,2896,3,216,108,0,2890,2892,3,210, + 105,0,2891,2890,1,0,0,0,2892,2893,1,0,0,0,2893,2891,1,0,0,0,2893, + 2894,1,0,0,0,2894,2896,1,0,0,0,2895,2887,1,0,0,0,2895,2891,1,0,0, + 0,2896,213,1,0,0,0,2897,2898,5,280,0,0,2898,2899,5,2,0,0,2899,2904, + 3,220,110,0,2900,2901,5,6,0,0,2901,2903,3,220,110,0,2902,2900,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,2908,5,3,0,0,2908,215,1,0,0, + 0,2909,2910,5,280,0,0,2910,2911,5,2,0,0,2911,2916,3,218,109,0,2912, + 2913,5,6,0,0,2913,2915,3,218,109,0,2914,2912,1,0,0,0,2915,2918,1, + 0,0,0,2916,2914,1,0,0,0,2916,2917,1,0,0,0,2917,2919,1,0,0,0,2918, + 2916,1,0,0,0,2919,2920,5,3,0,0,2920,217,1,0,0,0,2921,2922,7,35,0, + 0,2922,2923,3,220,110,0,2923,219,1,0,0,0,2924,2925,3,818,409,0,2925, + 2926,3,802,401,0,2926,221,1,0,0,0,2927,2928,5,46,0,0,2928,2930,5, + 331,0,0,2929,2931,3,288,144,0,2930,2929,1,0,0,0,2930,2931,1,0,0, + 0,2931,2932,1,0,0,0,2932,2935,3,812,406,0,2933,2934,5,360,0,0,2934, + 2936,3,802,401,0,2935,2933,1,0,0,0,2935,2936,1,0,0,0,2936,2938,1, + 0,0,0,2937,2939,3,224,112,0,2938,2937,1,0,0,0,2938,2939,1,0,0,0, + 2939,2940,1,0,0,0,2940,2941,5,63,0,0,2941,2942,5,174,0,0,2942,2943, + 5,381,0,0,2943,2945,3,812,406,0,2944,2946,3,214,107,0,2945,2944, + 1,0,0,0,2945,2946,1,0,0,0,2946,223,1,0,0,0,2947,2950,5,375,0,0,2948, + 2951,3,802,401,0,2949,2951,5,78,0,0,2950,2948,1,0,0,0,2950,2949, + 1,0,0,0,2951,225,1,0,0,0,2952,2953,5,138,0,0,2953,2954,5,331,0,0, + 2954,2960,3,812,406,0,2955,2961,3,216,108,0,2956,2958,3,224,112, + 0,2957,2959,3,216,108,0,2958,2957,1,0,0,0,2958,2959,1,0,0,0,2959, + 2961,1,0,0,0,2960,2955,1,0,0,0,2960,2956,1,0,0,0,2961,227,1,0,0, + 0,2962,2963,5,46,0,0,2963,2964,5,63,0,0,2964,2966,5,92,0,0,2965, + 2967,3,288,144,0,2966,2965,1,0,0,0,2966,2967,1,0,0,0,2967,2968,1, + 0,0,0,2968,2969,3,766,383,0,2969,2971,5,2,0,0,2970,2972,3,120,60, + 0,2971,2970,1,0,0,0,2971,2972,1,0,0,0,2972,2973,1,0,0,0,2973,2975, + 5,3,0,0,2974,2976,3,158,79,0,2975,2974,1,0,0,0,2975,2976,1,0,0,0, + 2976,2977,1,0,0,0,2977,2978,5,331,0,0,2978,2980,3,812,406,0,2979, + 2981,3,214,107,0,2980,2979,1,0,0,0,2980,2981,1,0,0,0,2981,3002,1, + 0,0,0,2982,2983,5,46,0,0,2983,2984,5,63,0,0,2984,2986,5,92,0,0,2985, + 2987,3,288,144,0,2986,2985,1,0,0,0,2986,2987,1,0,0,0,2987,2988,1, + 0,0,0,2988,2989,3,766,383,0,2989,2990,5,285,0,0,2990,2991,5,275, + 0,0,2991,2993,3,768,384,0,2992,2994,3,118,59,0,2993,2992,1,0,0,0, + 2993,2994,1,0,0,0,2994,2995,1,0,0,0,2995,2996,3,98,49,0,2996,2997, + 5,331,0,0,2997,2999,3,812,406,0,2998,3000,3,214,107,0,2999,2998, + 1,0,0,0,2999,3000,1,0,0,0,3000,3002,1,0,0,0,3001,2962,1,0,0,0,3001, + 2982,1,0,0,0,3002,229,1,0,0,0,3003,3004,5,444,0,0,3004,3005,5,63, + 0,0,3005,3006,5,323,0,0,3006,3016,3,784,392,0,3007,3008,5,74,0,0, + 3008,3011,5,94,0,0,3009,3011,5,59,0,0,3010,3007,1,0,0,0,3010,3009, + 1,0,0,0,3011,3012,1,0,0,0,3012,3013,5,2,0,0,3013,3014,3,622,311, + 0,3014,3015,5,3,0,0,3015,3017,1,0,0,0,3016,3010,1,0,0,0,3016,3017, + 1,0,0,0,3017,3018,1,0,0,0,3018,3019,5,64,0,0,3019,3020,5,331,0,0, + 3020,3021,3,812,406,0,3021,3022,5,71,0,0,3022,3024,3,812,406,0,3023, + 3025,3,214,107,0,3024,3023,1,0,0,0,3024,3025,1,0,0,0,3025,231,1, + 0,0,0,3026,3027,5,46,0,0,3027,3028,5,99,0,0,3028,3030,5,257,0,0, + 3029,3031,3,288,144,0,3030,3029,1,0,0,0,3030,3031,1,0,0,0,3031,3032, + 1,0,0,0,3032,3035,5,62,0,0,3033,3036,3,808,404,0,3034,3036,5,99, + 0,0,3035,3033,1,0,0,0,3035,3034,1,0,0,0,3036,3037,1,0,0,0,3037,3038, + 5,331,0,0,3038,3040,3,812,406,0,3039,3041,3,214,107,0,3040,3039, + 1,0,0,0,3040,3041,1,0,0,0,3041,233,1,0,0,0,3042,3043,5,138,0,0,3043, + 3044,5,99,0,0,3044,3045,5,257,0,0,3045,3048,5,62,0,0,3046,3049,3, + 808,404,0,3047,3049,5,99,0,0,3048,3046,1,0,0,0,3048,3047,1,0,0,0, + 3049,3050,1,0,0,0,3050,3051,5,331,0,0,3051,3052,3,812,406,0,3052, + 3053,3,216,108,0,3053,235,1,0,0,0,3054,3055,5,46,0,0,3055,3056,5, + 445,0,0,3056,3057,3,812,406,0,3057,3058,5,80,0,0,3058,3065,3,774, + 387,0,3059,3063,5,36,0,0,3060,3064,5,541,0,0,3061,3064,5,542,0,0, + 3062,3064,3,820,410,0,3063,3060,1,0,0,0,3063,3061,1,0,0,0,3063,3062, + 1,0,0,0,3064,3066,1,0,0,0,3065,3059,1,0,0,0,3065,3066,1,0,0,0,3066, + 3069,1,0,0,0,3067,3068,5,62,0,0,3068,3070,7,36,0,0,3069,3067,1,0, + 0,0,3069,3070,1,0,0,0,3070,3073,1,0,0,0,3071,3072,5,94,0,0,3072, + 3074,3,810,405,0,3073,3071,1,0,0,0,3073,3074,1,0,0,0,3074,3076,1, + 0,0,0,3075,3077,3,244,122,0,3076,3075,1,0,0,0,3076,3077,1,0,0,0, + 3077,3079,1,0,0,0,3078,3080,3,246,123,0,3079,3078,1,0,0,0,3079,3080, + 1,0,0,0,3080,237,1,0,0,0,3081,3082,5,138,0,0,3082,3083,5,445,0,0, + 3083,3084,3,812,406,0,3084,3085,5,80,0,0,3085,3088,3,774,387,0,3086, + 3087,5,94,0,0,3087,3089,3,810,405,0,3088,3086,1,0,0,0,3088,3089, + 1,0,0,0,3089,3091,1,0,0,0,3090,3092,3,244,122,0,3091,3090,1,0,0, + 0,3091,3092,1,0,0,0,3092,3094,1,0,0,0,3093,3095,3,246,123,0,3094, + 3093,1,0,0,0,3094,3095,1,0,0,0,3095,239,1,0,0,0,3096,3097,5,138, + 0,0,3097,3098,5,296,0,0,3098,3100,3,790,395,0,3099,3101,3,362,181, + 0,3100,3099,1,0,0,0,3100,3101,1,0,0,0,3101,3128,1,0,0,0,3102,3106, + 3,242,121,0,3103,3105,3,242,121,0,3104,3103,1,0,0,0,3105,3108,1, + 0,0,0,3106,3104,1,0,0,0,3106,3107,1,0,0,0,3107,3110,1,0,0,0,3108, + 3106,1,0,0,0,3109,3111,5,315,0,0,3110,3109,1,0,0,0,3110,3111,1,0, + 0,0,3111,3129,1,0,0,0,3112,3113,5,309,0,0,3113,3114,5,94,0,0,3114, + 3129,3,792,396,0,3115,3116,5,282,0,0,3116,3117,5,94,0,0,3117,3129, + 3,808,404,0,3118,3119,5,333,0,0,3119,3120,5,323,0,0,3120,3129,3, + 32,16,0,3121,3123,5,269,0,0,3122,3121,1,0,0,0,3122,3123,1,0,0,0, + 3123,3124,1,0,0,0,3124,3125,5,462,0,0,3125,3126,5,80,0,0,3126,3127, + 5,204,0,0,3127,3129,3,812,406,0,3128,3102,1,0,0,0,3128,3112,1,0, + 0,0,3128,3115,1,0,0,0,3128,3118,1,0,0,0,3128,3122,1,0,0,0,3129,241, + 1,0,0,0,3130,3132,5,205,0,0,3131,3130,1,0,0,0,3131,3132,1,0,0,0, + 3132,3133,1,0,0,0,3133,3134,5,327,0,0,3134,3141,5,243,0,0,3135,3137, + 5,205,0,0,3136,3135,1,0,0,0,3136,3137,1,0,0,0,3137,3138,1,0,0,0, + 3138,3139,5,327,0,0,3139,3141,5,181,0,0,3140,3131,1,0,0,0,3140,3136, + 1,0,0,0,3141,3160,1,0,0,0,3142,3143,5,333,0,0,3143,3144,3,812,406, + 0,3144,3147,7,37,0,0,3145,3148,3,812,406,0,3146,3148,5,53,0,0,3147, + 3145,1,0,0,0,3147,3146,1,0,0,0,3148,3160,1,0,0,0,3149,3150,5,333, + 0,0,3150,3151,3,812,406,0,3151,3152,5,64,0,0,3152,3153,5,434,0,0, + 3153,3160,1,0,0,0,3154,3157,5,313,0,0,3155,3158,3,812,406,0,3156, + 3158,5,30,0,0,3157,3155,1,0,0,0,3157,3156,1,0,0,0,3158,3160,1,0, + 0,0,3159,3140,1,0,0,0,3159,3142,1,0,0,0,3159,3149,1,0,0,0,3159,3154, + 1,0,0,0,3160,243,1,0,0,0,3161,3162,5,100,0,0,3162,3163,5,2,0,0,3163, + 3164,3,668,334,0,3164,3165,5,3,0,0,3165,245,1,0,0,0,3166,3167,5, + 105,0,0,3167,3168,5,42,0,0,3168,3169,5,2,0,0,3169,3170,3,668,334, + 0,3170,3171,5,3,0,0,3171,247,1,0,0,0,3172,3173,5,46,0,0,3173,3174, + 5,131,0,0,3174,3175,5,446,0,0,3175,3176,3,812,406,0,3176,3177,5, + 360,0,0,3177,3178,7,38,0,0,3178,3179,5,215,0,0,3179,3180,3,310,155, + 0,3180,249,1,0,0,0,3181,3183,5,46,0,0,3182,3184,3,360,180,0,3183, + 3182,1,0,0,0,3183,3184,1,0,0,0,3184,3185,1,0,0,0,3185,3186,5,357, + 0,0,3186,3187,3,812,406,0,3187,3188,3,252,126,0,3188,3189,3,254, + 127,0,3189,3190,5,80,0,0,3190,3202,3,768,384,0,3191,3198,5,447,0, + 0,3192,3193,7,39,0,0,3193,3195,7,40,0,0,3194,3196,5,36,0,0,3195, + 3194,1,0,0,0,3195,3196,1,0,0,0,3196,3197,1,0,0,0,3197,3199,3,812, + 406,0,3198,3192,1,0,0,0,3199,3200,1,0,0,0,3200,3198,1,0,0,0,3200, + 3201,1,0,0,0,3201,3203,1,0,0,0,3202,3191,1,0,0,0,3202,3203,1,0,0, + 0,3203,3209,1,0,0,0,3204,3206,5,62,0,0,3205,3207,5,192,0,0,3206, + 3205,1,0,0,0,3206,3207,1,0,0,0,3207,3208,1,0,0,0,3208,3210,7,41, + 0,0,3209,3204,1,0,0,0,3209,3210,1,0,0,0,3210,3212,1,0,0,0,3211,3213, + 3,258,129,0,3212,3211,1,0,0,0,3212,3213,1,0,0,0,3213,3214,1,0,0, + 0,3214,3215,5,202,0,0,3215,3216,3,260,130,0,3216,3217,5,2,0,0,3217, + 3218,3,262,131,0,3218,3219,5,3,0,0,3219,3260,1,0,0,0,3220,3222,5, + 46,0,0,3221,3223,3,360,180,0,3222,3221,1,0,0,0,3222,3223,1,0,0,0, + 3223,3225,1,0,0,0,3224,3226,5,45,0,0,3225,3224,1,0,0,0,3225,3226, + 1,0,0,0,3226,3227,1,0,0,0,3227,3228,5,357,0,0,3228,3229,3,812,406, + 0,3229,3230,3,252,126,0,3230,3231,3,254,127,0,3231,3232,5,80,0,0, + 3232,3235,3,768,384,0,3233,3234,5,64,0,0,3234,3236,3,774,387,0,3235, + 3233,1,0,0,0,3235,3236,1,0,0,0,3236,3240,1,0,0,0,3237,3239,3,266, + 133,0,3238,3237,1,0,0,0,3239,3242,1,0,0,0,3240,3238,1,0,0,0,3240, + 3241,1,0,0,0,3241,3248,1,0,0,0,3242,3240,1,0,0,0,3243,3245,5,62, + 0,0,3244,3246,5,192,0,0,3245,3244,1,0,0,0,3245,3246,1,0,0,0,3246, + 3247,1,0,0,0,3247,3249,7,41,0,0,3248,3243,1,0,0,0,3248,3249,1,0, + 0,0,3249,3251,1,0,0,0,3250,3252,3,258,129,0,3251,3250,1,0,0,0,3251, + 3252,1,0,0,0,3252,3253,1,0,0,0,3253,3254,5,202,0,0,3254,3255,3,260, + 130,0,3255,3256,5,2,0,0,3256,3257,3,262,131,0,3257,3258,5,3,0,0, + 3258,3260,1,0,0,0,3259,3181,1,0,0,0,3259,3220,1,0,0,0,3260,251,1, + 0,0,0,3261,3266,5,145,0,0,3262,3266,5,135,0,0,3263,3264,5,242,0, + 0,3264,3266,5,275,0,0,3265,3261,1,0,0,0,3265,3262,1,0,0,0,3265,3263, + 1,0,0,0,3266,253,1,0,0,0,3267,3272,3,256,128,0,3268,3269,5,82,0, + 0,3269,3271,3,256,128,0,3270,3268,1,0,0,0,3271,3274,1,0,0,0,3272, + 3270,1,0,0,0,3272,3273,1,0,0,0,3273,255,1,0,0,0,3274,3272,1,0,0, + 0,3275,3284,5,241,0,0,3276,3284,5,182,0,0,3277,3280,5,369,0,0,3278, + 3279,5,275,0,0,3279,3281,3,142,71,0,3280,3278,1,0,0,0,3280,3281, + 1,0,0,0,3281,3284,1,0,0,0,3282,3284,5,358,0,0,3283,3275,1,0,0,0, + 3283,3276,1,0,0,0,3283,3277,1,0,0,0,3283,3282,1,0,0,0,3284,257,1, + 0,0,0,3285,3286,5,102,0,0,3286,3287,5,2,0,0,3287,3288,3,668,334, + 0,3288,3289,5,3,0,0,3289,259,1,0,0,0,3290,3291,5,211,0,0,3291,3295, + 3,800,400,0,3292,3293,5,296,0,0,3293,3295,3,790,395,0,3294,3290, + 1,0,0,0,3294,3292,1,0,0,0,3295,261,1,0,0,0,3296,3299,3,264,132,0, + 3297,3299,1,0,0,0,3298,3296,1,0,0,0,3298,3297,1,0,0,0,3299,3304, + 1,0,0,0,3300,3301,5,6,0,0,3301,3303,3,264,132,0,3302,3300,1,0,0, + 0,3303,3306,1,0,0,0,3304,3302,1,0,0,0,3304,3305,1,0,0,0,3305,263, + 1,0,0,0,3306,3304,1,0,0,0,3307,3312,5,574,0,0,3308,3312,5,576,0, + 0,3309,3312,3,802,401,0,3310,3312,3,818,409,0,3311,3307,1,0,0,0, + 3311,3308,1,0,0,0,3311,3309,1,0,0,0,3311,3310,1,0,0,0,3312,265,1, + 0,0,0,3313,3315,5,77,0,0,3314,3313,1,0,0,0,3314,3315,1,0,0,0,3315, + 3316,1,0,0,0,3316,3324,5,54,0,0,3317,3318,5,69,0,0,3318,3324,7,9, + 0,0,3319,3320,5,77,0,0,3320,3324,5,371,0,0,3321,3322,5,269,0,0,3322, + 3324,5,228,0,0,3323,3314,1,0,0,0,3323,3317,1,0,0,0,3323,3319,1,0, + 0,0,3323,3321,1,0,0,0,3324,267,1,0,0,0,3325,3326,5,46,0,0,3326,3327, + 5,198,0,0,3327,3328,5,357,0,0,3328,3329,3,812,406,0,3329,3330,5, + 80,0,0,3330,3340,3,818,409,0,3331,3332,5,102,0,0,3332,3337,3,270, + 135,0,3333,3334,5,33,0,0,3334,3336,3,270,135,0,3335,3333,1,0,0,0, + 3336,3339,1,0,0,0,3337,3335,1,0,0,0,3337,3338,1,0,0,0,3338,3341, + 1,0,0,0,3339,3337,1,0,0,0,3340,3331,1,0,0,0,3340,3341,1,0,0,0,3341, + 3342,1,0,0,0,3342,3343,5,202,0,0,3343,3344,3,260,130,0,3344,3345, + 5,2,0,0,3345,3346,5,3,0,0,3346,269,1,0,0,0,3347,3348,3,812,406,0, + 3348,3349,5,68,0,0,3349,3350,5,2,0,0,3350,3354,3,802,401,0,3351, + 3353,3,456,228,0,3352,3351,1,0,0,0,3353,3356,1,0,0,0,3354,3352,1, + 0,0,0,3354,3355,1,0,0,0,3355,3357,1,0,0,0,3356,3354,1,0,0,0,3357, + 3358,5,3,0,0,3358,271,1,0,0,0,3359,3360,5,138,0,0,3360,3361,5,198, + 0,0,3361,3362,5,357,0,0,3362,3368,3,812,406,0,3363,3365,5,193,0, + 0,3364,3366,7,14,0,0,3365,3364,1,0,0,0,3365,3366,1,0,0,0,3366,3369, + 1,0,0,0,3367,3369,5,186,0,0,3368,3363,1,0,0,0,3368,3367,1,0,0,0, + 3369,273,1,0,0,0,3370,3371,5,46,0,0,3371,3372,5,140,0,0,3372,3373, + 3,310,155,0,3373,3374,5,42,0,0,3374,3375,5,2,0,0,3375,3376,3,668, + 334,0,3376,3380,5,3,0,0,3377,3379,3,266,133,0,3378,3377,1,0,0,0, + 3379,3382,1,0,0,0,3380,3378,1,0,0,0,3380,3381,1,0,0,0,3381,275,1, + 0,0,0,3382,3380,1,0,0,0,3383,3385,5,46,0,0,3384,3386,3,360,180,0, + 3385,3384,1,0,0,0,3385,3386,1,0,0,0,3386,3387,1,0,0,0,3387,3388, + 5,136,0,0,3388,3403,3,800,400,0,3389,3390,3,386,193,0,3390,3391, + 3,278,139,0,3391,3404,1,0,0,0,3392,3393,5,2,0,0,3393,3398,3,284, + 142,0,3394,3395,5,6,0,0,3395,3397,3,284,142,0,3396,3394,1,0,0,0, + 3397,3400,1,0,0,0,3398,3396,1,0,0,0,3398,3399,1,0,0,0,3399,3401, + 1,0,0,0,3400,3398,1,0,0,0,3401,3402,5,3,0,0,3402,3404,1,0,0,0,3403, + 3389,1,0,0,0,3403,3392,1,0,0,0,3404,3462,1,0,0,0,3405,3406,5,46, + 0,0,3406,3407,5,278,0,0,3407,3408,3,408,204,0,3408,3409,3,278,139, + 0,3409,3462,1,0,0,0,3410,3411,5,46,0,0,3411,3412,5,360,0,0,3412, + 3413,3,310,155,0,3413,3431,5,36,0,0,3414,3416,5,2,0,0,3415,3417, + 3,636,318,0,3416,3415,1,0,0,0,3416,3417,1,0,0,0,3417,3418,1,0,0, + 0,3418,3432,5,3,0,0,3419,3420,5,196,0,0,3420,3428,5,2,0,0,3421,3425, + 3,802,401,0,3422,3424,3,456,228,0,3423,3422,1,0,0,0,3424,3427,1, + 0,0,0,3425,3423,1,0,0,0,3425,3426,1,0,0,0,3426,3429,1,0,0,0,3427, + 3425,1,0,0,0,3428,3421,1,0,0,0,3428,3429,1,0,0,0,3429,3430,1,0,0, + 0,3430,3432,5,3,0,0,3431,3414,1,0,0,0,3431,3419,1,0,0,0,3432,3462, + 1,0,0,0,3433,3434,5,46,0,0,3434,3435,5,360,0,0,3435,3441,3,310,155, + 0,3436,3437,5,36,0,0,3437,3439,5,299,0,0,3438,3436,1,0,0,0,3438, + 3439,1,0,0,0,3439,3440,1,0,0,0,3440,3442,3,278,139,0,3441,3438,1, + 0,0,0,3441,3442,1,0,0,0,3442,3462,1,0,0,0,3443,3444,5,46,0,0,3444, + 3445,5,355,0,0,3445,3446,5,325,0,0,3446,3447,7,42,0,0,3447,3448, + 3,310,155,0,3448,3449,3,278,139,0,3449,3462,1,0,0,0,3450,3451,5, + 46,0,0,3451,3453,5,108,0,0,3452,3454,3,288,144,0,3453,3452,1,0,0, + 0,3453,3454,1,0,0,0,3454,3455,1,0,0,0,3455,3459,3,310,155,0,3456, + 3460,3,278,139,0,3457,3458,5,64,0,0,3458,3460,3,310,155,0,3459,3456, + 1,0,0,0,3459,3457,1,0,0,0,3460,3462,1,0,0,0,3461,3383,1,0,0,0,3461, + 3405,1,0,0,0,3461,3410,1,0,0,0,3461,3433,1,0,0,0,3461,3443,1,0,0, + 0,3461,3450,1,0,0,0,3462,277,1,0,0,0,3463,3464,5,2,0,0,3464,3469, + 3,280,140,0,3465,3466,5,6,0,0,3466,3468,3,280,140,0,3467,3465,1, + 0,0,0,3468,3471,1,0,0,0,3469,3467,1,0,0,0,3469,3470,1,0,0,0,3470, + 3472,1,0,0,0,3471,3469,1,0,0,0,3472,3473,5,3,0,0,3473,279,1,0,0, + 0,3474,3477,3,818,409,0,3475,3476,5,10,0,0,3476,3478,3,282,141,0, + 3477,3475,1,0,0,0,3477,3478,1,0,0,0,3478,281,1,0,0,0,3479,3486,3, + 382,191,0,3480,3486,3,828,414,0,3481,3486,3,720,360,0,3482,3486, + 3,196,98,0,3483,3486,3,802,401,0,3484,3486,5,407,0,0,3485,3479,1, + 0,0,0,3485,3480,1,0,0,0,3485,3481,1,0,0,0,3485,3482,1,0,0,0,3485, + 3483,1,0,0,0,3485,3484,1,0,0,0,3486,283,1,0,0,0,3487,3488,3,820, + 410,0,3488,3489,5,10,0,0,3489,3490,3,282,141,0,3490,285,1,0,0,0, + 3491,3492,5,138,0,0,3492,3493,5,360,0,0,3493,3494,3,310,155,0,3494, + 3495,5,133,0,0,3495,3497,5,450,0,0,3496,3498,3,288,144,0,3497,3496, + 1,0,0,0,3497,3498,1,0,0,0,3498,3499,1,0,0,0,3499,3502,3,802,401, + 0,3500,3501,7,43,0,0,3501,3503,3,802,401,0,3502,3500,1,0,0,0,3502, + 3503,1,0,0,0,3503,3514,1,0,0,0,3504,3505,5,138,0,0,3505,3506,5,360, + 0,0,3506,3507,3,310,155,0,3507,3508,5,309,0,0,3508,3509,5,450,0, + 0,3509,3510,3,802,401,0,3510,3511,5,94,0,0,3511,3512,3,802,401,0, + 3512,3514,1,0,0,0,3513,3491,1,0,0,0,3513,3504,1,0,0,0,3514,287,1, + 0,0,0,3515,3516,5,220,0,0,3516,3517,5,77,0,0,3517,3518,5,396,0,0, + 3518,289,1,0,0,0,3519,3520,5,46,0,0,3520,3521,5,278,0,0,3521,3522, + 5,156,0,0,3522,3524,3,310,155,0,3523,3525,5,53,0,0,3524,3523,1,0, + 0,0,3524,3525,1,0,0,0,3525,3526,1,0,0,0,3526,3527,5,62,0,0,3527, + 3528,5,360,0,0,3528,3529,3,646,323,0,3529,3532,3,164,82,0,3530,3531, + 5,206,0,0,3531,3533,3,310,155,0,3532,3530,1,0,0,0,3532,3533,1,0, + 0,0,3533,3534,1,0,0,0,3534,3535,5,36,0,0,3535,3540,3,292,146,0,3536, + 3537,5,6,0,0,3537,3539,3,292,146,0,3538,3536,1,0,0,0,3539,3542,1, + 0,0,0,3540,3538,1,0,0,0,3540,3541,1,0,0,0,3541,291,1,0,0,0,3542, + 3540,1,0,0,0,3543,3544,5,278,0,0,3544,3545,5,574,0,0,3545,3547,3, + 408,204,0,3546,3548,3,406,203,0,3547,3546,1,0,0,0,3547,3548,1,0, + 0,0,3548,3556,1,0,0,0,3549,3554,5,62,0,0,3550,3555,5,325,0,0,3551, + 3552,5,83,0,0,3552,3553,5,147,0,0,3553,3555,3,310,155,0,3554,3550, + 1,0,0,0,3554,3551,1,0,0,0,3555,3557,1,0,0,0,3556,3549,1,0,0,0,3556, + 3557,1,0,0,0,3557,3559,1,0,0,0,3558,3560,5,302,0,0,3559,3558,1,0, + 0,0,3559,3560,1,0,0,0,3560,3570,1,0,0,0,3561,3562,5,211,0,0,3562, + 3564,5,574,0,0,3563,3565,3,522,261,0,3564,3563,1,0,0,0,3564,3565, + 1,0,0,0,3565,3566,1,0,0,0,3566,3570,3,376,188,0,3567,3568,5,345, + 0,0,3568,3570,3,646,323,0,3569,3543,1,0,0,0,3569,3561,1,0,0,0,3569, + 3567,1,0,0,0,3570,293,1,0,0,0,3571,3572,5,46,0,0,3572,3573,5,278, + 0,0,3573,3574,5,206,0,0,3574,3575,3,310,155,0,3575,3576,3,164,82, + 0,3576,295,1,0,0,0,3577,3578,5,138,0,0,3578,3579,5,278,0,0,3579, + 3580,5,206,0,0,3580,3581,3,310,155,0,3581,3600,3,164,82,0,3582,3583, + 5,133,0,0,3583,3588,3,292,146,0,3584,3585,5,6,0,0,3585,3587,3,292, + 146,0,3586,3584,1,0,0,0,3587,3590,1,0,0,0,3588,3586,1,0,0,0,3588, + 3589,1,0,0,0,3589,3601,1,0,0,0,3590,3588,1,0,0,0,3591,3592,5,191, + 0,0,3592,3597,3,298,149,0,3593,3594,5,6,0,0,3594,3596,3,298,149, + 0,3595,3593,1,0,0,0,3596,3599,1,0,0,0,3597,3595,1,0,0,0,3597,3598, + 1,0,0,0,3598,3601,1,0,0,0,3599,3597,1,0,0,0,3600,3582,1,0,0,0,3600, + 3591,1,0,0,0,3601,297,1,0,0,0,3602,3603,7,44,0,0,3603,3604,5,574, + 0,0,3604,3605,3,522,261,0,3605,299,1,0,0,0,3606,3607,5,301,0,0,3607, + 3608,5,281,0,0,3608,3609,5,147,0,0,3609,3610,3,810,405,0,3610,3611, + 5,94,0,0,3611,3612,3,808,404,0,3612,301,1,0,0,0,3613,3636,5,191, + 0,0,3614,3637,5,328,0,0,3615,3637,5,226,0,0,3616,3637,5,108,0,0, + 3617,3637,5,168,0,0,3618,3637,5,342,0,0,3619,3637,5,452,0,0,3620, + 3637,5,331,0,0,3621,3622,5,131,0,0,3622,3637,5,446,0,0,3623,3624, + 5,198,0,0,3624,3637,5,357,0,0,3625,3637,5,204,0,0,3626,3628,5,295, + 0,0,3627,3626,1,0,0,0,3627,3628,1,0,0,0,3628,3629,1,0,0,0,3629,3637, + 5,247,0,0,3630,3631,5,63,0,0,3631,3632,5,174,0,0,3632,3637,5,381, + 0,0,3633,3634,5,355,0,0,3634,3635,5,325,0,0,3635,3637,7,42,0,0,3636, + 3614,1,0,0,0,3636,3615,1,0,0,0,3636,3616,1,0,0,0,3636,3617,1,0,0, + 0,3636,3618,1,0,0,0,3636,3619,1,0,0,0,3636,3620,1,0,0,0,3636,3621, + 1,0,0,0,3636,3623,1,0,0,0,3636,3625,1,0,0,0,3636,3627,1,0,0,0,3636, + 3630,1,0,0,0,3636,3633,1,0,0,0,3637,3639,1,0,0,0,3638,3640,3,416, + 208,0,3639,3638,1,0,0,0,3639,3640,1,0,0,0,3640,3641,1,0,0,0,3641, + 3643,3,778,389,0,3642,3644,3,88,44,0,3643,3642,1,0,0,0,3643,3644, + 1,0,0,0,3644,3821,1,0,0,0,3645,3647,5,191,0,0,3646,3648,5,259,0, + 0,3647,3646,1,0,0,0,3647,3648,1,0,0,0,3648,3649,1,0,0,0,3649,3651, + 5,376,0,0,3650,3652,3,416,208,0,3651,3650,1,0,0,0,3651,3652,1,0, + 0,0,3652,3653,1,0,0,0,3653,3658,3,772,386,0,3654,3655,5,6,0,0,3655, + 3657,3,772,386,0,3656,3654,1,0,0,0,3657,3660,1,0,0,0,3658,3656,1, + 0,0,0,3658,3659,1,0,0,0,3659,3662,1,0,0,0,3660,3658,1,0,0,0,3661, + 3663,3,88,44,0,3662,3661,1,0,0,0,3662,3663,1,0,0,0,3663,3821,1,0, + 0,0,3664,3666,5,191,0,0,3665,3667,5,63,0,0,3666,3665,1,0,0,0,3666, + 3667,1,0,0,0,3667,3668,1,0,0,0,3668,3670,5,92,0,0,3669,3671,3,416, + 208,0,3670,3669,1,0,0,0,3670,3671,1,0,0,0,3671,3672,1,0,0,0,3672, + 3674,3,756,378,0,3673,3675,3,88,44,0,3674,3673,1,0,0,0,3674,3675, + 1,0,0,0,3675,3821,1,0,0,0,3676,3677,5,191,0,0,3677,3679,5,323,0, + 0,3678,3680,3,416,208,0,3679,3678,1,0,0,0,3679,3680,1,0,0,0,3680, + 3681,1,0,0,0,3681,3683,3,758,379,0,3682,3684,3,88,44,0,3683,3682, + 1,0,0,0,3683,3684,1,0,0,0,3684,3821,1,0,0,0,3685,3686,5,191,0,0, + 3686,3688,7,45,0,0,3687,3689,3,416,208,0,3688,3687,1,0,0,0,3688, + 3689,1,0,0,0,3689,3690,1,0,0,0,3690,3691,3,812,406,0,3691,3692,5, + 80,0,0,3692,3694,3,310,155,0,3693,3695,3,88,44,0,3694,3693,1,0,0, + 0,3694,3695,1,0,0,0,3695,3821,1,0,0,0,3696,3697,5,191,0,0,3697,3699, + 7,33,0,0,3698,3700,3,416,208,0,3699,3698,1,0,0,0,3699,3700,1,0,0, + 0,3700,3701,1,0,0,0,3701,3706,3,646,323,0,3702,3703,5,6,0,0,3703, + 3705,3,646,323,0,3704,3702,1,0,0,0,3705,3708,1,0,0,0,3706,3704,1, + 0,0,0,3706,3707,1,0,0,0,3707,3710,1,0,0,0,3708,3706,1,0,0,0,3709, + 3711,3,88,44,0,3710,3709,1,0,0,0,3710,3711,1,0,0,0,3711,3821,1,0, + 0,0,3712,3713,5,191,0,0,3713,3714,5,226,0,0,3714,3716,5,109,0,0, + 3715,3717,3,416,208,0,3716,3715,1,0,0,0,3716,3717,1,0,0,0,3717,3718, + 1,0,0,0,3718,3720,3,308,154,0,3719,3721,3,88,44,0,3720,3719,1,0, + 0,0,3720,3721,1,0,0,0,3721,3821,1,0,0,0,3722,3723,5,191,0,0,3723, + 3725,5,41,0,0,3724,3726,3,416,208,0,3725,3724,1,0,0,0,3725,3726, + 1,0,0,0,3726,3727,1,0,0,0,3727,3728,5,2,0,0,3728,3729,3,646,323, + 0,3729,3730,5,36,0,0,3730,3731,3,646,323,0,3731,3733,5,3,0,0,3732, + 3734,3,88,44,0,3733,3732,1,0,0,0,3733,3734,1,0,0,0,3734,3821,1,0, + 0,0,3735,3736,5,191,0,0,3736,3737,5,278,0,0,3737,3739,7,32,0,0,3738, + 3740,3,416,208,0,3739,3738,1,0,0,0,3739,3740,1,0,0,0,3740,3741,1, + 0,0,0,3741,3742,3,310,155,0,3742,3744,3,164,82,0,3743,3745,3,88, + 44,0,3744,3743,1,0,0,0,3744,3745,1,0,0,0,3745,3821,1,0,0,0,3746, + 3747,5,191,0,0,3747,3748,5,281,0,0,3748,3749,5,147,0,0,3749,3751, + 3,810,405,0,3750,3752,3,88,44,0,3751,3750,1,0,0,0,3751,3752,1,0, + 0,0,3752,3821,1,0,0,0,3753,3754,5,191,0,0,3754,3756,5,451,0,0,3755, + 3757,3,416,208,0,3756,3755,1,0,0,0,3756,3757,1,0,0,0,3757,3758,1, + 0,0,0,3758,3760,3,812,406,0,3759,3761,3,88,44,0,3760,3759,1,0,0, + 0,3760,3761,1,0,0,0,3761,3821,1,0,0,0,3762,3763,5,191,0,0,3763,3765, + 5,351,0,0,3764,3766,3,416,208,0,3765,3764,1,0,0,0,3765,3766,1,0, + 0,0,3766,3767,1,0,0,0,3767,3821,3,764,382,0,3768,3769,5,191,0,0, + 3769,3771,5,443,0,0,3770,3772,3,416,208,0,3771,3770,1,0,0,0,3771, + 3772,1,0,0,0,3772,3773,1,0,0,0,3773,3774,5,62,0,0,3774,3775,3,646, + 323,0,3775,3776,5,247,0,0,3776,3778,3,812,406,0,3777,3779,3,88,44, + 0,3778,3777,1,0,0,0,3778,3779,1,0,0,0,3779,3821,1,0,0,0,3780,3781, + 5,191,0,0,3781,3783,7,46,0,0,3782,3784,3,416,208,0,3783,3782,1,0, + 0,0,3783,3784,1,0,0,0,3784,3785,1,0,0,0,3785,3821,3,810,405,0,3786, + 3787,5,191,0,0,3787,3788,5,99,0,0,3788,3790,5,257,0,0,3789,3791, + 3,416,208,0,3790,3789,1,0,0,0,3790,3791,1,0,0,0,3791,3792,1,0,0, + 0,3792,3795,5,62,0,0,3793,3796,3,808,404,0,3794,3796,5,99,0,0,3795, + 3793,1,0,0,0,3795,3794,1,0,0,0,3796,3797,1,0,0,0,3797,3798,5,331, + 0,0,3798,3821,3,812,406,0,3799,3800,5,191,0,0,3800,3802,5,175,0, + 0,3801,3803,3,416,208,0,3802,3801,1,0,0,0,3802,3803,1,0,0,0,3803, + 3804,1,0,0,0,3804,3818,3,782,391,0,3805,3807,5,105,0,0,3806,3805, + 1,0,0,0,3806,3807,1,0,0,0,3807,3808,1,0,0,0,3808,3809,5,2,0,0,3809, + 3814,5,209,0,0,3810,3811,5,6,0,0,3811,3813,5,209,0,0,3812,3810,1, + 0,0,0,3813,3816,1,0,0,0,3814,3812,1,0,0,0,3814,3815,1,0,0,0,3815, + 3817,1,0,0,0,3816,3814,1,0,0,0,3817,3819,5,3,0,0,3818,3806,1,0,0, + 0,3818,3819,1,0,0,0,3819,3821,1,0,0,0,3820,3613,1,0,0,0,3820,3645, + 1,0,0,0,3820,3664,1,0,0,0,3820,3676,1,0,0,0,3820,3685,1,0,0,0,3820, + 3696,1,0,0,0,3820,3712,1,0,0,0,3820,3722,1,0,0,0,3820,3735,1,0,0, + 0,3820,3746,1,0,0,0,3820,3753,1,0,0,0,3820,3762,1,0,0,0,3820,3768, + 1,0,0,0,3820,3780,1,0,0,0,3820,3786,1,0,0,0,3820,3799,1,0,0,0,3821, + 303,1,0,0,0,3822,3824,5,63,0,0,3823,3822,1,0,0,0,3823,3824,1,0,0, + 0,3824,3825,1,0,0,0,3825,3826,5,92,0,0,3826,3839,3,768,384,0,3827, + 3829,5,259,0,0,3828,3827,1,0,0,0,3828,3829,1,0,0,0,3829,3830,1,0, + 0,0,3830,3831,5,376,0,0,3831,3839,3,772,386,0,3832,3833,7,47,0,0, + 3833,3839,3,310,155,0,3834,3835,5,355,0,0,3835,3836,5,325,0,0,3836, + 3837,7,42,0,0,3837,3839,3,310,155,0,3838,3823,1,0,0,0,3838,3828, + 1,0,0,0,3838,3832,1,0,0,0,3838,3834,1,0,0,0,3839,305,1,0,0,0,3840, + 3841,5,198,0,0,3841,3857,5,357,0,0,3842,3843,5,131,0,0,3843,3857, + 5,446,0,0,3844,3857,5,204,0,0,3845,3857,5,452,0,0,3846,3857,5,331, + 0,0,3847,3857,5,318,0,0,3848,3857,5,451,0,0,3849,3850,5,63,0,0,3850, + 3851,5,174,0,0,3851,3857,5,381,0,0,3852,3854,5,295,0,0,3853,3852, + 1,0,0,0,3853,3854,1,0,0,0,3854,3855,1,0,0,0,3855,3857,5,247,0,0, + 3856,3840,1,0,0,0,3856,3842,1,0,0,0,3856,3844,1,0,0,0,3856,3845, + 1,0,0,0,3856,3846,1,0,0,0,3856,3847,1,0,0,0,3856,3848,1,0,0,0,3856, + 3849,1,0,0,0,3856,3853,1,0,0,0,3857,3858,1,0,0,0,3858,3865,3,812, + 406,0,3859,3860,5,323,0,0,3860,3865,3,784,392,0,3861,3862,5,175, + 0,0,3862,3865,3,782,391,0,3863,3865,3,170,85,0,3864,3856,1,0,0,0, + 3864,3859,1,0,0,0,3864,3861,1,0,0,0,3864,3863,1,0,0,0,3865,307,1, + 0,0,0,3866,3871,3,310,155,0,3867,3868,5,6,0,0,3868,3870,3,310,155, + 0,3869,3867,1,0,0,0,3870,3873,1,0,0,0,3871,3869,1,0,0,0,3871,3872, + 1,0,0,0,3872,309,1,0,0,0,3873,3871,1,0,0,0,3874,3876,3,812,406,0, + 3875,3877,3,312,156,0,3876,3875,1,0,0,0,3876,3877,1,0,0,0,3877,311, + 1,0,0,0,3878,3879,5,11,0,0,3879,3881,3,818,409,0,3880,3878,1,0,0, + 0,3881,3882,1,0,0,0,3882,3880,1,0,0,0,3882,3883,1,0,0,0,3883,313, + 1,0,0,0,3884,3886,5,358,0,0,3885,3887,5,92,0,0,3886,3885,1,0,0,0, + 3886,3887,1,0,0,0,3887,3888,1,0,0,0,3888,3893,3,316,158,0,3889,3890, + 5,6,0,0,3890,3892,3,316,158,0,3891,3889,1,0,0,0,3892,3895,1,0,0, + 0,3893,3891,1,0,0,0,3893,3894,1,0,0,0,3894,3898,1,0,0,0,3895,3893, + 1,0,0,0,3896,3897,7,48,0,0,3897,3899,5,219,0,0,3898,3896,1,0,0,0, + 3898,3899,1,0,0,0,3899,3901,1,0,0,0,3900,3902,3,88,44,0,3901,3900, + 1,0,0,0,3901,3902,1,0,0,0,3902,315,1,0,0,0,3903,3905,5,81,0,0,3904, + 3903,1,0,0,0,3904,3905,1,0,0,0,3905,3906,1,0,0,0,3906,3908,3,768, + 384,0,3907,3909,5,9,0,0,3908,3907,1,0,0,0,3908,3909,1,0,0,0,3909, + 317,1,0,0,0,3910,3911,5,159,0,0,3911,3970,5,80,0,0,3912,3971,3,304, + 152,0,3913,3971,3,306,153,0,3914,3915,5,44,0,0,3915,3917,3,812,406, + 0,3916,3918,3,312,156,0,3917,3916,1,0,0,0,3917,3918,1,0,0,0,3918, + 3919,1,0,0,0,3919,3920,5,11,0,0,3920,3921,3,794,397,0,3921,3971, + 1,0,0,0,3922,3923,7,33,0,0,3923,3971,3,646,323,0,3924,3925,5,136, + 0,0,3925,3971,3,388,194,0,3926,3927,5,211,0,0,3927,3971,3,376,188, + 0,3928,3929,5,278,0,0,3929,3971,3,410,205,0,3930,3931,5,45,0,0,3931, + 3932,3,812,406,0,3932,3938,5,80,0,0,3933,3939,3,768,384,0,3934,3936, + 5,189,0,0,3935,3934,1,0,0,0,3935,3936,1,0,0,0,3936,3937,1,0,0,0, + 3937,3939,3,310,155,0,3938,3933,1,0,0,0,3938,3935,1,0,0,0,3939,3971, + 1,0,0,0,3940,3941,7,45,0,0,3941,3942,3,812,406,0,3942,3943,5,80, + 0,0,3943,3944,3,310,155,0,3944,3971,1,0,0,0,3945,3946,5,296,0,0, + 3946,3971,3,372,186,0,3947,3948,5,442,0,0,3948,3971,3,368,184,0, + 3949,3950,5,443,0,0,3950,3951,5,62,0,0,3951,3952,3,646,323,0,3952, + 3953,5,247,0,0,3953,3954,3,812,406,0,3954,3971,1,0,0,0,3955,3956, + 5,278,0,0,3956,3957,7,32,0,0,3957,3958,3,310,155,0,3958,3959,3,164, + 82,0,3959,3971,1,0,0,0,3960,3961,5,248,0,0,3961,3962,5,274,0,0,3962, + 3971,3,196,98,0,3963,3964,5,41,0,0,3964,3965,5,2,0,0,3965,3966,3, + 646,323,0,3966,3967,5,36,0,0,3967,3968,3,646,323,0,3968,3969,5,3, + 0,0,3969,3971,1,0,0,0,3970,3912,1,0,0,0,3970,3913,1,0,0,0,3970,3914, + 1,0,0,0,3970,3922,1,0,0,0,3970,3924,1,0,0,0,3970,3926,1,0,0,0,3970, + 3928,1,0,0,0,3970,3930,1,0,0,0,3970,3940,1,0,0,0,3970,3945,1,0,0, + 0,3970,3947,1,0,0,0,3970,3949,1,0,0,0,3970,3955,1,0,0,0,3970,3960, + 1,0,0,0,3970,3963,1,0,0,0,3971,3972,1,0,0,0,3972,3975,5,116,0,0, + 3973,3976,3,802,401,0,3974,3976,5,78,0,0,3975,3973,1,0,0,0,3975, + 3974,1,0,0,0,3976,319,1,0,0,0,3977,3978,5,327,0,0,3978,3981,5,246, + 0,0,3979,3980,5,62,0,0,3980,3982,3,58,29,0,3981,3979,1,0,0,0,3981, + 3982,1,0,0,0,3982,3983,1,0,0,0,3983,4001,5,80,0,0,3984,3985,7,33, + 0,0,3985,4002,3,646,323,0,3986,3987,5,136,0,0,3987,4002,3,388,194, + 0,3988,3989,5,44,0,0,3989,4002,3,794,397,0,3990,3991,5,211,0,0,3991, + 4002,3,376,188,0,3992,3993,5,248,0,0,3993,3994,5,274,0,0,3994,4002, + 3,196,98,0,3995,3996,5,296,0,0,3996,4002,3,372,186,0,3997,3998,5, + 442,0,0,3998,4002,3,368,184,0,3999,4002,3,304,152,0,4000,4002,3, + 306,153,0,4001,3984,1,0,0,0,4001,3986,1,0,0,0,4001,3988,1,0,0,0, + 4001,3990,1,0,0,0,4001,3992,1,0,0,0,4001,3995,1,0,0,0,4001,3997, + 1,0,0,0,4001,3999,1,0,0,0,4001,4000,1,0,0,0,4002,4003,1,0,0,0,4003, + 4006,5,116,0,0,4004,4007,3,802,401,0,4005,4007,5,78,0,0,4006,4004, + 1,0,0,0,4006,4005,1,0,0,0,4007,321,1,0,0,0,4008,4009,7,49,0,0,4009, + 4010,3,324,162,0,4010,323,1,0,0,0,4011,4013,7,50,0,0,4012,4011,1, + 0,0,0,4012,4013,1,0,0,0,4013,4015,1,0,0,0,4014,4016,3,326,163,0, + 4015,4014,1,0,0,0,4015,4016,1,0,0,0,4016,4017,1,0,0,0,4017,4055, + 3,812,406,0,4018,4020,7,51,0,0,4019,4018,1,0,0,0,4019,4020,1,0,0, + 0,4020,4021,1,0,0,0,4021,4023,3,806,403,0,4022,4024,3,326,163,0, + 4023,4022,1,0,0,0,4023,4024,1,0,0,0,4024,4025,1,0,0,0,4025,4026, + 3,812,406,0,4026,4055,1,0,0,0,4027,4029,5,210,0,0,4028,4030,3,806, + 403,0,4029,4028,1,0,0,0,4029,4030,1,0,0,0,4030,4032,1,0,0,0,4031, + 4033,3,326,163,0,4032,4031,1,0,0,0,4032,4033,1,0,0,0,4033,4034,1, + 0,0,0,4034,4055,3,812,406,0,4035,4037,5,210,0,0,4036,4035,1,0,0, + 0,4036,4037,1,0,0,0,4037,4038,1,0,0,0,4038,4040,5,30,0,0,4039,4041, + 3,326,163,0,4040,4039,1,0,0,0,4040,4041,1,0,0,0,4041,4042,1,0,0, + 0,4042,4055,3,812,406,0,4043,4048,5,144,0,0,4044,4046,5,30,0,0,4045, + 4044,1,0,0,0,4045,4046,1,0,0,0,4046,4049,1,0,0,0,4047,4049,3,806, + 403,0,4048,4045,1,0,0,0,4048,4047,1,0,0,0,4049,4051,1,0,0,0,4050, + 4052,3,326,163,0,4051,4050,1,0,0,0,4051,4052,1,0,0,0,4052,4053,1, + 0,0,0,4053,4055,3,812,406,0,4054,4012,1,0,0,0,4054,4019,1,0,0,0, + 4054,4027,1,0,0,0,4054,4036,1,0,0,0,4054,4043,1,0,0,0,4055,325,1, + 0,0,0,4056,4057,7,52,0,0,4057,327,1,0,0,0,4058,4059,5,65,0,0,4059, + 4060,3,332,166,0,4060,4061,5,80,0,0,4061,4062,3,338,169,0,4062,4063, + 5,94,0,0,4063,4067,3,340,170,0,4064,4065,5,105,0,0,4065,4066,5,65, + 0,0,4066,4068,5,279,0,0,4067,4064,1,0,0,0,4067,4068,1,0,0,0,4068, + 329,1,0,0,0,4069,4073,5,317,0,0,4070,4071,5,65,0,0,4071,4072,5,279, + 0,0,4072,4074,5,62,0,0,4073,4070,1,0,0,0,4073,4074,1,0,0,0,4074, + 4075,1,0,0,0,4075,4076,3,332,166,0,4076,4077,5,80,0,0,4077,4078, + 3,338,169,0,4078,4079,5,64,0,0,4079,4081,3,340,170,0,4080,4082,3, + 88,44,0,4081,4080,1,0,0,0,4081,4082,1,0,0,0,4082,331,1,0,0,0,4083, + 4088,3,336,168,0,4084,4085,5,6,0,0,4085,4087,3,336,168,0,4086,4084, + 1,0,0,0,4087,4090,1,0,0,0,4088,4086,1,0,0,0,4088,4089,1,0,0,0,4089, + 4107,1,0,0,0,4090,4088,1,0,0,0,4091,4093,5,30,0,0,4092,4094,5,294, + 0,0,4093,4092,1,0,0,0,4093,4094,1,0,0,0,4094,4096,1,0,0,0,4095,4097, + 3,138,69,0,4096,4095,1,0,0,0,4096,4097,1,0,0,0,4097,4107,1,0,0,0, + 4098,4103,3,334,167,0,4099,4100,5,6,0,0,4100,4102,3,334,167,0,4101, + 4099,1,0,0,0,4102,4105,1,0,0,0,4103,4101,1,0,0,0,4103,4104,1,0,0, + 0,4104,4107,1,0,0,0,4105,4103,1,0,0,0,4106,4083,1,0,0,0,4106,4091, + 1,0,0,0,4106,4098,1,0,0,0,4107,333,1,0,0,0,4108,4109,7,53,0,0,4109, + 335,1,0,0,0,4110,4115,5,88,0,0,4111,4115,5,86,0,0,4112,4115,5,46, + 0,0,4113,4115,3,812,406,0,4114,4110,1,0,0,0,4114,4111,1,0,0,0,4114, + 4112,1,0,0,0,4114,4113,1,0,0,0,4115,4117,1,0,0,0,4116,4118,3,138, + 69,0,4117,4116,1,0,0,0,4117,4118,1,0,0,0,4118,337,1,0,0,0,4119,4120, + 5,92,0,0,4120,4165,3,756,378,0,4121,4123,5,328,0,0,4122,4121,1,0, + 0,0,4122,4123,1,0,0,0,4123,4124,1,0,0,0,4124,4165,3,754,377,0,4125, + 4129,5,63,0,0,4126,4127,5,174,0,0,4127,4130,5,381,0,0,4128,4130, + 5,331,0,0,4129,4126,1,0,0,0,4129,4128,1,0,0,0,4130,4133,1,0,0,0, + 4131,4133,5,247,0,0,4132,4125,1,0,0,0,4132,4131,1,0,0,0,4133,4134, + 1,0,0,0,4134,4165,3,778,389,0,4135,4136,5,211,0,0,4136,4165,3,374, + 187,0,4137,4138,5,296,0,0,4138,4165,3,370,185,0,4139,4140,5,442, + 0,0,4140,4165,3,366,183,0,4141,4142,5,175,0,0,4142,4165,3,760,380, + 0,4143,4144,7,33,0,0,4144,4165,3,308,154,0,4145,4146,5,248,0,0,4146, + 4147,5,274,0,0,4147,4152,3,196,98,0,4148,4149,5,6,0,0,4149,4151, + 3,196,98,0,4150,4148,1,0,0,0,4151,4154,1,0,0,0,4152,4150,1,0,0,0, + 4152,4153,1,0,0,0,4153,4165,1,0,0,0,4154,4152,1,0,0,0,4155,4156, + 5,323,0,0,4156,4165,3,758,379,0,4157,4158,5,351,0,0,4158,4165,3, + 776,388,0,4159,4160,5,30,0,0,4160,4161,7,54,0,0,4161,4162,5,68,0, + 0,4162,4163,5,323,0,0,4163,4165,3,758,379,0,4164,4119,1,0,0,0,4164, + 4122,1,0,0,0,4164,4132,1,0,0,0,4164,4135,1,0,0,0,4164,4137,1,0,0, + 0,4164,4139,1,0,0,0,4164,4141,1,0,0,0,4164,4143,1,0,0,0,4164,4145, + 1,0,0,0,4164,4155,1,0,0,0,4164,4157,1,0,0,0,4164,4159,1,0,0,0,4165, + 339,1,0,0,0,4166,4168,5,66,0,0,4167,4166,1,0,0,0,4167,4168,1,0,0, + 0,4168,4169,1,0,0,0,4169,4170,3,808,404,0,4170,4178,1,0,0,0,4171, + 4173,5,6,0,0,4172,4174,5,66,0,0,4173,4172,1,0,0,0,4173,4174,1,0, + 0,0,4174,4175,1,0,0,0,4175,4177,3,808,404,0,4176,4171,1,0,0,0,4177, + 4180,1,0,0,0,4178,4176,1,0,0,0,4178,4179,1,0,0,0,4179,341,1,0,0, + 0,4180,4178,1,0,0,0,4181,4182,5,65,0,0,4182,4187,3,336,168,0,4183, + 4184,5,6,0,0,4184,4186,3,336,168,0,4185,4183,1,0,0,0,4186,4189,1, + 0,0,0,4187,4185,1,0,0,0,4187,4188,1,0,0,0,4188,4190,1,0,0,0,4189, + 4187,1,0,0,0,4190,4191,5,94,0,0,4191,4195,3,810,405,0,4192,4193, + 5,105,0,0,4193,4194,5,134,0,0,4194,4196,5,279,0,0,4195,4192,1,0, + 0,0,4195,4196,1,0,0,0,4196,4200,1,0,0,0,4197,4198,5,214,0,0,4198, + 4199,5,147,0,0,4199,4201,3,808,404,0,4200,4197,1,0,0,0,4200,4201, + 1,0,0,0,4201,343,1,0,0,0,4202,4206,5,317,0,0,4203,4204,5,134,0,0, + 4204,4205,5,279,0,0,4205,4207,5,62,0,0,4206,4203,1,0,0,0,4206,4207, + 1,0,0,0,4207,4208,1,0,0,0,4208,4213,3,336,168,0,4209,4210,5,6,0, + 0,4210,4212,3,336,168,0,4211,4209,1,0,0,0,4212,4215,1,0,0,0,4213, + 4211,1,0,0,0,4213,4214,1,0,0,0,4214,4216,1,0,0,0,4215,4213,1,0,0, + 0,4216,4217,5,64,0,0,4217,4221,3,810,405,0,4218,4219,5,214,0,0,4219, + 4220,5,147,0,0,4220,4222,3,808,404,0,4221,4218,1,0,0,0,4221,4222, + 1,0,0,0,4222,4224,1,0,0,0,4223,4225,3,88,44,0,4224,4223,1,0,0,0, + 4224,4225,1,0,0,0,4225,345,1,0,0,0,4226,4227,5,138,0,0,4227,4228, + 5,53,0,0,4228,4237,5,294,0,0,4229,4230,5,68,0,0,4230,4231,5,323, + 0,0,4231,4236,3,758,379,0,4232,4233,5,62,0,0,4233,4234,7,2,0,0,4234, + 4236,3,810,405,0,4235,4229,1,0,0,0,4235,4232,1,0,0,0,4236,4239,1, + 0,0,0,4237,4235,1,0,0,0,4237,4238,1,0,0,0,4238,4240,1,0,0,0,4239, + 4237,1,0,0,0,4240,4241,3,348,174,0,4241,347,1,0,0,0,4242,4243,5, + 65,0,0,4243,4244,3,332,166,0,4244,4245,5,80,0,0,4245,4246,3,350, + 175,0,4246,4247,5,94,0,0,4247,4251,3,340,170,0,4248,4249,5,105,0, + 0,4249,4250,5,65,0,0,4250,4252,5,279,0,0,4251,4248,1,0,0,0,4251, + 4252,1,0,0,0,4252,4268,1,0,0,0,4253,4257,5,317,0,0,4254,4255,5,65, + 0,0,4255,4256,5,279,0,0,4256,4258,5,62,0,0,4257,4254,1,0,0,0,4257, + 4258,1,0,0,0,4258,4259,1,0,0,0,4259,4260,3,332,166,0,4260,4261,5, + 80,0,0,4261,4262,3,350,175,0,4262,4263,5,64,0,0,4263,4265,3,340, + 170,0,4264,4266,3,88,44,0,4265,4264,1,0,0,0,4265,4266,1,0,0,0,4266, + 4268,1,0,0,0,4267,4242,1,0,0,0,4267,4253,1,0,0,0,4268,349,1,0,0, + 0,4269,4270,7,55,0,0,4270,351,1,0,0,0,4271,4273,5,46,0,0,4272,4274, + 5,98,0,0,4273,4272,1,0,0,0,4273,4274,1,0,0,0,4274,4275,1,0,0,0,4275, + 4277,5,226,0,0,4276,4278,5,109,0,0,4277,4276,1,0,0,0,4277,4278,1, + 0,0,0,4278,4280,1,0,0,0,4279,4281,3,288,144,0,4280,4279,1,0,0,0, + 4280,4281,1,0,0,0,4281,4283,1,0,0,0,4282,4284,3,812,406,0,4283,4282, + 1,0,0,0,4283,4284,1,0,0,0,4284,4285,1,0,0,0,4285,4286,5,80,0,0,4286, + 4288,3,618,309,0,4287,4289,3,164,82,0,4288,4287,1,0,0,0,4288,4289, + 1,0,0,0,4289,4290,1,0,0,0,4290,4293,3,354,177,0,4291,4292,5,441, + 0,0,4292,4294,3,354,177,0,4293,4291,1,0,0,0,4293,4294,1,0,0,0,4294, + 4300,1,0,0,0,4295,4297,5,273,0,0,4296,4298,5,77,0,0,4297,4296,1, + 0,0,0,4297,4298,1,0,0,0,4298,4299,1,0,0,0,4299,4301,5,56,0,0,4300, + 4295,1,0,0,0,4300,4301,1,0,0,0,4301,4303,1,0,0,0,4302,4304,3,94, + 47,0,4303,4302,1,0,0,0,4303,4304,1,0,0,0,4304,4306,1,0,0,0,4305, + 4307,3,170,85,0,4306,4305,1,0,0,0,4306,4307,1,0,0,0,4307,4309,1, + 0,0,0,4308,4310,3,632,316,0,4309,4308,1,0,0,0,4309,4310,1,0,0,0, + 4310,353,1,0,0,0,4311,4312,5,2,0,0,4312,4317,3,356,178,0,4313,4314, + 5,6,0,0,4314,4316,3,356,178,0,4315,4313,1,0,0,0,4316,4319,1,0,0, + 0,4317,4315,1,0,0,0,4317,4318,1,0,0,0,4318,4320,1,0,0,0,4319,4317, + 1,0,0,0,4320,4321,5,3,0,0,4321,355,1,0,0,0,4322,4329,3,794,397,0, + 4323,4329,3,682,341,0,4324,4325,5,2,0,0,4325,4326,3,668,334,0,4326, + 4327,5,3,0,0,4327,4329,1,0,0,0,4328,4322,1,0,0,0,4328,4323,1,0,0, + 0,4328,4324,1,0,0,0,4329,4331,1,0,0,0,4330,4332,3,90,45,0,4331,4330, + 1,0,0,0,4331,4332,1,0,0,0,4332,4339,1,0,0,0,4333,4335,3,310,155, + 0,4334,4333,1,0,0,0,4334,4335,1,0,0,0,4335,4340,1,0,0,0,4336,4337, + 3,310,155,0,4337,4338,3,92,46,0,4338,4340,1,0,0,0,4339,4334,1,0, + 0,0,4339,4336,1,0,0,0,4340,4342,1,0,0,0,4341,4343,7,56,0,0,4342, + 4341,1,0,0,0,4342,4343,1,0,0,0,4343,4346,1,0,0,0,4344,4345,5,273, + 0,0,4345,4347,7,57,0,0,4346,4344,1,0,0,0,4346,4347,1,0,0,0,4347, + 357,1,0,0,0,4348,4350,5,46,0,0,4349,4351,3,360,180,0,4350,4349,1, + 0,0,0,4350,4351,1,0,0,0,4351,4356,1,0,0,0,4352,4353,5,211,0,0,4353, + 4357,3,798,399,0,4354,4355,5,296,0,0,4355,4357,3,792,396,0,4356, + 4352,1,0,0,0,4356,4354,1,0,0,0,4357,4358,1,0,0,0,4358,4367,5,2,0, + 0,4359,4364,3,384,192,0,4360,4361,5,6,0,0,4361,4363,3,384,192,0, + 4362,4360,1,0,0,0,4363,4366,1,0,0,0,4364,4362,1,0,0,0,4364,4365, + 1,0,0,0,4365,4368,1,0,0,0,4366,4364,1,0,0,0,4367,4359,1,0,0,0,4367, + 4368,1,0,0,0,4368,4369,1,0,0,0,4369,4370,5,3,0,0,4370,4387,1,0,0, + 0,4371,4385,5,316,0,0,4372,4386,3,382,191,0,4373,4374,5,92,0,0,4374, + 4375,5,2,0,0,4375,4380,3,396,198,0,4376,4377,5,6,0,0,4377,4379,3, + 396,198,0,4378,4376,1,0,0,0,4379,4382,1,0,0,0,4380,4378,1,0,0,0, + 4380,4381,1,0,0,0,4381,4383,1,0,0,0,4382,4380,1,0,0,0,4383,4384, + 5,3,0,0,4384,4386,1,0,0,0,4385,4372,1,0,0,0,4385,4373,1,0,0,0,4386, + 4388,1,0,0,0,4387,4371,1,0,0,0,4387,4388,1,0,0,0,4388,4390,1,0,0, + 0,4389,4391,3,392,196,0,4390,4389,1,0,0,0,4391,4392,1,0,0,0,4392, + 4390,1,0,0,0,4392,4393,1,0,0,0,4393,4399,1,0,0,0,4394,4395,5,105, + 0,0,4395,4396,5,2,0,0,4396,4397,3,778,389,0,4397,4398,5,3,0,0,4398, + 4400,1,0,0,0,4399,4394,1,0,0,0,4399,4400,1,0,0,0,4400,359,1,0,0, + 0,4401,4402,5,82,0,0,4402,4403,5,311,0,0,4403,361,1,0,0,0,4404,4406, + 5,2,0,0,4405,4407,3,364,182,0,4406,4405,1,0,0,0,4406,4407,1,0,0, + 0,4407,4408,1,0,0,0,4408,4409,5,3,0,0,4409,363,1,0,0,0,4410,4415, + 3,378,189,0,4411,4412,5,6,0,0,4412,4414,3,378,189,0,4413,4411,1, + 0,0,0,4414,4417,1,0,0,0,4415,4413,1,0,0,0,4415,4416,1,0,0,0,4416, + 365,1,0,0,0,4417,4415,1,0,0,0,4418,4423,3,368,184,0,4419,4420,5, + 6,0,0,4420,4422,3,368,184,0,4421,4419,1,0,0,0,4422,4425,1,0,0,0, + 4423,4421,1,0,0,0,4423,4424,1,0,0,0,4424,367,1,0,0,0,4425,4423,1, + 0,0,0,4426,4427,3,788,394,0,4427,4428,3,362,181,0,4428,4432,1,0, + 0,0,4429,4432,3,826,413,0,4430,4432,3,774,387,0,4431,4426,1,0,0, + 0,4431,4429,1,0,0,0,4431,4430,1,0,0,0,4432,369,1,0,0,0,4433,4438, + 3,372,186,0,4434,4435,5,6,0,0,4435,4437,3,372,186,0,4436,4434,1, + 0,0,0,4437,4440,1,0,0,0,4438,4436,1,0,0,0,4438,4439,1,0,0,0,4439, + 371,1,0,0,0,4440,4438,1,0,0,0,4441,4442,3,790,395,0,4442,4443,3, + 362,181,0,4443,4447,1,0,0,0,4444,4447,3,826,413,0,4445,4447,3,774, + 387,0,4446,4441,1,0,0,0,4446,4444,1,0,0,0,4446,4445,1,0,0,0,4447, + 373,1,0,0,0,4448,4453,3,376,188,0,4449,4450,5,6,0,0,4450,4452,3, + 376,188,0,4451,4449,1,0,0,0,4452,4455,1,0,0,0,4453,4451,1,0,0,0, + 4453,4454,1,0,0,0,4454,375,1,0,0,0,4455,4453,1,0,0,0,4456,4457,3, + 800,400,0,4457,4458,3,362,181,0,4458,4462,1,0,0,0,4459,4462,3,826, + 413,0,4460,4462,3,774,387,0,4461,4456,1,0,0,0,4461,4459,1,0,0,0, + 4461,4460,1,0,0,0,4462,377,1,0,0,0,4463,4465,3,380,190,0,4464,4466, + 3,814,407,0,4465,4464,1,0,0,0,4465,4466,1,0,0,0,4466,4472,1,0,0, + 0,4467,4469,3,814,407,0,4468,4470,3,380,190,0,4469,4468,1,0,0,0, + 4469,4470,1,0,0,0,4470,4472,1,0,0,0,4471,4463,1,0,0,0,4471,4467, + 1,0,0,0,4471,4472,1,0,0,0,4472,4473,1,0,0,0,4473,4474,3,382,191, + 0,4474,379,1,0,0,0,4475,4477,5,68,0,0,4476,4478,5,453,0,0,4477,4476, + 1,0,0,0,4477,4478,1,0,0,0,4478,4483,1,0,0,0,4479,4483,5,453,0,0, + 4480,4483,5,400,0,0,4481,4483,5,101,0,0,4482,4475,1,0,0,0,4482,4479, + 1,0,0,0,4482,4480,1,0,0,0,4482,4481,1,0,0,0,4483,381,1,0,0,0,4484, + 4494,3,646,323,0,4485,4487,5,415,0,0,4486,4485,1,0,0,0,4486,4487, + 1,0,0,0,4487,4488,1,0,0,0,4488,4489,3,814,407,0,4489,4490,3,312, + 156,0,4490,4491,5,27,0,0,4491,4492,5,360,0,0,4492,4494,1,0,0,0,4493, + 4484,1,0,0,0,4493,4486,1,0,0,0,4494,383,1,0,0,0,4495,4498,3,378, + 189,0,4496,4497,7,58,0,0,4497,4499,3,668,334,0,4498,4496,1,0,0,0, + 4498,4499,1,0,0,0,4499,385,1,0,0,0,4500,4510,5,2,0,0,4501,4511,5, + 9,0,0,4502,4504,3,364,182,0,4503,4502,1,0,0,0,4503,4504,1,0,0,0, + 4504,4508,1,0,0,0,4505,4506,5,83,0,0,4506,4507,5,147,0,0,4507,4509, + 3,364,182,0,4508,4505,1,0,0,0,4508,4509,1,0,0,0,4509,4511,1,0,0, + 0,4510,4501,1,0,0,0,4510,4503,1,0,0,0,4511,4512,1,0,0,0,4512,4513, + 5,3,0,0,4513,387,1,0,0,0,4514,4515,3,800,400,0,4515,4516,3,386,193, + 0,4516,389,1,0,0,0,4517,4518,5,316,0,0,4518,4521,5,78,0,0,4519,4521, + 5,149,0,0,4520,4517,1,0,0,0,4520,4519,1,0,0,0,4521,4522,1,0,0,0, + 4522,4523,5,80,0,0,4523,4524,5,78,0,0,4524,4547,5,458,0,0,4525,4547, + 5,346,0,0,4526,4547,5,222,0,0,4527,4547,5,338,0,0,4528,4547,5,377, + 0,0,4529,4531,5,205,0,0,4530,4529,1,0,0,0,4530,4531,1,0,0,0,4531, + 4532,1,0,0,0,4532,4533,5,327,0,0,4533,4547,7,59,0,0,4534,4547,5, + 250,0,0,4535,4536,5,77,0,0,4536,4547,5,250,0,0,4537,4538,7,60,0, + 0,4538,4547,3,196,98,0,4539,4540,5,459,0,0,4540,4547,3,310,155,0, + 4541,4542,5,333,0,0,4542,4547,3,42,21,0,4543,4547,3,60,30,0,4544, + 4545,5,460,0,0,4545,4547,3,812,406,0,4546,4520,1,0,0,0,4546,4525, + 1,0,0,0,4546,4526,1,0,0,0,4546,4527,1,0,0,0,4546,4528,1,0,0,0,4546, + 4530,1,0,0,0,4546,4534,1,0,0,0,4546,4535,1,0,0,0,4546,4537,1,0,0, + 0,4546,4539,1,0,0,0,4546,4541,1,0,0,0,4546,4543,1,0,0,0,4546,4544, + 1,0,0,0,4547,391,1,0,0,0,4548,4549,5,36,0,0,4549,4550,3,802,401, + 0,4550,4551,3,456,228,0,4551,4584,1,0,0,0,4552,4553,5,247,0,0,4553, + 4584,3,58,29,0,4554,4555,5,443,0,0,4555,4556,5,62,0,0,4556,4557, + 5,360,0,0,4557,4564,3,646,323,0,4558,4559,5,6,0,0,4559,4560,5,62, + 0,0,4560,4561,5,360,0,0,4561,4563,3,646,323,0,4562,4558,1,0,0,0, + 4563,4566,1,0,0,0,4564,4562,1,0,0,0,4564,4565,1,0,0,0,4565,4584, + 1,0,0,0,4566,4564,1,0,0,0,4567,4584,5,104,0,0,4568,4569,5,333,0, + 0,4569,4576,3,812,406,0,4570,4571,5,94,0,0,4571,4577,3,812,406,0, + 4572,4573,5,10,0,0,4573,4577,3,812,406,0,4574,4575,5,64,0,0,4575, + 4577,5,434,0,0,4576,4570,1,0,0,0,4576,4572,1,0,0,0,4576,4574,1,0, + 0,0,4577,4584,1,0,0,0,4578,4579,5,36,0,0,4579,4584,3,812,406,0,4580, + 4584,3,4,2,0,4581,4584,3,390,195,0,4582,4584,3,812,406,0,4583,4548, + 1,0,0,0,4583,4552,1,0,0,0,4583,4554,1,0,0,0,4583,4567,1,0,0,0,4583, + 4568,1,0,0,0,4583,4578,1,0,0,0,4583,4580,1,0,0,0,4583,4581,1,0,0, + 0,4583,4582,1,0,0,0,4584,393,1,0,0,0,4585,4586,5,105,0,0,4586,4587, + 3,278,139,0,4587,395,1,0,0,0,4588,4589,3,794,397,0,4589,4590,3,382, + 191,0,4590,397,1,0,0,0,4591,4598,5,138,0,0,4592,4593,5,211,0,0,4593, + 4599,3,376,188,0,4594,4595,5,296,0,0,4595,4599,3,372,186,0,4596, + 4597,5,442,0,0,4597,4599,3,368,184,0,4598,4592,1,0,0,0,4598,4594, + 1,0,0,0,4598,4596,1,0,0,0,4599,4601,1,0,0,0,4600,4602,3,390,195, + 0,4601,4600,1,0,0,0,4602,4603,1,0,0,0,4603,4601,1,0,0,0,4603,4604, + 1,0,0,0,4604,4606,1,0,0,0,4605,4607,5,315,0,0,4606,4605,1,0,0,0, + 4606,4607,1,0,0,0,4607,399,1,0,0,0,4608,4624,5,191,0,0,4609,4611, + 5,211,0,0,4610,4612,3,416,208,0,4611,4610,1,0,0,0,4611,4612,1,0, + 0,0,4612,4613,1,0,0,0,4613,4625,3,374,187,0,4614,4616,5,296,0,0, + 4615,4617,3,416,208,0,4616,4615,1,0,0,0,4616,4617,1,0,0,0,4617,4618, + 1,0,0,0,4618,4625,3,370,185,0,4619,4621,5,442,0,0,4620,4622,3,416, + 208,0,4621,4620,1,0,0,0,4621,4622,1,0,0,0,4622,4623,1,0,0,0,4623, + 4625,3,366,183,0,4624,4609,1,0,0,0,4624,4614,1,0,0,0,4624,4619,1, + 0,0,0,4625,4627,1,0,0,0,4626,4628,3,88,44,0,4627,4626,1,0,0,0,4627, + 4628,1,0,0,0,4628,401,1,0,0,0,4629,4630,5,191,0,0,4630,4632,5,136, + 0,0,4631,4633,3,416,208,0,4632,4631,1,0,0,0,4632,4633,1,0,0,0,4633, + 4634,1,0,0,0,4634,4639,3,388,194,0,4635,4636,5,6,0,0,4636,4638,3, + 388,194,0,4637,4635,1,0,0,0,4638,4641,1,0,0,0,4639,4637,1,0,0,0, + 4639,4640,1,0,0,0,4640,4643,1,0,0,0,4641,4639,1,0,0,0,4642,4644, + 3,88,44,0,4643,4642,1,0,0,0,4643,4644,1,0,0,0,4644,403,1,0,0,0,4645, + 4646,5,191,0,0,4646,4648,5,278,0,0,4647,4649,3,416,208,0,4648,4647, + 1,0,0,0,4648,4649,1,0,0,0,4649,4650,1,0,0,0,4650,4655,3,410,205, + 0,4651,4652,5,6,0,0,4652,4654,3,410,205,0,4653,4651,1,0,0,0,4654, + 4657,1,0,0,0,4655,4653,1,0,0,0,4655,4656,1,0,0,0,4656,4659,1,0,0, + 0,4657,4655,1,0,0,0,4658,4660,3,88,44,0,4659,4658,1,0,0,0,4659,4660, + 1,0,0,0,4660,405,1,0,0,0,4661,4674,5,2,0,0,4662,4665,3,646,323,0, + 4663,4664,5,6,0,0,4664,4666,3,646,323,0,4665,4663,1,0,0,0,4665,4666, + 1,0,0,0,4666,4675,1,0,0,0,4667,4668,5,407,0,0,4668,4669,5,6,0,0, + 4669,4675,3,646,323,0,4670,4671,3,646,323,0,4671,4672,5,6,0,0,4672, + 4673,5,407,0,0,4673,4675,1,0,0,0,4674,4662,1,0,0,0,4674,4667,1,0, + 0,0,4674,4670,1,0,0,0,4675,4676,1,0,0,0,4676,4677,5,3,0,0,4677,407, + 1,0,0,0,4678,4679,3,812,406,0,4679,4680,5,11,0,0,4680,4682,1,0,0, + 0,4681,4678,1,0,0,0,4682,4685,1,0,0,0,4683,4681,1,0,0,0,4683,4684, + 1,0,0,0,4684,4686,1,0,0,0,4685,4683,1,0,0,0,4686,4687,3,714,357, + 0,4687,409,1,0,0,0,4688,4689,3,408,204,0,4689,4690,3,406,203,0,4690, + 411,1,0,0,0,4691,4695,5,57,0,0,4692,4696,3,802,401,0,4693,4694,5, + 247,0,0,4694,4696,3,58,29,0,4695,4692,1,0,0,0,4695,4693,1,0,0,0, + 4696,4697,1,0,0,0,4697,4695,1,0,0,0,4697,4698,1,0,0,0,4698,413,1, + 0,0,0,4699,4700,5,46,0,0,4700,4701,5,41,0,0,4701,4702,5,2,0,0,4702, + 4703,3,646,323,0,4703,4704,5,36,0,0,4704,4705,3,646,323,0,4705,4722, + 5,3,0,0,4706,4707,5,379,0,0,4707,4710,5,211,0,0,4708,4709,5,36,0, + 0,4709,4711,7,61,0,0,4710,4708,1,0,0,0,4710,4711,1,0,0,0,4711,4723, + 1,0,0,0,4712,4716,5,105,0,0,4713,4714,5,211,0,0,4714,4717,3,376, + 188,0,4715,4717,5,400,0,0,4716,4713,1,0,0,0,4716,4715,1,0,0,0,4717, + 4720,1,0,0,0,4718,4719,5,36,0,0,4719,4721,7,61,0,0,4720,4718,1,0, + 0,0,4720,4721,1,0,0,0,4721,4723,1,0,0,0,4722,4706,1,0,0,0,4722,4712, + 1,0,0,0,4723,415,1,0,0,0,4724,4725,5,220,0,0,4725,4726,5,396,0,0, + 4726,417,1,0,0,0,4727,4729,5,46,0,0,4728,4730,3,360,180,0,4729,4728, + 1,0,0,0,4729,4730,1,0,0,0,4730,4731,1,0,0,0,4731,4732,5,443,0,0, + 4732,4733,5,62,0,0,4733,4734,3,646,323,0,4734,4735,5,247,0,0,4735, + 4736,3,812,406,0,4736,4751,5,2,0,0,4737,4738,5,64,0,0,4738,4742, + 3,420,210,0,4739,4740,5,6,0,0,4740,4741,5,94,0,0,4741,4743,3,420, + 210,0,4742,4739,1,0,0,0,4742,4743,1,0,0,0,4743,4752,1,0,0,0,4744, + 4745,5,94,0,0,4745,4749,3,420,210,0,4746,4747,5,6,0,0,4747,4748, + 5,64,0,0,4748,4750,3,420,210,0,4749,4746,1,0,0,0,4749,4750,1,0,0, + 0,4750,4752,1,0,0,0,4751,4737,1,0,0,0,4751,4744,1,0,0,0,4752,4753, + 1,0,0,0,4753,4754,5,3,0,0,4754,419,1,0,0,0,4755,4756,5,461,0,0,4756, + 4757,5,105,0,0,4757,4758,5,211,0,0,4758,4759,3,376,188,0,4759,421, + 1,0,0,0,4760,4771,5,306,0,0,4761,4762,5,2,0,0,4762,4767,5,128,0, + 0,4763,4764,5,6,0,0,4764,4766,5,128,0,0,4765,4763,1,0,0,0,4766,4769, + 1,0,0,0,4767,4765,1,0,0,0,4767,4768,1,0,0,0,4768,4770,1,0,0,0,4769, + 4767,1,0,0,0,4770,4772,5,3,0,0,4771,4761,1,0,0,0,4771,4772,1,0,0, + 0,4772,4798,1,0,0,0,4773,4775,5,226,0,0,4774,4776,5,109,0,0,4775, + 4774,1,0,0,0,4775,4776,1,0,0,0,4776,4777,1,0,0,0,4777,4799,3,774, + 387,0,4778,4780,5,92,0,0,4779,4781,5,109,0,0,4780,4779,1,0,0,0,4780, + 4781,1,0,0,0,4781,4782,1,0,0,0,4782,4799,3,768,384,0,4783,4785,5, + 323,0,0,4784,4786,5,109,0,0,4785,4784,1,0,0,0,4785,4786,1,0,0,0, + 4786,4787,1,0,0,0,4787,4799,3,784,392,0,4788,4790,5,349,0,0,4789, + 4791,5,109,0,0,4790,4789,1,0,0,0,4790,4791,1,0,0,0,4791,4792,1,0, + 0,0,4792,4799,3,812,406,0,4793,4795,5,175,0,0,4794,4796,5,109,0, + 0,4795,4794,1,0,0,0,4795,4796,1,0,0,0,4796,4797,1,0,0,0,4797,4799, + 3,782,391,0,4798,4773,1,0,0,0,4798,4778,1,0,0,0,4798,4783,1,0,0, + 0,4798,4788,1,0,0,0,4798,4793,1,0,0,0,4799,423,1,0,0,0,4800,4801, + 5,138,0,0,4801,4802,3,170,85,0,4802,4803,7,16,0,0,4803,4804,3,92, + 46,0,4804,425,1,0,0,0,4805,4810,5,138,0,0,4806,4807,5,136,0,0,4807, + 4811,3,388,194,0,4808,4809,5,442,0,0,4809,4811,3,368,184,0,4810, + 4806,1,0,0,0,4810,4808,1,0,0,0,4811,4812,1,0,0,0,4812,4813,5,309, + 0,0,4813,4814,5,94,0,0,4814,4815,3,812,406,0,4815,5013,1,0,0,0,4816, + 4817,5,138,0,0,4817,4818,5,175,0,0,4818,4819,3,782,391,0,4819,4820, + 5,309,0,0,4820,4821,5,94,0,0,4821,4822,3,780,390,0,4822,5013,1,0, + 0,0,4823,4824,5,138,0,0,4824,4825,7,62,0,0,4825,4826,3,310,155,0, + 4826,4827,5,309,0,0,4827,4828,5,94,0,0,4828,4829,3,812,406,0,4829, + 5013,1,0,0,0,4830,4831,5,138,0,0,4831,4832,5,211,0,0,4832,4833,3, + 376,188,0,4833,4834,5,309,0,0,4834,4835,5,94,0,0,4835,4836,3,798, + 399,0,4836,5013,1,0,0,0,4837,4838,5,138,0,0,4838,4839,5,278,0,0, + 4839,4840,7,32,0,0,4840,4841,3,310,155,0,4841,4842,3,164,82,0,4842, + 4843,5,309,0,0,4843,4844,5,94,0,0,4844,4845,3,812,406,0,4845,5013, + 1,0,0,0,4846,4847,5,138,0,0,4847,4848,5,296,0,0,4848,4849,3,372, + 186,0,4849,4850,5,309,0,0,4850,4851,5,94,0,0,4851,4852,3,792,396, + 0,4852,5013,1,0,0,0,4853,4854,5,138,0,0,4854,4855,5,323,0,0,4855, + 4856,3,784,392,0,4856,4857,5,309,0,0,4857,4858,5,94,0,0,4858,4859, + 3,32,16,0,4859,5013,1,0,0,0,4860,4861,5,138,0,0,4861,4863,7,63,0, + 0,4862,4864,3,416,208,0,4863,4862,1,0,0,0,4863,4864,1,0,0,0,4864, + 4865,1,0,0,0,4865,4866,3,774,387,0,4866,4867,5,309,0,0,4867,4868, + 5,94,0,0,4868,4869,3,812,406,0,4869,5013,1,0,0,0,4870,4872,5,138, + 0,0,4871,4873,5,259,0,0,4872,4871,1,0,0,0,4872,4873,1,0,0,0,4873, + 4874,1,0,0,0,4874,4876,5,376,0,0,4875,4877,3,416,208,0,4876,4875, + 1,0,0,0,4876,4877,1,0,0,0,4877,4878,1,0,0,0,4878,4879,3,772,386, + 0,4879,4880,5,309,0,0,4880,4881,5,94,0,0,4881,4882,3,770,385,0,4882, + 5013,1,0,0,0,4883,4885,5,138,0,0,4884,4886,5,63,0,0,4885,4884,1, + 0,0,0,4885,4886,1,0,0,0,4886,4887,1,0,0,0,4887,4889,5,92,0,0,4888, + 4890,3,416,208,0,4889,4888,1,0,0,0,4889,4890,1,0,0,0,4890,4891,1, + 0,0,0,4891,4892,3,618,309,0,4892,4893,5,309,0,0,4893,4894,5,94,0, + 0,4894,4895,3,766,383,0,4895,5013,1,0,0,0,4896,4921,5,138,0,0,4897, + 4899,5,63,0,0,4898,4897,1,0,0,0,4898,4899,1,0,0,0,4899,4900,1,0, + 0,0,4900,4902,5,92,0,0,4901,4903,3,416,208,0,4902,4901,1,0,0,0,4902, + 4903,1,0,0,0,4903,4904,1,0,0,0,4904,4905,3,618,309,0,4905,4907,5, + 309,0,0,4906,4908,5,44,0,0,4907,4906,1,0,0,0,4907,4908,1,0,0,0,4908, + 4922,1,0,0,0,4909,4911,5,259,0,0,4910,4909,1,0,0,0,4910,4911,1,0, + 0,0,4911,4912,1,0,0,0,4912,4914,5,376,0,0,4913,4915,3,416,208,0, + 4914,4913,1,0,0,0,4914,4915,1,0,0,0,4915,4916,1,0,0,0,4916,4917, + 3,772,386,0,4917,4919,5,309,0,0,4918,4920,5,44,0,0,4919,4918,1,0, + 0,0,4919,4920,1,0,0,0,4920,4922,1,0,0,0,4921,4898,1,0,0,0,4921,4910, + 1,0,0,0,4922,4923,1,0,0,0,4923,4924,3,794,397,0,4924,4925,5,94,0, + 0,4925,4926,3,796,398,0,4926,5013,1,0,0,0,4927,4935,5,138,0,0,4928, + 4930,5,92,0,0,4929,4931,3,416,208,0,4930,4929,1,0,0,0,4930,4931, + 1,0,0,0,4931,4932,1,0,0,0,4932,4936,3,618,309,0,4933,4934,5,189, + 0,0,4934,4936,3,310,155,0,4935,4928,1,0,0,0,4935,4933,1,0,0,0,4936, + 4937,1,0,0,0,4937,4938,5,309,0,0,4938,4939,5,45,0,0,4939,4940,3, + 812,406,0,4940,4941,5,94,0,0,4941,4942,3,812,406,0,4942,5013,1,0, + 0,0,4943,4950,5,138,0,0,4944,4946,5,445,0,0,4945,4947,3,416,208, + 0,4946,4945,1,0,0,0,4946,4947,1,0,0,0,4947,4951,1,0,0,0,4948,4951, + 5,321,0,0,4949,4951,5,357,0,0,4950,4944,1,0,0,0,4950,4948,1,0,0, + 0,4950,4949,1,0,0,0,4951,4952,1,0,0,0,4952,4953,3,812,406,0,4953, + 4954,5,80,0,0,4954,4955,3,774,387,0,4955,4956,5,309,0,0,4956,4957, + 5,94,0,0,4957,4958,3,812,406,0,4958,5013,1,0,0,0,4959,4972,5,138, + 0,0,4960,4961,5,63,0,0,4961,4962,5,174,0,0,4962,4973,5,381,0,0,4963, + 4965,5,295,0,0,4964,4963,1,0,0,0,4964,4965,1,0,0,0,4965,4966,1,0, + 0,0,4966,4973,5,247,0,0,4967,4973,5,452,0,0,4968,4973,5,331,0,0, + 4969,4973,5,451,0,0,4970,4971,5,198,0,0,4971,4973,5,357,0,0,4972, + 4960,1,0,0,0,4972,4964,1,0,0,0,4972,4967,1,0,0,0,4972,4968,1,0,0, + 0,4972,4969,1,0,0,0,4972,4970,1,0,0,0,4973,4974,1,0,0,0,4974,4975, + 3,812,406,0,4975,4976,5,309,0,0,4976,4977,5,94,0,0,4977,4978,3,812, + 406,0,4978,5013,1,0,0,0,4979,4980,5,138,0,0,4980,4981,7,46,0,0,4981, + 4982,3,808,404,0,4982,4983,5,309,0,0,4983,4984,5,94,0,0,4984,4985, + 3,808,404,0,4985,5013,1,0,0,0,4986,4987,5,138,0,0,4987,4988,3,170, + 85,0,4988,4989,5,309,0,0,4989,4990,5,94,0,0,4990,4991,3,764,382, + 0,4991,5013,1,0,0,0,4992,4993,5,138,0,0,4993,4994,5,355,0,0,4994, + 4995,5,325,0,0,4995,4996,7,42,0,0,4996,4997,3,310,155,0,4997,4998, + 5,309,0,0,4998,4999,5,94,0,0,4999,5000,3,812,406,0,5000,5013,1,0, + 0,0,5001,5002,5,138,0,0,5002,5003,5,360,0,0,5003,5004,3,310,155, + 0,5004,5005,5,309,0,0,5005,5006,5,143,0,0,5006,5007,3,812,406,0, + 5007,5008,5,94,0,0,5008,5010,3,812,406,0,5009,5011,3,88,44,0,5010, + 5009,1,0,0,0,5010,5011,1,0,0,0,5011,5013,1,0,0,0,5012,4805,1,0,0, + 0,5012,4816,1,0,0,0,5012,4823,1,0,0,0,5012,4830,1,0,0,0,5012,4837, + 1,0,0,0,5012,4846,1,0,0,0,5012,4853,1,0,0,0,5012,4860,1,0,0,0,5012, + 4870,1,0,0,0,5012,4883,1,0,0,0,5012,4896,1,0,0,0,5012,4927,1,0,0, + 0,5012,4943,1,0,0,0,5012,4959,1,0,0,0,5012,4979,1,0,0,0,5012,4986, + 1,0,0,0,5012,4992,1,0,0,0,5012,5001,1,0,0,0,5013,427,1,0,0,0,5014, + 5031,5,138,0,0,5015,5016,5,211,0,0,5016,5032,3,376,188,0,5017,5018, + 5,296,0,0,5018,5032,3,372,186,0,5019,5020,5,442,0,0,5020,5032,3, + 368,184,0,5021,5022,5,357,0,0,5022,5023,3,812,406,0,5023,5024,5, + 80,0,0,5024,5025,3,774,387,0,5025,5032,1,0,0,0,5026,5027,5,259,0, + 0,5027,5028,5,376,0,0,5028,5032,3,772,386,0,5029,5030,5,226,0,0, + 5030,5032,3,774,387,0,5031,5015,1,0,0,0,5031,5017,1,0,0,0,5031,5019, + 1,0,0,0,5031,5021,1,0,0,0,5031,5026,1,0,0,0,5031,5029,1,0,0,0,5032, + 5034,1,0,0,0,5033,5035,5,269,0,0,5034,5033,1,0,0,0,5034,5035,1,0, + 0,0,5035,5036,1,0,0,0,5036,5037,5,462,0,0,5037,5038,5,80,0,0,5038, + 5039,5,204,0,0,5039,5040,3,812,406,0,5040,429,1,0,0,0,5041,5080, + 5,138,0,0,5042,5043,5,136,0,0,5043,5081,3,388,194,0,5044,5045,5, + 204,0,0,5045,5081,3,812,406,0,5046,5047,5,211,0,0,5047,5081,3,376, + 188,0,5048,5049,5,278,0,0,5049,5081,3,410,205,0,5050,5051,5,278, + 0,0,5051,5052,7,32,0,0,5052,5053,3,310,155,0,5053,5054,3,164,82, + 0,5054,5081,1,0,0,0,5055,5056,5,296,0,0,5056,5081,3,372,186,0,5057, + 5058,5,442,0,0,5058,5081,3,368,184,0,5059,5061,5,328,0,0,5060,5062, + 3,416,208,0,5061,5060,1,0,0,0,5061,5062,1,0,0,0,5062,5063,1,0,0, + 0,5063,5081,3,774,387,0,5064,5066,5,259,0,0,5065,5064,1,0,0,0,5065, + 5066,1,0,0,0,5066,5067,1,0,0,0,5067,5069,5,376,0,0,5068,5070,3,416, + 208,0,5069,5068,1,0,0,0,5069,5070,1,0,0,0,5070,5071,1,0,0,0,5071, + 5081,3,772,386,0,5072,5074,5,63,0,0,5073,5072,1,0,0,0,5073,5074, + 1,0,0,0,5074,5075,1,0,0,0,5075,5077,5,92,0,0,5076,5078,3,416,208, + 0,5077,5076,1,0,0,0,5077,5078,1,0,0,0,5078,5079,1,0,0,0,5079,5081, + 3,618,309,0,5080,5042,1,0,0,0,5080,5044,1,0,0,0,5080,5046,1,0,0, + 0,5080,5048,1,0,0,0,5080,5050,1,0,0,0,5080,5055,1,0,0,0,5080,5057, + 1,0,0,0,5080,5059,1,0,0,0,5080,5065,1,0,0,0,5080,5073,1,0,0,0,5081, + 5082,1,0,0,0,5082,5083,5,333,0,0,5083,5084,5,323,0,0,5084,5085,3, + 784,392,0,5085,5103,1,0,0,0,5086,5095,5,138,0,0,5087,5088,5,355, + 0,0,5088,5089,5,325,0,0,5089,5096,7,42,0,0,5090,5096,5,108,0,0,5091, + 5096,5,168,0,0,5092,5096,5,189,0,0,5093,5096,5,342,0,0,5094,5096, + 5,360,0,0,5095,5087,1,0,0,0,5095,5090,1,0,0,0,5095,5091,1,0,0,0, + 5095,5092,1,0,0,0,5095,5093,1,0,0,0,5095,5094,1,0,0,0,5096,5097, + 1,0,0,0,5097,5098,3,310,155,0,5098,5099,5,333,0,0,5099,5100,5,323, + 0,0,5100,5101,3,784,392,0,5101,5103,1,0,0,0,5102,5041,1,0,0,0,5102, + 5086,1,0,0,0,5103,431,1,0,0,0,5104,5105,5,138,0,0,5105,5106,5,278, + 0,0,5106,5107,3,410,205,0,5107,5108,5,333,0,0,5108,5109,3,434,217, + 0,5109,433,1,0,0,0,5110,5111,5,2,0,0,5111,5116,3,436,218,0,5112, + 5113,5,6,0,0,5113,5115,3,436,218,0,5114,5112,1,0,0,0,5115,5118,1, + 0,0,0,5116,5114,1,0,0,0,5116,5117,1,0,0,0,5117,5119,1,0,0,0,5118, + 5116,1,0,0,0,5119,5120,5,3,0,0,5120,435,1,0,0,0,5121,5122,3,818, + 409,0,5122,5129,5,10,0,0,5123,5130,5,407,0,0,5124,5130,3,382,191, + 0,5125,5130,3,828,414,0,5126,5130,3,720,360,0,5127,5130,3,196,98, + 0,5128,5130,3,802,401,0,5129,5123,1,0,0,0,5129,5124,1,0,0,0,5129, + 5125,1,0,0,0,5129,5126,1,0,0,0,5129,5127,1,0,0,0,5129,5128,1,0,0, + 0,5130,437,1,0,0,0,5131,5132,5,138,0,0,5132,5133,5,360,0,0,5133, + 5134,3,310,155,0,5134,5135,5,333,0,0,5135,5136,3,434,217,0,5136, + 439,1,0,0,0,5137,5138,5,138,0,0,5138,5139,5,278,0,0,5139,5140,7, + 32,0,0,5140,5141,3,310,155,0,5141,5142,3,164,82,0,5142,5143,5,282, + 0,0,5143,5144,5,94,0,0,5144,5145,3,808,404,0,5145,5212,1,0,0,0,5146, + 5173,5,138,0,0,5147,5148,5,136,0,0,5148,5174,3,388,194,0,5149,5150, + 5,175,0,0,5150,5174,3,782,391,0,5151,5152,5,211,0,0,5152,5174,3, + 376,188,0,5153,5155,5,295,0,0,5154,5153,1,0,0,0,5154,5155,1,0,0, + 0,5155,5156,1,0,0,0,5156,5157,5,247,0,0,5157,5174,3,812,406,0,5158, + 5159,5,248,0,0,5159,5160,5,274,0,0,5160,5174,3,196,98,0,5161,5162, + 5,248,0,0,5162,5163,5,274,0,0,5163,5174,3,196,98,0,5164,5165,5,278, + 0,0,5165,5174,3,410,205,0,5166,5167,5,296,0,0,5167,5174,3,372,186, + 0,5168,5169,5,442,0,0,5169,5174,3,368,184,0,5170,5171,5,323,0,0, + 5171,5174,3,784,392,0,5172,5174,3,170,85,0,5173,5147,1,0,0,0,5173, + 5149,1,0,0,0,5173,5151,1,0,0,0,5173,5154,1,0,0,0,5173,5158,1,0,0, + 0,5173,5161,1,0,0,0,5173,5164,1,0,0,0,5173,5166,1,0,0,0,5173,5168, + 1,0,0,0,5173,5170,1,0,0,0,5173,5172,1,0,0,0,5174,5175,1,0,0,0,5175, + 5176,5,282,0,0,5176,5177,5,94,0,0,5177,5178,3,808,404,0,5178,5212, + 1,0,0,0,5179,5188,5,138,0,0,5180,5181,5,355,0,0,5181,5182,5,325, + 0,0,5182,5189,7,64,0,0,5183,5189,5,108,0,0,5184,5189,5,168,0,0,5185, + 5189,5,189,0,0,5186,5189,5,360,0,0,5187,5189,5,342,0,0,5188,5180, + 1,0,0,0,5188,5183,1,0,0,0,5188,5184,1,0,0,0,5188,5185,1,0,0,0,5188, + 5186,1,0,0,0,5188,5187,1,0,0,0,5189,5190,1,0,0,0,5190,5191,3,310, + 155,0,5191,5192,5,282,0,0,5192,5193,5,94,0,0,5193,5194,3,808,404, + 0,5194,5212,1,0,0,0,5195,5204,5,138,0,0,5196,5205,5,331,0,0,5197, + 5198,5,63,0,0,5198,5199,5,174,0,0,5199,5205,5,381,0,0,5200,5201, + 5,198,0,0,5201,5205,5,357,0,0,5202,5205,5,452,0,0,5203,5205,5,451, + 0,0,5204,5196,1,0,0,0,5204,5197,1,0,0,0,5204,5200,1,0,0,0,5204,5202, + 1,0,0,0,5204,5203,1,0,0,0,5205,5206,1,0,0,0,5206,5207,3,812,406, + 0,5207,5208,5,282,0,0,5208,5209,5,94,0,0,5209,5210,3,808,404,0,5210, + 5212,1,0,0,0,5211,5137,1,0,0,0,5211,5146,1,0,0,0,5211,5179,1,0,0, + 0,5211,5195,1,0,0,0,5212,441,1,0,0,0,5213,5214,5,46,0,0,5214,5215, + 5,452,0,0,5215,5222,3,812,406,0,5216,5217,5,62,0,0,5217,5218,5,92, + 0,0,5218,5223,3,622,311,0,5219,5220,5,62,0,0,5220,5221,5,30,0,0, + 5221,5223,5,350,0,0,5222,5216,1,0,0,0,5222,5219,1,0,0,0,5222,5223, + 1,0,0,0,5223,5225,1,0,0,0,5224,5226,3,394,197,0,5225,5224,1,0,0, + 0,5225,5226,1,0,0,0,5226,443,1,0,0,0,5227,5228,5,138,0,0,5228,5229, + 5,452,0,0,5229,5247,3,812,406,0,5230,5231,5,282,0,0,5231,5232,5, + 94,0,0,5232,5248,3,808,404,0,5233,5234,5,333,0,0,5234,5248,3,278, + 139,0,5235,5236,5,309,0,0,5236,5237,5,94,0,0,5237,5248,3,812,406, + 0,5238,5239,7,35,0,0,5239,5244,3,620,310,0,5240,5241,5,6,0,0,5241, + 5243,3,620,310,0,5242,5240,1,0,0,0,5243,5246,1,0,0,0,5244,5242,1, + 0,0,0,5244,5245,1,0,0,0,5245,5248,1,0,0,0,5246,5244,1,0,0,0,5247, + 5230,1,0,0,0,5247,5233,1,0,0,0,5247,5235,1,0,0,0,5247,5238,1,0,0, + 0,5248,445,1,0,0,0,5249,5250,5,46,0,0,5250,5251,5,451,0,0,5251,5252, + 3,812,406,0,5252,5253,5,164,0,0,5253,5254,3,802,401,0,5254,5255, + 5,452,0,0,5255,5260,3,818,409,0,5256,5257,5,6,0,0,5257,5259,3,818, + 409,0,5258,5256,1,0,0,0,5259,5262,1,0,0,0,5260,5258,1,0,0,0,5260, + 5261,1,0,0,0,5261,5264,1,0,0,0,5262,5260,1,0,0,0,5263,5265,3,394, + 197,0,5264,5263,1,0,0,0,5264,5265,1,0,0,0,5265,447,1,0,0,0,5266, + 5267,5,138,0,0,5267,5268,5,451,0,0,5268,5269,3,812,406,0,5269,5270, + 5,333,0,0,5270,5271,3,278,139,0,5271,5323,1,0,0,0,5272,5273,5,138, + 0,0,5273,5274,5,451,0,0,5274,5275,3,812,406,0,5275,5276,5,164,0, + 0,5276,5277,3,802,401,0,5277,5323,1,0,0,0,5278,5279,5,138,0,0,5279, + 5280,5,451,0,0,5280,5281,3,812,406,0,5281,5282,5,305,0,0,5282,5284, + 5,452,0,0,5283,5285,3,394,197,0,5284,5283,1,0,0,0,5284,5285,1,0, + 0,0,5285,5323,1,0,0,0,5286,5287,5,138,0,0,5287,5288,5,451,0,0,5288, + 5289,3,812,406,0,5289,5290,7,35,0,0,5290,5291,5,452,0,0,5291,5296, + 3,818,409,0,5292,5293,5,6,0,0,5293,5295,3,818,409,0,5294,5292,1, + 0,0,0,5295,5298,1,0,0,0,5296,5294,1,0,0,0,5296,5297,1,0,0,0,5297, + 5300,1,0,0,0,5298,5296,1,0,0,0,5299,5301,3,394,197,0,5300,5299,1, + 0,0,0,5300,5301,1,0,0,0,5301,5323,1,0,0,0,5302,5303,5,138,0,0,5303, + 5304,5,451,0,0,5304,5305,3,812,406,0,5305,5306,7,65,0,0,5306,5323, + 1,0,0,0,5307,5308,5,138,0,0,5308,5309,5,451,0,0,5309,5310,3,812, + 406,0,5310,5311,5,465,0,0,5311,5312,5,2,0,0,5312,5313,3,284,142, + 0,5313,5314,5,3,0,0,5314,5323,1,0,0,0,5315,5316,5,138,0,0,5316,5317, + 5,451,0,0,5317,5318,3,812,406,0,5318,5319,5,282,0,0,5319,5320,5, + 94,0,0,5320,5321,3,808,404,0,5321,5323,1,0,0,0,5322,5266,1,0,0,0, + 5322,5272,1,0,0,0,5322,5278,1,0,0,0,5322,5286,1,0,0,0,5322,5302, + 1,0,0,0,5322,5307,1,0,0,0,5322,5315,1,0,0,0,5323,449,1,0,0,0,5324, + 5326,5,46,0,0,5325,5327,3,360,180,0,5326,5325,1,0,0,0,5326,5327, + 1,0,0,0,5327,5328,1,0,0,0,5328,5329,5,321,0,0,5329,5330,3,812,406, + 0,5330,5331,5,36,0,0,5331,5332,5,80,0,0,5332,5333,7,66,0,0,5333, + 5334,5,94,0,0,5334,5336,3,774,387,0,5335,5337,3,632,316,0,5336,5335, + 1,0,0,0,5336,5337,1,0,0,0,5337,5338,1,0,0,0,5338,5340,5,57,0,0,5339, + 5341,7,67,0,0,5340,5339,1,0,0,0,5340,5341,1,0,0,0,5341,5358,1,0, + 0,0,5342,5359,5,270,0,0,5343,5359,3,452,226,0,5344,5346,5,2,0,0, + 5345,5347,3,452,226,0,5346,5345,1,0,0,0,5346,5347,1,0,0,0,5347,5354, + 1,0,0,0,5348,5350,5,7,0,0,5349,5351,3,452,226,0,5350,5349,1,0,0, + 0,5350,5351,1,0,0,0,5351,5353,1,0,0,0,5352,5348,1,0,0,0,5353,5356, + 1,0,0,0,5354,5352,1,0,0,0,5354,5355,1,0,0,0,5355,5357,1,0,0,0,5356, + 5354,1,0,0,0,5357,5359,5,3,0,0,5358,5342,1,0,0,0,5358,5343,1,0,0, + 0,5358,5344,1,0,0,0,5359,451,1,0,0,0,5360,5366,3,554,277,0,5361, + 5366,3,532,266,0,5362,5366,3,546,273,0,5363,5366,3,542,271,0,5364, + 5366,3,454,227,0,5365,5360,1,0,0,0,5365,5361,1,0,0,0,5365,5362,1, + 0,0,0,5365,5363,1,0,0,0,5365,5364,1,0,0,0,5366,453,1,0,0,0,5367, + 5368,5,271,0,0,5368,5370,3,812,406,0,5369,5371,3,456,228,0,5370, + 5369,1,0,0,0,5370,5371,1,0,0,0,5371,455,1,0,0,0,5372,5373,5,6,0, + 0,5373,5374,3,802,401,0,5374,457,1,0,0,0,5375,5376,5,252,0,0,5376, + 5377,3,812,406,0,5377,459,1,0,0,0,5378,5381,5,366,0,0,5379,5382, + 3,812,406,0,5380,5382,5,9,0,0,5381,5379,1,0,0,0,5381,5380,1,0,0, + 0,5382,461,1,0,0,0,5383,5385,5,146,0,0,5384,5386,3,464,232,0,5385, + 5384,1,0,0,0,5385,5386,1,0,0,0,5386,5388,1,0,0,0,5387,5389,3,468, + 234,0,5388,5387,1,0,0,0,5388,5389,1,0,0,0,5389,5429,1,0,0,0,5390, + 5391,5,340,0,0,5391,5393,5,356,0,0,5392,5394,3,468,234,0,5393,5392, + 1,0,0,0,5393,5394,1,0,0,0,5394,5429,1,0,0,0,5395,5396,5,322,0,0, + 5396,5429,3,812,406,0,5397,5399,5,308,0,0,5398,5400,5,322,0,0,5399, + 5398,1,0,0,0,5399,5400,1,0,0,0,5400,5401,1,0,0,0,5401,5429,3,812, + 406,0,5402,5403,5,290,0,0,5403,5404,5,356,0,0,5404,5429,3,802,401, + 0,5405,5406,7,68,0,0,5406,5407,5,291,0,0,5407,5429,3,802,401,0,5408, + 5410,7,69,0,0,5409,5411,3,464,232,0,5410,5409,1,0,0,0,5410,5411, + 1,0,0,0,5411,5417,1,0,0,0,5412,5414,5,33,0,0,5413,5415,5,269,0,0, + 5414,5413,1,0,0,0,5414,5415,1,0,0,0,5415,5416,1,0,0,0,5416,5418, + 5,153,0,0,5417,5412,1,0,0,0,5417,5418,1,0,0,0,5418,5429,1,0,0,0, + 5419,5421,5,319,0,0,5420,5422,3,464,232,0,5421,5420,1,0,0,0,5421, + 5422,1,0,0,0,5422,5423,1,0,0,0,5423,5425,5,94,0,0,5424,5426,5,322, + 0,0,5425,5424,1,0,0,0,5425,5426,1,0,0,0,5426,5427,1,0,0,0,5427,5429, + 3,812,406,0,5428,5383,1,0,0,0,5428,5390,1,0,0,0,5428,5395,1,0,0, + 0,5428,5397,1,0,0,0,5428,5402,1,0,0,0,5428,5405,1,0,0,0,5428,5408, + 1,0,0,0,5428,5419,1,0,0,0,5429,463,1,0,0,0,5430,5431,7,70,0,0,5431, + 465,1,0,0,0,5432,5433,5,244,0,0,5433,5434,5,251,0,0,5434,5442,3, + 50,25,0,5435,5436,5,300,0,0,5436,5442,7,71,0,0,5437,5439,5,77,0, + 0,5438,5437,1,0,0,0,5438,5439,1,0,0,0,5439,5440,1,0,0,0,5440,5442, + 5,54,0,0,5441,5432,1,0,0,0,5441,5435,1,0,0,0,5441,5438,1,0,0,0,5442, + 467,1,0,0,0,5443,5450,3,466,233,0,5444,5446,5,6,0,0,5445,5444,1, + 0,0,0,5445,5446,1,0,0,0,5446,5447,1,0,0,0,5447,5449,3,466,233,0, + 5448,5445,1,0,0,0,5449,5452,1,0,0,0,5450,5448,1,0,0,0,5450,5451, + 1,0,0,0,5451,469,1,0,0,0,5452,5450,1,0,0,0,5453,5456,5,46,0,0,5454, + 5455,5,82,0,0,5455,5457,5,311,0,0,5456,5454,1,0,0,0,5456,5457,1, + 0,0,0,5457,5459,1,0,0,0,5458,5460,3,116,58,0,5459,5458,1,0,0,0,5459, + 5460,1,0,0,0,5460,5476,1,0,0,0,5461,5462,5,376,0,0,5462,5464,3,770, + 385,0,5463,5465,3,140,70,0,5464,5463,1,0,0,0,5464,5465,1,0,0,0,5465, + 5467,1,0,0,0,5466,5468,3,94,47,0,5467,5466,1,0,0,0,5467,5468,1,0, + 0,0,5468,5477,1,0,0,0,5469,5470,5,303,0,0,5470,5471,5,376,0,0,5471, + 5472,3,770,385,0,5472,5474,3,138,69,0,5473,5475,3,94,47,0,5474,5473, + 1,0,0,0,5474,5475,1,0,0,0,5475,5477,1,0,0,0,5476,5461,1,0,0,0,5476, + 5469,1,0,0,0,5477,5478,1,0,0,0,5478,5479,5,36,0,0,5479,5486,3,554, + 277,0,5480,5482,5,105,0,0,5481,5483,7,72,0,0,5482,5481,1,0,0,0,5482, + 5483,1,0,0,0,5483,5484,1,0,0,0,5484,5485,5,42,0,0,5485,5487,5,279, + 0,0,5486,5480,1,0,0,0,5486,5487,1,0,0,0,5487,471,1,0,0,0,5488,5489, + 5,253,0,0,5489,5490,3,802,401,0,5490,473,1,0,0,0,5491,5492,5,46, + 0,0,5492,5493,5,175,0,0,5493,5495,3,780,390,0,5494,5496,5,105,0, + 0,5495,5494,1,0,0,0,5495,5496,1,0,0,0,5496,5502,1,0,0,0,5497,5499, + 3,476,238,0,5498,5497,1,0,0,0,5499,5500,1,0,0,0,5500,5498,1,0,0, + 0,5500,5501,1,0,0,0,5501,5503,1,0,0,0,5502,5498,1,0,0,0,5502,5503, + 1,0,0,0,5503,475,1,0,0,0,5504,5505,5,164,0,0,5505,5513,5,74,0,0, + 5506,5513,5,194,0,0,5507,5513,5,255,0,0,5508,5513,5,282,0,0,5509, + 5513,5,351,0,0,5510,5513,5,353,0,0,5511,5513,3,820,410,0,5512,5504, + 1,0,0,0,5512,5506,1,0,0,0,5512,5507,1,0,0,0,5512,5508,1,0,0,0,5512, + 5509,1,0,0,0,5512,5510,1,0,0,0,5512,5511,1,0,0,0,5513,5515,1,0,0, + 0,5514,5516,5,10,0,0,5515,5514,1,0,0,0,5515,5516,1,0,0,0,5516,5520, + 1,0,0,0,5517,5521,3,806,403,0,5518,5521,3,54,27,0,5519,5521,5,53, + 0,0,5520,5517,1,0,0,0,5520,5518,1,0,0,0,5520,5519,1,0,0,0,5521,477, + 1,0,0,0,5522,5523,5,138,0,0,5523,5524,5,175,0,0,5524,5540,3,782, + 391,0,5525,5526,5,333,0,0,5526,5527,5,351,0,0,5527,5529,3,764,382, + 0,5528,5525,1,0,0,0,5528,5529,1,0,0,0,5529,5541,1,0,0,0,5530,5532, + 5,105,0,0,5531,5530,1,0,0,0,5531,5532,1,0,0,0,5532,5534,1,0,0,0, + 5533,5535,3,476,238,0,5534,5533,1,0,0,0,5535,5536,1,0,0,0,5536,5534, + 1,0,0,0,5536,5537,1,0,0,0,5537,5539,1,0,0,0,5538,5531,1,0,0,0,5538, + 5539,1,0,0,0,5539,5541,1,0,0,0,5540,5528,1,0,0,0,5540,5538,1,0,0, + 0,5541,479,1,0,0,0,5542,5543,5,138,0,0,5543,5544,5,175,0,0,5544, + 5546,3,782,391,0,5545,5547,3,64,32,0,5546,5545,1,0,0,0,5546,5547, + 1,0,0,0,5547,481,1,0,0,0,5548,5549,5,138,0,0,5549,5550,5,108,0,0, + 5550,5551,3,310,155,0,5551,5552,5,305,0,0,5552,5553,5,375,0,0,5553, + 483,1,0,0,0,5554,5555,5,138,0,0,5555,5556,5,349,0,0,5556,5557,7, + 16,0,0,5557,5558,3,40,20,0,5558,485,1,0,0,0,5559,5560,5,46,0,0,5560, + 5561,5,189,0,0,5561,5563,3,310,155,0,5562,5564,5,36,0,0,5563,5562, + 1,0,0,0,5563,5564,1,0,0,0,5564,5565,1,0,0,0,5565,5569,3,646,323, + 0,5566,5568,3,128,64,0,5567,5566,1,0,0,0,5568,5571,1,0,0,0,5569, + 5567,1,0,0,0,5569,5570,1,0,0,0,5570,487,1,0,0,0,5571,5569,1,0,0, + 0,5572,5573,5,138,0,0,5573,5574,5,189,0,0,5574,5597,3,310,155,0, + 5575,5598,3,86,43,0,5576,5577,7,15,0,0,5577,5578,5,77,0,0,5578,5598, + 5,78,0,0,5579,5582,5,133,0,0,5580,5581,5,45,0,0,5581,5583,3,812, + 406,0,5582,5580,1,0,0,0,5582,5583,1,0,0,0,5583,5584,1,0,0,0,5584, + 5598,3,136,68,0,5585,5586,5,191,0,0,5586,5588,5,45,0,0,5587,5589, + 3,416,208,0,5588,5587,1,0,0,0,5588,5589,1,0,0,0,5589,5590,1,0,0, + 0,5590,5592,3,812,406,0,5591,5593,3,88,44,0,5592,5591,1,0,0,0,5592, + 5593,1,0,0,0,5593,5598,1,0,0,0,5594,5595,5,372,0,0,5595,5596,5,45, + 0,0,5596,5598,3,812,406,0,5597,5575,1,0,0,0,5597,5576,1,0,0,0,5597, + 5579,1,0,0,0,5597,5585,1,0,0,0,5597,5594,1,0,0,0,5598,489,1,0,0, + 0,5599,5600,5,138,0,0,5600,5601,5,355,0,0,5601,5602,5,325,0,0,5602, + 5603,5,185,0,0,5603,5604,3,310,155,0,5604,5605,3,278,139,0,5605, + 491,1,0,0,0,5606,5607,5,138,0,0,5607,5608,5,355,0,0,5608,5609,5, + 325,0,0,5609,5610,5,163,0,0,5610,5611,3,310,155,0,5611,5612,7,73, + 0,0,5612,5613,5,257,0,0,5613,5614,5,62,0,0,5614,5615,3,778,389,0, + 5615,5616,5,105,0,0,5616,5617,3,308,154,0,5617,5648,1,0,0,0,5618, + 5619,5,138,0,0,5619,5620,5,355,0,0,5620,5621,5,325,0,0,5621,5622, + 5,163,0,0,5622,5623,3,310,155,0,5623,5624,5,138,0,0,5624,5627,5, + 257,0,0,5625,5626,5,62,0,0,5626,5628,3,778,389,0,5627,5625,1,0,0, + 0,5627,5628,1,0,0,0,5628,5629,1,0,0,0,5629,5630,5,311,0,0,5630,5631, + 3,310,155,0,5631,5632,5,105,0,0,5632,5633,3,310,155,0,5633,5648, + 1,0,0,0,5634,5635,5,138,0,0,5635,5636,5,355,0,0,5636,5637,5,325, + 0,0,5637,5638,5,163,0,0,5638,5639,3,310,155,0,5639,5640,5,191,0, + 0,5640,5642,5,257,0,0,5641,5643,3,416,208,0,5642,5641,1,0,0,0,5642, + 5643,1,0,0,0,5643,5644,1,0,0,0,5644,5645,5,62,0,0,5645,5646,3,778, + 389,0,5646,5648,1,0,0,0,5647,5606,1,0,0,0,5647,5618,1,0,0,0,5647, + 5634,1,0,0,0,5648,493,1,0,0,0,5649,5651,5,46,0,0,5650,5652,5,53, + 0,0,5651,5650,1,0,0,0,5651,5652,1,0,0,0,5652,5653,1,0,0,0,5653,5654, + 5,168,0,0,5654,5655,3,310,155,0,5655,5656,5,62,0,0,5656,5657,3,802, + 401,0,5657,5658,5,94,0,0,5658,5659,3,802,401,0,5659,5660,5,64,0, + 0,5660,5661,3,310,155,0,5661,495,1,0,0,0,5662,5664,5,158,0,0,5663, + 5665,3,508,254,0,5664,5663,1,0,0,0,5664,5665,1,0,0,0,5665,5670,1, + 0,0,0,5666,5668,3,768,384,0,5667,5669,3,164,82,0,5668,5667,1,0,0, + 0,5668,5669,1,0,0,0,5669,5671,1,0,0,0,5670,5666,1,0,0,0,5670,5671, + 1,0,0,0,5671,5688,1,0,0,0,5672,5673,5,158,0,0,5673,5674,5,2,0,0, + 5674,5679,3,508,254,0,5675,5676,5,6,0,0,5676,5678,3,508,254,0,5677, + 5675,1,0,0,0,5678,5681,1,0,0,0,5679,5677,1,0,0,0,5679,5680,1,0,0, + 0,5680,5682,1,0,0,0,5681,5679,1,0,0,0,5682,5683,5,3,0,0,5683,5685, + 3,768,384,0,5684,5686,3,164,82,0,5685,5684,1,0,0,0,5685,5686,1,0, + 0,0,5686,5688,1,0,0,0,5687,5662,1,0,0,0,5687,5672,1,0,0,0,5688,497, + 1,0,0,0,5689,5705,5,370,0,0,5690,5692,5,113,0,0,5691,5690,1,0,0, + 0,5691,5692,1,0,0,0,5692,5694,1,0,0,0,5693,5695,5,112,0,0,5694,5693, + 1,0,0,0,5694,5695,1,0,0,0,5695,5697,1,0,0,0,5696,5698,3,508,254, + 0,5697,5696,1,0,0,0,5697,5698,1,0,0,0,5698,5700,1,0,0,0,5699,5701, + 3,502,251,0,5700,5699,1,0,0,0,5700,5701,1,0,0,0,5701,5706,1,0,0, + 0,5702,5704,3,518,259,0,5703,5702,1,0,0,0,5703,5704,1,0,0,0,5704, + 5706,1,0,0,0,5705,5691,1,0,0,0,5705,5703,1,0,0,0,5706,5708,1,0,0, + 0,5707,5709,3,512,256,0,5708,5707,1,0,0,0,5708,5709,1,0,0,0,5709, + 499,1,0,0,0,5710,5725,3,502,251,0,5711,5713,3,508,254,0,5712,5711, + 1,0,0,0,5712,5713,1,0,0,0,5713,5726,1,0,0,0,5714,5715,5,2,0,0,5715, + 5720,3,506,253,0,5716,5717,5,6,0,0,5717,5719,3,506,253,0,5718,5716, + 1,0,0,0,5719,5722,1,0,0,0,5720,5718,1,0,0,0,5720,5721,1,0,0,0,5721, + 5723,1,0,0,0,5722,5720,1,0,0,0,5723,5724,5,3,0,0,5724,5726,1,0,0, + 0,5725,5712,1,0,0,0,5725,5714,1,0,0,0,5726,5728,1,0,0,0,5727,5729, + 3,512,256,0,5728,5727,1,0,0,0,5728,5729,1,0,0,0,5729,501,1,0,0,0, + 5730,5731,7,74,0,0,5731,503,1,0,0,0,5732,5735,3,816,408,0,5733,5735, + 3,502,251,0,5734,5732,1,0,0,0,5734,5733,1,0,0,0,5735,5738,1,0,0, + 0,5736,5739,3,54,27,0,5737,5739,3,196,98,0,5738,5736,1,0,0,0,5738, + 5737,1,0,0,0,5738,5739,1,0,0,0,5739,505,1,0,0,0,5740,5742,7,75,0, + 0,5741,5743,7,76,0,0,5742,5741,1,0,0,0,5742,5743,1,0,0,0,5743,5750, + 1,0,0,0,5744,5747,5,548,0,0,5745,5748,3,196,98,0,5746,5748,3,802, + 401,0,5747,5745,1,0,0,0,5747,5746,1,0,0,0,5748,5750,1,0,0,0,5749, + 5740,1,0,0,0,5749,5744,1,0,0,0,5750,507,1,0,0,0,5751,5753,5,128, + 0,0,5752,5754,7,76,0,0,5753,5752,1,0,0,0,5753,5754,1,0,0,0,5754, + 509,1,0,0,0,5755,5757,3,768,384,0,5756,5758,3,138,69,0,5757,5756, + 1,0,0,0,5757,5758,1,0,0,0,5758,511,1,0,0,0,5759,5764,3,510,255,0, + 5760,5761,5,6,0,0,5761,5763,3,510,255,0,5762,5760,1,0,0,0,5763,5766, + 1,0,0,0,5764,5762,1,0,0,0,5764,5765,1,0,0,0,5765,513,1,0,0,0,5766, + 5764,1,0,0,0,5767,5778,5,203,0,0,5768,5779,3,518,259,0,5769,5771, + 5,128,0,0,5770,5769,1,0,0,0,5770,5771,1,0,0,0,5771,5779,1,0,0,0, + 5772,5774,3,502,251,0,5773,5775,3,508,254,0,5774,5773,1,0,0,0,5774, + 5775,1,0,0,0,5775,5777,1,0,0,0,5776,5772,1,0,0,0,5776,5777,1,0,0, + 0,5777,5779,1,0,0,0,5778,5768,1,0,0,0,5778,5770,1,0,0,0,5778,5776, + 1,0,0,0,5779,5780,1,0,0,0,5780,5781,3,516,258,0,5781,515,1,0,0,0, + 5782,5792,3,554,277,0,5783,5792,3,532,266,0,5784,5792,3,546,273, + 0,5785,5792,3,542,271,0,5786,5792,3,552,276,0,5787,5792,3,180,90, + 0,5788,5792,3,186,93,0,5789,5792,3,188,94,0,5790,5792,3,526,263, + 0,5791,5782,1,0,0,0,5791,5783,1,0,0,0,5791,5784,1,0,0,0,5791,5785, + 1,0,0,0,5791,5786,1,0,0,0,5791,5787,1,0,0,0,5791,5788,1,0,0,0,5791, + 5789,1,0,0,0,5791,5790,1,0,0,0,5792,517,1,0,0,0,5793,5794,5,2,0, + 0,5794,5799,3,504,252,0,5795,5796,5,6,0,0,5796,5798,3,504,252,0, + 5797,5795,1,0,0,0,5798,5801,1,0,0,0,5799,5797,1,0,0,0,5799,5800, + 1,0,0,0,5800,5802,1,0,0,0,5801,5799,1,0,0,0,5802,5803,5,3,0,0,5803, + 519,1,0,0,0,5804,5805,5,290,0,0,5805,5807,3,812,406,0,5806,5808, + 3,522,261,0,5807,5806,1,0,0,0,5807,5808,1,0,0,0,5808,5809,1,0,0, + 0,5809,5810,5,36,0,0,5810,5811,3,524,262,0,5811,521,1,0,0,0,5812, + 5813,5,2,0,0,5813,5818,3,646,323,0,5814,5815,5,6,0,0,5815,5817,3, + 646,323,0,5816,5814,1,0,0,0,5817,5820,1,0,0,0,5818,5816,1,0,0,0, + 5818,5819,1,0,0,0,5819,5821,1,0,0,0,5820,5818,1,0,0,0,5821,5822, + 5,3,0,0,5822,523,1,0,0,0,5823,5829,3,554,277,0,5824,5829,3,532,266, + 0,5825,5829,3,546,273,0,5826,5829,3,542,271,0,5827,5829,3,894,447, + 0,5828,5823,1,0,0,0,5828,5824,1,0,0,0,5828,5825,1,0,0,0,5828,5826, + 1,0,0,0,5828,5827,1,0,0,0,5829,525,1,0,0,0,5830,5831,5,202,0,0,5831, + 5833,3,812,406,0,5832,5834,3,528,264,0,5833,5832,1,0,0,0,5833,5834, + 1,0,0,0,5834,5854,1,0,0,0,5835,5837,5,46,0,0,5836,5838,3,116,58, + 0,5837,5836,1,0,0,0,5837,5838,1,0,0,0,5838,5839,1,0,0,0,5839,5841, + 5,92,0,0,5840,5842,3,288,144,0,5841,5840,1,0,0,0,5841,5842,1,0,0, + 0,5842,5843,1,0,0,0,5843,5844,3,182,91,0,5844,5845,5,36,0,0,5845, + 5846,5,202,0,0,5846,5848,3,812,406,0,5847,5849,3,528,264,0,5848, + 5847,1,0,0,0,5848,5849,1,0,0,0,5849,5851,1,0,0,0,5850,5852,3,184, + 92,0,5851,5850,1,0,0,0,5851,5852,1,0,0,0,5852,5854,1,0,0,0,5853, + 5830,1,0,0,0,5853,5835,1,0,0,0,5854,527,1,0,0,0,5855,5856,5,2,0, + 0,5856,5857,3,724,362,0,5857,5858,5,3,0,0,5858,529,1,0,0,0,5859, + 5861,5,177,0,0,5860,5862,5,290,0,0,5861,5860,1,0,0,0,5861,5862,1, + 0,0,0,5862,5865,1,0,0,0,5863,5866,3,812,406,0,5864,5866,5,30,0,0, + 5865,5863,1,0,0,0,5865,5864,1,0,0,0,5866,531,1,0,0,0,5867,5869,3, + 566,283,0,5868,5867,1,0,0,0,5868,5869,1,0,0,0,5869,5870,1,0,0,0, + 5870,5871,5,241,0,0,5871,5872,5,71,0,0,5872,5875,3,768,384,0,5873, + 5874,5,36,0,0,5874,5876,3,812,406,0,5875,5873,1,0,0,0,5875,5876, + 1,0,0,0,5876,5877,1,0,0,0,5877,5899,3,534,267,0,5878,5879,5,80,0, + 0,5879,5887,5,464,0,0,5880,5882,3,354,177,0,5881,5883,3,632,316, + 0,5882,5881,1,0,0,0,5882,5883,1,0,0,0,5883,5888,1,0,0,0,5884,5885, + 5,80,0,0,5885,5886,5,45,0,0,5886,5888,3,812,406,0,5887,5880,1,0, + 0,0,5887,5884,1,0,0,0,5887,5888,1,0,0,0,5888,5889,1,0,0,0,5889,5897, + 5,57,0,0,5890,5891,5,369,0,0,5891,5892,5,333,0,0,5892,5894,3,548, + 274,0,5893,5895,3,632,316,0,5894,5893,1,0,0,0,5894,5895,1,0,0,0, + 5895,5898,1,0,0,0,5896,5898,5,270,0,0,5897,5890,1,0,0,0,5897,5896, + 1,0,0,0,5898,5900,1,0,0,0,5899,5878,1,0,0,0,5899,5900,1,0,0,0,5900, + 5902,1,0,0,0,5901,5903,3,540,270,0,5902,5901,1,0,0,0,5902,5903,1, + 0,0,0,5903,533,1,0,0,0,5904,5905,5,2,0,0,5905,5906,3,536,268,0,5906, + 5907,5,3,0,0,5907,5909,1,0,0,0,5908,5904,1,0,0,0,5908,5909,1,0,0, + 0,5909,5913,1,0,0,0,5910,5911,5,463,0,0,5911,5912,7,77,0,0,5912, + 5914,5,450,0,0,5913,5910,1,0,0,0,5913,5914,1,0,0,0,5914,5917,1,0, + 0,0,5915,5918,3,904,452,0,5916,5918,3,554,277,0,5917,5915,1,0,0, + 0,5917,5916,1,0,0,0,5918,535,1,0,0,0,5919,5924,3,538,269,0,5920, + 5921,5,6,0,0,5921,5923,3,538,269,0,5922,5920,1,0,0,0,5923,5926,1, + 0,0,0,5924,5922,1,0,0,0,5924,5925,1,0,0,0,5925,537,1,0,0,0,5926, + 5924,1,0,0,0,5927,5928,3,794,397,0,5928,5929,3,748,374,0,5929,539, + 1,0,0,0,5930,5931,5,87,0,0,5931,5932,3,750,375,0,5932,541,1,0,0, + 0,5933,5935,3,566,283,0,5934,5933,1,0,0,0,5934,5935,1,0,0,0,5935, + 5936,1,0,0,0,5936,5937,5,182,0,0,5937,5938,5,64,0,0,5938,5941,3, + 624,312,0,5939,5940,5,100,0,0,5940,5942,3,606,303,0,5941,5939,1, + 0,0,0,5941,5942,1,0,0,0,5942,5944,1,0,0,0,5943,5945,3,634,317,0, + 5944,5943,1,0,0,0,5944,5945,1,0,0,0,5945,5947,1,0,0,0,5946,5948, + 3,540,270,0,5947,5946,1,0,0,0,5947,5948,1,0,0,0,5948,543,1,0,0,0, + 5949,5951,5,256,0,0,5950,5952,5,92,0,0,5951,5950,1,0,0,0,5951,5952, + 1,0,0,0,5952,5953,1,0,0,0,5953,5968,3,622,311,0,5954,5965,5,68,0, + 0,5955,5956,7,78,0,0,5956,5966,7,79,0,0,5957,5962,5,334,0,0,5958, + 5959,5,369,0,0,5959,5963,5,201,0,0,5960,5961,5,414,0,0,5961,5963, + 5,201,0,0,5962,5958,1,0,0,0,5962,5960,1,0,0,0,5962,5963,1,0,0,0, + 5963,5966,1,0,0,0,5964,5966,5,201,0,0,5965,5955,1,0,0,0,5965,5957, + 1,0,0,0,5965,5964,1,0,0,0,5966,5967,1,0,0,0,5967,5969,5,263,0,0, + 5968,5954,1,0,0,0,5968,5969,1,0,0,0,5969,5971,1,0,0,0,5970,5972, + 5,272,0,0,5971,5970,1,0,0,0,5971,5972,1,0,0,0,5972,545,1,0,0,0,5973, + 5975,3,566,283,0,5974,5973,1,0,0,0,5974,5975,1,0,0,0,5975,5976,1, + 0,0,0,5976,5977,5,369,0,0,5977,5978,3,624,312,0,5978,5979,5,333, + 0,0,5979,5981,3,548,274,0,5980,5982,3,604,302,0,5981,5980,1,0,0, + 0,5981,5982,1,0,0,0,5982,5984,1,0,0,0,5983,5985,3,634,317,0,5984, + 5983,1,0,0,0,5984,5985,1,0,0,0,5985,5987,1,0,0,0,5986,5988,3,540, + 270,0,5987,5986,1,0,0,0,5987,5988,1,0,0,0,5988,547,1,0,0,0,5989, + 5994,3,550,275,0,5990,5991,5,6,0,0,5991,5993,3,550,275,0,5992,5990, + 1,0,0,0,5993,5996,1,0,0,0,5994,5992,1,0,0,0,5994,5995,1,0,0,0,5995, + 549,1,0,0,0,5996,5994,1,0,0,0,5997,5998,3,538,269,0,5998,5999,5, + 10,0,0,5999,6000,3,668,334,0,6000,6016,1,0,0,0,6001,6002,5,2,0,0, + 6002,6003,3,536,268,0,6003,6004,5,3,0,0,6004,6013,5,10,0,0,6005, + 6007,5,414,0,0,6006,6005,1,0,0,0,6006,6007,1,0,0,0,6007,6008,1,0, + 0,0,6008,6014,3,668,334,0,6009,6010,5,2,0,0,6010,6011,3,560,280, + 0,6011,6012,5,3,0,0,6012,6014,1,0,0,0,6013,6006,1,0,0,0,6013,6009, + 1,0,0,0,6014,6016,1,0,0,0,6015,5997,1,0,0,0,6015,6001,1,0,0,0,6016, + 551,1,0,0,0,6017,6018,5,178,0,0,6018,6027,3,812,406,0,6019,6021, + 5,269,0,0,6020,6019,1,0,0,0,6020,6021,1,0,0,0,6021,6022,1,0,0,0, + 6022,6026,5,324,0,0,6023,6026,5,107,0,0,6024,6026,5,240,0,0,6025, + 6020,1,0,0,0,6025,6023,1,0,0,0,6025,6024,1,0,0,0,6026,6029,1,0,0, + 0,6027,6025,1,0,0,0,6027,6028,1,0,0,0,6028,6030,1,0,0,0,6029,6027, + 1,0,0,0,6030,6033,5,172,0,0,6031,6032,7,27,0,0,6032,6034,5,217,0, + 0,6033,6031,1,0,0,0,6033,6034,1,0,0,0,6034,6035,1,0,0,0,6035,6036, + 5,62,0,0,6036,6037,3,554,277,0,6037,553,1,0,0,0,6038,6041,3,558, + 279,0,6039,6041,3,556,278,0,6040,6038,1,0,0,0,6040,6039,1,0,0,0, + 6041,555,1,0,0,0,6042,6045,5,2,0,0,6043,6046,3,558,279,0,6044,6046, + 3,556,278,0,6045,6043,1,0,0,0,6045,6044,1,0,0,0,6046,6047,1,0,0, + 0,6047,6048,5,3,0,0,6048,557,1,0,0,0,6049,6051,3,566,283,0,6050, + 6049,1,0,0,0,6050,6051,1,0,0,0,6051,6052,1,0,0,0,6052,6054,3,560, + 280,0,6053,6055,3,580,290,0,6054,6053,1,0,0,0,6054,6055,1,0,0,0, + 6055,6064,1,0,0,0,6056,6058,3,600,300,0,6057,6059,3,584,292,0,6058, + 6057,1,0,0,0,6058,6059,1,0,0,0,6059,6065,1,0,0,0,6060,6062,3,584, + 292,0,6061,6063,3,600,300,0,6062,6061,1,0,0,0,6062,6063,1,0,0,0, + 6063,6065,1,0,0,0,6064,6056,1,0,0,0,6064,6060,1,0,0,0,6064,6065, + 1,0,0,0,6065,559,1,0,0,0,6066,6069,3,562,281,0,6067,6069,3,556,278, + 0,6068,6066,1,0,0,0,6068,6067,1,0,0,0,6069,561,1,0,0,0,6070,6080, + 5,88,0,0,6071,6073,5,30,0,0,6072,6071,1,0,0,0,6072,6073,1,0,0,0, + 6073,6075,1,0,0,0,6074,6076,3,574,287,0,6075,6074,1,0,0,0,6075,6076, + 1,0,0,0,6076,6081,1,0,0,0,6077,6079,3,578,289,0,6078,6077,1,0,0, + 0,6078,6079,1,0,0,0,6079,6081,1,0,0,0,6080,6072,1,0,0,0,6080,6078, + 1,0,0,0,6081,6082,1,0,0,0,6082,6093,3,924,462,0,6083,6093,3,602, + 301,0,6084,6085,5,92,0,0,6085,6093,3,618,309,0,6086,6087,3,556,278, + 0,6087,6090,3,564,282,0,6088,6091,3,562,281,0,6089,6091,3,556,278, + 0,6090,6088,1,0,0,0,6090,6089,1,0,0,0,6091,6093,1,0,0,0,6092,6070, + 1,0,0,0,6092,6083,1,0,0,0,6092,6084,1,0,0,0,6092,6086,1,0,0,0,6093, + 6101,1,0,0,0,6094,6097,3,564,282,0,6095,6098,3,562,281,0,6096,6098, + 3,556,278,0,6097,6095,1,0,0,0,6097,6096,1,0,0,0,6098,6100,1,0,0, + 0,6099,6094,1,0,0,0,6100,6103,1,0,0,0,6101,6099,1,0,0,0,6101,6102, + 1,0,0,0,6102,563,1,0,0,0,6103,6101,1,0,0,0,6104,6106,7,80,0,0,6105, + 6107,7,81,0,0,6106,6105,1,0,0,0,6106,6107,1,0,0,0,6107,565,1,0,0, + 0,6108,6110,5,105,0,0,6109,6111,5,303,0,0,6110,6109,1,0,0,0,6110, + 6111,1,0,0,0,6111,6112,1,0,0,0,6112,6117,3,568,284,0,6113,6114,5, + 6,0,0,6114,6116,3,568,284,0,6115,6113,1,0,0,0,6116,6119,1,0,0,0, + 6117,6115,1,0,0,0,6117,6118,1,0,0,0,6118,567,1,0,0,0,6119,6117,1, + 0,0,0,6120,6122,3,812,406,0,6121,6123,3,138,69,0,6122,6121,1,0,0, + 0,6122,6123,1,0,0,0,6123,6124,1,0,0,0,6124,6129,5,36,0,0,6125,6127, + 5,77,0,0,6126,6125,1,0,0,0,6126,6127,1,0,0,0,6127,6128,1,0,0,0,6128, + 6130,5,259,0,0,6129,6126,1,0,0,0,6129,6130,1,0,0,0,6130,6131,1,0, + 0,0,6131,6132,5,2,0,0,6132,6133,3,524,262,0,6133,6135,5,3,0,0,6134, + 6136,3,570,285,0,6135,6134,1,0,0,0,6135,6136,1,0,0,0,6136,6138,1, + 0,0,0,6137,6139,3,572,286,0,6138,6137,1,0,0,0,6138,6139,1,0,0,0, + 6139,569,1,0,0,0,6140,6141,5,325,0,0,6141,6142,7,82,0,0,6142,6143, + 5,207,0,0,6143,6144,5,147,0,0,6144,6145,3,142,71,0,6145,6146,5,333, + 0,0,6146,6147,3,794,397,0,6147,571,1,0,0,0,6148,6149,5,173,0,0,6149, + 6150,3,142,71,0,6150,6151,5,333,0,0,6151,6157,3,794,397,0,6152,6153, + 5,94,0,0,6153,6154,3,812,406,0,6154,6155,5,53,0,0,6155,6156,3,812, + 406,0,6156,6158,1,0,0,0,6157,6152,1,0,0,0,6157,6158,1,0,0,0,6158, + 6159,1,0,0,0,6159,6160,5,100,0,0,6160,6161,3,794,397,0,6161,573, + 1,0,0,0,6162,6168,5,71,0,0,6163,6165,5,346,0,0,6164,6163,1,0,0,0, + 6164,6165,1,0,0,0,6165,6166,1,0,0,0,6166,6169,3,576,288,0,6167,6169, + 3,724,362,0,6168,6164,1,0,0,0,6168,6167,1,0,0,0,6169,575,1,0,0,0, + 6170,6172,7,21,0,0,6171,6170,1,0,0,0,6171,6172,1,0,0,0,6172,6173, + 1,0,0,0,6173,6175,7,22,0,0,6174,6176,5,92,0,0,6175,6174,1,0,0,0, + 6175,6176,1,0,0,0,6176,6177,1,0,0,0,6177,6186,3,766,383,0,6178,6180, + 5,367,0,0,6179,6178,1,0,0,0,6179,6180,1,0,0,0,6180,6182,1,0,0,0, + 6181,6183,5,92,0,0,6182,6181,1,0,0,0,6182,6183,1,0,0,0,6183,6184, + 1,0,0,0,6184,6186,3,766,383,0,6185,6171,1,0,0,0,6185,6179,1,0,0, + 0,6186,577,1,0,0,0,6187,6190,5,56,0,0,6188,6189,5,80,0,0,6189,6191, + 3,528,264,0,6190,6188,1,0,0,0,6190,6191,1,0,0,0,6191,579,1,0,0,0, + 6192,6193,5,83,0,0,6193,6194,5,147,0,0,6194,6199,3,582,291,0,6195, + 6196,5,6,0,0,6196,6198,3,582,291,0,6197,6195,1,0,0,0,6198,6201,1, + 0,0,0,6199,6197,1,0,0,0,6199,6200,1,0,0,0,6200,581,1,0,0,0,6201, + 6199,1,0,0,0,6202,6206,3,728,364,0,6203,6204,5,100,0,0,6204,6207, + 3,720,360,0,6205,6207,7,56,0,0,6206,6203,1,0,0,0,6206,6205,1,0,0, + 0,6206,6207,1,0,0,0,6207,6210,1,0,0,0,6208,6209,5,273,0,0,6209,6211, + 7,57,0,0,6210,6208,1,0,0,0,6210,6211,1,0,0,0,6211,583,1,0,0,0,6212, + 6214,3,590,295,0,6213,6215,3,588,294,0,6214,6213,1,0,0,0,6214,6215, + 1,0,0,0,6215,6224,1,0,0,0,6216,6219,3,586,293,0,6217,6219,3,588, + 294,0,6218,6216,1,0,0,0,6218,6217,1,0,0,0,6219,6221,1,0,0,0,6220, + 6222,3,590,295,0,6221,6220,1,0,0,0,6221,6222,1,0,0,0,6222,6224,1, + 0,0,0,6223,6212,1,0,0,0,6223,6218,1,0,0,0,6224,585,1,0,0,0,6225, + 6228,5,74,0,0,6226,6229,3,668,334,0,6227,6229,5,30,0,0,6228,6226, + 1,0,0,0,6228,6227,1,0,0,0,6229,6232,1,0,0,0,6230,6231,5,6,0,0,6231, + 6233,3,668,334,0,6232,6230,1,0,0,0,6232,6233,1,0,0,0,6233,587,1, + 0,0,0,6234,6235,5,61,0,0,6235,6237,7,83,0,0,6236,6238,3,592,296, + 0,6237,6236,1,0,0,0,6237,6238,1,0,0,0,6238,6239,1,0,0,0,6239,6243, + 7,84,0,0,6240,6244,5,81,0,0,6241,6242,5,105,0,0,6242,6244,5,467, + 0,0,6243,6240,1,0,0,0,6243,6241,1,0,0,0,6244,589,1,0,0,0,6245,6250, + 5,79,0,0,6246,6247,3,592,296,0,6247,6248,7,84,0,0,6248,6251,1,0, + 0,0,6249,6251,3,668,334,0,6250,6246,1,0,0,0,6250,6249,1,0,0,0,6251, + 591,1,0,0,0,6252,6253,7,30,0,0,6253,6256,7,85,0,0,6254,6256,3,676, + 338,0,6255,6252,1,0,0,0,6255,6254,1,0,0,0,6256,593,1,0,0,0,6257, + 6258,5,66,0,0,6258,6260,5,147,0,0,6259,6261,7,81,0,0,6260,6259,1, + 0,0,0,6260,6261,1,0,0,0,6261,6262,1,0,0,0,6262,6263,3,596,298,0, + 6263,595,1,0,0,0,6264,6269,3,598,299,0,6265,6266,5,6,0,0,6266,6268, + 3,598,299,0,6267,6265,1,0,0,0,6268,6271,1,0,0,0,6269,6267,1,0,0, + 0,6269,6270,1,0,0,0,6270,597,1,0,0,0,6271,6269,1,0,0,0,6272,6296, + 3,728,364,0,6273,6274,5,2,0,0,6274,6296,5,3,0,0,6275,6277,7,86,0, + 0,6276,6275,1,0,0,0,6276,6277,1,0,0,0,6277,6278,1,0,0,0,6278,6279, + 5,2,0,0,6279,6284,3,728,364,0,6280,6281,5,6,0,0,6281,6283,3,728, + 364,0,6282,6280,1,0,0,0,6283,6286,1,0,0,0,6284,6282,1,0,0,0,6284, + 6285,1,0,0,0,6285,6287,1,0,0,0,6286,6284,1,0,0,0,6287,6288,5,3,0, + 0,6288,6296,1,0,0,0,6289,6290,5,470,0,0,6290,6291,5,471,0,0,6291, + 6292,5,2,0,0,6292,6293,3,596,298,0,6293,6294,5,3,0,0,6294,6296,1, + 0,0,0,6295,6272,1,0,0,0,6295,6273,1,0,0,0,6295,6276,1,0,0,0,6295, + 6289,1,0,0,0,6296,599,1,0,0,0,6297,6307,5,62,0,0,6298,6299,5,269, + 0,0,6299,6301,5,245,0,0,6300,6298,1,0,0,0,6300,6301,1,0,0,0,6301, + 6302,1,0,0,0,6302,6308,5,369,0,0,6303,6305,5,245,0,0,6304,6303,1, + 0,0,0,6304,6305,1,0,0,0,6305,6306,1,0,0,0,6306,6308,5,334,0,0,6307, + 6300,1,0,0,0,6307,6304,1,0,0,0,6308,6311,1,0,0,0,6309,6310,5,275, + 0,0,6310,6312,3,754,377,0,6311,6309,1,0,0,0,6311,6312,1,0,0,0,6312, + 6316,1,0,0,0,6313,6317,5,272,0,0,6314,6315,5,465,0,0,6315,6317,5, + 466,0,0,6316,6313,1,0,0,0,6316,6314,1,0,0,0,6316,6317,1,0,0,0,6317, + 6319,1,0,0,0,6318,6297,1,0,0,0,6319,6320,1,0,0,0,6320,6318,1,0,0, + 0,6320,6321,1,0,0,0,6321,6326,1,0,0,0,6322,6323,5,62,0,0,6323,6324, + 5,300,0,0,6324,6326,5,81,0,0,6325,6318,1,0,0,0,6325,6322,1,0,0,0, + 6326,601,1,0,0,0,6327,6328,5,422,0,0,6328,6333,3,528,264,0,6329, + 6330,5,6,0,0,6330,6332,3,528,264,0,6331,6329,1,0,0,0,6332,6335,1, + 0,0,0,6333,6331,1,0,0,0,6333,6334,1,0,0,0,6334,603,1,0,0,0,6335, + 6333,1,0,0,0,6336,6337,5,64,0,0,6337,6338,3,606,303,0,6338,605,1, + 0,0,0,6339,6344,3,608,304,0,6340,6341,5,6,0,0,6341,6343,3,608,304, + 0,6342,6340,1,0,0,0,6343,6346,1,0,0,0,6344,6342,1,0,0,0,6344,6345, + 1,0,0,0,6345,607,1,0,0,0,6346,6344,1,0,0,0,6347,6362,3,618,309,0, + 6348,6350,5,81,0,0,6349,6348,1,0,0,0,6349,6350,1,0,0,0,6350,6351, + 1,0,0,0,6351,6353,3,772,386,0,6352,6354,5,9,0,0,6353,6352,1,0,0, + 0,6353,6354,1,0,0,0,6354,6356,1,0,0,0,6355,6357,3,142,71,0,6356, + 6355,1,0,0,0,6356,6357,1,0,0,0,6357,6359,1,0,0,0,6358,6360,3,632, + 316,0,6359,6358,1,0,0,0,6359,6360,1,0,0,0,6360,6362,1,0,0,0,6361, + 6347,1,0,0,0,6361,6349,1,0,0,0,6362,6364,1,0,0,0,6363,6365,3,610, + 305,0,6364,6363,1,0,0,0,6364,6365,1,0,0,0,6365,6367,1,0,0,0,6366, + 6368,3,626,313,0,6367,6366,1,0,0,0,6367,6368,1,0,0,0,6368,6411,1, + 0,0,0,6369,6371,5,72,0,0,6370,6369,1,0,0,0,6370,6371,1,0,0,0,6371, + 6384,1,0,0,0,6372,6374,3,640,320,0,6373,6375,3,610,305,0,6374,6373, + 1,0,0,0,6374,6375,1,0,0,0,6375,6385,1,0,0,0,6376,6378,3,628,314, + 0,6377,6379,3,612,306,0,6378,6377,1,0,0,0,6378,6379,1,0,0,0,6379, + 6385,1,0,0,0,6380,6382,3,556,278,0,6381,6383,3,610,305,0,6382,6381, + 1,0,0,0,6382,6383,1,0,0,0,6383,6385,1,0,0,0,6384,6372,1,0,0,0,6384, + 6376,1,0,0,0,6384,6380,1,0,0,0,6385,6411,1,0,0,0,6386,6387,5,2,0, + 0,6387,6404,3,608,304,0,6388,6389,5,110,0,0,6389,6390,5,118,0,0, + 6390,6405,3,608,304,0,6391,6393,5,121,0,0,6392,6394,3,614,307,0, + 6393,6392,1,0,0,0,6393,6394,1,0,0,0,6394,6395,1,0,0,0,6395,6396, + 5,118,0,0,6396,6405,3,608,304,0,6397,6399,3,614,307,0,6398,6397, + 1,0,0,0,6398,6399,1,0,0,0,6399,6400,1,0,0,0,6400,6401,5,118,0,0, + 6401,6402,3,608,304,0,6402,6403,3,616,308,0,6403,6405,1,0,0,0,6404, + 6388,1,0,0,0,6404,6391,1,0,0,0,6404,6398,1,0,0,0,6404,6405,1,0,0, + 0,6405,6406,1,0,0,0,6406,6408,5,3,0,0,6407,6409,3,610,305,0,6408, + 6407,1,0,0,0,6408,6409,1,0,0,0,6409,6411,1,0,0,0,6410,6361,1,0,0, + 0,6410,6370,1,0,0,0,6410,6386,1,0,0,0,6411,6430,1,0,0,0,6412,6413, + 5,110,0,0,6413,6414,5,118,0,0,6414,6429,3,608,304,0,6415,6417,5, + 121,0,0,6416,6418,3,614,307,0,6417,6416,1,0,0,0,6417,6418,1,0,0, + 0,6418,6419,1,0,0,0,6419,6420,5,118,0,0,6420,6429,3,608,304,0,6421, + 6423,3,614,307,0,6422,6421,1,0,0,0,6422,6423,1,0,0,0,6423,6424,1, + 0,0,0,6424,6425,5,118,0,0,6425,6426,3,608,304,0,6426,6427,3,616, + 308,0,6427,6429,1,0,0,0,6428,6412,1,0,0,0,6428,6415,1,0,0,0,6428, + 6422,1,0,0,0,6429,6432,1,0,0,0,6430,6428,1,0,0,0,6430,6431,1,0,0, + 0,6431,609,1,0,0,0,6432,6430,1,0,0,0,6433,6435,5,36,0,0,6434,6433, + 1,0,0,0,6434,6435,1,0,0,0,6435,6436,1,0,0,0,6436,6441,3,812,406, + 0,6437,6438,5,2,0,0,6438,6439,3,778,389,0,6439,6440,5,3,0,0,6440, + 6442,1,0,0,0,6441,6437,1,0,0,0,6441,6442,1,0,0,0,6442,611,1,0,0, + 0,6443,6456,3,610,305,0,6444,6446,5,36,0,0,6445,6447,3,812,406,0, + 6446,6445,1,0,0,0,6446,6447,1,0,0,0,6447,6450,1,0,0,0,6448,6450, + 3,812,406,0,6449,6444,1,0,0,0,6449,6448,1,0,0,0,6450,6451,1,0,0, + 0,6451,6452,5,2,0,0,6452,6453,3,636,318,0,6453,6454,5,3,0,0,6454, + 6456,1,0,0,0,6455,6443,1,0,0,0,6455,6449,1,0,0,0,6456,613,1,0,0, + 0,6457,6459,7,87,0,0,6458,6460,5,123,0,0,6459,6458,1,0,0,0,6459, + 6460,1,0,0,0,6460,615,1,0,0,0,6461,6462,5,100,0,0,6462,6466,3,138, + 69,0,6463,6464,5,80,0,0,6464,6466,3,668,334,0,6465,6461,1,0,0,0, + 6465,6463,1,0,0,0,6466,617,1,0,0,0,6467,6483,3,316,158,0,6468,6474, + 5,81,0,0,6469,6475,3,768,384,0,6470,6471,5,2,0,0,6471,6472,3,768, + 384,0,6472,6473,5,3,0,0,6473,6475,1,0,0,0,6474,6469,1,0,0,0,6474, + 6470,1,0,0,0,6475,6483,1,0,0,0,6476,6477,5,68,0,0,6477,6480,5,323, + 0,0,6478,6481,3,784,392,0,6479,6481,5,111,0,0,6480,6478,1,0,0,0, + 6480,6479,1,0,0,0,6481,6483,1,0,0,0,6482,6467,1,0,0,0,6482,6468, + 1,0,0,0,6482,6476,1,0,0,0,6483,619,1,0,0,0,6484,6485,5,92,0,0,6485, + 6487,3,316,158,0,6486,6488,3,138,69,0,6487,6486,1,0,0,0,6487,6488, + 1,0,0,0,6488,6490,1,0,0,0,6489,6491,3,632,316,0,6490,6489,1,0,0, + 0,6490,6491,1,0,0,0,6491,6509,1,0,0,0,6492,6493,5,92,0,0,6493,6499, + 5,81,0,0,6494,6500,3,768,384,0,6495,6496,5,2,0,0,6496,6497,3,768, + 384,0,6497,6498,5,3,0,0,6498,6500,1,0,0,0,6499,6494,1,0,0,0,6499, + 6495,1,0,0,0,6500,6509,1,0,0,0,6501,6502,5,350,0,0,6502,6503,5,68, + 0,0,6503,6506,5,323,0,0,6504,6507,3,784,392,0,6505,6507,5,111,0, + 0,6506,6504,1,0,0,0,6506,6505,1,0,0,0,6507,6509,1,0,0,0,6508,6484, + 1,0,0,0,6508,6492,1,0,0,0,6508,6501,1,0,0,0,6509,621,1,0,0,0,6510, + 6515,3,618,309,0,6511,6512,5,6,0,0,6512,6514,3,618,309,0,6513,6511, + 1,0,0,0,6514,6517,1,0,0,0,6515,6513,1,0,0,0,6515,6516,1,0,0,0,6516, + 623,1,0,0,0,6517,6515,1,0,0,0,6518,6523,3,618,309,0,6519,6521,5, + 36,0,0,6520,6519,1,0,0,0,6520,6521,1,0,0,0,6521,6522,1,0,0,0,6522, + 6524,3,812,406,0,6523,6520,1,0,0,0,6523,6524,1,0,0,0,6524,625,1, + 0,0,0,6525,6526,5,472,0,0,6526,6527,3,800,400,0,6527,6533,3,528, + 264,0,6528,6529,5,310,0,0,6529,6530,5,2,0,0,6530,6531,3,668,334, + 0,6531,6532,5,3,0,0,6532,6534,1,0,0,0,6533,6528,1,0,0,0,6533,6534, + 1,0,0,0,6534,627,1,0,0,0,6535,6550,3,682,341,0,6536,6537,5,320,0, + 0,6537,6538,5,64,0,0,6538,6539,5,2,0,0,6539,6544,3,630,315,0,6540, + 6541,5,6,0,0,6541,6543,3,630,315,0,6542,6540,1,0,0,0,6543,6546,1, + 0,0,0,6544,6542,1,0,0,0,6544,6545,1,0,0,0,6545,6547,1,0,0,0,6546, + 6544,1,0,0,0,6547,6548,5,3,0,0,6548,6550,1,0,0,0,6549,6535,1,0,0, + 0,6549,6536,1,0,0,0,6550,6553,1,0,0,0,6551,6552,5,105,0,0,6552,6554, + 5,473,0,0,6553,6551,1,0,0,0,6553,6554,1,0,0,0,6554,629,1,0,0,0,6555, + 6561,3,682,341,0,6556,6557,5,36,0,0,6557,6558,5,2,0,0,6558,6559, + 3,636,318,0,6559,6560,5,3,0,0,6560,6562,1,0,0,0,6561,6556,1,0,0, + 0,6561,6562,1,0,0,0,6562,631,1,0,0,0,6563,6564,5,103,0,0,6564,6565, + 3,728,364,0,6565,633,1,0,0,0,6566,6571,5,103,0,0,6567,6568,5,434, + 0,0,6568,6569,5,275,0,0,6569,6572,3,812,406,0,6570,6572,3,668,334, + 0,6571,6567,1,0,0,0,6571,6570,1,0,0,0,6572,635,1,0,0,0,6573,6578, + 3,638,319,0,6574,6575,5,6,0,0,6575,6577,3,638,319,0,6576,6574,1, + 0,0,0,6577,6580,1,0,0,0,6578,6576,1,0,0,0,6578,6579,1,0,0,0,6579, + 637,1,0,0,0,6580,6578,1,0,0,0,6581,6582,3,812,406,0,6582,6584,3, + 646,323,0,6583,6585,3,90,45,0,6584,6583,1,0,0,0,6584,6585,1,0,0, + 0,6585,639,1,0,0,0,6586,6587,5,474,0,0,6587,6601,5,2,0,0,6588,6589, + 5,476,0,0,6589,6590,5,2,0,0,6590,6595,3,644,322,0,6591,6592,5,6, + 0,0,6592,6594,3,644,322,0,6593,6591,1,0,0,0,6594,6597,1,0,0,0,6595, + 6593,1,0,0,0,6595,6596,1,0,0,0,6596,6598,1,0,0,0,6597,6595,1,0,0, + 0,6598,6599,5,3,0,0,6599,6600,5,6,0,0,6600,6602,1,0,0,0,6601,6588, + 1,0,0,0,6601,6602,1,0,0,0,6602,6603,1,0,0,0,6603,6604,3,676,338, + 0,6604,6605,3,692,346,0,6605,6606,5,475,0,0,6606,6611,3,642,321, + 0,6607,6608,5,6,0,0,6608,6610,3,642,321,0,6609,6607,1,0,0,0,6610, + 6613,1,0,0,0,6611,6609,1,0,0,0,6611,6612,1,0,0,0,6612,6614,1,0,0, + 0,6613,6611,1,0,0,0,6614,6615,5,3,0,0,6615,641,1,0,0,0,6616,6635, + 3,812,406,0,6617,6631,3,646,323,0,6618,6621,5,53,0,0,6619,6621,3, + 820,410,0,6620,6618,1,0,0,0,6620,6619,1,0,0,0,6621,6622,1,0,0,0, + 6622,6628,3,668,334,0,6623,6625,5,77,0,0,6624,6623,1,0,0,0,6624, + 6625,1,0,0,0,6625,6626,1,0,0,0,6626,6628,5,78,0,0,6627,6620,1,0, + 0,0,6627,6624,1,0,0,0,6628,6629,1,0,0,0,6629,6627,1,0,0,0,6629,6630, + 1,0,0,0,6630,6632,1,0,0,0,6631,6627,1,0,0,0,6631,6632,1,0,0,0,6632, + 6636,1,0,0,0,6633,6634,5,62,0,0,6634,6636,5,473,0,0,6635,6617,1, + 0,0,0,6635,6633,1,0,0,0,6636,643,1,0,0,0,6637,6638,3,676,338,0,6638, + 6639,5,36,0,0,6639,6640,3,818,409,0,6640,6644,1,0,0,0,6641,6642, + 5,53,0,0,6642,6644,3,676,338,0,6643,6637,1,0,0,0,6643,6641,1,0,0, + 0,6644,645,1,0,0,0,6645,6647,5,415,0,0,6646,6645,1,0,0,0,6646,6647, + 1,0,0,0,6647,6648,1,0,0,0,6648,6665,3,648,324,0,6649,6651,5,4,0, + 0,6650,6652,5,574,0,0,6651,6650,1,0,0,0,6651,6652,1,0,0,0,6652,6653, + 1,0,0,0,6653,6655,5,5,0,0,6654,6649,1,0,0,0,6655,6658,1,0,0,0,6656, + 6654,1,0,0,0,6656,6657,1,0,0,0,6657,6666,1,0,0,0,6658,6656,1,0,0, + 0,6659,6663,5,35,0,0,6660,6661,5,4,0,0,6661,6662,5,574,0,0,6662, + 6664,5,5,0,0,6663,6660,1,0,0,0,6663,6664,1,0,0,0,6664,6666,1,0,0, + 0,6665,6656,1,0,0,0,6665,6659,1,0,0,0,6666,6672,1,0,0,0,6667,6668, + 3,774,387,0,6668,6669,5,27,0,0,6669,6670,7,88,0,0,6670,6672,1,0, + 0,0,6671,6646,1,0,0,0,6671,6667,1,0,0,0,6672,647,1,0,0,0,6673,6675, + 3,814,407,0,6674,6676,3,312,156,0,6675,6674,1,0,0,0,6675,6676,1, + 0,0,0,6676,6678,1,0,0,0,6677,6679,3,528,264,0,6678,6677,1,0,0,0, + 6678,6679,1,0,0,0,6679,6689,1,0,0,0,6680,6689,3,650,325,0,6681,6686, + 5,403,0,0,6682,6684,3,662,331,0,6683,6682,1,0,0,0,6683,6684,1,0, + 0,0,6684,6687,1,0,0,0,6685,6687,3,654,327,0,6686,6683,1,0,0,0,6686, + 6685,1,0,0,0,6687,6689,1,0,0,0,6688,6673,1,0,0,0,6688,6680,1,0,0, + 0,6688,6681,1,0,0,0,6689,649,1,0,0,0,6690,6695,3,652,326,0,6691, + 6695,3,656,328,0,6692,6695,3,658,329,0,6693,6695,3,660,330,0,6694, + 6690,1,0,0,0,6694,6691,1,0,0,0,6694,6692,1,0,0,0,6694,6693,1,0,0, + 0,6695,651,1,0,0,0,6696,6713,5,401,0,0,6697,6713,5,402,0,0,6698, + 6713,5,416,0,0,6699,6713,5,388,0,0,6700,6713,5,413,0,0,6701,6703, + 5,398,0,0,6702,6704,3,654,327,0,6703,6702,1,0,0,0,6703,6704,1,0, + 0,0,6704,6713,1,0,0,0,6705,6706,5,190,0,0,6706,6713,5,412,0,0,6707, + 6709,7,89,0,0,6708,6710,3,528,264,0,6709,6708,1,0,0,0,6709,6710, + 1,0,0,0,6710,6713,1,0,0,0,6711,6713,5,390,0,0,6712,6696,1,0,0,0, + 6712,6697,1,0,0,0,6712,6698,1,0,0,0,6712,6699,1,0,0,0,6712,6700, + 1,0,0,0,6712,6701,1,0,0,0,6712,6705,1,0,0,0,6712,6707,1,0,0,0,6712, + 6711,1,0,0,0,6713,653,1,0,0,0,6714,6715,5,2,0,0,6715,6716,5,574, + 0,0,6716,6717,5,3,0,0,6717,655,1,0,0,0,6718,6720,5,389,0,0,6719, + 6721,5,374,0,0,6720,6719,1,0,0,0,6720,6721,1,0,0,0,6721,6723,1,0, + 0,0,6722,6724,3,528,264,0,6723,6722,1,0,0,0,6723,6724,1,0,0,0,6724, + 657,1,0,0,0,6725,6727,7,90,0,0,6726,6728,5,374,0,0,6727,6726,1,0, + 0,0,6727,6728,1,0,0,0,6728,6736,1,0,0,0,6729,6736,5,423,0,0,6730, + 6731,5,405,0,0,6731,6733,7,91,0,0,6732,6734,5,374,0,0,6733,6732, + 1,0,0,0,6733,6734,1,0,0,0,6734,6736,1,0,0,0,6735,6725,1,0,0,0,6735, + 6729,1,0,0,0,6735,6730,1,0,0,0,6736,6738,1,0,0,0,6737,6739,3,654, + 327,0,6738,6737,1,0,0,0,6738,6739,1,0,0,0,6739,659,1,0,0,0,6740, + 6742,7,92,0,0,6741,6743,3,654,327,0,6742,6741,1,0,0,0,6742,6743, + 1,0,0,0,6743,6747,1,0,0,0,6744,6745,7,27,0,0,6745,6746,5,418,0,0, + 6746,6748,5,386,0,0,6747,6744,1,0,0,0,6747,6748,1,0,0,0,6748,661, + 1,0,0,0,6749,6779,5,264,0,0,6750,6779,3,664,332,0,6751,6754,5,384, + 0,0,6752,6753,5,94,0,0,6753,6755,5,264,0,0,6754,6752,1,0,0,0,6754, + 6755,1,0,0,0,6755,6779,1,0,0,0,6756,6763,5,176,0,0,6757,6761,5,94, + 0,0,6758,6762,5,218,0,0,6759,6762,5,261,0,0,6760,6762,3,664,332, + 0,6761,6758,1,0,0,0,6761,6759,1,0,0,0,6761,6760,1,0,0,0,6762,6764, + 1,0,0,0,6763,6757,1,0,0,0,6763,6764,1,0,0,0,6764,6779,1,0,0,0,6765, + 6771,5,218,0,0,6766,6769,5,94,0,0,6767,6770,5,261,0,0,6768,6770, + 3,664,332,0,6769,6767,1,0,0,0,6769,6768,1,0,0,0,6770,6772,1,0,0, + 0,6771,6766,1,0,0,0,6771,6772,1,0,0,0,6772,6779,1,0,0,0,6773,6776, + 5,261,0,0,6774,6775,5,94,0,0,6775,6777,3,664,332,0,6776,6774,1,0, + 0,0,6776,6777,1,0,0,0,6777,6779,1,0,0,0,6778,6749,1,0,0,0,6778,6750, + 1,0,0,0,6778,6751,1,0,0,0,6778,6756,1,0,0,0,6778,6765,1,0,0,0,6778, + 6773,1,0,0,0,6779,663,1,0,0,0,6780,6782,5,326,0,0,6781,6783,3,654, + 327,0,6782,6781,1,0,0,0,6782,6783,1,0,0,0,6783,665,1,0,0,0,6784, + 6785,7,93,0,0,6785,667,1,0,0,0,6786,6787,3,670,335,0,6787,669,1, + 0,0,0,6788,6789,6,335,-1,0,6789,6791,3,674,337,0,6790,6792,3,672, + 336,0,6791,6790,1,0,0,0,6791,6792,1,0,0,0,6792,6796,1,0,0,0,6793, + 6794,5,77,0,0,6794,6796,3,670,335,3,6795,6788,1,0,0,0,6795,6793, + 1,0,0,0,6796,6805,1,0,0,0,6797,6798,10,2,0,0,6798,6799,5,33,0,0, + 6799,6804,3,670,335,3,6800,6801,10,1,0,0,6801,6802,5,82,0,0,6802, + 6804,3,670,335,2,6803,6797,1,0,0,0,6803,6800,1,0,0,0,6804,6807,1, + 0,0,0,6805,6803,1,0,0,0,6805,6806,1,0,0,0,6806,671,1,0,0,0,6807, + 6805,1,0,0,0,6808,6809,3,666,333,0,6809,6810,3,674,337,0,6810,6880, + 1,0,0,0,6811,6812,3,666,333,0,6812,6813,3,722,361,0,6813,6819,3, + 712,356,0,6814,6820,3,556,278,0,6815,6816,5,2,0,0,6816,6817,3,668, + 334,0,6817,6818,5,3,0,0,6818,6820,1,0,0,0,6819,6814,1,0,0,0,6819, + 6815,1,0,0,0,6820,6880,1,0,0,0,6821,6823,5,77,0,0,6822,6821,1,0, + 0,0,6822,6823,1,0,0,0,6823,6824,1,0,0,0,6824,6825,5,387,0,0,6825, + 6826,3,674,337,0,6826,6827,5,33,0,0,6827,6828,3,674,337,0,6828,6880, + 1,0,0,0,6829,6831,5,77,0,0,6830,6829,1,0,0,0,6830,6831,1,0,0,0,6831, + 6832,1,0,0,0,6832,6833,5,68,0,0,6833,6834,5,2,0,0,6834,6839,3,668, + 334,0,6835,6836,5,6,0,0,6836,6838,3,668,334,0,6837,6835,1,0,0,0, + 6838,6841,1,0,0,0,6839,6837,1,0,0,0,6839,6840,1,0,0,0,6840,6842, + 1,0,0,0,6841,6839,1,0,0,0,6842,6843,5,3,0,0,6843,6880,1,0,0,0,6844, + 6846,5,77,0,0,6845,6844,1,0,0,0,6845,6846,1,0,0,0,6846,6847,1,0, + 0,0,6847,6848,5,68,0,0,6848,6880,3,556,278,0,6849,6851,5,77,0,0, + 6850,6849,1,0,0,0,6850,6851,1,0,0,0,6851,6860,1,0,0,0,6852,6861, + 5,120,0,0,6853,6861,5,114,0,0,6854,6855,5,127,0,0,6855,6861,5,94, + 0,0,6856,6858,5,387,0,0,6857,6859,5,91,0,0,6858,6857,1,0,0,0,6858, + 6859,1,0,0,0,6859,6861,1,0,0,0,6860,6852,1,0,0,0,6860,6853,1,0,0, + 0,6860,6854,1,0,0,0,6860,6856,1,0,0,0,6861,6862,1,0,0,0,6862,6865, + 3,674,337,0,6863,6864,5,197,0,0,6864,6866,3,674,337,0,6865,6863, + 1,0,0,0,6865,6866,1,0,0,0,6866,6880,1,0,0,0,6867,6869,5,116,0,0, + 6868,6870,5,77,0,0,6869,6868,1,0,0,0,6869,6870,1,0,0,0,6870,6871, + 1,0,0,0,6871,6880,5,78,0,0,6872,6874,5,116,0,0,6873,6875,5,77,0, + 0,6874,6873,1,0,0,0,6874,6875,1,0,0,0,6875,6876,1,0,0,0,6876,6877, + 5,56,0,0,6877,6878,5,64,0,0,6878,6880,3,674,337,0,6879,6808,1,0, + 0,0,6879,6811,1,0,0,0,6879,6822,1,0,0,0,6879,6830,1,0,0,0,6879,6845, + 1,0,0,0,6879,6850,1,0,0,0,6879,6867,1,0,0,0,6879,6872,1,0,0,0,6880, + 673,1,0,0,0,6881,6882,6,337,-1,0,6882,6886,3,676,338,0,6883,6884, + 7,30,0,0,6884,6886,3,674,337,4,6885,6881,1,0,0,0,6885,6883,1,0,0, + 0,6886,6903,1,0,0,0,6887,6888,10,3,0,0,6888,6889,7,94,0,0,6889,6902, + 3,674,337,4,6890,6891,10,2,0,0,6891,6892,7,30,0,0,6892,6902,3,674, + 337,3,6893,6894,10,1,0,0,6894,6895,5,15,0,0,6895,6902,3,674,337, + 2,6896,6897,10,5,0,0,6897,6898,5,142,0,0,6898,6899,5,418,0,0,6899, + 6900,5,386,0,0,6900,6902,3,668,334,0,6901,6887,1,0,0,0,6901,6890, + 1,0,0,0,6901,6893,1,0,0,0,6901,6896,1,0,0,0,6902,6905,1,0,0,0,6903, + 6901,1,0,0,0,6903,6904,1,0,0,0,6904,675,1,0,0,0,6905,6903,1,0,0, + 0,6906,6907,6,338,-1,0,6907,6908,7,95,0,0,6908,6995,3,556,278,0, + 6909,6912,5,35,0,0,6910,6913,3,556,278,0,6911,6913,3,734,367,0,6912, + 6910,1,0,0,0,6912,6911,1,0,0,0,6913,6995,1,0,0,0,6914,6915,5,28, + 0,0,6915,6995,3,748,374,0,6916,6917,5,470,0,0,6917,6995,3,528,264, + 0,6918,6995,5,574,0,0,6919,6995,5,576,0,0,6920,6995,5,566,0,0,6921, + 6995,5,570,0,0,6922,6932,3,800,400,0,6923,6933,3,802,401,0,6924, + 6925,5,2,0,0,6925,6927,3,730,365,0,6926,6928,3,580,290,0,6927,6926, + 1,0,0,0,6927,6928,1,0,0,0,6928,6929,1,0,0,0,6929,6930,5,3,0,0,6930, + 6931,3,802,401,0,6931,6933,1,0,0,0,6932,6923,1,0,0,0,6932,6924,1, + 0,0,0,6933,6995,1,0,0,0,6934,6936,3,650,325,0,6935,6934,1,0,0,0, + 6935,6936,1,0,0,0,6936,6937,1,0,0,0,6937,6995,3,802,401,0,6938,6946, + 5,403,0,0,6939,6941,3,802,401,0,6940,6942,3,662,331,0,6941,6940, + 1,0,0,0,6941,6942,1,0,0,0,6942,6947,1,0,0,0,6943,6944,3,654,327, + 0,6944,6945,3,802,401,0,6945,6947,1,0,0,0,6946,6939,1,0,0,0,6946, + 6943,1,0,0,0,6947,6995,1,0,0,0,6948,6995,5,96,0,0,6949,6995,5,60, + 0,0,6950,6995,5,78,0,0,6951,6995,5,577,0,0,6952,6953,5,2,0,0,6953, + 6954,3,668,334,0,6954,6955,5,3,0,0,6955,6956,3,748,374,0,6956,6995, + 1,0,0,0,6957,6959,5,40,0,0,6958,6960,3,668,334,0,6959,6958,1,0,0, + 0,6959,6960,1,0,0,0,6960,6962,1,0,0,0,6961,6963,3,742,371,0,6962, + 6961,1,0,0,0,6963,6964,1,0,0,0,6964,6962,1,0,0,0,6964,6965,1,0,0, + 0,6965,6968,1,0,0,0,6966,6967,5,58,0,0,6967,6969,3,668,334,0,6968, + 6966,1,0,0,0,6968,6969,1,0,0,0,6969,6970,1,0,0,0,6970,6971,5,454, + 0,0,6971,6995,1,0,0,0,6972,6995,3,680,340,0,6973,6975,3,556,278, + 0,6974,6976,3,746,373,0,6975,6974,1,0,0,0,6975,6976,1,0,0,0,6976, + 6995,1,0,0,0,6977,6995,3,710,355,0,6978,6979,5,2,0,0,6979,6980,3, + 668,334,0,6980,6981,5,6,0,0,6981,6982,3,724,362,0,6982,6983,5,3, + 0,0,6983,6995,1,0,0,0,6984,6985,3,708,354,0,6985,6986,5,125,0,0, + 6986,6987,3,708,354,0,6987,6995,1,0,0,0,6988,6995,3,774,387,0,6989, + 6990,7,30,0,0,6990,6995,3,676,338,5,6991,6992,3,718,359,0,6992,6993, + 3,676,338,2,6993,6995,1,0,0,0,6994,6906,1,0,0,0,6994,6909,1,0,0, + 0,6994,6914,1,0,0,0,6994,6916,1,0,0,0,6994,6918,1,0,0,0,6994,6919, + 1,0,0,0,6994,6920,1,0,0,0,6994,6921,1,0,0,0,6994,6922,1,0,0,0,6994, + 6935,1,0,0,0,6994,6938,1,0,0,0,6994,6948,1,0,0,0,6994,6949,1,0,0, + 0,6994,6950,1,0,0,0,6994,6951,1,0,0,0,6994,6952,1,0,0,0,6994,6957, + 1,0,0,0,6994,6972,1,0,0,0,6994,6973,1,0,0,0,6994,6977,1,0,0,0,6994, + 6978,1,0,0,0,6994,6984,1,0,0,0,6994,6988,1,0,0,0,6994,6989,1,0,0, + 0,6994,6991,1,0,0,0,6995,7023,1,0,0,0,6996,6997,10,3,0,0,6997,6998, + 3,716,358,0,6998,6999,3,676,338,4,6999,7022,1,0,0,0,7000,7001,10, + 6,0,0,7001,7002,5,26,0,0,7002,7022,3,646,323,0,7003,7004,10,4,0, + 0,7004,7006,3,718,359,0,7005,7007,3,676,338,0,7006,7005,1,0,0,0, + 7006,7007,1,0,0,0,7007,7022,1,0,0,0,7008,7009,10,1,0,0,7009,7011, + 5,116,0,0,7010,7012,5,77,0,0,7011,7010,1,0,0,0,7011,7012,1,0,0,0, + 7012,7019,1,0,0,0,7013,7014,5,56,0,0,7014,7015,5,64,0,0,7015,7020, + 3,676,338,0,7016,7017,5,275,0,0,7017,7020,3,522,261,0,7018,7020, + 5,188,0,0,7019,7013,1,0,0,0,7019,7016,1,0,0,0,7019,7018,1,0,0,0, + 7020,7022,1,0,0,0,7021,6996,1,0,0,0,7021,7000,1,0,0,0,7021,7003, + 1,0,0,0,7021,7008,1,0,0,0,7022,7025,1,0,0,0,7023,7021,1,0,0,0,7023, + 7024,1,0,0,0,7024,677,1,0,0,0,7025,7023,1,0,0,0,7026,7027,3,800, + 400,0,7027,7048,5,2,0,0,7028,7032,3,730,365,0,7029,7030,5,6,0,0, + 7030,7031,5,101,0,0,7031,7033,3,732,366,0,7032,7029,1,0,0,0,7032, + 7033,1,0,0,0,7033,7035,1,0,0,0,7034,7036,3,580,290,0,7035,7034,1, + 0,0,0,7035,7036,1,0,0,0,7036,7049,1,0,0,0,7037,7038,5,101,0,0,7038, + 7040,3,732,366,0,7039,7041,3,580,290,0,7040,7039,1,0,0,0,7040,7041, + 1,0,0,0,7041,7049,1,0,0,0,7042,7043,7,81,0,0,7043,7045,3,730,365, + 0,7044,7046,3,580,290,0,7045,7044,1,0,0,0,7045,7046,1,0,0,0,7046, + 7049,1,0,0,0,7047,7049,5,9,0,0,7048,7028,1,0,0,0,7048,7037,1,0,0, + 0,7048,7042,1,0,0,0,7048,7047,1,0,0,0,7048,7049,1,0,0,0,7049,7050, + 1,0,0,0,7050,7051,5,3,0,0,7051,679,1,0,0,0,7052,7059,3,678,339,0, + 7053,7054,5,479,0,0,7054,7055,5,66,0,0,7055,7056,5,2,0,0,7056,7057, + 3,580,290,0,7057,7058,5,3,0,0,7058,7060,1,0,0,0,7059,7053,1,0,0, + 0,7059,7060,1,0,0,0,7060,7067,1,0,0,0,7061,7062,5,480,0,0,7062,7063, + 5,2,0,0,7063,7064,5,103,0,0,7064,7065,3,668,334,0,7065,7066,5,3, + 0,0,7066,7068,1,0,0,0,7067,7061,1,0,0,0,7067,7068,1,0,0,0,7068,7074, + 1,0,0,0,7069,7072,5,124,0,0,7070,7073,3,702,351,0,7071,7073,3,812, + 406,0,7072,7070,1,0,0,0,7072,7071,1,0,0,0,7073,7075,1,0,0,0,7074, + 7069,1,0,0,0,7074,7075,1,0,0,0,7075,7078,1,0,0,0,7076,7078,3,684, + 342,0,7077,7052,1,0,0,0,7077,7076,1,0,0,0,7078,681,1,0,0,0,7079, + 7082,3,678,339,0,7080,7082,3,684,342,0,7081,7079,1,0,0,0,7081,7080, + 1,0,0,0,7082,683,1,0,0,0,7083,7084,5,108,0,0,7084,7085,5,62,0,0, + 7085,7086,5,2,0,0,7086,7087,3,668,334,0,7087,7088,5,3,0,0,7088,7258, + 1,0,0,0,7089,7258,5,48,0,0,7090,7092,7,96,0,0,7091,7093,3,654,327, + 0,7092,7091,1,0,0,0,7092,7093,1,0,0,0,7093,7258,1,0,0,0,7094,7258, + 5,49,0,0,7095,7258,5,52,0,0,7096,7258,5,89,0,0,7097,7258,5,99,0, + 0,7098,7258,5,47,0,0,7099,7258,5,111,0,0,7100,7101,7,97,0,0,7101, + 7102,5,2,0,0,7102,7103,3,668,334,0,7103,7104,5,36,0,0,7104,7105, + 3,646,323,0,7105,7106,5,3,0,0,7106,7258,1,0,0,0,7107,7108,5,397, + 0,0,7108,7113,5,2,0,0,7109,7110,3,736,368,0,7110,7111,5,64,0,0,7111, + 7112,3,668,334,0,7112,7114,1,0,0,0,7113,7109,1,0,0,0,7113,7114,1, + 0,0,0,7114,7115,1,0,0,0,7115,7258,5,3,0,0,7116,7117,5,489,0,0,7117, + 7118,5,2,0,0,7118,7121,3,668,334,0,7119,7120,5,6,0,0,7120,7122,3, + 738,369,0,7121,7119,1,0,0,0,7121,7122,1,0,0,0,7122,7123,1,0,0,0, + 7123,7124,5,3,0,0,7124,7258,1,0,0,0,7125,7126,5,410,0,0,7126,7127, + 5,2,0,0,7127,7128,3,668,334,0,7128,7129,5,84,0,0,7129,7130,3,668, + 334,0,7130,7131,5,64,0,0,7131,7134,3,668,334,0,7132,7133,5,62,0, + 0,7133,7135,3,668,334,0,7134,7132,1,0,0,0,7134,7135,1,0,0,0,7135, + 7136,1,0,0,0,7136,7137,5,3,0,0,7137,7258,1,0,0,0,7138,7139,5,411, + 0,0,7139,7144,5,2,0,0,7140,7141,3,676,338,0,7141,7142,5,68,0,0,7142, + 7143,3,676,338,0,7143,7145,1,0,0,0,7144,7140,1,0,0,0,7144,7145,1, + 0,0,0,7145,7146,1,0,0,0,7146,7258,5,3,0,0,7147,7148,5,417,0,0,7148, + 7150,5,2,0,0,7149,7151,3,740,370,0,7150,7149,1,0,0,0,7150,7151,1, + 0,0,0,7151,7152,1,0,0,0,7152,7258,5,3,0,0,7153,7154,5,421,0,0,7154, + 7156,5,2,0,0,7155,7157,7,98,0,0,7156,7155,1,0,0,0,7156,7157,1,0, + 0,0,7157,7162,1,0,0,0,7158,7160,3,668,334,0,7159,7158,1,0,0,0,7159, + 7160,1,0,0,0,7160,7161,1,0,0,0,7161,7163,5,64,0,0,7162,7159,1,0, + 0,0,7162,7163,1,0,0,0,7163,7164,1,0,0,0,7164,7165,3,724,362,0,7165, + 7166,1,0,0,0,7166,7167,5,3,0,0,7167,7258,1,0,0,0,7168,7169,5,408, + 0,0,7169,7170,5,2,0,0,7170,7171,3,668,334,0,7171,7172,5,6,0,0,7172, + 7173,3,668,334,0,7173,7174,5,3,0,0,7174,7258,1,0,0,0,7175,7176,7, + 99,0,0,7176,7258,3,528,264,0,7177,7178,5,426,0,0,7178,7179,5,2,0, + 0,7179,7180,5,266,0,0,7180,7190,3,818,409,0,7181,7188,5,6,0,0,7182, + 7183,5,424,0,0,7183,7184,5,2,0,0,7184,7185,3,686,343,0,7185,7186, + 5,3,0,0,7186,7189,1,0,0,0,7187,7189,3,724,362,0,7188,7182,1,0,0, + 0,7188,7187,1,0,0,0,7189,7191,1,0,0,0,7190,7181,1,0,0,0,7190,7191, + 1,0,0,0,7191,7192,1,0,0,0,7192,7193,5,3,0,0,7193,7258,1,0,0,0,7194, + 7195,5,427,0,0,7195,7196,5,2,0,0,7196,7197,3,676,338,0,7197,7198, + 3,692,346,0,7198,7199,5,3,0,0,7199,7258,1,0,0,0,7200,7201,5,428, + 0,0,7201,7202,5,2,0,0,7202,7203,3,686,343,0,7203,7204,5,3,0,0,7204, + 7258,1,0,0,0,7205,7206,5,429,0,0,7206,7207,5,2,0,0,7207,7208,3,690, + 345,0,7208,7211,3,668,334,0,7209,7210,7,100,0,0,7210,7212,5,378, + 0,0,7211,7209,1,0,0,0,7211,7212,1,0,0,0,7212,7213,1,0,0,0,7213,7214, + 5,3,0,0,7214,7258,1,0,0,0,7215,7216,5,430,0,0,7216,7217,5,2,0,0, + 7217,7218,5,266,0,0,7218,7221,3,818,409,0,7219,7220,5,6,0,0,7220, + 7222,3,668,334,0,7221,7219,1,0,0,0,7221,7222,1,0,0,0,7222,7223,1, + 0,0,0,7223,7224,5,3,0,0,7224,7258,1,0,0,0,7225,7226,5,431,0,0,7226, + 7227,5,2,0,0,7227,7228,5,383,0,0,7228,7229,3,668,334,0,7229,7230, + 5,6,0,0,7230,7234,5,375,0,0,7231,7232,5,269,0,0,7232,7235,5,450, + 0,0,7233,7235,3,668,334,0,7234,7231,1,0,0,0,7234,7233,1,0,0,0,7235, + 7245,1,0,0,0,7236,7237,5,6,0,0,7237,7243,5,339,0,0,7238,7240,5,269, + 0,0,7239,7238,1,0,0,0,7239,7240,1,0,0,0,7240,7241,1,0,0,0,7241,7244, + 5,450,0,0,7242,7244,5,385,0,0,7243,7239,1,0,0,0,7243,7242,1,0,0, + 0,7244,7246,1,0,0,0,7245,7236,1,0,0,0,7245,7246,1,0,0,0,7246,7247, + 1,0,0,0,7247,7248,5,3,0,0,7248,7258,1,0,0,0,7249,7250,5,432,0,0, + 7250,7251,5,2,0,0,7251,7252,3,690,345,0,7252,7253,3,668,334,0,7253, + 7254,5,36,0,0,7254,7255,3,648,324,0,7255,7256,5,3,0,0,7256,7258, + 1,0,0,0,7257,7083,1,0,0,0,7257,7089,1,0,0,0,7257,7090,1,0,0,0,7257, + 7094,1,0,0,0,7257,7095,1,0,0,0,7257,7096,1,0,0,0,7257,7097,1,0,0, + 0,7257,7098,1,0,0,0,7257,7099,1,0,0,0,7257,7100,1,0,0,0,7257,7107, + 1,0,0,0,7257,7116,1,0,0,0,7257,7125,1,0,0,0,7257,7138,1,0,0,0,7257, + 7147,1,0,0,0,7257,7153,1,0,0,0,7257,7168,1,0,0,0,7257,7175,1,0,0, + 0,7257,7177,1,0,0,0,7257,7194,1,0,0,0,7257,7200,1,0,0,0,7257,7205, + 1,0,0,0,7257,7215,1,0,0,0,7257,7225,1,0,0,0,7257,7249,1,0,0,0,7258, + 685,1,0,0,0,7259,7264,3,688,344,0,7260,7261,5,6,0,0,7261,7263,3, + 688,344,0,7262,7260,1,0,0,0,7263,7266,1,0,0,0,7264,7262,1,0,0,0, + 7264,7265,1,0,0,0,7265,687,1,0,0,0,7266,7264,1,0,0,0,7267,7270,3, + 668,334,0,7268,7269,5,36,0,0,7269,7271,3,818,409,0,7270,7268,1,0, + 0,0,7270,7271,1,0,0,0,7271,689,1,0,0,0,7272,7273,7,101,0,0,7273, + 691,1,0,0,0,7274,7276,5,286,0,0,7275,7277,3,694,347,0,7276,7275, + 1,0,0,0,7276,7277,1,0,0,0,7277,7278,1,0,0,0,7278,7280,3,676,338, + 0,7279,7281,3,694,347,0,7280,7279,1,0,0,0,7280,7281,1,0,0,0,7281, + 693,1,0,0,0,7282,7283,5,147,0,0,7283,7284,7,102,0,0,7284,695,1,0, + 0,0,7285,7286,5,104,0,0,7286,7291,3,698,349,0,7287,7288,5,6,0,0, + 7288,7290,3,698,349,0,7289,7287,1,0,0,0,7290,7293,1,0,0,0,7291,7289, + 1,0,0,0,7291,7292,1,0,0,0,7292,697,1,0,0,0,7293,7291,1,0,0,0,7294, + 7295,3,812,406,0,7295,7296,5,36,0,0,7296,7297,3,702,351,0,7297,699, + 1,0,0,0,7298,7301,5,124,0,0,7299,7302,3,702,351,0,7300,7302,3,812, + 406,0,7301,7299,1,0,0,0,7301,7300,1,0,0,0,7302,701,1,0,0,0,7303, + 7305,5,2,0,0,7304,7306,3,812,406,0,7305,7304,1,0,0,0,7305,7306,1, + 0,0,0,7306,7310,1,0,0,0,7307,7308,5,285,0,0,7308,7309,5,147,0,0, + 7309,7311,3,724,362,0,7310,7307,1,0,0,0,7310,7311,1,0,0,0,7311,7313, + 1,0,0,0,7312,7314,3,580,290,0,7313,7312,1,0,0,0,7313,7314,1,0,0, + 0,7314,7316,1,0,0,0,7315,7317,3,704,352,0,7316,7315,1,0,0,0,7316, + 7317,1,0,0,0,7317,7318,1,0,0,0,7318,7319,5,3,0,0,7319,703,1,0,0, + 0,7320,7325,7,103,0,0,7321,7322,5,387,0,0,7322,7323,3,706,353,0, + 7323,7324,5,33,0,0,7324,7326,1,0,0,0,7325,7321,1,0,0,0,7325,7326, + 1,0,0,0,7326,7327,1,0,0,0,7327,7328,3,706,353,0,7328,7338,1,0,0, + 0,7329,7336,5,199,0,0,7330,7331,5,434,0,0,7331,7337,5,414,0,0,7332, + 7337,5,66,0,0,7333,7337,5,467,0,0,7334,7335,5,269,0,0,7335,7337, + 5,482,0,0,7336,7330,1,0,0,0,7336,7332,1,0,0,0,7336,7333,1,0,0,0, + 7336,7334,1,0,0,0,7337,7339,1,0,0,0,7338,7329,1,0,0,0,7338,7339, + 1,0,0,0,7339,705,1,0,0,0,7340,7343,5,362,0,0,7341,7343,3,668,334, + 0,7342,7340,1,0,0,0,7342,7341,1,0,0,0,7343,7344,1,0,0,0,7344,7348, + 7,104,0,0,7345,7346,5,434,0,0,7346,7348,5,414,0,0,7347,7342,1,0, + 0,0,7347,7345,1,0,0,0,7348,707,1,0,0,0,7349,7357,3,710,355,0,7350, + 7351,5,2,0,0,7351,7352,3,724,362,0,7352,7353,5,6,0,0,7353,7354,3, + 668,334,0,7354,7355,5,3,0,0,7355,7357,1,0,0,0,7356,7349,1,0,0,0, + 7356,7350,1,0,0,0,7357,709,1,0,0,0,7358,7359,5,414,0,0,7359,7361, + 5,2,0,0,7360,7362,3,724,362,0,7361,7360,1,0,0,0,7361,7362,1,0,0, + 0,7362,7363,1,0,0,0,7363,7364,5,3,0,0,7364,711,1,0,0,0,7365,7366, + 7,105,0,0,7366,713,1,0,0,0,7367,7370,5,29,0,0,7368,7370,3,716,358, + 0,7369,7367,1,0,0,0,7369,7368,1,0,0,0,7370,715,1,0,0,0,7371,7372, + 7,106,0,0,7372,717,1,0,0,0,7373,7380,5,29,0,0,7374,7375,5,278,0, + 0,7375,7376,5,2,0,0,7376,7377,3,408,204,0,7377,7378,5,3,0,0,7378, + 7380,1,0,0,0,7379,7373,1,0,0,0,7379,7374,1,0,0,0,7380,719,1,0,0, + 0,7381,7388,3,714,357,0,7382,7383,5,278,0,0,7383,7384,5,2,0,0,7384, + 7385,3,408,204,0,7385,7386,5,3,0,0,7386,7388,1,0,0,0,7387,7381,1, + 0,0,0,7387,7382,1,0,0,0,7388,721,1,0,0,0,7389,7395,3,720,360,0,7390, + 7392,5,77,0,0,7391,7390,1,0,0,0,7391,7392,1,0,0,0,7392,7393,1,0, + 0,0,7393,7395,7,107,0,0,7394,7389,1,0,0,0,7394,7391,1,0,0,0,7395, + 723,1,0,0,0,7396,7401,3,668,334,0,7397,7398,5,6,0,0,7398,7400,3, + 668,334,0,7399,7397,1,0,0,0,7400,7403,1,0,0,0,7401,7399,1,0,0,0, + 7401,7402,1,0,0,0,7402,725,1,0,0,0,7403,7401,1,0,0,0,7404,7405,5, + 2,0,0,7405,7406,3,668,334,0,7406,7407,5,3,0,0,7407,7410,1,0,0,0, + 7408,7410,3,794,397,0,7409,7404,1,0,0,0,7409,7408,1,0,0,0,7410,727, + 1,0,0,0,7411,7414,3,668,334,0,7412,7414,3,794,397,0,7413,7411,1, + 0,0,0,7413,7412,1,0,0,0,7414,729,1,0,0,0,7415,7420,3,732,366,0,7416, + 7417,5,6,0,0,7417,7419,3,732,366,0,7418,7416,1,0,0,0,7419,7422,1, + 0,0,0,7420,7418,1,0,0,0,7420,7421,1,0,0,0,7421,731,1,0,0,0,7422, + 7420,1,0,0,0,7423,7431,3,794,397,0,7424,7431,3,668,334,0,7425,7428, + 3,814,407,0,7426,7427,7,108,0,0,7427,7429,3,668,334,0,7428,7426, + 1,0,0,0,7428,7429,1,0,0,0,7429,7431,1,0,0,0,7430,7423,1,0,0,0,7430, + 7424,1,0,0,0,7430,7425,1,0,0,0,7431,733,1,0,0,0,7432,7442,5,4,0, + 0,7433,7443,3,724,362,0,7434,7439,3,734,367,0,7435,7436,5,6,0,0, + 7436,7438,3,734,367,0,7437,7435,1,0,0,0,7438,7441,1,0,0,0,7439,7437, + 1,0,0,0,7439,7440,1,0,0,0,7440,7443,1,0,0,0,7441,7439,1,0,0,0,7442, + 7433,1,0,0,0,7442,7434,1,0,0,0,7442,7443,1,0,0,0,7443,7444,1,0,0, + 0,7444,7445,5,5,0,0,7445,735,1,0,0,0,7446,7455,3,820,410,0,7447, + 7455,5,384,0,0,7448,7455,5,264,0,0,7449,7455,5,176,0,0,7450,7455, + 5,218,0,0,7451,7455,5,261,0,0,7452,7455,5,326,0,0,7453,7455,3,802, + 401,0,7454,7446,1,0,0,0,7454,7447,1,0,0,0,7454,7448,1,0,0,0,7454, + 7449,1,0,0,0,7454,7450,1,0,0,0,7454,7451,1,0,0,0,7454,7452,1,0,0, + 0,7454,7453,1,0,0,0,7455,737,1,0,0,0,7456,7457,7,109,0,0,7457,739, + 1,0,0,0,7458,7459,3,668,334,0,7459,7460,5,64,0,0,7460,7463,3,668, + 334,0,7461,7462,5,62,0,0,7462,7464,3,668,334,0,7463,7461,1,0,0,0, + 7463,7464,1,0,0,0,7464,7480,1,0,0,0,7465,7466,3,668,334,0,7466,7467, + 5,62,0,0,7467,7470,3,668,334,0,7468,7469,5,64,0,0,7469,7471,3,668, + 334,0,7470,7468,1,0,0,0,7470,7471,1,0,0,0,7471,7480,1,0,0,0,7472, + 7473,3,668,334,0,7473,7474,5,127,0,0,7474,7475,3,668,334,0,7475, + 7476,5,197,0,0,7476,7477,3,668,334,0,7477,7480,1,0,0,0,7478,7480, + 3,724,362,0,7479,7458,1,0,0,0,7479,7465,1,0,0,0,7479,7472,1,0,0, + 0,7479,7478,1,0,0,0,7480,741,1,0,0,0,7481,7482,5,102,0,0,7482,7483, + 3,668,334,0,7483,7484,5,93,0,0,7484,7485,3,668,334,0,7485,743,1, + 0,0,0,7486,7489,5,11,0,0,7487,7490,3,818,409,0,7488,7490,5,9,0,0, + 7489,7487,1,0,0,0,7489,7488,1,0,0,0,7490,7504,1,0,0,0,7491,7500, + 5,4,0,0,7492,7501,3,668,334,0,7493,7495,3,668,334,0,7494,7493,1, + 0,0,0,7494,7495,1,0,0,0,7495,7496,1,0,0,0,7496,7498,5,8,0,0,7497, + 7499,3,668,334,0,7498,7497,1,0,0,0,7498,7499,1,0,0,0,7499,7501,1, + 0,0,0,7500,7492,1,0,0,0,7500,7494,1,0,0,0,7501,7502,1,0,0,0,7502, + 7504,5,5,0,0,7503,7486,1,0,0,0,7503,7491,1,0,0,0,7504,745,1,0,0, + 0,7505,7507,3,744,372,0,7506,7505,1,0,0,0,7507,7508,1,0,0,0,7508, + 7506,1,0,0,0,7508,7509,1,0,0,0,7509,747,1,0,0,0,7510,7512,3,744, + 372,0,7511,7510,1,0,0,0,7512,7515,1,0,0,0,7513,7511,1,0,0,0,7513, + 7514,1,0,0,0,7514,749,1,0,0,0,7515,7513,1,0,0,0,7516,7521,3,752, + 376,0,7517,7518,5,6,0,0,7518,7520,3,752,376,0,7519,7517,1,0,0,0, + 7520,7523,1,0,0,0,7521,7519,1,0,0,0,7521,7522,1,0,0,0,7522,751,1, + 0,0,0,7523,7521,1,0,0,0,7524,7529,3,728,364,0,7525,7526,5,36,0,0, + 7526,7530,3,818,409,0,7527,7530,3,820,410,0,7528,7530,1,0,0,0,7529, + 7525,1,0,0,0,7529,7527,1,0,0,0,7529,7528,1,0,0,0,7530,7533,1,0,0, + 0,7531,7533,5,9,0,0,7532,7524,1,0,0,0,7532,7531,1,0,0,0,7533,753, + 1,0,0,0,7534,7539,3,774,387,0,7535,7536,5,6,0,0,7536,7538,3,774, + 387,0,7537,7535,1,0,0,0,7538,7541,1,0,0,0,7539,7537,1,0,0,0,7539, + 7540,1,0,0,0,7540,755,1,0,0,0,7541,7539,1,0,0,0,7542,7547,3,768, + 384,0,7543,7544,5,6,0,0,7544,7546,3,768,384,0,7545,7543,1,0,0,0, + 7546,7549,1,0,0,0,7547,7545,1,0,0,0,7547,7548,1,0,0,0,7548,757,1, + 0,0,0,7549,7547,1,0,0,0,7550,7555,3,784,392,0,7551,7552,5,6,0,0, + 7552,7554,3,784,392,0,7553,7551,1,0,0,0,7554,7557,1,0,0,0,7555,7553, + 1,0,0,0,7555,7556,1,0,0,0,7556,759,1,0,0,0,7557,7555,1,0,0,0,7558, + 7563,3,782,391,0,7559,7560,5,6,0,0,7560,7562,3,782,391,0,7561,7559, + 1,0,0,0,7562,7565,1,0,0,0,7563,7561,1,0,0,0,7563,7564,1,0,0,0,7564, + 761,1,0,0,0,7565,7563,1,0,0,0,7566,7567,3,774,387,0,7567,763,1,0, + 0,0,7568,7569,3,774,387,0,7569,765,1,0,0,0,7570,7571,3,774,387,0, + 7571,767,1,0,0,0,7572,7573,3,774,387,0,7573,769,1,0,0,0,7574,7575, + 3,774,387,0,7575,771,1,0,0,0,7576,7577,3,310,155,0,7577,773,1,0, + 0,0,7578,7580,3,812,406,0,7579,7581,3,746,373,0,7580,7579,1,0,0, + 0,7580,7581,1,0,0,0,7581,775,1,0,0,0,7582,7587,3,764,382,0,7583, + 7584,5,6,0,0,7584,7586,3,764,382,0,7585,7583,1,0,0,0,7586,7589,1, + 0,0,0,7587,7585,1,0,0,0,7587,7588,1,0,0,0,7588,777,1,0,0,0,7589, + 7587,1,0,0,0,7590,7595,3,812,406,0,7591,7592,5,6,0,0,7592,7594,3, + 812,406,0,7593,7591,1,0,0,0,7594,7597,1,0,0,0,7595,7593,1,0,0,0, + 7595,7596,1,0,0,0,7596,779,1,0,0,0,7597,7595,1,0,0,0,7598,7599,3, + 310,155,0,7599,781,1,0,0,0,7600,7601,3,310,155,0,7601,783,1,0,0, + 0,7602,7603,3,310,155,0,7603,785,1,0,0,0,7604,7605,3,812,406,0,7605, + 787,1,0,0,0,7606,7607,3,812,406,0,7607,789,1,0,0,0,7608,7613,3,814, + 407,0,7609,7610,3,812,406,0,7610,7611,3,746,373,0,7611,7613,1,0, + 0,0,7612,7608,1,0,0,0,7612,7609,1,0,0,0,7613,791,1,0,0,0,7614,7619, + 3,814,407,0,7615,7616,3,812,406,0,7616,7617,3,746,373,0,7617,7619, + 1,0,0,0,7618,7614,1,0,0,0,7618,7615,1,0,0,0,7619,793,1,0,0,0,7620, + 7621,3,812,406,0,7621,7622,3,748,374,0,7622,7625,1,0,0,0,7623,7625, + 4,397,10,0,7624,7620,1,0,0,0,7624,7623,1,0,0,0,7625,795,1,0,0,0, + 7626,7627,3,812,406,0,7627,797,1,0,0,0,7628,7633,3,814,407,0,7629, + 7630,3,812,406,0,7630,7631,3,746,373,0,7631,7633,1,0,0,0,7632,7628, + 1,0,0,0,7632,7629,1,0,0,0,7633,799,1,0,0,0,7634,7639,3,814,407,0, + 7635,7636,3,812,406,0,7636,7637,3,746,373,0,7637,7639,1,0,0,0,7638, + 7634,1,0,0,0,7638,7635,1,0,0,0,7639,801,1,0,0,0,7640,7643,3,804, + 402,0,7641,7642,5,487,0,0,7642,7644,3,804,402,0,7643,7641,1,0,0, + 0,7643,7644,1,0,0,0,7644,803,1,0,0,0,7645,7657,5,561,0,0,7646,7657, + 5,563,0,0,7647,7651,5,565,0,0,7648,7650,5,591,0,0,7649,7648,1,0, + 0,0,7650,7653,1,0,0,0,7651,7649,1,0,0,0,7651,7652,1,0,0,0,7652,7654, + 1,0,0,0,7653,7651,1,0,0,0,7654,7657,5,592,0,0,7655,7657,5,587,0, + 0,7656,7645,1,0,0,0,7656,7646,1,0,0,0,7656,7647,1,0,0,0,7656,7655, + 1,0,0,0,7657,805,1,0,0,0,7658,7660,7,30,0,0,7659,7658,1,0,0,0,7659, + 7660,1,0,0,0,7660,7661,1,0,0,0,7661,7662,5,574,0,0,7662,807,1,0, + 0,0,7663,7669,3,816,408,0,7664,7669,5,52,0,0,7665,7669,5,49,0,0, + 7666,7669,5,89,0,0,7667,7669,5,524,0,0,7668,7663,1,0,0,0,7668,7664, + 1,0,0,0,7668,7665,1,0,0,0,7668,7666,1,0,0,0,7668,7667,1,0,0,0,7669, + 809,1,0,0,0,7670,7675,3,808,404,0,7671,7672,5,6,0,0,7672,7674,3, + 808,404,0,7673,7671,1,0,0,0,7674,7677,1,0,0,0,7675,7673,1,0,0,0, + 7675,7676,1,0,0,0,7676,811,1,0,0,0,7677,7675,1,0,0,0,7678,7681,3, + 820,410,0,7679,7681,3,824,412,0,7680,7678,1,0,0,0,7680,7679,1,0, + 0,0,7681,813,1,0,0,0,7682,7685,3,820,410,0,7683,7685,3,826,413,0, + 7684,7682,1,0,0,0,7684,7683,1,0,0,0,7685,815,1,0,0,0,7686,7690,3, + 820,410,0,7687,7690,3,824,412,0,7688,7690,3,826,413,0,7689,7686, + 1,0,0,0,7689,7687,1,0,0,0,7689,7688,1,0,0,0,7690,817,1,0,0,0,7691, + 7696,3,820,410,0,7692,7696,3,824,412,0,7693,7696,3,826,413,0,7694, + 7696,3,828,414,0,7695,7691,1,0,0,0,7695,7692,1,0,0,0,7695,7693,1, + 0,0,0,7695,7694,1,0,0,0,7696,819,1,0,0,0,7697,7700,5,552,0,0,7698, + 7699,5,487,0,0,7699,7701,3,804,402,0,7700,7698,1,0,0,0,7700,7701, + 1,0,0,0,7701,7709,1,0,0,0,7702,7709,3,802,401,0,7703,7709,5,553, + 0,0,7704,7709,5,557,0,0,7705,7709,5,577,0,0,7706,7709,5,578,0,0, + 7707,7709,3,822,411,0,7708,7697,1,0,0,0,7708,7702,1,0,0,0,7708,7703, + 1,0,0,0,7708,7704,1,0,0,0,7708,7705,1,0,0,0,7708,7706,1,0,0,0,7708, + 7707,1,0,0,0,7709,821,1,0,0,0,7710,7711,7,110,0,0,7711,823,1,0,0, + 0,7712,7764,5,387,0,0,7713,7764,5,388,0,0,7714,7764,3,656,328,0, + 7715,7764,5,390,0,0,7716,7764,5,391,0,0,7717,7764,3,658,329,0,7718, + 7764,5,393,0,0,7719,7764,5,394,0,0,7720,7764,5,395,0,0,7721,7764, + 5,396,0,0,7722,7764,5,397,0,0,7723,7764,5,398,0,0,7724,7764,5,399, + 0,0,7725,7764,5,470,0,0,7726,7764,5,400,0,0,7727,7764,5,401,0,0, + 7728,7764,5,402,0,0,7729,7764,5,403,0,0,7730,7764,5,404,0,0,7731, + 7764,5,405,0,0,7732,7764,5,406,0,0,7733,7764,5,407,0,0,7734,7764, + 5,489,0,0,7735,7764,5,408,0,0,7736,7764,3,652,326,0,7737,7764,5, + 453,0,0,7738,7764,5,410,0,0,7739,7764,5,411,0,0,7740,7764,5,412, + 0,0,7741,7764,5,413,0,0,7742,7764,5,414,0,0,7743,7764,5,415,0,0, + 7744,7764,5,416,0,0,7745,7764,5,417,0,0,7746,7764,5,418,0,0,7747, + 7764,5,419,0,0,7748,7764,5,420,0,0,7749,7764,5,421,0,0,7750,7764, + 5,422,0,0,7751,7764,5,423,0,0,7752,7764,5,424,0,0,7753,7764,5,425, + 0,0,7754,7764,5,426,0,0,7755,7764,5,427,0,0,7756,7764,5,428,0,0, + 7757,7764,5,476,0,0,7758,7764,5,429,0,0,7759,7764,5,430,0,0,7760, + 7764,5,431,0,0,7761,7764,5,432,0,0,7762,7764,5,474,0,0,7763,7712, + 1,0,0,0,7763,7713,1,0,0,0,7763,7714,1,0,0,0,7763,7715,1,0,0,0,7763, + 7716,1,0,0,0,7763,7717,1,0,0,0,7763,7718,1,0,0,0,7763,7719,1,0,0, + 0,7763,7720,1,0,0,0,7763,7721,1,0,0,0,7763,7722,1,0,0,0,7763,7723, + 1,0,0,0,7763,7724,1,0,0,0,7763,7725,1,0,0,0,7763,7726,1,0,0,0,7763, + 7727,1,0,0,0,7763,7728,1,0,0,0,7763,7729,1,0,0,0,7763,7730,1,0,0, + 0,7763,7731,1,0,0,0,7763,7732,1,0,0,0,7763,7733,1,0,0,0,7763,7734, + 1,0,0,0,7763,7735,1,0,0,0,7763,7736,1,0,0,0,7763,7737,1,0,0,0,7763, + 7738,1,0,0,0,7763,7739,1,0,0,0,7763,7740,1,0,0,0,7763,7741,1,0,0, + 0,7763,7742,1,0,0,0,7763,7743,1,0,0,0,7763,7744,1,0,0,0,7763,7745, + 1,0,0,0,7763,7746,1,0,0,0,7763,7747,1,0,0,0,7763,7748,1,0,0,0,7763, + 7749,1,0,0,0,7763,7750,1,0,0,0,7763,7751,1,0,0,0,7763,7752,1,0,0, + 0,7763,7753,1,0,0,0,7763,7754,1,0,0,0,7763,7755,1,0,0,0,7763,7756, + 1,0,0,0,7763,7757,1,0,0,0,7763,7758,1,0,0,0,7763,7759,1,0,0,0,7763, + 7760,1,0,0,0,7763,7761,1,0,0,0,7763,7762,1,0,0,0,7764,825,1,0,0, + 0,7765,7766,7,111,0,0,7766,827,1,0,0,0,7767,7768,7,112,0,0,7768, + 829,1,0,0,0,7769,7771,3,832,416,0,7770,7769,1,0,0,0,7770,7771,1, + 0,0,0,7771,7782,1,0,0,0,7772,7780,5,178,0,0,7773,7777,3,834,417, + 0,7774,7777,5,178,0,0,7775,7777,3,832,416,0,7776,7773,1,0,0,0,7776, + 7774,1,0,0,0,7776,7775,1,0,0,0,7777,7778,1,0,0,0,7778,7776,1,0,0, + 0,7778,7779,1,0,0,0,7779,7781,1,0,0,0,7780,7776,1,0,0,0,7780,7781, + 1,0,0,0,7781,7783,1,0,0,0,7782,7772,1,0,0,0,7782,7783,1,0,0,0,7783, + 7784,1,0,0,0,7784,7788,5,146,0,0,7785,7787,3,840,420,0,7786,7785, + 1,0,0,0,7787,7790,1,0,0,0,7788,7786,1,0,0,0,7788,7789,1,0,0,0,7789, + 7792,1,0,0,0,7790,7788,1,0,0,0,7791,7793,3,918,459,0,7792,7791,1, + 0,0,0,7792,7793,1,0,0,0,7793,7794,1,0,0,0,7794,7796,5,454,0,0,7795, + 7797,3,922,461,0,7796,7795,1,0,0,0,7796,7797,1,0,0,0,7797,831,1, + 0,0,0,7798,7799,5,18,0,0,7799,7800,3,922,461,0,7800,7801,5,19,0, + 0,7801,833,1,0,0,0,7802,7849,3,922,461,0,7803,7804,5,496,0,0,7804, + 7807,5,62,0,0,7805,7808,5,28,0,0,7806,7808,3,812,406,0,7807,7805, + 1,0,0,0,7807,7806,1,0,0,0,7808,7850,1,0,0,0,7809,7811,5,497,0,0, + 7810,7809,1,0,0,0,7810,7811,1,0,0,0,7811,7812,1,0,0,0,7812,7814, + 3,646,323,0,7813,7815,3,90,45,0,7814,7813,1,0,0,0,7814,7815,1,0, + 0,0,7815,7818,1,0,0,0,7816,7817,5,77,0,0,7817,7819,5,78,0,0,7818, + 7816,1,0,0,0,7818,7819,1,0,0,0,7819,7825,1,0,0,0,7820,7823,3,838, + 419,0,7821,7823,5,53,0,0,7822,7820,1,0,0,0,7822,7821,1,0,0,0,7823, + 7824,1,0,0,0,7824,7826,3,924,462,0,7825,7822,1,0,0,0,7825,7826,1, + 0,0,0,7826,7850,1,0,0,0,7827,7829,5,269,0,0,7828,7827,1,0,0,0,7828, + 7829,1,0,0,0,7829,7830,1,0,0,0,7830,7832,5,324,0,0,7831,7828,1,0, + 0,0,7831,7832,1,0,0,0,7832,7833,1,0,0,0,7833,7845,5,172,0,0,7834, + 7835,5,2,0,0,7835,7840,3,836,418,0,7836,7837,5,6,0,0,7837,7839,3, + 836,418,0,7838,7836,1,0,0,0,7839,7842,1,0,0,0,7840,7838,1,0,0,0, + 7840,7841,1,0,0,0,7841,7843,1,0,0,0,7842,7840,1,0,0,0,7843,7844, + 5,3,0,0,7844,7846,1,0,0,0,7845,7834,1,0,0,0,7845,7846,1,0,0,0,7846, + 7847,1,0,0,0,7847,7848,7,113,0,0,7848,7850,3,554,277,0,7849,7803, + 1,0,0,0,7849,7810,1,0,0,0,7849,7831,1,0,0,0,7850,7851,1,0,0,0,7851, + 7852,5,7,0,0,7852,835,1,0,0,0,7853,7854,3,922,461,0,7854,7855,3, + 646,323,0,7855,837,1,0,0,0,7856,7857,7,114,0,0,7857,839,1,0,0,0, + 7858,7859,3,830,415,0,7859,7860,5,7,0,0,7860,7883,1,0,0,0,7861,7883, + 3,868,434,0,7862,7883,3,870,435,0,7863,7883,3,846,423,0,7864,7883, + 3,854,427,0,7865,7883,3,858,429,0,7866,7883,3,860,430,0,7867,7883, + 3,864,432,0,7868,7883,3,866,433,0,7869,7883,3,874,437,0,7870,7883, + 3,878,439,0,7871,7883,3,880,440,0,7872,7883,3,842,421,0,7873,7883, + 3,844,422,0,7874,7883,3,848,424,0,7875,7883,3,884,442,0,7876,7883, + 3,888,444,0,7877,7883,3,892,446,0,7878,7883,3,908,454,0,7879,7883, + 3,910,455,0,7880,7883,3,912,456,0,7881,7883,3,914,457,0,7882,7858, + 1,0,0,0,7882,7861,1,0,0,0,7882,7862,1,0,0,0,7882,7863,1,0,0,0,7882, + 7864,1,0,0,0,7882,7865,1,0,0,0,7882,7866,1,0,0,0,7882,7867,1,0,0, + 0,7882,7868,1,0,0,0,7882,7869,1,0,0,0,7882,7870,1,0,0,0,7882,7871, + 1,0,0,0,7882,7872,1,0,0,0,7882,7873,1,0,0,0,7882,7874,1,0,0,0,7882, + 7875,1,0,0,0,7882,7876,1,0,0,0,7882,7877,1,0,0,0,7882,7878,1,0,0, + 0,7882,7879,1,0,0,0,7882,7880,1,0,0,0,7882,7881,1,0,0,0,7883,841, + 1,0,0,0,7884,7885,5,498,0,0,7885,7886,3,924,462,0,7886,7887,5,7, + 0,0,7887,843,1,0,0,0,7888,7889,5,433,0,0,7889,7896,3,922,461,0,7890, + 7892,5,2,0,0,7891,7893,3,724,362,0,7892,7891,1,0,0,0,7892,7893,1, + 0,0,0,7893,7894,1,0,0,0,7894,7895,5,3,0,0,7895,7897,5,7,0,0,7896, + 7890,1,0,0,0,7896,7897,1,0,0,0,7897,7908,1,0,0,0,7898,7899,5,57, + 0,0,7899,7900,3,922,461,0,7900,7902,5,2,0,0,7901,7903,3,724,362, + 0,7902,7901,1,0,0,0,7902,7903,1,0,0,0,7903,7904,1,0,0,0,7904,7905, + 5,3,0,0,7905,7906,5,7,0,0,7906,7908,1,0,0,0,7907,7888,1,0,0,0,7907, + 7898,1,0,0,0,7908,845,1,0,0,0,7909,7910,3,852,426,0,7910,7911,3, + 838,419,0,7911,7912,3,924,462,0,7912,7913,5,7,0,0,7913,847,1,0,0, + 0,7914,7916,5,499,0,0,7915,7917,7,115,0,0,7916,7915,1,0,0,0,7916, + 7917,1,0,0,0,7917,7918,1,0,0,0,7918,7919,5,500,0,0,7919,7924,3,850, + 425,0,7920,7921,5,6,0,0,7921,7923,3,850,425,0,7922,7920,1,0,0,0, + 7923,7926,1,0,0,0,7924,7922,1,0,0,0,7924,7925,1,0,0,0,7925,7927, + 1,0,0,0,7926,7924,1,0,0,0,7927,7928,5,7,0,0,7928,849,1,0,0,0,7929, + 7930,3,852,426,0,7930,7931,3,838,419,0,7931,7932,3,812,406,0,7932, + 851,1,0,0,0,7933,7936,3,310,155,0,7934,7936,5,28,0,0,7935,7933,1, + 0,0,0,7935,7934,1,0,0,0,7936,7943,1,0,0,0,7937,7938,5,4,0,0,7938, + 7939,3,668,334,0,7939,7940,5,5,0,0,7940,7942,1,0,0,0,7941,7937,1, + 0,0,0,7942,7945,1,0,0,0,7943,7941,1,0,0,0,7943,7944,1,0,0,0,7944, + 853,1,0,0,0,7945,7943,1,0,0,0,7946,7947,5,220,0,0,7947,7948,3,924, + 462,0,7948,7952,5,93,0,0,7949,7951,3,840,420,0,7950,7949,1,0,0,0, + 7951,7954,1,0,0,0,7952,7950,1,0,0,0,7952,7953,1,0,0,0,7953,7966, + 1,0,0,0,7954,7952,1,0,0,0,7955,7956,5,502,0,0,7956,7957,3,668,334, + 0,7957,7961,5,93,0,0,7958,7960,3,840,420,0,7959,7958,1,0,0,0,7960, + 7963,1,0,0,0,7961,7959,1,0,0,0,7961,7962,1,0,0,0,7962,7965,1,0,0, + 0,7963,7961,1,0,0,0,7964,7955,1,0,0,0,7965,7968,1,0,0,0,7966,7964, + 1,0,0,0,7966,7967,1,0,0,0,7967,7970,1,0,0,0,7968,7966,1,0,0,0,7969, + 7971,3,856,428,0,7970,7969,1,0,0,0,7970,7971,1,0,0,0,7971,7972,1, + 0,0,0,7972,7973,5,454,0,0,7973,7974,5,220,0,0,7974,7975,5,7,0,0, + 7975,855,1,0,0,0,7976,7980,5,58,0,0,7977,7979,3,840,420,0,7978,7977, + 1,0,0,0,7979,7982,1,0,0,0,7980,7978,1,0,0,0,7980,7981,1,0,0,0,7981, + 857,1,0,0,0,7982,7980,1,0,0,0,7983,7985,5,40,0,0,7984,7986,3,924, + 462,0,7985,7984,1,0,0,0,7985,7986,1,0,0,0,7986,7996,1,0,0,0,7987, + 7988,5,102,0,0,7988,7989,3,724,362,0,7989,7993,5,93,0,0,7990,7992, + 3,840,420,0,7991,7990,1,0,0,0,7992,7995,1,0,0,0,7993,7991,1,0,0, + 0,7993,7994,1,0,0,0,7994,7997,1,0,0,0,7995,7993,1,0,0,0,7996,7987, + 1,0,0,0,7997,7998,1,0,0,0,7998,7996,1,0,0,0,7998,7999,1,0,0,0,7999, + 8001,1,0,0,0,8000,8002,3,856,428,0,8001,8000,1,0,0,0,8001,8002,1, + 0,0,0,8002,8003,1,0,0,0,8003,8004,5,454,0,0,8004,8005,5,40,0,0,8005, + 8006,5,7,0,0,8006,859,1,0,0,0,8007,8009,3,832,416,0,8008,8007,1, + 0,0,0,8008,8009,1,0,0,0,8009,8014,1,0,0,0,8010,8011,5,503,0,0,8011, + 8015,3,668,334,0,8012,8013,5,62,0,0,8013,8015,3,862,431,0,8014,8010, + 1,0,0,0,8014,8012,1,0,0,0,8014,8015,1,0,0,0,8015,8016,1,0,0,0,8016, + 8017,3,876,438,0,8017,861,1,0,0,0,8018,8019,3,308,154,0,8019,8042, + 5,68,0,0,8020,8022,3,812,406,0,8021,8023,3,528,264,0,8022,8021,1, + 0,0,0,8022,8023,1,0,0,0,8023,8043,1,0,0,0,8024,8043,3,554,277,0, + 8025,8043,3,514,257,0,8026,8027,5,202,0,0,8027,8030,3,668,334,0, + 8028,8029,5,100,0,0,8029,8031,3,724,362,0,8030,8028,1,0,0,0,8030, + 8031,1,0,0,0,8031,8043,1,0,0,0,8032,8034,5,504,0,0,8033,8032,1,0, + 0,0,8033,8034,1,0,0,0,8034,8035,1,0,0,0,8035,8036,3,668,334,0,8036, + 8037,5,24,0,0,8037,8040,3,668,334,0,8038,8039,5,147,0,0,8039,8041, + 3,668,334,0,8040,8038,1,0,0,0,8040,8041,1,0,0,0,8041,8043,1,0,0, + 0,8042,8020,1,0,0,0,8042,8024,1,0,0,0,8042,8025,1,0,0,0,8042,8026, + 1,0,0,0,8042,8033,1,0,0,0,8043,863,1,0,0,0,8044,8046,3,832,416,0, + 8045,8044,1,0,0,0,8045,8046,1,0,0,0,8046,8047,1,0,0,0,8047,8048, + 5,505,0,0,8048,8051,3,308,154,0,8049,8050,5,506,0,0,8050,8052,5, + 574,0,0,8051,8049,1,0,0,0,8051,8052,1,0,0,0,8052,8053,1,0,0,0,8053, + 8054,5,68,0,0,8054,8055,5,35,0,0,8055,8056,3,668,334,0,8056,8057, + 3,876,438,0,8057,865,1,0,0,0,8058,8060,7,116,0,0,8059,8061,3,922, + 461,0,8060,8059,1,0,0,0,8060,8061,1,0,0,0,8061,8064,1,0,0,0,8062, + 8063,5,102,0,0,8063,8065,3,924,462,0,8064,8062,1,0,0,0,8064,8065, + 1,0,0,0,8065,8066,1,0,0,0,8066,8067,5,7,0,0,8067,867,1,0,0,0,8068, + 8083,5,508,0,0,8069,8070,5,268,0,0,8070,8084,3,924,462,0,8071,8078, + 5,509,0,0,8072,8073,5,202,0,0,8073,8074,3,668,334,0,8074,8075,5, + 100,0,0,8075,8076,3,724,362,0,8076,8079,1,0,0,0,8077,8079,3,554, + 277,0,8078,8072,1,0,0,0,8078,8077,1,0,0,0,8079,8084,1,0,0,0,8080, + 8082,3,924,462,0,8081,8080,1,0,0,0,8081,8082,1,0,0,0,8082,8084,1, + 0,0,0,8083,8069,1,0,0,0,8083,8071,1,0,0,0,8083,8081,1,0,0,0,8084, + 8085,1,0,0,0,8085,8086,5,7,0,0,8086,869,1,0,0,0,8087,8117,5,510, + 0,0,8088,8090,7,117,0,0,8089,8088,1,0,0,0,8089,8090,1,0,0,0,8090, + 8103,1,0,0,0,8091,8104,3,820,410,0,8092,8093,5,511,0,0,8093,8104, + 3,802,401,0,8094,8101,3,802,401,0,8095,8096,5,6,0,0,8096,8098,3, + 668,334,0,8097,8095,1,0,0,0,8098,8099,1,0,0,0,8099,8097,1,0,0,0, + 8099,8100,1,0,0,0,8100,8102,1,0,0,0,8101,8097,1,0,0,0,8101,8102, + 1,0,0,0,8102,8104,1,0,0,0,8103,8091,1,0,0,0,8103,8092,1,0,0,0,8103, + 8094,1,0,0,0,8103,8104,1,0,0,0,8104,8114,1,0,0,0,8105,8106,5,100, + 0,0,8106,8111,3,872,436,0,8107,8108,5,6,0,0,8108,8110,3,872,436, + 0,8109,8107,1,0,0,0,8110,8113,1,0,0,0,8111,8109,1,0,0,0,8111,8112, + 1,0,0,0,8112,8115,1,0,0,0,8113,8111,1,0,0,0,8114,8105,1,0,0,0,8114, + 8115,1,0,0,0,8115,8116,1,0,0,0,8116,8118,5,7,0,0,8117,8089,1,0,0, + 0,8117,8118,1,0,0,0,8118,871,1,0,0,0,8119,8120,3,820,410,0,8120, + 8121,5,10,0,0,8121,8122,3,668,334,0,8122,873,1,0,0,0,8123,8124,5, + 518,0,0,8124,8127,3,924,462,0,8125,8126,5,6,0,0,8126,8128,3,924, + 462,0,8127,8125,1,0,0,0,8127,8128,1,0,0,0,8128,8129,1,0,0,0,8129, + 8130,5,7,0,0,8130,875,1,0,0,0,8131,8135,5,519,0,0,8132,8134,3,840, + 420,0,8133,8132,1,0,0,0,8134,8137,1,0,0,0,8135,8133,1,0,0,0,8135, + 8136,1,0,0,0,8136,8138,1,0,0,0,8137,8135,1,0,0,0,8138,8139,5,454, + 0,0,8139,8141,5,519,0,0,8140,8142,3,922,461,0,8141,8140,1,0,0,0, + 8141,8142,1,0,0,0,8142,8143,1,0,0,0,8143,8144,5,7,0,0,8144,877,1, + 0,0,0,8145,8147,3,4,2,0,8146,8148,3,882,441,0,8147,8146,1,0,0,0, + 8147,8148,1,0,0,0,8148,8149,1,0,0,0,8149,8150,5,7,0,0,8150,879,1, + 0,0,0,8151,8152,5,202,0,0,8152,8168,3,668,334,0,8153,8155,3,882, + 441,0,8154,8153,1,0,0,0,8154,8155,1,0,0,0,8155,8158,1,0,0,0,8156, + 8157,5,100,0,0,8157,8159,3,724,362,0,8158,8156,1,0,0,0,8158,8159, + 1,0,0,0,8159,8169,1,0,0,0,8160,8161,5,100,0,0,8161,8163,3,724,362, + 0,8162,8160,1,0,0,0,8162,8163,1,0,0,0,8163,8165,1,0,0,0,8164,8166, + 3,882,441,0,8165,8164,1,0,0,0,8165,8166,1,0,0,0,8166,8169,1,0,0, + 0,8167,8169,1,0,0,0,8168,8154,1,0,0,0,8168,8162,1,0,0,0,8168,8167, + 1,0,0,0,8169,8170,1,0,0,0,8170,8171,5,7,0,0,8171,881,1,0,0,0,8172, + 8174,5,71,0,0,8173,8175,5,346,0,0,8174,8173,1,0,0,0,8174,8175,1, + 0,0,0,8175,8176,1,0,0,0,8176,8177,3,724,362,0,8177,883,1,0,0,0,8178, + 8210,5,520,0,0,8179,8184,3,916,458,0,8180,8182,5,269,0,0,8181,8180, + 1,0,0,0,8181,8182,1,0,0,0,8182,8183,1,0,0,0,8183,8185,5,324,0,0, + 8184,8181,1,0,0,0,8184,8185,1,0,0,0,8185,8186,1,0,0,0,8186,8194, + 5,62,0,0,8187,8195,3,554,277,0,8188,8189,5,202,0,0,8189,8192,3,924, + 462,0,8190,8191,5,100,0,0,8191,8193,3,724,362,0,8192,8190,1,0,0, + 0,8192,8193,1,0,0,0,8193,8195,1,0,0,0,8194,8187,1,0,0,0,8194,8188, + 1,0,0,0,8195,8211,1,0,0,0,8196,8208,3,812,406,0,8197,8198,5,2,0, + 0,8198,8203,3,886,443,0,8199,8200,5,6,0,0,8200,8202,3,886,443,0, + 8201,8199,1,0,0,0,8202,8205,1,0,0,0,8203,8201,1,0,0,0,8203,8204, + 1,0,0,0,8204,8206,1,0,0,0,8205,8203,1,0,0,0,8206,8207,5,3,0,0,8207, + 8209,1,0,0,0,8208,8197,1,0,0,0,8208,8209,1,0,0,0,8209,8211,1,0,0, + 0,8210,8179,1,0,0,0,8210,8196,1,0,0,0,8211,8212,1,0,0,0,8212,8213, + 5,7,0,0,8213,885,1,0,0,0,8214,8215,3,812,406,0,8215,8216,5,20,0, + 0,8216,8218,1,0,0,0,8217,8214,1,0,0,0,8217,8218,1,0,0,0,8218,8219, + 1,0,0,0,8219,8220,3,668,334,0,8220,887,1,0,0,0,8221,8223,5,61,0, + 0,8222,8224,3,890,445,0,8223,8222,1,0,0,0,8223,8224,1,0,0,0,8224, + 8226,1,0,0,0,8225,8227,3,326,163,0,8226,8225,1,0,0,0,8226,8227,1, + 0,0,0,8227,8228,1,0,0,0,8228,8229,3,916,458,0,8229,8230,5,71,0,0, + 8230,8231,3,724,362,0,8231,8232,5,7,0,0,8232,889,1,0,0,0,8233,8248, + 5,268,0,0,8234,8248,5,293,0,0,8235,8248,5,207,0,0,8236,8248,5,249, + 0,0,8237,8239,7,51,0,0,8238,8237,1,0,0,0,8238,8239,1,0,0,0,8239, + 8240,1,0,0,0,8240,8248,3,668,334,0,8241,8248,5,30,0,0,8242,8245, + 7,118,0,0,8243,8246,3,668,334,0,8244,8246,5,30,0,0,8245,8243,1,0, + 0,0,8245,8244,1,0,0,0,8245,8246,1,0,0,0,8246,8248,1,0,0,0,8247,8233, + 1,0,0,0,8247,8234,1,0,0,0,8247,8235,1,0,0,0,8247,8236,1,0,0,0,8247, + 8238,1,0,0,0,8247,8241,1,0,0,0,8247,8242,1,0,0,0,8248,891,1,0,0, + 0,8249,8251,5,265,0,0,8250,8252,3,890,445,0,8251,8250,1,0,0,0,8251, + 8252,1,0,0,0,8252,8253,1,0,0,0,8253,8254,3,916,458,0,8254,8255,5, + 7,0,0,8255,893,1,0,0,0,8256,8258,3,566,283,0,8257,8256,1,0,0,0,8257, + 8258,1,0,0,0,8258,8259,1,0,0,0,8259,8260,5,525,0,0,8260,8262,5,71, + 0,0,8261,8263,5,81,0,0,8262,8261,1,0,0,0,8262,8263,1,0,0,0,8263, + 8264,1,0,0,0,8264,8266,3,768,384,0,8265,8267,5,9,0,0,8266,8265,1, + 0,0,0,8266,8267,1,0,0,0,8267,8272,1,0,0,0,8268,8270,5,36,0,0,8269, + 8268,1,0,0,0,8269,8270,1,0,0,0,8270,8271,1,0,0,0,8271,8273,3,812, + 406,0,8272,8269,1,0,0,0,8272,8273,1,0,0,0,8273,8274,1,0,0,0,8274, + 8275,5,100,0,0,8275,8276,3,896,448,0,8276,8277,5,80,0,0,8277,8279, + 3,668,334,0,8278,8280,3,898,449,0,8279,8278,1,0,0,0,8280,8281,1, + 0,0,0,8281,8279,1,0,0,0,8281,8282,1,0,0,0,8282,8284,1,0,0,0,8283, + 8285,3,540,270,0,8284,8283,1,0,0,0,8284,8285,1,0,0,0,8285,895,1, + 0,0,0,8286,8288,5,81,0,0,8287,8286,1,0,0,0,8287,8288,1,0,0,0,8288, + 8289,1,0,0,0,8289,8291,3,768,384,0,8290,8292,5,9,0,0,8291,8290,1, + 0,0,0,8291,8292,1,0,0,0,8292,8298,1,0,0,0,8293,8296,3,558,279,0, + 8294,8296,3,602,301,0,8295,8293,1,0,0,0,8295,8294,1,0,0,0,8296,8298, + 1,0,0,0,8297,8287,1,0,0,0,8297,8295,1,0,0,0,8298,8303,1,0,0,0,8299, + 8301,5,36,0,0,8300,8299,1,0,0,0,8300,8301,1,0,0,0,8301,8302,1,0, + 0,0,8302,8304,3,812,406,0,8303,8300,1,0,0,0,8303,8304,1,0,0,0,8304, + 897,1,0,0,0,8305,8306,5,102,0,0,8306,8309,5,526,0,0,8307,8308,5, + 33,0,0,8308,8310,3,668,334,0,8309,8307,1,0,0,0,8309,8310,1,0,0,0, + 8310,8311,1,0,0,0,8311,8316,5,93,0,0,8312,8317,3,902,451,0,8313, + 8317,5,182,0,0,8314,8315,5,57,0,0,8315,8317,5,270,0,0,8316,8312, + 1,0,0,0,8316,8313,1,0,0,0,8316,8314,1,0,0,0,8317,8332,1,0,0,0,8318, + 8319,5,102,0,0,8319,8320,5,77,0,0,8320,8323,5,526,0,0,8321,8322, + 5,33,0,0,8322,8324,3,668,334,0,8323,8321,1,0,0,0,8323,8324,1,0,0, + 0,8324,8325,1,0,0,0,8325,8329,5,93,0,0,8326,8330,3,900,450,0,8327, + 8328,5,57,0,0,8328,8330,5,270,0,0,8329,8326,1,0,0,0,8329,8327,1, + 0,0,0,8330,8332,1,0,0,0,8331,8305,1,0,0,0,8331,8318,1,0,0,0,8332, + 899,1,0,0,0,8333,8335,5,241,0,0,8334,8336,3,138,69,0,8335,8334,1, + 0,0,0,8335,8336,1,0,0,0,8336,8340,1,0,0,0,8337,8338,5,463,0,0,8338, + 8339,7,77,0,0,8339,8341,5,450,0,0,8340,8337,1,0,0,0,8340,8341,1, + 0,0,0,8341,8342,1,0,0,0,8342,8343,3,904,452,0,8343,901,1,0,0,0,8344, + 8345,5,369,0,0,8345,8363,5,333,0,0,8346,8347,3,794,397,0,8347,8348, + 5,10,0,0,8348,8349,3,906,453,0,8349,8364,1,0,0,0,8350,8351,3,138, + 69,0,8351,8352,5,10,0,0,8352,8353,5,2,0,0,8353,8358,3,906,453,0, + 8354,8355,5,6,0,0,8355,8357,3,906,453,0,8356,8354,1,0,0,0,8357,8360, + 1,0,0,0,8358,8356,1,0,0,0,8358,8359,1,0,0,0,8359,8361,1,0,0,0,8360, + 8358,1,0,0,0,8361,8362,5,3,0,0,8362,8364,1,0,0,0,8363,8346,1,0,0, + 0,8363,8350,1,0,0,0,8364,8365,1,0,0,0,8365,8363,1,0,0,0,8365,8366, + 1,0,0,0,8366,903,1,0,0,0,8367,8368,5,422,0,0,8368,8369,5,2,0,0,8369, + 8374,3,906,453,0,8370,8371,5,6,0,0,8371,8373,3,906,453,0,8372,8370, + 1,0,0,0,8373,8376,1,0,0,0,8374,8372,1,0,0,0,8374,8375,1,0,0,0,8375, + 8377,1,0,0,0,8376,8374,1,0,0,0,8377,8378,5,3,0,0,8378,8382,1,0,0, + 0,8379,8380,5,53,0,0,8380,8382,5,422,0,0,8381,8367,1,0,0,0,8381, + 8379,1,0,0,0,8382,905,1,0,0,0,8383,8386,3,582,291,0,8384,8386,5, + 53,0,0,8385,8383,1,0,0,0,8385,8384,1,0,0,0,8386,907,1,0,0,0,8387, + 8388,5,157,0,0,8388,8389,3,916,458,0,8389,8390,5,7,0,0,8390,909, + 1,0,0,0,8391,8392,5,78,0,0,8392,8393,5,7,0,0,8393,911,1,0,0,0,8394, + 8400,7,68,0,0,8395,8397,5,33,0,0,8396,8398,5,269,0,0,8397,8396,1, + 0,0,0,8397,8398,1,0,0,0,8398,8399,1,0,0,0,8399,8401,5,153,0,0,8400, + 8395,1,0,0,0,8400,8401,1,0,0,0,8401,8402,1,0,0,0,8402,8403,5,7,0, + 0,8403,913,1,0,0,0,8404,8405,5,333,0,0,8405,8406,3,310,155,0,8406, + 8407,5,94,0,0,8407,8408,5,53,0,0,8408,8409,5,7,0,0,8409,8417,1,0, + 0,0,8410,8413,5,313,0,0,8411,8414,3,310,155,0,8412,8414,5,30,0,0, + 8413,8411,1,0,0,0,8413,8412,1,0,0,0,8414,8415,1,0,0,0,8415,8417, + 5,7,0,0,8416,8404,1,0,0,0,8416,8410,1,0,0,0,8417,915,1,0,0,0,8418, + 8421,3,812,406,0,8419,8421,5,28,0,0,8420,8418,1,0,0,0,8420,8419, + 1,0,0,0,8421,917,1,0,0,0,8422,8439,5,517,0,0,8423,8424,5,102,0,0, + 8424,8429,3,920,460,0,8425,8426,5,82,0,0,8426,8428,3,920,460,0,8427, + 8425,1,0,0,0,8428,8431,1,0,0,0,8429,8427,1,0,0,0,8429,8430,1,0,0, + 0,8430,8432,1,0,0,0,8431,8429,1,0,0,0,8432,8436,5,93,0,0,8433,8435, + 3,840,420,0,8434,8433,1,0,0,0,8435,8438,1,0,0,0,8436,8434,1,0,0, + 0,8436,8437,1,0,0,0,8437,8440,1,0,0,0,8438,8436,1,0,0,0,8439,8423, + 1,0,0,0,8440,8441,1,0,0,0,8441,8439,1,0,0,0,8441,8442,1,0,0,0,8442, + 919,1,0,0,0,8443,8447,3,922,461,0,8444,8445,5,511,0,0,8445,8447, + 3,802,401,0,8446,8443,1,0,0,0,8446,8444,1,0,0,0,8447,921,1,0,0,0, + 8448,8451,3,812,406,0,8449,8451,3,822,411,0,8450,8448,1,0,0,0,8450, + 8449,1,0,0,0,8451,923,1,0,0,0,8452,8454,3,750,375,0,8453,8452,1, + 0,0,0,8453,8454,1,0,0,0,8454,8456,1,0,0,0,8455,8457,3,574,287,0, + 8456,8455,1,0,0,0,8456,8457,1,0,0,0,8457,8459,1,0,0,0,8458,8460, + 3,604,302,0,8459,8458,1,0,0,0,8459,8460,1,0,0,0,8460,8462,1,0,0, + 0,8461,8463,3,632,316,0,8462,8461,1,0,0,0,8462,8463,1,0,0,0,8463, + 8465,1,0,0,0,8464,8466,3,594,297,0,8465,8464,1,0,0,0,8465,8466,1, + 0,0,0,8466,8469,1,0,0,0,8467,8468,5,67,0,0,8468,8470,3,668,334,0, + 8469,8467,1,0,0,0,8469,8470,1,0,0,0,8470,8472,1,0,0,0,8471,8473, + 3,696,348,0,8472,8471,1,0,0,0,8472,8473,1,0,0,0,8473,925,1,0,0,0, + 1190,929,936,1056,1058,1067,1072,1078,1113,1123,1129,1134,1141,1146, + 1153,1164,1172,1176,1188,1194,1200,1204,1209,1213,1226,1236,1238, + 1244,1249,1262,1265,1270,1275,1286,1290,1302,1306,1309,1313,1325, + 1343,1350,1358,1363,1370,1378,1384,1392,1400,1404,1418,1423,1428, + 1440,1446,1458,1463,1473,1479,1484,1493,1500,1505,1510,1520,1525, + 1530,1537,1541,1555,1561,1567,1572,1579,1588,1597,1606,1615,1619, + 1631,1639,1649,1669,1674,1677,1684,1687,1691,1695,1698,1703,1708, + 1712,1721,1727,1731,1740,1743,1749,1758,1770,1774,1778,1783,1786, + 1792,1794,1796,1800,1806,1810,1815,1820,1824,1827,1834,1847,1860, + 1885,1895,1902,1907,1911,1918,1923,1926,1928,1933,1937,1941,1945, + 1950,1953,1957,1960,1964,1972,1977,1980,1984,1990,1999,2003,2013, + 2018,2022,2026,2028,2030,2037,2042,2046,2051,2063,2068,2072,2076, + 2081,2085,2088,2091,2094,2097,2100,2105,2108,2111,2114,2117,2120, + 2126,2130,2133,2136,2139,2142,2144,2151,2159,2169,2174,2184,2187, + 2192,2197,2202,2205,2210,2219,2221,2225,2228,2232,2237,2242,2246, + 2249,2253,2256,2261,2264,2269,2272,2276,2279,2282,2287,2290,2298, + 2310,2314,2321,2326,2329,2332,2335,2340,2351,2357,2361,2364,2367, + 2372,2379,2382,2386,2394,2399,2402,2405,2412,2417,2426,2429,2432, + 2437,2440,2452,2462,2479,2483,2487,2489,2506,2508,2524,2535,2538, + 2541,2550,2559,2575,2578,2581,2589,2593,2600,2609,2613,2619,2623, + 2626,2629,2632,2635,2641,2645,2650,2654,2657,2660,2663,2668,2674, + 2678,2682,2686,2692,2694,2699,2705,2711,2715,2730,2735,2738,2740, + 2743,2747,2751,2754,2757,2765,2771,2773,2779,2784,2789,2793,2800, + 2802,2813,2852,2862,2864,2867,2871,2875,2885,2887,2893,2895,2904, + 2916,2930,2935,2938,2945,2950,2958,2960,2966,2971,2975,2980,2986, + 2993,2999,3001,3010,3016,3024,3030,3035,3040,3048,3063,3065,3069, + 3073,3076,3079,3088,3091,3094,3100,3106,3110,3122,3128,3131,3136, + 3140,3147,3157,3159,3183,3195,3200,3202,3206,3209,3212,3222,3225, + 3235,3240,3245,3248,3251,3259,3265,3272,3280,3283,3294,3298,3304, + 3311,3314,3323,3337,3340,3354,3365,3368,3380,3385,3398,3403,3416, + 3425,3428,3431,3438,3441,3453,3459,3461,3469,3477,3485,3497,3502, + 3513,3524,3532,3540,3547,3554,3556,3559,3564,3569,3588,3597,3600, + 3627,3636,3639,3643,3647,3651,3658,3662,3666,3670,3674,3679,3683, + 3688,3694,3699,3706,3710,3716,3720,3725,3733,3739,3744,3751,3756, + 3760,3765,3771,3778,3783,3790,3795,3802,3806,3814,3818,3820,3823, + 3828,3838,3853,3856,3864,3871,3876,3882,3886,3893,3898,3901,3904, + 3908,3917,3935,3938,3970,3975,3981,4001,4006,4012,4015,4019,4023, + 4029,4032,4036,4040,4045,4048,4051,4054,4067,4073,4081,4088,4093, + 4096,4103,4106,4114,4117,4122,4129,4132,4152,4164,4167,4173,4178, + 4187,4195,4200,4206,4213,4221,4224,4235,4237,4251,4257,4265,4267, + 4273,4277,4280,4283,4288,4293,4297,4300,4303,4306,4309,4317,4328, + 4331,4334,4339,4342,4346,4350,4356,4364,4367,4380,4385,4387,4392, + 4399,4406,4415,4423,4431,4438,4446,4453,4461,4465,4469,4471,4477, + 4482,4486,4493,4498,4503,4508,4510,4520,4530,4546,4564,4576,4583, + 4598,4603,4606,4611,4616,4621,4624,4627,4632,4639,4643,4648,4655, + 4659,4665,4674,4683,4695,4697,4710,4716,4720,4722,4729,4742,4749, + 4751,4767,4771,4775,4780,4785,4790,4795,4798,4810,4863,4872,4876, + 4885,4889,4898,4902,4907,4910,4914,4919,4921,4930,4935,4946,4950, + 4964,4972,5010,5012,5031,5034,5061,5065,5069,5073,5077,5080,5095, + 5102,5116,5129,5154,5173,5188,5204,5211,5222,5225,5244,5247,5260, + 5264,5284,5296,5300,5322,5326,5336,5340,5346,5350,5354,5358,5365, + 5370,5381,5385,5388,5393,5399,5410,5414,5417,5421,5425,5428,5438, + 5441,5445,5450,5456,5459,5464,5467,5474,5476,5482,5486,5495,5500, + 5502,5512,5515,5520,5528,5531,5536,5538,5540,5546,5563,5569,5582, + 5588,5592,5597,5627,5642,5647,5651,5664,5668,5670,5679,5685,5687, + 5691,5694,5697,5700,5703,5705,5708,5712,5720,5725,5728,5734,5738, + 5742,5747,5749,5753,5757,5764,5770,5774,5776,5778,5791,5799,5807, + 5818,5828,5833,5837,5841,5848,5851,5853,5861,5865,5868,5875,5882, + 5887,5894,5897,5899,5902,5908,5913,5917,5924,5934,5941,5944,5947, + 5951,5962,5965,5968,5971,5974,5981,5984,5987,5994,6006,6013,6015, + 6020,6025,6027,6033,6040,6045,6050,6054,6058,6062,6064,6068,6072, + 6075,6078,6080,6090,6092,6097,6101,6106,6110,6117,6122,6126,6129, + 6135,6138,6157,6164,6168,6171,6175,6179,6182,6185,6190,6199,6206, + 6210,6214,6218,6221,6223,6228,6232,6237,6243,6250,6255,6260,6269, + 6276,6284,6295,6300,6304,6307,6311,6316,6320,6325,6333,6344,6349, + 6353,6356,6359,6361,6364,6367,6370,6374,6378,6382,6384,6393,6398, + 6404,6408,6410,6417,6422,6428,6430,6434,6441,6446,6449,6455,6459, + 6465,6474,6480,6482,6487,6490,6499,6506,6508,6515,6520,6523,6533, + 6544,6549,6553,6561,6571,6578,6584,6595,6601,6611,6620,6624,6627, + 6629,6631,6635,6643,6646,6651,6656,6663,6665,6671,6675,6678,6683, + 6686,6688,6694,6703,6709,6712,6720,6723,6727,6733,6735,6738,6742, + 6747,6754,6761,6763,6769,6771,6776,6778,6782,6791,6795,6803,6805, + 6819,6822,6830,6839,6845,6850,6858,6860,6865,6869,6874,6879,6885, + 6901,6903,6912,6927,6932,6935,6941,6946,6959,6964,6968,6975,6994, + 7006,7011,7019,7021,7023,7032,7035,7040,7045,7048,7059,7067,7072, + 7074,7077,7081,7092,7113,7121,7134,7144,7150,7156,7159,7162,7188, + 7190,7211,7221,7234,7239,7243,7245,7257,7264,7270,7276,7280,7291, + 7301,7305,7310,7313,7316,7325,7336,7338,7342,7347,7356,7361,7369, + 7379,7387,7391,7394,7401,7409,7413,7420,7428,7430,7439,7442,7454, + 7463,7470,7479,7489,7494,7498,7500,7503,7508,7513,7521,7529,7532, + 7539,7547,7555,7563,7580,7587,7595,7612,7618,7624,7632,7638,7643, + 7651,7656,7659,7668,7675,7680,7684,7689,7695,7700,7708,7763,7770, + 7776,7778,7780,7782,7788,7792,7796,7807,7810,7814,7818,7822,7825, + 7828,7831,7840,7845,7849,7882,7892,7896,7902,7907,7916,7924,7935, + 7943,7952,7961,7966,7970,7980,7985,7993,7998,8001,8008,8014,8022, + 8030,8033,8040,8042,8045,8051,8060,8064,8078,8081,8083,8089,8099, + 8101,8103,8111,8114,8117,8127,8135,8141,8147,8154,8158,8162,8165, + 8168,8174,8181,8184,8192,8194,8203,8208,8210,8217,8223,8226,8238, + 8245,8247,8251,8257,8262,8266,8269,8272,8281,8284,8287,8291,8295, + 8297,8300,8303,8309,8316,8323,8329,8331,8335,8340,8358,8363,8365, + 8374,8381,8385,8397,8400,8413,8416,8420,8429,8436,8441,8446,8450, + 8453,8456,8459,8462,8465,8469,8472 ]; private static __ATN: antlr.ATN; @@ -58800,8 +58557,8 @@ export class CallStmtContext extends antlr.ParserRuleContext { public KW_CALL(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CALL, 0)!; } - public func_application(): Func_applicationContext { - return this.getRuleContext(0, Func_applicationContext)!; + public funcApplication(): FuncApplicationContext { + return this.getRuleContext(0, FuncApplicationContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_callStmt; @@ -58959,8 +58716,8 @@ export class AlterOperatorRoleElemContext extends antlr.ParserRuleContext { public KW_IN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_IN, 0); } - public name_list(): Name_listContext | null { - return this.getRuleContext(0, Name_listContext); + public nameList(): NameListContext | null { + return this.getRuleContext(0, NameListContext); } public KW_ROLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROLE, 0); @@ -58968,8 +58725,8 @@ export class AlterOperatorRoleElemContext extends antlr.ParserRuleContext { public KW_GROUP(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_GROUP, 0); } - public role_list(): Role_listContext | null { - return this.getRuleContext(0, Role_listContext); + public roleList(): RoleListContext | null { + return this.getRuleContext(0, RoleListContext); } public KW_USER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USER, 0); @@ -59016,8 +58773,8 @@ export class CreateOperatorRoleElemContext extends antlr.ParserRuleContext { public Integral(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.Integral, 0); } - public role_list(): Role_listContext | null { - return this.getRuleContext(0, Role_listContext); + public roleList(): RoleListContext | null { + return this.getRuleContext(0, RoleListContext); } public KW_ADMIN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADMIN, 0); @@ -59166,8 +58923,8 @@ export class AlterRoleSetStmtContext extends antlr.ParserRuleContext { public KW_DATABASE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DATABASE, 0)!; } - public database_name(): Database_nameContext { - return this.getRuleContext(0, Database_nameContext)!; + public databaseName(): DatabaseNameContext { + return this.getRuleContext(0, DatabaseNameContext)!; } public setOrResetClause(): SetOrResetClauseContext { return this.getRuleContext(0, SetOrResetClauseContext)!; @@ -59217,14 +58974,14 @@ export class AlterRoutineStmtContext extends antlr.ParserRuleContext { public KW_ROUTINE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ROUTINE, 0)!; } - public routine_name(): Routine_nameContext { - return this.getRuleContext(0, Routine_nameContext)!; + public routineName(): RoutineNameContext { + return this.getRuleContext(0, RoutineNameContext)!; } - public alter_routine_clause(): Alter_routine_clauseContext { - return this.getRuleContext(0, Alter_routine_clauseContext)!; + public alterRoutineClause(): AlterRoutineClauseContext { + return this.getRuleContext(0, AlterRoutineClauseContext)!; } - public func_args(): Func_argsContext | null { - return this.getRuleContext(0, Func_argsContext); + public funcArgs(): FuncArgsContext | null { + return this.getRuleContext(0, FuncArgsContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_alterRoutineStmt; @@ -59249,18 +59006,18 @@ export class AlterRoutineStmtContext extends antlr.ParserRuleContext { } -export class Alter_routine_clauseContext extends antlr.ParserRuleContext { +export class AlterRoutineClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public routine_action(): Routine_actionContext[]; - public routine_action(i: number): Routine_actionContext | null; - public routine_action(i?: number): Routine_actionContext[] | Routine_actionContext | null { + public routineAction(): RoutineActionContext[]; + public routineAction(i: number): RoutineActionContext | null; + public routineAction(i?: number): RoutineActionContext[] | RoutineActionContext | null { if (i === undefined) { - return this.getRuleContexts(Routine_actionContext); + return this.getRuleContexts(RoutineActionContext); } - return this.getRuleContext(i, Routine_actionContext); + return this.getRuleContext(i, RoutineActionContext); } public KW_RESTRICT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_RESTRICT, 0); @@ -59271,8 +59028,8 @@ export class Alter_routine_clauseContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); } - public routine_name_create(): Routine_name_createContext | null { - return this.getRuleContext(0, Routine_name_createContext); + public routineNameCreate(): RoutineNameCreateContext | null { + return this.getRuleContext(0, RoutineNameCreateContext); } public KW_OWNER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OWNER, 0); @@ -59286,8 +59043,8 @@ export class Alter_routine_clauseContext extends antlr.ParserRuleContext { public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); } - public schema_name_create(): Schema_name_createContext | null { - return this.getRuleContext(0, Schema_name_createContext); + public schemaNameCreate(): SchemaNameCreateContext | null { + return this.getRuleContext(0, SchemaNameCreateContext); } public KW_DEPENDS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEPENDS, 0); @@ -59305,21 +59062,21 @@ export class Alter_routine_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NO, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alter_routine_clause; + return PostgreSqlParser.RULE_alterRoutineClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlter_routine_clause) { - listener.enterAlter_routine_clause(this); + if(listener.enterAlterRoutineClause) { + listener.enterAlterRoutineClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlter_routine_clause) { - listener.exitAlter_routine_clause(this); + if(listener.exitAlterRoutineClause) { + listener.exitAlterRoutineClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlter_routine_clause) { - return visitor.visitAlter_routine_clause(this); + if (visitor.visitAlterRoutineClause) { + return visitor.visitAlterRoutineClause(this); } else { return visitor.visitChildren(this); } @@ -59327,7 +59084,7 @@ export class Alter_routine_clauseContext extends antlr.ParserRuleContext { } -export class Routine_actionContext extends antlr.ParserRuleContext { +export class RoutineActionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59413,21 +59170,21 @@ export class Routine_actionContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ALL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_routine_action; + return PostgreSqlParser.RULE_routineAction; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRoutine_action) { - listener.enterRoutine_action(this); + if(listener.enterRoutineAction) { + listener.enterRoutineAction(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRoutine_action) { - listener.exitRoutine_action(this); + if(listener.exitRoutineAction) { + listener.exitRoutineAction(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRoutine_action) { - return visitor.visitRoutine_action(this); + if (visitor.visitRoutineAction) { + return visitor.visitRoutineAction(this); } else { return visitor.visitChildren(this); } @@ -59499,8 +59256,8 @@ export class AlterGroupStmtContext extends antlr.ParserRuleContext { public KW_USER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_USER, 0)!; } - public role_list(): Role_listContext { - return this.getRuleContext(0, Role_listContext)!; + public roleList(): RoleListContext { + return this.getRuleContext(0, RoleListContext)!; } public KW_ADD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADD, 0); @@ -59547,20 +59304,20 @@ export class CreateSchemaStmtContext extends antlr.ParserRuleContext { public roleSpec(): RoleSpecContext | null { return this.getRuleContext(0, RoleSpecContext); } - public schema_name_create(): Schema_name_createContext | null { - return this.getRuleContext(0, Schema_name_createContext); + public schemaNameCreate(): SchemaNameCreateContext | null { + return this.getRuleContext(0, SchemaNameCreateContext); } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } - public schema_stmt(): Schema_stmtContext[]; - public schema_stmt(i: number): Schema_stmtContext | null; - public schema_stmt(i?: number): Schema_stmtContext[] | Schema_stmtContext | null { + public schemaStmt(): SchemaStmtContext[]; + public schemaStmt(i: number): SchemaStmtContext | null; + public schemaStmt(i?: number): SchemaStmtContext[] | SchemaStmtContext | null { if (i === undefined) { - return this.getRuleContexts(Schema_stmtContext); + return this.getRuleContexts(SchemaStmtContext); } - return this.getRuleContext(i, Schema_stmtContext); + return this.getRuleContext(i, SchemaStmtContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_createSchemaStmt; @@ -59585,24 +59342,15 @@ export class CreateSchemaStmtContext extends antlr.ParserRuleContext { } -export class Schema_name_createContext extends antlr.ParserRuleContext { +export class SchemaNameCreateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_schema_name_create; - } - public override copyFrom(ctx: Schema_name_createContext): void { - super.copyFrom(ctx); - } -} -export class SchemaNameCreateContext extends Schema_name_createContext { - public constructor(ctx: Schema_name_createContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_schemaNameCreate; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterSchemaNameCreate) { @@ -59624,7 +59372,7 @@ export class SchemaNameCreateContext extends Schema_name_createContext { } -export class Schema_stmtContext extends antlr.ParserRuleContext { +export class SchemaStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59647,21 +59395,21 @@ export class Schema_stmtContext extends antlr.ParserRuleContext { return this.getRuleContext(0, ViewStmtContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_schema_stmt; + return PostgreSqlParser.RULE_schemaStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSchema_stmt) { - listener.enterSchema_stmt(this); + if(listener.enterSchemaStmt) { + listener.enterSchemaStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSchema_stmt) { - listener.exitSchema_stmt(this); + if(listener.exitSchemaStmt) { + listener.exitSchemaStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSchema_stmt) { - return visitor.visitSchema_stmt(this); + if (visitor.visitSchemaStmt) { + return visitor.visitSchemaStmt(this); } else { return visitor.visitChildren(this); } @@ -59676,8 +59424,8 @@ export class VariableSetStmtContext extends antlr.ParserRuleContext { public KW_SET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SET, 0)!; } - public set_rest(): Set_restContext { - return this.getRuleContext(0, Set_restContext)!; + public setRest(): SetRestContext { + return this.getRuleContext(0, SetRestContext)!; } public KW_LOCAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LOCAL, 0); @@ -59708,15 +59456,15 @@ export class VariableSetStmtContext extends antlr.ParserRuleContext { } -export class Set_restContext extends antlr.ParserRuleContext { +export class SetRestContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_TRANSACTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TRANSACTION, 0); } - public transaction_mode_list(): Transaction_mode_listContext | null { - return this.getRuleContext(0, Transaction_mode_listContext); + public transactionModeList(): TransactionModeListContext | null { + return this.getRuleContext(0, TransactionModeListContext); } public KW_SESSION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SESSION, 0); @@ -59727,25 +59475,25 @@ export class Set_restContext extends antlr.ParserRuleContext { public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); } - public set_rest_more(): Set_rest_moreContext | null { - return this.getRuleContext(0, Set_rest_moreContext); + public setRestMore(): SetRestMoreContext | null { + return this.getRuleContext(0, SetRestMoreContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_set_rest; + return PostgreSqlParser.RULE_setRest; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSet_rest) { - listener.enterSet_rest(this); + if(listener.enterSetRest) { + listener.enterSetRest(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSet_rest) { - listener.exitSet_rest(this); + if(listener.exitSetRest) { + listener.exitSetRest(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSet_rest) { - return visitor.visitSet_rest(this); + if (visitor.visitSetRest) { + return visitor.visitSetRest(this); } else { return visitor.visitChildren(this); } @@ -59753,21 +59501,21 @@ export class Set_restContext extends antlr.ParserRuleContext { } -export class Generic_setContext extends antlr.ParserRuleContext { +export class GenericSetContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); } - public var_name(): Var_nameContext | null { - return this.getRuleContext(0, Var_nameContext); + public varName(): VarNameContext | null { + return this.getRuleContext(0, VarNameContext); } public KW_DEFAULT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); } - public var_list(): Var_listContext | null { - return this.getRuleContext(0, Var_listContext); + public varList(): VarListContext | null { + return this.getRuleContext(0, VarListContext); } public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); @@ -59776,21 +59524,21 @@ export class Generic_setContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.EQUAL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_generic_set; + return PostgreSqlParser.RULE_genericSet; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterGeneric_set) { - listener.enterGeneric_set(this); + if(listener.enterGenericSet) { + listener.enterGenericSet(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitGeneric_set) { - listener.exitGeneric_set(this); + if(listener.exitGenericSet) { + listener.exitGenericSet(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitGeneric_set) { - return visitor.visitGeneric_set(this); + if (visitor.visitGenericSet) { + return visitor.visitGenericSet(this); } else { return visitor.visitChildren(this); } @@ -59798,7 +59546,7 @@ export class Generic_setContext extends antlr.ParserRuleContext { } -export class Set_rest_moreContext extends antlr.ParserRuleContext { +export class SetRestMoreContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59808,8 +59556,8 @@ export class Set_rest_moreContext extends antlr.ParserRuleContext { public KW_ZONE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ZONE, 0); } - public zone_value(): Zone_valueContext | null { - return this.getRuleContext(0, Zone_valueContext); + public zoneValue(): ZoneValueContext | null { + return this.getRuleContext(0, ZoneValueContext); } public KW_CATALOG(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CATALOG, 0); @@ -59820,8 +59568,8 @@ export class Set_rest_moreContext extends antlr.ParserRuleContext { public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); } - public schema_name(): Schema_nameContext | null { - return this.getRuleContext(0, Schema_nameContext); + public schemaName(): SchemaNameContext | null { + return this.getRuleContext(0, SchemaNameContext); } public KW_NAMES(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NAMES, 0); @@ -59847,8 +59595,8 @@ export class Set_rest_moreContext extends antlr.ParserRuleContext { public KW_OPTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPTION, 0); } - public document_or_content(): Document_or_contentContext | null { - return this.getRuleContext(0, Document_or_contentContext); + public documentOrContent(): DocumentOrContentContext | null { + return this.getRuleContext(0, DocumentOrContentContext); } public KW_TRANSACTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TRANSACTION, 0); @@ -59856,8 +59604,8 @@ export class Set_rest_moreContext extends antlr.ParserRuleContext { public KW_SNAPSHOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SNAPSHOT, 0); } - public var_name(): Var_nameContext | null { - return this.getRuleContext(0, Var_nameContext); + public varName(): VarNameContext | null { + return this.getRuleContext(0, VarNameContext); } public KW_FROM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FROM, 0); @@ -59865,25 +59613,25 @@ export class Set_rest_moreContext extends antlr.ParserRuleContext { public KW_CURRENT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CURRENT, 0); } - public generic_set(): Generic_setContext | null { - return this.getRuleContext(0, Generic_setContext); + public genericSet(): GenericSetContext | null { + return this.getRuleContext(0, GenericSetContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_set_rest_more; + return PostgreSqlParser.RULE_setRestMore; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSet_rest_more) { - listener.enterSet_rest_more(this); + if(listener.enterSetRestMore) { + listener.enterSetRestMore(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSet_rest_more) { - listener.exitSet_rest_more(this); + if(listener.exitSetRestMore) { + listener.exitSetRestMore(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSet_rest_more) { - return visitor.visitSet_rest_more(this); + if (visitor.visitSetRestMore) { + return visitor.visitSetRestMore(this); } else { return visitor.visitChildren(this); } @@ -59891,7 +59639,7 @@ export class Set_rest_moreContext extends antlr.ParserRuleContext { } -export class Var_nameContext extends antlr.ParserRuleContext { +export class VarNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -59914,21 +59662,21 @@ export class Var_nameContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_var_name; + return PostgreSqlParser.RULE_varName; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterVar_name) { - listener.enterVar_name(this); + if(listener.enterVarName) { + listener.enterVarName(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitVar_name) { - listener.exitVar_name(this); + if(listener.exitVarName) { + listener.exitVarName(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitVar_name) { - return visitor.visitVar_name(this); + if (visitor.visitVarName) { + return visitor.visitVarName(this); } else { return visitor.visitChildren(this); } @@ -59936,18 +59684,18 @@ export class Var_nameContext extends antlr.ParserRuleContext { } -export class Var_listContext extends antlr.ParserRuleContext { +export class VarListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public var_value(): Var_valueContext[]; - public var_value(i: number): Var_valueContext | null; - public var_value(i?: number): Var_valueContext[] | Var_valueContext | null { + public varValue(): VarValueContext[]; + public varValue(i: number): VarValueContext | null; + public varValue(i?: number): VarValueContext[] | VarValueContext | null { if (i === undefined) { - return this.getRuleContexts(Var_valueContext); + return this.getRuleContexts(VarValueContext); } - return this.getRuleContext(i, Var_valueContext); + return this.getRuleContext(i, VarValueContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -59959,21 +59707,21 @@ export class Var_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_var_list; + return PostgreSqlParser.RULE_varList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterVar_list) { - listener.enterVar_list(this); + if(listener.enterVarList) { + listener.enterVarList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitVar_list) { - listener.exitVar_list(this); + if(listener.exitVarList) { + listener.exitVarList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitVar_list) { - return visitor.visitVar_list(this); + if (visitor.visitVarList) { + return visitor.visitVarList(this); } else { return visitor.visitChildren(this); } @@ -59981,32 +59729,32 @@ export class Var_listContext extends antlr.ParserRuleContext { } -export class Var_valueContext extends antlr.ParserRuleContext { +export class VarValueContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public opt_boolean_or_string(): Opt_boolean_or_stringContext | null { - return this.getRuleContext(0, Opt_boolean_or_stringContext); + public booleanOrString(): BooleanOrStringContext | null { + return this.getRuleContext(0, BooleanOrStringContext); } public numericOnly(): NumericOnlyContext | null { return this.getRuleContext(0, NumericOnlyContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_var_value; + return PostgreSqlParser.RULE_varValue; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterVar_value) { - listener.enterVar_value(this); + if(listener.enterVarValue) { + listener.enterVarValue(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitVar_value) { - listener.exitVar_value(this); + if(listener.exitVarValue) { + listener.exitVarValue(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitVar_value) { - return visitor.visitVar_value(this); + if (visitor.visitVarValue) { + return visitor.visitVarValue(this); } else { return visitor.visitChildren(this); } @@ -60014,7 +59762,7 @@ export class Var_valueContext extends antlr.ParserRuleContext { } -export class Iso_levelContext extends antlr.ParserRuleContext { +export class IsoLevelContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60034,21 +59782,21 @@ export class Iso_levelContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_SERIALIZABLE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_iso_level; + return PostgreSqlParser.RULE_isoLevel; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterIso_level) { - listener.enterIso_level(this); + if(listener.enterIsoLevel) { + listener.enterIsoLevel(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitIso_level) { - listener.exitIso_level(this); + if(listener.exitIsoLevel) { + listener.exitIsoLevel(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitIso_level) { - return visitor.visitIso_level(this); + if (visitor.visitIsoLevel) { + return visitor.visitIsoLevel(this); } else { return visitor.visitChildren(this); } @@ -60056,7 +59804,7 @@ export class Iso_levelContext extends antlr.ParserRuleContext { } -export class Opt_boolean_or_string_columnContext extends antlr.ParserRuleContext { +export class OptBooleanOrStringColumnContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60069,31 +59817,31 @@ export class Opt_boolean_or_string_columnContext extends antlr.ParserRuleContext public KW_ON(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ON, 0); } - public column_name(): Column_nameContext | null { - return this.getRuleContext(0, Column_nameContext); + public columnName(): ColumnNameContext | null { + return this.getRuleContext(0, ColumnNameContext); } - public type_func_name_keyword(): Type_func_name_keywordContext | null { - return this.getRuleContext(0, Type_func_name_keywordContext); + public typeFuncNameKeyword(): TypeFuncNameKeywordContext | null { + return this.getRuleContext(0, TypeFuncNameKeywordContext); } public stringConst(): StringConstContext | null { return this.getRuleContext(0, StringConstContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_boolean_or_string_column; + return PostgreSqlParser.RULE_optBooleanOrStringColumn; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_boolean_or_string_column) { - listener.enterOpt_boolean_or_string_column(this); + if(listener.enterOptBooleanOrStringColumn) { + listener.enterOptBooleanOrStringColumn(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_boolean_or_string_column) { - listener.exitOpt_boolean_or_string_column(this); + if(listener.exitOptBooleanOrStringColumn) { + listener.exitOptBooleanOrStringColumn(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_boolean_or_string_column) { - return visitor.visitOpt_boolean_or_string_column(this); + if (visitor.visitOptBooleanOrStringColumn) { + return visitor.visitOptBooleanOrStringColumn(this); } else { return visitor.visitChildren(this); } @@ -60101,7 +59849,7 @@ export class Opt_boolean_or_string_columnContext extends antlr.ParserRuleContext } -export class Opt_boolean_or_stringContext extends antlr.ParserRuleContext { +export class BooleanOrStringContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60118,21 +59866,21 @@ export class Opt_boolean_or_stringContext extends antlr.ParserRuleContext { return this.getRuleContext(0, NonReservedWordOrStringConstContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_boolean_or_string; + return PostgreSqlParser.RULE_booleanOrString; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_boolean_or_string) { - listener.enterOpt_boolean_or_string(this); + if(listener.enterBooleanOrString) { + listener.enterBooleanOrString(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_boolean_or_string) { - listener.exitOpt_boolean_or_string(this); + if(listener.exitBooleanOrString) { + listener.exitBooleanOrString(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_boolean_or_string) { - return visitor.visitOpt_boolean_or_string(this); + if (visitor.visitBooleanOrString) { + return visitor.visitBooleanOrString(this); } else { return visitor.visitChildren(this); } @@ -60140,7 +59888,7 @@ export class Opt_boolean_or_stringContext extends antlr.ParserRuleContext { } -export class Zone_valueContext extends antlr.ParserRuleContext { +export class ZoneValueContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60156,11 +59904,11 @@ export class Zone_valueContext extends antlr.ParserRuleContext { public KW_INTERVAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INTERVAL, 0); } - public opt_interval(): Opt_intervalContext | null { - return this.getRuleContext(0, Opt_intervalContext); + public optInterval(): OptIntervalContext | null { + return this.getRuleContext(0, OptIntervalContext); } - public opt_float(): Opt_floatContext | null { - return this.getRuleContext(0, Opt_floatContext); + public optFloat(): OptFloatContext | null { + return this.getRuleContext(0, OptFloatContext); } public numericOnly(): NumericOnlyContext | null { return this.getRuleContext(0, NumericOnlyContext); @@ -60169,21 +59917,21 @@ export class Zone_valueContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_LOCAL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_zone_value; + return PostgreSqlParser.RULE_zoneValue; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterZone_value) { - listener.enterZone_value(this); + if(listener.enterZoneValue) { + listener.enterZoneValue(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitZone_value) { - listener.exitZone_value(this); + if(listener.exitZoneValue) { + listener.exitZoneValue(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitZone_value) { - return visitor.visitZone_value(this); + if (visitor.visitZoneValue) { + return visitor.visitZoneValue(this); } else { return visitor.visitChildren(this); } @@ -60231,8 +59979,8 @@ export class VariableResetStmtContext extends antlr.ParserRuleContext { public KW_RESET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_RESET, 0)!; } - public reset_rest(): Reset_restContext { - return this.getRuleContext(0, Reset_restContext)!; + public resetRest(): ResetRestContext { + return this.getRuleContext(0, ResetRestContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_variableResetStmt; @@ -60257,7 +60005,7 @@ export class VariableResetStmtContext extends antlr.ParserRuleContext { } -export class Reset_restContext extends antlr.ParserRuleContext { +export class ResetRestContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60285,25 +60033,25 @@ export class Reset_restContext extends antlr.ParserRuleContext { public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); } - public var_name(): Var_nameContext | null { - return this.getRuleContext(0, Var_nameContext); + public varName(): VarNameContext | null { + return this.getRuleContext(0, VarNameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_reset_rest; + return PostgreSqlParser.RULE_resetRest; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterReset_rest) { - listener.enterReset_rest(this); + if(listener.enterResetRest) { + listener.enterResetRest(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitReset_rest) { - listener.exitReset_rest(this); + if(listener.exitResetRest) { + listener.exitResetRest(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitReset_rest) { - return visitor.visitReset_rest(this); + if (visitor.visitResetRest) { + return visitor.visitResetRest(this); } else { return visitor.visitChildren(this); } @@ -60318,8 +60066,8 @@ export class SetOrResetClauseContext extends antlr.ParserRuleContext { public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); } - public set_rest(): Set_restContext | null { - return this.getRuleContext(0, Set_restContext); + public setRest(): SetRestContext | null { + return this.getRuleContext(0, SetRestContext); } public variableResetStmt(): VariableResetStmtContext | null { return this.getRuleContext(0, VariableResetStmtContext); @@ -60354,8 +60102,8 @@ export class FunctionSetOrResetClauseContext extends antlr.ParserRuleContext { public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); } - public set_rest_more(): Set_rest_moreContext | null { - return this.getRuleContext(0, Set_rest_moreContext); + public setRestMore(): SetRestMoreContext | null { + return this.getRuleContext(0, SetRestMoreContext); } public variableResetStmt(): VariableResetStmtContext | null { return this.getRuleContext(0, VariableResetStmtContext); @@ -60390,8 +60138,8 @@ export class VariableShowStmtContext extends antlr.ParserRuleContext { public KW_SHOW(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SHOW, 0)!; } - public var_name(): Var_nameContext | null { - return this.getRuleContext(0, Var_nameContext); + public varName(): VarNameContext | null { + return this.getRuleContext(0, VarNameContext); } public KW_TIME(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TIME, 0); @@ -60459,8 +60207,8 @@ export class ConstraintsSetStmtContext extends antlr.ParserRuleContext { public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); } - public qualified_name_list(): Qualified_name_listContext | null { - return this.getRuleContext(0, Qualified_name_listContext); + public qualifiedNameList(): QualifiedNameListContext | null { + return this.getRuleContext(0, QualifiedNameListContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_constraintsSetStmt; @@ -60570,17 +60318,17 @@ export class AlterTableStmtContext extends antlr.ParserRuleContext { public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public relation_expr(): Relation_exprContext | null { - return this.getRuleContext(0, Relation_exprContext); + public relationExpr(): RelationExprContext | null { + return this.getRuleContext(0, RelationExprContext); } - public alter_table_cmds(): Alter_table_cmdsContext | null { - return this.getRuleContext(0, Alter_table_cmdsContext); + public alterTableCmds(): AlterTableCmdsContext | null { + return this.getRuleContext(0, AlterTableCmdsContext); } - public partition_cmd(): Partition_cmdContext | null { - return this.getRuleContext(0, Partition_cmdContext); + public partitionCmd(): PartitionCmdContext | null { + return this.getRuleContext(0, PartitionCmdContext); } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); @@ -60603,8 +60351,8 @@ export class AlterTableStmtContext extends antlr.ParserRuleContext { public KW_TABLESPACE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLESPACE, 0); } - public tablespace_name_create(): Tablespace_name_createContext | null { - return this.getRuleContext(0, Tablespace_name_createContext); + public tableSpaceName(): TableSpaceNameContext | null { + return this.getRuleContext(0, TableSpaceNameContext); } public KW_OWNED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OWNED, 0); @@ -60612,29 +60360,20 @@ export class AlterTableStmtContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BY, 0); } - public role_list(): Role_listContext | null { - return this.getRuleContext(0, Role_listContext); + public roleList(): RoleListContext | null { + return this.getRuleContext(0, RoleListContext); } public KW_NOWAIT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOWAIT, 0); } - public table_name(): Table_nameContext | null { - return this.getRuleContext(0, Table_nameContext); + public tableName(): TableNameContext | null { + return this.getRuleContext(0, TableNameContext); } - public index_partition_cmd(): Index_partition_cmdContext | null { - return this.getRuleContext(0, Index_partition_cmdContext); + public indexPartitionCmd(): IndexPartitionCmdContext | null { + return this.getRuleContext(0, IndexPartitionCmdContext); } - public KW_FOR(): antlr.TerminalNode | null { - return this.getToken(PostgreSqlParser.KW_FOR, 0); - } - public KW_VALUES(): antlr.TerminalNode | null { - return this.getToken(PostgreSqlParser.KW_VALUES, 0); - } - public partition_bound_spec(): Partition_bound_specContext | null { - return this.getRuleContext(0, Partition_bound_specContext); - } - public KW_DEFAULT(): antlr.TerminalNode | null { - return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); + public partitionBoundSpec(): PartitionBoundSpecContext | null { + return this.getRuleContext(0, PartitionBoundSpecContext); } public KW_DETACH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DETACH, 0); @@ -60642,8 +60381,8 @@ export class AlterTableStmtContext extends antlr.ParserRuleContext { public KW_PARTITION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PARTITION, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public KW_CONCURRENTLY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONCURRENTLY, 0); @@ -60660,8 +60399,8 @@ export class AlterTableStmtContext extends antlr.ParserRuleContext { public KW_VIEW(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VIEW, 0); } - public view_name(): View_nameContext | null { - return this.getRuleContext(0, View_nameContext); + public viewName(): ViewNameContext | null { + return this.getRuleContext(0, ViewNameContext); } public KW_MATERIALIZED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_MATERIALIZED, 0); @@ -60692,123 +60431,18 @@ export class AlterTableStmtContext extends antlr.ParserRuleContext { } -export class Alter_table_cmdsContext extends antlr.ParserRuleContext { - public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { - super(parent, invokingState); - } - public alter_table_cmd(): Alter_table_cmdContext[]; - public alter_table_cmd(i: number): Alter_table_cmdContext | null; - public alter_table_cmd(i?: number): Alter_table_cmdContext[] | Alter_table_cmdContext | null { - if (i === undefined) { - return this.getRuleContexts(Alter_table_cmdContext); - } - - return this.getRuleContext(i, Alter_table_cmdContext); - } - public COMMA(): antlr.TerminalNode[]; - public COMMA(i: number): antlr.TerminalNode | null; - public COMMA(i?: number): antlr.TerminalNode | null | antlr.TerminalNode[] { - if (i === undefined) { - return this.getTokens(PostgreSqlParser.COMMA); - } else { - return this.getToken(PostgreSqlParser.COMMA, i); - } - } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alter_table_cmds; - } - public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlter_table_cmds) { - listener.enterAlter_table_cmds(this); - } - } - public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlter_table_cmds) { - listener.exitAlter_table_cmds(this); - } - } - public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlter_table_cmds) { - return visitor.visitAlter_table_cmds(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class Partition_bound_specContext extends antlr.ParserRuleContext { - public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { - super(parent, invokingState); - } - public KW_IN(): antlr.TerminalNode | null { - return this.getToken(PostgreSqlParser.KW_IN, 0); - } - public execute_param_clause(): Execute_param_clauseContext | null { - return this.getRuleContext(0, Execute_param_clauseContext); - } - public KW_FROM(): antlr.TerminalNode | null { - return this.getToken(PostgreSqlParser.KW_FROM, 0); - } - public partition_bound_clause(): Partition_bound_clauseContext[]; - public partition_bound_clause(i: number): Partition_bound_clauseContext | null; - public partition_bound_clause(i?: number): Partition_bound_clauseContext[] | Partition_bound_clauseContext | null { - if (i === undefined) { - return this.getRuleContexts(Partition_bound_clauseContext); - } - - return this.getRuleContext(i, Partition_bound_clauseContext); - } - public KW_TO(): antlr.TerminalNode | null { - return this.getToken(PostgreSqlParser.KW_TO, 0); - } - public KW_WITH(): antlr.TerminalNode | null { - return this.getToken(PostgreSqlParser.KW_WITH, 0); - } - public partition_with_clause(): Partition_with_clauseContext | null { - return this.getRuleContext(0, Partition_with_clauseContext); - } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_partition_bound_spec; - } - public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPartition_bound_spec) { - listener.enterPartition_bound_spec(this); - } - } - public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPartition_bound_spec) { - listener.exitPartition_bound_spec(this); - } - } - public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPartition_bound_spec) { - return visitor.visitPartition_bound_spec(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class Partition_bound_clauseContext extends antlr.ParserRuleContext { +export class AlterTableCmdsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public OPEN_PAREN(): antlr.TerminalNode { - return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; - } - public partition_bound_choose(): Partition_bound_chooseContext[]; - public partition_bound_choose(i: number): Partition_bound_chooseContext | null; - public partition_bound_choose(i?: number): Partition_bound_chooseContext[] | Partition_bound_chooseContext | null { + public alterTableCmd(): AlterTableCmdContext[]; + public alterTableCmd(i: number): AlterTableCmdContext | null; + public alterTableCmd(i?: number): AlterTableCmdContext[] | AlterTableCmdContext | null { if (i === undefined) { - return this.getRuleContexts(Partition_bound_chooseContext); + return this.getRuleContexts(AlterTableCmdContext); } - return this.getRuleContext(i, Partition_bound_chooseContext); - } - public CLOSE_PAREN(): antlr.TerminalNode { - return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; + return this.getRuleContext(i, AlterTableCmdContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -60820,108 +60454,21 @@ export class Partition_bound_clauseContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_partition_bound_clause; - } - public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPartition_bound_clause) { - listener.enterPartition_bound_clause(this); - } - } - public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPartition_bound_clause) { - listener.exitPartition_bound_clause(this); - } - } - public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPartition_bound_clause) { - return visitor.visitPartition_bound_clause(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class Partition_bound_chooseContext extends antlr.ParserRuleContext { - public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { - super(parent, invokingState); - } - public execute_param_clause(): Execute_param_clauseContext | null { - return this.getRuleContext(0, Execute_param_clauseContext); - } - public KW_MINVALUE(): antlr.TerminalNode | null { - return this.getToken(PostgreSqlParser.KW_MINVALUE, 0); - } - public KW_MAXVALUE(): antlr.TerminalNode | null { - return this.getToken(PostgreSqlParser.KW_MAXVALUE, 0); - } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_partition_bound_choose; - } - public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPartition_bound_choose) { - listener.enterPartition_bound_choose(this); - } - } - public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPartition_bound_choose) { - listener.exitPartition_bound_choose(this); - } - } - public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPartition_bound_choose) { - return visitor.visitPartition_bound_choose(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class Partition_with_clauseContext extends antlr.ParserRuleContext { - public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { - super(parent, invokingState); - } - public OPEN_PAREN(): antlr.TerminalNode { - return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; - } - public KW_MODULUS(): antlr.TerminalNode { - return this.getToken(PostgreSqlParser.KW_MODULUS, 0)!; - } - public numericOnly(): NumericOnlyContext[]; - public numericOnly(i: number): NumericOnlyContext | null; - public numericOnly(i?: number): NumericOnlyContext[] | NumericOnlyContext | null { - if (i === undefined) { - return this.getRuleContexts(NumericOnlyContext); - } - - return this.getRuleContext(i, NumericOnlyContext); - } - public COMMA(): antlr.TerminalNode { - return this.getToken(PostgreSqlParser.COMMA, 0)!; - } - public KW_REMAINDER(): antlr.TerminalNode { - return this.getToken(PostgreSqlParser.KW_REMAINDER, 0)!; - } - public CLOSE_PAREN(): antlr.TerminalNode { - return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; - } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_partition_with_clause; + return PostgreSqlParser.RULE_alterTableCmds; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPartition_with_clause) { - listener.enterPartition_with_clause(this); + if(listener.enterAlterTableCmds) { + listener.enterAlterTableCmds(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPartition_with_clause) { - listener.exitPartition_with_clause(this); + if(listener.exitAlterTableCmds) { + listener.exitAlterTableCmds(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPartition_with_clause) { - return visitor.visitPartition_with_clause(this); + if (visitor.visitAlterTableCmds) { + return visitor.visitAlterTableCmds(this); } else { return visitor.visitChildren(this); } @@ -60929,12 +60476,12 @@ export class Partition_with_clauseContext extends antlr.ParserRuleContext { } -export class Partition_cmdContext extends antlr.ParserRuleContext { +export class PartitionCmdContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public index_partition_cmd(): Index_partition_cmdContext | null { - return this.getRuleContext(0, Index_partition_cmdContext); + public indexPartitionCmd(): IndexPartitionCmdContext | null { + return this.getRuleContext(0, IndexPartitionCmdContext); } public partitionBoundSpec(): PartitionBoundSpecContext | null { return this.getRuleContext(0, PartitionBoundSpecContext); @@ -60945,25 +60492,25 @@ export class Partition_cmdContext extends antlr.ParserRuleContext { public KW_PARTITION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PARTITION, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_partition_cmd; + return PostgreSqlParser.RULE_partitionCmd; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPartition_cmd) { - listener.enterPartition_cmd(this); + if(listener.enterPartitionCmd) { + listener.enterPartitionCmd(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPartition_cmd) { - listener.exitPartition_cmd(this); + if(listener.exitPartitionCmd) { + listener.exitPartitionCmd(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPartition_cmd) { - return visitor.visitPartition_cmd(this); + if (visitor.visitPartitionCmd) { + return visitor.visitPartitionCmd(this); } else { return visitor.visitChildren(this); } @@ -60971,7 +60518,7 @@ export class Partition_cmdContext extends antlr.ParserRuleContext { } -export class Index_partition_cmdContext extends antlr.ParserRuleContext { +export class IndexPartitionCmdContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -60981,25 +60528,25 @@ export class Index_partition_cmdContext extends antlr.ParserRuleContext { public KW_PARTITION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_PARTITION, 0)!; } - public qualified_name(): Qualified_nameContext { - return this.getRuleContext(0, Qualified_nameContext)!; + public qualifiedName(): QualifiedNameContext { + return this.getRuleContext(0, QualifiedNameContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_index_partition_cmd; + return PostgreSqlParser.RULE_indexPartitionCmd; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterIndex_partition_cmd) { - listener.enterIndex_partition_cmd(this); + if(listener.enterIndexPartitionCmd) { + listener.enterIndexPartitionCmd(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitIndex_partition_cmd) { - listener.exitIndex_partition_cmd(this); + if(listener.exitIndexPartitionCmd) { + listener.exitIndexPartitionCmd(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitIndex_partition_cmd) { - return visitor.visitIndex_partition_cmd(this); + if (visitor.visitIndexPartitionCmd) { + return visitor.visitIndexPartitionCmd(this); } else { return visitor.visitChildren(this); } @@ -61007,7 +60554,7 @@ export class Index_partition_cmdContext extends antlr.ParserRuleContext { } -export class Alter_table_cmdContext extends antlr.ParserRuleContext { +export class AlterTableCmdContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -61041,11 +60588,11 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public KW_DROP(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DROP, 0); } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } public KW_SET(): antlr.TerminalNode[]; public KW_SET(i: number): antlr.TerminalNode | null; @@ -61101,8 +60648,8 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public KW_INHERIT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INHERIT, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public KW_NO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NO, 0); @@ -61110,8 +60657,8 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public KW_OF(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OF, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public KW_NOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOT, 0); @@ -61128,8 +60675,8 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public KW_TABLESPACE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLESPACE, 0); } - public tablespace_name_create(): Tablespace_name_createContext | null { - return this.getRuleContext(0, Tablespace_name_createContext); + public tableSpaceName(): TableSpaceNameContext | null { + return this.getRuleContext(0, TableSpaceNameContext); } public KW_IDENTITY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_IDENTITY, 0); @@ -61158,8 +60705,8 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public KW_FORCE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FORCE, 0); } - public column_name(): Column_nameContext | null { - return this.getRuleContext(0, Column_nameContext); + public columnName(): ColumnNameContext | null { + return this.getRuleContext(0, ColumnNameContext); } public KW_COLUMN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_COLUMN, 0); @@ -61167,14 +60714,14 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public column_def(): Column_defContext | null { return this.getRuleContext(0, Column_defContext); } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } - public alter_column_default(): Alter_column_defaultContext | null { - return this.getRuleContext(0, Alter_column_defaultContext); + public alterColumnDefault(): AlterColumnDefaultContext | null { + return this.getRuleContext(0, AlterColumnDefaultContext); } - public alter_generic_options(): Alter_generic_optionsContext | null { - return this.getRuleContext(0, Alter_generic_optionsContext); + public alterGenericOptions(): AlterGenericOptionsContext | null { + return this.getRuleContext(0, AlterGenericOptionsContext); } public KW_NULL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NULL, 0); @@ -61206,14 +60753,14 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_GENERATED, i); } } - public generated_when(): Generated_whenContext[]; - public generated_when(i: number): Generated_whenContext | null; - public generated_when(i?: number): Generated_whenContext[] | Generated_whenContext | null { + public generatedWhen(): GeneratedWhenContext[]; + public generatedWhen(i: number): GeneratedWhenContext | null; + public generatedWhen(i?: number): GeneratedWhenContext[] | GeneratedWhenContext | null { if (i === undefined) { - return this.getRuleContexts(Generated_whenContext); + return this.getRuleContexts(GeneratedWhenContext); } - return this.getRuleContext(i, Generated_whenContext); + return this.getRuleContext(i, GeneratedWhenContext); } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); @@ -61269,8 +60816,8 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { public KW_DATA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATA, 0); } - public opt_collate_clause(): Opt_collate_clauseContext | null { - return this.getRuleContext(0, Opt_collate_clauseContext); + public collateClause(): CollateClauseContext | null { + return this.getRuleContext(0, CollateClauseContext); } public KW_USING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USING, 0); @@ -61279,21 +60826,21 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { return this.getRuleContext(0, ExpressionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alter_table_cmd; + return PostgreSqlParser.RULE_alterTableCmd; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlter_table_cmd) { - listener.enterAlter_table_cmd(this); + if(listener.enterAlterTableCmd) { + listener.enterAlterTableCmd(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlter_table_cmd) { - listener.exitAlter_table_cmd(this); + if(listener.exitAlterTableCmd) { + listener.exitAlterTableCmd(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlter_table_cmd) { - return visitor.visitAlter_table_cmd(this); + if (visitor.visitAlterTableCmd) { + return visitor.visitAlterTableCmd(this); } else { return visitor.visitChildren(this); } @@ -61301,7 +60848,7 @@ export class Alter_table_cmdContext extends antlr.ParserRuleContext { } -export class Alter_column_defaultContext extends antlr.ParserRuleContext { +export class AlterColumnDefaultContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -61318,21 +60865,21 @@ export class Alter_column_defaultContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DROP, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alter_column_default; + return PostgreSqlParser.RULE_alterColumnDefault; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlter_column_default) { - listener.enterAlter_column_default(this); + if(listener.enterAlterColumnDefault) { + listener.enterAlterColumnDefault(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlter_column_default) { - listener.exitAlter_column_default(this); + if(listener.exitAlterColumnDefault) { + listener.exitAlterColumnDefault(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlter_column_default) { - return visitor.visitAlter_column_default(this); + if (visitor.visitAlterColumnDefault) { + return visitor.visitAlterColumnDefault(this); } else { return visitor.visitChildren(this); } @@ -61340,7 +60887,7 @@ export class Alter_column_defaultContext extends antlr.ParserRuleContext { } -export class Opt_drop_behaviorContext extends antlr.ParserRuleContext { +export class OptDropBehaviorContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -61351,21 +60898,21 @@ export class Opt_drop_behaviorContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_RESTRICT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_drop_behavior; + return PostgreSqlParser.RULE_optDropBehavior; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_drop_behavior) { - listener.enterOpt_drop_behavior(this); + if(listener.enterOptDropBehavior) { + listener.enterOptDropBehavior(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_drop_behavior) { - listener.exitOpt_drop_behavior(this); + if(listener.exitOptDropBehavior) { + listener.exitOptDropBehavior(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_drop_behavior) { - return visitor.visitOpt_drop_behavior(this); + if (visitor.visitOptDropBehavior) { + return visitor.visitOptDropBehavior(this); } else { return visitor.visitChildren(this); } @@ -61373,32 +60920,32 @@ export class Opt_drop_behaviorContext extends antlr.ParserRuleContext { } -export class Opt_collate_clauseContext extends antlr.ParserRuleContext { +export class CollateClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_COLLATE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_COLLATE, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_collate_clause; + return PostgreSqlParser.RULE_collateClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_collate_clause) { - listener.enterOpt_collate_clause(this); + if(listener.enterCollateClause) { + listener.enterCollateClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_collate_clause) { - listener.exitOpt_collate_clause(this); + if(listener.exitCollateClause) { + listener.exitCollateClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_collate_clause) { - return visitor.visitOpt_collate_clause(this); + if (visitor.visitCollateClause) { + return visitor.visitCollateClause(this); } else { return visitor.visitChildren(this); } @@ -61500,14 +61047,14 @@ export class RelOptionElemContext extends antlr.ParserRuleContext { public EQUAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.EQUAL, 0); } - public def_arg(): Def_argContext | null { - return this.getRuleContext(0, Def_argContext); + public defArg(): DefArgContext | null { + return this.getRuleContext(0, DefArgContext); } public DOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.DOT, 0); } - public def_elem(): Def_elemContext | null { - return this.getRuleContext(0, Def_elemContext); + public defElem(): DefElemContext | null { + return this.getRuleContext(0, DefElemContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_relOptionElem; @@ -61551,14 +61098,14 @@ export class PartitionBoundSpecContext extends antlr.ParserRuleContext { public KW_MODULUS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_MODULUS, 0); } - public Integral(): antlr.TerminalNode[]; - public Integral(i: number): antlr.TerminalNode | null; - public Integral(i?: number): antlr.TerminalNode | null | antlr.TerminalNode[] { - if (i === undefined) { - return this.getTokens(PostgreSqlParser.Integral); - } else { - return this.getToken(PostgreSqlParser.Integral, i); - } + public numericOnly(): NumericOnlyContext[]; + public numericOnly(i: number): NumericOnlyContext | null; + public numericOnly(i?: number): NumericOnlyContext[] | NumericOnlyContext | null { + if (i === undefined) { + return this.getRuleContexts(NumericOnlyContext); + } + + return this.getRuleContext(i, NumericOnlyContext); } public COMMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.COMMA, 0); @@ -61572,14 +61119,14 @@ export class PartitionBoundSpecContext extends antlr.ParserRuleContext { public KW_IN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_IN, 0); } - public execute_param_clause(): Execute_param_clauseContext[]; - public execute_param_clause(i: number): Execute_param_clauseContext | null; - public execute_param_clause(i?: number): Execute_param_clauseContext[] | Execute_param_clauseContext | null { + public executeParamClause(): ExecuteParamClauseContext[]; + public executeParamClause(i: number): ExecuteParamClauseContext | null; + public executeParamClause(i?: number): ExecuteParamClauseContext[] | ExecuteParamClauseContext | null { if (i === undefined) { - return this.getRuleContexts(Execute_param_clauseContext); + return this.getRuleContexts(ExecuteParamClauseContext); } - return this.getRuleContext(i, Execute_param_clauseContext); + return this.getRuleContext(i, ExecuteParamClauseContext); } public KW_FROM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FROM, 0); @@ -61623,17 +61170,17 @@ export class AlterCompositeTypeStmtContext extends antlr.ParserRuleContext { public KW_TYPE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TYPE, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } - public alter_type_cmd(): Alter_type_cmdContext[]; - public alter_type_cmd(i: number): Alter_type_cmdContext | null; - public alter_type_cmd(i?: number): Alter_type_cmdContext[] | Alter_type_cmdContext | null { + public alterTypeCmd(): AlterTypeCmdContext[]; + public alterTypeCmd(i: number): AlterTypeCmdContext | null; + public alterTypeCmd(i?: number): AlterTypeCmdContext[] | AlterTypeCmdContext | null { if (i === undefined) { - return this.getRuleContexts(Alter_type_cmdContext); + return this.getRuleContexts(AlterTypeCmdContext); } - return this.getRuleContext(i, Alter_type_cmdContext); + return this.getRuleContext(i, AlterTypeCmdContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -61667,7 +61214,7 @@ export class AlterCompositeTypeStmtContext extends antlr.ParserRuleContext { } -export class Alter_type_cmdContext extends antlr.ParserRuleContext { +export class AlterTypeCmdContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -61680,8 +61227,8 @@ export class Alter_type_cmdContext extends antlr.ParserRuleContext { public tableFuncElement(): TableFuncElementContext | null { return this.getRuleContext(0, TableFuncElementContext); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } public KW_DROP(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DROP, 0); @@ -61689,8 +61236,8 @@ export class Alter_type_cmdContext extends antlr.ParserRuleContext { public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } public KW_ALTER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALTER, 0); @@ -61707,25 +61254,25 @@ export class Alter_type_cmdContext extends antlr.ParserRuleContext { public KW_DATA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATA, 0); } - public opt_collate_clause(): Opt_collate_clauseContext | null { - return this.getRuleContext(0, Opt_collate_clauseContext); + public collateClause(): CollateClauseContext | null { + return this.getRuleContext(0, CollateClauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alter_type_cmd; + return PostgreSqlParser.RULE_alterTypeCmd; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlter_type_cmd) { - listener.enterAlter_type_cmd(this); + if(listener.enterAlterTypeCmd) { + listener.enterAlterTypeCmd(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlter_type_cmd) { - listener.exitAlter_type_cmd(this); + if(listener.exitAlterTypeCmd) { + listener.exitAlterTypeCmd(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlter_type_cmd) { - return visitor.visitAlter_type_cmd(this); + if (visitor.visitAlterTypeCmd) { + return visitor.visitAlterTypeCmd(this); } else { return visitor.visitChildren(this); } @@ -61776,8 +61323,8 @@ export class CopyStmtContext extends antlr.ParserRuleContext { public KW_COPY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_COPY, 0)!; } - public table_name(): Table_nameContext | null { - return this.getRuleContext(0, Table_nameContext); + public tableName(): TableNameContext | null { + return this.getRuleContext(0, TableNameContext); } public copyOptions(): CopyOptionsContext { return this.getRuleContext(0, CopyOptionsContext)!; @@ -61806,8 +61353,8 @@ export class CopyStmtContext extends antlr.ParserRuleContext { public KW_BINARY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BINARY, 0); } - public opt_column_list(): Opt_column_listContext | null { - return this.getRuleContext(0, Opt_column_listContext); + public optColumnList(): OptColumnListContext | null { + return this.getRuleContext(0, OptColumnListContext); } public KW_PROGRAM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROGRAM, 0); @@ -61818,8 +61365,8 @@ export class CopyStmtContext extends antlr.ParserRuleContext { public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public where_clause(): Where_clauseContext | null { - return this.getRuleContext(0, Where_clauseContext); + public whereClause(): WhereClauseContext | null { + return this.getRuleContext(0, WhereClauseContext); } public KW_USING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USING, 0); @@ -61932,14 +61479,14 @@ export class CopyOptionsNoparensContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NULL, i); } } - public column_list(): Column_listContext[]; - public column_list(i: number): Column_listContext | null; - public column_list(i?: number): Column_listContext[] | Column_listContext | null { + public columnList(): ColumnListContext[]; + public columnList(i: number): ColumnListContext | null; + public columnList(i?: number): ColumnListContext[] | ColumnListContext | null { if (i === undefined) { - return this.getRuleContexts(Column_listContext); + return this.getRuleContexts(ColumnListContext); } - return this.getRuleContext(i, Column_listContext); + return this.getRuleContext(i, ColumnListContext); } public KW_ENCODING(): antlr.TerminalNode[]; public KW_ENCODING(i: number): antlr.TerminalNode | null; @@ -62091,14 +61638,14 @@ export class CopyOptionsContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } - public copy_generic_opt_elem(): Copy_generic_opt_elemContext[]; - public copy_generic_opt_elem(i: number): Copy_generic_opt_elemContext | null; - public copy_generic_opt_elem(i?: number): Copy_generic_opt_elemContext[] | Copy_generic_opt_elemContext | null { + public copyGenericOptElem(): CopyGenericOptElemContext[]; + public copyGenericOptElem(i: number): CopyGenericOptElemContext | null; + public copyGenericOptElem(i?: number): CopyGenericOptElemContext[] | CopyGenericOptElemContext | null { if (i === undefined) { - return this.getRuleContexts(Copy_generic_opt_elemContext); + return this.getRuleContexts(CopyGenericOptElemContext); } - return this.getRuleContext(i, Copy_generic_opt_elemContext); + return this.getRuleContext(i, CopyGenericOptElemContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -62132,15 +61679,15 @@ export class CopyOptionsContext extends antlr.ParserRuleContext { } -export class Copy_generic_opt_elemContext extends antlr.ParserRuleContext { +export class CopyGenericOptElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public colLabel(): ColLabelContext { return this.getRuleContext(0, ColLabelContext)!; } - public opt_boolean_or_string(): Opt_boolean_or_stringContext | null { - return this.getRuleContext(0, Opt_boolean_or_stringContext); + public booleanOrString(): BooleanOrStringContext | null { + return this.getRuleContext(0, BooleanOrStringContext); } public numericOnly(): NumericOnlyContext | null { return this.getRuleContext(0, NumericOnlyContext); @@ -62151,14 +61698,14 @@ export class Copy_generic_opt_elemContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public opt_boolean_or_string_column(): Opt_boolean_or_string_columnContext[]; - public opt_boolean_or_string_column(i: number): Opt_boolean_or_string_columnContext | null; - public opt_boolean_or_string_column(i?: number): Opt_boolean_or_string_columnContext[] | Opt_boolean_or_string_columnContext | null { + public optBooleanOrStringColumn(): OptBooleanOrStringColumnContext[]; + public optBooleanOrStringColumn(i: number): OptBooleanOrStringColumnContext | null; + public optBooleanOrStringColumn(i?: number): OptBooleanOrStringColumnContext[] | OptBooleanOrStringColumnContext | null { if (i === undefined) { - return this.getRuleContexts(Opt_boolean_or_string_columnContext); + return this.getRuleContexts(OptBooleanOrStringColumnContext); } - return this.getRuleContext(i, Opt_boolean_or_string_columnContext); + return this.getRuleContext(i, OptBooleanOrStringColumnContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); @@ -62173,21 +61720,21 @@ export class Copy_generic_opt_elemContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_copy_generic_opt_elem; + return PostgreSqlParser.RULE_copyGenericOptElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCopy_generic_opt_elem) { - listener.enterCopy_generic_opt_elem(this); + if(listener.enterCopyGenericOptElem) { + listener.enterCopyGenericOptElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCopy_generic_opt_elem) { - listener.exitCopy_generic_opt_elem(this); + if(listener.exitCopyGenericOptElem) { + listener.exitCopyGenericOptElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCopy_generic_opt_elem) { - return visitor.visitCopy_generic_opt_elem(this); + if (visitor.visitCopyGenericOptElem) { + return visitor.visitCopyGenericOptElem(this); } else { return visitor.visitChildren(this); } @@ -62217,8 +61764,8 @@ export class ColumnCreateTableContext extends CreateStmtContext { public KW_TABLE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TABLE, 0)!; } - public table_name_create(): Table_name_createContext { - return this.getRuleContext(0, Table_name_createContext)!; + public tableNameCreate(): TableNameCreateContext { + return this.getRuleContext(0, TableNameCreateContext)!; } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -62229,14 +61776,14 @@ export class ColumnCreateTableContext extends CreateStmtContext { public KW_OF(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OF, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public KW_PARTITION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PARTITION, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public partitionBoundSpec(): PartitionBoundSpecContext | null { return this.getRuleContext(0, PartitionBoundSpecContext); @@ -62244,8 +61791,8 @@ export class ColumnCreateTableContext extends CreateStmtContext { public optTemp(): OptTempContext | null { return this.getRuleContext(0, OptTempContext); } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } public tableElementList(): TableElementListContext | null { return this.getRuleContext(0, TableElementListContext); @@ -62256,8 +61803,8 @@ export class ColumnCreateTableContext extends CreateStmtContext { public partitionSpec(): PartitionSpecContext | null { return this.getRuleContext(0, PartitionSpecContext); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public optWith(): OptWithContext | null { return this.getRuleContext(0, OptWithContext); @@ -62448,8 +61995,8 @@ export class TableElementContext extends antlr.ParserRuleContext { public KW_LIKE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LIKE, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public tableLikeOption(): TableLikeOptionContext[]; public tableLikeOption(i: number): TableLikeOptionContext | null; @@ -62505,8 +62052,8 @@ export class TypedTableElementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_name_create(): Column_name_createContext | null { - return this.getRuleContext(0, Column_name_createContext); + public columnNameCreate(): ColumnNameCreateContext | null { + return this.getRuleContext(0, ColumnNameCreateContext); } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); @@ -62560,14 +62107,14 @@ export class Column_defContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_name_create(): Column_name_createContext { - return this.getRuleContext(0, Column_name_createContext)!; + public columnNameCreate(): ColumnNameCreateContext { + return this.getRuleContext(0, ColumnNameCreateContext)!; } public typename(): TypenameContext { return this.getRuleContext(0, TypenameContext)!; } - public create_generic_options(): Create_generic_optionsContext | null { - return this.getRuleContext(0, Create_generic_optionsContext); + public createGenericOptions(): CreateGenericOptionsContext | null { + return this.getRuleContext(0, CreateGenericOptionsContext); } public KW_STORAGE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_STORAGE, 0); @@ -62584,8 +62131,8 @@ export class Column_defContext extends antlr.ParserRuleContext { return this.getRuleContext(i, ColIdContext); } - public opt_collate_clause(): Opt_collate_clauseContext | null { - return this.getRuleContext(0, Opt_collate_clauseContext); + public collateClause(): CollateClauseContext | null { + return this.getRuleContext(0, CollateClauseContext); } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); @@ -62704,8 +62251,8 @@ export class ColConstraintElemContext extends antlr.ParserRuleContext { public KW_UNIQUE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_UNIQUE, 0); } - public opt_definition(): Opt_definitionContext | null { - return this.getRuleContext(0, Opt_definitionContext); + public optDefinition(): OptDefinitionContext | null { + return this.getRuleContext(0, OptDefinitionContext); } public optConstableSpace(): OptConstableSpaceContext | null { return this.getRuleContext(0, OptConstableSpaceContext); @@ -62719,11 +62266,11 @@ export class ColConstraintElemContext extends antlr.ParserRuleContext { public KW_INCLUDE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INCLUDE, 0); } - public index_params(): Index_paramsContext | null { - return this.getRuleContext(0, Index_paramsContext); + public indexParams(): IndexParamsContext | null { + return this.getRuleContext(0, IndexParamsContext); } - public with_clause(): With_clauseContext | null { - return this.getRuleContext(0, With_clauseContext); + public withClause(): WithClauseContext | null { + return this.getRuleContext(0, WithClauseContext); } public KW_PRIMARY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PRIMARY, 0); @@ -62758,8 +62305,8 @@ export class ColConstraintElemContext extends antlr.ParserRuleContext { public KW_GENERATED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_GENERATED, 0); } - public generated_when(): Generated_whenContext | null { - return this.getRuleContext(0, Generated_whenContext); + public generatedWhen(): GeneratedWhenContext | null { + return this.getRuleContext(0, GeneratedWhenContext); } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); @@ -62782,20 +62329,20 @@ export class ColConstraintElemContext extends antlr.ParserRuleContext { public KW_REFERENCES(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_REFERENCES, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } - public opt_column_list(): Opt_column_listContext | null { - return this.getRuleContext(0, Opt_column_listContext); + public optColumnList(): OptColumnListContext | null { + return this.getRuleContext(0, OptColumnListContext); } - public key_match(): Key_matchContext | null { - return this.getRuleContext(0, Key_matchContext); + public keyMatch(): KeyMatchContext | null { + return this.getRuleContext(0, KeyMatchContext); } - public key_actions(): Key_actionsContext | null { - return this.getRuleContext(0, Key_actionsContext); + public keyActions(): KeyActionsContext | null { + return this.getRuleContext(0, KeyActionsContext); } - public opt_collate_clause(): Opt_collate_clauseContext | null { - return this.getRuleContext(0, Opt_collate_clauseContext); + public collateClause(): CollateClauseContext | null { + return this.getRuleContext(0, CollateClauseContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_colConstraintElem; @@ -62820,7 +62367,7 @@ export class ColConstraintElemContext extends antlr.ParserRuleContext { } -export class Generated_whenContext extends antlr.ParserRuleContext { +export class GeneratedWhenContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -62834,21 +62381,21 @@ export class Generated_whenContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_generated_when; + return PostgreSqlParser.RULE_generatedWhen; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterGenerated_when) { - listener.enterGenerated_when(this); + if(listener.enterGeneratedWhen) { + listener.enterGeneratedWhen(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitGenerated_when) { - listener.exitGenerated_when(this); + if(listener.exitGeneratedWhen) { + listener.exitGeneratedWhen(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitGenerated_when) { - return visitor.visitGenerated_when(this); + if (visitor.visitGeneratedWhen) { + return visitor.visitGeneratedWhen(this); } else { return visitor.visitChildren(this); } @@ -62950,14 +62497,14 @@ export class ConstraintElemContext extends antlr.ParserRuleContext { public KW_UNIQUE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_UNIQUE, 0); } - public opt_column_list(): Opt_column_listContext[]; - public opt_column_list(i: number): Opt_column_listContext | null; - public opt_column_list(i?: number): Opt_column_listContext[] | Opt_column_listContext | null { + public optColumnList(): OptColumnListContext[]; + public optColumnList(i: number): OptColumnListContext | null; + public optColumnList(i?: number): OptColumnListContext[] | OptColumnListContext | null { if (i === undefined) { - return this.getRuleContexts(Opt_column_listContext); + return this.getRuleContexts(OptColumnListContext); } - return this.getRuleContext(i, Opt_column_listContext); + return this.getRuleContext(i, OptColumnListContext); } public existingIndex(): ExistingIndexContext | null { return this.getRuleContext(0, ExistingIndexContext); @@ -62968,11 +62515,11 @@ export class ConstraintElemContext extends antlr.ParserRuleContext { public KW_KEY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_KEY, 0); } - public opt_c_include(): Opt_c_includeContext | null { - return this.getRuleContext(0, Opt_c_includeContext); + public columnListInclude(): ColumnListIncludeContext | null { + return this.getRuleContext(0, ColumnListIncludeContext); } - public opt_definition(): Opt_definitionContext | null { - return this.getRuleContext(0, Opt_definitionContext); + public optDefinition(): OptDefinitionContext | null { + return this.getRuleContext(0, OptDefinitionContext); } public optConstableSpace(): OptConstableSpaceContext | null { return this.getRuleContext(0, OptConstableSpaceContext); @@ -62989,8 +62536,8 @@ export class ConstraintElemContext extends antlr.ParserRuleContext { return this.getRuleContext(i, ExclusionConstraintElemContext); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -63010,14 +62557,14 @@ export class ConstraintElemContext extends antlr.ParserRuleContext { public KW_REFERENCES(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_REFERENCES, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } - public key_match(): Key_matchContext | null { - return this.getRuleContext(0, Key_matchContext); + public keyMatch(): KeyMatchContext | null { + return this.getRuleContext(0, KeyMatchContext); } - public key_actions(): Key_actionsContext | null { - return this.getRuleContext(0, Key_actionsContext); + public keyActions(): KeyActionsContext | null { + return this.getRuleContext(0, KeyActionsContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_constraintElem; @@ -63042,35 +62589,35 @@ export class ConstraintElemContext extends antlr.ParserRuleContext { } -export class Opt_column_listContext extends antlr.ParserRuleContext { +export class OptColumnListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public column_list(): Column_listContext { - return this.getRuleContext(0, Column_listContext)!; + public columnList(): ColumnListContext { + return this.getRuleContext(0, ColumnListContext)!; } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_column_list; + return PostgreSqlParser.RULE_optColumnList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_column_list) { - listener.enterOpt_column_list(this); + if(listener.enterOptColumnList) { + listener.enterOptColumnList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_column_list) { - listener.exitOpt_column_list(this); + if(listener.exitOptColumnList) { + listener.exitOptColumnList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_column_list) { - return visitor.visitOpt_column_list(this); + if (visitor.visitOptColumnList) { + return visitor.visitOptColumnList(this); } else { return visitor.visitChildren(this); } @@ -63078,21 +62625,21 @@ export class Opt_column_listContext extends antlr.ParserRuleContext { } -export class Opt_column_list_createContext extends antlr.ParserRuleContext { +export class ColumnListCreateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public column_name_create(): Column_name_createContext[]; - public column_name_create(i: number): Column_name_createContext | null; - public column_name_create(i?: number): Column_name_createContext[] | Column_name_createContext | null { + public columnNameCreate(): ColumnNameCreateContext[]; + public columnNameCreate(i: number): ColumnNameCreateContext | null; + public columnNameCreate(i?: number): ColumnNameCreateContext[] | ColumnNameCreateContext | null { if (i === undefined) { - return this.getRuleContexts(Column_name_createContext); + return this.getRuleContexts(ColumnNameCreateContext); } - return this.getRuleContext(i, Column_name_createContext); + return this.getRuleContext(i, ColumnNameCreateContext); } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -63107,21 +62654,21 @@ export class Opt_column_list_createContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_column_list_create; + return PostgreSqlParser.RULE_columnListCreate; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_column_list_create) { - listener.enterOpt_column_list_create(this); + if(listener.enterColumnListCreate) { + listener.enterColumnListCreate(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_column_list_create) { - listener.exitOpt_column_list_create(this); + if(listener.exitColumnListCreate) { + listener.exitColumnListCreate(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_column_list_create) { - return visitor.visitOpt_column_list_create(this); + if (visitor.visitColumnListCreate) { + return visitor.visitColumnListCreate(this); } else { return visitor.visitChildren(this); } @@ -63129,18 +62676,18 @@ export class Opt_column_list_createContext extends antlr.ParserRuleContext { } -export class Column_listContext extends antlr.ParserRuleContext { +export class ColumnListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_name(): Column_nameContext[]; - public column_name(i: number): Column_nameContext | null; - public column_name(i?: number): Column_nameContext[] | Column_nameContext | null { + public columnName(): ColumnNameContext[]; + public columnName(i: number): ColumnNameContext | null; + public columnName(i?: number): ColumnNameContext[] | ColumnNameContext | null { if (i === undefined) { - return this.getRuleContexts(Column_nameContext); + return this.getRuleContexts(ColumnNameContext); } - return this.getRuleContext(i, Column_nameContext); + return this.getRuleContext(i, ColumnNameContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -63152,21 +62699,21 @@ export class Column_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_column_list; + return PostgreSqlParser.RULE_columnList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterColumn_list) { - listener.enterColumn_list(this); + if(listener.enterColumnList) { + listener.enterColumnList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitColumn_list) { - listener.exitColumn_list(this); + if(listener.exitColumnList) { + listener.exitColumnList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitColumn_list) { - return visitor.visitColumn_list(this); + if (visitor.visitColumnList) { + return visitor.visitColumnList(this); } else { return visitor.visitChildren(this); } @@ -63174,32 +62721,32 @@ export class Column_listContext extends antlr.ParserRuleContext { } -export class Opt_c_includeContext extends antlr.ParserRuleContext { +export class ColumnListIncludeContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_INCLUDE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_INCLUDE, 0)!; } - public opt_column_list(): Opt_column_listContext { - return this.getRuleContext(0, Opt_column_listContext)!; + public optColumnList(): OptColumnListContext { + return this.getRuleContext(0, OptColumnListContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_c_include; + return PostgreSqlParser.RULE_columnListInclude; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_c_include) { - listener.enterOpt_c_include(this); + if(listener.enterColumnListInclude) { + listener.enterColumnListInclude(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_c_include) { - listener.exitOpt_c_include(this); + if(listener.exitColumnListInclude) { + listener.exitColumnListInclude(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_c_include) { - return visitor.visitOpt_c_include(this); + if (visitor.visitColumnListInclude) { + return visitor.visitColumnListInclude(this); } else { return visitor.visitChildren(this); } @@ -63207,7 +62754,7 @@ export class Opt_c_includeContext extends antlr.ParserRuleContext { } -export class Key_matchContext extends antlr.ParserRuleContext { +export class KeyMatchContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63224,21 +62771,21 @@ export class Key_matchContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_SIMPLE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_key_match; + return PostgreSqlParser.RULE_keyMatch; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterKey_match) { - listener.enterKey_match(this); + if(listener.enterKeyMatch) { + listener.enterKeyMatch(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitKey_match) { - listener.exitKey_match(this); + if(listener.exitKeyMatch) { + listener.exitKeyMatch(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitKey_match) { - return visitor.visitKey_match(this); + if (visitor.visitKeyMatch) { + return visitor.visitKeyMatch(this); } else { return visitor.visitChildren(this); } @@ -63250,14 +62797,14 @@ export class ExclusionConstraintElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public index_elem(): Index_elemContext { - return this.getRuleContext(0, Index_elemContext)!; + public indexElem(): IndexElemContext { + return this.getRuleContext(0, IndexElemContext)!; } public KW_WITH(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_WITH, 0)!; } - public any_operator(): Any_operatorContext | null { - return this.getRuleContext(0, Any_operatorContext); + public anyOperator(): AnyOperatorContext | null { + return this.getRuleContext(0, AnyOperatorContext); } public KW_OPERATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0); @@ -63291,32 +62838,32 @@ export class ExclusionConstraintElemContext extends antlr.ParserRuleContext { } -export class Key_actionsContext extends antlr.ParserRuleContext { +export class KeyActionsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public key_update(): Key_updateContext | null { - return this.getRuleContext(0, Key_updateContext); + public keyUpdate(): KeyUpdateContext | null { + return this.getRuleContext(0, KeyUpdateContext); } - public key_delete(): Key_deleteContext | null { - return this.getRuleContext(0, Key_deleteContext); + public keyDelete(): KeyDeleteContext | null { + return this.getRuleContext(0, KeyDeleteContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_key_actions; + return PostgreSqlParser.RULE_keyActions; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterKey_actions) { - listener.enterKey_actions(this); + if(listener.enterKeyActions) { + listener.enterKeyActions(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitKey_actions) { - listener.exitKey_actions(this); + if(listener.exitKeyActions) { + listener.exitKeyActions(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitKey_actions) { - return visitor.visitKey_actions(this); + if (visitor.visitKeyActions) { + return visitor.visitKeyActions(this); } else { return visitor.visitChildren(this); } @@ -63324,7 +62871,7 @@ export class Key_actionsContext extends antlr.ParserRuleContext { } -export class Key_updateContext extends antlr.ParserRuleContext { +export class KeyUpdateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63334,25 +62881,25 @@ export class Key_updateContext extends antlr.ParserRuleContext { public KW_UPDATE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_UPDATE, 0)!; } - public key_action(): Key_actionContext { - return this.getRuleContext(0, Key_actionContext)!; + public keyAction(): KeyActionContext { + return this.getRuleContext(0, KeyActionContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_key_update; + return PostgreSqlParser.RULE_keyUpdate; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterKey_update) { - listener.enterKey_update(this); + if(listener.enterKeyUpdate) { + listener.enterKeyUpdate(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitKey_update) { - listener.exitKey_update(this); + if(listener.exitKeyUpdate) { + listener.exitKeyUpdate(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitKey_update) { - return visitor.visitKey_update(this); + if (visitor.visitKeyUpdate) { + return visitor.visitKeyUpdate(this); } else { return visitor.visitChildren(this); } @@ -63360,7 +62907,7 @@ export class Key_updateContext extends antlr.ParserRuleContext { } -export class Key_deleteContext extends antlr.ParserRuleContext { +export class KeyDeleteContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63370,25 +62917,25 @@ export class Key_deleteContext extends antlr.ParserRuleContext { public KW_DELETE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DELETE, 0)!; } - public key_action(): Key_actionContext { - return this.getRuleContext(0, Key_actionContext)!; + public keyAction(): KeyActionContext { + return this.getRuleContext(0, KeyActionContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_key_delete; + return PostgreSqlParser.RULE_keyDelete; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterKey_delete) { - listener.enterKey_delete(this); + if(listener.enterKeyDelete) { + listener.enterKeyDelete(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitKey_delete) { - listener.exitKey_delete(this); + if(listener.exitKeyDelete) { + listener.exitKeyDelete(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitKey_delete) { - return visitor.visitKey_delete(this); + if (visitor.visitKeyDelete) { + return visitor.visitKeyDelete(this); } else { return visitor.visitChildren(this); } @@ -63396,7 +62943,7 @@ export class Key_deleteContext extends antlr.ParserRuleContext { } -export class Key_actionContext extends antlr.ParserRuleContext { +export class KeyActionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63421,25 +62968,25 @@ export class Key_actionContext extends antlr.ParserRuleContext { public KW_DEFAULT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); } - public column_list(): Column_listContext | null { - return this.getRuleContext(0, Column_listContext); + public columnList(): ColumnListContext | null { + return this.getRuleContext(0, ColumnListContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_key_action; + return PostgreSqlParser.RULE_keyAction; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterKey_action) { - listener.enterKey_action(this); + if(listener.enterKeyAction) { + listener.enterKeyAction(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitKey_action) { - listener.exitKey_action(this); + if(listener.exitKeyAction) { + listener.exitKeyAction(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitKey_action) { - return visitor.visitKey_action(this); + if (visitor.visitKeyAction) { + return visitor.visitKeyAction(this); } else { return visitor.visitChildren(this); } @@ -63457,8 +63004,8 @@ export class OptInheritContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public qualified_name_list(): Qualified_name_listContext { - return this.getRuleContext(0, Qualified_name_listContext)!; + public qualifiedNameList(): QualifiedNameListContext { + return this.getRuleContext(0, QualifiedNameListContext)!; } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -63502,14 +63049,14 @@ export class PartitionSpecContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public part_elem(): Part_elemContext[]; - public part_elem(i: number): Part_elemContext | null; - public part_elem(i?: number): Part_elemContext[] | Part_elemContext | null { + public partElem(): PartElemContext[]; + public partElem(i: number): PartElemContext | null; + public partElem(i?: number): PartElemContext[] | PartElemContext | null { if (i === undefined) { - return this.getRuleContexts(Part_elemContext); + return this.getRuleContexts(PartElemContext); } - return this.getRuleContext(i, Part_elemContext); + return this.getRuleContext(i, PartElemContext); } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -63546,21 +63093,21 @@ export class PartitionSpecContext extends antlr.ParserRuleContext { } -export class Part_elemContext extends antlr.ParserRuleContext { +export class PartElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_name(): Column_nameContext | null { - return this.getRuleContext(0, Column_nameContext); + public columnName(): ColumnNameContext | null { + return this.getRuleContext(0, ColumnNameContext); } - public func_expr_windowless(): Func_expr_windowlessContext | null { - return this.getRuleContext(0, Func_expr_windowlessContext); + public funcExprWindowless(): FuncExprWindowlessContext | null { + return this.getRuleContext(0, FuncExprWindowlessContext); } - public opt_collate_clause(): Opt_collate_clauseContext | null { - return this.getRuleContext(0, Opt_collate_clauseContext); + public collateClause(): CollateClauseContext | null { + return this.getRuleContext(0, CollateClauseContext); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -63572,21 +63119,21 @@ export class Part_elemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_part_elem; + return PostgreSqlParser.RULE_partElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPart_elem) { - listener.enterPart_elem(this); + if(listener.enterPartElem) { + listener.enterPartElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPart_elem) { - listener.exitPart_elem(this); + if(listener.exitPartElem) { + listener.exitPartElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPart_elem) { - return visitor.visitPart_elem(this); + if (visitor.visitPartElem) { + return visitor.visitPartElem(this); } else { return visitor.visitChildren(this); } @@ -63594,7 +63141,7 @@ export class Part_elemContext extends antlr.ParserRuleContext { } -export class Table_access_method_clauseContext extends antlr.ParserRuleContext { +export class TableAccessMethodClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -63605,21 +63152,21 @@ export class Table_access_method_clauseContext extends antlr.ParserRuleContext { return this.getRuleContext(0, ColIdContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_table_access_method_clause; + return PostgreSqlParser.RULE_tableAccessMethodClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTable_access_method_clause) { - listener.enterTable_access_method_clause(this); + if(listener.enterTableAccessMethodClause) { + listener.enterTableAccessMethodClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTable_access_method_clause) { - listener.exitTable_access_method_clause(this); + if(listener.exitTableAccessMethodClause) { + listener.exitTableAccessMethodClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTable_access_method_clause) { - return visitor.visitTable_access_method_clause(this); + if (visitor.visitTableAccessMethodClause) { + return visitor.visitTableAccessMethodClause(this); } else { return visitor.visitChildren(this); } @@ -63718,8 +63265,8 @@ export class OptTableSpaceContext extends antlr.ParserRuleContext { public KW_TABLESPACE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TABLESPACE, 0)!; } - public tablespace_name(): Tablespace_nameContext { - return this.getRuleContext(0, Tablespace_nameContext)!; + public tableSpaceName(): TableSpaceNameContext { + return this.getRuleContext(0, TableSpaceNameContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_optTableSpace; @@ -63829,26 +63376,26 @@ export class CreateStatsStmtContext extends antlr.ParserRuleContext { public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; } - public from_clause(): From_clauseContext { - return this.getRuleContext(0, From_clauseContext)!; + public fromClause(): FromClauseContext { + return this.getRuleContext(0, FromClauseContext)!; } - public column_expr(): Column_exprContext[]; - public column_expr(i: number): Column_exprContext | null; - public column_expr(i?: number): Column_exprContext[] | Column_exprContext | null { + public columnExpr(): ColumnExprContext[]; + public columnExpr(i: number): ColumnExprContext | null; + public columnExpr(i?: number): ColumnExprContext[] | ColumnExprContext | null { if (i === undefined) { - return this.getRuleContexts(Column_exprContext); + return this.getRuleContexts(ColumnExprContext); } - return this.getRuleContext(i, Column_exprContext); + return this.getRuleContext(i, ColumnExprContext); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } - public opt_column_list(): Opt_column_listContext | null { - return this.getRuleContext(0, Opt_column_listContext); + public optColumnList(): OptColumnListContext | null { + return this.getRuleContext(0, OptColumnListContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -63859,8 +63406,8 @@ export class CreateStatsStmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.COMMA, i); } } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_createStatsStmt; @@ -63901,8 +63448,8 @@ export class AlterStatsStmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_STATISTICS, i); } } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } public KW_SET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SET, 0)!; @@ -63910,8 +63457,8 @@ export class AlterStatsStmtContext extends antlr.ParserRuleContext { public signedConst(): SignedConstContext { return this.getRuleContext(0, SignedConstContext)!; } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_alterStatsStmt; @@ -63958,8 +63505,8 @@ export class QueryCreateTableContext extends CreateAsStmtContext { public KW_TABLE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TABLE, 0)!; } - public create_as_target(): Create_as_targetContext { - return this.getRuleContext(0, Create_as_targetContext)!; + public createAsTarget(): CreateAsTargetContext { + return this.getRuleContext(0, CreateAsTargetContext)!; } public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; @@ -63970,11 +63517,11 @@ export class QueryCreateTableContext extends CreateAsStmtContext { public optTemp(): OptTempContext | null { return this.getRuleContext(0, OptTempContext); } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } - public opt_with_data(): Opt_with_dataContext | null { - return this.getRuleContext(0, Opt_with_dataContext); + public optWithData(): OptWithDataContext | null { + return this.getRuleContext(0, OptWithDataContext); } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterQueryCreateTable) { @@ -63996,18 +63543,18 @@ export class QueryCreateTableContext extends CreateAsStmtContext { } -export class Create_as_targetContext extends antlr.ParserRuleContext { +export class CreateAsTargetContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public table_name_create(): Table_name_createContext { - return this.getRuleContext(0, Table_name_createContext)!; + public tableNameCreate(): TableNameCreateContext { + return this.getRuleContext(0, TableNameCreateContext)!; } - public opt_column_list_create(): Opt_column_list_createContext | null { - return this.getRuleContext(0, Opt_column_list_createContext); + public columnListCreate(): ColumnListCreateContext | null { + return this.getRuleContext(0, ColumnListCreateContext); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public optWith(): OptWithContext | null { return this.getRuleContext(0, OptWithContext); @@ -64019,21 +63566,21 @@ export class Create_as_targetContext extends antlr.ParserRuleContext { return this.getRuleContext(0, OptTableSpaceContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_create_as_target; + return PostgreSqlParser.RULE_createAsTarget; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreate_as_target) { - listener.enterCreate_as_target(this); + if(listener.enterCreateAsTarget) { + listener.enterCreateAsTarget(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreate_as_target) { - listener.exitCreate_as_target(this); + if(listener.exitCreateAsTarget) { + listener.exitCreateAsTarget(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreate_as_target) { - return visitor.visitCreate_as_target(this); + if (visitor.visitCreateAsTarget) { + return visitor.visitCreateAsTarget(this); } else { return visitor.visitChildren(this); } @@ -64041,7 +63588,7 @@ export class Create_as_targetContext extends antlr.ParserRuleContext { } -export class Opt_with_dataContext extends antlr.ParserRuleContext { +export class OptWithDataContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64055,21 +63602,21 @@ export class Opt_with_dataContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NO, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_with_data; + return PostgreSqlParser.RULE_optWithData; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_with_data) { - listener.enterOpt_with_data(this); + if(listener.enterOptWithData) { + listener.enterOptWithData(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_with_data) { - listener.exitOpt_with_data(this); + if(listener.exitOptWithData) { + listener.exitOptWithData(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_with_data) { - return visitor.visitOpt_with_data(this); + if (visitor.visitOptWithData) { + return visitor.visitOptWithData(this); } else { return visitor.visitChildren(this); } @@ -64102,8 +63649,8 @@ export class CreateMaterializedViewContext extends CreateMaterializedViewStmtCon public KW_VIEW(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_VIEW, 0)!; } - public view_name_create(): View_name_createContext { - return this.getRuleContext(0, View_name_createContext)!; + public viewNameCreate(): ViewNameCreateContext { + return this.getRuleContext(0, ViewNameCreateContext)!; } public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; @@ -64114,14 +63661,14 @@ export class CreateMaterializedViewContext extends CreateMaterializedViewStmtCon public KW_UNLOGGED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_UNLOGGED, 0); } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } - public opt_column_list_create(): Opt_column_list_createContext | null { - return this.getRuleContext(0, Opt_column_list_createContext); + public columnListCreate(): ColumnListCreateContext | null { + return this.getRuleContext(0, ColumnListCreateContext); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public optRelOptions(): OptRelOptionsContext | null { return this.getRuleContext(0, OptRelOptionsContext); @@ -64129,8 +63676,8 @@ export class CreateMaterializedViewContext extends CreateMaterializedViewStmtCon public optTableSpace(): OptTableSpaceContext | null { return this.getRuleContext(0, OptTableSpaceContext); } - public opt_with_data(): Opt_with_dataContext | null { - return this.getRuleContext(0, Opt_with_dataContext); + public optWithData(): OptWithDataContext | null { + return this.getRuleContext(0, OptWithDataContext); } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterCreateMaterializedView) { @@ -64165,14 +63712,14 @@ export class RefreshMaterializedViewStmtContext extends antlr.ParserRuleContext public KW_VIEW(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_VIEW, 0)!; } - public view_name(): View_nameContext { - return this.getRuleContext(0, View_nameContext)!; + public viewName(): ViewNameContext { + return this.getRuleContext(0, ViewNameContext)!; } public KW_CONCURRENTLY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONCURRENTLY, 0); } - public opt_with_data(): Opt_with_dataContext | null { - return this.getRuleContext(0, Opt_with_dataContext); + public optWithData(): OptWithDataContext | null { + return this.getRuleContext(0, OptWithDataContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_refreshMaterializedViewStmt; @@ -64207,14 +63754,14 @@ export class CreateSeqStmtContext extends antlr.ParserRuleContext { public KW_SEQUENCE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SEQUENCE, 0)!; } - public qualified_name(): Qualified_nameContext { - return this.getRuleContext(0, Qualified_nameContext)!; + public qualifiedName(): QualifiedNameContext { + return this.getRuleContext(0, QualifiedNameContext)!; } public optTemp(): OptTempContext | null { return this.getRuleContext(0, OptTempContext); } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } public seqOptElem(): SeqOptElemContext[]; public seqOptElem(i: number): SeqOptElemContext | null; @@ -64258,11 +63805,11 @@ export class AlterSeqStmtContext extends antlr.ParserRuleContext { public KW_SEQUENCE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SEQUENCE, 0)!; } - public qualified_name(): Qualified_nameContext { - return this.getRuleContext(0, Qualified_nameContext)!; + public qualifiedName(): QualifiedNameContext { + return this.getRuleContext(0, QualifiedNameContext)!; } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } public seqOptElem(): SeqOptElemContext[]; public seqOptElem(i: number): SeqOptElemContext | null; @@ -64333,8 +63880,8 @@ export class SeqOptElemContext extends antlr.ParserRuleContext { public KW_OWNED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OWNED, 0); } - public column_name(): Column_nameContext | null { - return this.getRuleContext(0, Column_nameContext); + public columnName(): ColumnNameContext | null { + return this.getRuleContext(0, ColumnNameContext); } public KW_SEQUENCE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SEQUENCE, 0); @@ -64342,8 +63889,8 @@ export class SeqOptElemContext extends antlr.ParserRuleContext { public KW_NAME(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NAME, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public KW_START(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_START, 0); @@ -64429,8 +63976,8 @@ export class CreateProceduralLangStmtContext extends antlr.ParserRuleContext { public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } - public opt_or_replace(): Opt_or_replaceContext | null { - return this.getRuleContext(0, Opt_or_replaceContext); + public orReplaceOpt(): OrReplaceOptContext | null { + return this.getRuleContext(0, OrReplaceOptContext); } public KW_TRUSTED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TRUSTED, 0); @@ -64441,14 +63988,14 @@ export class CreateProceduralLangStmtContext extends antlr.ParserRuleContext { public KW_HANDLER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_HANDLER, 0); } - public any_name(): Any_nameContext[]; - public any_name(i: number): Any_nameContext | null; - public any_name(i?: number): Any_nameContext[] | Any_nameContext | null { + public anyName(): AnyNameContext[]; + public anyName(i: number): AnyNameContext | null; + public anyName(i?: number): AnyNameContext[] | AnyNameContext | null { if (i === undefined) { - return this.getRuleContexts(Any_nameContext); + return this.getRuleContexts(AnyNameContext); } - return this.getRuleContext(i, Any_nameContext); + return this.getRuleContext(i, AnyNameContext); } public KW_INLINE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INLINE, 0); @@ -64543,8 +64090,8 @@ export class CreateExtensionStmtContext extends antlr.ParserRuleContext { public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); @@ -64558,14 +64105,14 @@ export class CreateExtensionStmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_SCHEMA, i); } } - public schema_name(): Schema_nameContext[]; - public schema_name(i: number): Schema_nameContext | null; - public schema_name(i?: number): Schema_nameContext[] | Schema_nameContext | null { + public schemaName(): SchemaNameContext[]; + public schemaName(i: number): SchemaNameContext | null; + public schemaName(i?: number): SchemaNameContext[] | SchemaNameContext | null { if (i === undefined) { - return this.getRuleContexts(Schema_nameContext); + return this.getRuleContexts(SchemaNameContext); } - return this.getRuleContext(i, Schema_nameContext); + return this.getRuleContext(i, SchemaNameContext); } public nonReservedWordOrStringConst(): NonReservedWordOrStringConstContext[]; public nonReservedWordOrStringConst(i: number): NonReservedWordOrStringConstContext | null; @@ -64741,11 +64288,11 @@ export class AlterExtensionContentsStmtContext extends antlr.ParserRuleContext { public KW_OPERATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public operatorWithArgTypes(): OperatorWithArgTypesContext | null { return this.getRuleContext(0, OperatorWithArgTypesContext); @@ -64774,11 +64321,11 @@ export class AlterExtensionContentsStmtContext extends antlr.ParserRuleContext { public aggregateWithArgTypes(): AggregateWithArgTypesContext | null { return this.getRuleContext(0, AggregateWithArgTypesContext); } - public object_type_name(): Object_type_nameContext | null { - return this.getRuleContext(0, Object_type_nameContext); + public objectTypeName(): ObjectTypeNameContext | null { + return this.getRuleContext(0, ObjectTypeNameContext); } - public object_type_any_name(): Object_type_any_nameContext | null { - return this.getRuleContext(0, Object_type_any_nameContext); + public objectTypeAnyName(): ObjectTypeAnyNameContext | null { + return this.getRuleContext(0, ObjectTypeAnyNameContext); } public KW_CLASS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CLASS, 0); @@ -64834,17 +64381,17 @@ export class CreateFdwStmtContext extends antlr.ParserRuleContext { public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } - public create_generic_options(): Create_generic_optionsContext | null { - return this.getRuleContext(0, Create_generic_optionsContext); + public createGenericOptions(): CreateGenericOptionsContext | null { + return this.getRuleContext(0, CreateGenericOptionsContext); } - public fdw_option(): Fdw_optionContext[]; - public fdw_option(i: number): Fdw_optionContext | null; - public fdw_option(i?: number): Fdw_optionContext[] | Fdw_optionContext | null { + public fdwOption(): FdwOptionContext[]; + public fdwOption(i: number): FdwOptionContext | null; + public fdwOption(i?: number): FdwOptionContext[] | FdwOptionContext | null { if (i === undefined) { - return this.getRuleContexts(Fdw_optionContext); + return this.getRuleContexts(FdwOptionContext); } - return this.getRuleContext(i, Fdw_optionContext); + return this.getRuleContext(i, FdwOptionContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_createFdwStmt; @@ -64869,7 +64416,7 @@ export class CreateFdwStmtContext extends antlr.ParserRuleContext { } -export class Fdw_optionContext extends antlr.ParserRuleContext { +export class FdwOptionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64879,28 +64426,28 @@ export class Fdw_optionContext extends antlr.ParserRuleContext { public KW_VALIDATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VALIDATOR, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public KW_NO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NO, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_fdw_option; + return PostgreSqlParser.RULE_fdwOption; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFdw_option) { - listener.enterFdw_option(this); + if(listener.enterFdwOption) { + listener.enterFdwOption(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFdw_option) { - listener.exitFdw_option(this); + if(listener.exitFdwOption) { + listener.exitFdwOption(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFdw_option) { - return visitor.visitFdw_option(this); + if (visitor.visitFdwOption) { + return visitor.visitFdwOption(this); } else { return visitor.visitChildren(this); } @@ -64927,17 +64474,17 @@ export class AlterFdwStmtContext extends antlr.ParserRuleContext { public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } - public alter_generic_options(): Alter_generic_optionsContext | null { - return this.getRuleContext(0, Alter_generic_optionsContext); + public alterGenericOptions(): AlterGenericOptionsContext | null { + return this.getRuleContext(0, AlterGenericOptionsContext); } - public fdw_option(): Fdw_optionContext[]; - public fdw_option(i: number): Fdw_optionContext | null; - public fdw_option(i?: number): Fdw_optionContext[] | Fdw_optionContext | null { + public fdwOption(): FdwOptionContext[]; + public fdwOption(i: number): FdwOptionContext | null; + public fdwOption(i?: number): FdwOptionContext[] | FdwOptionContext | null { if (i === undefined) { - return this.getRuleContexts(Fdw_optionContext); + return this.getRuleContexts(FdwOptionContext); } - return this.getRuleContext(i, Fdw_optionContext); + return this.getRuleContext(i, FdwOptionContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_alterFdwStmt; @@ -64962,7 +64509,7 @@ export class AlterFdwStmtContext extends antlr.ParserRuleContext { } -export class Create_generic_optionsContext extends antlr.ParserRuleContext { +export class CreateGenericOptionsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -64972,14 +64519,14 @@ export class Create_generic_optionsContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public generic_option_elem(): Generic_option_elemContext[]; - public generic_option_elem(i: number): Generic_option_elemContext | null; - public generic_option_elem(i?: number): Generic_option_elemContext[] | Generic_option_elemContext | null { + public genericOptionElem(): GenericOptionElemContext[]; + public genericOptionElem(i: number): GenericOptionElemContext | null; + public genericOptionElem(i?: number): GenericOptionElemContext[] | GenericOptionElemContext | null { if (i === undefined) { - return this.getRuleContexts(Generic_option_elemContext); + return this.getRuleContexts(GenericOptionElemContext); } - return this.getRuleContext(i, Generic_option_elemContext); + return this.getRuleContext(i, GenericOptionElemContext); } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -64994,21 +64541,21 @@ export class Create_generic_optionsContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_create_generic_options; + return PostgreSqlParser.RULE_createGenericOptions; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreate_generic_options) { - listener.enterCreate_generic_options(this); + if(listener.enterCreateGenericOptions) { + listener.enterCreateGenericOptions(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreate_generic_options) { - listener.exitCreate_generic_options(this); + if(listener.exitCreateGenericOptions) { + listener.exitCreateGenericOptions(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreate_generic_options) { - return visitor.visitCreate_generic_options(this); + if (visitor.visitCreateGenericOptions) { + return visitor.visitCreateGenericOptions(this); } else { return visitor.visitChildren(this); } @@ -65016,7 +64563,7 @@ export class Create_generic_optionsContext extends antlr.ParserRuleContext { } -export class Alter_generic_optionsContext extends antlr.ParserRuleContext { +export class AlterGenericOptionsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65026,14 +64573,14 @@ export class Alter_generic_optionsContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public alter_generic_option_elem(): Alter_generic_option_elemContext[]; - public alter_generic_option_elem(i: number): Alter_generic_option_elemContext | null; - public alter_generic_option_elem(i?: number): Alter_generic_option_elemContext[] | Alter_generic_option_elemContext | null { + public alterGenericOptionElem(): AlterGenericOptionElemContext[]; + public alterGenericOptionElem(i: number): AlterGenericOptionElemContext | null; + public alterGenericOptionElem(i?: number): AlterGenericOptionElemContext[] | AlterGenericOptionElemContext | null { if (i === undefined) { - return this.getRuleContexts(Alter_generic_option_elemContext); + return this.getRuleContexts(AlterGenericOptionElemContext); } - return this.getRuleContext(i, Alter_generic_option_elemContext); + return this.getRuleContext(i, AlterGenericOptionElemContext); } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -65048,21 +64595,21 @@ export class Alter_generic_optionsContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alter_generic_options; + return PostgreSqlParser.RULE_alterGenericOptions; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlter_generic_options) { - listener.enterAlter_generic_options(this); + if(listener.enterAlterGenericOptions) { + listener.enterAlterGenericOptions(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlter_generic_options) { - listener.exitAlter_generic_options(this); + if(listener.exitAlterGenericOptions) { + listener.exitAlterGenericOptions(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlter_generic_options) { - return visitor.visitAlter_generic_options(this); + if (visitor.visitAlterGenericOptions) { + return visitor.visitAlterGenericOptions(this); } else { return visitor.visitChildren(this); } @@ -65070,12 +64617,12 @@ export class Alter_generic_optionsContext extends antlr.ParserRuleContext { } -export class Alter_generic_option_elemContext extends antlr.ParserRuleContext { +export class AlterGenericOptionElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public generic_option_elem(): Generic_option_elemContext { - return this.getRuleContext(0, Generic_option_elemContext)!; + public genericOptionElem(): GenericOptionElemContext { + return this.getRuleContext(0, GenericOptionElemContext)!; } public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); @@ -65087,21 +64634,21 @@ export class Alter_generic_option_elemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DROP, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alter_generic_option_elem; + return PostgreSqlParser.RULE_alterGenericOptionElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlter_generic_option_elem) { - listener.enterAlter_generic_option_elem(this); + if(listener.enterAlterGenericOptionElem) { + listener.enterAlterGenericOptionElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlter_generic_option_elem) { - listener.exitAlter_generic_option_elem(this); + if(listener.exitAlterGenericOptionElem) { + listener.exitAlterGenericOptionElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlter_generic_option_elem) { - return visitor.visitAlter_generic_option_elem(this); + if (visitor.visitAlterGenericOptionElem) { + return visitor.visitAlterGenericOptionElem(this); } else { return visitor.visitChildren(this); } @@ -65109,7 +64656,7 @@ export class Alter_generic_option_elemContext extends antlr.ParserRuleContext { } -export class Generic_option_elemContext extends antlr.ParserRuleContext { +export class GenericOptionElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65120,21 +64667,21 @@ export class Generic_option_elemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, StringConstContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_generic_option_elem; + return PostgreSqlParser.RULE_genericOptionElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterGeneric_option_elem) { - listener.enterGeneric_option_elem(this); + if(listener.enterGenericOptionElem) { + listener.enterGenericOptionElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitGeneric_option_elem) { - listener.exitGeneric_option_elem(this); + if(listener.exitGenericOptionElem) { + listener.exitGenericOptionElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitGeneric_option_elem) { - return visitor.visitGeneric_option_elem(this); + if (visitor.visitGenericOptionElem) { + return visitor.visitGenericOptionElem(this); } else { return visitor.visitChildren(this); } @@ -65170,8 +64717,8 @@ export class CreateForeignServerStmtContext extends antlr.ParserRuleContext { public KW_WRAPPER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_WRAPPER, 0)!; } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } public KW_TYPE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TYPE, 0); @@ -65179,11 +64726,11 @@ export class CreateForeignServerStmtContext extends antlr.ParserRuleContext { public stringConst(): StringConstContext | null { return this.getRuleContext(0, StringConstContext); } - public foreign_server_version(): Foreign_server_versionContext | null { - return this.getRuleContext(0, Foreign_server_versionContext); + public foreignServerVersion(): ForeignServerVersionContext | null { + return this.getRuleContext(0, ForeignServerVersionContext); } - public create_generic_options(): Create_generic_optionsContext | null { - return this.getRuleContext(0, Create_generic_optionsContext); + public createGenericOptions(): CreateGenericOptionsContext | null { + return this.getRuleContext(0, CreateGenericOptionsContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_createForeignServerStmt; @@ -65208,7 +64755,7 @@ export class CreateForeignServerStmtContext extends antlr.ParserRuleContext { } -export class Foreign_server_versionContext extends antlr.ParserRuleContext { +export class ForeignServerVersionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65222,21 +64769,21 @@ export class Foreign_server_versionContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NULL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_foreign_server_version; + return PostgreSqlParser.RULE_foreignServerVersion; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterForeign_server_version) { - listener.enterForeign_server_version(this); + if(listener.enterForeignServerVersion) { + listener.enterForeignServerVersion(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitForeign_server_version) { - listener.exitForeign_server_version(this); + if(listener.exitForeignServerVersion) { + listener.exitForeignServerVersion(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitForeign_server_version) { - return visitor.visitForeign_server_version(this); + if (visitor.visitForeignServerVersion) { + return visitor.visitForeignServerVersion(this); } else { return visitor.visitChildren(this); } @@ -65257,11 +64804,11 @@ export class AlterForeignServerStmtContext extends antlr.ParserRuleContext { public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } - public alter_generic_options(): Alter_generic_optionsContext | null { - return this.getRuleContext(0, Alter_generic_optionsContext); + public alterGenericOptions(): AlterGenericOptionsContext | null { + return this.getRuleContext(0, AlterGenericOptionsContext); } - public foreign_server_version(): Foreign_server_versionContext | null { - return this.getRuleContext(0, Foreign_server_versionContext); + public foreignServerVersion(): ForeignServerVersionContext | null { + return this.getRuleContext(0, ForeignServerVersionContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_alterForeignServerStmt; @@ -65311,8 +64858,8 @@ export class CreateForeignTableContext extends CreateForeignTableStmtContext { public KW_TABLE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TABLE, 0)!; } - public table_name_create(): Table_name_createContext { - return this.getRuleContext(0, Table_name_createContext)!; + public tableNameCreate(): TableNameCreateContext { + return this.getRuleContext(0, TableNameCreateContext)!; } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; @@ -65326,8 +64873,8 @@ export class CreateForeignTableContext extends CreateForeignTableStmtContext { public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } public tableElementList(): TableElementListContext | null { return this.getRuleContext(0, TableElementListContext); @@ -65335,8 +64882,8 @@ export class CreateForeignTableContext extends CreateForeignTableStmtContext { public optInherit(): OptInheritContext | null { return this.getRuleContext(0, OptInheritContext); } - public create_generic_options(): Create_generic_optionsContext | null { - return this.getRuleContext(0, Create_generic_optionsContext); + public createGenericOptions(): CreateGenericOptionsContext | null { + return this.getRuleContext(0, CreateGenericOptionsContext); } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterCreateForeignTable) { @@ -65370,8 +64917,8 @@ export class CreatePartitionForeignTableContext extends CreateForeignTableStmtCo public KW_TABLE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TABLE, 0)!; } - public table_name_create(): Table_name_createContext { - return this.getRuleContext(0, Table_name_createContext)!; + public tableNameCreate(): TableNameCreateContext { + return this.getRuleContext(0, TableNameCreateContext)!; } public KW_PARTITION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_PARTITION, 0)!; @@ -65379,8 +64926,8 @@ export class CreatePartitionForeignTableContext extends CreateForeignTableStmtCo public KW_OF(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_OF, 0)!; } - public table_name(): Table_nameContext { - return this.getRuleContext(0, Table_nameContext)!; + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext)!; } public partitionBoundSpec(): PartitionBoundSpecContext { return this.getRuleContext(0, PartitionBoundSpecContext)!; @@ -65391,14 +64938,14 @@ export class CreatePartitionForeignTableContext extends CreateForeignTableStmtCo public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } public optTypedTableElEmentList(): OptTypedTableElEmentListContext | null { return this.getRuleContext(0, OptTypedTableElEmentListContext); } - public create_generic_options(): Create_generic_optionsContext | null { - return this.getRuleContext(0, Create_generic_optionsContext); + public createGenericOptions(): CreateGenericOptionsContext | null { + return this.getRuleContext(0, CreateGenericOptionsContext); } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterCreatePartitionForeignTable) { @@ -65433,8 +64980,8 @@ export class ImportForeignSchemaStmtContext extends antlr.ParserRuleContext { public KW_SCHEMA(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0)!; } - public schema_name(): Schema_nameContext { - return this.getRuleContext(0, Schema_nameContext)!; + public schemaName(): SchemaNameContext { + return this.getRuleContext(0, SchemaNameContext)!; } public KW_FROM(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FROM, 0)!; @@ -65457,14 +65004,14 @@ export class ImportForeignSchemaStmtContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public relation_expr_list(): Relation_expr_listContext | null { - return this.getRuleContext(0, Relation_expr_listContext); + public relationExprList(): RelationExprListContext | null { + return this.getRuleContext(0, RelationExprListContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } - public create_generic_options(): Create_generic_optionsContext | null { - return this.getRuleContext(0, Create_generic_optionsContext); + public createGenericOptions(): CreateGenericOptionsContext | null { + return this.getRuleContext(0, CreateGenericOptionsContext); } public KW_LIMIT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LIMIT, 0); @@ -65529,11 +65076,11 @@ export class CreateUserMappingStmtContext extends antlr.ParserRuleContext { public roleSpec(): RoleSpecContext | null { return this.getRuleContext(0, RoleSpecContext); } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } - public create_generic_options(): Create_generic_optionsContext | null { - return this.getRuleContext(0, Create_generic_optionsContext); + public createGenericOptions(): CreateGenericOptionsContext | null { + return this.getRuleContext(0, CreateGenericOptionsContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_createUserMappingStmt; @@ -65586,8 +65133,8 @@ export class AlterUserMappingStmtContext extends antlr.ParserRuleContext { public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } - public alter_generic_options(): Alter_generic_optionsContext { - return this.getRuleContext(0, Alter_generic_optionsContext)!; + public alterGenericOptions(): AlterGenericOptionsContext { + return this.getRuleContext(0, AlterGenericOptionsContext)!; } public roleSpec(): RoleSpecContext | null { return this.getRuleContext(0, RoleSpecContext); @@ -65631,8 +65178,8 @@ export class CreatePolicyStmtContext extends antlr.ParserRuleContext { public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; } - public qualified_name(): Qualified_nameContext { - return this.getRuleContext(0, Qualified_nameContext)!; + public qualifiedName(): QualifiedNameContext { + return this.getRuleContext(0, QualifiedNameContext)!; } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); @@ -65643,8 +65190,8 @@ export class CreatePolicyStmtContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); } - public role_list(): Role_listContext | null { - return this.getRuleContext(0, Role_listContext); + public roleList(): RoleListContext | null { + return this.getRuleContext(0, RoleListContext); } public rowSecurityOptionalExpr(): RowSecurityOptionalExprContext | null { return this.getRuleContext(0, RowSecurityOptionalExprContext); @@ -65715,14 +65262,14 @@ export class AlterPolicyStmtContext extends antlr.ParserRuleContext { public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; } - public qualified_name(): Qualified_nameContext { - return this.getRuleContext(0, Qualified_nameContext)!; + public qualifiedName(): QualifiedNameContext { + return this.getRuleContext(0, QualifiedNameContext)!; } public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); } - public role_list(): Role_listContext | null { - return this.getRuleContext(0, Role_listContext); + public roleList(): RoleListContext | null { + return this.getRuleContext(0, RoleListContext); } public rowSecurityOptionalExpr(): RowSecurityOptionalExprContext | null { return this.getRuleContext(0, RowSecurityOptionalExprContext); @@ -65763,17 +65310,17 @@ export class AlterProcedureStmtContext extends antlr.ParserRuleContext { public KW_PROCEDURE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0)!; } - public procedure_name(): Procedure_nameContext { - return this.getRuleContext(0, Procedure_nameContext)!; + public procedureName(): ProcedureNameContext { + return this.getRuleContext(0, ProcedureNameContext)!; } - public procedure_action(): Procedure_actionContext[]; - public procedure_action(i: number): Procedure_actionContext | null; - public procedure_action(i?: number): Procedure_actionContext[] | Procedure_actionContext | null { + public procedureAction(): ProcedureActionContext[]; + public procedureAction(i: number): ProcedureActionContext | null; + public procedureAction(i?: number): ProcedureActionContext[] | ProcedureActionContext | null { if (i === undefined) { - return this.getRuleContexts(Procedure_actionContext); + return this.getRuleContexts(ProcedureActionContext); } - return this.getRuleContext(i, Procedure_actionContext); + return this.getRuleContext(i, ProcedureActionContext); } public KW_RENAME(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_RENAME, 0); @@ -65781,8 +65328,8 @@ export class AlterProcedureStmtContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); } - public procedure_name_create(): Procedure_name_createContext | null { - return this.getRuleContext(0, Procedure_name_createContext); + public procedureNameCreate(): ProcedureNameCreateContext | null { + return this.getRuleContext(0, ProcedureNameCreateContext); } public KW_OWNER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OWNER, 0); @@ -65796,8 +65343,8 @@ export class AlterProcedureStmtContext extends antlr.ParserRuleContext { public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); } - public schema_name_create(): Schema_name_createContext | null { - return this.getRuleContext(0, Schema_name_createContext); + public schemaNameCreate(): SchemaNameCreateContext | null { + return this.getRuleContext(0, SchemaNameCreateContext); } public KW_DEPENDS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEPENDS, 0); @@ -65811,8 +65358,8 @@ export class AlterProcedureStmtContext extends antlr.ParserRuleContext { public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); } - public func_args(): Func_argsContext | null { - return this.getRuleContext(0, Func_argsContext); + public funcArgs(): FuncArgsContext | null { + return this.getRuleContext(0, FuncArgsContext); } public KW_RESTRICT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_RESTRICT, 0); @@ -65843,7 +65390,7 @@ export class AlterProcedureStmtContext extends antlr.ParserRuleContext { } -export class Procedure_actionContext extends antlr.ParserRuleContext { +export class ProcedureActionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -65893,21 +65440,21 @@ export class Procedure_actionContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ALL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_procedure_action; + return PostgreSqlParser.RULE_procedureAction; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterProcedure_action) { - listener.enterProcedure_action(this); + if(listener.enterProcedureAction) { + listener.enterProcedureAction(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitProcedure_action) { - listener.exitProcedure_action(this); + if(listener.exitProcedureAction) { + listener.exitProcedureAction(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitProcedure_action) { - return visitor.visitProcedure_action(this); + if (visitor.visitProcedureAction) { + return visitor.visitProcedureAction(this); } else { return visitor.visitChildren(this); } @@ -66018,8 +65565,8 @@ export class CreateAccessMethodStmtContext extends antlr.ParserRuleContext { public KW_HANDLER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_HANDLER, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } public KW_INDEX(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INDEX, 0); @@ -66078,14 +65625,14 @@ export class CreateTrigStmtContext extends antlr.ParserRuleContext { public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; } - public table_name(): Table_nameContext { - return this.getRuleContext(0, Table_nameContext)!; + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext)!; } public KW_EXECUTE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_EXECUTE, 0)!; } - public function_or_procedure(): Function_or_procedureContext { - return this.getRuleContext(0, Function_or_procedureContext)!; + public functionOrProcedure(): FunctionOrProcedureContext { + return this.getRuleContext(0, FunctionOrProcedureContext)!; } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; @@ -66096,8 +65643,8 @@ export class CreateTrigStmtContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } - public opt_or_replace(): Opt_or_replaceContext | null { - return this.getRuleContext(0, Opt_or_replaceContext); + public orReplaceOpt(): OrReplaceOptContext | null { + return this.getRuleContext(0, OrReplaceOptContext); } public KW_REFERENCING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_REFERENCING, 0); @@ -66165,8 +65712,8 @@ export class CreateTrigStmtContext extends antlr.ParserRuleContext { public KW_FROM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FROM, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public constraintAttributeElem(): ConstraintAttributeElemContext[]; public constraintAttributeElem(i: number): ConstraintAttributeElemContext | null; @@ -66300,8 +65847,8 @@ export class TriggerOneEventContext extends antlr.ParserRuleContext { public KW_OF(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OF, 0); } - public column_list(): Column_listContext | null { - return this.getRuleContext(0, Column_listContext); + public columnList(): ColumnListContext | null { + return this.getRuleContext(0, ColumnListContext); } public KW_TRUNCATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TRUNCATE, 0); @@ -66368,38 +65915,38 @@ export class TriggerWhenContext extends antlr.ParserRuleContext { } -export class Function_or_procedureContext extends antlr.ParserRuleContext { +export class FunctionOrProcedureContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_name(): Function_nameContext | null { - return this.getRuleContext(0, Function_nameContext); + public functionName(): FunctionNameContext | null { + return this.getRuleContext(0, FunctionNameContext); } public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_name(): Procedure_nameContext | null { - return this.getRuleContext(0, Procedure_nameContext); + public procedureName(): ProcedureNameContext | null { + return this.getRuleContext(0, ProcedureNameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_function_or_procedure; + return PostgreSqlParser.RULE_functionOrProcedure; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunction_or_procedure) { - listener.enterFunction_or_procedure(this); + if(listener.enterFunctionOrProcedure) { + listener.enterFunctionOrProcedure(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunction_or_procedure) { - listener.exitFunction_or_procedure(this); + if(listener.exitFunctionOrProcedure) { + listener.exitFunctionOrProcedure(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunction_or_procedure) { - return visitor.visitFunction_or_procedure(this); + if (visitor.visitFunctionOrProcedure) { + return visitor.visitFunctionOrProcedure(this); } else { return visitor.visitChildren(this); } @@ -66567,8 +66114,8 @@ export class CreateEventTrigStmtContext extends antlr.ParserRuleContext { public KW_EXECUTE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_EXECUTE, 0)!; } - public function_or_procedure(): Function_or_procedureContext { - return this.getRuleContext(0, Function_or_procedureContext)!; + public functionOrProcedure(): FunctionOrProcedureContext { + return this.getRuleContext(0, FunctionOrProcedureContext)!; } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; @@ -66579,14 +66126,14 @@ export class CreateEventTrigStmtContext extends antlr.ParserRuleContext { public KW_WHEN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WHEN, 0); } - public event_trigger_when_item(): Event_trigger_when_itemContext[]; - public event_trigger_when_item(i: number): Event_trigger_when_itemContext | null; - public event_trigger_when_item(i?: number): Event_trigger_when_itemContext[] | Event_trigger_when_itemContext | null { + public eventTriggerWhenItem(): EventTriggerWhenItemContext[]; + public eventTriggerWhenItem(i: number): EventTriggerWhenItemContext | null; + public eventTriggerWhenItem(i?: number): EventTriggerWhenItemContext[] | EventTriggerWhenItemContext | null { if (i === undefined) { - return this.getRuleContexts(Event_trigger_when_itemContext); + return this.getRuleContexts(EventTriggerWhenItemContext); } - return this.getRuleContext(i, Event_trigger_when_itemContext); + return this.getRuleContext(i, EventTriggerWhenItemContext); } public KW_AND(): antlr.TerminalNode[]; public KW_AND(i: number): antlr.TerminalNode | null; @@ -66620,7 +66167,7 @@ export class CreateEventTrigStmtContext extends antlr.ParserRuleContext { } -export class Event_trigger_when_itemContext extends antlr.ParserRuleContext { +export class EventTriggerWhenItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66639,31 +66186,31 @@ export class Event_trigger_when_itemContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } - public notify_payload(): Notify_payloadContext[]; - public notify_payload(i: number): Notify_payloadContext | null; - public notify_payload(i?: number): Notify_payloadContext[] | Notify_payloadContext | null { + public notifyPayload(): NotifyPayloadContext[]; + public notifyPayload(i: number): NotifyPayloadContext | null; + public notifyPayload(i?: number): NotifyPayloadContext[] | NotifyPayloadContext | null { if (i === undefined) { - return this.getRuleContexts(Notify_payloadContext); + return this.getRuleContexts(NotifyPayloadContext); } - return this.getRuleContext(i, Notify_payloadContext); + return this.getRuleContext(i, NotifyPayloadContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_event_trigger_when_item; + return PostgreSqlParser.RULE_eventTriggerWhenItem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterEvent_trigger_when_item) { - listener.enterEvent_trigger_when_item(this); + if(listener.enterEventTriggerWhenItem) { + listener.enterEventTriggerWhenItem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitEvent_trigger_when_item) { - listener.exitEvent_trigger_when_item(this); + if(listener.exitEventTriggerWhenItem) { + listener.exitEventTriggerWhenItem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitEvent_trigger_when_item) { - return visitor.visitEvent_trigger_when_item(this); + if (visitor.visitEventTriggerWhenItem) { + return visitor.visitEventTriggerWhenItem(this); } else { return visitor.visitChildren(this); } @@ -66732,8 +66279,8 @@ export class CreateAssertionStmtContext extends antlr.ParserRuleContext { public KW_ASSERTION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ASSERTION, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } public KW_CHECK(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CHECK, 0)!; @@ -66789,29 +66336,29 @@ export class DefineStmtContext extends antlr.ParserRuleContext { public KW_AGGREGATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AGGREGATE, 0); } - public function_name(): Function_nameContext | null { - return this.getRuleContext(0, Function_nameContext); + public functionName(): FunctionNameContext | null { + return this.getRuleContext(0, FunctionNameContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public old_aggregate_elem(): Old_aggregate_elemContext[]; - public old_aggregate_elem(i: number): Old_aggregate_elemContext | null; - public old_aggregate_elem(i?: number): Old_aggregate_elemContext[] | Old_aggregate_elemContext | null { + public oldAggregateElem(): OldAggregateElemContext[]; + public oldAggregateElem(i: number): OldAggregateElemContext | null; + public oldAggregateElem(i?: number): OldAggregateElemContext[] | OldAggregateElemContext | null { if (i === undefined) { - return this.getRuleContexts(Old_aggregate_elemContext); + return this.getRuleContexts(OldAggregateElemContext); } - return this.getRuleContext(i, Old_aggregate_elemContext); + return this.getRuleContext(i, OldAggregateElemContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } - public opt_or_replace(): Opt_or_replaceContext | null { - return this.getRuleContext(0, Opt_or_replaceContext); + public orReplaceOpt(): OrReplaceOptContext | null { + return this.getRuleContext(0, OrReplaceOptContext); } - public aggregate_args(): Aggregate_argsContext | null { - return this.getRuleContext(0, Aggregate_argsContext); + public aggregateArgs(): AggregateArgsContext | null { + return this.getRuleContext(0, AggregateArgsContext); } public definition(): DefinitionContext | null { return this.getRuleContext(0, DefinitionContext); @@ -66828,20 +66375,20 @@ export class DefineStmtContext extends antlr.ParserRuleContext { public KW_OPERATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0); } - public any_operator(): Any_operatorContext | null { - return this.getRuleContext(0, Any_operatorContext); + public anyOperator(): AnyOperatorContext | null { + return this.getRuleContext(0, AnyOperatorContext); } public KW_TYPE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TYPE, 0); } - public any_name(): Any_nameContext[]; - public any_name(i: number): Any_nameContext | null; - public any_name(i?: number): Any_nameContext[] | Any_nameContext | null { + public anyName(): AnyNameContext[]; + public anyName(i: number): AnyNameContext | null; + public anyName(i?: number): AnyNameContext[] | AnyNameContext | null { if (i === undefined) { - return this.getRuleContexts(Any_nameContext); + return this.getRuleContexts(AnyNameContext); } - return this.getRuleContext(i, Any_nameContext); + return this.getRuleContext(i, AnyNameContext); } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); @@ -66855,14 +66402,14 @@ export class DefineStmtContext extends antlr.ParserRuleContext { public stringConst(): StringConstContext | null { return this.getRuleContext(0, StringConstContext); } - public notify_payload(): Notify_payloadContext[]; - public notify_payload(i: number): Notify_payloadContext | null; - public notify_payload(i?: number): Notify_payloadContext[] | Notify_payloadContext | null { + public notifyPayload(): NotifyPayloadContext[]; + public notifyPayload(i: number): NotifyPayloadContext | null; + public notifyPayload(i?: number): NotifyPayloadContext[] | NotifyPayloadContext | null { if (i === undefined) { - return this.getRuleContexts(Notify_payloadContext); + return this.getRuleContexts(NotifyPayloadContext); } - return this.getRuleContext(i, Notify_payloadContext); + return this.getRuleContext(i, NotifyPayloadContext); } public KW_RANGE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_RANGE, 0); @@ -66888,8 +66435,8 @@ export class DefineStmtContext extends antlr.ParserRuleContext { public KW_COLLATION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_COLLATION, 0); } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } public KW_FROM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FROM, 0); @@ -66924,14 +66471,14 @@ export class DefinitionContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public def_elem(): Def_elemContext[]; - public def_elem(i: number): Def_elemContext | null; - public def_elem(i?: number): Def_elemContext[] | Def_elemContext | null { + public defElem(): DefElemContext[]; + public defElem(i: number): DefElemContext | null; + public defElem(i?: number): DefElemContext[] | DefElemContext | null { if (i === undefined) { - return this.getRuleContexts(Def_elemContext); + return this.getRuleContexts(DefElemContext); } - return this.getRuleContext(i, Def_elemContext); + return this.getRuleContext(i, DefElemContext); } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -66968,7 +66515,7 @@ export class DefinitionContext extends antlr.ParserRuleContext { } -export class Def_elemContext extends antlr.ParserRuleContext { +export class DefElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -66978,25 +66525,25 @@ export class Def_elemContext extends antlr.ParserRuleContext { public EQUAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.EQUAL, 0); } - public def_arg(): Def_argContext | null { - return this.getRuleContext(0, Def_argContext); + public defArg(): DefArgContext | null { + return this.getRuleContext(0, DefArgContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_def_elem; + return PostgreSqlParser.RULE_defElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDef_elem) { - listener.enterDef_elem(this); + if(listener.enterDefElem) { + listener.enterDefElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDef_elem) { - listener.exitDef_elem(this); + if(listener.exitDefElem) { + listener.exitDefElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDef_elem) { - return visitor.visitDef_elem(this); + if (visitor.visitDefElem) { + return visitor.visitDefElem(this); } else { return visitor.visitChildren(this); } @@ -67004,18 +66551,18 @@ export class Def_elemContext extends antlr.ParserRuleContext { } -export class Def_argContext extends antlr.ParserRuleContext { +export class DefArgContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public func_type(): Func_typeContext | null { - return this.getRuleContext(0, Func_typeContext); + public funcType(): FuncTypeContext | null { + return this.getRuleContext(0, FuncTypeContext); } - public reserved_keyword(): Reserved_keywordContext | null { - return this.getRuleContext(0, Reserved_keywordContext); + public reservedKeyword(): ReservedKeywordContext | null { + return this.getRuleContext(0, ReservedKeywordContext); } - public qual_all_op(): Qual_all_opContext | null { - return this.getRuleContext(0, Qual_all_opContext); + public qualAllOp(): QualAllOpContext | null { + return this.getRuleContext(0, QualAllOpContext); } public numericOnly(): NumericOnlyContext | null { return this.getRuleContext(0, NumericOnlyContext); @@ -67027,21 +66574,21 @@ export class Def_argContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NONE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_def_arg; + return PostgreSqlParser.RULE_defArg; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDef_arg) { - listener.enterDef_arg(this); + if(listener.enterDefArg) { + listener.enterDefArg(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDef_arg) { - listener.exitDef_arg(this); + if(listener.exitDefArg) { + listener.exitDefArg(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDef_arg) { - return visitor.visitDef_arg(this); + if (visitor.visitDefArg) { + return visitor.visitDefArg(this); } else { return visitor.visitChildren(this); } @@ -67049,7 +66596,7 @@ export class Def_argContext extends antlr.ParserRuleContext { } -export class Old_aggregate_elemContext extends antlr.ParserRuleContext { +export class OldAggregateElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67059,25 +66606,25 @@ export class Old_aggregate_elemContext extends antlr.ParserRuleContext { public EQUAL(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.EQUAL, 0)!; } - public def_arg(): Def_argContext { - return this.getRuleContext(0, Def_argContext)!; + public defArg(): DefArgContext { + return this.getRuleContext(0, DefArgContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_old_aggregate_elem; + return PostgreSqlParser.RULE_oldAggregateElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOld_aggregate_elem) { - listener.enterOld_aggregate_elem(this); + if(listener.enterOldAggregateElem) { + listener.enterOldAggregateElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOld_aggregate_elem) { - listener.exitOld_aggregate_elem(this); + if(listener.exitOldAggregateElem) { + listener.exitOldAggregateElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOld_aggregate_elem) { - return visitor.visitOld_aggregate_elem(this); + if (visitor.visitOldAggregateElem) { + return visitor.visitOldAggregateElem(this); } else { return visitor.visitChildren(this); } @@ -67095,8 +66642,8 @@ export class AlterEnumStmtContext extends antlr.ParserRuleContext { public KW_TYPE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TYPE, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } public KW_ADD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADD, 0); @@ -67113,8 +66660,8 @@ export class AlterEnumStmtContext extends antlr.ParserRuleContext { return this.getRuleContext(i, StringConstContext); } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } public KW_BEFORE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BEFORE, 0); @@ -67151,7 +66698,7 @@ export class AlterEnumStmtContext extends antlr.ParserRuleContext { } -export class Opt_if_not_existsContext extends antlr.ParserRuleContext { +export class IfNotExistsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67165,21 +66712,21 @@ export class Opt_if_not_existsContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_EXISTS, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_if_not_exists; + return PostgreSqlParser.RULE_ifNotExists; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_if_not_exists) { - listener.enterOpt_if_not_exists(this); + if(listener.enterIfNotExists) { + listener.enterIfNotExists(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_if_not_exists) { - listener.exitOpt_if_not_exists(this); + if(listener.exitIfNotExists) { + listener.exitIfNotExists(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_if_not_exists) { - return visitor.visitOpt_if_not_exists(this); + if (visitor.visitIfNotExists) { + return visitor.visitIfNotExists(this); } else { return visitor.visitChildren(this); } @@ -67200,14 +66747,14 @@ export class CreateOperatorClassStmtContext extends antlr.ParserRuleContext { public KW_CLASS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CLASS, 0)!; } - public any_name(): Any_nameContext[]; - public any_name(i: number): Any_nameContext | null; - public any_name(i?: number): Any_nameContext[] | Any_nameContext | null { + public anyName(): AnyNameContext[]; + public anyName(i: number): AnyNameContext | null; + public anyName(i?: number): AnyNameContext[] | AnyNameContext | null { if (i === undefined) { - return this.getRuleContexts(Any_nameContext); + return this.getRuleContexts(AnyNameContext); } - return this.getRuleContext(i, Any_nameContext); + return this.getRuleContext(i, AnyNameContext); } public KW_FOR(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FOR, 0)!; @@ -67218,8 +66765,8 @@ export class CreateOperatorClassStmtContext extends antlr.ParserRuleContext { public typename(): TypenameContext { return this.getRuleContext(0, TypenameContext)!; } - public table_access_method_clause(): Table_access_method_clauseContext { - return this.getRuleContext(0, Table_access_method_clauseContext)!; + public tableAccessMethodClause(): TableAccessMethodClauseContext { + return this.getRuleContext(0, TableAccessMethodClauseContext)!; } public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; @@ -67281,8 +66828,8 @@ export class OpClassItemContext extends antlr.ParserRuleContext { public Integral(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.Integral, 0); } - public any_operator(): Any_operatorContext | null { - return this.getRuleContext(0, Any_operatorContext); + public anyOperator(): AnyOperatorContext | null { + return this.getRuleContext(0, AnyOperatorContext); } public operatorArgTypes(): OperatorArgTypesContext | null { return this.getRuleContext(0, OperatorArgTypesContext); @@ -67302,8 +66849,8 @@ export class OpClassItemContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BY, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); @@ -67311,8 +66858,8 @@ export class OpClassItemContext extends antlr.ParserRuleContext { public functionWithArgTypes(): FunctionWithArgTypesContext | null { return this.getRuleContext(0, FunctionWithArgTypesContext); } - public prep_type_clause(): Prep_type_clauseContext | null { - return this.getRuleContext(0, Prep_type_clauseContext); + public prepTypeClause(): PrepTypeClauseContext | null { + return this.getRuleContext(0, PrepTypeClauseContext); } public KW_STORAGE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_STORAGE, 0); @@ -67356,11 +66903,11 @@ export class CreateOperatorFamilyStmtContext extends antlr.ParserRuleContext { public KW_FAMILY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FAMILY, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } - public table_access_method_clause(): Table_access_method_clauseContext { - return this.getRuleContext(0, Table_access_method_clauseContext)!; + public tableAccessMethodClause(): TableAccessMethodClauseContext { + return this.getRuleContext(0, TableAccessMethodClauseContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_createOperatorFamilyStmt; @@ -67398,11 +66945,11 @@ export class AlterOperatorFamilyStmtContext extends antlr.ParserRuleContext { public KW_FAMILY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FAMILY, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } - public table_access_method_clause(): Table_access_method_clauseContext { - return this.getRuleContext(0, Table_access_method_clauseContext)!; + public tableAccessMethodClause(): TableAccessMethodClauseContext { + return this.getRuleContext(0, TableAccessMethodClauseContext)!; } public KW_ADD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADD, 0); @@ -67467,8 +67014,8 @@ export class OpClassDropContext extends antlr.ParserRuleContext { public Integral(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.Integral, 0)!; } - public prep_type_clause(): Prep_type_clauseContext { - return this.getRuleContext(0, Prep_type_clauseContext)!; + public prepTypeClause(): PrepTypeClauseContext { + return this.getRuleContext(0, PrepTypeClauseContext)!; } public KW_OPERATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0); @@ -67512,8 +67059,8 @@ export class ReassignOwnedStmtContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_BY, 0)!; } - public role_list(): Role_listContext { - return this.getRuleContext(0, Role_listContext)!; + public roleList(): RoleListContext { + return this.getRuleContext(0, RoleListContext)!; } public KW_TO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TO, 0)!; @@ -67551,8 +67098,8 @@ export class DropStmtContext extends antlr.ParserRuleContext { public KW_DROP(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DROP, 0)!; } - public name_list(): Name_listContext | null { - return this.getRuleContext(0, Name_listContext); + public nameList(): NameListContext | null { + return this.getRuleContext(0, NameListContext); } public KW_SEQUENCE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SEQUENCE, 0); @@ -67620,11 +67167,11 @@ export class DropStmtContext extends antlr.ParserRuleContext { public KW_CONFIGURATION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONFIGURATION, 0); } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } public KW_PROCEDURAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURAL, 0); @@ -67632,14 +67179,14 @@ export class DropStmtContext extends antlr.ParserRuleContext { public KW_VIEW(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VIEW, 0); } - public view_name(): View_nameContext[]; - public view_name(i: number): View_nameContext | null; - public view_name(i?: number): View_nameContext[] | View_nameContext | null { + public viewName(): ViewNameContext[]; + public viewName(i: number): ViewNameContext | null; + public viewName(i?: number): ViewNameContext[] | ViewNameContext | null { if (i === undefined) { - return this.getRuleContexts(View_nameContext); + return this.getRuleContexts(ViewNameContext); } - return this.getRuleContext(i, View_nameContext); + return this.getRuleContext(i, ViewNameContext); } public KW_MATERIALIZED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_MATERIALIZED, 0); @@ -67656,14 +67203,14 @@ export class DropStmtContext extends antlr.ParserRuleContext { public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public table_name_list(): Table_name_listContext | null { - return this.getRuleContext(0, Table_name_listContext); + public tableNameList(): TableNameListContext | null { + return this.getRuleContext(0, TableNameListContext); } public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); } - public schema_name_list(): Schema_name_listContext | null { - return this.getRuleContext(0, Schema_name_listContext); + public schemaNameList(): SchemaNameListContext | null { + return this.getRuleContext(0, SchemaNameListContext); } public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); @@ -67671,8 +67218,8 @@ export class DropStmtContext extends antlr.ParserRuleContext { public KW_ON(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ON, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public KW_POLICY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_POLICY, 0); @@ -67698,8 +67245,8 @@ export class DropStmtContext extends antlr.ParserRuleContext { public KW_CONCURRENTLY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONCURRENTLY, 0); } - public any_name_list(): Any_name_listContext | null { - return this.getRuleContext(0, Any_name_listContext); + public anyNameList(): AnyNameListContext | null { + return this.getRuleContext(0, AnyNameListContext); } public KW_CAST(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CAST, 0); @@ -67716,8 +67263,8 @@ export class DropStmtContext extends antlr.ParserRuleContext { public KW_OPERATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public KW_CLASS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CLASS, 0); @@ -67731,8 +67278,8 @@ export class DropStmtContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BY, 0); } - public role_list(): Role_listContext | null { - return this.getRuleContext(0, Role_listContext); + public roleList(): RoleListContext | null { + return this.getRuleContext(0, RoleListContext); } public KW_SUBSCRIPTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SUBSCRIPTION, 0); @@ -67740,8 +67287,8 @@ export class DropStmtContext extends antlr.ParserRuleContext { public KW_TABLESPACE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLESPACE, 0); } - public tablespace_name(): Tablespace_nameContext | null { - return this.getRuleContext(0, Tablespace_nameContext); + public tableSpaceName(): TableSpaceNameContext | null { + return this.getRuleContext(0, TableSpaceNameContext); } public KW_TRANSFORM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TRANSFORM, 0); @@ -67773,8 +67320,8 @@ export class DropStmtContext extends antlr.ParserRuleContext { public KW_DATABASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATABASE, 0); } - public database_name(): Database_nameContext | null { - return this.getRuleContext(0, Database_nameContext); + public databaseName(): DatabaseNameContext | null { + return this.getRuleContext(0, DatabaseNameContext); } public KW_FORCE(): antlr.TerminalNode[]; public KW_FORCE(i: number): antlr.TerminalNode | null; @@ -67811,15 +67358,15 @@ export class DropStmtContext extends antlr.ParserRuleContext { } -export class Object_type_any_nameContext extends antlr.ParserRuleContext { +export class ObjectTypeAnyNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public table_name(): Table_nameContext | null { - return this.getRuleContext(0, Table_nameContext); + public tableName(): TableNameContext | null { + return this.getRuleContext(0, TableNameContext); } public KW_FOREIGN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOREIGN, 0); @@ -67827,14 +67374,14 @@ export class Object_type_any_nameContext extends antlr.ParserRuleContext { public KW_VIEW(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VIEW, 0); } - public view_name(): View_nameContext | null { - return this.getRuleContext(0, View_nameContext); + public viewName(): ViewNameContext | null { + return this.getRuleContext(0, ViewNameContext); } public KW_MATERIALIZED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_MATERIALIZED, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public KW_INDEX(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INDEX, 0); @@ -67870,21 +67417,21 @@ export class Object_type_any_nameContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_CONFIGURATION, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_object_type_any_name; + return PostgreSqlParser.RULE_objectTypeAnyName; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterObject_type_any_name) { - listener.enterObject_type_any_name(this); + if(listener.enterObjectTypeAnyName) { + listener.enterObjectTypeAnyName(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitObject_type_any_name) { - listener.exitObject_type_any_name(this); + if(listener.exitObjectTypeAnyName) { + listener.exitObjectTypeAnyName(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitObject_type_any_name) { - return visitor.visitObject_type_any_name(this); + if (visitor.visitObjectTypeAnyName) { + return visitor.visitObjectTypeAnyName(this); } else { return visitor.visitChildren(this); } @@ -67892,7 +67439,7 @@ export class Object_type_any_nameContext extends antlr.ParserRuleContext { } -export class Object_type_nameContext extends antlr.ParserRuleContext { +export class ObjectTypeNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -67944,34 +67491,34 @@ export class Object_type_nameContext extends antlr.ParserRuleContext { public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); } - public schema_name(): Schema_nameContext | null { - return this.getRuleContext(0, Schema_nameContext); + public schemaName(): SchemaNameContext | null { + return this.getRuleContext(0, SchemaNameContext); } public KW_DATABASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATABASE, 0); } - public database_name(): Database_nameContext | null { - return this.getRuleContext(0, Database_nameContext); + public databaseName(): DatabaseNameContext | null { + return this.getRuleContext(0, DatabaseNameContext); } public optTableSpace(): OptTableSpaceContext | null { return this.getRuleContext(0, OptTableSpaceContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_object_type_name; + return PostgreSqlParser.RULE_objectTypeName; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterObject_type_name) { - listener.enterObject_type_name(this); + if(listener.enterObjectTypeName) { + listener.enterObjectTypeName(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitObject_type_name) { - listener.exitObject_type_name(this); + if(listener.exitObjectTypeName) { + listener.exitObjectTypeName(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitObject_type_name) { - return visitor.visitObject_type_name(this); + if (visitor.visitObjectTypeName) { + return visitor.visitObjectTypeName(this); } else { return visitor.visitChildren(this); } @@ -67979,18 +67526,18 @@ export class Object_type_nameContext extends antlr.ParserRuleContext { } -export class Any_name_listContext extends antlr.ParserRuleContext { +export class AnyNameListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public any_name(): Any_nameContext[]; - public any_name(i: number): Any_nameContext | null; - public any_name(i?: number): Any_nameContext[] | Any_nameContext | null { + public anyName(): AnyNameContext[]; + public anyName(i: number): AnyNameContext | null; + public anyName(i?: number): AnyNameContext[] | AnyNameContext | null { if (i === undefined) { - return this.getRuleContexts(Any_nameContext); + return this.getRuleContexts(AnyNameContext); } - return this.getRuleContext(i, Any_nameContext); + return this.getRuleContext(i, AnyNameContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -68002,21 +67549,21 @@ export class Any_name_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_any_name_list; + return PostgreSqlParser.RULE_anyNameList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAny_name_list) { - listener.enterAny_name_list(this); + if(listener.enterAnyNameList) { + listener.enterAnyNameList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAny_name_list) { - listener.exitAny_name_list(this); + if(listener.exitAnyNameList) { + listener.exitAnyNameList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAny_name_list) { - return visitor.visitAny_name_list(this); + if (visitor.visitAnyNameList) { + return visitor.visitAnyNameList(this); } else { return visitor.visitChildren(this); } @@ -68024,7 +67571,7 @@ export class Any_name_listContext extends antlr.ParserRuleContext { } -export class Any_nameContext extends antlr.ParserRuleContext { +export class AnyNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -68035,21 +67582,21 @@ export class Any_nameContext extends antlr.ParserRuleContext { return this.getRuleContext(0, AttrsContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_any_name; + return PostgreSqlParser.RULE_anyName; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAny_name) { - listener.enterAny_name(this); + if(listener.enterAnyName) { + listener.enterAnyName(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAny_name) { - listener.exitAny_name(this); + if(listener.exitAnyName) { + listener.exitAnyName(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAny_name) { - return visitor.visitAny_name(this); + if (visitor.visitAnyName) { + return visitor.visitAnyName(this); } else { return visitor.visitChildren(this); } @@ -68109,14 +67656,14 @@ export class TruncateStmtContext extends antlr.ParserRuleContext { public KW_TRUNCATE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TRUNCATE, 0)!; } - public truncate_table(): Truncate_tableContext[]; - public truncate_table(i: number): Truncate_tableContext | null; - public truncate_table(i?: number): Truncate_tableContext[] | Truncate_tableContext | null { + public truncateTable(): TruncateTableContext[]; + public truncateTable(i: number): TruncateTableContext | null; + public truncateTable(i?: number): TruncateTableContext[] | TruncateTableContext | null { if (i === undefined) { - return this.getRuleContexts(Truncate_tableContext); + return this.getRuleContexts(TruncateTableContext); } - return this.getRuleContext(i, Truncate_tableContext); + return this.getRuleContext(i, TruncateTableContext); } public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); @@ -68133,8 +67680,8 @@ export class TruncateStmtContext extends antlr.ParserRuleContext { public KW_IDENTITY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_IDENTITY, 0); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } public KW_CONTINUE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONTINUE, 0); @@ -68165,12 +67712,12 @@ export class TruncateStmtContext extends antlr.ParserRuleContext { } -export class Truncate_tableContext extends antlr.ParserRuleContext { +export class TruncateTableContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public table_name(): Table_nameContext { - return this.getRuleContext(0, Table_nameContext)!; + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext)!; } public KW_ONLY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ONLY, 0); @@ -68179,21 +67726,21 @@ export class Truncate_tableContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.STAR, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_truncate_table; + return PostgreSqlParser.RULE_truncateTable; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTruncate_table) { - listener.enterTruncate_table(this); + if(listener.enterTruncateTable) { + listener.enterTruncateTable(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTruncate_table) { - listener.exitTruncate_table(this); + if(listener.exitTruncateTable) { + listener.exitTruncateTable(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTruncate_table) { - return visitor.visitTruncate_table(this); + if (visitor.visitTruncateTable) { + return visitor.visitTruncateTable(this); } else { return visitor.visitChildren(this); } @@ -68220,11 +67767,11 @@ export class CommentStmtContext extends antlr.ParserRuleContext { public KW_IS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_IS, 0)!; } - public object_type_any_name(): Object_type_any_nameContext | null { - return this.getRuleContext(0, Object_type_any_nameContext); + public objectTypeAnyName(): ObjectTypeAnyNameContext | null { + return this.getRuleContext(0, ObjectTypeAnyNameContext); } - public object_type_name(): Object_type_nameContext | null { - return this.getRuleContext(0, Object_type_nameContext); + public objectTypeName(): ObjectTypeNameContext | null { + return this.getRuleContext(0, ObjectTypeNameContext); } public KW_COLUMN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_COLUMN, 0); @@ -68232,8 +67779,8 @@ export class CommentStmtContext extends antlr.ParserRuleContext { public DOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.DOT, 0); } - public column_name(): Column_nameContext | null { - return this.getRuleContext(0, Column_nameContext); + public columnName(): ColumnNameContext | null { + return this.getRuleContext(0, ColumnNameContext); } public typename(): TypenameContext[]; public typename(i: number): TypenameContext | null; @@ -68268,8 +67815,8 @@ export class CommentStmtContext extends antlr.ParserRuleContext { public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); @@ -68292,8 +67839,8 @@ export class CommentStmtContext extends antlr.ParserRuleContext { public KW_LANGUAGE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LANGUAGE, 0); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public KW_LARGE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LARGE, 0); @@ -68343,8 +67890,8 @@ export class CommentStmtContext extends antlr.ParserRuleContext { public KW_FAMILY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FAMILY, 0); } - public table_name(): Table_nameContext | null { - return this.getRuleContext(0, Table_nameContext); + public tableName(): TableNameContext | null { + return this.getRuleContext(0, TableNameContext); } public attrs(): AttrsContext | null { return this.getRuleContext(0, AttrsContext); @@ -68400,8 +67947,8 @@ export class SecLabelStmtContext extends antlr.ParserRuleContext { public KW_COLUMN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_COLUMN, 0); } - public column_name(): Column_nameContext | null { - return this.getRuleContext(0, Column_nameContext); + public columnName(): ColumnNameContext | null { + return this.getRuleContext(0, ColumnNameContext); } public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); @@ -68430,11 +67977,11 @@ export class SecLabelStmtContext extends antlr.ParserRuleContext { public routineWithArgTypes(): RoutineWithArgTypesContext | null { return this.getRuleContext(0, RoutineWithArgTypesContext); } - public object_type_any_name(): Object_type_any_nameContext | null { - return this.getRuleContext(0, Object_type_any_nameContext); + public objectTypeAnyName(): ObjectTypeAnyNameContext | null { + return this.getRuleContext(0, ObjectTypeAnyNameContext); } - public object_type_name(): Object_type_nameContext | null { - return this.getRuleContext(0, Object_type_nameContext); + public objectTypeName(): ObjectTypeNameContext | null { + return this.getRuleContext(0, ObjectTypeNameContext); } public stringConst(): StringConstContext | null { return this.getRuleContext(0, StringConstContext); @@ -68520,8 +68067,8 @@ export class Fetch_argsContext extends antlr.ParserRuleContext { public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } - public from_in(): From_inContext | null { - return this.getRuleContext(0, From_inContext); + public fromIn(): FromInContext | null { + return this.getRuleContext(0, FromInContext); } public KW_NEXT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NEXT, 0); @@ -68576,7 +68123,7 @@ export class Fetch_argsContext extends antlr.ParserRuleContext { } -export class From_inContext extends antlr.ParserRuleContext { +export class FromInContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -68587,21 +68134,21 @@ export class From_inContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_IN, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_from_in; + return PostgreSqlParser.RULE_fromIn; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFrom_in) { - listener.enterFrom_in(this); + if(listener.enterFromIn) { + listener.enterFromIn(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFrom_in) { - listener.exitFrom_in(this); + if(listener.exitFromIn) { + listener.exitFromIn(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFrom_in) { - return visitor.visitFrom_in(this); + if (visitor.visitFromIn) { + return visitor.visitFromIn(this); } else { return visitor.visitChildren(this); } @@ -68628,14 +68175,14 @@ export class GrantStmtContext extends antlr.ParserRuleContext { public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; } - public privilege_target(): Privilege_targetContext { - return this.getRuleContext(0, Privilege_targetContext)!; + public privilegeTarget(): PrivilegeTargetContext { + return this.getRuleContext(0, PrivilegeTargetContext)!; } public KW_TO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TO, 0)!; } - public grantee_list(): Grantee_listContext { - return this.getRuleContext(0, Grantee_listContext)!; + public granteeList(): GranteeListContext { + return this.getRuleContext(0, GranteeListContext)!; } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); @@ -68679,14 +68226,14 @@ export class RevokeStmtContext extends antlr.ParserRuleContext { public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; } - public privilege_target(): Privilege_targetContext { - return this.getRuleContext(0, Privilege_targetContext)!; + public privilegeTarget(): PrivilegeTargetContext { + return this.getRuleContext(0, PrivilegeTargetContext)!; } public KW_FROM(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FROM, 0)!; } - public grantee_list(): Grantee_listContext { - return this.getRuleContext(0, Grantee_listContext)!; + public granteeList(): GranteeListContext { + return this.getRuleContext(0, GranteeListContext)!; } public KW_GRANT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_GRANT, 0); @@ -68697,8 +68244,8 @@ export class RevokeStmtContext extends antlr.ParserRuleContext { public KW_FOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOR, 0); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_revokeStmt; @@ -68751,8 +68298,8 @@ export class PrivilegesContext extends antlr.ParserRuleContext { public KW_PRIVILEGES(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PRIVILEGES, 0); } - public opt_column_list(): Opt_column_listContext | null { - return this.getRuleContext(0, Opt_column_listContext); + public optColumnList(): OptColumnListContext | null { + return this.getRuleContext(0, OptColumnListContext); } public beforePrivilegeSelect(): BeforePrivilegeSelectContext[]; public beforePrivilegeSelect(i: number): BeforePrivilegeSelectContext | null; @@ -68868,8 +68415,8 @@ export class PrivilegeContext extends antlr.ParserRuleContext { public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); } - public opt_column_list(): Opt_column_listContext | null { - return this.getRuleContext(0, Opt_column_listContext); + public optColumnList(): OptColumnListContext | null { + return this.getRuleContext(0, OptColumnListContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_privilege; @@ -68894,24 +68441,24 @@ export class PrivilegeContext extends antlr.ParserRuleContext { } -export class Privilege_targetContext extends antlr.ParserRuleContext { +export class PrivilegeTargetContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public table_name_list(): Table_name_listContext | null { - return this.getRuleContext(0, Table_name_listContext); + public tableNameList(): TableNameListContext | null { + return this.getRuleContext(0, TableNameListContext); } - public qualified_name_list(): Qualified_name_listContext | null { - return this.getRuleContext(0, Qualified_name_listContext); + public qualifiedNameList(): QualifiedNameListContext | null { + return this.getRuleContext(0, QualifiedNameListContext); } public KW_SEQUENCE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SEQUENCE, 0); } - public name_list(): Name_listContext | null { - return this.getRuleContext(0, Name_listContext); + public nameList(): NameListContext | null { + return this.getRuleContext(0, NameListContext); } public KW_FOREIGN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOREIGN, 0); @@ -68949,11 +68496,11 @@ export class Privilege_targetContext extends antlr.ParserRuleContext { public KW_DATABASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATABASE, 0); } - public database_nameList(): Database_nameListContext | null { - return this.getRuleContext(0, Database_nameListContext); + public databaseNameList(): DatabaseNameListContext | null { + return this.getRuleContext(0, DatabaseNameListContext); } - public any_name_list(): Any_name_listContext | null { - return this.getRuleContext(0, Any_name_listContext); + public anyNameList(): AnyNameListContext | null { + return this.getRuleContext(0, AnyNameListContext); } public KW_DOMAIN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DOMAIN, 0); @@ -68988,14 +68535,14 @@ export class Privilege_targetContext extends antlr.ParserRuleContext { public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); } - public schema_name_list(): Schema_name_listContext | null { - return this.getRuleContext(0, Schema_name_listContext); + public schemaNameList(): SchemaNameListContext | null { + return this.getRuleContext(0, SchemaNameListContext); } public KW_TABLESPACE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLESPACE, 0); } - public tablespace_name_list(): Tablespace_name_listContext | null { - return this.getRuleContext(0, Tablespace_name_listContext); + public tableSpaceNameList(): TableSpaceNameListContext | null { + return this.getRuleContext(0, TableSpaceNameListContext); } public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); @@ -69019,21 +68566,21 @@ export class Privilege_targetContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ROUTINES, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_privilege_target; + return PostgreSqlParser.RULE_privilegeTarget; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPrivilege_target) { - listener.enterPrivilege_target(this); + if(listener.enterPrivilegeTarget) { + listener.enterPrivilegeTarget(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPrivilege_target) { - listener.exitPrivilege_target(this); + if(listener.exitPrivilegeTarget) { + listener.exitPrivilegeTarget(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPrivilege_target) { - return visitor.visitPrivilege_target(this); + if (visitor.visitPrivilegeTarget) { + return visitor.visitPrivilegeTarget(this); } else { return visitor.visitChildren(this); } @@ -69041,7 +68588,7 @@ export class Privilege_targetContext extends antlr.ParserRuleContext { } -export class Grantee_listContext extends antlr.ParserRuleContext { +export class GranteeListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -69073,21 +68620,21 @@ export class Grantee_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_grantee_list; + return PostgreSqlParser.RULE_granteeList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterGrantee_list) { - listener.enterGrantee_list(this); + if(listener.enterGranteeList) { + listener.enterGranteeList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitGrantee_list) { - listener.exitGrantee_list(this); + if(listener.exitGranteeList) { + listener.exitGranteeList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitGrantee_list) { - return visitor.visitGrantee_list(this); + if (visitor.visitGranteeList) { + return visitor.visitGranteeList(this); } else { return visitor.visitChildren(this); } @@ -69114,8 +68661,8 @@ export class GrantRoleStmtContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TO, 0)!; } - public role_list(): Role_listContext { - return this.getRuleContext(0, Role_listContext)!; + public roleList(): RoleListContext { + return this.getRuleContext(0, RoleListContext)!; } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -69186,8 +68733,8 @@ export class RevokeRoleStmtContext extends antlr.ParserRuleContext { public KW_FROM(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FROM, 0)!; } - public role_list(): Role_listContext { - return this.getRuleContext(0, Role_listContext)!; + public roleList(): RoleListContext { + return this.getRuleContext(0, RoleListContext)!; } public KW_ADMIN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADMIN, 0); @@ -69216,8 +68763,8 @@ export class RevokeRoleStmtContext extends antlr.ParserRuleContext { public roleSpec(): RoleSpecContext | null { return this.getRuleContext(0, RoleSpecContext); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_revokeRoleStmt; @@ -69276,14 +68823,14 @@ export class AlterDefaultPrivilegesStmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_SCHEMA, i); } } - public schema_name_list(): Schema_name_listContext[]; - public schema_name_list(i: number): Schema_name_listContext | null; - public schema_name_list(i?: number): Schema_name_listContext[] | Schema_name_listContext | null { + public schemaNameList(): SchemaNameListContext[]; + public schemaNameList(i: number): SchemaNameListContext | null; + public schemaNameList(i?: number): SchemaNameListContext[] | SchemaNameListContext | null { if (i === undefined) { - return this.getRuleContexts(Schema_name_listContext); + return this.getRuleContexts(SchemaNameListContext); } - return this.getRuleContext(i, Schema_name_listContext); + return this.getRuleContext(i, SchemaNameListContext); } public KW_FOR(): antlr.TerminalNode[]; public KW_FOR(i: number): antlr.TerminalNode | null; @@ -69294,14 +68841,14 @@ export class AlterDefaultPrivilegesStmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_FOR, i); } } - public role_list(): Role_listContext[]; - public role_list(i: number): Role_listContext | null; - public role_list(i?: number): Role_listContext[] | Role_listContext | null { + public roleList(): RoleListContext[]; + public roleList(i: number): RoleListContext | null; + public roleList(i?: number): RoleListContext[] | RoleListContext | null { if (i === undefined) { - return this.getRuleContexts(Role_listContext); + return this.getRuleContexts(RoleListContext); } - return this.getRuleContext(i, Role_listContext); + return this.getRuleContext(i, RoleListContext); } public KW_ROLE(): antlr.TerminalNode[]; public KW_ROLE(i: number): antlr.TerminalNode | null; @@ -69363,14 +68910,14 @@ export class DefaclactionContext extends antlr.ParserRuleContext { public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; } - public defacl_privilege_target(): Defacl_privilege_targetContext { - return this.getRuleContext(0, Defacl_privilege_targetContext)!; + public defaclPrivilegeTarget(): DefaclPrivilegeTargetContext { + return this.getRuleContext(0, DefaclPrivilegeTargetContext)!; } public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); } - public grantee_list(): Grantee_listContext { - return this.getRuleContext(0, Grantee_listContext)!; + public granteeList(): GranteeListContext { + return this.getRuleContext(0, GranteeListContext)!; } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); @@ -69387,8 +68934,8 @@ export class DefaclactionContext extends antlr.ParserRuleContext { public KW_FOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOR, 0); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_defaclaction; @@ -69413,7 +68960,7 @@ export class DefaclactionContext extends antlr.ParserRuleContext { } -export class Defacl_privilege_targetContext extends antlr.ParserRuleContext { +export class DefaclPrivilegeTargetContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -69436,21 +68983,21 @@ export class Defacl_privilege_targetContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_SCHEMAS, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_defacl_privilege_target; + return PostgreSqlParser.RULE_defaclPrivilegeTarget; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDefacl_privilege_target) { - listener.enterDefacl_privilege_target(this); + if(listener.enterDefaclPrivilegeTarget) { + listener.enterDefaclPrivilegeTarget(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDefacl_privilege_target) { - listener.exitDefacl_privilege_target(this); + if(listener.exitDefaclPrivilegeTarget) { + listener.exitDefaclPrivilegeTarget(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDefacl_privilege_target) { - return visitor.visitDefacl_privilege_target(this); + if (visitor.visitDefaclPrivilegeTarget) { + return visitor.visitDefaclPrivilegeTarget(this); } else { return visitor.visitChildren(this); } @@ -69471,17 +69018,17 @@ export class IndexStmtContext extends antlr.ParserRuleContext { public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; } - public relation_expr(): Relation_exprContext { - return this.getRuleContext(0, Relation_exprContext)!; + public relationExpr(): RelationExprContext { + return this.getRuleContext(0, RelationExprContext)!; } - public index_params(): Index_paramsContext[]; - public index_params(i: number): Index_paramsContext | null; - public index_params(i?: number): Index_paramsContext[] | Index_paramsContext | null { + public indexParams(): IndexParamsContext[]; + public indexParams(i: number): IndexParamsContext | null; + public indexParams(i?: number): IndexParamsContext[] | IndexParamsContext | null { if (i === undefined) { - return this.getRuleContexts(Index_paramsContext); + return this.getRuleContexts(IndexParamsContext); } - return this.getRuleContext(i, Index_paramsContext); + return this.getRuleContext(i, IndexParamsContext); } public KW_UNIQUE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_UNIQUE, 0); @@ -69489,14 +69036,14 @@ export class IndexStmtContext extends antlr.ParserRuleContext { public KW_CONCURRENTLY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONCURRENTLY, 0); } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public KW_INCLUDE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INCLUDE, 0); @@ -69513,8 +69060,8 @@ export class IndexStmtContext extends antlr.ParserRuleContext { public optTableSpace(): OptTableSpaceContext | null { return this.getRuleContext(0, OptTableSpaceContext); } - public where_clause(): Where_clauseContext | null { - return this.getRuleContext(0, Where_clauseContext); + public whereClause(): WhereClauseContext | null { + return this.getRuleContext(0, WhereClauseContext); } public KW_NOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOT, 0); @@ -69542,21 +69089,21 @@ export class IndexStmtContext extends antlr.ParserRuleContext { } -export class Index_paramsContext extends antlr.ParserRuleContext { +export class IndexParamsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public index_elem(): Index_elemContext[]; - public index_elem(i: number): Index_elemContext | null; - public index_elem(i?: number): Index_elemContext[] | Index_elemContext | null { + public indexElem(): IndexElemContext[]; + public indexElem(i: number): IndexElemContext | null; + public indexElem(i?: number): IndexElemContext[] | IndexElemContext | null { if (i === undefined) { - return this.getRuleContexts(Index_elemContext); + return this.getRuleContexts(IndexElemContext); } - return this.getRuleContext(i, Index_elemContext); + return this.getRuleContext(i, IndexElemContext); } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -69571,21 +69118,21 @@ export class Index_paramsContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_index_params; + return PostgreSqlParser.RULE_indexParams; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterIndex_params) { - listener.enterIndex_params(this); + if(listener.enterIndexParams) { + listener.enterIndexParams(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitIndex_params) { - listener.exitIndex_params(this); + if(listener.exitIndexParams) { + listener.exitIndexParams(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitIndex_params) { - return visitor.visitIndex_params(this); + if (visitor.visitIndexParams) { + return visitor.visitIndexParams(this); } else { return visitor.visitChildren(this); } @@ -69593,15 +69140,15 @@ export class Index_paramsContext extends antlr.ParserRuleContext { } -export class Index_elemContext extends antlr.ParserRuleContext { +export class IndexElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_name(): Column_nameContext | null { - return this.getRuleContext(0, Column_nameContext); + public columnName(): ColumnNameContext | null { + return this.getRuleContext(0, ColumnNameContext); } - public func_expr_windowless(): Func_expr_windowlessContext | null { - return this.getRuleContext(0, Func_expr_windowlessContext); + public funcExprWindowless(): FuncExprWindowlessContext | null { + return this.getRuleContext(0, FuncExprWindowlessContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -69612,14 +69159,14 @@ export class Index_elemContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public relOptions(): RelOptionsContext | null { return this.getRuleContext(0, RelOptionsContext); } - public opt_collate_clause(): Opt_collate_clauseContext | null { - return this.getRuleContext(0, Opt_collate_clauseContext); + public collateClause(): CollateClauseContext | null { + return this.getRuleContext(0, CollateClauseContext); } public KW_NULLS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NULLS, 0); @@ -69637,21 +69184,21 @@ export class Index_elemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_LAST, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_index_elem; + return PostgreSqlParser.RULE_indexElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterIndex_elem) { - listener.enterIndex_elem(this); + if(listener.enterIndexElem) { + listener.enterIndexElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitIndex_elem) { - listener.exitIndex_elem(this); + if(listener.exitIndexElem) { + listener.exitIndexElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitIndex_elem) { - return visitor.visitIndex_elem(this); + if (visitor.visitIndexElem) { + return visitor.visitIndexElem(this); } else { return visitor.visitChildren(this); } @@ -69669,14 +69216,14 @@ export class CreateFunctionStmtContext extends antlr.ParserRuleContext { public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); } - public function_name_create(): Function_name_createContext | null { - return this.getRuleContext(0, Function_name_createContext); + public functionNameCreate(): FunctionNameCreateContext | null { + return this.getRuleContext(0, FunctionNameCreateContext); } public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); } - public procedure_name_create(): Procedure_name_createContext | null { - return this.getRuleContext(0, Procedure_name_createContext); + public procedureNameCreate(): ProcedureNameCreateContext | null { + return this.getRuleContext(0, ProcedureNameCreateContext); } public OPEN_PAREN(): antlr.TerminalNode[]; public OPEN_PAREN(i: number): antlr.TerminalNode | null; @@ -69696,50 +69243,50 @@ export class CreateFunctionStmtContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_PAREN, i); } } - public opt_or_replace(): Opt_or_replaceContext | null { - return this.getRuleContext(0, Opt_or_replaceContext); + public orReplaceOpt(): OrReplaceOptContext | null { + return this.getRuleContext(0, OrReplaceOptContext); } public KW_RETURNS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_RETURNS, 0); } - public create_func_opt_item(): Create_func_opt_itemContext[]; - public create_func_opt_item(i: number): Create_func_opt_itemContext | null; - public create_func_opt_item(i?: number): Create_func_opt_itemContext[] | Create_func_opt_itemContext | null { + public createFuncOptItem(): CreateFuncOptItemContext[]; + public createFuncOptItem(i: number): CreateFuncOptItemContext | null; + public createFuncOptItem(i?: number): CreateFuncOptItemContext[] | CreateFuncOptItemContext | null { if (i === undefined) { - return this.getRuleContexts(Create_func_opt_itemContext); + return this.getRuleContexts(CreateFuncOptItemContext); } - return this.getRuleContext(i, Create_func_opt_itemContext); + return this.getRuleContext(i, CreateFuncOptItemContext); } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public name_list(): Name_listContext | null { - return this.getRuleContext(0, Name_listContext); + public nameList(): NameListContext | null { + return this.getRuleContext(0, NameListContext); } - public func_arg_with_default(): Func_arg_with_defaultContext[]; - public func_arg_with_default(i: number): Func_arg_with_defaultContext | null; - public func_arg_with_default(i?: number): Func_arg_with_defaultContext[] | Func_arg_with_defaultContext | null { + public funcArgWithDefault(): FuncArgWithDefaultContext[]; + public funcArgWithDefault(i: number): FuncArgWithDefaultContext | null; + public funcArgWithDefault(i?: number): FuncArgWithDefaultContext[] | FuncArgWithDefaultContext | null { if (i === undefined) { - return this.getRuleContexts(Func_arg_with_defaultContext); + return this.getRuleContexts(FuncArgWithDefaultContext); } - return this.getRuleContext(i, Func_arg_with_defaultContext); + return this.getRuleContext(i, FuncArgWithDefaultContext); } - public func_type(): Func_typeContext | null { - return this.getRuleContext(0, Func_typeContext); + public funcType(): FuncTypeContext | null { + return this.getRuleContext(0, FuncTypeContext); } public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public table_func_column(): Table_func_columnContext[]; - public table_func_column(i: number): Table_func_columnContext | null; - public table_func_column(i?: number): Table_func_columnContext[] | Table_func_columnContext | null { + public tableFuncColumn(): TableFuncColumnContext[]; + public tableFuncColumn(i: number): TableFuncColumnContext | null; + public tableFuncColumn(i?: number): TableFuncColumnContext[] | TableFuncColumnContext | null { if (i === undefined) { - return this.getRuleContexts(Table_func_columnContext); + return this.getRuleContexts(TableFuncColumnContext); } - return this.getRuleContext(i, Table_func_columnContext); + return this.getRuleContext(i, TableFuncColumnContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -69773,7 +69320,7 @@ export class CreateFunctionStmtContext extends antlr.ParserRuleContext { } -export class Opt_or_replaceContext extends antlr.ParserRuleContext { +export class OrReplaceOptContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -69784,21 +69331,21 @@ export class Opt_or_replaceContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_REPLACE, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_or_replace; + return PostgreSqlParser.RULE_orReplaceOpt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_or_replace) { - listener.enterOpt_or_replace(this); + if(listener.enterOrReplaceOpt) { + listener.enterOrReplaceOpt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_or_replace) { - listener.exitOpt_or_replace(this); + if(listener.exitOrReplaceOpt) { + listener.exitOrReplaceOpt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_or_replace) { - return visitor.visitOpt_or_replace(this); + if (visitor.visitOrReplaceOpt) { + return visitor.visitOrReplaceOpt(this); } else { return visitor.visitChildren(this); } @@ -69806,7 +69353,7 @@ export class Opt_or_replaceContext extends antlr.ParserRuleContext { } -export class Func_argsContext extends antlr.ParserRuleContext { +export class FuncArgsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -69816,25 +69363,25 @@ export class Func_argsContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } - public func_args_list(): Func_args_listContext | null { - return this.getRuleContext(0, Func_args_listContext); + public funcArgsList(): FuncArgsListContext | null { + return this.getRuleContext(0, FuncArgsListContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_args; + return PostgreSqlParser.RULE_funcArgs; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_args) { - listener.enterFunc_args(this); + if(listener.enterFuncArgs) { + listener.enterFuncArgs(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_args) { - listener.exitFunc_args(this); + if(listener.exitFuncArgs) { + listener.exitFuncArgs(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_args) { - return visitor.visitFunc_args(this); + if (visitor.visitFuncArgs) { + return visitor.visitFuncArgs(this); } else { return visitor.visitChildren(this); } @@ -69842,18 +69389,18 @@ export class Func_argsContext extends antlr.ParserRuleContext { } -export class Func_args_listContext extends antlr.ParserRuleContext { +export class FuncArgsListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public func_arg(): Func_argContext[]; - public func_arg(i: number): Func_argContext | null; - public func_arg(i?: number): Func_argContext[] | Func_argContext | null { + public funcArg(): FuncArgContext[]; + public funcArg(i: number): FuncArgContext | null; + public funcArg(i?: number): FuncArgContext[] | FuncArgContext | null { if (i === undefined) { - return this.getRuleContexts(Func_argContext); + return this.getRuleContexts(FuncArgContext); } - return this.getRuleContext(i, Func_argContext); + return this.getRuleContext(i, FuncArgContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -69865,21 +69412,21 @@ export class Func_args_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_args_list; + return PostgreSqlParser.RULE_funcArgsList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_args_list) { - listener.enterFunc_args_list(this); + if(listener.enterFuncArgsList) { + listener.enterFuncArgsList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_args_list) { - listener.exitFunc_args_list(this); + if(listener.exitFuncArgsList) { + listener.exitFuncArgsList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_args_list) { - return visitor.visitFunc_args_list(this); + if (visitor.visitFuncArgsList) { + return visitor.visitFuncArgsList(this); } else { return visitor.visitChildren(this); } @@ -69936,17 +69483,17 @@ export class RoutineWithArgTypesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public routine_name(): Routine_nameContext | null { - return this.getRuleContext(0, Routine_nameContext); + public routineName(): RoutineNameContext | null { + return this.getRuleContext(0, RoutineNameContext); } - public func_args(): Func_argsContext | null { - return this.getRuleContext(0, Func_argsContext); + public funcArgs(): FuncArgsContext | null { + return this.getRuleContext(0, FuncArgsContext); } - public type_func_name_keyword(): Type_func_name_keywordContext | null { - return this.getRuleContext(0, Type_func_name_keywordContext); + public typeFuncNameKeyword(): TypeFuncNameKeywordContext | null { + return this.getRuleContext(0, TypeFuncNameKeywordContext); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_routineWithArgTypes; @@ -70020,17 +69567,17 @@ export class ProcedureWithArgTypesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public procedure_name(): Procedure_nameContext | null { - return this.getRuleContext(0, Procedure_nameContext); + public procedureName(): ProcedureNameContext | null { + return this.getRuleContext(0, ProcedureNameContext); } - public func_args(): Func_argsContext | null { - return this.getRuleContext(0, Func_argsContext); + public funcArgs(): FuncArgsContext | null { + return this.getRuleContext(0, FuncArgsContext); } - public type_func_name_keyword(): Type_func_name_keywordContext | null { - return this.getRuleContext(0, Type_func_name_keywordContext); + public typeFuncNameKeyword(): TypeFuncNameKeywordContext | null { + return this.getRuleContext(0, TypeFuncNameKeywordContext); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_procedureWithArgTypes; @@ -70104,17 +69651,17 @@ export class FunctionWithArgTypesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public function_name(): Function_nameContext | null { - return this.getRuleContext(0, Function_nameContext); + public functionName(): FunctionNameContext | null { + return this.getRuleContext(0, FunctionNameContext); } - public func_args(): Func_argsContext | null { - return this.getRuleContext(0, Func_argsContext); + public funcArgs(): FuncArgsContext | null { + return this.getRuleContext(0, FuncArgsContext); } - public type_func_name_keyword(): Type_func_name_keywordContext | null { - return this.getRuleContext(0, Type_func_name_keywordContext); + public typeFuncNameKeyword(): TypeFuncNameKeywordContext | null { + return this.getRuleContext(0, TypeFuncNameKeywordContext); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_functionWithArgTypes; @@ -70139,35 +69686,35 @@ export class FunctionWithArgTypesContext extends antlr.ParserRuleContext { } -export class Func_argContext extends antlr.ParserRuleContext { +export class FuncArgContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public func_type(): Func_typeContext { - return this.getRuleContext(0, Func_typeContext)!; + public funcType(): FuncTypeContext { + return this.getRuleContext(0, FuncTypeContext)!; } - public arg_class(): Arg_classContext | null { - return this.getRuleContext(0, Arg_classContext); + public argClass(): ArgClassContext | null { + return this.getRuleContext(0, ArgClassContext); } - public type_function_name(): Type_function_nameContext | null { - return this.getRuleContext(0, Type_function_nameContext); + public typeFunctionName(): TypeFunctionNameContext | null { + return this.getRuleContext(0, TypeFunctionNameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_arg; + return PostgreSqlParser.RULE_funcArg; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_arg) { - listener.enterFunc_arg(this); + if(listener.enterFuncArg) { + listener.enterFuncArg(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_arg) { - listener.exitFunc_arg(this); + if(listener.exitFuncArg) { + listener.exitFuncArg(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_arg) { - return visitor.visitFunc_arg(this); + if (visitor.visitFuncArg) { + return visitor.visitFuncArg(this); } else { return visitor.visitChildren(this); } @@ -70175,7 +69722,7 @@ export class Func_argContext extends antlr.ParserRuleContext { } -export class Arg_classContext extends antlr.ParserRuleContext { +export class ArgClassContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70192,21 +69739,21 @@ export class Arg_classContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_VARIADIC, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_arg_class; + return PostgreSqlParser.RULE_argClass; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterArg_class) { - listener.enterArg_class(this); + if(listener.enterArgClass) { + listener.enterArgClass(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitArg_class) { - listener.exitArg_class(this); + if(listener.exitArgClass) { + listener.exitArgClass(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitArg_class) { - return visitor.visitArg_class(this); + if (visitor.visitArgClass) { + return visitor.visitArgClass(this); } else { return visitor.visitChildren(this); } @@ -70214,15 +69761,15 @@ export class Arg_classContext extends antlr.ParserRuleContext { } -export class Func_typeContext extends antlr.ParserRuleContext { +export class FuncTypeContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public typename(): TypenameContext | null { return this.getRuleContext(0, TypenameContext); } - public type_function_name(): Type_function_nameContext | null { - return this.getRuleContext(0, Type_function_nameContext); + public typeFunctionName(): TypeFunctionNameContext | null { + return this.getRuleContext(0, TypeFunctionNameContext); } public attrs(): AttrsContext | null { return this.getRuleContext(0, AttrsContext); @@ -70237,21 +69784,21 @@ export class Func_typeContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_SETOF, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_type; + return PostgreSqlParser.RULE_funcType; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_type) { - listener.enterFunc_type(this); + if(listener.enterFuncType) { + listener.enterFuncType(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_type) { - listener.exitFunc_type(this); + if(listener.exitFuncType) { + listener.exitFuncType(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_type) { - return visitor.visitFunc_type(this); + if (visitor.visitFuncType) { + return visitor.visitFuncType(this); } else { return visitor.visitChildren(this); } @@ -70259,12 +69806,12 @@ export class Func_typeContext extends antlr.ParserRuleContext { } -export class Func_arg_with_defaultContext extends antlr.ParserRuleContext { +export class FuncArgWithDefaultContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public func_arg(): Func_argContext { - return this.getRuleContext(0, Func_argContext)!; + public funcArg(): FuncArgContext { + return this.getRuleContext(0, FuncArgContext)!; } public expression(): ExpressionContext | null { return this.getRuleContext(0, ExpressionContext); @@ -70276,21 +69823,21 @@ export class Func_arg_with_defaultContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.EQUAL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_arg_with_default; + return PostgreSqlParser.RULE_funcArgWithDefault; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_arg_with_default) { - listener.enterFunc_arg_with_default(this); + if(listener.enterFuncArgWithDefault) { + listener.enterFuncArgWithDefault(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_arg_with_default) { - listener.exitFunc_arg_with_default(this); + if(listener.exitFuncArgWithDefault) { + listener.exitFuncArgWithDefault(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_arg_with_default) { - return visitor.visitFunc_arg_with_default(this); + if (visitor.visitFuncArgWithDefault) { + return visitor.visitFuncArgWithDefault(this); } else { return visitor.visitChildren(this); } @@ -70298,7 +69845,7 @@ export class Func_arg_with_defaultContext extends antlr.ParserRuleContext { } -export class Aggregate_argsContext extends antlr.ParserRuleContext { +export class AggregateArgsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70311,14 +69858,14 @@ export class Aggregate_argsContext extends antlr.ParserRuleContext { public STAR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.STAR, 0); } - public func_args_list(): Func_args_listContext[]; - public func_args_list(i: number): Func_args_listContext | null; - public func_args_list(i?: number): Func_args_listContext[] | Func_args_listContext | null { + public funcArgsList(): FuncArgsListContext[]; + public funcArgsList(i: number): FuncArgsListContext | null; + public funcArgsList(i?: number): FuncArgsListContext[] | FuncArgsListContext | null { if (i === undefined) { - return this.getRuleContexts(Func_args_listContext); + return this.getRuleContexts(FuncArgsListContext); } - return this.getRuleContext(i, Func_args_listContext); + return this.getRuleContext(i, FuncArgsListContext); } public KW_ORDER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ORDER, 0); @@ -70327,21 +69874,21 @@ export class Aggregate_argsContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_BY, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_aggregate_args; + return PostgreSqlParser.RULE_aggregateArgs; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAggregate_args) { - listener.enterAggregate_args(this); + if(listener.enterAggregateArgs) { + listener.enterAggregateArgs(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAggregate_args) { - listener.exitAggregate_args(this); + if(listener.exitAggregateArgs) { + listener.exitAggregateArgs(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAggregate_args) { - return visitor.visitAggregate_args(this); + if (visitor.visitAggregateArgs) { + return visitor.visitAggregateArgs(this); } else { return visitor.visitChildren(this); } @@ -70353,11 +69900,11 @@ export class AggregateWithArgTypesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public function_name(): Function_nameContext { - return this.getRuleContext(0, Function_nameContext)!; + public functionName(): FunctionNameContext { + return this.getRuleContext(0, FunctionNameContext)!; } - public aggregate_args(): Aggregate_argsContext { - return this.getRuleContext(0, Aggregate_argsContext)!; + public aggregateArgs(): AggregateArgsContext { + return this.getRuleContext(0, AggregateArgsContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_aggregateWithArgTypes; @@ -70382,7 +69929,7 @@ export class AggregateWithArgTypesContext extends antlr.ParserRuleContext { } -export class Common_func_opt_itemContext extends antlr.ParserRuleContext { +export class CommonFuncOptItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70449,14 +69996,14 @@ export class Common_func_opt_itemContext extends antlr.ParserRuleContext { public KW_SUPPORT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SUPPORT, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); } - public set_rest_more(): Set_rest_moreContext | null { - return this.getRuleContext(0, Set_rest_moreContext); + public setRestMore(): SetRestMoreContext | null { + return this.getRuleContext(0, SetRestMoreContext); } public variableResetStmt(): VariableResetStmtContext | null { return this.getRuleContext(0, VariableResetStmtContext); @@ -70468,21 +70015,21 @@ export class Common_func_opt_itemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, ColIdContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_common_func_opt_item; + return PostgreSqlParser.RULE_commonFuncOptItem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCommon_func_opt_item) { - listener.enterCommon_func_opt_item(this); + if(listener.enterCommonFuncOptItem) { + listener.enterCommonFuncOptItem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCommon_func_opt_item) { - listener.exitCommon_func_opt_item(this); + if(listener.exitCommonFuncOptItem) { + listener.exitCommonFuncOptItem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCommon_func_opt_item) { - return visitor.visitCommon_func_opt_item(this); + if (visitor.visitCommonFuncOptItem) { + return visitor.visitCommonFuncOptItem(this); } else { return visitor.visitChildren(this); } @@ -70490,7 +70037,7 @@ export class Common_func_opt_itemContext extends antlr.ParserRuleContext { } -export class Create_func_opt_itemContext extends antlr.ParserRuleContext { +export class CreateFuncOptItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70500,8 +70047,8 @@ export class Create_func_opt_itemContext extends antlr.ParserRuleContext { public stringConst(): StringConstContext | null { return this.getRuleContext(0, StringConstContext); } - public notify_payload(): Notify_payloadContext | null { - return this.getRuleContext(0, Notify_payloadContext); + public notifyPayload(): NotifyPayloadContext | null { + return this.getRuleContext(0, NotifyPayloadContext); } public KW_LANGUAGE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LANGUAGE, 0); @@ -70578,25 +70125,25 @@ export class Create_func_opt_itemContext extends antlr.ParserRuleContext { public stmt(): StmtContext | null { return this.getRuleContext(0, StmtContext); } - public common_func_opt_item(): Common_func_opt_itemContext | null { - return this.getRuleContext(0, Common_func_opt_itemContext); + public commonFuncOptItem(): CommonFuncOptItemContext | null { + return this.getRuleContext(0, CommonFuncOptItemContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_create_func_opt_item; + return PostgreSqlParser.RULE_createFuncOptItem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreate_func_opt_item) { - listener.enterCreate_func_opt_item(this); + if(listener.enterCreateFuncOptItem) { + listener.enterCreateFuncOptItem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreate_func_opt_item) { - listener.exitCreate_func_opt_item(this); + if(listener.exitCreateFuncOptItem) { + listener.exitCreateFuncOptItem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreate_func_opt_item) { - return visitor.visitCreate_func_opt_item(this); + if (visitor.visitCreateFuncOptItem) { + return visitor.visitCreateFuncOptItem(this); } else { return visitor.visitChildren(this); } @@ -70604,7 +70151,7 @@ export class Create_func_opt_itemContext extends antlr.ParserRuleContext { } -export class Opt_definitionContext extends antlr.ParserRuleContext { +export class OptDefinitionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -70615,21 +70162,21 @@ export class Opt_definitionContext extends antlr.ParserRuleContext { return this.getRuleContext(0, DefinitionContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_definition; + return PostgreSqlParser.RULE_optDefinition; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_definition) { - listener.enterOpt_definition(this); + if(listener.enterOptDefinition) { + listener.enterOptDefinition(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_definition) { - listener.exitOpt_definition(this); + if(listener.exitOptDefinition) { + listener.exitOptDefinition(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_definition) { - return visitor.visitOpt_definition(this); + if (visitor.visitOptDefinition) { + return visitor.visitOptDefinition(this); } else { return visitor.visitChildren(this); } @@ -70637,32 +70184,32 @@ export class Opt_definitionContext extends antlr.ParserRuleContext { } -export class Table_func_columnContext extends antlr.ParserRuleContext { +export class TableFuncColumnContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_name(): Column_nameContext { - return this.getRuleContext(0, Column_nameContext)!; + public columnName(): ColumnNameContext { + return this.getRuleContext(0, ColumnNameContext)!; } - public func_type(): Func_typeContext { - return this.getRuleContext(0, Func_typeContext)!; + public funcType(): FuncTypeContext { + return this.getRuleContext(0, FuncTypeContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_table_func_column; + return PostgreSqlParser.RULE_tableFuncColumn; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTable_func_column) { - listener.enterTable_func_column(this); + if(listener.enterTableFuncColumn) { + listener.enterTableFuncColumn(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTable_func_column) { - listener.exitTable_func_column(this); + if(listener.exitTableFuncColumn) { + listener.exitTableFuncColumn(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTable_func_column) { - return visitor.visitTable_func_column(this); + if (visitor.visitTableFuncColumn) { + return visitor.visitTableFuncColumn(this); } else { return visitor.visitChildren(this); } @@ -70695,14 +70242,14 @@ export class AlterFunctionStmtContext extends antlr.ParserRuleContext { public routineWithArgTypes(): RoutineWithArgTypesContext | null { return this.getRuleContext(0, RoutineWithArgTypesContext); } - public common_func_opt_item(): Common_func_opt_itemContext[]; - public common_func_opt_item(i: number): Common_func_opt_itemContext | null; - public common_func_opt_item(i?: number): Common_func_opt_itemContext[] | Common_func_opt_itemContext | null { + public commonFuncOptItem(): CommonFuncOptItemContext[]; + public commonFuncOptItem(i: number): CommonFuncOptItemContext | null; + public commonFuncOptItem(i?: number): CommonFuncOptItemContext[] | CommonFuncOptItemContext | null { if (i === undefined) { - return this.getRuleContexts(Common_func_opt_itemContext); + return this.getRuleContexts(CommonFuncOptItemContext); } - return this.getRuleContext(i, Common_func_opt_itemContext); + return this.getRuleContext(i, CommonFuncOptItemContext); } public KW_RESTRICT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_RESTRICT, 0); @@ -70755,11 +70302,11 @@ export class RemoveFuncStmtContext extends antlr.ParserRuleContext { public routineWithArgTypesList(): RoutineWithArgTypesListContext | null { return this.getRuleContext(0, RoutineWithArgTypesListContext); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_removeFuncStmt; @@ -70803,11 +70350,11 @@ export class RemoveAggregateStmtContext extends antlr.ParserRuleContext { return this.getRuleContext(i, AggregateWithArgTypesContext); } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -70860,11 +70407,11 @@ export class RemoveOperatorStmtContext extends antlr.ParserRuleContext { return this.getRuleContext(i, OperatorWithArgTypesContext); } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -70946,12 +70493,12 @@ export class OperatorArgTypesContext extends antlr.ParserRuleContext { } -export class Any_operatorContext extends antlr.ParserRuleContext { +export class AnyOperatorContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public all_op(): All_opContext { - return this.getRuleContext(0, All_opContext)!; + public allOp(): AllOpContext { + return this.getRuleContext(0, AllOpContext)!; } public colId(): ColIdContext[]; public colId(i: number): ColIdContext | null; @@ -70972,21 +70519,21 @@ export class Any_operatorContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_any_operator; + return PostgreSqlParser.RULE_anyOperator; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAny_operator) { - listener.enterAny_operator(this); + if(listener.enterAnyOperator) { + listener.enterAnyOperator(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAny_operator) { - listener.exitAny_operator(this); + if(listener.exitAnyOperator) { + listener.exitAnyOperator(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAny_operator) { - return visitor.visitAny_operator(this); + if (visitor.visitAnyOperator) { + return visitor.visitAnyOperator(this); } else { return visitor.visitChildren(this); } @@ -70998,8 +70545,8 @@ export class OperatorWithArgTypesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public any_operator(): Any_operatorContext { - return this.getRuleContext(0, Any_operatorContext)!; + public anyOperator(): AnyOperatorContext { + return this.getRuleContext(0, AnyOperatorContext)!; } public operatorArgTypes(): OperatorArgTypesContext { return this.getRuleContext(0, OperatorArgTypesContext)!; @@ -71162,7 +70709,7 @@ export class CreateCastStmtContext extends antlr.ParserRuleContext { } -export class Opt_if_existsContext extends antlr.ParserRuleContext { +export class IfExistsContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -71173,21 +70720,21 @@ export class Opt_if_existsContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_EXISTS, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_if_exists; + return PostgreSqlParser.RULE_ifExists; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_if_exists) { - listener.enterOpt_if_exists(this); + if(listener.enterIfExists) { + listener.enterIfExists(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_if_exists) { - listener.exitOpt_if_exists(this); + if(listener.exitIfExists) { + listener.exitIfExists(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_if_exists) { - return visitor.visitOpt_if_exists(this); + if (visitor.visitIfExists) { + return visitor.visitIfExists(this); } else { return visitor.visitChildren(this); } @@ -71226,20 +70773,20 @@ export class CreateTransformStmtContext extends antlr.ParserRuleContext { public KW_FROM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FROM, 0); } - public sql_with_function(): Sql_with_functionContext[]; - public sql_with_function(i: number): Sql_with_functionContext | null; - public sql_with_function(i?: number): Sql_with_functionContext[] | Sql_with_functionContext | null { + public sqlWithFunction(): SqlWithFunctionContext[]; + public sqlWithFunction(i: number): SqlWithFunctionContext | null; + public sqlWithFunction(i?: number): SqlWithFunctionContext[] | SqlWithFunctionContext | null { if (i === undefined) { - return this.getRuleContexts(Sql_with_functionContext); + return this.getRuleContexts(SqlWithFunctionContext); } - return this.getRuleContext(i, Sql_with_functionContext); + return this.getRuleContext(i, SqlWithFunctionContext); } public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); } - public opt_or_replace(): Opt_or_replaceContext | null { - return this.getRuleContext(0, Opt_or_replaceContext); + public orReplaceOpt(): OrReplaceOptContext | null { + return this.getRuleContext(0, OrReplaceOptContext); } public COMMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.COMMA, 0); @@ -71267,7 +70814,7 @@ export class CreateTransformStmtContext extends antlr.ParserRuleContext { } -export class Sql_with_functionContext extends antlr.ParserRuleContext { +export class SqlWithFunctionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -71284,21 +70831,21 @@ export class Sql_with_functionContext extends antlr.ParserRuleContext { return this.getRuleContext(0, FunctionWithArgTypesContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_sql_with_function; + return PostgreSqlParser.RULE_sqlWithFunction; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSql_with_function) { - listener.enterSql_with_function(this); + if(listener.enterSqlWithFunction) { + listener.enterSqlWithFunction(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSql_with_function) { - listener.exitSql_with_function(this); + if(listener.exitSqlWithFunction) { + listener.exitSqlWithFunction(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSql_with_function) { - return visitor.visitSql_with_function(this); + if (visitor.visitSqlWithFunction) { + return visitor.visitSqlWithFunction(this); } else { return visitor.visitChildren(this); } @@ -71331,20 +70878,20 @@ export class ReindexStmtContext extends antlr.ParserRuleContext { public KW_INDEX(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INDEX, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public table_name(): Table_nameContext | null { - return this.getRuleContext(0, Table_nameContext); + public tableName(): TableNameContext | null { + return this.getRuleContext(0, TableNameContext); } public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); } - public schema_name(): Schema_nameContext | null { - return this.getRuleContext(0, Schema_nameContext); + public schemaName(): SchemaNameContext | null { + return this.getRuleContext(0, SchemaNameContext); } public KW_SYSTEM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SYSTEM, 0); @@ -71355,8 +70902,8 @@ export class ReindexStmtContext extends antlr.ParserRuleContext { public KW_DATABASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATABASE, 0); } - public database_name(): Database_nameContext | null { - return this.getRuleContext(0, Database_nameContext); + public databaseName(): DatabaseNameContext | null { + return this.getRuleContext(0, DatabaseNameContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -71472,14 +71019,14 @@ export class RenameStmtContext extends antlr.ParserRuleContext { public KW_DATABASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATABASE, 0); } - public database_name(): Database_nameContext | null { - return this.getRuleContext(0, Database_nameContext); + public databaseName(): DatabaseNameContext | null { + return this.getRuleContext(0, DatabaseNameContext); } - public database_name_create(): Database_name_createContext | null { - return this.getRuleContext(0, Database_name_createContext); + public databaseNameCreate(): DatabaseNameCreateContext | null { + return this.getRuleContext(0, DatabaseNameCreateContext); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public KW_DOMAIN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DOMAIN, 0); @@ -71502,14 +71049,14 @@ export class RenameStmtContext extends antlr.ParserRuleContext { public functionWithArgTypes(): FunctionWithArgTypesContext | null { return this.getRuleContext(0, FunctionWithArgTypesContext); } - public function_name_create(): Function_name_createContext | null { - return this.getRuleContext(0, Function_name_createContext); + public functionNameCreate(): FunctionNameCreateContext | null { + return this.getRuleContext(0, FunctionNameCreateContext); } public KW_OPERATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public KW_CLASS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CLASS, 0); @@ -71523,20 +71070,20 @@ export class RenameStmtContext extends antlr.ParserRuleContext { public procedureWithArgTypes(): ProcedureWithArgTypesContext | null { return this.getRuleContext(0, ProcedureWithArgTypesContext); } - public procedure_name_create(): Procedure_name_createContext | null { - return this.getRuleContext(0, Procedure_name_createContext); + public procedureNameCreate(): ProcedureNameCreateContext | null { + return this.getRuleContext(0, ProcedureNameCreateContext); } public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); } - public schema_name(): Schema_nameContext | null { - return this.getRuleContext(0, Schema_nameContext); + public schemaName(): SchemaNameContext | null { + return this.getRuleContext(0, SchemaNameContext); } - public schema_name_create(): Schema_name_createContext | null { - return this.getRuleContext(0, Schema_name_createContext); + public schemaNameCreate(): SchemaNameCreateContext | null { + return this.getRuleContext(0, SchemaNameCreateContext); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public KW_SEQUENCE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SEQUENCE, 0); @@ -71544,17 +71091,17 @@ export class RenameStmtContext extends antlr.ParserRuleContext { public KW_INDEX(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INDEX, 0); } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } public KW_VIEW(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VIEW, 0); } - public view_name(): View_nameContext | null { - return this.getRuleContext(0, View_nameContext); + public viewName(): ViewNameContext | null { + return this.getRuleContext(0, ViewNameContext); } - public view_name_create(): View_name_createContext | null { - return this.getRuleContext(0, View_name_createContext); + public viewNameCreate(): ViewNameCreateContext | null { + return this.getRuleContext(0, ViewNameCreateContext); } public KW_MATERIALIZED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_MATERIALIZED, 0); @@ -71562,20 +71109,20 @@ export class RenameStmtContext extends antlr.ParserRuleContext { public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public relation_expr(): Relation_exprContext | null { - return this.getRuleContext(0, Relation_exprContext); + public relationExpr(): RelationExprContext | null { + return this.getRuleContext(0, RelationExprContext); } - public table_name_create(): Table_name_createContext | null { - return this.getRuleContext(0, Table_name_createContext); + public tableNameCreate(): TableNameCreateContext | null { + return this.getRuleContext(0, TableNameCreateContext); } public KW_FOREIGN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOREIGN, 0); } - public column_name(): Column_nameContext | null { - return this.getRuleContext(0, Column_nameContext); + public columnName(): ColumnNameContext | null { + return this.getRuleContext(0, ColumnNameContext); } - public column_name_create(): Column_name_createContext | null { - return this.getRuleContext(0, Column_name_createContext); + public columnNameCreate(): ColumnNameCreateContext | null { + return this.getRuleContext(0, ColumnNameCreateContext); } public KW_COLUMN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_COLUMN, 0); @@ -71640,8 +71187,8 @@ export class RenameStmtContext extends antlr.ParserRuleContext { public optTableSpace(): OptTableSpaceContext | null { return this.getRuleContext(0, OptTableSpaceContext); } - public tablespace_name_create(): Tablespace_name_createContext | null { - return this.getRuleContext(0, Tablespace_name_createContext); + public tableSpaceName(): TableSpaceNameContext | null { + return this.getRuleContext(0, TableSpaceNameContext); } public KW_TEXT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TEXT, 0); @@ -71664,8 +71211,8 @@ export class RenameStmtContext extends antlr.ParserRuleContext { public KW_ATTRIBUTE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ATTRIBUTE, 0); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_renameStmt; @@ -71742,8 +71289,8 @@ export class AlterObjectDependsStmtContext extends antlr.ParserRuleContext { public KW_TRIGGER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TRIGGER, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public KW_MATERIALIZED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_MATERIALIZED, 0); @@ -71751,8 +71298,8 @@ export class AlterObjectDependsStmtContext extends antlr.ParserRuleContext { public KW_VIEW(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VIEW, 0); } - public view_name(): View_nameContext | null { - return this.getRuleContext(0, View_nameContext); + public viewName(): ViewNameContext | null { + return this.getRuleContext(0, ViewNameContext); } public KW_INDEX(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INDEX, 0); @@ -71796,8 +71343,8 @@ export class AlterObjectSchemaStmtContext extends antlr.ParserRuleContext { public KW_SCHEMA(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0)!; } - public schema_name(): Schema_nameContext { - return this.getRuleContext(0, Schema_nameContext)!; + public schemaName(): SchemaNameContext { + return this.getRuleContext(0, SchemaNameContext)!; } public KW_AGGREGATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AGGREGATE, 0); @@ -71823,11 +71370,11 @@ export class AlterObjectSchemaStmtContext extends antlr.ParserRuleContext { public operatorWithArgTypes(): OperatorWithArgTypesContext | null { return this.getRuleContext(0, OperatorWithArgTypesContext); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public KW_PROCEDURE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PROCEDURE, 0); @@ -71844,20 +71391,20 @@ export class AlterObjectSchemaStmtContext extends antlr.ParserRuleContext { public KW_SEQUENCE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SEQUENCE, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public KW_VIEW(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VIEW, 0); } - public view_name(): View_nameContext | null { - return this.getRuleContext(0, View_nameContext); + public viewName(): ViewNameContext | null { + return this.getRuleContext(0, ViewNameContext); } public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public relation_expr(): Relation_exprContext | null { - return this.getRuleContext(0, Relation_exprContext); + public relationExpr(): RelationExprContext | null { + return this.getRuleContext(0, RelationExprContext); } public KW_CLASS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CLASS, 0); @@ -71865,8 +71412,8 @@ export class AlterObjectSchemaStmtContext extends antlr.ParserRuleContext { public KW_FAMILY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FAMILY, 0); } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } public KW_MATERIALIZED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_MATERIALIZED, 0); @@ -71946,8 +71493,8 @@ export class AlterOperatorStmtContext extends antlr.ParserRuleContext { public KW_SET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SET, 0)!; } - public operator_def_list(): Operator_def_listContext { - return this.getRuleContext(0, Operator_def_listContext)!; + public operatorDefList(): OperatorDefListContext { + return this.getRuleContext(0, OperatorDefListContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_alterOperatorStmt; @@ -71972,21 +71519,21 @@ export class AlterOperatorStmtContext extends antlr.ParserRuleContext { } -export class Operator_def_listContext extends antlr.ParserRuleContext { +export class OperatorDefListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public operator_def_elem(): Operator_def_elemContext[]; - public operator_def_elem(i: number): Operator_def_elemContext | null; - public operator_def_elem(i?: number): Operator_def_elemContext[] | Operator_def_elemContext | null { + public operatorDefElem(): OperatorDefElemContext[]; + public operatorDefElem(i: number): OperatorDefElemContext | null; + public operatorDefElem(i?: number): OperatorDefElemContext[] | OperatorDefElemContext | null { if (i === undefined) { - return this.getRuleContexts(Operator_def_elemContext); + return this.getRuleContexts(OperatorDefElemContext); } - return this.getRuleContext(i, Operator_def_elemContext); + return this.getRuleContext(i, OperatorDefElemContext); } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -72001,21 +71548,21 @@ export class Operator_def_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_operator_def_list; + return PostgreSqlParser.RULE_operatorDefList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOperator_def_list) { - listener.enterOperator_def_list(this); + if(listener.enterOperatorDefList) { + listener.enterOperatorDefList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOperator_def_list) { - listener.exitOperator_def_list(this); + if(listener.exitOperatorDefList) { + listener.exitOperatorDefList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOperator_def_list) { - return visitor.visitOperator_def_list(this); + if (visitor.visitOperatorDefList) { + return visitor.visitOperatorDefList(this); } else { return visitor.visitChildren(this); } @@ -72023,7 +71570,7 @@ export class Operator_def_listContext extends antlr.ParserRuleContext { } -export class Operator_def_elemContext extends antlr.ParserRuleContext { +export class OperatorDefElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -72036,14 +71583,14 @@ export class Operator_def_elemContext extends antlr.ParserRuleContext { public KW_NONE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NONE, 0); } - public func_type(): Func_typeContext | null { - return this.getRuleContext(0, Func_typeContext); + public funcType(): FuncTypeContext | null { + return this.getRuleContext(0, FuncTypeContext); } - public reserved_keyword(): Reserved_keywordContext | null { - return this.getRuleContext(0, Reserved_keywordContext); + public reservedKeyword(): ReservedKeywordContext | null { + return this.getRuleContext(0, ReservedKeywordContext); } - public qual_all_op(): Qual_all_opContext | null { - return this.getRuleContext(0, Qual_all_opContext); + public qualAllOp(): QualAllOpContext | null { + return this.getRuleContext(0, QualAllOpContext); } public numericOnly(): NumericOnlyContext | null { return this.getRuleContext(0, NumericOnlyContext); @@ -72052,21 +71599,21 @@ export class Operator_def_elemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, StringConstContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_operator_def_elem; + return PostgreSqlParser.RULE_operatorDefElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOperator_def_elem) { - listener.enterOperator_def_elem(this); + if(listener.enterOperatorDefElem) { + listener.enterOperatorDefElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOperator_def_elem) { - listener.exitOperator_def_elem(this); + if(listener.exitOperatorDefElem) { + listener.exitOperatorDefElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOperator_def_elem) { - return visitor.visitOperator_def_elem(this); + if (visitor.visitOperatorDefElem) { + return visitor.visitOperatorDefElem(this); } else { return visitor.visitChildren(this); } @@ -72084,14 +71631,14 @@ export class AlterTypeStmtContext extends antlr.ParserRuleContext { public KW_TYPE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TYPE, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } public KW_SET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SET, 0)!; } - public operator_def_list(): Operator_def_listContext { - return this.getRuleContext(0, Operator_def_listContext)!; + public operatorDefList(): OperatorDefListContext { + return this.getRuleContext(0, OperatorDefListContext)!; } public override get ruleIndex(): number { return PostgreSqlParser.RULE_alterTypeStmt; @@ -72126,11 +71673,11 @@ export class AlterOwnerStmtContext extends antlr.ParserRuleContext { public KW_OPERATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public KW_OWNER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_OWNER, 0)!; @@ -72156,8 +71703,8 @@ export class AlterOwnerStmtContext extends antlr.ParserRuleContext { public KW_DATABASE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DATABASE, 0); } - public database_name(): Database_nameContext | null { - return this.getRuleContext(0, Database_nameContext); + public databaseName(): DatabaseNameContext | null { + return this.getRuleContext(0, DatabaseNameContext); } public KW_FUNCTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FUNCTION, 0); @@ -72198,8 +71745,8 @@ export class AlterOwnerStmtContext extends antlr.ParserRuleContext { public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); } - public schema_name(): Schema_nameContext | null { - return this.getRuleContext(0, Schema_nameContext); + public schemaName(): SchemaNameContext | null { + return this.getRuleContext(0, SchemaNameContext); } public optTableSpace(): OptTableSpaceContext | null { return this.getRuleContext(0, OptTableSpaceContext); @@ -72300,8 +71847,8 @@ export class CreatePublicationStmtContext extends antlr.ParserRuleContext { public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public relation_expr_list(): Relation_expr_listContext | null { - return this.getRuleContext(0, Relation_expr_listContext); + public relationExprList(): RelationExprListContext | null { + return this.getRuleContext(0, RelationExprListContext); } public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); @@ -72309,8 +71856,8 @@ export class CreatePublicationStmtContext extends antlr.ParserRuleContext { public KW_TABLES(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLES, 0); } - public opt_definition(): Opt_definitionContext | null { - return this.getRuleContext(0, Opt_definitionContext); + public optDefinition(): OptDefinitionContext | null { + return this.getRuleContext(0, OptDefinitionContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_createPublicationStmt; @@ -72354,14 +71901,14 @@ export class AlterPublicationStmtContext extends antlr.ParserRuleContext { return this.getRuleContext(i, ColIdContext); } - public publication_relation_expr(): Publication_relation_exprContext[]; - public publication_relation_expr(i: number): Publication_relation_exprContext | null; - public publication_relation_expr(i?: number): Publication_relation_exprContext[] | Publication_relation_exprContext | null { + public publicationRelationExpr(): PublicationRelationExprContext[]; + public publicationRelationExpr(i: number): PublicationRelationExprContext | null; + public publicationRelationExpr(i?: number): PublicationRelationExprContext[] | PublicationRelationExprContext | null { if (i === undefined) { - return this.getRuleContexts(Publication_relation_exprContext); + return this.getRuleContexts(PublicationRelationExprContext); } - return this.getRuleContext(i, Publication_relation_exprContext); + return this.getRuleContext(i, PublicationRelationExprContext); } public KW_ADD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADD, 0); @@ -72450,8 +71997,8 @@ export class CreateSubscriptionStmtContext extends antlr.ParserRuleContext { return this.getRuleContext(i, ColLabelContext); } - public opt_definition(): Opt_definitionContext | null { - return this.getRuleContext(0, Opt_definitionContext); + public optDefinition(): OptDefinitionContext | null { + return this.getRuleContext(0, OptDefinitionContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -72516,8 +72063,8 @@ export class AlterSubscriptionStmtContext extends antlr.ParserRuleContext { public KW_PUBLICATION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_PUBLICATION, 0); } - public opt_definition(): Opt_definitionContext | null { - return this.getRuleContext(0, Opt_definitionContext); + public optDefinition(): OptDefinitionContext | null { + return this.getRuleContext(0, OptDefinitionContext); } public KW_ADD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADD, 0); @@ -72555,8 +72102,8 @@ export class AlterSubscriptionStmtContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public old_aggregate_elem(): Old_aggregate_elemContext | null { - return this.getRuleContext(0, Old_aggregate_elemContext); + public oldAggregateElem(): OldAggregateElemContext | null { + return this.getRuleContext(0, OldAggregateElemContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); @@ -72615,8 +72162,8 @@ export class RuleStmtContext extends antlr.ParserRuleContext { public KW_TO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TO, 0)!; } - public qualified_name(): Qualified_nameContext { - return this.getRuleContext(0, Qualified_nameContext)!; + public qualifiedName(): QualifiedNameContext { + return this.getRuleContext(0, QualifiedNameContext)!; } public KW_DO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DO, 0)!; @@ -72651,11 +72198,11 @@ export class RuleStmtContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } - public opt_or_replace(): Opt_or_replaceContext | null { - return this.getRuleContext(0, Opt_or_replaceContext); + public orReplaceOpt(): OrReplaceOptContext | null { + return this.getRuleContext(0, OrReplaceOptContext); } - public where_clause(): Where_clauseContext | null { - return this.getRuleContext(0, Where_clauseContext); + public whereClause(): WhereClauseContext | null { + return this.getRuleContext(0, WhereClauseContext); } public KW_INSTEAD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INSTEAD, 0); @@ -72747,8 +72294,8 @@ export class NotifyStmtContext extends antlr.ParserRuleContext { public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } - public notify_payload(): Notify_payloadContext | null { - return this.getRuleContext(0, Notify_payloadContext); + public notifyPayload(): NotifyPayloadContext | null { + return this.getRuleContext(0, NotifyPayloadContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_notifyStmt; @@ -72773,7 +72320,7 @@ export class NotifyStmtContext extends antlr.ParserRuleContext { } -export class Notify_payloadContext extends antlr.ParserRuleContext { +export class NotifyPayloadContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -72784,21 +72331,21 @@ export class Notify_payloadContext extends antlr.ParserRuleContext { return this.getRuleContext(0, StringConstContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_notify_payload; + return PostgreSqlParser.RULE_notifyPayload; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterNotify_payload) { - listener.enterNotify_payload(this); + if(listener.enterNotifyPayload) { + listener.enterNotifyPayload(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitNotify_payload) { - listener.exitNotify_payload(this); + if(listener.exitNotifyPayload) { + listener.exitNotifyPayload(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitNotify_payload) { - return visitor.visitNotify_payload(this); + if (visitor.visitNotifyPayload) { + return visitor.visitNotifyPayload(this); } else { return visitor.visitChildren(this); } @@ -72882,11 +72429,11 @@ export class TransactionStmtContext extends antlr.ParserRuleContext { public KW_BEGIN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BEGIN, 0); } - public opt_transaction(): Opt_transactionContext | null { - return this.getRuleContext(0, Opt_transactionContext); + public optTransaction(): OptTransactionContext | null { + return this.getRuleContext(0, OptTransactionContext); } - public transaction_mode_list(): Transaction_mode_listContext | null { - return this.getRuleContext(0, Transaction_mode_listContext); + public transactionModeList(): TransactionModeListContext | null { + return this.getRuleContext(0, TransactionModeListContext); } public KW_START(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_START, 0); @@ -72959,7 +72506,7 @@ export class TransactionStmtContext extends antlr.ParserRuleContext { } -export class Opt_transactionContext extends antlr.ParserRuleContext { +export class OptTransactionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -72970,21 +72517,21 @@ export class Opt_transactionContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_TRANSACTION, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_transaction; + return PostgreSqlParser.RULE_optTransaction; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_transaction) { - listener.enterOpt_transaction(this); + if(listener.enterOptTransaction) { + listener.enterOptTransaction(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_transaction) { - listener.exitOpt_transaction(this); + if(listener.exitOptTransaction) { + listener.exitOptTransaction(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_transaction) { - return visitor.visitOpt_transaction(this); + if (visitor.visitOptTransaction) { + return visitor.visitOptTransaction(this); } else { return visitor.visitChildren(this); } @@ -72992,7 +72539,7 @@ export class Opt_transactionContext extends antlr.ParserRuleContext { } -export class Transaction_mode_itemContext extends antlr.ParserRuleContext { +export class TransactionModeItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73002,8 +72549,8 @@ export class Transaction_mode_itemContext extends antlr.ParserRuleContext { public KW_LEVEL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LEVEL, 0); } - public iso_level(): Iso_levelContext | null { - return this.getRuleContext(0, Iso_levelContext); + public isoLevel(): IsoLevelContext | null { + return this.getRuleContext(0, IsoLevelContext); } public KW_READ(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_READ, 0); @@ -73021,21 +72568,21 @@ export class Transaction_mode_itemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NOT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_transaction_mode_item; + return PostgreSqlParser.RULE_transactionModeItem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTransaction_mode_item) { - listener.enterTransaction_mode_item(this); + if(listener.enterTransactionModeItem) { + listener.enterTransactionModeItem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTransaction_mode_item) { - listener.exitTransaction_mode_item(this); + if(listener.exitTransactionModeItem) { + listener.exitTransactionModeItem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTransaction_mode_item) { - return visitor.visitTransaction_mode_item(this); + if (visitor.visitTransactionModeItem) { + return visitor.visitTransactionModeItem(this); } else { return visitor.visitChildren(this); } @@ -73043,18 +72590,18 @@ export class Transaction_mode_itemContext extends antlr.ParserRuleContext { } -export class Transaction_mode_listContext extends antlr.ParserRuleContext { +export class TransactionModeListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public transaction_mode_item(): Transaction_mode_itemContext[]; - public transaction_mode_item(i: number): Transaction_mode_itemContext | null; - public transaction_mode_item(i?: number): Transaction_mode_itemContext[] | Transaction_mode_itemContext | null { + public transactionModeItem(): TransactionModeItemContext[]; + public transactionModeItem(i: number): TransactionModeItemContext | null; + public transactionModeItem(i?: number): TransactionModeItemContext[] | TransactionModeItemContext | null { if (i === undefined) { - return this.getRuleContexts(Transaction_mode_itemContext); + return this.getRuleContexts(TransactionModeItemContext); } - return this.getRuleContext(i, Transaction_mode_itemContext); + return this.getRuleContext(i, TransactionModeItemContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -73066,21 +72613,21 @@ export class Transaction_mode_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_transaction_mode_list; + return PostgreSqlParser.RULE_transactionModeList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTransaction_mode_list) { - listener.enterTransaction_mode_list(this); + if(listener.enterTransactionModeList) { + listener.enterTransactionModeList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTransaction_mode_list) { - listener.exitTransaction_mode_list(this); + if(listener.exitTransactionModeList) { + listener.exitTransactionModeList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTransaction_mode_list) { - return visitor.visitTransaction_mode_list(this); + if (visitor.visitTransactionModeList) { + return visitor.visitTransactionModeList(this); } else { return visitor.visitChildren(this); } @@ -73116,14 +72663,14 @@ export class CreateViewContext extends ViewStmtContext { public KW_VIEW(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VIEW, 0); } - public view_name_create(): View_name_createContext | null { - return this.getRuleContext(0, View_name_createContext); + public viewNameCreate(): ViewNameCreateContext | null { + return this.getRuleContext(0, ViewNameCreateContext); } public KW_RECURSIVE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_RECURSIVE, 0); } - public opt_column_list(): Opt_column_listContext | null { - return this.getRuleContext(0, Opt_column_listContext); + public optColumnList(): OptColumnListContext | null { + return this.getRuleContext(0, OptColumnListContext); } public KW_OR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OR, 0); @@ -73143,8 +72690,8 @@ export class CreateViewContext extends ViewStmtContext { public KW_OPTION(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPTION, 0); } - public opt_column_list_create(): Opt_column_list_createContext | null { - return this.getRuleContext(0, Opt_column_list_createContext); + public columnListCreate(): ColumnListCreateContext | null { + return this.getRuleContext(0, ColumnListCreateContext); } public optRelOptions(): OptRelOptionsContext | null { return this.getRuleContext(0, OptRelOptionsContext); @@ -73230,20 +72777,20 @@ export class CreateDatabaseContext extends CreateDbStmtContext { public KW_DATABASE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DATABASE, 0)!; } - public database_name_create(): Database_name_createContext { - return this.getRuleContext(0, Database_name_createContext)!; + public databaseNameCreate(): DatabaseNameCreateContext { + return this.getRuleContext(0, DatabaseNameCreateContext)!; } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public create_db_opt_item(): Create_db_opt_itemContext[]; - public create_db_opt_item(i: number): Create_db_opt_itemContext | null; - public create_db_opt_item(i?: number): Create_db_opt_itemContext[] | Create_db_opt_itemContext | null { + public createDbOptItem(): CreateDbOptItemContext[]; + public createDbOptItem(i: number): CreateDbOptItemContext | null; + public createDbOptItem(i?: number): CreateDbOptItemContext[] | CreateDbOptItemContext | null { if (i === undefined) { - return this.getRuleContexts(Create_db_opt_itemContext); + return this.getRuleContexts(CreateDbOptItemContext); } - return this.getRuleContext(i, Create_db_opt_itemContext); + return this.getRuleContext(i, CreateDbOptItemContext); } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterCreateDatabase) { @@ -73265,7 +72812,7 @@ export class CreateDatabaseContext extends CreateDbStmtContext { } -export class Create_db_opt_itemContext extends antlr.ParserRuleContext { +export class CreateDbOptItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73296,8 +72843,8 @@ export class Create_db_opt_itemContext extends antlr.ParserRuleContext { public signedConst(): SignedConstContext | null { return this.getRuleContext(0, SignedConstContext); } - public opt_boolean_or_string(): Opt_boolean_or_stringContext | null { - return this.getRuleContext(0, Opt_boolean_or_stringContext); + public booleanOrString(): BooleanOrStringContext | null { + return this.getRuleContext(0, BooleanOrStringContext); } public KW_DEFAULT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); @@ -73306,21 +72853,21 @@ export class Create_db_opt_itemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.EQUAL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_create_db_opt_item; + return PostgreSqlParser.RULE_createDbOptItem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCreate_db_opt_item) { - listener.enterCreate_db_opt_item(this); + if(listener.enterCreateDbOptItem) { + listener.enterCreateDbOptItem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCreate_db_opt_item) { - listener.exitCreate_db_opt_item(this); + if(listener.exitCreateDbOptItem) { + listener.exitCreateDbOptItem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCreate_db_opt_item) { - return visitor.visitCreate_db_opt_item(this); + if (visitor.visitCreateDbOptItem) { + return visitor.visitCreateDbOptItem(this); } else { return visitor.visitChildren(this); } @@ -73338,8 +72885,8 @@ export class AlterDatabaseStmtContext extends antlr.ParserRuleContext { public KW_DATABASE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DATABASE, 0)!; } - public database_name(): Database_nameContext { - return this.getRuleContext(0, Database_nameContext)!; + public databaseName(): DatabaseNameContext { + return this.getRuleContext(0, DatabaseNameContext)!; } public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); @@ -73347,20 +72894,20 @@ export class AlterDatabaseStmtContext extends antlr.ParserRuleContext { public KW_TABLESPACE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLESPACE, 0); } - public tablespace_name_create(): Tablespace_name_createContext | null { - return this.getRuleContext(0, Tablespace_name_createContext); + public tableSpaceName(): TableSpaceNameContext | null { + return this.getRuleContext(0, TableSpaceNameContext); } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public create_db_opt_item(): Create_db_opt_itemContext[]; - public create_db_opt_item(i: number): Create_db_opt_itemContext | null; - public create_db_opt_item(i?: number): Create_db_opt_itemContext[] | Create_db_opt_itemContext | null { + public createDbOptItem(): CreateDbOptItemContext[]; + public createDbOptItem(i: number): CreateDbOptItemContext | null; + public createDbOptItem(i?: number): CreateDbOptItemContext[] | CreateDbOptItemContext | null { if (i === undefined) { - return this.getRuleContexts(Create_db_opt_itemContext); + return this.getRuleContexts(CreateDbOptItemContext); } - return this.getRuleContext(i, Create_db_opt_itemContext); + return this.getRuleContext(i, CreateDbOptItemContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_alterDatabaseStmt; @@ -73395,8 +72942,8 @@ export class AlterDatabaseSetStmtContext extends antlr.ParserRuleContext { public KW_DATABASE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DATABASE, 0)!; } - public database_name(): Database_nameContext { - return this.getRuleContext(0, Database_nameContext)!; + public databaseName(): DatabaseNameContext { + return this.getRuleContext(0, DatabaseNameContext)!; } public setOrResetClause(): SetOrResetClauseContext | null { return this.getRuleContext(0, SetOrResetClauseContext); @@ -73434,8 +72981,8 @@ export class AlterCollationStmtContext extends antlr.ParserRuleContext { public KW_COLLATION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_COLLATION, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } public KW_REFRESH(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_REFRESH, 0)!; @@ -73476,8 +73023,8 @@ export class AlterSystemStmtContext extends antlr.ParserRuleContext { public KW_SYSTEM(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SYSTEM, 0)!; } - public generic_set(): Generic_setContext { - return this.getRuleContext(0, Generic_setContext)!; + public genericSet(): GenericSetContext { + return this.getRuleContext(0, GenericSetContext)!; } public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); @@ -73518,8 +73065,8 @@ export class CreateDomainStmtContext extends antlr.ParserRuleContext { public KW_DOMAIN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DOMAIN, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } public typename(): TypenameContext { return this.getRuleContext(0, TypenameContext)!; @@ -73569,11 +73116,11 @@ export class AlterDomainStmtContext extends antlr.ParserRuleContext { public KW_DOMAIN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DOMAIN, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } - public alter_column_default(): Alter_column_defaultContext | null { - return this.getRuleContext(0, Alter_column_defaultContext); + public alterColumnDefault(): AlterColumnDefaultContext | null { + return this.getRuleContext(0, AlterColumnDefaultContext); } public KW_NOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOT, 0); @@ -73602,11 +73149,11 @@ export class AlterDomainStmtContext extends antlr.ParserRuleContext { public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } - public opt_drop_behavior(): Opt_drop_behaviorContext | null { - return this.getRuleContext(0, Opt_drop_behaviorContext); + public optDropBehavior(): OptDropBehaviorContext | null { + return this.getRuleContext(0, OptDropBehaviorContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_alterDomainStmt; @@ -73647,8 +73194,8 @@ export class AlterSearchDictionaryStmtContext extends antlr.ParserRuleContext { public KW_DICTIONARY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_DICTIONARY, 0)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } public definition(): DefinitionContext { return this.getRuleContext(0, DefinitionContext)!; @@ -73698,14 +73245,14 @@ export class AlterSearchConfigurationStmtContext extends antlr.ParserRuleContext public KW_CONFIGURATION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CONFIGURATION, 0)!; } - public any_name(): Any_nameContext[]; - public any_name(i: number): Any_nameContext | null; - public any_name(i?: number): Any_nameContext[] | Any_nameContext | null { + public anyName(): AnyNameContext[]; + public anyName(i: number): AnyNameContext | null; + public anyName(i?: number): AnyNameContext[] | AnyNameContext | null { if (i === undefined) { - return this.getRuleContexts(Any_nameContext); + return this.getRuleContexts(AnyNameContext); } - return this.getRuleContext(i, Any_nameContext); + return this.getRuleContext(i, AnyNameContext); } public KW_MAPPING(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_MAPPING, 0)!; @@ -73713,14 +73260,14 @@ export class AlterSearchConfigurationStmtContext extends antlr.ParserRuleContext public KW_FOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOR, 0); } - public name_list(): Name_listContext | null { - return this.getRuleContext(0, Name_listContext); + public nameList(): NameListContext | null { + return this.getRuleContext(0, NameListContext); } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); } - public any_name_list(): Any_name_listContext | null { - return this.getRuleContext(0, Any_name_listContext); + public anyNameList(): AnyNameListContext | null { + return this.getRuleContext(0, AnyNameListContext); } public KW_ADD(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ADD, 0); @@ -73731,8 +73278,8 @@ export class AlterSearchConfigurationStmtContext extends antlr.ParserRuleContext public KW_DROP(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DROP, 0); } - public opt_if_exists(): Opt_if_existsContext | null { - return this.getRuleContext(0, Opt_if_existsContext); + public ifExists(): IfExistsContext | null { + return this.getRuleContext(0, IfExistsContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_alterSearchConfigurationStmt; @@ -73767,14 +73314,14 @@ export class CreateConversionStmtContext extends antlr.ParserRuleContext { public KW_CONVERSION(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CONVERSION, 0)!; } - public any_name(): Any_nameContext[]; - public any_name(i: number): Any_nameContext | null; - public any_name(i?: number): Any_nameContext[] | Any_nameContext | null { + public anyName(): AnyNameContext[]; + public anyName(i: number): AnyNameContext | null; + public anyName(i?: number): AnyNameContext[] | AnyNameContext | null { if (i === undefined) { - return this.getRuleContexts(Any_nameContext); + return this.getRuleContexts(AnyNameContext); } - return this.getRuleContext(i, Any_nameContext); + return this.getRuleContext(i, AnyNameContext); } public KW_FOR(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FOR, 0)!; @@ -73827,20 +73374,20 @@ export class ClusterStmtContext extends antlr.ParserRuleContext { public KW_CLUSTER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CLUSTER, 0)!; } - public opt_verbose(): Opt_verboseContext[]; - public opt_verbose(i: number): Opt_verboseContext | null; - public opt_verbose(i?: number): Opt_verboseContext[] | Opt_verboseContext | null { + public optVerbose(): OptVerboseContext[]; + public optVerbose(i: number): OptVerboseContext | null; + public optVerbose(i?: number): OptVerboseContext[] | OptVerboseContext | null { if (i === undefined) { - return this.getRuleContexts(Opt_verboseContext); + return this.getRuleContexts(OptVerboseContext); } - return this.getRuleContext(i, Opt_verboseContext); + return this.getRuleContext(i, OptVerboseContext); } - public table_name(): Table_nameContext | null { - return this.getRuleContext(0, Table_nameContext); + public tableName(): TableNameContext | null { + return this.getRuleContext(0, TableNameContext); } - public table_access_method_clause(): Table_access_method_clauseContext | null { - return this.getRuleContext(0, Table_access_method_clauseContext); + public tableAccessMethodClause(): TableAccessMethodClauseContext | null { + return this.getRuleContext(0, TableAccessMethodClauseContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -73887,11 +73434,11 @@ export class VacuumStmtContext extends antlr.ParserRuleContext { public KW_VACUUM(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_VACUUM, 0)!; } - public vacuum_relation_list(): Vacuum_relation_listContext | null { - return this.getRuleContext(0, Vacuum_relation_listContext); + public vacuumRelationList(): VacuumRelationListContext | null { + return this.getRuleContext(0, VacuumRelationListContext); } - public explain_option_list(): Explain_option_listContext | null { - return this.getRuleContext(0, Explain_option_listContext); + public explainOptionList(): ExplainOptionListContext | null { + return this.getRuleContext(0, ExplainOptionListContext); } public KW_FULL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FULL, 0); @@ -73899,11 +73446,11 @@ export class VacuumStmtContext extends antlr.ParserRuleContext { public KW_FREEZE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FREEZE, 0); } - public opt_verbose(): Opt_verboseContext | null { - return this.getRuleContext(0, Opt_verboseContext); + public optVerbose(): OptVerboseContext | null { + return this.getRuleContext(0, OptVerboseContext); } - public analyze_keyword(): Analyze_keywordContext | null { - return this.getRuleContext(0, Analyze_keywordContext); + public analyzeKeyword(): AnalyzeKeywordContext | null { + return this.getRuleContext(0, AnalyzeKeywordContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_vacuumStmt; @@ -73932,29 +73479,29 @@ export class AnalyzeStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public analyze_keyword(): Analyze_keywordContext { - return this.getRuleContext(0, Analyze_keywordContext)!; + public analyzeKeyword(): AnalyzeKeywordContext { + return this.getRuleContext(0, AnalyzeKeywordContext)!; } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public analyze_option_elem(): Analyze_option_elemContext[]; - public analyze_option_elem(i: number): Analyze_option_elemContext | null; - public analyze_option_elem(i?: number): Analyze_option_elemContext[] | Analyze_option_elemContext | null { + public analyzeOptionElem(): AnalyzeOptionElemContext[]; + public analyzeOptionElem(i: number): AnalyzeOptionElemContext | null; + public analyzeOptionElem(i?: number): AnalyzeOptionElemContext[] | AnalyzeOptionElemContext | null { if (i === undefined) { - return this.getRuleContexts(Analyze_option_elemContext); + return this.getRuleContexts(AnalyzeOptionElemContext); } - return this.getRuleContext(i, Analyze_option_elemContext); + return this.getRuleContext(i, AnalyzeOptionElemContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } - public vacuum_relation_list(): Vacuum_relation_listContext | null { - return this.getRuleContext(0, Vacuum_relation_listContext); + public vacuumRelationList(): VacuumRelationListContext | null { + return this.getRuleContext(0, VacuumRelationListContext); } - public opt_verbose(): Opt_verboseContext | null { - return this.getRuleContext(0, Opt_verboseContext); + public optVerbose(): OptVerboseContext | null { + return this.getRuleContext(0, OptVerboseContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -73988,7 +73535,7 @@ export class AnalyzeStmtContext extends antlr.ParserRuleContext { } -export class Analyze_keywordContext extends antlr.ParserRuleContext { +export class AnalyzeKeywordContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -73999,21 +73546,21 @@ export class Analyze_keywordContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ANALYSE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_analyze_keyword; + return PostgreSqlParser.RULE_analyzeKeyword; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAnalyze_keyword) { - listener.enterAnalyze_keyword(this); + if(listener.enterAnalyzeKeyword) { + listener.enterAnalyzeKeyword(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAnalyze_keyword) { - listener.exitAnalyze_keyword(this); + if(listener.exitAnalyzeKeyword) { + listener.exitAnalyzeKeyword(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAnalyze_keyword) { - return visitor.visitAnalyze_keyword(this); + if (visitor.visitAnalyzeKeyword) { + return visitor.visitAnalyzeKeyword(this); } else { return visitor.visitChildren(this); } @@ -74021,38 +73568,38 @@ export class Analyze_keywordContext extends antlr.ParserRuleContext { } -export class Vac_analyze_option_elemContext extends antlr.ParserRuleContext { +export class VacAnalyzeOptionElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public nonReservedWord(): NonReservedWordContext | null { return this.getRuleContext(0, NonReservedWordContext); } - public analyze_keyword(): Analyze_keywordContext | null { - return this.getRuleContext(0, Analyze_keywordContext); + public analyzeKeyword(): AnalyzeKeywordContext | null { + return this.getRuleContext(0, AnalyzeKeywordContext); } - public opt_boolean_or_string(): Opt_boolean_or_stringContext | null { - return this.getRuleContext(0, Opt_boolean_or_stringContext); + public booleanOrString(): BooleanOrStringContext | null { + return this.getRuleContext(0, BooleanOrStringContext); } public numericOnly(): NumericOnlyContext | null { return this.getRuleContext(0, NumericOnlyContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_vac_analyze_option_elem; + return PostgreSqlParser.RULE_vacAnalyzeOptionElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterVac_analyze_option_elem) { - listener.enterVac_analyze_option_elem(this); + if(listener.enterVacAnalyzeOptionElem) { + listener.enterVacAnalyzeOptionElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitVac_analyze_option_elem) { - listener.exitVac_analyze_option_elem(this); + if(listener.exitVacAnalyzeOptionElem) { + listener.exitVacAnalyzeOptionElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitVac_analyze_option_elem) { - return visitor.visitVac_analyze_option_elem(this); + if (visitor.visitVacAnalyzeOptionElem) { + return visitor.visitVacAnalyzeOptionElem(this); } else { return visitor.visitChildren(this); } @@ -74060,7 +73607,7 @@ export class Vac_analyze_option_elemContext extends antlr.ParserRuleContext { } -export class Analyze_option_elemContext extends antlr.ParserRuleContext { +export class AnalyzeOptionElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -74086,21 +73633,21 @@ export class Analyze_option_elemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, StringConstContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_analyze_option_elem; + return PostgreSqlParser.RULE_analyzeOptionElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAnalyze_option_elem) { - listener.enterAnalyze_option_elem(this); + if(listener.enterAnalyzeOptionElem) { + listener.enterAnalyzeOptionElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAnalyze_option_elem) { - listener.exitAnalyze_option_elem(this); + if(listener.exitAnalyzeOptionElem) { + listener.exitAnalyzeOptionElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAnalyze_option_elem) { - return visitor.visitAnalyze_option_elem(this); + if (visitor.visitAnalyzeOptionElem) { + return visitor.visitAnalyzeOptionElem(this); } else { return visitor.visitChildren(this); } @@ -74108,7 +73655,7 @@ export class Analyze_option_elemContext extends antlr.ParserRuleContext { } -export class Opt_verboseContext extends antlr.ParserRuleContext { +export class OptVerboseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -74122,21 +73669,21 @@ export class Opt_verboseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_TRUE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_verbose; + return PostgreSqlParser.RULE_optVerbose; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_verbose) { - listener.enterOpt_verbose(this); + if(listener.enterOptVerbose) { + listener.enterOptVerbose(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_verbose) { - listener.exitOpt_verbose(this); + if(listener.exitOptVerbose) { + listener.exitOptVerbose(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_verbose) { - return visitor.visitOpt_verbose(this); + if (visitor.visitOptVerbose) { + return visitor.visitOptVerbose(this); } else { return visitor.visitChildren(this); } @@ -74144,32 +73691,32 @@ export class Opt_verboseContext extends antlr.ParserRuleContext { } -export class Vacuum_relationContext extends antlr.ParserRuleContext { +export class VacuumRelationContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public table_name(): Table_nameContext { - return this.getRuleContext(0, Table_nameContext)!; + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext)!; } - public opt_column_list(): Opt_column_listContext | null { - return this.getRuleContext(0, Opt_column_listContext); + public optColumnList(): OptColumnListContext | null { + return this.getRuleContext(0, OptColumnListContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_vacuum_relation; + return PostgreSqlParser.RULE_vacuumRelation; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterVacuum_relation) { - listener.enterVacuum_relation(this); + if(listener.enterVacuumRelation) { + listener.enterVacuumRelation(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitVacuum_relation) { - listener.exitVacuum_relation(this); + if(listener.exitVacuumRelation) { + listener.exitVacuumRelation(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitVacuum_relation) { - return visitor.visitVacuum_relation(this); + if (visitor.visitVacuumRelation) { + return visitor.visitVacuumRelation(this); } else { return visitor.visitChildren(this); } @@ -74177,18 +73724,18 @@ export class Vacuum_relationContext extends antlr.ParserRuleContext { } -export class Vacuum_relation_listContext extends antlr.ParserRuleContext { +export class VacuumRelationListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public vacuum_relation(): Vacuum_relationContext[]; - public vacuum_relation(i: number): Vacuum_relationContext | null; - public vacuum_relation(i?: number): Vacuum_relationContext[] | Vacuum_relationContext | null { + public vacuumRelation(): VacuumRelationContext[]; + public vacuumRelation(i: number): VacuumRelationContext | null; + public vacuumRelation(i?: number): VacuumRelationContext[] | VacuumRelationContext | null { if (i === undefined) { - return this.getRuleContexts(Vacuum_relationContext); + return this.getRuleContexts(VacuumRelationContext); } - return this.getRuleContext(i, Vacuum_relationContext); + return this.getRuleContext(i, VacuumRelationContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -74200,21 +73747,21 @@ export class Vacuum_relation_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_vacuum_relation_list; + return PostgreSqlParser.RULE_vacuumRelationList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterVacuum_relation_list) { - listener.enterVacuum_relation_list(this); + if(listener.enterVacuumRelationList) { + listener.enterVacuumRelationList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitVacuum_relation_list) { - listener.exitVacuum_relation_list(this); + if(listener.exitVacuumRelationList) { + listener.exitVacuumRelationList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitVacuum_relation_list) { - return visitor.visitVacuum_relation_list(this); + if (visitor.visitVacuumRelationList) { + return visitor.visitVacuumRelationList(this); } else { return visitor.visitChildren(this); } @@ -74232,17 +73779,17 @@ export class ExplainStmtContext extends antlr.ParserRuleContext { public explainableStmt(): ExplainableStmtContext { return this.getRuleContext(0, ExplainableStmtContext)!; } - public explain_option_list(): Explain_option_listContext | null { - return this.getRuleContext(0, Explain_option_listContext); + public explainOptionList(): ExplainOptionListContext | null { + return this.getRuleContext(0, ExplainOptionListContext); } public KW_VERBOSE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VERBOSE, 0); } - public analyze_keyword(): Analyze_keywordContext | null { - return this.getRuleContext(0, Analyze_keywordContext); + public analyzeKeyword(): AnalyzeKeywordContext | null { + return this.getRuleContext(0, AnalyzeKeywordContext); } - public opt_verbose(): Opt_verboseContext | null { - return this.getRuleContext(0, Opt_verboseContext); + public optVerbose(): OptVerboseContext | null { + return this.getRuleContext(0, OptVerboseContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_explainStmt; @@ -74321,21 +73868,21 @@ export class ExplainableStmtContext extends antlr.ParserRuleContext { } -export class Explain_option_listContext extends antlr.ParserRuleContext { +export class ExplainOptionListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public vac_analyze_option_elem(): Vac_analyze_option_elemContext[]; - public vac_analyze_option_elem(i: number): Vac_analyze_option_elemContext | null; - public vac_analyze_option_elem(i?: number): Vac_analyze_option_elemContext[] | Vac_analyze_option_elemContext | null { + public vacAnalyzeOptionElem(): VacAnalyzeOptionElemContext[]; + public vacAnalyzeOptionElem(i: number): VacAnalyzeOptionElemContext | null; + public vacAnalyzeOptionElem(i?: number): VacAnalyzeOptionElemContext[] | VacAnalyzeOptionElemContext | null { if (i === undefined) { - return this.getRuleContexts(Vac_analyze_option_elemContext); + return this.getRuleContexts(VacAnalyzeOptionElemContext); } - return this.getRuleContext(i, Vac_analyze_option_elemContext); + return this.getRuleContext(i, VacAnalyzeOptionElemContext); } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; @@ -74350,21 +73897,21 @@ export class Explain_option_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_explain_option_list; + return PostgreSqlParser.RULE_explainOptionList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterExplain_option_list) { - listener.enterExplain_option_list(this); + if(listener.enterExplainOptionList) { + listener.enterExplainOptionList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitExplain_option_list) { - listener.exitExplain_option_list(this); + if(listener.exitExplainOptionList) { + listener.exitExplainOptionList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitExplain_option_list) { - return visitor.visitExplain_option_list(this); + if (visitor.visitExplainOptionList) { + return visitor.visitExplainOptionList(this); } else { return visitor.visitChildren(this); } @@ -74388,8 +73935,8 @@ export class PrepareStmtContext extends antlr.ParserRuleContext { public preParableStmt(): PreParableStmtContext { return this.getRuleContext(0, PreParableStmtContext)!; } - public prep_type_clause(): Prep_type_clauseContext | null { - return this.getRuleContext(0, Prep_type_clauseContext); + public prepTypeClause(): PrepTypeClauseContext | null { + return this.getRuleContext(0, PrepTypeClauseContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_prepareStmt; @@ -74414,7 +73961,7 @@ export class PrepareStmtContext extends antlr.ParserRuleContext { } -export class Prep_type_clauseContext extends antlr.ParserRuleContext { +export class PrepTypeClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -74443,21 +73990,21 @@ export class Prep_type_clauseContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_prep_type_clause; + return PostgreSqlParser.RULE_prepTypeClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPrep_type_clause) { - listener.enterPrep_type_clause(this); + if(listener.enterPrepTypeClause) { + listener.enterPrepTypeClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPrep_type_clause) { - listener.exitPrep_type_clause(this); + if(listener.exitPrepTypeClause) { + listener.exitPrepTypeClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPrep_type_clause) { - return visitor.visitPrep_type_clause(this); + if (visitor.visitPrepTypeClause) { + return visitor.visitPrepTypeClause(this); } else { return visitor.visitChildren(this); } @@ -74517,8 +74064,8 @@ export class ExecuteStmtContext extends antlr.ParserRuleContext { public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } - public execute_param_clause(): Execute_param_clauseContext | null { - return this.getRuleContext(0, Execute_param_clauseContext); + public executeParamClause(): ExecuteParamClauseContext | null { + return this.getRuleContext(0, ExecuteParamClauseContext); } public KW_CREATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CREATE, 0); @@ -74526,8 +74073,8 @@ export class ExecuteStmtContext extends antlr.ParserRuleContext { public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public create_as_target(): Create_as_targetContext | null { - return this.getRuleContext(0, Create_as_targetContext); + public createAsTarget(): CreateAsTargetContext | null { + return this.getRuleContext(0, CreateAsTargetContext); } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); @@ -74535,11 +74082,11 @@ export class ExecuteStmtContext extends antlr.ParserRuleContext { public optTemp(): OptTempContext | null { return this.getRuleContext(0, OptTempContext); } - public opt_if_not_exists(): Opt_if_not_existsContext | null { - return this.getRuleContext(0, Opt_if_not_existsContext); + public ifNotExists(): IfNotExistsContext | null { + return this.getRuleContext(0, IfNotExistsContext); } - public opt_with_data(): Opt_with_dataContext | null { - return this.getRuleContext(0, Opt_with_dataContext); + public optWithData(): OptWithDataContext | null { + return this.getRuleContext(0, OptWithDataContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_executeStmt; @@ -74564,35 +74111,35 @@ export class ExecuteStmtContext extends antlr.ParserRuleContext { } -export class Execute_param_clauseContext extends antlr.ParserRuleContext { +export class ExecuteParamClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; } - public expr_list(): Expr_listContext { - return this.getRuleContext(0, Expr_listContext)!; + public exprList(): ExprListContext { + return this.getRuleContext(0, ExprListContext)!; } public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_execute_param_clause; + return PostgreSqlParser.RULE_executeParamClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterExecute_param_clause) { - listener.enterExecute_param_clause(this); + if(listener.enterExecuteParamClause) { + listener.enterExecuteParamClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitExecute_param_clause) { - listener.exitExecute_param_clause(this); + if(listener.exitExecuteParamClause) { + listener.exitExecuteParamClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitExecute_param_clause) { - return visitor.visitExecute_param_clause(this); + if (visitor.visitExecuteParamClause) { + return visitor.visitExecuteParamClause(this); } else { return visitor.visitChildren(this); } @@ -74661,14 +74208,14 @@ export class InsertStatementContext extends InsertStmtContext { public KW_INTO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_INTO, 0)!; } - public table_name(): Table_nameContext { - return this.getRuleContext(0, Table_nameContext)!; + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext)!; } - public insert_rest(): Insert_restContext { - return this.getRuleContext(0, Insert_restContext)!; + public insertRest(): InsertRestContext { + return this.getRuleContext(0, InsertRestContext)!; } - public with_clause(): With_clauseContext | null { - return this.getRuleContext(0, With_clauseContext); + public withClause(): WithClauseContext | null { + return this.getRuleContext(0, WithClauseContext); } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); @@ -74697,8 +74244,8 @@ export class InsertStatementContext extends InsertStmtContext { public KW_DO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DO, 0); } - public returning_clause(): Returning_clauseContext | null { - return this.getRuleContext(0, Returning_clauseContext); + public returningClause(): ReturningClauseContext | null { + return this.getRuleContext(0, ReturningClauseContext); } public KW_UPDATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_UPDATE, 0); @@ -74706,26 +74253,26 @@ export class InsertStatementContext extends InsertStmtContext { public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); } - public set_clause_list(): Set_clause_listContext | null { - return this.getRuleContext(0, Set_clause_listContext); + public setClauseList(): SetClauseListContext | null { + return this.getRuleContext(0, SetClauseListContext); } public KW_NOTHING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOTHING, 0); } - public index_params(): Index_paramsContext | null { - return this.getRuleContext(0, Index_paramsContext); + public indexParams(): IndexParamsContext | null { + return this.getRuleContext(0, IndexParamsContext); } public KW_CONSTRAINT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONSTRAINT, 0); } - public where_clause(): Where_clauseContext[]; - public where_clause(i: number): Where_clauseContext | null; - public where_clause(i?: number): Where_clauseContext[] | Where_clauseContext | null { + public whereClause(): WhereClauseContext[]; + public whereClause(i: number): WhereClauseContext | null; + public whereClause(i?: number): WhereClauseContext[] | WhereClauseContext | null { if (i === undefined) { - return this.getRuleContexts(Where_clauseContext); + return this.getRuleContexts(WhereClauseContext); } - return this.getRuleContext(i, Where_clauseContext); + return this.getRuleContext(i, WhereClauseContext); } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterInsertStatement) { @@ -74747,12 +74294,12 @@ export class InsertStatementContext extends InsertStmtContext { } -export class Insert_restContext extends antlr.ParserRuleContext { +export class InsertRestContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public default_values_or_values(): Default_values_or_valuesContext | null { - return this.getRuleContext(0, Default_values_or_valuesContext); + public defaultValuesOrValues(): DefaultValuesOrValuesContext | null { + return this.getRuleContext(0, DefaultValuesOrValuesContext); } public selectStmt(): SelectStmtContext | null { return this.getRuleContext(0, SelectStmtContext); @@ -74760,8 +74307,8 @@ export class Insert_restContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public insert_column_list(): Insert_column_listContext | null { - return this.getRuleContext(0, Insert_column_listContext); + public insertColumnList(): InsertColumnListContext | null { + return this.getRuleContext(0, InsertColumnListContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); @@ -74779,21 +74326,21 @@ export class Insert_restContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_SYSTEM, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_insert_rest; + return PostgreSqlParser.RULE_insertRest; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterInsert_rest) { - listener.enterInsert_rest(this); + if(listener.enterInsertRest) { + listener.enterInsertRest(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitInsert_rest) { - listener.exitInsert_rest(this); + if(listener.exitInsertRest) { + listener.exitInsertRest(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitInsert_rest) { - return visitor.visitInsert_rest(this); + if (visitor.visitInsertRest) { + return visitor.visitInsertRest(this); } else { return visitor.visitChildren(this); } @@ -74801,18 +74348,18 @@ export class Insert_restContext extends antlr.ParserRuleContext { } -export class Insert_column_listContext extends antlr.ParserRuleContext { +export class InsertColumnListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public insert_column_item(): Insert_column_itemContext[]; - public insert_column_item(i: number): Insert_column_itemContext | null; - public insert_column_item(i?: number): Insert_column_itemContext[] | Insert_column_itemContext | null { + public insertColumnItem(): InsertColumnItemContext[]; + public insertColumnItem(i: number): InsertColumnItemContext | null; + public insertColumnItem(i?: number): InsertColumnItemContext[] | InsertColumnItemContext | null { if (i === undefined) { - return this.getRuleContexts(Insert_column_itemContext); + return this.getRuleContexts(InsertColumnItemContext); } - return this.getRuleContext(i, Insert_column_itemContext); + return this.getRuleContext(i, InsertColumnItemContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -74824,21 +74371,21 @@ export class Insert_column_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_insert_column_list; + return PostgreSqlParser.RULE_insertColumnList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterInsert_column_list) { - listener.enterInsert_column_list(this); + if(listener.enterInsertColumnList) { + listener.enterInsertColumnList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitInsert_column_list) { - listener.exitInsert_column_list(this); + if(listener.exitInsertColumnList) { + listener.exitInsertColumnList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitInsert_column_list) { - return visitor.visitInsert_column_list(this); + if (visitor.visitInsertColumnList) { + return visitor.visitInsertColumnList(this); } else { return visitor.visitChildren(this); } @@ -74846,32 +74393,32 @@ export class Insert_column_listContext extends antlr.ParserRuleContext { } -export class Insert_column_itemContext extends antlr.ParserRuleContext { +export class InsertColumnItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_name(): Column_nameContext { - return this.getRuleContext(0, Column_nameContext)!; + public columnName(): ColumnNameContext { + return this.getRuleContext(0, ColumnNameContext)!; } - public opt_indirection(): Opt_indirectionContext { - return this.getRuleContext(0, Opt_indirectionContext)!; + public optIndirection(): OptIndirectionContext { + return this.getRuleContext(0, OptIndirectionContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_insert_column_item; + return PostgreSqlParser.RULE_insertColumnItem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterInsert_column_item) { - listener.enterInsert_column_item(this); + if(listener.enterInsertColumnItem) { + listener.enterInsertColumnItem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitInsert_column_item) { - listener.exitInsert_column_item(this); + if(listener.exitInsertColumnItem) { + listener.exitInsertColumnItem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitInsert_column_item) { - return visitor.visitInsert_column_item(this); + if (visitor.visitInsertColumnItem) { + return visitor.visitInsertColumnItem(this); } else { return visitor.visitChildren(this); } @@ -74879,32 +74426,32 @@ export class Insert_column_itemContext extends antlr.ParserRuleContext { } -export class Returning_clauseContext extends antlr.ParserRuleContext { +export class ReturningClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_RETURNING(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_RETURNING, 0)!; } - public target_list(): Target_listContext { - return this.getRuleContext(0, Target_listContext)!; + public targetList(): TargetListContext { + return this.getRuleContext(0, TargetListContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_returning_clause; + return PostgreSqlParser.RULE_returningClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterReturning_clause) { - listener.enterReturning_clause(this); + if(listener.enterReturningClause) { + listener.enterReturningClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitReturning_clause) { - listener.exitReturning_clause(this); + if(listener.exitReturningClause) { + listener.exitReturningClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitReturning_clause) { - return visitor.visitReturning_clause(this); + if (visitor.visitReturningClause) { + return visitor.visitReturningClause(this); } else { return visitor.visitChildren(this); } @@ -74922,23 +74469,23 @@ export class DeleteStmtContext extends antlr.ParserRuleContext { public KW_FROM(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FROM, 0)!; } - public relation_expr_opt_alias(): Relation_expr_opt_aliasContext { - return this.getRuleContext(0, Relation_expr_opt_aliasContext)!; + public relationExprOptAlias(): RelationExprOptAliasContext { + return this.getRuleContext(0, RelationExprOptAliasContext)!; } - public with_clause(): With_clauseContext | null { - return this.getRuleContext(0, With_clauseContext); + public withClause(): WithClauseContext | null { + return this.getRuleContext(0, WithClauseContext); } public KW_USING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USING, 0); } - public from_list(): From_listContext | null { - return this.getRuleContext(0, From_listContext); + public fromList(): FromListContext | null { + return this.getRuleContext(0, FromListContext); } - public where_or_current_clause(): Where_or_current_clauseContext | null { - return this.getRuleContext(0, Where_or_current_clauseContext); + public whereOrCurrentClause(): WhereOrCurrentClauseContext | null { + return this.getRuleContext(0, WhereOrCurrentClauseContext); } - public returning_clause(): Returning_clauseContext | null { - return this.getRuleContext(0, Returning_clauseContext); + public returningClause(): ReturningClauseContext | null { + return this.getRuleContext(0, ReturningClauseContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_deleteStmt; @@ -74970,8 +74517,8 @@ export class LockStmtContext extends antlr.ParserRuleContext { public KW_LOCK(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_LOCK, 0)!; } - public relation_expr_list(): Relation_expr_listContext { - return this.getRuleContext(0, Relation_expr_listContext)!; + public relationExprList(): RelationExprListContext { + return this.getRuleContext(0, RelationExprListContext)!; } public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); @@ -75030,26 +74577,26 @@ export class UpdateStmtContext extends antlr.ParserRuleContext { public KW_UPDATE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_UPDATE, 0)!; } - public relation_expr_opt_alias(): Relation_expr_opt_aliasContext { - return this.getRuleContext(0, Relation_expr_opt_aliasContext)!; + public relationExprOptAlias(): RelationExprOptAliasContext { + return this.getRuleContext(0, RelationExprOptAliasContext)!; } public KW_SET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SET, 0)!; } - public set_clause_list(): Set_clause_listContext { - return this.getRuleContext(0, Set_clause_listContext)!; + public setClauseList(): SetClauseListContext { + return this.getRuleContext(0, SetClauseListContext)!; } - public with_clause(): With_clauseContext | null { - return this.getRuleContext(0, With_clauseContext); + public withClause(): WithClauseContext | null { + return this.getRuleContext(0, WithClauseContext); } - public from_clause(): From_clauseContext | null { - return this.getRuleContext(0, From_clauseContext); + public fromClause(): FromClauseContext | null { + return this.getRuleContext(0, FromClauseContext); } - public where_or_current_clause(): Where_or_current_clauseContext | null { - return this.getRuleContext(0, Where_or_current_clauseContext); + public whereOrCurrentClause(): WhereOrCurrentClauseContext | null { + return this.getRuleContext(0, WhereOrCurrentClauseContext); } - public returning_clause(): Returning_clauseContext | null { - return this.getRuleContext(0, Returning_clauseContext); + public returningClause(): ReturningClauseContext | null { + return this.getRuleContext(0, ReturningClauseContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_updateStmt; @@ -75074,18 +74621,18 @@ export class UpdateStmtContext extends antlr.ParserRuleContext { } -export class Set_clause_listContext extends antlr.ParserRuleContext { +export class SetClauseListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public set_clause(): Set_clauseContext[]; - public set_clause(i: number): Set_clauseContext | null; - public set_clause(i?: number): Set_clauseContext[] | Set_clauseContext | null { + public setClause(): SetClauseContext[]; + public setClause(i: number): SetClauseContext | null; + public setClause(i?: number): SetClauseContext[] | SetClauseContext | null { if (i === undefined) { - return this.getRuleContexts(Set_clauseContext); + return this.getRuleContexts(SetClauseContext); } - return this.getRuleContext(i, Set_clauseContext); + return this.getRuleContext(i, SetClauseContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -75097,21 +74644,21 @@ export class Set_clause_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_set_clause_list; + return PostgreSqlParser.RULE_setClauseList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSet_clause_list) { - listener.enterSet_clause_list(this); + if(listener.enterSetClauseList) { + listener.enterSetClauseList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSet_clause_list) { - listener.exitSet_clause_list(this); + if(listener.exitSetClauseList) { + listener.exitSetClauseList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSet_clause_list) { - return visitor.visitSet_clause_list(this); + if (visitor.visitSetClauseList) { + return visitor.visitSetClauseList(this); } else { return visitor.visitChildren(this); } @@ -75119,12 +74666,12 @@ export class Set_clause_listContext extends antlr.ParserRuleContext { } -export class Set_clauseContext extends antlr.ParserRuleContext { +export class SetClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public insert_column_item(): Insert_column_itemContext | null { - return this.getRuleContext(0, Insert_column_itemContext); + public insertColumnItem(): InsertColumnItemContext | null { + return this.getRuleContext(0, InsertColumnItemContext); } public EQUAL(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.EQUAL, 0)!; @@ -75141,8 +74688,8 @@ export class Set_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.OPEN_PAREN, i); } } - public insert_column_list(): Insert_column_listContext | null { - return this.getRuleContext(0, Insert_column_listContext); + public insertColumnList(): InsertColumnListContext | null { + return this.getRuleContext(0, InsertColumnListContext); } public CLOSE_PAREN(): antlr.TerminalNode[]; public CLOSE_PAREN(i: number): antlr.TerminalNode | null; @@ -75153,28 +74700,28 @@ export class Set_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_PAREN, i); } } - public select_clause(): Select_clauseContext | null { - return this.getRuleContext(0, Select_clauseContext); + public selectClause(): SelectClauseContext | null { + return this.getRuleContext(0, SelectClauseContext); } public KW_ROW(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ROW, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_set_clause; + return PostgreSqlParser.RULE_setClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSet_clause) { - listener.enterSet_clause(this); + if(listener.enterSetClause) { + listener.enterSetClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSet_clause) { - listener.exitSet_clause(this); + if(listener.exitSetClause) { + listener.exitSetClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSet_clause) { - return visitor.visitSet_clause(this); + if (visitor.visitSetClause) { + return visitor.visitSetClause(this); } else { return visitor.visitChildren(this); } @@ -75285,11 +74832,11 @@ export class SelectStatementContext extends SelectStmtContext { super(ctx.parent, ctx.invokingState); super.copyFrom(ctx); } - public select_no_parens(): Select_no_parensContext | null { - return this.getRuleContext(0, Select_no_parensContext); + public selectNoParens(): SelectNoParensContext | null { + return this.getRuleContext(0, SelectNoParensContext); } - public select_with_parens(): Select_with_parensContext | null { - return this.getRuleContext(0, Select_with_parensContext); + public selectWithParens(): SelectWithParensContext | null { + return this.getRuleContext(0, SelectWithParensContext); } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterSelectStatement) { @@ -75311,7 +74858,7 @@ export class SelectStatementContext extends SelectStmtContext { } -export class Select_with_parensContext extends antlr.ParserRuleContext { +export class SelectWithParensContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75321,28 +74868,28 @@ export class Select_with_parensContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } - public select_no_parens(): Select_no_parensContext | null { - return this.getRuleContext(0, Select_no_parensContext); + public selectNoParens(): SelectNoParensContext | null { + return this.getRuleContext(0, SelectNoParensContext); } - public select_with_parens(): Select_with_parensContext | null { - return this.getRuleContext(0, Select_with_parensContext); + public selectWithParens(): SelectWithParensContext | null { + return this.getRuleContext(0, SelectWithParensContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_select_with_parens; + return PostgreSqlParser.RULE_selectWithParens; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSelect_with_parens) { - listener.enterSelect_with_parens(this); + if(listener.enterSelectWithParens) { + listener.enterSelectWithParens(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSelect_with_parens) { - listener.exitSelect_with_parens(this); + if(listener.exitSelectWithParens) { + listener.exitSelectWithParens(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSelect_with_parens) { - return visitor.visitSelect_with_parens(this); + if (visitor.visitSelectWithParens) { + return visitor.visitSelectWithParens(this); } else { return visitor.visitChildren(this); } @@ -75350,41 +74897,41 @@ export class Select_with_parensContext extends antlr.ParserRuleContext { } -export class Select_no_parensContext extends antlr.ParserRuleContext { +export class SelectNoParensContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public select_clause(): Select_clauseContext { - return this.getRuleContext(0, Select_clauseContext)!; + public selectClause(): SelectClauseContext { + return this.getRuleContext(0, SelectClauseContext)!; } - public with_clause(): With_clauseContext | null { - return this.getRuleContext(0, With_clauseContext); + public withClause(): WithClauseContext | null { + return this.getRuleContext(0, WithClauseContext); } - public sort_clause(): Sort_clauseContext | null { - return this.getRuleContext(0, Sort_clauseContext); + public sortClause(): SortClauseContext | null { + return this.getRuleContext(0, SortClauseContext); } - public for_locking_clause(): For_locking_clauseContext | null { - return this.getRuleContext(0, For_locking_clauseContext); + public forLockingClause(): ForLockingClauseContext | null { + return this.getRuleContext(0, ForLockingClauseContext); } - public select_limit(): Select_limitContext | null { - return this.getRuleContext(0, Select_limitContext); + public selectLimit(): SelectLimitContext | null { + return this.getRuleContext(0, SelectLimitContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_select_no_parens; + return PostgreSqlParser.RULE_selectNoParens; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSelect_no_parens) { - listener.enterSelect_no_parens(this); + if(listener.enterSelectNoParens) { + listener.enterSelectNoParens(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSelect_no_parens) { - listener.exitSelect_no_parens(this); + if(listener.exitSelectNoParens) { + listener.exitSelectNoParens(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSelect_no_parens) { - return visitor.visitSelect_no_parens(this); + if (visitor.visitSelectNoParens) { + return visitor.visitSelectNoParens(this); } else { return visitor.visitChildren(this); } @@ -75392,32 +74939,32 @@ export class Select_no_parensContext extends antlr.ParserRuleContext { } -export class Select_clauseContext extends antlr.ParserRuleContext { +export class SelectClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public simple_select(): Simple_selectContext | null { - return this.getRuleContext(0, Simple_selectContext); + public simpleSelect(): SimpleSelectContext | null { + return this.getRuleContext(0, SimpleSelectContext); } - public select_with_parens(): Select_with_parensContext | null { - return this.getRuleContext(0, Select_with_parensContext); + public selectWithParens(): SelectWithParensContext | null { + return this.getRuleContext(0, SelectWithParensContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_select_clause; + return PostgreSqlParser.RULE_selectClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSelect_clause) { - listener.enterSelect_clause(this); + if(listener.enterSelectClause) { + listener.enterSelectClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSelect_clause) { - listener.exitSelect_clause(this); + if(listener.exitSelectClause) { + listener.exitSelectClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSelect_clause) { - return visitor.visitSelect_clause(this); + if (visitor.visitSelectClause) { + return visitor.visitSelectClause(this); } else { return visitor.visitChildren(this); } @@ -75425,77 +74972,77 @@ export class Select_clauseContext extends antlr.ParserRuleContext { } -export class Simple_selectContext extends antlr.ParserRuleContext { +export class SimpleSelectContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_SELECT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SELECT, 0); } - public sql_expression(): Sql_expressionContext | null { - return this.getRuleContext(0, Sql_expressionContext); + public sqlExpression(): SqlExpressionContext | null { + return this.getRuleContext(0, SqlExpressionContext); } - public values_clause(): Values_clauseContext | null { - return this.getRuleContext(0, Values_clauseContext); + public valuesClause(): ValuesClauseContext | null { + return this.getRuleContext(0, ValuesClauseContext); } public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public relation_expr(): Relation_exprContext | null { - return this.getRuleContext(0, Relation_exprContext); + public relationExpr(): RelationExprContext | null { + return this.getRuleContext(0, RelationExprContext); } - public select_with_parens(): Select_with_parensContext[]; - public select_with_parens(i: number): Select_with_parensContext | null; - public select_with_parens(i?: number): Select_with_parensContext[] | Select_with_parensContext | null { + public selectWithParens(): SelectWithParensContext[]; + public selectWithParens(i: number): SelectWithParensContext | null; + public selectWithParens(i?: number): SelectWithParensContext[] | SelectWithParensContext | null { if (i === undefined) { - return this.getRuleContexts(Select_with_parensContext); + return this.getRuleContexts(SelectWithParensContext); } - return this.getRuleContext(i, Select_with_parensContext); + return this.getRuleContext(i, SelectWithParensContext); } - public set_operator_with_all_or_distinct(): Set_operator_with_all_or_distinctContext[]; - public set_operator_with_all_or_distinct(i: number): Set_operator_with_all_or_distinctContext | null; - public set_operator_with_all_or_distinct(i?: number): Set_operator_with_all_or_distinctContext[] | Set_operator_with_all_or_distinctContext | null { + public setOperatorWithAllOrDistinct(): SetOperatorWithAllOrDistinctContext[]; + public setOperatorWithAllOrDistinct(i: number): SetOperatorWithAllOrDistinctContext | null; + public setOperatorWithAllOrDistinct(i?: number): SetOperatorWithAllOrDistinctContext[] | SetOperatorWithAllOrDistinctContext | null { if (i === undefined) { - return this.getRuleContexts(Set_operator_with_all_or_distinctContext); + return this.getRuleContexts(SetOperatorWithAllOrDistinctContext); } - return this.getRuleContext(i, Set_operator_with_all_or_distinctContext); + return this.getRuleContext(i, SetOperatorWithAllOrDistinctContext); } - public simple_select(): Simple_selectContext[]; - public simple_select(i: number): Simple_selectContext | null; - public simple_select(i?: number): Simple_selectContext[] | Simple_selectContext | null { + public simpleSelect(): SimpleSelectContext[]; + public simpleSelect(i: number): SimpleSelectContext | null; + public simpleSelect(i?: number): SimpleSelectContext[] | SimpleSelectContext | null { if (i === undefined) { - return this.getRuleContexts(Simple_selectContext); + return this.getRuleContexts(SimpleSelectContext); } - return this.getRuleContext(i, Simple_selectContext); + return this.getRuleContext(i, SimpleSelectContext); } public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); } - public into_clause(): Into_clauseContext | null { - return this.getRuleContext(0, Into_clauseContext); + public intoClause(): IntoClauseContext | null { + return this.getRuleContext(0, IntoClauseContext); } - public distinct_clause(): Distinct_clauseContext | null { - return this.getRuleContext(0, Distinct_clauseContext); + public distinctClause(): DistinctClauseContext | null { + return this.getRuleContext(0, DistinctClauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_simple_select; + return PostgreSqlParser.RULE_simpleSelect; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSimple_select) { - listener.enterSimple_select(this); + if(listener.enterSimpleSelect) { + listener.enterSimpleSelect(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSimple_select) { - listener.exitSimple_select(this); + if(listener.exitSimpleSelect) { + listener.exitSimpleSelect(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSimple_select) { - return visitor.visitSimple_select(this); + if (visitor.visitSimpleSelect) { + return visitor.visitSimpleSelect(this); } else { return visitor.visitChildren(this); } @@ -75503,7 +75050,7 @@ export class Simple_selectContext extends antlr.ParserRuleContext { } -export class Set_operator_with_all_or_distinctContext extends antlr.ParserRuleContext { +export class SetOperatorWithAllOrDistinctContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75523,21 +75070,21 @@ export class Set_operator_with_all_or_distinctContext extends antlr.ParserRuleCo return this.getToken(PostgreSqlParser.KW_DISTINCT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_set_operator_with_all_or_distinct; + return PostgreSqlParser.RULE_setOperatorWithAllOrDistinct; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSet_operator_with_all_or_distinct) { - listener.enterSet_operator_with_all_or_distinct(this); + if(listener.enterSetOperatorWithAllOrDistinct) { + listener.enterSetOperatorWithAllOrDistinct(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSet_operator_with_all_or_distinct) { - listener.exitSet_operator_with_all_or_distinct(this); + if(listener.exitSetOperatorWithAllOrDistinct) { + listener.exitSetOperatorWithAllOrDistinct(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSet_operator_with_all_or_distinct) { - return visitor.visitSet_operator_with_all_or_distinct(this); + if (visitor.visitSetOperatorWithAllOrDistinct) { + return visitor.visitSetOperatorWithAllOrDistinct(this); } else { return visitor.visitChildren(this); } @@ -75545,21 +75092,21 @@ export class Set_operator_with_all_or_distinctContext extends antlr.ParserRuleCo } -export class With_clauseContext extends antlr.ParserRuleContext { +export class WithClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_WITH(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_WITH, 0)!; } - public common_table_expr(): Common_table_exprContext[]; - public common_table_expr(i: number): Common_table_exprContext | null; - public common_table_expr(i?: number): Common_table_exprContext[] | Common_table_exprContext | null { + public commonTableExpr(): CommonTableExprContext[]; + public commonTableExpr(i: number): CommonTableExprContext | null; + public commonTableExpr(i?: number): CommonTableExprContext[] | CommonTableExprContext | null { if (i === undefined) { - return this.getRuleContexts(Common_table_exprContext); + return this.getRuleContexts(CommonTableExprContext); } - return this.getRuleContext(i, Common_table_exprContext); + return this.getRuleContext(i, CommonTableExprContext); } public KW_RECURSIVE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_RECURSIVE, 0); @@ -75574,21 +75121,21 @@ export class With_clauseContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_with_clause; + return PostgreSqlParser.RULE_withClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterWith_clause) { - listener.enterWith_clause(this); + if(listener.enterWithClause) { + listener.enterWithClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitWith_clause) { - listener.exitWith_clause(this); + if(listener.exitWithClause) { + listener.exitWithClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitWith_clause) { - return visitor.visitWith_clause(this); + if (visitor.visitWithClause) { + return visitor.visitWithClause(this); } else { return visitor.visitChildren(this); } @@ -75596,7 +75143,7 @@ export class With_clauseContext extends antlr.ParserRuleContext { } -export class Common_table_exprContext extends antlr.ParserRuleContext { +export class CommonTableExprContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75615,37 +75162,37 @@ export class Common_table_exprContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } - public opt_column_list(): Opt_column_listContext | null { - return this.getRuleContext(0, Opt_column_listContext); + public optColumnList(): OptColumnListContext | null { + return this.getRuleContext(0, OptColumnListContext); } public KW_MATERIALIZED(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_MATERIALIZED, 0); } - public search_clause(): Search_clauseContext | null { - return this.getRuleContext(0, Search_clauseContext); + public searchClause(): SearchClauseContext | null { + return this.getRuleContext(0, SearchClauseContext); } - public cycle_clause(): Cycle_clauseContext | null { - return this.getRuleContext(0, Cycle_clauseContext); + public cycleClause(): CycleClauseContext | null { + return this.getRuleContext(0, CycleClauseContext); } public KW_NOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_common_table_expr; + return PostgreSqlParser.RULE_commonTableExpr; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCommon_table_expr) { - listener.enterCommon_table_expr(this); + if(listener.enterCommonTableExpr) { + listener.enterCommonTableExpr(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCommon_table_expr) { - listener.exitCommon_table_expr(this); + if(listener.exitCommonTableExpr) { + listener.exitCommonTableExpr(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCommon_table_expr) { - return visitor.visitCommon_table_expr(this); + if (visitor.visitCommonTableExpr) { + return visitor.visitCommonTableExpr(this); } else { return visitor.visitChildren(this); } @@ -75653,7 +75200,7 @@ export class Common_table_exprContext extends antlr.ParserRuleContext { } -export class Search_clauseContext extends antlr.ParserRuleContext { +export class SearchClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75666,14 +75213,14 @@ export class Search_clauseContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_BY, 0)!; } - public column_list(): Column_listContext { - return this.getRuleContext(0, Column_listContext)!; + public columnList(): ColumnListContext { + return this.getRuleContext(0, ColumnListContext)!; } public KW_SET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SET, 0)!; } - public column_name(): Column_nameContext { - return this.getRuleContext(0, Column_nameContext)!; + public columnName(): ColumnNameContext { + return this.getRuleContext(0, ColumnNameContext)!; } public KW_BREADTH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BREADTH, 0); @@ -75682,21 +75229,21 @@ export class Search_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DEPTH, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_search_clause; + return PostgreSqlParser.RULE_searchClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSearch_clause) { - listener.enterSearch_clause(this); + if(listener.enterSearchClause) { + listener.enterSearchClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSearch_clause) { - listener.exitSearch_clause(this); + if(listener.exitSearchClause) { + listener.exitSearchClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSearch_clause) { - return visitor.visitSearch_clause(this); + if (visitor.visitSearchClause) { + return visitor.visitSearchClause(this); } else { return visitor.visitChildren(this); } @@ -75704,27 +75251,27 @@ export class Search_clauseContext extends antlr.ParserRuleContext { } -export class Cycle_clauseContext extends antlr.ParserRuleContext { +export class CycleClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_CYCLE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CYCLE, 0)!; } - public column_list(): Column_listContext { - return this.getRuleContext(0, Column_listContext)!; + public columnList(): ColumnListContext { + return this.getRuleContext(0, ColumnListContext)!; } public KW_SET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SET, 0)!; } - public column_name(): Column_nameContext[]; - public column_name(i: number): Column_nameContext | null; - public column_name(i?: number): Column_nameContext[] | Column_nameContext | null { + public columnName(): ColumnNameContext[]; + public columnName(i: number): ColumnNameContext | null; + public columnName(i?: number): ColumnNameContext[] | ColumnNameContext | null { if (i === undefined) { - return this.getRuleContexts(Column_nameContext); + return this.getRuleContexts(ColumnNameContext); } - return this.getRuleContext(i, Column_nameContext); + return this.getRuleContext(i, ColumnNameContext); } public KW_USING(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_USING, 0)!; @@ -75745,21 +75292,21 @@ export class Cycle_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_cycle_clause; + return PostgreSqlParser.RULE_cycleClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCycle_clause) { - listener.enterCycle_clause(this); + if(listener.enterCycleClause) { + listener.enterCycleClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCycle_clause) { - listener.exitCycle_clause(this); + if(listener.exitCycleClause) { + listener.exitCycleClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCycle_clause) { - return visitor.visitCycle_clause(this); + if (visitor.visitCycleClause) { + return visitor.visitCycleClause(this); } else { return visitor.visitChildren(this); } @@ -75767,7 +75314,7 @@ export class Cycle_clauseContext extends antlr.ParserRuleContext { } -export class Into_clauseContext extends antlr.ParserRuleContext { +export class IntoClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75777,28 +75324,28 @@ export class Into_clauseContext extends antlr.ParserRuleContext { public optTempTableName(): OptTempTableNameContext | null { return this.getRuleContext(0, OptTempTableNameContext); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } public KW_STRICT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_STRICT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_into_clause; + return PostgreSqlParser.RULE_intoClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterInto_clause) { - listener.enterInto_clause(this); + if(listener.enterIntoClause) { + listener.enterIntoClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitInto_clause) { - listener.exitInto_clause(this); + if(listener.exitIntoClause) { + listener.exitIntoClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitInto_clause) { - return visitor.visitInto_clause(this); + if (visitor.visitIntoClause) { + return visitor.visitIntoClause(this); } else { return visitor.visitChildren(this); } @@ -75810,8 +75357,8 @@ export class OptTempTableNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public table_name_create(): Table_name_createContext { - return this.getRuleContext(0, Table_name_createContext)!; + public tableNameCreate(): TableNameCreateContext { + return this.getRuleContext(0, TableNameCreateContext)!; } public KW_TEMPORARY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TEMPORARY, 0); @@ -75854,7 +75401,7 @@ export class OptTempTableNameContext extends antlr.ParserRuleContext { } -export class Distinct_clauseContext extends antlr.ParserRuleContext { +export class DistinctClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75864,25 +75411,25 @@ export class Distinct_clauseContext extends antlr.ParserRuleContext { public KW_ON(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ON, 0); } - public execute_param_clause(): Execute_param_clauseContext | null { - return this.getRuleContext(0, Execute_param_clauseContext); + public executeParamClause(): ExecuteParamClauseContext | null { + return this.getRuleContext(0, ExecuteParamClauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_distinct_clause; + return PostgreSqlParser.RULE_distinctClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDistinct_clause) { - listener.enterDistinct_clause(this); + if(listener.enterDistinctClause) { + listener.enterDistinctClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDistinct_clause) { - listener.exitDistinct_clause(this); + if(listener.exitDistinctClause) { + listener.exitDistinctClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDistinct_clause) { - return visitor.visitDistinct_clause(this); + if (visitor.visitDistinctClause) { + return visitor.visitDistinctClause(this); } else { return visitor.visitChildren(this); } @@ -75890,7 +75437,7 @@ export class Distinct_clauseContext extends antlr.ParserRuleContext { } -export class Sort_clauseContext extends antlr.ParserRuleContext { +export class SortClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -75919,21 +75466,21 @@ export class Sort_clauseContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_sort_clause; + return PostgreSqlParser.RULE_sortClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSort_clause) { - listener.enterSort_clause(this); + if(listener.enterSortClause) { + listener.enterSortClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSort_clause) { - listener.exitSort_clause(this); + if(listener.exitSortClause) { + listener.exitSortClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSort_clause) { - return visitor.visitSort_clause(this); + if (visitor.visitSortClause) { + return visitor.visitSortClause(this); } else { return visitor.visitChildren(this); } @@ -75945,14 +75492,14 @@ export class SortByContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_expr_no_paren(): Column_expr_no_parenContext { - return this.getRuleContext(0, Column_expr_no_parenContext)!; + public columnExprNoParen(): ColumnExprNoParenContext { + return this.getRuleContext(0, ColumnExprNoParenContext)!; } public KW_USING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USING, 0); } - public qual_all_op(): Qual_all_opContext | null { - return this.getRuleContext(0, Qual_all_opContext); + public qualAllOp(): QualAllOpContext | null { + return this.getRuleContext(0, QualAllOpContext); } public KW_NULLS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NULLS, 0); @@ -75992,35 +75539,35 @@ export class SortByContext extends antlr.ParserRuleContext { } -export class Select_limitContext extends antlr.ParserRuleContext { +export class SelectLimitContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public offset_clause(): Offset_clauseContext | null { - return this.getRuleContext(0, Offset_clauseContext); + public offsetClause(): OffsetClauseContext | null { + return this.getRuleContext(0, OffsetClauseContext); } - public fetch_clause(): Fetch_clauseContext | null { - return this.getRuleContext(0, Fetch_clauseContext); + public fetchClause(): FetchClauseContext | null { + return this.getRuleContext(0, FetchClauseContext); } - public limit_clause(): Limit_clauseContext | null { - return this.getRuleContext(0, Limit_clauseContext); + public limitClause(): LimitClauseContext | null { + return this.getRuleContext(0, LimitClauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_select_limit; + return PostgreSqlParser.RULE_selectLimit; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSelect_limit) { - listener.enterSelect_limit(this); + if(listener.enterSelectLimit) { + listener.enterSelectLimit(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSelect_limit) { - listener.exitSelect_limit(this); + if(listener.exitSelectLimit) { + listener.exitSelectLimit(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSelect_limit) { - return visitor.visitSelect_limit(this); + if (visitor.visitSelectLimit) { + return visitor.visitSelectLimit(this); } else { return visitor.visitChildren(this); } @@ -76028,7 +75575,7 @@ export class Select_limitContext extends antlr.ParserRuleContext { } -export class Limit_clauseContext extends antlr.ParserRuleContext { +export class LimitClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -76051,21 +75598,21 @@ export class Limit_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.COMMA, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_limit_clause; + return PostgreSqlParser.RULE_limitClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterLimit_clause) { - listener.enterLimit_clause(this); + if(listener.enterLimitClause) { + listener.enterLimitClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitLimit_clause) { - listener.exitLimit_clause(this); + if(listener.exitLimitClause) { + listener.exitLimitClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitLimit_clause) { - return visitor.visitLimit_clause(this); + if (visitor.visitLimitClause) { + return visitor.visitLimitClause(this); } else { return visitor.visitChildren(this); } @@ -76073,7 +75620,7 @@ export class Limit_clauseContext extends antlr.ParserRuleContext { } -export class Fetch_clauseContext extends antlr.ParserRuleContext { +export class FetchClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -76101,25 +75648,25 @@ export class Fetch_clauseContext extends antlr.ParserRuleContext { public KW_TIES(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TIES, 0); } - public select_fetch_first_value(): Select_fetch_first_valueContext | null { - return this.getRuleContext(0, Select_fetch_first_valueContext); + public selectFetchFirstValue(): SelectFetchFirstValueContext | null { + return this.getRuleContext(0, SelectFetchFirstValueContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_fetch_clause; + return PostgreSqlParser.RULE_fetchClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFetch_clause) { - listener.enterFetch_clause(this); + if(listener.enterFetchClause) { + listener.enterFetchClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFetch_clause) { - listener.exitFetch_clause(this); + if(listener.exitFetchClause) { + listener.exitFetchClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFetch_clause) { - return visitor.visitFetch_clause(this); + if (visitor.visitFetchClause) { + return visitor.visitFetchClause(this); } else { return visitor.visitChildren(this); } @@ -76127,15 +75674,15 @@ export class Fetch_clauseContext extends antlr.ParserRuleContext { } -export class Offset_clauseContext extends antlr.ParserRuleContext { +export class OffsetClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_OFFSET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_OFFSET, 0)!; } - public select_fetch_first_value(): Select_fetch_first_valueContext | null { - return this.getRuleContext(0, Select_fetch_first_valueContext); + public selectFetchFirstValue(): SelectFetchFirstValueContext | null { + return this.getRuleContext(0, SelectFetchFirstValueContext); } public expression(): ExpressionContext | null { return this.getRuleContext(0, ExpressionContext); @@ -76147,21 +75694,21 @@ export class Offset_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ROWS, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_offset_clause; + return PostgreSqlParser.RULE_offsetClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOffset_clause) { - listener.enterOffset_clause(this); + if(listener.enterOffsetClause) { + listener.enterOffsetClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOffset_clause) { - listener.exitOffset_clause(this); + if(listener.exitOffsetClause) { + listener.exitOffsetClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOffset_clause) { - return visitor.visitOffset_clause(this); + if (visitor.visitOffsetClause) { + return visitor.visitOffsetClause(this); } else { return visitor.visitChildren(this); } @@ -76169,7 +75716,7 @@ export class Offset_clauseContext extends antlr.ParserRuleContext { } -export class Select_fetch_first_valueContext extends antlr.ParserRuleContext { +export class SelectFetchFirstValueContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -76189,21 +75736,21 @@ export class Select_fetch_first_valueContext extends antlr.ParserRuleContext { return this.getRuleContext(0, PrimaryExpressionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_select_fetch_first_value; + return PostgreSqlParser.RULE_selectFetchFirstValue; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSelect_fetch_first_value) { - listener.enterSelect_fetch_first_value(this); + if(listener.enterSelectFetchFirstValue) { + listener.enterSelectFetchFirstValue(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSelect_fetch_first_value) { - listener.exitSelect_fetch_first_value(this); + if(listener.exitSelectFetchFirstValue) { + listener.exitSelectFetchFirstValue(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSelect_fetch_first_value) { - return visitor.visitSelect_fetch_first_value(this); + if (visitor.visitSelectFetchFirstValue) { + return visitor.visitSelectFetchFirstValue(this); } else { return visitor.visitChildren(this); } @@ -76211,7 +75758,7 @@ export class Select_fetch_first_valueContext extends antlr.ParserRuleContext { } -export class Group_clauseContext extends antlr.ParserRuleContext { +export class GroupClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -76221,8 +75768,8 @@ export class Group_clauseContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_BY, 0)!; } - public group_by_list(): Group_by_listContext { - return this.getRuleContext(0, Group_by_listContext)!; + public groupByList(): GroupByListContext { + return this.getRuleContext(0, GroupByListContext)!; } public KW_ALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ALL, 0); @@ -76231,21 +75778,21 @@ export class Group_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DISTINCT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_group_clause; + return PostgreSqlParser.RULE_groupClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterGroup_clause) { - listener.enterGroup_clause(this); + if(listener.enterGroupClause) { + listener.enterGroupClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitGroup_clause) { - listener.exitGroup_clause(this); + if(listener.exitGroupClause) { + listener.exitGroupClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitGroup_clause) { - return visitor.visitGroup_clause(this); + if (visitor.visitGroupClause) { + return visitor.visitGroupClause(this); } else { return visitor.visitChildren(this); } @@ -76253,18 +75800,18 @@ export class Group_clauseContext extends antlr.ParserRuleContext { } -export class Group_by_listContext extends antlr.ParserRuleContext { +export class GroupByListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public group_by_item(): Group_by_itemContext[]; - public group_by_item(i: number): Group_by_itemContext | null; - public group_by_item(i?: number): Group_by_itemContext[] | Group_by_itemContext | null { + public groupByItem(): GroupByItemContext[]; + public groupByItem(i: number): GroupByItemContext | null; + public groupByItem(i?: number): GroupByItemContext[] | GroupByItemContext | null { if (i === undefined) { - return this.getRuleContexts(Group_by_itemContext); + return this.getRuleContexts(GroupByItemContext); } - return this.getRuleContext(i, Group_by_itemContext); + return this.getRuleContext(i, GroupByItemContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -76276,21 +75823,21 @@ export class Group_by_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_group_by_list; + return PostgreSqlParser.RULE_groupByList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterGroup_by_list) { - listener.enterGroup_by_list(this); + if(listener.enterGroupByList) { + listener.enterGroupByList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitGroup_by_list) { - listener.exitGroup_by_list(this); + if(listener.exitGroupByList) { + listener.exitGroupByList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitGroup_by_list) { - return visitor.visitGroup_by_list(this); + if (visitor.visitGroupByList) { + return visitor.visitGroupByList(this); } else { return visitor.visitChildren(this); } @@ -76298,18 +75845,18 @@ export class Group_by_listContext extends antlr.ParserRuleContext { } -export class Group_by_itemContext extends antlr.ParserRuleContext { +export class GroupByItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_expr_no_paren(): Column_expr_no_parenContext[]; - public column_expr_no_paren(i: number): Column_expr_no_parenContext | null; - public column_expr_no_paren(i?: number): Column_expr_no_parenContext[] | Column_expr_no_parenContext | null { + public columnExprNoParen(): ColumnExprNoParenContext[]; + public columnExprNoParen(i: number): ColumnExprNoParenContext | null; + public columnExprNoParen(i?: number): ColumnExprNoParenContext[] | ColumnExprNoParenContext | null { if (i === undefined) { - return this.getRuleContexts(Column_expr_no_parenContext); + return this.getRuleContexts(ColumnExprNoParenContext); } - return this.getRuleContext(i, Column_expr_no_parenContext); + return this.getRuleContext(i, ColumnExprNoParenContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -76338,25 +75885,25 @@ export class Group_by_itemContext extends antlr.ParserRuleContext { public KW_SETS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SETS, 0); } - public group_by_list(): Group_by_listContext | null { - return this.getRuleContext(0, Group_by_listContext); + public groupByList(): GroupByListContext | null { + return this.getRuleContext(0, GroupByListContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_group_by_item; + return PostgreSqlParser.RULE_groupByItem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterGroup_by_item) { - listener.enterGroup_by_item(this); + if(listener.enterGroupByItem) { + listener.enterGroupByItem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitGroup_by_item) { - listener.exitGroup_by_item(this); + if(listener.exitGroupByItem) { + listener.exitGroupByItem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitGroup_by_item) { - return visitor.visitGroup_by_item(this); + if (visitor.visitGroupByItem) { + return visitor.visitGroupByItem(this); } else { return visitor.visitChildren(this); } @@ -76364,7 +75911,7 @@ export class Group_by_itemContext extends antlr.ParserRuleContext { } -export class For_locking_clauseContext extends antlr.ParserRuleContext { +export class ForLockingClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -76404,14 +75951,14 @@ export class For_locking_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_OF, i); } } - public qualified_name_list(): Qualified_name_listContext[]; - public qualified_name_list(i: number): Qualified_name_listContext | null; - public qualified_name_list(i?: number): Qualified_name_listContext[] | Qualified_name_listContext | null { + public qualifiedNameList(): QualifiedNameListContext[]; + public qualifiedNameList(i: number): QualifiedNameListContext | null; + public qualifiedNameList(i?: number): QualifiedNameListContext[] | QualifiedNameListContext | null { if (i === undefined) { - return this.getRuleContexts(Qualified_name_listContext); + return this.getRuleContexts(QualifiedNameListContext); } - return this.getRuleContext(i, Qualified_name_listContext); + return this.getRuleContext(i, QualifiedNameListContext); } public KW_NOWAIT(): antlr.TerminalNode[]; public KW_NOWAIT(i: number): antlr.TerminalNode | null; @@ -76465,21 +76012,21 @@ export class For_locking_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ONLY, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_for_locking_clause; + return PostgreSqlParser.RULE_forLockingClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFor_locking_clause) { - listener.enterFor_locking_clause(this); + if(listener.enterForLockingClause) { + listener.enterForLockingClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFor_locking_clause) { - listener.exitFor_locking_clause(this); + if(listener.exitForLockingClause) { + listener.exitForLockingClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFor_locking_clause) { - return visitor.visitFor_locking_clause(this); + if (visitor.visitForLockingClause) { + return visitor.visitForLockingClause(this); } else { return visitor.visitChildren(this); } @@ -76487,21 +76034,21 @@ export class For_locking_clauseContext extends antlr.ParserRuleContext { } -export class Values_clauseContext extends antlr.ParserRuleContext { +export class ValuesClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_VALUES(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_VALUES, 0)!; } - public execute_param_clause(): Execute_param_clauseContext[]; - public execute_param_clause(i: number): Execute_param_clauseContext | null; - public execute_param_clause(i?: number): Execute_param_clauseContext[] | Execute_param_clauseContext | null { + public executeParamClause(): ExecuteParamClauseContext[]; + public executeParamClause(i: number): ExecuteParamClauseContext | null; + public executeParamClause(i?: number): ExecuteParamClauseContext[] | ExecuteParamClauseContext | null { if (i === undefined) { - return this.getRuleContexts(Execute_param_clauseContext); + return this.getRuleContexts(ExecuteParamClauseContext); } - return this.getRuleContext(i, Execute_param_clauseContext); + return this.getRuleContext(i, ExecuteParamClauseContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -76513,21 +76060,21 @@ export class Values_clauseContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_values_clause; + return PostgreSqlParser.RULE_valuesClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterValues_clause) { - listener.enterValues_clause(this); + if(listener.enterValuesClause) { + listener.enterValuesClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitValues_clause) { - listener.exitValues_clause(this); + if(listener.exitValuesClause) { + listener.exitValuesClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitValues_clause) { - return visitor.visitValues_clause(this); + if (visitor.visitValuesClause) { + return visitor.visitValuesClause(this); } else { return visitor.visitChildren(this); } @@ -76535,32 +76082,32 @@ export class Values_clauseContext extends antlr.ParserRuleContext { } -export class From_clauseContext extends antlr.ParserRuleContext { +export class FromClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_FROM(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FROM, 0)!; } - public from_list(): From_listContext { - return this.getRuleContext(0, From_listContext)!; + public fromList(): FromListContext { + return this.getRuleContext(0, FromListContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_from_clause; + return PostgreSqlParser.RULE_fromClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFrom_clause) { - listener.enterFrom_clause(this); + if(listener.enterFromClause) { + listener.enterFromClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFrom_clause) { - listener.exitFrom_clause(this); + if(listener.exitFromClause) { + listener.exitFromClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFrom_clause) { - return visitor.visitFrom_clause(this); + if (visitor.visitFromClause) { + return visitor.visitFromClause(this); } else { return visitor.visitChildren(this); } @@ -76568,18 +76115,18 @@ export class From_clauseContext extends antlr.ParserRuleContext { } -export class From_listContext extends antlr.ParserRuleContext { +export class FromListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public table_ref(): Table_refContext[]; - public table_ref(i: number): Table_refContext | null; - public table_ref(i?: number): Table_refContext[] | Table_refContext | null { + public tableRef(): TableRefContext[]; + public tableRef(i: number): TableRefContext | null; + public tableRef(i?: number): TableRefContext[] | TableRefContext | null { if (i === undefined) { - return this.getRuleContexts(Table_refContext); + return this.getRuleContexts(TableRefContext); } - return this.getRuleContext(i, Table_refContext); + return this.getRuleContext(i, TableRefContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -76591,21 +76138,21 @@ export class From_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_from_list; + return PostgreSqlParser.RULE_fromList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFrom_list) { - listener.enterFrom_list(this); + if(listener.enterFromList) { + listener.enterFromList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFrom_list) { - listener.exitFrom_list(this); + if(listener.exitFromList) { + listener.exitFromList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFrom_list) { - return visitor.visitFrom_list(this); + if (visitor.visitFromList) { + return visitor.visitFromList(this); } else { return visitor.visitChildren(this); } @@ -76613,21 +76160,21 @@ export class From_listContext extends antlr.ParserRuleContext { } -export class Table_refContext extends antlr.ParserRuleContext { +export class TableRefContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public table_ref(): Table_refContext[]; - public table_ref(i: number): Table_refContext | null; - public table_ref(i?: number): Table_refContext[] | Table_refContext | null { + public tableRef(): TableRefContext[]; + public tableRef(i: number): TableRefContext | null; + public tableRef(i?: number): TableRefContext[] | TableRefContext | null { if (i === undefined) { - return this.getRuleContexts(Table_refContext); + return this.getRuleContexts(TableRefContext); } - return this.getRuleContext(i, Table_refContext); + return this.getRuleContext(i, TableRefContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); @@ -76659,29 +76206,29 @@ export class Table_refContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NATURAL, i); } } - public join_qual(): Join_qualContext[]; - public join_qual(i: number): Join_qualContext | null; - public join_qual(i?: number): Join_qualContext[] | Join_qualContext | null { + public joinQual(): JoinQualContext[]; + public joinQual(i: number): JoinQualContext | null; + public joinQual(i?: number): JoinQualContext[] | JoinQualContext | null { if (i === undefined) { - return this.getRuleContexts(Join_qualContext); + return this.getRuleContexts(JoinQualContext); } - return this.getRuleContext(i, Join_qualContext); + return this.getRuleContext(i, JoinQualContext); } - public relation_expr(): Relation_exprContext | null { - return this.getRuleContext(0, Relation_exprContext); + public relationExpr(): RelationExprContext | null { + return this.getRuleContext(0, RelationExprContext); } public xmlTable(): XmlTableContext | null { return this.getRuleContext(0, XmlTableContext); } - public func_table(): Func_tableContext | null { - return this.getRuleContext(0, Func_tableContext); + public funcTable(): FuncTableContext | null { + return this.getRuleContext(0, FuncTableContext); } - public select_with_parens(): Select_with_parensContext | null { - return this.getRuleContext(0, Select_with_parensContext); + public selectWithParens(): SelectWithParensContext | null { + return this.getRuleContext(0, SelectWithParensContext); } - public alias_clause(): Alias_clauseContext | null { - return this.getRuleContext(0, Alias_clauseContext); + public aliasClause(): AliasClauseContext | null { + return this.getRuleContext(0, AliasClauseContext); } public tableSampleClause(): TableSampleClauseContext | null { return this.getRuleContext(0, TableSampleClauseContext); @@ -76689,20 +76236,20 @@ export class Table_refContext extends antlr.ParserRuleContext { public KW_LATERAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LATERAL, 0); } - public view_name(): View_nameContext | null { - return this.getRuleContext(0, View_nameContext); + public viewName(): ViewNameContext | null { + return this.getRuleContext(0, ViewNameContext); } - public join_type(): Join_typeContext[]; - public join_type(i: number): Join_typeContext | null; - public join_type(i?: number): Join_typeContext[] | Join_typeContext | null { + public joinType(): JoinTypeContext[]; + public joinType(i: number): JoinTypeContext | null; + public joinType(i?: number): JoinTypeContext[] | JoinTypeContext | null { if (i === undefined) { - return this.getRuleContexts(Join_typeContext); + return this.getRuleContexts(JoinTypeContext); } - return this.getRuleContext(i, Join_typeContext); + return this.getRuleContext(i, JoinTypeContext); } - public func_alias_clause(): Func_alias_clauseContext | null { - return this.getRuleContext(0, Func_alias_clauseContext); + public funcAliasClause(): FuncAliasClauseContext | null { + return this.getRuleContext(0, FuncAliasClauseContext); } public KW_ONLY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ONLY, 0); @@ -76710,28 +76257,28 @@ export class Table_refContext extends antlr.ParserRuleContext { public STAR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.STAR, 0); } - public column_list(): Column_listContext | null { - return this.getRuleContext(0, Column_listContext); + public columnList(): ColumnListContext | null { + return this.getRuleContext(0, ColumnListContext); } - public where_clause(): Where_clauseContext | null { - return this.getRuleContext(0, Where_clauseContext); + public whereClause(): WhereClauseContext | null { + return this.getRuleContext(0, WhereClauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_table_ref; + return PostgreSqlParser.RULE_tableRef; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTable_ref) { - listener.enterTable_ref(this); + if(listener.enterTableRef) { + listener.enterTableRef(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTable_ref) { - listener.exitTable_ref(this); + if(listener.exitTableRef) { + listener.exitTableRef(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTable_ref) { - return visitor.visitTable_ref(this); + if (visitor.visitTableRef) { + return visitor.visitTableRef(this); } else { return visitor.visitChildren(this); } @@ -76739,7 +76286,7 @@ export class Table_refContext extends antlr.ParserRuleContext { } -export class Alias_clauseContext extends antlr.ParserRuleContext { +export class AliasClauseContext extends antlr.ParserRuleContext { public _alias?: ColIdContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); @@ -76753,28 +76300,28 @@ export class Alias_clauseContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public name_list(): Name_listContext | null { - return this.getRuleContext(0, Name_listContext); + public nameList(): NameListContext | null { + return this.getRuleContext(0, NameListContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_alias_clause; + return PostgreSqlParser.RULE_aliasClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAlias_clause) { - listener.enterAlias_clause(this); + if(listener.enterAliasClause) { + listener.enterAliasClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAlias_clause) { - listener.exitAlias_clause(this); + if(listener.exitAliasClause) { + listener.exitAliasClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAlias_clause) { - return visitor.visitAlias_clause(this); + if (visitor.visitAliasClause) { + return visitor.visitAliasClause(this); } else { return visitor.visitChildren(this); } @@ -76782,13 +76329,13 @@ export class Alias_clauseContext extends antlr.ParserRuleContext { } -export class Func_alias_clauseContext extends antlr.ParserRuleContext { +export class FuncAliasClauseContext extends antlr.ParserRuleContext { public _alias?: ColIdContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public alias_clause(): Alias_clauseContext | null { - return this.getRuleContext(0, Alias_clauseContext); + public aliasClause(): AliasClauseContext | null { + return this.getRuleContext(0, AliasClauseContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -76806,21 +76353,21 @@ export class Func_alias_clauseContext extends antlr.ParserRuleContext { return this.getRuleContext(0, ColIdContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_alias_clause; + return PostgreSqlParser.RULE_funcAliasClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_alias_clause) { - listener.enterFunc_alias_clause(this); + if(listener.enterFuncAliasClause) { + listener.enterFuncAliasClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_alias_clause) { - listener.exitFunc_alias_clause(this); + if(listener.exitFuncAliasClause) { + listener.exitFuncAliasClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_alias_clause) { - return visitor.visitFunc_alias_clause(this); + if (visitor.visitFuncAliasClause) { + return visitor.visitFuncAliasClause(this); } else { return visitor.visitChildren(this); } @@ -76828,7 +76375,7 @@ export class Func_alias_clauseContext extends antlr.ParserRuleContext { } -export class Join_typeContext extends antlr.ParserRuleContext { +export class JoinTypeContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -76848,21 +76395,21 @@ export class Join_typeContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_OUTER, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_join_type; + return PostgreSqlParser.RULE_joinType; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterJoin_type) { - listener.enterJoin_type(this); + if(listener.enterJoinType) { + listener.enterJoinType(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitJoin_type) { - listener.exitJoin_type(this); + if(listener.exitJoinType) { + listener.exitJoinType(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitJoin_type) { - return visitor.visitJoin_type(this); + if (visitor.visitJoinType) { + return visitor.visitJoinType(this); } else { return visitor.visitChildren(this); } @@ -76870,15 +76417,15 @@ export class Join_typeContext extends antlr.ParserRuleContext { } -export class Join_qualContext extends antlr.ParserRuleContext { +export class JoinQualContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_USING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USING, 0); } - public opt_column_list(): Opt_column_listContext | null { - return this.getRuleContext(0, Opt_column_listContext); + public optColumnList(): OptColumnListContext | null { + return this.getRuleContext(0, OptColumnListContext); } public KW_ON(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ON, 0); @@ -76887,21 +76434,21 @@ export class Join_qualContext extends antlr.ParserRuleContext { return this.getRuleContext(0, ExpressionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_join_qual; + return PostgreSqlParser.RULE_joinQual; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterJoin_qual) { - listener.enterJoin_qual(this); + if(listener.enterJoinQual) { + listener.enterJoinQual(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitJoin_qual) { - listener.exitJoin_qual(this); + if(listener.exitJoinQual) { + listener.exitJoinQual(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitJoin_qual) { - return visitor.visitJoin_qual(this); + if (visitor.visitJoinQual) { + return visitor.visitJoinQual(this); } else { return visitor.visitChildren(this); } @@ -76909,18 +76456,18 @@ export class Join_qualContext extends antlr.ParserRuleContext { } -export class Relation_exprContext extends antlr.ParserRuleContext { +export class RelationExprContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public truncate_table(): Truncate_tableContext | null { - return this.getRuleContext(0, Truncate_tableContext); + public truncateTable(): TruncateTableContext | null { + return this.getRuleContext(0, TruncateTableContext); } public KW_ONLY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ONLY, 0); } - public table_name(): Table_nameContext | null { - return this.getRuleContext(0, Table_nameContext); + public tableName(): TableNameContext | null { + return this.getRuleContext(0, TableNameContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -76934,28 +76481,28 @@ export class Relation_exprContext extends antlr.ParserRuleContext { public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); } - public schema_name(): Schema_nameContext | null { - return this.getRuleContext(0, Schema_nameContext); + public schemaName(): SchemaNameContext | null { + return this.getRuleContext(0, SchemaNameContext); } public KW_CURRENT_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CURRENT_SCHEMA, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_relation_expr; + return PostgreSqlParser.RULE_relationExpr; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRelation_expr) { - listener.enterRelation_expr(this); + if(listener.enterRelationExpr) { + listener.enterRelationExpr(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRelation_expr) { - listener.exitRelation_expr(this); + if(listener.exitRelationExpr) { + listener.exitRelationExpr(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRelation_expr) { - return visitor.visitRelation_expr(this); + if (visitor.visitRelationExpr) { + return visitor.visitRelationExpr(this); } else { return visitor.visitChildren(this); } @@ -76963,27 +76510,27 @@ export class Relation_exprContext extends antlr.ParserRuleContext { } -export class Publication_relation_exprContext extends antlr.ParserRuleContext { +export class PublicationRelationExprContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_TABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TABLE, 0); } - public truncate_table(): Truncate_tableContext | null { - return this.getRuleContext(0, Truncate_tableContext); + public truncateTable(): TruncateTableContext | null { + return this.getRuleContext(0, TruncateTableContext); } - public opt_column_list(): Opt_column_listContext | null { - return this.getRuleContext(0, Opt_column_listContext); + public optColumnList(): OptColumnListContext | null { + return this.getRuleContext(0, OptColumnListContext); } - public where_clause(): Where_clauseContext | null { - return this.getRuleContext(0, Where_clauseContext); + public whereClause(): WhereClauseContext | null { + return this.getRuleContext(0, WhereClauseContext); } public KW_ONLY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ONLY, 0); } - public table_name(): Table_nameContext | null { - return this.getRuleContext(0, Table_nameContext); + public tableName(): TableNameContext | null { + return this.getRuleContext(0, TableNameContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -77000,28 +76547,28 @@ export class Publication_relation_exprContext extends antlr.ParserRuleContext { public KW_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCHEMA, 0); } - public schema_name(): Schema_nameContext | null { - return this.getRuleContext(0, Schema_nameContext); + public schemaName(): SchemaNameContext | null { + return this.getRuleContext(0, SchemaNameContext); } public KW_CURRENT_SCHEMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CURRENT_SCHEMA, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_publication_relation_expr; + return PostgreSqlParser.RULE_publicationRelationExpr; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPublication_relation_expr) { - listener.enterPublication_relation_expr(this); + if(listener.enterPublicationRelationExpr) { + listener.enterPublicationRelationExpr(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPublication_relation_expr) { - listener.exitPublication_relation_expr(this); + if(listener.exitPublicationRelationExpr) { + listener.exitPublicationRelationExpr(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPublication_relation_expr) { - return visitor.visitPublication_relation_expr(this); + if (visitor.visitPublicationRelationExpr) { + return visitor.visitPublicationRelationExpr(this); } else { return visitor.visitChildren(this); } @@ -77029,18 +76576,18 @@ export class Publication_relation_exprContext extends antlr.ParserRuleContext { } -export class Relation_expr_listContext extends antlr.ParserRuleContext { +export class RelationExprListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public relation_expr(): Relation_exprContext[]; - public relation_expr(i: number): Relation_exprContext | null; - public relation_expr(i?: number): Relation_exprContext[] | Relation_exprContext | null { + public relationExpr(): RelationExprContext[]; + public relationExpr(i: number): RelationExprContext | null; + public relationExpr(i?: number): RelationExprContext[] | RelationExprContext | null { if (i === undefined) { - return this.getRuleContexts(Relation_exprContext); + return this.getRuleContexts(RelationExprContext); } - return this.getRuleContext(i, Relation_exprContext); + return this.getRuleContext(i, RelationExprContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -77052,21 +76599,21 @@ export class Relation_expr_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_relation_expr_list; + return PostgreSqlParser.RULE_relationExprList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRelation_expr_list) { - listener.enterRelation_expr_list(this); + if(listener.enterRelationExprList) { + listener.enterRelationExprList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRelation_expr_list) { - listener.exitRelation_expr_list(this); + if(listener.exitRelationExprList) { + listener.exitRelationExprList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRelation_expr_list) { - return visitor.visitRelation_expr_list(this); + if (visitor.visitRelationExprList) { + return visitor.visitRelationExprList(this); } else { return visitor.visitChildren(this); } @@ -77074,12 +76621,12 @@ export class Relation_expr_listContext extends antlr.ParserRuleContext { } -export class Relation_expr_opt_aliasContext extends antlr.ParserRuleContext { +export class RelationExprOptAliasContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public relation_expr(): Relation_exprContext { - return this.getRuleContext(0, Relation_exprContext)!; + public relationExpr(): RelationExprContext { + return this.getRuleContext(0, RelationExprContext)!; } public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); @@ -77088,21 +76635,21 @@ export class Relation_expr_opt_aliasContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_AS, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_relation_expr_opt_alias; + return PostgreSqlParser.RULE_relationExprOptAlias; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRelation_expr_opt_alias) { - listener.enterRelation_expr_opt_alias(this); + if(listener.enterRelationExprOptAlias) { + listener.enterRelationExprOptAlias(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRelation_expr_opt_alias) { - listener.exitRelation_expr_opt_alias(this); + if(listener.exitRelationExprOptAlias) { + listener.exitRelationExprOptAlias(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRelation_expr_opt_alias) { - return visitor.visitRelation_expr_opt_alias(this); + if (visitor.visitRelationExprOptAlias) { + return visitor.visitRelationExprOptAlias(this); } else { return visitor.visitChildren(this); } @@ -77117,11 +76664,11 @@ export class TableSampleClauseContext extends antlr.ParserRuleContext { public KW_TABLESAMPLE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_TABLESAMPLE, 0)!; } - public function_name(): Function_nameContext { - return this.getRuleContext(0, Function_nameContext)!; + public functionName(): FunctionNameContext { + return this.getRuleContext(0, FunctionNameContext)!; } - public execute_param_clause(): Execute_param_clauseContext { - return this.getRuleContext(0, Execute_param_clauseContext)!; + public executeParamClause(): ExecuteParamClauseContext { + return this.getRuleContext(0, ExecuteParamClauseContext)!; } public KW_REPEATABLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_REPEATABLE, 0); @@ -77158,12 +76705,12 @@ export class TableSampleClauseContext extends antlr.ParserRuleContext { } -export class Func_tableContext extends antlr.ParserRuleContext { +export class FuncTableContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public func_expr_windowless(): Func_expr_windowlessContext | null { - return this.getRuleContext(0, Func_expr_windowlessContext); + public funcExprWindowless(): FuncExprWindowlessContext | null { + return this.getRuleContext(0, FuncExprWindowlessContext); } public KW_WITH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITH, 0); @@ -77202,21 +76749,21 @@ export class Func_tableContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_table; + return PostgreSqlParser.RULE_funcTable; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_table) { - listener.enterFunc_table(this); + if(listener.enterFuncTable) { + listener.enterFuncTable(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_table) { - listener.exitFunc_table(this); + if(listener.exitFuncTable) { + listener.exitFuncTable(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_table) { - return visitor.visitFunc_table(this); + if (visitor.visitFuncTable) { + return visitor.visitFuncTable(this); } else { return visitor.visitChildren(this); } @@ -77228,8 +76775,8 @@ export class RowsFromItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public func_expr_windowless(): Func_expr_windowlessContext { - return this.getRuleContext(0, Func_expr_windowlessContext)!; + public funcExprWindowless(): FuncExprWindowlessContext { + return this.getRuleContext(0, FuncExprWindowlessContext)!; } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); @@ -77266,32 +76813,32 @@ export class RowsFromItemContext extends antlr.ParserRuleContext { } -export class Where_clauseContext extends antlr.ParserRuleContext { +export class WhereClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_WHERE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_WHERE, 0)!; } - public column_expr_no_paren(): Column_expr_no_parenContext { - return this.getRuleContext(0, Column_expr_no_parenContext)!; + public columnExprNoParen(): ColumnExprNoParenContext { + return this.getRuleContext(0, ColumnExprNoParenContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_where_clause; + return PostgreSqlParser.RULE_whereClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterWhere_clause) { - listener.enterWhere_clause(this); + if(listener.enterWhereClause) { + listener.enterWhereClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitWhere_clause) { - listener.exitWhere_clause(this); + if(listener.exitWhereClause) { + listener.exitWhereClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitWhere_clause) { - return visitor.visitWhere_clause(this); + if (visitor.visitWhereClause) { + return visitor.visitWhereClause(this); } else { return visitor.visitChildren(this); } @@ -77299,7 +76846,7 @@ export class Where_clauseContext extends antlr.ParserRuleContext { } -export class Where_or_current_clauseContext extends antlr.ParserRuleContext { +export class WhereOrCurrentClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -77319,21 +76866,21 @@ export class Where_or_current_clauseContext extends antlr.ParserRuleContext { return this.getRuleContext(0, ExpressionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_where_or_current_clause; + return PostgreSqlParser.RULE_whereOrCurrentClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterWhere_or_current_clause) { - listener.enterWhere_or_current_clause(this); + if(listener.enterWhereOrCurrentClause) { + listener.enterWhereOrCurrentClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitWhere_or_current_clause) { - listener.exitWhere_or_current_clause(this); + if(listener.exitWhereOrCurrentClause) { + listener.exitWhereOrCurrentClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitWhere_or_current_clause) { - return visitor.visitWhere_or_current_clause(this); + if (visitor.visitWhereOrCurrentClause) { + return visitor.visitWhereOrCurrentClause(this); } else { return visitor.visitChildren(this); } @@ -77396,8 +76943,8 @@ export class TableFuncElementContext extends antlr.ParserRuleContext { public typename(): TypenameContext { return this.getRuleContext(0, TypenameContext)!; } - public opt_collate_clause(): Opt_collate_clauseContext | null { - return this.getRuleContext(0, Opt_collate_clauseContext); + public collateClause(): CollateClauseContext | null { + return this.getRuleContext(0, CollateClauseContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_tableFuncElement; @@ -77468,14 +77015,14 @@ export class XmlTableContext extends antlr.ParserRuleContext { public KW_XMLNAMESPACES(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_XMLNAMESPACES, 0); } - public xml_namespace_el(): Xml_namespace_elContext[]; - public xml_namespace_el(i: number): Xml_namespace_elContext | null; - public xml_namespace_el(i?: number): Xml_namespace_elContext[] | Xml_namespace_elContext | null { + public xmlNamespaceEle(): XmlNamespaceEleContext[]; + public xmlNamespaceEle(i: number): XmlNamespaceEleContext | null; + public xmlNamespaceEle(i?: number): XmlNamespaceEleContext[] | XmlNamespaceEleContext | null { if (i === undefined) { - return this.getRuleContexts(Xml_namespace_elContext); + return this.getRuleContexts(XmlNamespaceEleContext); } - return this.getRuleContext(i, Xml_namespace_elContext); + return this.getRuleContext(i, XmlNamespaceEleContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -77593,7 +77140,7 @@ export class XmlTableColumnElContext extends antlr.ParserRuleContext { } -export class Xml_namespace_elContext extends antlr.ParserRuleContext { +export class XmlNamespaceEleContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -77610,21 +77157,21 @@ export class Xml_namespace_elContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_xml_namespace_el; + return PostgreSqlParser.RULE_xmlNamespaceEle; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterXml_namespace_el) { - listener.enterXml_namespace_el(this); + if(listener.enterXmlNamespaceEle) { + listener.enterXmlNamespaceEle(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitXml_namespace_el) { - listener.exitXml_namespace_el(this); + if(listener.exitXmlNamespaceEle) { + listener.exitXmlNamespaceEle(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitXml_namespace_el) { - return visitor.visitXml_namespace_el(this); + if (visitor.visitXmlNamespaceEle) { + return visitor.visitXmlNamespaceEle(this); } else { return visitor.visitChildren(this); } @@ -77672,8 +77219,8 @@ export class TypenameContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_BRACKET, i); } } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public PERCENT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.PERCENT, 0); @@ -77711,14 +77258,14 @@ export class SimpleTypeNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public type_function_name(): Type_function_nameContext | null { - return this.getRuleContext(0, Type_function_nameContext); + public typeFunctionName(): TypeFunctionNameContext | null { + return this.getRuleContext(0, TypeFunctionNameContext); } public attrs(): AttrsContext | null { return this.getRuleContext(0, AttrsContext); } - public execute_param_clause(): Execute_param_clauseContext | null { - return this.getRuleContext(0, Execute_param_clauseContext); + public executeParamClause(): ExecuteParamClauseContext | null { + return this.getRuleContext(0, ExecuteParamClauseContext); } public constTypeName(): ConstTypeNameContext | null { return this.getRuleContext(0, ConstTypeNameContext); @@ -77726,11 +77273,11 @@ export class SimpleTypeNameContext extends antlr.ParserRuleContext { public KW_INTERVAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INTERVAL, 0); } - public opt_float(): Opt_floatContext | null { - return this.getRuleContext(0, Opt_floatContext); + public optFloat(): OptFloatContext | null { + return this.getRuleContext(0, OptFloatContext); } - public opt_interval(): Opt_intervalContext | null { - return this.getRuleContext(0, Opt_intervalContext); + public optInterval(): OptIntervalContext | null { + return this.getRuleContext(0, OptIntervalContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_simpleTypeName; @@ -77816,8 +77363,8 @@ export class NumericContext extends antlr.ParserRuleContext { public KW_FLOAT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FLOAT, 0); } - public opt_float(): Opt_floatContext | null { - return this.getRuleContext(0, Opt_floatContext); + public optFloat(): OptFloatContext | null { + return this.getRuleContext(0, OptFloatContext); } public KW_DOUBLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DOUBLE, 0); @@ -77834,8 +77381,8 @@ export class NumericContext extends antlr.ParserRuleContext { public KW_NUMERIC(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NUMERIC, 0); } - public execute_param_clause(): Execute_param_clauseContext | null { - return this.getRuleContext(0, Execute_param_clauseContext); + public executeParamClause(): ExecuteParamClauseContext | null { + return this.getRuleContext(0, ExecuteParamClauseContext); } public KW_BOOLEAN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BOOLEAN, 0); @@ -77863,7 +77410,7 @@ export class NumericContext extends antlr.ParserRuleContext { } -export class Opt_floatContext extends antlr.ParserRuleContext { +export class OptFloatContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -77877,21 +77424,21 @@ export class Opt_floatContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_float; + return PostgreSqlParser.RULE_optFloat; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_float) { - listener.enterOpt_float(this); + if(listener.enterOptFloat) { + listener.enterOptFloat(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_float) { - listener.exitOpt_float(this); + if(listener.exitOptFloat) { + listener.exitOptFloat(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_float) { - return visitor.visitOpt_float(this); + if (visitor.visitOptFloat) { + return visitor.visitOptFloat(this); } else { return visitor.visitChildren(this); } @@ -77909,8 +77456,8 @@ export class BitContext extends antlr.ParserRuleContext { public KW_VARYING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VARYING, 0); } - public execute_param_clause(): Execute_param_clauseContext | null { - return this.getRuleContext(0, Execute_param_clauseContext); + public executeParamClause(): ExecuteParamClauseContext | null { + return this.getRuleContext(0, ExecuteParamClauseContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_bit; @@ -77954,8 +77501,8 @@ export class CharacterContext extends antlr.ParserRuleContext { public KW_NCHAR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NCHAR, 0); } - public opt_float(): Opt_floatContext | null { - return this.getRuleContext(0, Opt_floatContext); + public optFloat(): OptFloatContext | null { + return this.getRuleContext(0, OptFloatContext); } public KW_VARYING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VARYING, 0); @@ -77999,8 +77546,8 @@ export class ConstDatetimeContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_TIME, i); } } - public opt_float(): Opt_floatContext | null { - return this.getRuleContext(0, Opt_floatContext); + public optFloat(): OptFloatContext | null { + return this.getRuleContext(0, OptFloatContext); } public KW_ZONE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ZONE, 0); @@ -78034,15 +77581,15 @@ export class ConstDatetimeContext extends antlr.ParserRuleContext { } -export class Opt_intervalContext extends antlr.ParserRuleContext { +export class OptIntervalContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_MONTH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_MONTH, 0); } - public interval_second(): Interval_secondContext | null { - return this.getRuleContext(0, Interval_secondContext); + public intervalSecond(): IntervalSecondContext | null { + return this.getRuleContext(0, IntervalSecondContext); } public KW_YEAR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_YEAR, 0); @@ -78060,21 +77607,21 @@ export class Opt_intervalContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_MINUTE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_interval; + return PostgreSqlParser.RULE_optInterval; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_interval) { - listener.enterOpt_interval(this); + if(listener.enterOptInterval) { + listener.enterOptInterval(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_interval) { - listener.exitOpt_interval(this); + if(listener.exitOptInterval) { + listener.exitOptInterval(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_interval) { - return visitor.visitOpt_interval(this); + if (visitor.visitOptInterval) { + return visitor.visitOptInterval(this); } else { return visitor.visitChildren(this); } @@ -78082,32 +77629,32 @@ export class Opt_intervalContext extends antlr.ParserRuleContext { } -export class Interval_secondContext extends antlr.ParserRuleContext { +export class IntervalSecondContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_SECOND(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SECOND, 0)!; } - public opt_float(): Opt_floatContext | null { - return this.getRuleContext(0, Opt_floatContext); + public optFloat(): OptFloatContext | null { + return this.getRuleContext(0, OptFloatContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_interval_second; + return PostgreSqlParser.RULE_intervalSecond; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterInterval_second) { - listener.enterInterval_second(this); + if(listener.enterIntervalSecond) { + listener.enterIntervalSecond(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitInterval_second) { - listener.exitInterval_second(this); + if(listener.exitIntervalSecond) { + listener.exitIntervalSecond(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitInterval_second) { - return visitor.visitInterval_second(this); + if (visitor.visitIntervalSecond) { + return visitor.visitIntervalSecond(this); } else { return visitor.visitChildren(this); } @@ -78413,8 +77960,8 @@ export class InSubqueryContext extends PredicateContext { public KW_IN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_IN, 0)!; } - public select_with_parens(): Select_with_parensContext { - return this.getRuleContext(0, Select_with_parensContext)!; + public selectWithParens(): SelectWithParensContext { + return this.getRuleContext(0, SelectWithParensContext)!; } public KW_NOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOT, 0); @@ -78612,14 +78159,14 @@ export class QuantifiedComparisonContext extends PredicateContext { public comparisonOperator(): ComparisonOperatorContext { return this.getRuleContext(0, ComparisonOperatorContext)!; } - public subquery_Op(): Subquery_OpContext { - return this.getRuleContext(0, Subquery_OpContext)!; + public subqueryOperator(): SubqueryOperatorContext { + return this.getRuleContext(0, SubqueryOperatorContext)!; } - public sub_type(): Sub_typeContext { - return this.getRuleContext(0, Sub_typeContext)!; + public subType(): SubTypeContext { + return this.getRuleContext(0, SubTypeContext)!; } - public select_with_parens(): Select_with_parensContext | null { - return this.getRuleContext(0, Select_with_parensContext); + public selectWithParens(): SelectWithParensContext | null { + return this.getRuleContext(0, SelectWithParensContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -78852,8 +78399,8 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public select_with_parens(): Select_with_parensContext | null { - return this.getRuleContext(0, Select_with_parensContext); + public selectWithParens(): SelectWithParensContext | null { + return this.getRuleContext(0, SelectWithParensContext); } public KW_EXISTS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_EXISTS, 0); @@ -78864,20 +78411,20 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { public KW_ARRAY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ARRAY, 0); } - public array_expr(): Array_exprContext | null { - return this.getRuleContext(0, Array_exprContext); + public arrayExpr(): ArrayExprContext | null { + return this.getRuleContext(0, ArrayExprContext); } public PARAM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.PARAM, 0); } - public opt_indirection(): Opt_indirectionContext | null { - return this.getRuleContext(0, Opt_indirectionContext); + public optIndirection(): OptIndirectionContext | null { + return this.getRuleContext(0, OptIndirectionContext); } public KW_GROUPING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_GROUPING, 0); } - public execute_param_clause(): Execute_param_clauseContext | null { - return this.getRuleContext(0, Execute_param_clauseContext); + public executeParamClause(): ExecuteParamClauseContext | null { + return this.getRuleContext(0, ExecuteParamClauseContext); } public Integral(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.Integral, 0); @@ -78891,8 +78438,8 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { public HexadecimalStringConstant(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.HexadecimalStringConstant, 0); } - public function_name(): Function_nameContext | null { - return this.getRuleContext(0, Function_nameContext); + public functionName(): FunctionNameContext | null { + return this.getRuleContext(0, FunctionNameContext); } public stringConst(): StringConstContext | null { return this.getRuleContext(0, StringConstContext); @@ -78900,14 +78447,14 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public func_arg_list(): Func_arg_listContext | null { - return this.getRuleContext(0, Func_arg_listContext); + public funcArgList(): FuncArgListContext | null { + return this.getRuleContext(0, FuncArgListContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } - public sort_clause(): Sort_clauseContext | null { - return this.getRuleContext(0, Sort_clauseContext); + public sortClause(): SortClauseContext | null { + return this.getRuleContext(0, SortClauseContext); } public constTypeName(): ConstTypeNameContext | null { return this.getRuleContext(0, ConstTypeNameContext); @@ -78915,11 +78462,11 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { public KW_INTERVAL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_INTERVAL, 0); } - public opt_float(): Opt_floatContext | null { - return this.getRuleContext(0, Opt_floatContext); + public optFloat(): OptFloatContext | null { + return this.getRuleContext(0, OptFloatContext); } - public opt_interval(): Opt_intervalContext | null { - return this.getRuleContext(0, Opt_intervalContext); + public optInterval(): OptIntervalContext | null { + return this.getRuleContext(0, OptIntervalContext); } public KW_TRUE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TRUE, 0); @@ -78966,14 +78513,14 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { public indirection(): IndirectionContext | null { return this.getRuleContext(0, IndirectionContext); } - public explicit_row(): Explicit_rowContext | null { - return this.getRuleContext(0, Explicit_rowContext); + public explicitRow(): ExplicitRowContext | null { + return this.getRuleContext(0, ExplicitRowContext); } public COMMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.COMMA, 0); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } public row(): RowContext[]; public row(i: number): RowContext | null; @@ -78987,8 +78534,8 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { public KW_OVERLAPS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OVERLAPS, 0); } - public qualified_name(): Qualified_nameContext | null { - return this.getRuleContext(0, Qualified_nameContext); + public qualifiedName(): QualifiedNameContext | null { + return this.getRuleContext(0, QualifiedNameContext); } public primaryExpression(): PrimaryExpressionContext[]; public primaryExpression(i: number): PrimaryExpressionContext | null; @@ -79005,11 +78552,11 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { public MINUS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.MINUS, 0); } - public qual_op(): Qual_opContext | null { - return this.getRuleContext(0, Qual_opContext); + public qualOp(): QualOpContext | null { + return this.getRuleContext(0, QualOpContext); } - public mathop(): MathopContext | null { - return this.getRuleContext(0, MathopContext); + public mathOp(): MathOpContext | null { + return this.getRuleContext(0, MathOpContext); } public TYPECAST(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.TYPECAST, 0); @@ -79029,8 +78576,8 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { public KW_OF(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OF, 0); } - public prep_type_clause(): Prep_type_clauseContext | null { - return this.getRuleContext(0, Prep_type_clauseContext); + public prepTypeClause(): PrepTypeClauseContext | null { + return this.getRuleContext(0, PrepTypeClauseContext); } public KW_DOCUMENT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DOCUMENT, 0); @@ -79061,12 +78608,12 @@ export class PrimaryExpressionContext extends antlr.ParserRuleContext { } -export class Func_applicationContext extends antlr.ParserRuleContext { +export class FuncApplicationContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public function_name(): Function_nameContext { - return this.getRuleContext(0, Function_nameContext)!; + public functionName(): FunctionNameContext { + return this.getRuleContext(0, FunctionNameContext)!; } public OPEN_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0)!; @@ -79074,14 +78621,14 @@ export class Func_applicationContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } - public func_arg_list(): Func_arg_listContext | null { - return this.getRuleContext(0, Func_arg_listContext); + public funcArgList(): FuncArgListContext | null { + return this.getRuleContext(0, FuncArgListContext); } public KW_VARIADIC(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_VARIADIC, 0); } - public func_arg_expr(): Func_arg_exprContext | null { - return this.getRuleContext(0, Func_arg_exprContext); + public funcArgExpr(): FuncArgExprContext | null { + return this.getRuleContext(0, FuncArgExprContext); } public STAR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.STAR, 0); @@ -79095,25 +78642,25 @@ export class Func_applicationContext extends antlr.ParserRuleContext { public COMMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.COMMA, 0); } - public sort_clause(): Sort_clauseContext | null { - return this.getRuleContext(0, Sort_clauseContext); + public sortClause(): SortClauseContext | null { + return this.getRuleContext(0, SortClauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_application; + return PostgreSqlParser.RULE_funcApplication; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_application) { - listener.enterFunc_application(this); + if(listener.enterFuncApplication) { + listener.enterFuncApplication(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_application) { - listener.exitFunc_application(this); + if(listener.exitFuncApplication) { + listener.exitFuncApplication(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_application) { - return visitor.visitFunc_application(this); + if (visitor.visitFuncApplication) { + return visitor.visitFuncApplication(this); } else { return visitor.visitChildren(this); } @@ -79125,8 +78672,8 @@ export class Func_exprContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public func_application(): Func_applicationContext | null { - return this.getRuleContext(0, Func_applicationContext); + public funcApplication(): FuncApplicationContext | null { + return this.getRuleContext(0, FuncApplicationContext); } public KW_WITHIN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WITHIN, 0); @@ -79143,8 +78690,8 @@ export class Func_exprContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.OPEN_PAREN, i); } } - public sort_clause(): Sort_clauseContext | null { - return this.getRuleContext(0, Sort_clauseContext); + public sortClause(): SortClauseContext | null { + return this.getRuleContext(0, SortClauseContext); } public CLOSE_PAREN(): antlr.TerminalNode[]; public CLOSE_PAREN(i: number): antlr.TerminalNode | null; @@ -79167,14 +78714,14 @@ export class Func_exprContext extends antlr.ParserRuleContext { public KW_OVER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OVER, 0); } - public window_specification(): Window_specificationContext | null { - return this.getRuleContext(0, Window_specificationContext); + public windowSpecification(): WindowSpecificationContext | null { + return this.getRuleContext(0, WindowSpecificationContext); } public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); } - public func_expr_common_subexpr(): Func_expr_common_subexprContext | null { - return this.getRuleContext(0, Func_expr_common_subexprContext); + public funcExprCommonSubExpr(): FuncExprCommonSubExprContext | null { + return this.getRuleContext(0, FuncExprCommonSubExprContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_func_expr; @@ -79199,32 +78746,32 @@ export class Func_exprContext extends antlr.ParserRuleContext { } -export class Func_expr_windowlessContext extends antlr.ParserRuleContext { +export class FuncExprWindowlessContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public func_application(): Func_applicationContext | null { - return this.getRuleContext(0, Func_applicationContext); + public funcApplication(): FuncApplicationContext | null { + return this.getRuleContext(0, FuncApplicationContext); } - public func_expr_common_subexpr(): Func_expr_common_subexprContext | null { - return this.getRuleContext(0, Func_expr_common_subexprContext); + public funcExprCommonSubExpr(): FuncExprCommonSubExprContext | null { + return this.getRuleContext(0, FuncExprCommonSubExprContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_expr_windowless; + return PostgreSqlParser.RULE_funcExprWindowless; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_expr_windowless) { - listener.enterFunc_expr_windowless(this); + if(listener.enterFuncExprWindowless) { + listener.enterFuncExprWindowless(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_expr_windowless) { - listener.exitFunc_expr_windowless(this); + if(listener.exitFuncExprWindowless) { + listener.exitFuncExprWindowless(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_expr_windowless) { - return visitor.visitFunc_expr_windowless(this); + if (visitor.visitFuncExprWindowless) { + return visitor.visitFuncExprWindowless(this); } else { return visitor.visitChildren(this); } @@ -79232,7 +78779,7 @@ export class Func_expr_windowlessContext extends antlr.ParserRuleContext { } -export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { +export class FuncExprCommonSubExprContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -79284,8 +78831,8 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { public KW_LOCALTIMESTAMP(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LOCALTIMESTAMP, 0); } - public opt_float(): Opt_floatContext | null { - return this.getRuleContext(0, Opt_floatContext); + public optFloat(): OptFloatContext | null { + return this.getRuleContext(0, OptFloatContext); } public KW_CURRENT_ROLE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CURRENT_ROLE, 0); @@ -79320,8 +78867,8 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { public KW_EXTRACT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_EXTRACT, 0); } - public extract_arg(): Extract_argContext | null { - return this.getRuleContext(0, Extract_argContext); + public extractArg(): ExtractArgContext | null { + return this.getRuleContext(0, ExtractArgContext); } public KW_FROM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FROM, 0); @@ -79338,8 +78885,8 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.COMMA, i); } } - public unicode_normal_form(): Unicode_normal_formContext | null { - return this.getRuleContext(0, Unicode_normal_formContext); + public unicodeNormalForm(): UnicodeNormalFormContext | null { + return this.getRuleContext(0, UnicodeNormalFormContext); } public KW_OVERLAY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OVERLAY, 0); @@ -79365,14 +78912,14 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { public KW_SUBSTRING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SUBSTRING, 0); } - public substr_list(): Substr_listContext | null { - return this.getRuleContext(0, Substr_listContext); + public substrList(): SubstrListContext | null { + return this.getRuleContext(0, SubstrListContext); } public KW_TRIM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TRIM, 0); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } public KW_BOTH(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BOTH, 0); @@ -79386,8 +78933,8 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { public KW_NULLIF(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NULLIF, 0); } - public execute_param_clause(): Execute_param_clauseContext | null { - return this.getRuleContext(0, Execute_param_clauseContext); + public executeParamClause(): ExecuteParamClauseContext | null { + return this.getRuleContext(0, ExecuteParamClauseContext); } public KW_COALESCE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_COALESCE, 0); @@ -79413,8 +78960,8 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { public KW_XMLATTRIBUTES(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_XMLATTRIBUTES, 0); } - public xml_attribute_list(): Xml_attribute_listContext | null { - return this.getRuleContext(0, Xml_attribute_listContext); + public xmlAttributeList(): XmlAttributeListContext | null { + return this.getRuleContext(0, XmlAttributeListContext); } public KW_XMLEXISTS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_XMLEXISTS, 0); @@ -79428,8 +78975,8 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { public KW_XMLPARSE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_XMLPARSE, 0); } - public document_or_content(): Document_or_contentContext | null { - return this.getRuleContext(0, Document_or_contentContext); + public documentOrContent(): DocumentOrContentContext | null { + return this.getRuleContext(0, DocumentOrContentContext); } public KW_WHITESPACE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WHITESPACE, 0); @@ -79483,21 +79030,21 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { return this.getRuleContext(0, SimpleTypeNameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_expr_common_subexpr; + return PostgreSqlParser.RULE_funcExprCommonSubExpr; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_expr_common_subexpr) { - listener.enterFunc_expr_common_subexpr(this); + if(listener.enterFuncExprCommonSubExpr) { + listener.enterFuncExprCommonSubExpr(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_expr_common_subexpr) { - listener.exitFunc_expr_common_subexpr(this); + if(listener.exitFuncExprCommonSubExpr) { + listener.exitFuncExprCommonSubExpr(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_expr_common_subexpr) { - return visitor.visitFunc_expr_common_subexpr(this); + if (visitor.visitFuncExprCommonSubExpr) { + return visitor.visitFuncExprCommonSubExpr(this); } else { return visitor.visitChildren(this); } @@ -79505,18 +79052,18 @@ export class Func_expr_common_subexprContext extends antlr.ParserRuleContext { } -export class Xml_attribute_listContext extends antlr.ParserRuleContext { +export class XmlAttributeListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public xml_attribute_el(): Xml_attribute_elContext[]; - public xml_attribute_el(i: number): Xml_attribute_elContext | null; - public xml_attribute_el(i?: number): Xml_attribute_elContext[] | Xml_attribute_elContext | null { + public xmlAttributeEl(): XmlAttributeElContext[]; + public xmlAttributeEl(i: number): XmlAttributeElContext | null; + public xmlAttributeEl(i?: number): XmlAttributeElContext[] | XmlAttributeElContext | null { if (i === undefined) { - return this.getRuleContexts(Xml_attribute_elContext); + return this.getRuleContexts(XmlAttributeElContext); } - return this.getRuleContext(i, Xml_attribute_elContext); + return this.getRuleContext(i, XmlAttributeElContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -79528,21 +79075,21 @@ export class Xml_attribute_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_xml_attribute_list; + return PostgreSqlParser.RULE_xmlAttributeList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterXml_attribute_list) { - listener.enterXml_attribute_list(this); + if(listener.enterXmlAttributeList) { + listener.enterXmlAttributeList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitXml_attribute_list) { - listener.exitXml_attribute_list(this); + if(listener.exitXmlAttributeList) { + listener.exitXmlAttributeList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitXml_attribute_list) { - return visitor.visitXml_attribute_list(this); + if (visitor.visitXmlAttributeList) { + return visitor.visitXmlAttributeList(this); } else { return visitor.visitChildren(this); } @@ -79550,7 +79097,7 @@ export class Xml_attribute_listContext extends antlr.ParserRuleContext { } -export class Xml_attribute_elContext extends antlr.ParserRuleContext { +export class XmlAttributeElContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -79564,21 +79111,21 @@ export class Xml_attribute_elContext extends antlr.ParserRuleContext { return this.getRuleContext(0, ColLabelContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_xml_attribute_el; + return PostgreSqlParser.RULE_xmlAttributeEl; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterXml_attribute_el) { - listener.enterXml_attribute_el(this); + if(listener.enterXmlAttributeEl) { + listener.enterXmlAttributeEl(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitXml_attribute_el) { - listener.exitXml_attribute_el(this); + if(listener.exitXmlAttributeEl) { + listener.exitXmlAttributeEl(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitXml_attribute_el) { - return visitor.visitXml_attribute_el(this); + if (visitor.visitXmlAttributeEl) { + return visitor.visitXmlAttributeEl(this); } else { return visitor.visitChildren(this); } @@ -79586,7 +79133,7 @@ export class Xml_attribute_elContext extends antlr.ParserRuleContext { } -export class Document_or_contentContext extends antlr.ParserRuleContext { +export class DocumentOrContentContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -79597,21 +79144,21 @@ export class Document_or_contentContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_CONTENT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_document_or_content; + return PostgreSqlParser.RULE_documentOrContent; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDocument_or_content) { - listener.enterDocument_or_content(this); + if(listener.enterDocumentOrContent) { + listener.enterDocumentOrContent(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDocument_or_content) { - listener.exitDocument_or_content(this); + if(listener.exitDocumentOrContent) { + listener.exitDocumentOrContent(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDocument_or_content) { - return visitor.visitDocument_or_content(this); + if (visitor.visitDocumentOrContent) { + return visitor.visitDocumentOrContent(this); } else { return visitor.visitChildren(this); } @@ -79629,14 +79176,14 @@ export class XmlExistsArgumentContext extends antlr.ParserRuleContext { public primaryExpression(): PrimaryExpressionContext { return this.getRuleContext(0, PrimaryExpressionContext)!; } - public xml_passing_mech(): Xml_passing_mechContext[]; - public xml_passing_mech(i: number): Xml_passing_mechContext | null; - public xml_passing_mech(i?: number): Xml_passing_mechContext[] | Xml_passing_mechContext | null { + public xmlPassingMech(): XmlPassingMechContext[]; + public xmlPassingMech(i: number): XmlPassingMechContext | null; + public xmlPassingMech(i?: number): XmlPassingMechContext[] | XmlPassingMechContext | null { if (i === undefined) { - return this.getRuleContexts(Xml_passing_mechContext); + return this.getRuleContexts(XmlPassingMechContext); } - return this.getRuleContext(i, Xml_passing_mechContext); + return this.getRuleContext(i, XmlPassingMechContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_xmlExistsArgument; @@ -79661,7 +79208,7 @@ export class XmlExistsArgumentContext extends antlr.ParserRuleContext { } -export class Xml_passing_mechContext extends antlr.ParserRuleContext { +export class XmlPassingMechContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -79675,21 +79222,21 @@ export class Xml_passing_mechContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_VALUE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_xml_passing_mech; + return PostgreSqlParser.RULE_xmlPassingMech; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterXml_passing_mech) { - listener.enterXml_passing_mech(this); + if(listener.enterXmlPassingMech) { + listener.enterXmlPassingMech(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitXml_passing_mech) { - listener.exitXml_passing_mech(this); + if(listener.exitXmlPassingMech) { + listener.exitXmlPassingMech(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitXml_passing_mech) { - return visitor.visitXml_passing_mech(this); + if (visitor.visitXmlPassingMech) { + return visitor.visitXmlPassingMech(this); } else { return visitor.visitChildren(this); } @@ -79697,21 +79244,21 @@ export class Xml_passing_mechContext extends antlr.ParserRuleContext { } -export class Window_clauseContext extends antlr.ParserRuleContext { +export class WindowClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_WINDOW(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_WINDOW, 0)!; } - public window_definition(): Window_definitionContext[]; - public window_definition(i: number): Window_definitionContext | null; - public window_definition(i?: number): Window_definitionContext[] | Window_definitionContext | null { + public windowDefinition(): WindowDefinitionContext[]; + public windowDefinition(i: number): WindowDefinitionContext | null; + public windowDefinition(i?: number): WindowDefinitionContext[] | WindowDefinitionContext | null { if (i === undefined) { - return this.getRuleContexts(Window_definitionContext); + return this.getRuleContexts(WindowDefinitionContext); } - return this.getRuleContext(i, Window_definitionContext); + return this.getRuleContext(i, WindowDefinitionContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -79723,21 +79270,21 @@ export class Window_clauseContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_window_clause; + return PostgreSqlParser.RULE_windowClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterWindow_clause) { - listener.enterWindow_clause(this); + if(listener.enterWindowClause) { + listener.enterWindowClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitWindow_clause) { - listener.exitWindow_clause(this); + if(listener.exitWindowClause) { + listener.exitWindowClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitWindow_clause) { - return visitor.visitWindow_clause(this); + if (visitor.visitWindowClause) { + return visitor.visitWindowClause(this); } else { return visitor.visitChildren(this); } @@ -79745,7 +79292,7 @@ export class Window_clauseContext extends antlr.ParserRuleContext { } -export class Window_definitionContext extends antlr.ParserRuleContext { +export class WindowDefinitionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -79755,25 +79302,25 @@ export class Window_definitionContext extends antlr.ParserRuleContext { public KW_AS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_AS, 0)!; } - public window_specification(): Window_specificationContext { - return this.getRuleContext(0, Window_specificationContext)!; + public windowSpecification(): WindowSpecificationContext { + return this.getRuleContext(0, WindowSpecificationContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_window_definition; + return PostgreSqlParser.RULE_windowDefinition; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterWindow_definition) { - listener.enterWindow_definition(this); + if(listener.enterWindowDefinition) { + listener.enterWindowDefinition(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitWindow_definition) { - listener.exitWindow_definition(this); + if(listener.exitWindowDefinition) { + listener.exitWindowDefinition(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitWindow_definition) { - return visitor.visitWindow_definition(this); + if (visitor.visitWindowDefinition) { + return visitor.visitWindowDefinition(this); } else { return visitor.visitChildren(this); } @@ -79788,8 +79335,8 @@ export class Over_clauseContext extends antlr.ParserRuleContext { public KW_OVER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_OVER, 0)!; } - public window_specification(): Window_specificationContext | null { - return this.getRuleContext(0, Window_specificationContext); + public windowSpecification(): WindowSpecificationContext | null { + return this.getRuleContext(0, WindowSpecificationContext); } public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); @@ -79817,7 +79364,7 @@ export class Over_clauseContext extends antlr.ParserRuleContext { } -export class Window_specificationContext extends antlr.ParserRuleContext { +export class WindowSpecificationContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -79836,31 +79383,31 @@ export class Window_specificationContext extends antlr.ParserRuleContext { public KW_BY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_BY, 0); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } - public sort_clause(): Sort_clauseContext | null { - return this.getRuleContext(0, Sort_clauseContext); + public sortClause(): SortClauseContext | null { + return this.getRuleContext(0, SortClauseContext); } - public opt_frame_clause(): Opt_frame_clauseContext | null { - return this.getRuleContext(0, Opt_frame_clauseContext); + public optFrameClause(): OptFrameClauseContext | null { + return this.getRuleContext(0, OptFrameClauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_window_specification; + return PostgreSqlParser.RULE_windowSpecification; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterWindow_specification) { - listener.enterWindow_specification(this); + if(listener.enterWindowSpecification) { + listener.enterWindowSpecification(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitWindow_specification) { - listener.exitWindow_specification(this); + if(listener.exitWindowSpecification) { + listener.exitWindowSpecification(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitWindow_specification) { - return visitor.visitWindow_specification(this); + if (visitor.visitWindowSpecification) { + return visitor.visitWindowSpecification(this); } else { return visitor.visitChildren(this); } @@ -79868,7 +79415,7 @@ export class Window_specificationContext extends antlr.ParserRuleContext { } -export class Opt_frame_clauseContext extends antlr.ParserRuleContext { +export class OptFrameClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -79881,14 +79428,14 @@ export class Opt_frame_clauseContext extends antlr.ParserRuleContext { public KW_GROUPS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_GROUPS, 0); } - public frame_bound(): Frame_boundContext[]; - public frame_bound(i: number): Frame_boundContext | null; - public frame_bound(i?: number): Frame_boundContext[] | Frame_boundContext | null { + public frameBound(): FrameBoundContext[]; + public frameBound(i: number): FrameBoundContext | null; + public frameBound(i?: number): FrameBoundContext[] | FrameBoundContext | null { if (i === undefined) { - return this.getRuleContexts(Frame_boundContext); + return this.getRuleContexts(FrameBoundContext); } - return this.getRuleContext(i, Frame_boundContext); + return this.getRuleContext(i, FrameBoundContext); } public KW_EXCLUDE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_EXCLUDE, 0); @@ -79918,21 +79465,21 @@ export class Opt_frame_clauseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_OTHERS, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_frame_clause; + return PostgreSqlParser.RULE_optFrameClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_frame_clause) { - listener.enterOpt_frame_clause(this); + if(listener.enterOptFrameClause) { + listener.enterOptFrameClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_frame_clause) { - listener.exitOpt_frame_clause(this); + if(listener.exitOptFrameClause) { + listener.exitOptFrameClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_frame_clause) { - return visitor.visitOpt_frame_clause(this); + if (visitor.visitOptFrameClause) { + return visitor.visitOptFrameClause(this); } else { return visitor.visitChildren(this); } @@ -79940,7 +79487,7 @@ export class Opt_frame_clauseContext extends antlr.ParserRuleContext { } -export class Frame_boundContext extends antlr.ParserRuleContext { +export class FrameBoundContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -79963,21 +79510,21 @@ export class Frame_boundContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ROW, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_frame_bound; + return PostgreSqlParser.RULE_frameBound; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFrame_bound) { - listener.enterFrame_bound(this); + if(listener.enterFrameBound) { + listener.enterFrameBound(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFrame_bound) { - listener.exitFrame_bound(this); + if(listener.exitFrameBound) { + listener.exitFrameBound(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFrame_bound) { - return visitor.visitFrame_bound(this); + if (visitor.visitFrameBound) { + return visitor.visitFrameBound(this); } else { return visitor.visitChildren(this); } @@ -79989,14 +79536,14 @@ export class RowContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public explicit_row(): Explicit_rowContext | null { - return this.getRuleContext(0, Explicit_rowContext); + public explicitRow(): ExplicitRowContext | null { + return this.getRuleContext(0, ExplicitRowContext); } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } public COMMA(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.COMMA, 0); @@ -80030,7 +79577,7 @@ export class RowContext extends antlr.ParserRuleContext { } -export class Explicit_rowContext extends antlr.ParserRuleContext { +export class ExplicitRowContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80043,25 +79590,25 @@ export class Explicit_rowContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0)!; } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_explicit_row; + return PostgreSqlParser.RULE_explicitRow; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterExplicit_row) { - listener.enterExplicit_row(this); + if(listener.enterExplicitRow) { + listener.enterExplicitRow(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitExplicit_row) { - listener.exitExplicit_row(this); + if(listener.exitExplicitRow) { + listener.exitExplicitRow(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitExplicit_row) { - return visitor.visitExplicit_row(this); + if (visitor.visitExplicitRow) { + return visitor.visitExplicitRow(this); } else { return visitor.visitChildren(this); } @@ -80069,7 +79616,7 @@ export class Explicit_rowContext extends antlr.ParserRuleContext { } -export class Sub_typeContext extends antlr.ParserRuleContext { +export class SubTypeContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80083,21 +79630,21 @@ export class Sub_typeContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ALL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_sub_type; + return PostgreSqlParser.RULE_subType; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSub_type) { - listener.enterSub_type(this); + if(listener.enterSubType) { + listener.enterSubType(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSub_type) { - listener.exitSub_type(this); + if(listener.exitSubType) { + listener.exitSubType(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSub_type) { - return visitor.visitSub_type(this); + if (visitor.visitSubType) { + return visitor.visitSubType(this); } else { return visitor.visitChildren(this); } @@ -80105,32 +79652,32 @@ export class Sub_typeContext extends antlr.ParserRuleContext { } -export class All_opContext extends antlr.ParserRuleContext { +export class AllOpContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public Operator(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.Operator, 0); } - public mathop(): MathopContext | null { - return this.getRuleContext(0, MathopContext); + public mathOp(): MathOpContext | null { + return this.getRuleContext(0, MathOpContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_all_op; + return PostgreSqlParser.RULE_allOp; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAll_op) { - listener.enterAll_op(this); + if(listener.enterAllOp) { + listener.enterAllOp(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAll_op) { - listener.exitAll_op(this); + if(listener.exitAllOp) { + listener.exitAllOp(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAll_op) { - return visitor.visitAll_op(this); + if (visitor.visitAllOp) { + return visitor.visitAllOp(this); } else { return visitor.visitChildren(this); } @@ -80138,7 +79685,7 @@ export class All_opContext extends antlr.ParserRuleContext { } -export class MathopContext extends antlr.ParserRuleContext { +export class MathOpContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80179,21 +79726,21 @@ export class MathopContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.NOT_EQUALS, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_mathop; + return PostgreSqlParser.RULE_mathOp; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterMathop) { - listener.enterMathop(this); + if(listener.enterMathOp) { + listener.enterMathOp(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitMathop) { - listener.exitMathop(this); + if(listener.exitMathOp) { + listener.exitMathOp(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitMathop) { - return visitor.visitMathop(this); + if (visitor.visitMathOp) { + return visitor.visitMathOp(this); } else { return visitor.visitChildren(this); } @@ -80201,7 +79748,7 @@ export class MathopContext extends antlr.ParserRuleContext { } -export class Qual_opContext extends antlr.ParserRuleContext { +export class QualOpContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80214,28 +79761,28 @@ export class Qual_opContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public any_operator(): Any_operatorContext | null { - return this.getRuleContext(0, Any_operatorContext); + public anyOperator(): AnyOperatorContext | null { + return this.getRuleContext(0, AnyOperatorContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_qual_op; + return PostgreSqlParser.RULE_qualOp; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterQual_op) { - listener.enterQual_op(this); + if(listener.enterQualOp) { + listener.enterQualOp(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitQual_op) { - listener.exitQual_op(this); + if(listener.exitQualOp) { + listener.exitQualOp(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitQual_op) { - return visitor.visitQual_op(this); + if (visitor.visitQualOp) { + return visitor.visitQualOp(this); } else { return visitor.visitChildren(this); } @@ -80243,12 +79790,12 @@ export class Qual_opContext extends antlr.ParserRuleContext { } -export class Qual_all_opContext extends antlr.ParserRuleContext { +export class QualAllOpContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public all_op(): All_opContext | null { - return this.getRuleContext(0, All_opContext); + public allOp(): AllOpContext | null { + return this.getRuleContext(0, AllOpContext); } public KW_OPERATOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OPERATOR, 0); @@ -80256,28 +79803,28 @@ export class Qual_all_opContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public any_operator(): Any_operatorContext | null { - return this.getRuleContext(0, Any_operatorContext); + public anyOperator(): AnyOperatorContext | null { + return this.getRuleContext(0, AnyOperatorContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_qual_all_op; + return PostgreSqlParser.RULE_qualAllOp; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterQual_all_op) { - listener.enterQual_all_op(this); + if(listener.enterQualAllOp) { + listener.enterQualAllOp(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitQual_all_op) { - listener.exitQual_all_op(this); + if(listener.exitQualAllOp) { + listener.exitQualAllOp(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitQual_all_op) { - return visitor.visitQual_all_op(this); + if (visitor.visitQualAllOp) { + return visitor.visitQualAllOp(this); } else { return visitor.visitChildren(this); } @@ -80285,12 +79832,12 @@ export class Qual_all_opContext extends antlr.ParserRuleContext { } -export class Subquery_OpContext extends antlr.ParserRuleContext { +export class SubqueryOperatorContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public qual_all_op(): Qual_all_opContext | null { - return this.getRuleContext(0, Qual_all_opContext); + public qualAllOp(): QualAllOpContext | null { + return this.getRuleContext(0, QualAllOpContext); } public KW_LIKE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_LIKE, 0); @@ -80302,21 +79849,21 @@ export class Subquery_OpContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NOT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_subquery_Op; + return PostgreSqlParser.RULE_subqueryOperator; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSubquery_Op) { - listener.enterSubquery_Op(this); + if(listener.enterSubqueryOperator) { + listener.enterSubqueryOperator(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSubquery_Op) { - listener.exitSubquery_Op(this); + if(listener.exitSubqueryOperator) { + listener.exitSubqueryOperator(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSubquery_Op) { - return visitor.visitSubquery_Op(this); + if (visitor.visitSubqueryOperator) { + return visitor.visitSubqueryOperator(this); } else { return visitor.visitChildren(this); } @@ -80324,7 +79871,7 @@ export class Subquery_OpContext extends antlr.ParserRuleContext { } -export class Expr_listContext extends antlr.ParserRuleContext { +export class ExprListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80347,21 +79894,21 @@ export class Expr_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_expr_list; + return PostgreSqlParser.RULE_exprList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterExpr_list) { - listener.enterExpr_list(this); + if(listener.enterExprList) { + listener.enterExprList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitExpr_list) { - listener.exitExpr_list(this); + if(listener.exitExprList) { + listener.exitExprList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitExpr_list) { - return visitor.visitExpr_list(this); + if (visitor.visitExprList) { + return visitor.visitExprList(this); } else { return visitor.visitChildren(this); } @@ -80369,7 +79916,7 @@ export class Expr_listContext extends antlr.ParserRuleContext { } -export class Column_exprContext extends antlr.ParserRuleContext { +export class ColumnExprContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80382,25 +79929,25 @@ export class Column_exprContext extends antlr.ParserRuleContext { public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } - public column_name(): Column_nameContext | null { - return this.getRuleContext(0, Column_nameContext); + public columnName(): ColumnNameContext | null { + return this.getRuleContext(0, ColumnNameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_column_expr; + return PostgreSqlParser.RULE_columnExpr; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterColumn_expr) { - listener.enterColumn_expr(this); + if(listener.enterColumnExpr) { + listener.enterColumnExpr(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitColumn_expr) { - listener.exitColumn_expr(this); + if(listener.exitColumnExpr) { + listener.exitColumnExpr(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitColumn_expr) { - return visitor.visitColumn_expr(this); + if (visitor.visitColumnExpr) { + return visitor.visitColumnExpr(this); } else { return visitor.visitChildren(this); } @@ -80408,32 +79955,32 @@ export class Column_exprContext extends antlr.ParserRuleContext { } -export class Column_expr_no_parenContext extends antlr.ParserRuleContext { +export class ColumnExprNoParenContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public expression(): ExpressionContext | null { return this.getRuleContext(0, ExpressionContext); } - public column_name(): Column_nameContext | null { - return this.getRuleContext(0, Column_nameContext); + public columnName(): ColumnNameContext | null { + return this.getRuleContext(0, ColumnNameContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_column_expr_no_paren; + return PostgreSqlParser.RULE_columnExprNoParen; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterColumn_expr_no_paren) { - listener.enterColumn_expr_no_paren(this); + if(listener.enterColumnExprNoParen) { + listener.enterColumnExprNoParen(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitColumn_expr_no_paren) { - listener.exitColumn_expr_no_paren(this); + if(listener.exitColumnExprNoParen) { + listener.exitColumnExprNoParen(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitColumn_expr_no_paren) { - return visitor.visitColumn_expr_no_paren(this); + if (visitor.visitColumnExprNoParen) { + return visitor.visitColumnExprNoParen(this); } else { return visitor.visitChildren(this); } @@ -80441,18 +79988,18 @@ export class Column_expr_no_parenContext extends antlr.ParserRuleContext { } -export class Func_arg_listContext extends antlr.ParserRuleContext { +export class FuncArgListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public func_arg_expr(): Func_arg_exprContext[]; - public func_arg_expr(i: number): Func_arg_exprContext | null; - public func_arg_expr(i?: number): Func_arg_exprContext[] | Func_arg_exprContext | null { + public funcArgExpr(): FuncArgExprContext[]; + public funcArgExpr(i: number): FuncArgExprContext | null; + public funcArgExpr(i?: number): FuncArgExprContext[] | FuncArgExprContext | null { if (i === undefined) { - return this.getRuleContexts(Func_arg_exprContext); + return this.getRuleContexts(FuncArgExprContext); } - return this.getRuleContext(i, Func_arg_exprContext); + return this.getRuleContext(i, FuncArgExprContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -80464,21 +80011,21 @@ export class Func_arg_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_arg_list; + return PostgreSqlParser.RULE_funcArgList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_arg_list) { - listener.enterFunc_arg_list(this); + if(listener.enterFuncArgList) { + listener.enterFuncArgList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_arg_list) { - listener.exitFunc_arg_list(this); + if(listener.exitFuncArgList) { + listener.exitFuncArgList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_arg_list) { - return visitor.visitFunc_arg_list(this); + if (visitor.visitFuncArgList) { + return visitor.visitFuncArgList(this); } else { return visitor.visitChildren(this); } @@ -80486,18 +80033,18 @@ export class Func_arg_listContext extends antlr.ParserRuleContext { } -export class Func_arg_exprContext extends antlr.ParserRuleContext { +export class FuncArgExprContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public column_name(): Column_nameContext | null { - return this.getRuleContext(0, Column_nameContext); + public columnName(): ColumnNameContext | null { + return this.getRuleContext(0, ColumnNameContext); } public expression(): ExpressionContext | null { return this.getRuleContext(0, ExpressionContext); } - public type_function_name(): Type_function_nameContext | null { - return this.getRuleContext(0, Type_function_nameContext); + public typeFunctionName(): TypeFunctionNameContext | null { + return this.getRuleContext(0, TypeFunctionNameContext); } public COLON_EQUALS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.COLON_EQUALS, 0); @@ -80506,21 +80053,21 @@ export class Func_arg_exprContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.EQUALS_GREATER, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_func_arg_expr; + return PostgreSqlParser.RULE_funcArgExpr; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFunc_arg_expr) { - listener.enterFunc_arg_expr(this); + if(listener.enterFuncArgExpr) { + listener.enterFuncArgExpr(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFunc_arg_expr) { - listener.exitFunc_arg_expr(this); + if(listener.exitFuncArgExpr) { + listener.exitFuncArgExpr(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFunc_arg_expr) { - return visitor.visitFunc_arg_expr(this); + if (visitor.visitFuncArgExpr) { + return visitor.visitFuncArgExpr(this); } else { return visitor.visitChildren(this); } @@ -80528,7 +80075,7 @@ export class Func_arg_exprContext extends antlr.ParserRuleContext { } -export class Array_exprContext extends antlr.ParserRuleContext { +export class ArrayExprContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80538,17 +80085,17 @@ export class Array_exprContext extends antlr.ParserRuleContext { public CLOSE_BRACKET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.CLOSE_BRACKET, 0)!; } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } - public array_expr(): Array_exprContext[]; - public array_expr(i: number): Array_exprContext | null; - public array_expr(i?: number): Array_exprContext[] | Array_exprContext | null { + public arrayExpr(): ArrayExprContext[]; + public arrayExpr(i: number): ArrayExprContext | null; + public arrayExpr(i?: number): ArrayExprContext[] | ArrayExprContext | null { if (i === undefined) { - return this.getRuleContexts(Array_exprContext); + return this.getRuleContexts(ArrayExprContext); } - return this.getRuleContext(i, Array_exprContext); + return this.getRuleContext(i, ArrayExprContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -80560,21 +80107,21 @@ export class Array_exprContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_array_expr; + return PostgreSqlParser.RULE_arrayExpr; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterArray_expr) { - listener.enterArray_expr(this); + if(listener.enterArrayExpr) { + listener.enterArrayExpr(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitArray_expr) { - listener.exitArray_expr(this); + if(listener.exitArrayExpr) { + listener.exitArrayExpr(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitArray_expr) { - return visitor.visitArray_expr(this); + if (visitor.visitArrayExpr) { + return visitor.visitArrayExpr(this); } else { return visitor.visitChildren(this); } @@ -80582,7 +80129,7 @@ export class Array_exprContext extends antlr.ParserRuleContext { } -export class Extract_argContext extends antlr.ParserRuleContext { +export class ExtractArgContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80611,21 +80158,21 @@ export class Extract_argContext extends antlr.ParserRuleContext { return this.getRuleContext(0, StringConstContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_extract_arg; + return PostgreSqlParser.RULE_extractArg; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterExtract_arg) { - listener.enterExtract_arg(this); + if(listener.enterExtractArg) { + listener.enterExtractArg(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitExtract_arg) { - listener.exitExtract_arg(this); + if(listener.exitExtractArg) { + listener.exitExtractArg(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitExtract_arg) { - return visitor.visitExtract_arg(this); + if (visitor.visitExtractArg) { + return visitor.visitExtractArg(this); } else { return visitor.visitChildren(this); } @@ -80633,7 +80180,7 @@ export class Extract_argContext extends antlr.ParserRuleContext { } -export class Unicode_normal_formContext extends antlr.ParserRuleContext { +export class UnicodeNormalFormContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80650,21 +80197,21 @@ export class Unicode_normal_formContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NFKD, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_unicode_normal_form; + return PostgreSqlParser.RULE_unicodeNormalForm; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterUnicode_normal_form) { - listener.enterUnicode_normal_form(this); + if(listener.enterUnicodeNormalForm) { + listener.enterUnicodeNormalForm(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitUnicode_normal_form) { - listener.exitUnicode_normal_form(this); + if(listener.exitUnicodeNormalForm) { + listener.exitUnicodeNormalForm(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitUnicode_normal_form) { - return visitor.visitUnicode_normal_form(this); + if (visitor.visitUnicodeNormalForm) { + return visitor.visitUnicodeNormalForm(this); } else { return visitor.visitChildren(this); } @@ -80672,7 +80219,7 @@ export class Unicode_normal_formContext extends antlr.ParserRuleContext { } -export class Substr_listContext extends antlr.ParserRuleContext { +export class SubstrListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80697,25 +80244,25 @@ export class Substr_listContext extends antlr.ParserRuleContext { public KW_ESCAPE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ESCAPE, 0); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_substr_list; + return PostgreSqlParser.RULE_substrList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSubstr_list) { - listener.enterSubstr_list(this); + if(listener.enterSubstrList) { + listener.enterSubstrList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSubstr_list) { - listener.exitSubstr_list(this); + if(listener.exitSubstrList) { + listener.exitSubstrList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSubstr_list) { - return visitor.visitSubstr_list(this); + if (visitor.visitSubstrList) { + return visitor.visitSubstrList(this); } else { return visitor.visitChildren(this); } @@ -80765,7 +80312,7 @@ export class When_clauseContext extends antlr.ParserRuleContext { } -export class Indirection_elContext extends antlr.ParserRuleContext { +export class IndirectionElContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -80797,21 +80344,21 @@ export class Indirection_elContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.COLON, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_indirection_el; + return PostgreSqlParser.RULE_indirectionEl; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterIndirection_el) { - listener.enterIndirection_el(this); + if(listener.enterIndirectionEl) { + listener.enterIndirectionEl(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitIndirection_el) { - listener.exitIndirection_el(this); + if(listener.exitIndirectionEl) { + listener.exitIndirectionEl(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitIndirection_el) { - return visitor.visitIndirection_el(this); + if (visitor.visitIndirectionEl) { + return visitor.visitIndirectionEl(this); } else { return visitor.visitChildren(this); } @@ -80823,14 +80370,14 @@ export class IndirectionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public indirection_el(): Indirection_elContext[]; - public indirection_el(i: number): Indirection_elContext | null; - public indirection_el(i?: number): Indirection_elContext[] | Indirection_elContext | null { + public indirectionEl(): IndirectionElContext[]; + public indirectionEl(i: number): IndirectionElContext | null; + public indirectionEl(i?: number): IndirectionElContext[] | IndirectionElContext | null { if (i === undefined) { - return this.getRuleContexts(Indirection_elContext); + return this.getRuleContexts(IndirectionElContext); } - return this.getRuleContext(i, Indirection_elContext); + return this.getRuleContext(i, IndirectionElContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_indirection; @@ -80855,154 +80402,35 @@ export class IndirectionContext extends antlr.ParserRuleContext { } -export class Opt_indirectionContext extends antlr.ParserRuleContext { +export class OptIndirectionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public indirection_el(): Indirection_elContext[]; - public indirection_el(i: number): Indirection_elContext | null; - public indirection_el(i?: number): Indirection_elContext[] | Indirection_elContext | null { + public indirectionEl(): IndirectionElContext[]; + public indirectionEl(i: number): IndirectionElContext | null; + public indirectionEl(i?: number): IndirectionElContext[] | IndirectionElContext | null { if (i === undefined) { - return this.getRuleContexts(Indirection_elContext); - } - - return this.getRuleContext(i, Indirection_elContext); - } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_indirection; - } - public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_indirection) { - listener.enterOpt_indirection(this); - } - } - public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_indirection) { - listener.exitOpt_indirection(this); - } - } - public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_indirection) { - return visitor.visitOpt_indirection(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class Target_listContext extends antlr.ParserRuleContext { - public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { - super(parent, invokingState); - } - public target_el(): Target_elContext[]; - public target_el(i: number): Target_elContext | null; - public target_el(i?: number): Target_elContext[] | Target_elContext | null { - if (i === undefined) { - return this.getRuleContexts(Target_elContext); - } - - return this.getRuleContext(i, Target_elContext); - } - public COMMA(): antlr.TerminalNode[]; - public COMMA(i: number): antlr.TerminalNode | null; - public COMMA(i?: number): antlr.TerminalNode | null | antlr.TerminalNode[] { - if (i === undefined) { - return this.getTokens(PostgreSqlParser.COMMA); - } else { - return this.getToken(PostgreSqlParser.COMMA, i); - } - } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_target_list; - } - public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTarget_list) { - listener.enterTarget_list(this); + return this.getRuleContexts(IndirectionElContext); } - } - public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTarget_list) { - listener.exitTarget_list(this); - } - } - public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTarget_list) { - return visitor.visitTarget_list(this); - } else { - return visitor.visitChildren(this); - } - } -} - -export class Target_elContext extends antlr.ParserRuleContext { - public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { - super(parent, invokingState); + return this.getRuleContext(i, IndirectionElContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_target_el; - } - public override copyFrom(ctx: Target_elContext): void { - super.copyFrom(ctx); - } -} -export class Target_labelContext extends Target_elContext { - public constructor(ctx: Target_elContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public column_expr_no_paren(): Column_expr_no_parenContext { - return this.getRuleContext(0, Column_expr_no_parenContext)!; - } - public KW_AS(): antlr.TerminalNode | null { - return this.getToken(PostgreSqlParser.KW_AS, 0); - } - public colLabel(): ColLabelContext | null { - return this.getRuleContext(0, ColLabelContext); - } - public identifier(): IdentifierContext | null { - return this.getRuleContext(0, IdentifierContext); + return PostgreSqlParser.RULE_optIndirection; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTarget_label) { - listener.enterTarget_label(this); + if(listener.enterOptIndirection) { + listener.enterOptIndirection(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTarget_label) { - listener.exitTarget_label(this); + if(listener.exitOptIndirection) { + listener.exitOptIndirection(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTarget_label) { - return visitor.visitTarget_label(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class Target_starContext extends Target_elContext { - public constructor(ctx: Target_elContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public STAR(): antlr.TerminalNode { - return this.getToken(PostgreSqlParser.STAR, 0)!; - } - public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTarget_star) { - listener.enterTarget_star(this); - } - } - public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTarget_star) { - listener.exitTarget_star(this); - } - } - public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTarget_star) { - return visitor.visitTarget_star(this); + if (visitor.visitOptIndirection) { + return visitor.visitOptIndirection(this); } else { return visitor.visitChildren(this); } @@ -81010,18 +80438,18 @@ export class Target_starContext extends Target_elContext { } -export class Qualified_name_listContext extends antlr.ParserRuleContext { +export class TargetListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public qualified_name(): Qualified_nameContext[]; - public qualified_name(i: number): Qualified_nameContext | null; - public qualified_name(i?: number): Qualified_nameContext[] | Qualified_nameContext | null { + public targetEl(): TargetElContext[]; + public targetEl(i: number): TargetElContext | null; + public targetEl(i?: number): TargetElContext[] | TargetElContext | null { if (i === undefined) { - return this.getRuleContexts(Qualified_nameContext); + return this.getRuleContexts(TargetElContext); } - return this.getRuleContext(i, Qualified_nameContext); + return this.getRuleContext(i, TargetElContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -81033,21 +80461,21 @@ export class Qualified_name_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_qualified_name_list; + return PostgreSqlParser.RULE_targetList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterQualified_name_list) { - listener.enterQualified_name_list(this); + if(listener.enterTargetList) { + listener.enterTargetList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitQualified_name_list) { - listener.exitQualified_name_list(this); + if(listener.exitTargetList) { + listener.exitTargetList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitQualified_name_list) { - return visitor.visitQualified_name_list(this); + if (visitor.visitTargetList) { + return visitor.visitTargetList(this); } else { return visitor.visitChildren(this); } @@ -81055,18 +80483,92 @@ export class Qualified_name_listContext extends antlr.ParserRuleContext { } -export class Table_name_listContext extends antlr.ParserRuleContext { +export class TargetElContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public table_name(): Table_nameContext[]; - public table_name(i: number): Table_nameContext | null; - public table_name(i?: number): Table_nameContext[] | Table_nameContext | null { + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_targetEl; + } + public override copyFrom(ctx: TargetElContext): void { + super.copyFrom(ctx); + } +} +export class Target_labelContext extends TargetElContext { + public constructor(ctx: TargetElContext) { + super(ctx.parent, ctx.invokingState); + super.copyFrom(ctx); + } + public columnExprNoParen(): ColumnExprNoParenContext { + return this.getRuleContext(0, ColumnExprNoParenContext)!; + } + public KW_AS(): antlr.TerminalNode | null { + return this.getToken(PostgreSqlParser.KW_AS, 0); + } + public colLabel(): ColLabelContext | null { + return this.getRuleContext(0, ColLabelContext); + } + public identifier(): IdentifierContext | null { + return this.getRuleContext(0, IdentifierContext); + } + public override enterRule(listener: PostgreSqlParserListener): void { + if(listener.enterTarget_label) { + listener.enterTarget_label(this); + } + } + public override exitRule(listener: PostgreSqlParserListener): void { + if(listener.exitTarget_label) { + listener.exitTarget_label(this); + } + } + public override accept(visitor: PostgreSqlParserVisitor): Result | null { + if (visitor.visitTarget_label) { + return visitor.visitTarget_label(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class Target_starContext extends TargetElContext { + public constructor(ctx: TargetElContext) { + super(ctx.parent, ctx.invokingState); + super.copyFrom(ctx); + } + public STAR(): antlr.TerminalNode { + return this.getToken(PostgreSqlParser.STAR, 0)!; + } + public override enterRule(listener: PostgreSqlParserListener): void { + if(listener.enterTarget_star) { + listener.enterTarget_star(this); + } + } + public override exitRule(listener: PostgreSqlParserListener): void { + if(listener.exitTarget_star) { + listener.exitTarget_star(this); + } + } + public override accept(visitor: PostgreSqlParserVisitor): Result | null { + if (visitor.visitTarget_star) { + return visitor.visitTarget_star(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class QualifiedNameListContext extends antlr.ParserRuleContext { + public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { + super(parent, invokingState); + } + public qualifiedName(): QualifiedNameContext[]; + public qualifiedName(i: number): QualifiedNameContext | null; + public qualifiedName(i?: number): QualifiedNameContext[] | QualifiedNameContext | null { if (i === undefined) { - return this.getRuleContexts(Table_nameContext); + return this.getRuleContexts(QualifiedNameContext); } - return this.getRuleContext(i, Table_nameContext); + return this.getRuleContext(i, QualifiedNameContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -81078,21 +80580,21 @@ export class Table_name_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_table_name_list; + return PostgreSqlParser.RULE_qualifiedNameList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTable_name_list) { - listener.enterTable_name_list(this); + if(listener.enterQualifiedNameList) { + listener.enterQualifiedNameList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTable_name_list) { - listener.exitTable_name_list(this); + if(listener.exitQualifiedNameList) { + listener.exitQualifiedNameList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTable_name_list) { - return visitor.visitTable_name_list(this); + if (visitor.visitQualifiedNameList) { + return visitor.visitQualifiedNameList(this); } else { return visitor.visitChildren(this); } @@ -81100,18 +80602,18 @@ export class Table_name_listContext extends antlr.ParserRuleContext { } -export class Schema_name_listContext extends antlr.ParserRuleContext { +export class TableNameListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public schema_name(): Schema_nameContext[]; - public schema_name(i: number): Schema_nameContext | null; - public schema_name(i?: number): Schema_nameContext[] | Schema_nameContext | null { + public tableName(): TableNameContext[]; + public tableName(i: number): TableNameContext | null; + public tableName(i?: number): TableNameContext[] | TableNameContext | null { if (i === undefined) { - return this.getRuleContexts(Schema_nameContext); + return this.getRuleContexts(TableNameContext); } - return this.getRuleContext(i, Schema_nameContext); + return this.getRuleContext(i, TableNameContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -81123,21 +80625,21 @@ export class Schema_name_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_schema_name_list; + return PostgreSqlParser.RULE_tableNameList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSchema_name_list) { - listener.enterSchema_name_list(this); + if(listener.enterTableNameList) { + listener.enterTableNameList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSchema_name_list) { - listener.exitSchema_name_list(this); + if(listener.exitTableNameList) { + listener.exitTableNameList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSchema_name_list) { - return visitor.visitSchema_name_list(this); + if (visitor.visitTableNameList) { + return visitor.visitTableNameList(this); } else { return visitor.visitChildren(this); } @@ -81145,18 +80647,18 @@ export class Schema_name_listContext extends antlr.ParserRuleContext { } -export class Database_nameListContext extends antlr.ParserRuleContext { +export class SchemaNameListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public database_name(): Database_nameContext[]; - public database_name(i: number): Database_nameContext | null; - public database_name(i?: number): Database_nameContext[] | Database_nameContext | null { + public schemaName(): SchemaNameContext[]; + public schemaName(i: number): SchemaNameContext | null; + public schemaName(i?: number): SchemaNameContext[] | SchemaNameContext | null { if (i === undefined) { - return this.getRuleContexts(Database_nameContext); + return this.getRuleContexts(SchemaNameContext); } - return this.getRuleContext(i, Database_nameContext); + return this.getRuleContext(i, SchemaNameContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -81168,21 +80670,21 @@ export class Database_nameListContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_database_nameList; + return PostgreSqlParser.RULE_schemaNameList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDatabase_nameList) { - listener.enterDatabase_nameList(this); + if(listener.enterSchemaNameList) { + listener.enterSchemaNameList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDatabase_nameList) { - listener.exitDatabase_nameList(this); + if(listener.exitSchemaNameList) { + listener.exitSchemaNameList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDatabase_nameList) { - return visitor.visitDatabase_nameList(this); + if (visitor.visitSchemaNameList) { + return visitor.visitSchemaNameList(this); } else { return visitor.visitChildren(this); } @@ -81190,38 +80692,44 @@ export class Database_nameListContext extends antlr.ParserRuleContext { } -export class Tablespace_name_createContext extends antlr.ParserRuleContext { +export class DatabaseNameListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_tablespace_name_create; - } - public override copyFrom(ctx: Tablespace_name_createContext): void { - super.copyFrom(ctx); + public databaseName(): DatabaseNameContext[]; + public databaseName(i: number): DatabaseNameContext | null; + public databaseName(i?: number): DatabaseNameContext[] | DatabaseNameContext | null { + if (i === undefined) { + return this.getRuleContexts(DatabaseNameContext); + } + + return this.getRuleContext(i, DatabaseNameContext); } -} -export class TablespaceNameCreateContext extends Tablespace_name_createContext { - public constructor(ctx: Tablespace_name_createContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); + public COMMA(): antlr.TerminalNode[]; + public COMMA(i: number): antlr.TerminalNode | null; + public COMMA(i?: number): antlr.TerminalNode | null | antlr.TerminalNode[] { + if (i === undefined) { + return this.getTokens(PostgreSqlParser.COMMA); + } else { + return this.getToken(PostgreSqlParser.COMMA, i); + } } - public qualified_name(): Qualified_nameContext { - return this.getRuleContext(0, Qualified_nameContext)!; + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_databaseNameList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTablespaceNameCreate) { - listener.enterTablespaceNameCreate(this); + if(listener.enterDatabaseNameList) { + listener.enterDatabaseNameList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTablespaceNameCreate) { - listener.exitTablespaceNameCreate(this); + if(listener.exitDatabaseNameList) { + listener.exitDatabaseNameList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTablespaceNameCreate) { - return visitor.visitTablespaceNameCreate(this); + if (visitor.visitDatabaseNameList) { + return visitor.visitDatabaseNameList(this); } else { return visitor.visitChildren(this); } @@ -81229,38 +80737,29 @@ export class TablespaceNameCreateContext extends Tablespace_name_createContext { } -export class Tablespace_nameContext extends antlr.ParserRuleContext { +export class TableSpaceNameCreateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_tablespace_name; - } - public override copyFrom(ctx: Tablespace_nameContext): void { - super.copyFrom(ctx); - } -} -export class TablespaceNameContext extends Tablespace_nameContext { - public constructor(ctx: Tablespace_nameContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); + public qualifiedName(): QualifiedNameContext { + return this.getRuleContext(0, QualifiedNameContext)!; } - public qualified_name(): Qualified_nameContext { - return this.getRuleContext(0, Qualified_nameContext)!; + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_tableSpaceNameCreate; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTablespaceName) { - listener.enterTablespaceName(this); + if(listener.enterTableSpaceNameCreate) { + listener.enterTableSpaceNameCreate(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTablespaceName) { - listener.exitTablespaceName(this); + if(listener.exitTableSpaceNameCreate) { + listener.exitTableSpaceNameCreate(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTablespaceName) { - return visitor.visitTablespaceName(this); + if (visitor.visitTableSpaceNameCreate) { + return visitor.visitTableSpaceNameCreate(this); } else { return visitor.visitChildren(this); } @@ -81268,24 +80767,45 @@ export class TablespaceNameContext extends Tablespace_nameContext { } -export class Table_name_createContext extends antlr.ParserRuleContext { +export class TableSpaceNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } + public qualifiedName(): QualifiedNameContext { + return this.getRuleContext(0, QualifiedNameContext)!; + } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_table_name_create; + return PostgreSqlParser.RULE_tableSpaceName; } - public override copyFrom(ctx: Table_name_createContext): void { - super.copyFrom(ctx); + public override enterRule(listener: PostgreSqlParserListener): void { + if(listener.enterTableSpaceName) { + listener.enterTableSpaceName(this); + } + } + public override exitRule(listener: PostgreSqlParserListener): void { + if(listener.exitTableSpaceName) { + listener.exitTableSpaceName(this); + } + } + public override accept(visitor: PostgreSqlParserVisitor): Result | null { + if (visitor.visitTableSpaceName) { + return visitor.visitTableSpaceName(this); + } else { + return visitor.visitChildren(this); + } } } -export class TableNameCreateContext extends Table_name_createContext { - public constructor(ctx: Table_name_createContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); + + +export class TableNameCreateContext extends antlr.ParserRuleContext { + public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { + super(parent, invokingState); } - public qualified_name(): Qualified_nameContext { - return this.getRuleContext(0, Qualified_nameContext)!; + public qualifiedName(): QualifiedNameContext { + return this.getRuleContext(0, QualifiedNameContext)!; + } + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_tableNameCreate; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterTableNameCreate) { @@ -81307,24 +80827,15 @@ export class TableNameCreateContext extends Table_name_createContext { } -export class Table_nameContext extends antlr.ParserRuleContext { +export class TableNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_table_name; - } - public override copyFrom(ctx: Table_nameContext): void { - super.copyFrom(ctx); - } -} -export class TableNameContext extends Table_nameContext { - public constructor(ctx: Table_nameContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); + public qualifiedName(): QualifiedNameContext { + return this.getRuleContext(0, QualifiedNameContext)!; } - public qualified_name(): Qualified_nameContext { - return this.getRuleContext(0, Qualified_nameContext)!; + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_tableName; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterTableName) { @@ -81346,24 +80857,15 @@ export class TableNameContext extends Table_nameContext { } -export class View_name_createContext extends antlr.ParserRuleContext { +export class ViewNameCreateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_view_name_create; - } - public override copyFrom(ctx: View_name_createContext): void { - super.copyFrom(ctx); - } -} -export class ViewNameCreateContext extends View_name_createContext { - public constructor(ctx: View_name_createContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); + public qualifiedName(): QualifiedNameContext { + return this.getRuleContext(0, QualifiedNameContext)!; } - public qualified_name(): Qualified_nameContext { - return this.getRuleContext(0, Qualified_nameContext)!; + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_viewNameCreate; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterViewNameCreate) { @@ -81385,24 +80887,15 @@ export class ViewNameCreateContext extends View_name_createContext { } -export class View_nameContext extends antlr.ParserRuleContext { +export class ViewNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_view_name; + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } - public override copyFrom(ctx: View_nameContext): void { - super.copyFrom(ctx); - } -} -export class ViewNameContext extends View_nameContext { - public constructor(ctx: View_nameContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_viewName; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterViewName) { @@ -81424,7 +80917,7 @@ export class ViewNameContext extends View_nameContext { } -export class Qualified_nameContext extends antlr.ParserRuleContext { +export class QualifiedNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -81435,21 +80928,21 @@ export class Qualified_nameContext extends antlr.ParserRuleContext { return this.getRuleContext(0, IndirectionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_qualified_name; + return PostgreSqlParser.RULE_qualifiedName; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterQualified_name) { - listener.enterQualified_name(this); + if(listener.enterQualifiedName) { + listener.enterQualifiedName(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitQualified_name) { - listener.exitQualified_name(this); + if(listener.exitQualifiedName) { + listener.exitQualifiedName(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitQualified_name) { - return visitor.visitQualified_name(this); + if (visitor.visitQualifiedName) { + return visitor.visitQualifiedName(this); } else { return visitor.visitChildren(this); } @@ -81457,18 +80950,18 @@ export class Qualified_nameContext extends antlr.ParserRuleContext { } -export class Tablespace_name_listContext extends antlr.ParserRuleContext { +export class TableSpaceNameListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public tablespace_name(): Tablespace_nameContext[]; - public tablespace_name(i: number): Tablespace_nameContext | null; - public tablespace_name(i?: number): Tablespace_nameContext[] | Tablespace_nameContext | null { + public tableSpaceName(): TableSpaceNameContext[]; + public tableSpaceName(i: number): TableSpaceNameContext | null; + public tableSpaceName(i?: number): TableSpaceNameContext[] | TableSpaceNameContext | null { if (i === undefined) { - return this.getRuleContexts(Tablespace_nameContext); + return this.getRuleContexts(TableSpaceNameContext); } - return this.getRuleContext(i, Tablespace_nameContext); + return this.getRuleContext(i, TableSpaceNameContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -81480,21 +80973,21 @@ export class Tablespace_name_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_tablespace_name_list; + return PostgreSqlParser.RULE_tableSpaceNameList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterTablespace_name_list) { - listener.enterTablespace_name_list(this); + if(listener.enterTableSpaceNameList) { + listener.enterTableSpaceNameList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitTablespace_name_list) { - listener.exitTablespace_name_list(this); + if(listener.exitTableSpaceNameList) { + listener.exitTableSpaceNameList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitTablespace_name_list) { - return visitor.visitTablespace_name_list(this); + if (visitor.visitTableSpaceNameList) { + return visitor.visitTableSpaceNameList(this); } else { return visitor.visitChildren(this); } @@ -81502,7 +80995,7 @@ export class Tablespace_name_listContext extends antlr.ParserRuleContext { } -export class Name_listContext extends antlr.ParserRuleContext { +export class NameListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -81525,21 +81018,21 @@ export class Name_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_name_list; + return PostgreSqlParser.RULE_nameList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterName_list) { - listener.enterName_list(this); + if(listener.enterNameList) { + listener.enterNameList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitName_list) { - listener.exitName_list(this); + if(listener.exitNameList) { + listener.exitNameList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitName_list) { - return visitor.visitName_list(this); + if (visitor.visitNameList) { + return visitor.visitNameList(this); } else { return visitor.visitChildren(this); } @@ -81547,24 +81040,15 @@ export class Name_listContext extends antlr.ParserRuleContext { } -export class Database_name_createContext extends antlr.ParserRuleContext { +export class DatabaseNameCreateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_database_name_create; - } - public override copyFrom(ctx: Database_name_createContext): void { - super.copyFrom(ctx); - } -} -export class DatabaseNameCreateContext extends Database_name_createContext { - public constructor(ctx: Database_name_createContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_databaseNameCreate; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterDatabaseNameCreate) { @@ -81586,24 +81070,15 @@ export class DatabaseNameCreateContext extends Database_name_createContext { } -export class Database_nameContext extends antlr.ParserRuleContext { +export class DatabaseNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_database_name; - } - public override copyFrom(ctx: Database_nameContext): void { - super.copyFrom(ctx); - } -} -export class DatabaseNameContext extends Database_nameContext { - public constructor(ctx: Database_nameContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_databaseName; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterDatabaseName) { @@ -81625,24 +81100,15 @@ export class DatabaseNameContext extends Database_nameContext { } -export class Schema_nameContext extends antlr.ParserRuleContext { +export class SchemaNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_schema_name; - } - public override copyFrom(ctx: Schema_nameContext): void { - super.copyFrom(ctx); - } -} -export class SchemaNameContext extends Schema_nameContext { - public constructor(ctx: Schema_nameContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); + public anyName(): AnyNameContext { + return this.getRuleContext(0, AnyNameContext)!; } - public any_name(): Any_nameContext { - return this.getRuleContext(0, Any_nameContext)!; + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_schemaName; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterSchemaName) { @@ -81664,25 +81130,16 @@ export class SchemaNameContext extends Schema_nameContext { } -export class Routine_name_createContext extends antlr.ParserRuleContext { +export class RoutineNameCreateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_routine_name_create; - } - public override copyFrom(ctx: Routine_name_createContext): void { - super.copyFrom(ctx); - } -} -export class RoutineNameCreateContext extends Routine_name_createContext { - public constructor(ctx: Routine_name_createContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_routineNameCreate; + } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterRoutineNameCreate) { listener.enterRoutineNameCreate(this); @@ -81703,25 +81160,16 @@ export class RoutineNameCreateContext extends Routine_name_createContext { } -export class Routine_nameContext extends antlr.ParserRuleContext { +export class RoutineNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_routine_name; - } - public override copyFrom(ctx: Routine_nameContext): void { - super.copyFrom(ctx); - } -} -export class RoutineNameContext extends Routine_nameContext { - public constructor(ctx: Routine_nameContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_routineName; + } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterRoutineName) { listener.enterRoutineName(this); @@ -81742,24 +81190,12 @@ export class RoutineNameContext extends Routine_nameContext { } -export class Procedure_nameContext extends antlr.ParserRuleContext { +export class ProcedureNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_procedure_name; - } - public override copyFrom(ctx: Procedure_nameContext): void { - super.copyFrom(ctx); - } -} -export class ProcedureNameContext extends Procedure_nameContext { - public constructor(ctx: Procedure_nameContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public type_function_name(): Type_function_nameContext | null { - return this.getRuleContext(0, Type_function_nameContext); + public typeFunctionName(): TypeFunctionNameContext | null { + return this.getRuleContext(0, TypeFunctionNameContext); } public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); @@ -81767,6 +81203,9 @@ export class ProcedureNameContext extends Procedure_nameContext { public indirection(): IndirectionContext | null { return this.getRuleContext(0, IndirectionContext); } + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_procedureName; + } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterProcedureName) { listener.enterProcedureName(this); @@ -81787,24 +81226,12 @@ export class ProcedureNameContext extends Procedure_nameContext { } -export class Procedure_name_createContext extends antlr.ParserRuleContext { +export class ProcedureNameCreateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_procedure_name_create; - } - public override copyFrom(ctx: Procedure_name_createContext): void { - super.copyFrom(ctx); - } -} -export class ProcedureNameCreateContext extends Procedure_name_createContext { - public constructor(ctx: Procedure_name_createContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public type_function_name(): Type_function_nameContext | null { - return this.getRuleContext(0, Type_function_nameContext); + public typeFunctionName(): TypeFunctionNameContext | null { + return this.getRuleContext(0, TypeFunctionNameContext); } public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); @@ -81812,6 +81239,9 @@ export class ProcedureNameCreateContext extends Procedure_name_createContext { public indirection(): IndirectionContext | null { return this.getRuleContext(0, IndirectionContext); } + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_procedureNameCreate; + } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterProcedureNameCreate) { listener.enterProcedureNameCreate(this); @@ -81832,50 +81262,18 @@ export class ProcedureNameCreateContext extends Procedure_name_createContext { } -export class Column_nameContext extends antlr.ParserRuleContext { +export class ColumnNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_column_name; - } - public override copyFrom(ctx: Column_nameContext): void { - super.copyFrom(ctx); - } -} -export class ColumnNameMatchContext extends Column_nameContext { - public constructor(ctx: Column_nameContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterColumnNameMatch) { - listener.enterColumnNameMatch(this); - } - } - public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitColumnNameMatch) { - listener.exitColumnNameMatch(this); - } - } - public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitColumnNameMatch) { - return visitor.visitColumnNameMatch(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ColumnNameContext extends Column_nameContext { - public constructor(ctx: Column_nameContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); + public colId(): ColIdContext | null { + return this.getRuleContext(0, ColIdContext); } - public colId(): ColIdContext { - return this.getRuleContext(0, ColIdContext)!; + public optIndirection(): OptIndirectionContext | null { + return this.getRuleContext(0, OptIndirectionContext); } - public opt_indirection(): Opt_indirectionContext { - return this.getRuleContext(0, Opt_indirectionContext)!; + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_columnName; } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterColumnName) { @@ -81897,25 +81295,16 @@ export class ColumnNameContext extends Column_nameContext { } -export class Column_name_createContext extends antlr.ParserRuleContext { +export class ColumnNameCreateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_column_name_create; - } - public override copyFrom(ctx: Column_name_createContext): void { - super.copyFrom(ctx); - } -} -export class ColumnNameCreateContext extends Column_name_createContext { - public constructor(ctx: Column_name_createContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_columnNameCreate; + } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterColumnNameCreate) { listener.enterColumnNameCreate(this); @@ -81936,24 +81325,12 @@ export class ColumnNameCreateContext extends Column_name_createContext { } -export class Function_name_createContext extends antlr.ParserRuleContext { +export class FunctionNameCreateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_function_name_create; - } - public override copyFrom(ctx: Function_name_createContext): void { - super.copyFrom(ctx); - } -} -export class FunctionNameCreateContext extends Function_name_createContext { - public constructor(ctx: Function_name_createContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public type_function_name(): Type_function_nameContext | null { - return this.getRuleContext(0, Type_function_nameContext); + public typeFunctionName(): TypeFunctionNameContext | null { + return this.getRuleContext(0, TypeFunctionNameContext); } public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); @@ -81961,6 +81338,9 @@ export class FunctionNameCreateContext extends Function_name_createContext { public indirection(): IndirectionContext | null { return this.getRuleContext(0, IndirectionContext); } + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_functionNameCreate; + } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterFunctionNameCreate) { listener.enterFunctionNameCreate(this); @@ -81981,24 +81361,12 @@ export class FunctionNameCreateContext extends Function_name_createContext { } -export class Function_nameContext extends antlr.ParserRuleContext { +export class FunctionNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public override get ruleIndex(): number { - return PostgreSqlParser.RULE_function_name; - } - public override copyFrom(ctx: Function_nameContext): void { - super.copyFrom(ctx); - } -} -export class FunctionNameContext extends Function_nameContext { - public constructor(ctx: Function_nameContext) { - super(ctx.parent, ctx.invokingState); - super.copyFrom(ctx); - } - public type_function_name(): Type_function_nameContext | null { - return this.getRuleContext(0, Type_function_nameContext); + public typeFunctionName(): TypeFunctionNameContext | null { + return this.getRuleContext(0, TypeFunctionNameContext); } public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); @@ -82006,6 +81374,9 @@ export class FunctionNameContext extends Function_nameContext { public indirection(): IndirectionContext | null { return this.getRuleContext(0, IndirectionContext); } + public override get ruleIndex(): number { + return PostgreSqlParser.RULE_functionName; + } public override enterRule(listener: PostgreSqlParserListener): void { if(listener.enterFunctionName) { listener.enterFunctionName(this); @@ -82194,7 +81565,7 @@ export class RoleSpecContext extends antlr.ParserRuleContext { } -export class Role_listContext extends antlr.ParserRuleContext { +export class RoleListContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -82217,21 +81588,21 @@ export class Role_listContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_role_list; + return PostgreSqlParser.RULE_roleList; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterRole_list) { - listener.enterRole_list(this); + if(listener.enterRoleList) { + listener.enterRoleList(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitRole_list) { - listener.exitRole_list(this); + if(listener.exitRoleList) { + listener.exitRoleList(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitRole_list) { - return visitor.visitRole_list(this); + if (visitor.visitRoleList) { + return visitor.visitRoleList(this); } else { return visitor.visitChildren(this); } @@ -82246,8 +81617,8 @@ export class ColIdContext extends antlr.ParserRuleContext { public identifier(): IdentifierContext | null { return this.getRuleContext(0, IdentifierContext); } - public col_name_keyword(): Col_name_keywordContext | null { - return this.getRuleContext(0, Col_name_keywordContext); + public colNameKeyword(): ColNameKeywordContext | null { + return this.getRuleContext(0, ColNameKeywordContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_colId; @@ -82272,32 +81643,32 @@ export class ColIdContext extends antlr.ParserRuleContext { } -export class Type_function_nameContext extends antlr.ParserRuleContext { +export class TypeFunctionNameContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public identifier(): IdentifierContext | null { return this.getRuleContext(0, IdentifierContext); } - public type_func_name_keyword(): Type_func_name_keywordContext | null { - return this.getRuleContext(0, Type_func_name_keywordContext); + public typeFuncNameKeyword(): TypeFuncNameKeywordContext | null { + return this.getRuleContext(0, TypeFuncNameKeywordContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_type_function_name; + return PostgreSqlParser.RULE_typeFunctionName; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterType_function_name) { - listener.enterType_function_name(this); + if(listener.enterTypeFunctionName) { + listener.enterTypeFunctionName(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitType_function_name) { - listener.exitType_function_name(this); + if(listener.exitTypeFunctionName) { + listener.exitTypeFunctionName(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitType_function_name) { - return visitor.visitType_function_name(this); + if (visitor.visitTypeFunctionName) { + return visitor.visitTypeFunctionName(this); } else { return visitor.visitChildren(this); } @@ -82312,11 +81683,11 @@ export class NonReservedWordContext extends antlr.ParserRuleContext { public identifier(): IdentifierContext | null { return this.getRuleContext(0, IdentifierContext); } - public col_name_keyword(): Col_name_keywordContext | null { - return this.getRuleContext(0, Col_name_keywordContext); + public colNameKeyword(): ColNameKeywordContext | null { + return this.getRuleContext(0, ColNameKeywordContext); } - public type_func_name_keyword(): Type_func_name_keywordContext | null { - return this.getRuleContext(0, Type_func_name_keywordContext); + public typeFuncNameKeyword(): TypeFuncNameKeywordContext | null { + return this.getRuleContext(0, TypeFuncNameKeywordContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_nonReservedWord; @@ -82348,14 +81719,14 @@ export class ColLabelContext extends antlr.ParserRuleContext { public identifier(): IdentifierContext | null { return this.getRuleContext(0, IdentifierContext); } - public col_name_keyword(): Col_name_keywordContext | null { - return this.getRuleContext(0, Col_name_keywordContext); + public colNameKeyword(): ColNameKeywordContext | null { + return this.getRuleContext(0, ColNameKeywordContext); } - public type_func_name_keyword(): Type_func_name_keywordContext | null { - return this.getRuleContext(0, Type_func_name_keywordContext); + public typeFuncNameKeyword(): TypeFuncNameKeywordContext | null { + return this.getRuleContext(0, TypeFuncNameKeywordContext); } - public reserved_keyword(): Reserved_keywordContext | null { - return this.getRuleContext(0, Reserved_keywordContext); + public reservedKeyword(): ReservedKeywordContext | null { + return this.getRuleContext(0, ReservedKeywordContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_colLabel; @@ -82408,8 +81779,8 @@ export class IdentifierContext extends antlr.ParserRuleContext { public PLSQLIDENTIFIER(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.PLSQLIDENTIFIER, 0); } - public unreserved_keyword(): Unreserved_keywordContext | null { - return this.getRuleContext(0, Unreserved_keywordContext); + public unreservedKeyword(): UnreservedKeywordContext | null { + return this.getRuleContext(0, UnreservedKeywordContext); } public override get ruleIndex(): number { return PostgreSqlParser.RULE_identifier; @@ -82434,7 +81805,7 @@ export class IdentifierContext extends antlr.ParserRuleContext { } -export class Unreserved_keywordContext extends antlr.ParserRuleContext { +export class UnreservedKeywordContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -83441,21 +82812,21 @@ export class Unreserved_keywordContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_OUTER, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_unreserved_keyword; + return PostgreSqlParser.RULE_unreservedKeyword; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterUnreserved_keyword) { - listener.enterUnreserved_keyword(this); + if(listener.enterUnreservedKeyword) { + listener.enterUnreservedKeyword(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitUnreserved_keyword) { - listener.exitUnreserved_keyword(this); + if(listener.exitUnreservedKeyword) { + listener.exitUnreservedKeyword(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitUnreserved_keyword) { - return visitor.visitUnreserved_keyword(this); + if (visitor.visitUnreservedKeyword) { + return visitor.visitUnreservedKeyword(this); } else { return visitor.visitChildren(this); } @@ -83463,7 +82834,7 @@ export class Unreserved_keywordContext extends antlr.ParserRuleContext { } -export class Col_name_keywordContext extends antlr.ParserRuleContext { +export class ColNameKeywordContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -83621,21 +82992,21 @@ export class Col_name_keywordContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_XMLTABLE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_col_name_keyword; + return PostgreSqlParser.RULE_colNameKeyword; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCol_name_keyword) { - listener.enterCol_name_keyword(this); + if(listener.enterColNameKeyword) { + listener.enterColNameKeyword(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCol_name_keyword) { - listener.exitCol_name_keyword(this); + if(listener.exitColNameKeyword) { + listener.exitColNameKeyword(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCol_name_keyword) { - return visitor.visitCol_name_keyword(this); + if (visitor.visitColNameKeyword) { + return visitor.visitColNameKeyword(this); } else { return visitor.visitChildren(this); } @@ -83643,7 +83014,7 @@ export class Col_name_keywordContext extends antlr.ParserRuleContext { } -export class Type_func_name_keywordContext extends antlr.ParserRuleContext { +export class TypeFuncNameKeywordContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -83717,21 +83088,21 @@ export class Type_func_name_keywordContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_VERBOSE, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_type_func_name_keyword; + return PostgreSqlParser.RULE_typeFuncNameKeyword; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterType_func_name_keyword) { - listener.enterType_func_name_keyword(this); + if(listener.enterTypeFuncNameKeyword) { + listener.enterTypeFuncNameKeyword(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitType_func_name_keyword) { - listener.exitType_func_name_keyword(this); + if(listener.exitTypeFuncNameKeyword) { + listener.exitTypeFuncNameKeyword(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitType_func_name_keyword) { - return visitor.visitType_func_name_keyword(this); + if (visitor.visitTypeFuncNameKeyword) { + return visitor.visitTypeFuncNameKeyword(this); } else { return visitor.visitChildren(this); } @@ -83739,7 +83110,7 @@ export class Type_func_name_keywordContext extends antlr.ParserRuleContext { } -export class Reserved_keywordContext extends antlr.ParserRuleContext { +export class ReservedKeywordContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -83969,21 +83340,21 @@ export class Reserved_keywordContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_WITH, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_reserved_keyword; + return PostgreSqlParser.RULE_reservedKeyword; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterReserved_keyword) { - listener.enterReserved_keyword(this); + if(listener.enterReservedKeyword) { + listener.enterReservedKeyword(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitReserved_keyword) { - listener.exitReserved_keyword(this); + if(listener.exitReservedKeyword) { + listener.exitReservedKeyword(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitReserved_keyword) { - return visitor.visitReserved_keyword(this); + if (visitor.visitReservedKeyword) { + return visitor.visitReservedKeyword(this); } else { return visitor.visitChildren(this); } @@ -83991,7 +83362,7 @@ export class Reserved_keywordContext extends antlr.ParserRuleContext { } -export class Pl_blockContext extends antlr.ParserRuleContext { +export class PlBlockContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -84001,29 +83372,29 @@ export class Pl_blockContext extends antlr.ParserRuleContext { public KW_END(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_END, 0)!; } - public proc_stmt(): Proc_stmtContext[]; - public proc_stmt(i: number): Proc_stmtContext | null; - public proc_stmt(i?: number): Proc_stmtContext[] | Proc_stmtContext | null { + public procStmt(): ProcStmtContext[]; + public procStmt(i: number): ProcStmtContext | null; + public procStmt(i?: number): ProcStmtContext[] | ProcStmtContext | null { if (i === undefined) { - return this.getRuleContexts(Proc_stmtContext); + return this.getRuleContexts(ProcStmtContext); } - return this.getRuleContext(i, Proc_stmtContext); + return this.getRuleContext(i, ProcStmtContext); } - public exception_sect(): Exception_sectContext | null { - return this.getRuleContext(0, Exception_sectContext); + public exceptionSect(): ExceptionSectContext | null { + return this.getRuleContext(0, ExceptionSectContext); } - public any_identifier(): Any_identifierContext | null { - return this.getRuleContext(0, Any_identifierContext); + public anyIdentifier(): AnyIdentifierContext | null { + return this.getRuleContext(0, AnyIdentifierContext); } - public label_decl(): Label_declContext[]; - public label_decl(i: number): Label_declContext | null; - public label_decl(i?: number): Label_declContext[] | Label_declContext | null { + public labelDecl(): LabelDeclContext[]; + public labelDecl(i: number): LabelDeclContext | null; + public labelDecl(i?: number): LabelDeclContext[] | LabelDeclContext | null { if (i === undefined) { - return this.getRuleContexts(Label_declContext); + return this.getRuleContexts(LabelDeclContext); } - return this.getRuleContext(i, Label_declContext); + return this.getRuleContext(i, LabelDeclContext); } public KW_DECLARE(): antlr.TerminalNode[]; public KW_DECLARE(i: number): antlr.TerminalNode | null; @@ -84034,31 +83405,31 @@ export class Pl_blockContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DECLARE, i); } } - public decl_statement(): Decl_statementContext[]; - public decl_statement(i: number): Decl_statementContext | null; - public decl_statement(i?: number): Decl_statementContext[] | Decl_statementContext | null { + public declStatement(): DeclStatementContext[]; + public declStatement(i: number): DeclStatementContext | null; + public declStatement(i?: number): DeclStatementContext[] | DeclStatementContext | null { if (i === undefined) { - return this.getRuleContexts(Decl_statementContext); + return this.getRuleContexts(DeclStatementContext); } - return this.getRuleContext(i, Decl_statementContext); + return this.getRuleContext(i, DeclStatementContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_pl_block; + return PostgreSqlParser.RULE_plBlock; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterPl_block) { - listener.enterPl_block(this); + if(listener.enterPlBlock) { + listener.enterPlBlock(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitPl_block) { - listener.exitPl_block(this); + if(listener.exitPlBlock) { + listener.exitPlBlock(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitPl_block) { - return visitor.visitPl_block(this); + if (visitor.visitPlBlock) { + return visitor.visitPlBlock(this); } else { return visitor.visitChildren(this); } @@ -84066,35 +83437,35 @@ export class Pl_blockContext extends antlr.ParserRuleContext { } -export class Label_declContext extends antlr.ParserRuleContext { +export class LabelDeclContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public LESS_LESS(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.LESS_LESS, 0)!; } - public any_identifier(): Any_identifierContext { - return this.getRuleContext(0, Any_identifierContext)!; + public anyIdentifier(): AnyIdentifierContext { + return this.getRuleContext(0, AnyIdentifierContext)!; } public GREATER_GREATER(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.GREATER_GREATER, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_label_decl; + return PostgreSqlParser.RULE_labelDecl; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterLabel_decl) { - listener.enterLabel_decl(this); + if(listener.enterLabelDecl) { + listener.enterLabelDecl(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitLabel_decl) { - listener.exitLabel_decl(this); + if(listener.exitLabelDecl) { + listener.exitLabelDecl(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitLabel_decl) { - return visitor.visitLabel_decl(this); + if (visitor.visitLabelDecl) { + return visitor.visitLabelDecl(this); } else { return visitor.visitChildren(this); } @@ -84102,12 +83473,12 @@ export class Label_declContext extends antlr.ParserRuleContext { } -export class Decl_statementContext extends antlr.ParserRuleContext { +export class DeclStatementContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public any_identifier(): Any_identifierContext { - return this.getRuleContext(0, Any_identifierContext)!; + public anyIdentifier(): AnyIdentifierContext { + return this.getRuleContext(0, AnyIdentifierContext)!; } public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; @@ -84139,8 +83510,8 @@ export class Decl_statementContext extends antlr.ParserRuleContext { public KW_CONSTANT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONSTANT, 0); } - public opt_collate_clause(): Opt_collate_clauseContext | null { - return this.getRuleContext(0, Opt_collate_clauseContext); + public collateClause(): CollateClauseContext | null { + return this.getRuleContext(0, CollateClauseContext); } public KW_NOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOT, 0); @@ -84148,8 +83519,8 @@ export class Decl_statementContext extends antlr.ParserRuleContext { public KW_NULL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NULL, 0); } - public sql_expression(): Sql_expressionContext | null { - return this.getRuleContext(0, Sql_expressionContext); + public sqlExpression(): SqlExpressionContext | null { + return this.getRuleContext(0, SqlExpressionContext); } public KW_SCROLL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCROLL, 0); @@ -84157,20 +83528,20 @@ export class Decl_statementContext extends antlr.ParserRuleContext { public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); } - public decl_cursor_arg(): Decl_cursor_argContext[]; - public decl_cursor_arg(i: number): Decl_cursor_argContext | null; - public decl_cursor_arg(i?: number): Decl_cursor_argContext[] | Decl_cursor_argContext | null { + public declCursorArg(): DeclCursorArgContext[]; + public declCursorArg(i: number): DeclCursorArgContext | null; + public declCursorArg(i?: number): DeclCursorArgContext[] | DeclCursorArgContext | null { if (i === undefined) { - return this.getRuleContexts(Decl_cursor_argContext); + return this.getRuleContexts(DeclCursorArgContext); } - return this.getRuleContext(i, Decl_cursor_argContext); + return this.getRuleContext(i, DeclCursorArgContext); } public CLOSE_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.CLOSE_PAREN, 0); } - public assign_operator(): Assign_operatorContext | null { - return this.getRuleContext(0, Assign_operatorContext); + public assignOperator(): AssignOperatorContext | null { + return this.getRuleContext(0, AssignOperatorContext); } public KW_DEFAULT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); @@ -84188,21 +83559,21 @@ export class Decl_statementContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_decl_statement; + return PostgreSqlParser.RULE_declStatement; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDecl_statement) { - listener.enterDecl_statement(this); + if(listener.enterDeclStatement) { + listener.enterDeclStatement(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDecl_statement) { - listener.exitDecl_statement(this); + if(listener.exitDeclStatement) { + listener.exitDeclStatement(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDecl_statement) { - return visitor.visitDecl_statement(this); + if (visitor.visitDeclStatement) { + return visitor.visitDeclStatement(this); } else { return visitor.visitChildren(this); } @@ -84210,32 +83581,32 @@ export class Decl_statementContext extends antlr.ParserRuleContext { } -export class Decl_cursor_argContext extends antlr.ParserRuleContext { +export class DeclCursorArgContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public any_identifier(): Any_identifierContext { - return this.getRuleContext(0, Any_identifierContext)!; + public anyIdentifier(): AnyIdentifierContext { + return this.getRuleContext(0, AnyIdentifierContext)!; } public typename(): TypenameContext { return this.getRuleContext(0, TypenameContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_decl_cursor_arg; + return PostgreSqlParser.RULE_declCursorArg; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDecl_cursor_arg) { - listener.enterDecl_cursor_arg(this); + if(listener.enterDeclCursorArg) { + listener.enterDeclCursorArg(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDecl_cursor_arg) { - listener.exitDecl_cursor_arg(this); + if(listener.exitDeclCursorArg) { + listener.exitDeclCursorArg(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDecl_cursor_arg) { - return visitor.visitDecl_cursor_arg(this); + if (visitor.visitDeclCursorArg) { + return visitor.visitDeclCursorArg(this); } else { return visitor.visitChildren(this); } @@ -84243,7 +83614,7 @@ export class Decl_cursor_argContext extends antlr.ParserRuleContext { } -export class Assign_operatorContext extends antlr.ParserRuleContext { +export class AssignOperatorContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -84254,21 +83625,21 @@ export class Assign_operatorContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.COLON_EQUALS, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_assign_operator; + return PostgreSqlParser.RULE_assignOperator; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAssign_operator) { - listener.enterAssign_operator(this); + if(listener.enterAssignOperator) { + listener.enterAssignOperator(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAssign_operator) { - listener.exitAssign_operator(this); + if(listener.exitAssignOperator) { + listener.exitAssignOperator(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAssign_operator) { - return visitor.visitAssign_operator(this); + if (visitor.visitAssignOperator) { + return visitor.visitAssignOperator(this); } else { return visitor.visitChildren(this); } @@ -84276,95 +83647,95 @@ export class Assign_operatorContext extends antlr.ParserRuleContext { } -export class Proc_stmtContext extends antlr.ParserRuleContext { +export class ProcStmtContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public pl_block(): Pl_blockContext | null { - return this.getRuleContext(0, Pl_blockContext); + public plBlock(): PlBlockContext | null { + return this.getRuleContext(0, PlBlockContext); } public SEMI(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.SEMI, 0); } - public stmt_return(): Stmt_returnContext | null { - return this.getRuleContext(0, Stmt_returnContext); + public stmtReturn(): StmtReturnContext | null { + return this.getRuleContext(0, StmtReturnContext); } - public stmt_raise(): Stmt_raiseContext | null { - return this.getRuleContext(0, Stmt_raiseContext); + public stmtRaise(): StmtRaiseContext | null { + return this.getRuleContext(0, StmtRaiseContext); } - public stmt_assign(): Stmt_assignContext | null { - return this.getRuleContext(0, Stmt_assignContext); + public stmtAssign(): StmtAssignContext | null { + return this.getRuleContext(0, StmtAssignContext); } - public stmt_if(): Stmt_ifContext | null { - return this.getRuleContext(0, Stmt_ifContext); + public stmtIf(): StmtIfContext | null { + return this.getRuleContext(0, StmtIfContext); } - public stmt_case(): Stmt_caseContext | null { - return this.getRuleContext(0, Stmt_caseContext); + public stmtCase(): StmtCaseContext | null { + return this.getRuleContext(0, StmtCaseContext); } - public stmt_loop_while_for(): Stmt_loop_while_forContext | null { - return this.getRuleContext(0, Stmt_loop_while_forContext); + public stmtLoopWhileFor(): StmtLoopWhileForContext | null { + return this.getRuleContext(0, StmtLoopWhileForContext); } - public stmt_foreach_a(): Stmt_foreach_aContext | null { - return this.getRuleContext(0, Stmt_foreach_aContext); + public stmtForeach(): StmtForeachContext | null { + return this.getRuleContext(0, StmtForeachContext); } - public stmt_exit(): Stmt_exitContext | null { - return this.getRuleContext(0, Stmt_exitContext); + public stmtExit(): StmtExitContext | null { + return this.getRuleContext(0, StmtExitContext); } - public stmt_assert(): Stmt_assertContext | null { - return this.getRuleContext(0, Stmt_assertContext); + public stmtAssert(): StmtAssertContext | null { + return this.getRuleContext(0, StmtAssertContext); } - public stmt_execsql(): Stmt_execsqlContext | null { - return this.getRuleContext(0, Stmt_execsqlContext); + public stmtExecsql(): StmtExecsqlContext | null { + return this.getRuleContext(0, StmtExecsqlContext); } - public stmt_dynexecute(): Stmt_dynexecuteContext | null { - return this.getRuleContext(0, Stmt_dynexecuteContext); + public stmtDynexecute(): StmtDynexecuteContext | null { + return this.getRuleContext(0, StmtDynexecuteContext); } - public stmt_perform(): Stmt_performContext | null { - return this.getRuleContext(0, Stmt_performContext); + public stmtPerform(): StmtPerformContext | null { + return this.getRuleContext(0, StmtPerformContext); } - public stmt_call(): Stmt_callContext | null { - return this.getRuleContext(0, Stmt_callContext); + public stmtCall(): StmtCallContext | null { + return this.getRuleContext(0, StmtCallContext); } - public stmt_getdiag(): Stmt_getdiagContext | null { - return this.getRuleContext(0, Stmt_getdiagContext); + public stmtGetdiag(): StmtGetdiagContext | null { + return this.getRuleContext(0, StmtGetdiagContext); } - public stmt_open(): Stmt_openContext | null { - return this.getRuleContext(0, Stmt_openContext); + public stmtOpen(): StmtOpenContext | null { + return this.getRuleContext(0, StmtOpenContext); } - public stmt_fetch(): Stmt_fetchContext | null { - return this.getRuleContext(0, Stmt_fetchContext); + public stmtFetch(): StmtFetchContext | null { + return this.getRuleContext(0, StmtFetchContext); } - public stmt_move(): Stmt_moveContext | null { - return this.getRuleContext(0, Stmt_moveContext); + public stmtMove(): StmtMoveContext | null { + return this.getRuleContext(0, StmtMoveContext); } - public stmt_close(): Stmt_closeContext | null { - return this.getRuleContext(0, Stmt_closeContext); + public stmtClose(): StmtCloseContext | null { + return this.getRuleContext(0, StmtCloseContext); } - public stmt_null(): Stmt_nullContext | null { - return this.getRuleContext(0, Stmt_nullContext); + public stmtNull(): StmtNullContext | null { + return this.getRuleContext(0, StmtNullContext); } - public stmt_commit_or_rollback(): Stmt_commit_or_rollbackContext | null { - return this.getRuleContext(0, Stmt_commit_or_rollbackContext); + public stmtCommitOrRollback(): StmtCommitOrRollbackContext | null { + return this.getRuleContext(0, StmtCommitOrRollbackContext); } - public stmt_set(): Stmt_setContext | null { - return this.getRuleContext(0, Stmt_setContext); + public stmtSet(): StmtSetContext | null { + return this.getRuleContext(0, StmtSetContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_proc_stmt; + return PostgreSqlParser.RULE_procStmt; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterProc_stmt) { - listener.enterProc_stmt(this); + if(listener.enterProcStmt) { + listener.enterProcStmt(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitProc_stmt) { - listener.exitProc_stmt(this); + if(listener.exitProcStmt) { + listener.exitProcStmt(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitProc_stmt) { - return visitor.visitProc_stmt(this); + if (visitor.visitProcStmt) { + return visitor.visitProcStmt(this); } else { return visitor.visitChildren(this); } @@ -84372,35 +83743,35 @@ export class Proc_stmtContext extends antlr.ParserRuleContext { } -export class Stmt_performContext extends antlr.ParserRuleContext { +export class StmtPerformContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_PERFORM(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_PERFORM, 0)!; } - public sql_expression(): Sql_expressionContext { - return this.getRuleContext(0, Sql_expressionContext)!; + public sqlExpression(): SqlExpressionContext { + return this.getRuleContext(0, SqlExpressionContext)!; } public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_perform; + return PostgreSqlParser.RULE_stmtPerform; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_perform) { - listener.enterStmt_perform(this); + if(listener.enterStmtPerform) { + listener.enterStmtPerform(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_perform) { - listener.exitStmt_perform(this); + if(listener.exitStmtPerform) { + listener.exitStmtPerform(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_perform) { - return visitor.visitStmt_perform(this); + if (visitor.visitStmtPerform) { + return visitor.visitStmtPerform(this); } else { return visitor.visitChildren(this); } @@ -84408,15 +83779,15 @@ export class Stmt_performContext extends antlr.ParserRuleContext { } -export class Stmt_callContext extends antlr.ParserRuleContext { +export class StmtCallContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_CALL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CALL, 0); } - public any_identifier(): Any_identifierContext { - return this.getRuleContext(0, Any_identifierContext)!; + public anyIdentifier(): AnyIdentifierContext { + return this.getRuleContext(0, AnyIdentifierContext)!; } public OPEN_PAREN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.OPEN_PAREN, 0); @@ -84427,28 +83798,28 @@ export class Stmt_callContext extends antlr.ParserRuleContext { public SEMI(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.SEMI, 0); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } public KW_DO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DO, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_call; + return PostgreSqlParser.RULE_stmtCall; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_call) { - listener.enterStmt_call(this); + if(listener.enterStmtCall) { + listener.enterStmtCall(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_call) { - listener.exitStmt_call(this); + if(listener.exitStmtCall) { + listener.exitStmtCall(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_call) { - return visitor.visitStmt_call(this); + if (visitor.visitStmtCall) { + return visitor.visitStmtCall(this); } else { return visitor.visitChildren(this); } @@ -84456,38 +83827,38 @@ export class Stmt_callContext extends antlr.ParserRuleContext { } -export class Stmt_assignContext extends antlr.ParserRuleContext { +export class StmtAssignContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public assign_var(): Assign_varContext { - return this.getRuleContext(0, Assign_varContext)!; + public assignVar(): AssignVarContext { + return this.getRuleContext(0, AssignVarContext)!; } - public assign_operator(): Assign_operatorContext { - return this.getRuleContext(0, Assign_operatorContext)!; + public assignOperator(): AssignOperatorContext { + return this.getRuleContext(0, AssignOperatorContext)!; } - public sql_expression(): Sql_expressionContext { - return this.getRuleContext(0, Sql_expressionContext)!; + public sqlExpression(): SqlExpressionContext { + return this.getRuleContext(0, SqlExpressionContext)!; } public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_assign; + return PostgreSqlParser.RULE_stmtAssign; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_assign) { - listener.enterStmt_assign(this); + if(listener.enterStmtAssign) { + listener.enterStmtAssign(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_assign) { - listener.exitStmt_assign(this); + if(listener.exitStmtAssign) { + listener.exitStmtAssign(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_assign) { - return visitor.visitStmt_assign(this); + if (visitor.visitStmtAssign) { + return visitor.visitStmtAssign(this); } else { return visitor.visitChildren(this); } @@ -84495,7 +83866,7 @@ export class Stmt_assignContext extends antlr.ParserRuleContext { } -export class Stmt_getdiagContext extends antlr.ParserRuleContext { +export class StmtGetdiagContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -84508,14 +83879,14 @@ export class Stmt_getdiagContext extends antlr.ParserRuleContext { public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } - public getdiag_list_item(): Getdiag_list_itemContext[]; - public getdiag_list_item(i: number): Getdiag_list_itemContext | null; - public getdiag_list_item(i?: number): Getdiag_list_itemContext[] | Getdiag_list_itemContext | null { + public getdiagListItem(): GetdiagListItemContext[]; + public getdiagListItem(i: number): GetdiagListItemContext | null; + public getdiagListItem(i?: number): GetdiagListItemContext[] | GetdiagListItemContext | null { if (i === undefined) { - return this.getRuleContexts(Getdiag_list_itemContext); + return this.getRuleContexts(GetdiagListItemContext); } - return this.getRuleContext(i, Getdiag_list_itemContext); + return this.getRuleContext(i, GetdiagListItemContext); } public KW_CURRENT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CURRENT, 0); @@ -84533,21 +83904,21 @@ export class Stmt_getdiagContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_getdiag; + return PostgreSqlParser.RULE_stmtGetdiag; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_getdiag) { - listener.enterStmt_getdiag(this); + if(listener.enterStmtGetdiag) { + listener.enterStmtGetdiag(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_getdiag) { - listener.exitStmt_getdiag(this); + if(listener.exitStmtGetdiag) { + listener.exitStmtGetdiag(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_getdiag) { - return visitor.visitStmt_getdiag(this); + if (visitor.visitStmtGetdiag) { + return visitor.visitStmtGetdiag(this); } else { return visitor.visitChildren(this); } @@ -84555,35 +83926,35 @@ export class Stmt_getdiagContext extends antlr.ParserRuleContext { } -export class Getdiag_list_itemContext extends antlr.ParserRuleContext { +export class GetdiagListItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public assign_var(): Assign_varContext { - return this.getRuleContext(0, Assign_varContext)!; + public assignVar(): AssignVarContext { + return this.getRuleContext(0, AssignVarContext)!; } - public assign_operator(): Assign_operatorContext { - return this.getRuleContext(0, Assign_operatorContext)!; + public assignOperator(): AssignOperatorContext { + return this.getRuleContext(0, AssignOperatorContext)!; } public colId(): ColIdContext { return this.getRuleContext(0, ColIdContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_getdiag_list_item; + return PostgreSqlParser.RULE_getdiagListItem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterGetdiag_list_item) { - listener.enterGetdiag_list_item(this); + if(listener.enterGetdiagListItem) { + listener.enterGetdiagListItem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitGetdiag_list_item) { - listener.exitGetdiag_list_item(this); + if(listener.exitGetdiagListItem) { + listener.exitGetdiagListItem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitGetdiag_list_item) { - return visitor.visitGetdiag_list_item(this); + if (visitor.visitGetdiagListItem) { + return visitor.visitGetdiagListItem(this); } else { return visitor.visitChildren(this); } @@ -84591,12 +83962,12 @@ export class Getdiag_list_itemContext extends antlr.ParserRuleContext { } -export class Assign_varContext extends antlr.ParserRuleContext { +export class AssignVarContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public PARAM(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.PARAM, 0); @@ -84629,21 +84000,21 @@ export class Assign_varContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_assign_var; + return PostgreSqlParser.RULE_assignVar; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAssign_var) { - listener.enterAssign_var(this); + if(listener.enterAssignVar) { + listener.enterAssignVar(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAssign_var) { - listener.exitAssign_var(this); + if(listener.exitAssignVar) { + listener.exitAssignVar(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAssign_var) { - return visitor.visitAssign_var(this); + if (visitor.visitAssignVar) { + return visitor.visitAssignVar(this); } else { return visitor.visitChildren(this); } @@ -84651,7 +84022,7 @@ export class Assign_varContext extends antlr.ParserRuleContext { } -export class Stmt_ifContext extends antlr.ParserRuleContext { +export class StmtIfContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -84664,8 +84035,8 @@ export class Stmt_ifContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_IF, i); } } - public sql_expression(): Sql_expressionContext { - return this.getRuleContext(0, Sql_expressionContext)!; + public sqlExpression(): SqlExpressionContext { + return this.getRuleContext(0, SqlExpressionContext)!; } public KW_THEN(): antlr.TerminalNode[]; public KW_THEN(i: number): antlr.TerminalNode | null; @@ -84682,17 +84053,17 @@ export class Stmt_ifContext extends antlr.ParserRuleContext { public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } - public proc_stmt(): Proc_stmtContext[]; - public proc_stmt(i: number): Proc_stmtContext | null; - public proc_stmt(i?: number): Proc_stmtContext[] | Proc_stmtContext | null { + public procStmt(): ProcStmtContext[]; + public procStmt(i: number): ProcStmtContext | null; + public procStmt(i?: number): ProcStmtContext[] | ProcStmtContext | null { if (i === undefined) { - return this.getRuleContexts(Proc_stmtContext); + return this.getRuleContexts(ProcStmtContext); } - return this.getRuleContext(i, Proc_stmtContext); + return this.getRuleContext(i, ProcStmtContext); } - public stmt_else(): Stmt_elseContext | null { - return this.getRuleContext(0, Stmt_elseContext); + public stmtElse(): StmtElseContext | null { + return this.getRuleContext(0, StmtElseContext); } public KW_ELSIF(): antlr.TerminalNode[]; public KW_ELSIF(i: number): antlr.TerminalNode | null; @@ -84713,21 +84084,21 @@ export class Stmt_ifContext extends antlr.ParserRuleContext { return this.getRuleContext(i, ExpressionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_if; + return PostgreSqlParser.RULE_stmtIf; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_if) { - listener.enterStmt_if(this); + if(listener.enterStmtIf) { + listener.enterStmtIf(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_if) { - listener.exitStmt_if(this); + if(listener.exitStmtIf) { + listener.exitStmtIf(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_if) { - return visitor.visitStmt_if(this); + if (visitor.visitStmtIf) { + return visitor.visitStmtIf(this); } else { return visitor.visitChildren(this); } @@ -84735,38 +84106,38 @@ export class Stmt_ifContext extends antlr.ParserRuleContext { } -export class Stmt_elseContext extends antlr.ParserRuleContext { +export class StmtElseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_ELSE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ELSE, 0)!; } - public proc_stmt(): Proc_stmtContext[]; - public proc_stmt(i: number): Proc_stmtContext | null; - public proc_stmt(i?: number): Proc_stmtContext[] | Proc_stmtContext | null { + public procStmt(): ProcStmtContext[]; + public procStmt(i: number): ProcStmtContext | null; + public procStmt(i?: number): ProcStmtContext[] | ProcStmtContext | null { if (i === undefined) { - return this.getRuleContexts(Proc_stmtContext); + return this.getRuleContexts(ProcStmtContext); } - return this.getRuleContext(i, Proc_stmtContext); + return this.getRuleContext(i, ProcStmtContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_else; + return PostgreSqlParser.RULE_stmtElse; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_else) { - listener.enterStmt_else(this); + if(listener.enterStmtElse) { + listener.enterStmtElse(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_else) { - listener.exitStmt_else(this); + if(listener.exitStmtElse) { + listener.exitStmtElse(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_else) { - return visitor.visitStmt_else(this); + if (visitor.visitStmtElse) { + return visitor.visitStmtElse(this); } else { return visitor.visitChildren(this); } @@ -84774,7 +84145,7 @@ export class Stmt_elseContext extends antlr.ParserRuleContext { } -export class Stmt_caseContext extends antlr.ParserRuleContext { +export class StmtCaseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -84793,8 +84164,8 @@ export class Stmt_caseContext extends antlr.ParserRuleContext { public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } - public sql_expression(): Sql_expressionContext | null { - return this.getRuleContext(0, Sql_expressionContext); + public sqlExpression(): SqlExpressionContext | null { + return this.getRuleContext(0, SqlExpressionContext); } public KW_WHEN(): antlr.TerminalNode[]; public KW_WHEN(i: number): antlr.TerminalNode | null; @@ -84805,14 +84176,14 @@ export class Stmt_caseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_WHEN, i); } } - public expr_list(): Expr_listContext[]; - public expr_list(i: number): Expr_listContext | null; - public expr_list(i?: number): Expr_listContext[] | Expr_listContext | null { + public exprList(): ExprListContext[]; + public exprList(i: number): ExprListContext | null; + public exprList(i?: number): ExprListContext[] | ExprListContext | null { if (i === undefined) { - return this.getRuleContexts(Expr_listContext); + return this.getRuleContexts(ExprListContext); } - return this.getRuleContext(i, Expr_listContext); + return this.getRuleContext(i, ExprListContext); } public KW_THEN(): antlr.TerminalNode[]; public KW_THEN(i: number): antlr.TerminalNode | null; @@ -84823,34 +84194,34 @@ export class Stmt_caseContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_THEN, i); } } - public stmt_else(): Stmt_elseContext | null { - return this.getRuleContext(0, Stmt_elseContext); + public stmtElse(): StmtElseContext | null { + return this.getRuleContext(0, StmtElseContext); } - public proc_stmt(): Proc_stmtContext[]; - public proc_stmt(i: number): Proc_stmtContext | null; - public proc_stmt(i?: number): Proc_stmtContext[] | Proc_stmtContext | null { + public procStmt(): ProcStmtContext[]; + public procStmt(i: number): ProcStmtContext | null; + public procStmt(i?: number): ProcStmtContext[] | ProcStmtContext | null { if (i === undefined) { - return this.getRuleContexts(Proc_stmtContext); + return this.getRuleContexts(ProcStmtContext); } - return this.getRuleContext(i, Proc_stmtContext); + return this.getRuleContext(i, ProcStmtContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_case; + return PostgreSqlParser.RULE_stmtCase; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_case) { - listener.enterStmt_case(this); + if(listener.enterStmtCase) { + listener.enterStmtCase(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_case) { - listener.exitStmt_case(this); + if(listener.exitStmtCase) { + listener.exitStmtCase(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_case) { - return visitor.visitStmt_case(this); + if (visitor.visitStmtCase) { + return visitor.visitStmtCase(this); } else { return visitor.visitChildren(this); } @@ -84858,15 +84229,15 @@ export class Stmt_caseContext extends antlr.ParserRuleContext { } -export class Stmt_loop_while_forContext extends antlr.ParserRuleContext { +export class StmtLoopWhileForContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public loop_body(): Loop_bodyContext { - return this.getRuleContext(0, Loop_bodyContext)!; + public loopBody(): LoopBodyContext { + return this.getRuleContext(0, LoopBodyContext)!; } - public label_decl(): Label_declContext | null { - return this.getRuleContext(0, Label_declContext); + public labelDecl(): LabelDeclContext | null { + return this.getRuleContext(0, LabelDeclContext); } public KW_WHILE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WHILE, 0); @@ -84877,25 +84248,25 @@ export class Stmt_loop_while_forContext extends antlr.ParserRuleContext { public KW_FOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOR, 0); } - public for_control(): For_controlContext | null { - return this.getRuleContext(0, For_controlContext); + public forControl(): ForControlContext | null { + return this.getRuleContext(0, ForControlContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_loop_while_for; + return PostgreSqlParser.RULE_stmtLoopWhileFor; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_loop_while_for) { - listener.enterStmt_loop_while_for(this); + if(listener.enterStmtLoopWhileFor) { + listener.enterStmtLoopWhileFor(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_loop_while_for) { - listener.exitStmt_loop_while_for(this); + if(listener.exitStmtLoopWhileFor) { + listener.exitStmtLoopWhileFor(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_loop_while_for) { - return visitor.visitStmt_loop_while_for(this); + if (visitor.visitStmtLoopWhileFor) { + return visitor.visitStmtLoopWhileFor(this); } else { return visitor.visitChildren(this); } @@ -84903,12 +84274,12 @@ export class Stmt_loop_while_forContext extends antlr.ParserRuleContext { } -export class For_controlContext extends antlr.ParserRuleContext { +export class ForControlContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public any_name_list(): Any_name_listContext { - return this.getRuleContext(0, Any_name_listContext)!; + public anyNameList(): AnyNameListContext { + return this.getRuleContext(0, AnyNameListContext)!; } public KW_IN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_IN, 0)!; @@ -84937,14 +84308,14 @@ export class For_controlContext extends antlr.ParserRuleContext { public DOT_DOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.DOT_DOT, 0); } - public execute_param_clause(): Execute_param_clauseContext | null { - return this.getRuleContext(0, Execute_param_clauseContext); + public executeParamClause(): ExecuteParamClauseContext | null { + return this.getRuleContext(0, ExecuteParamClauseContext); } public KW_USING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USING, 0); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } public KW_REVERSE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_REVERSE, 0); @@ -84953,21 +84324,21 @@ export class For_controlContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_BY, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_for_control; + return PostgreSqlParser.RULE_forControl; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterFor_control) { - listener.enterFor_control(this); + if(listener.enterForControl) { + listener.enterForControl(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitFor_control) { - listener.exitFor_control(this); + if(listener.exitForControl) { + listener.exitForControl(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitFor_control) { - return visitor.visitFor_control(this); + if (visitor.visitForControl) { + return visitor.visitForControl(this); } else { return visitor.visitChildren(this); } @@ -84975,15 +84346,15 @@ export class For_controlContext extends antlr.ParserRuleContext { } -export class Stmt_foreach_aContext extends antlr.ParserRuleContext { +export class StmtForeachContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_FOREACH(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FOREACH, 0)!; } - public any_name_list(): Any_name_listContext { - return this.getRuleContext(0, Any_name_listContext)!; + public anyNameList(): AnyNameListContext { + return this.getRuleContext(0, AnyNameListContext)!; } public KW_IN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_IN, 0)!; @@ -84994,11 +84365,11 @@ export class Stmt_foreach_aContext extends antlr.ParserRuleContext { public expression(): ExpressionContext { return this.getRuleContext(0, ExpressionContext)!; } - public loop_body(): Loop_bodyContext { - return this.getRuleContext(0, Loop_bodyContext)!; + public loopBody(): LoopBodyContext { + return this.getRuleContext(0, LoopBodyContext)!; } - public label_decl(): Label_declContext | null { - return this.getRuleContext(0, Label_declContext); + public labelDecl(): LabelDeclContext | null { + return this.getRuleContext(0, LabelDeclContext); } public KW_SLICE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SLICE, 0); @@ -85007,21 +84378,21 @@ export class Stmt_foreach_aContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.Integral, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_foreach_a; + return PostgreSqlParser.RULE_stmtForeach; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_foreach_a) { - listener.enterStmt_foreach_a(this); + if(listener.enterStmtForeach) { + listener.enterStmtForeach(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_foreach_a) { - listener.exitStmt_foreach_a(this); + if(listener.exitStmtForeach) { + listener.exitStmtForeach(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_foreach_a) { - return visitor.visitStmt_foreach_a(this); + if (visitor.visitStmtForeach) { + return visitor.visitStmtForeach(this); } else { return visitor.visitChildren(this); } @@ -85029,7 +84400,7 @@ export class Stmt_foreach_aContext extends antlr.ParserRuleContext { } -export class Stmt_exitContext extends antlr.ParserRuleContext { +export class StmtExitContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85042,31 +84413,31 @@ export class Stmt_exitContext extends antlr.ParserRuleContext { public KW_CONTINUE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_CONTINUE, 0); } - public any_identifier(): Any_identifierContext | null { - return this.getRuleContext(0, Any_identifierContext); + public anyIdentifier(): AnyIdentifierContext | null { + return this.getRuleContext(0, AnyIdentifierContext); } public KW_WHEN(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_WHEN, 0); } - public sql_expression(): Sql_expressionContext | null { - return this.getRuleContext(0, Sql_expressionContext); + public sqlExpression(): SqlExpressionContext | null { + return this.getRuleContext(0, SqlExpressionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_exit; + return PostgreSqlParser.RULE_stmtExit; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_exit) { - listener.enterStmt_exit(this); + if(listener.enterStmtExit) { + listener.enterStmtExit(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_exit) { - listener.exitStmt_exit(this); + if(listener.exitStmtExit) { + listener.exitStmtExit(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_exit) { - return visitor.visitStmt_exit(this); + if (visitor.visitStmtExit) { + return visitor.visitStmtExit(this); } else { return visitor.visitChildren(this); } @@ -85074,7 +84445,7 @@ export class Stmt_exitContext extends antlr.ParserRuleContext { } -export class Stmt_returnContext extends antlr.ParserRuleContext { +export class StmtReturnContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85087,8 +84458,8 @@ export class Stmt_returnContext extends antlr.ParserRuleContext { public KW_NEXT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NEXT, 0); } - public sql_expression(): Sql_expressionContext | null { - return this.getRuleContext(0, Sql_expressionContext); + public sqlExpression(): SqlExpressionContext | null { + return this.getRuleContext(0, SqlExpressionContext); } public KW_QUERY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_QUERY, 0); @@ -85102,28 +84473,28 @@ export class Stmt_returnContext extends antlr.ParserRuleContext { public KW_USING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USING, 0); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } public selectStmt(): SelectStmtContext | null { return this.getRuleContext(0, SelectStmtContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_return; + return PostgreSqlParser.RULE_stmtReturn; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_return) { - listener.enterStmt_return(this); + if(listener.enterStmtReturn) { + listener.enterStmtReturn(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_return) { - listener.exitStmt_return(this); + if(listener.exitStmtReturn) { + listener.exitStmtReturn(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_return) { - return visitor.visitStmt_return(this); + if (visitor.visitStmtReturn) { + return visitor.visitStmtReturn(this); } else { return visitor.visitChildren(this); } @@ -85131,7 +84502,7 @@ export class Stmt_returnContext extends antlr.ParserRuleContext { } -export class Stmt_raiseContext extends antlr.ParserRuleContext { +export class StmtRaiseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85171,14 +84542,14 @@ export class Stmt_raiseContext extends antlr.ParserRuleContext { public stringConst(): StringConstContext | null { return this.getRuleContext(0, StringConstContext); } - public opt_raise_using_elem(): Opt_raise_using_elemContext[]; - public opt_raise_using_elem(i: number): Opt_raise_using_elemContext | null; - public opt_raise_using_elem(i?: number): Opt_raise_using_elemContext[] | Opt_raise_using_elemContext | null { + public optRaiseUsingElem(): OptRaiseUsingElemContext[]; + public optRaiseUsingElem(i: number): OptRaiseUsingElemContext | null; + public optRaiseUsingElem(i?: number): OptRaiseUsingElemContext[] | OptRaiseUsingElemContext | null { if (i === undefined) { - return this.getRuleContexts(Opt_raise_using_elemContext); + return this.getRuleContexts(OptRaiseUsingElemContext); } - return this.getRuleContext(i, Opt_raise_using_elemContext); + return this.getRuleContext(i, OptRaiseUsingElemContext); } public COMMA(): antlr.TerminalNode[]; public COMMA(i: number): antlr.TerminalNode | null; @@ -85199,21 +84570,21 @@ export class Stmt_raiseContext extends antlr.ParserRuleContext { return this.getRuleContext(i, ExpressionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_raise; + return PostgreSqlParser.RULE_stmtRaise; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_raise) { - listener.enterStmt_raise(this); + if(listener.enterStmtRaise) { + listener.enterStmtRaise(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_raise) { - listener.exitStmt_raise(this); + if(listener.exitStmtRaise) { + listener.exitStmtRaise(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_raise) { - return visitor.visitStmt_raise(this); + if (visitor.visitStmtRaise) { + return visitor.visitStmtRaise(this); } else { return visitor.visitChildren(this); } @@ -85221,7 +84592,7 @@ export class Stmt_raiseContext extends antlr.ParserRuleContext { } -export class Opt_raise_using_elemContext extends antlr.ParserRuleContext { +export class OptRaiseUsingElemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85235,21 +84606,21 @@ export class Opt_raise_using_elemContext extends antlr.ParserRuleContext { return this.getRuleContext(0, ExpressionContext)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_raise_using_elem; + return PostgreSqlParser.RULE_optRaiseUsingElem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_raise_using_elem) { - listener.enterOpt_raise_using_elem(this); + if(listener.enterOptRaiseUsingElem) { + listener.enterOptRaiseUsingElem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_raise_using_elem) { - listener.exitOpt_raise_using_elem(this); + if(listener.exitOptRaiseUsingElem) { + listener.exitOptRaiseUsingElem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_raise_using_elem) { - return visitor.visitOpt_raise_using_elem(this); + if (visitor.visitOptRaiseUsingElem) { + return visitor.visitOptRaiseUsingElem(this); } else { return visitor.visitChildren(this); } @@ -85257,21 +84628,21 @@ export class Opt_raise_using_elemContext extends antlr.ParserRuleContext { } -export class Stmt_assertContext extends antlr.ParserRuleContext { +export class StmtAssertContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_ASSERT(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ASSERT, 0)!; } - public sql_expression(): Sql_expressionContext[]; - public sql_expression(i: number): Sql_expressionContext | null; - public sql_expression(i?: number): Sql_expressionContext[] | Sql_expressionContext | null { + public sqlExpression(): SqlExpressionContext[]; + public sqlExpression(i: number): SqlExpressionContext | null; + public sqlExpression(i?: number): SqlExpressionContext[] | SqlExpressionContext | null { if (i === undefined) { - return this.getRuleContexts(Sql_expressionContext); + return this.getRuleContexts(SqlExpressionContext); } - return this.getRuleContext(i, Sql_expressionContext); + return this.getRuleContext(i, SqlExpressionContext); } public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; @@ -85280,21 +84651,21 @@ export class Stmt_assertContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.COMMA, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_assert; + return PostgreSqlParser.RULE_stmtAssert; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_assert) { - listener.enterStmt_assert(this); + if(listener.enterStmtAssert) { + listener.enterStmtAssert(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_assert) { - listener.exitStmt_assert(this); + if(listener.exitStmtAssert) { + listener.exitStmtAssert(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_assert) { - return visitor.visitStmt_assert(this); + if (visitor.visitStmtAssert) { + return visitor.visitStmtAssert(this); } else { return visitor.visitChildren(this); } @@ -85302,7 +84673,7 @@ export class Stmt_assertContext extends antlr.ParserRuleContext { } -export class Loop_bodyContext extends antlr.ParserRuleContext { +export class LoopBodyContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85321,34 +84692,34 @@ export class Loop_bodyContext extends antlr.ParserRuleContext { public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } - public proc_stmt(): Proc_stmtContext[]; - public proc_stmt(i: number): Proc_stmtContext | null; - public proc_stmt(i?: number): Proc_stmtContext[] | Proc_stmtContext | null { + public procStmt(): ProcStmtContext[]; + public procStmt(i: number): ProcStmtContext | null; + public procStmt(i?: number): ProcStmtContext[] | ProcStmtContext | null { if (i === undefined) { - return this.getRuleContexts(Proc_stmtContext); + return this.getRuleContexts(ProcStmtContext); } - return this.getRuleContext(i, Proc_stmtContext); + return this.getRuleContext(i, ProcStmtContext); } - public any_identifier(): Any_identifierContext | null { - return this.getRuleContext(0, Any_identifierContext); + public anyIdentifier(): AnyIdentifierContext | null { + return this.getRuleContext(0, AnyIdentifierContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_loop_body; + return PostgreSqlParser.RULE_loopBody; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterLoop_body) { - listener.enterLoop_body(this); + if(listener.enterLoopBody) { + listener.enterLoopBody(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitLoop_body) { - listener.exitLoop_body(this); + if(listener.exitLoopBody) { + listener.exitLoopBody(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitLoop_body) { - return visitor.visitLoop_body(this); + if (visitor.visitLoopBody) { + return visitor.visitLoopBody(this); } else { return visitor.visitChildren(this); } @@ -85356,7 +84727,7 @@ export class Loop_bodyContext extends antlr.ParserRuleContext { } -export class Stmt_execsqlContext extends antlr.ParserRuleContext { +export class StmtExecsqlContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85366,25 +84737,25 @@ export class Stmt_execsqlContext extends antlr.ParserRuleContext { public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } - public opt_execute_into(): Opt_execute_intoContext | null { - return this.getRuleContext(0, Opt_execute_intoContext); + public optExecuteInto(): OptExecuteIntoContext | null { + return this.getRuleContext(0, OptExecuteIntoContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_execsql; + return PostgreSqlParser.RULE_stmtExecsql; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_execsql) { - listener.enterStmt_execsql(this); + if(listener.enterStmtExecsql) { + listener.enterStmtExecsql(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_execsql) { - listener.exitStmt_execsql(this); + if(listener.exitStmtExecsql) { + listener.exitStmtExecsql(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_execsql) { - return visitor.visitStmt_execsql(this); + if (visitor.visitStmtExecsql) { + return visitor.visitStmtExecsql(this); } else { return visitor.visitChildren(this); } @@ -85392,7 +84763,7 @@ export class Stmt_execsqlContext extends antlr.ParserRuleContext { } -export class Stmt_dynexecuteContext extends antlr.ParserRuleContext { +export class StmtDynexecuteContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85405,31 +84776,31 @@ export class Stmt_dynexecuteContext extends antlr.ParserRuleContext { public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } - public opt_execute_into(): Opt_execute_intoContext | null { - return this.getRuleContext(0, Opt_execute_intoContext); + public optExecuteInto(): OptExecuteIntoContext | null { + return this.getRuleContext(0, OptExecuteIntoContext); } public KW_USING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USING, 0); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_dynexecute; + return PostgreSqlParser.RULE_stmtDynexecute; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_dynexecute) { - listener.enterStmt_dynexecute(this); + if(listener.enterStmtDynexecute) { + listener.enterStmtDynexecute(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_dynexecute) { - listener.exitStmt_dynexecute(this); + if(listener.exitStmtDynexecute) { + listener.exitStmtDynexecute(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_dynexecute) { - return visitor.visitStmt_dynexecute(this); + if (visitor.visitStmtDynexecute) { + return visitor.visitStmtDynexecute(this); } else { return visitor.visitChildren(this); } @@ -85437,35 +84808,35 @@ export class Stmt_dynexecuteContext extends antlr.ParserRuleContext { } -export class Opt_execute_intoContext extends antlr.ParserRuleContext { +export class OptExecuteIntoContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_INTO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_INTO, 0)!; } - public expr_list(): Expr_listContext { - return this.getRuleContext(0, Expr_listContext)!; + public exprList(): ExprListContext { + return this.getRuleContext(0, ExprListContext)!; } public KW_STRICT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_STRICT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_execute_into; + return PostgreSqlParser.RULE_optExecuteInto; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_execute_into) { - listener.enterOpt_execute_into(this); + if(listener.enterOptExecuteInto) { + listener.enterOptExecuteInto(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_execute_into) { - listener.exitOpt_execute_into(this); + if(listener.exitOptExecuteInto) { + listener.exitOptExecuteInto(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_execute_into) { - return visitor.visitOpt_execute_into(this); + if (visitor.visitOptExecuteInto) { + return visitor.visitOptExecuteInto(this); } else { return visitor.visitChildren(this); } @@ -85473,7 +84844,7 @@ export class Opt_execute_intoContext extends antlr.ParserRuleContext { } -export class Stmt_openContext extends antlr.ParserRuleContext { +export class StmtOpenContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85483,8 +84854,8 @@ export class Stmt_openContext extends antlr.ParserRuleContext { public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } - public cursor_variable(): Cursor_variableContext | null { - return this.getRuleContext(0, Cursor_variableContext); + public cursorVariable(): CursorVariableContext | null { + return this.getRuleContext(0, CursorVariableContext); } public KW_FOR(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_FOR, 0); @@ -85498,8 +84869,8 @@ export class Stmt_openContext extends antlr.ParserRuleContext { public KW_EXECUTE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_EXECUTE, 0); } - public sql_expression(): Sql_expressionContext | null { - return this.getRuleContext(0, Sql_expressionContext); + public sqlExpression(): SqlExpressionContext | null { + return this.getRuleContext(0, SqlExpressionContext); } public KW_SCROLL(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SCROLL, 0); @@ -85513,17 +84884,17 @@ export class Stmt_openContext extends antlr.ParserRuleContext { public KW_USING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_USING, 0); } - public expr_list(): Expr_listContext | null { - return this.getRuleContext(0, Expr_listContext); + public exprList(): ExprListContext | null { + return this.getRuleContext(0, ExprListContext); } - public opt_open_bound_list_item(): Opt_open_bound_list_itemContext[]; - public opt_open_bound_list_item(i: number): Opt_open_bound_list_itemContext | null; - public opt_open_bound_list_item(i?: number): Opt_open_bound_list_itemContext[] | Opt_open_bound_list_itemContext | null { + public optOpenBoundListItem(): OptOpenBoundListItemContext[]; + public optOpenBoundListItem(i: number): OptOpenBoundListItemContext | null; + public optOpenBoundListItem(i?: number): OptOpenBoundListItemContext[] | OptOpenBoundListItemContext | null { if (i === undefined) { - return this.getRuleContexts(Opt_open_bound_list_itemContext); + return this.getRuleContexts(OptOpenBoundListItemContext); } - return this.getRuleContext(i, Opt_open_bound_list_itemContext); + return this.getRuleContext(i, OptOpenBoundListItemContext); } public KW_NO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NO, 0); @@ -85538,21 +84909,21 @@ export class Stmt_openContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_open; + return PostgreSqlParser.RULE_stmtOpen; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_open) { - listener.enterStmt_open(this); + if(listener.enterStmtOpen) { + listener.enterStmtOpen(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_open) { - listener.exitStmt_open(this); + if(listener.exitStmtOpen) { + listener.exitStmtOpen(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_open) { - return visitor.visitStmt_open(this); + if (visitor.visitStmtOpen) { + return visitor.visitStmtOpen(this); } else { return visitor.visitChildren(this); } @@ -85560,7 +84931,7 @@ export class Stmt_openContext extends antlr.ParserRuleContext { } -export class Opt_open_bound_list_itemContext extends antlr.ParserRuleContext { +export class OptOpenBoundListItemContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85574,21 +84945,21 @@ export class Opt_open_bound_list_itemContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.COLON_EQUALS, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_open_bound_list_item; + return PostgreSqlParser.RULE_optOpenBoundListItem; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_open_bound_list_item) { - listener.enterOpt_open_bound_list_item(this); + if(listener.enterOptOpenBoundListItem) { + listener.enterOptOpenBoundListItem(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_open_bound_list_item) { - listener.exitOpt_open_bound_list_item(this); + if(listener.exitOptOpenBoundListItem) { + listener.exitOptOpenBoundListItem(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_open_bound_list_item) { - return visitor.visitOpt_open_bound_list_item(this); + if (visitor.visitOptOpenBoundListItem) { + return visitor.visitOptOpenBoundListItem(this); } else { return visitor.visitChildren(this); } @@ -85596,48 +84967,48 @@ export class Opt_open_bound_list_itemContext extends antlr.ParserRuleContext { } -export class Stmt_fetchContext extends antlr.ParserRuleContext { - public _direction?: Opt_fetch_directionContext; +export class StmtFetchContext extends antlr.ParserRuleContext { + public _direction?: OptFetchFirectionContext; public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_FETCH(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_FETCH, 0)!; } - public cursor_variable(): Cursor_variableContext { - return this.getRuleContext(0, Cursor_variableContext)!; + public cursorVariable(): CursorVariableContext { + return this.getRuleContext(0, CursorVariableContext)!; } public KW_INTO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_INTO, 0)!; } - public expr_list(): Expr_listContext { - return this.getRuleContext(0, Expr_listContext)!; + public exprList(): ExprListContext { + return this.getRuleContext(0, ExprListContext)!; } public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } - public from_in(): From_inContext | null { - return this.getRuleContext(0, From_inContext); + public fromIn(): FromInContext | null { + return this.getRuleContext(0, FromInContext); } - public opt_fetch_direction(): Opt_fetch_directionContext | null { - return this.getRuleContext(0, Opt_fetch_directionContext); + public optFetchFirection(): OptFetchFirectionContext | null { + return this.getRuleContext(0, OptFetchFirectionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_fetch; + return PostgreSqlParser.RULE_stmtFetch; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_fetch) { - listener.enterStmt_fetch(this); + if(listener.enterStmtFetch) { + listener.enterStmtFetch(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_fetch) { - listener.exitStmt_fetch(this); + if(listener.exitStmtFetch) { + listener.exitStmtFetch(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_fetch) { - return visitor.visitStmt_fetch(this); + if (visitor.visitStmtFetch) { + return visitor.visitStmtFetch(this); } else { return visitor.visitChildren(this); } @@ -85645,7 +85016,7 @@ export class Stmt_fetchContext extends antlr.ParserRuleContext { } -export class Opt_fetch_directionContext extends antlr.ParserRuleContext { +export class OptFetchFirectionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85680,21 +85051,21 @@ export class Opt_fetch_directionContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_BACKWARD, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_opt_fetch_direction; + return PostgreSqlParser.RULE_optFetchFirection; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterOpt_fetch_direction) { - listener.enterOpt_fetch_direction(this); + if(listener.enterOptFetchFirection) { + listener.enterOptFetchFirection(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitOpt_fetch_direction) { - listener.exitOpt_fetch_direction(this); + if(listener.exitOptFetchFirection) { + listener.exitOptFetchFirection(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitOpt_fetch_direction) { - return visitor.visitOpt_fetch_direction(this); + if (visitor.visitOptFetchFirection) { + return visitor.visitOptFetchFirection(this); } else { return visitor.visitChildren(this); } @@ -85702,38 +85073,38 @@ export class Opt_fetch_directionContext extends antlr.ParserRuleContext { } -export class Stmt_moveContext extends antlr.ParserRuleContext { +export class StmtMoveContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_MOVE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_MOVE, 0)!; } - public cursor_variable(): Cursor_variableContext { - return this.getRuleContext(0, Cursor_variableContext)!; + public cursorVariable(): CursorVariableContext { + return this.getRuleContext(0, CursorVariableContext)!; } public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } - public opt_fetch_direction(): Opt_fetch_directionContext | null { - return this.getRuleContext(0, Opt_fetch_directionContext); + public optFetchFirection(): OptFetchFirectionContext | null { + return this.getRuleContext(0, OptFetchFirectionContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_move; + return PostgreSqlParser.RULE_stmtMove; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_move) { - listener.enterStmt_move(this); + if(listener.enterStmtMove) { + listener.enterStmtMove(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_move) { - listener.exitStmt_move(this); + if(listener.exitStmtMove) { + listener.exitStmtMove(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_move) { - return visitor.visitStmt_move(this); + if (visitor.visitStmtMove) { + return visitor.visitStmtMove(this); } else { return visitor.visitChildren(this); } @@ -85751,14 +85122,14 @@ export class MergeStmtContext extends antlr.ParserRuleContext { public KW_INTO(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_INTO, 0)!; } - public table_name(): Table_nameContext { - return this.getRuleContext(0, Table_nameContext)!; + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext)!; } public KW_USING(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_USING, 0)!; } - public data_source(): Data_sourceContext { - return this.getRuleContext(0, Data_sourceContext)!; + public dataSource(): DataSourceContext { + return this.getRuleContext(0, DataSourceContext)!; } public KW_ON(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_ON, 0)!; @@ -85766,8 +85137,8 @@ export class MergeStmtContext extends antlr.ParserRuleContext { public expression(): ExpressionContext { return this.getRuleContext(0, ExpressionContext)!; } - public with_clause(): With_clauseContext | null { - return this.getRuleContext(0, With_clauseContext); + public withClause(): WithClauseContext | null { + return this.getRuleContext(0, WithClauseContext); } public KW_ONLY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ONLY, 0); @@ -85778,14 +85149,17 @@ export class MergeStmtContext extends antlr.ParserRuleContext { public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); } - public merge_when_clause(): Merge_when_clauseContext[]; - public merge_when_clause(i: number): Merge_when_clauseContext | null; - public merge_when_clause(i?: number): Merge_when_clauseContext[] | Merge_when_clauseContext | null { + public mergeWhenClause(): MergeWhenClauseContext[]; + public mergeWhenClause(i: number): MergeWhenClauseContext | null; + public mergeWhenClause(i?: number): MergeWhenClauseContext[] | MergeWhenClauseContext | null { if (i === undefined) { - return this.getRuleContexts(Merge_when_clauseContext); + return this.getRuleContexts(MergeWhenClauseContext); } - return this.getRuleContext(i, Merge_when_clauseContext); + return this.getRuleContext(i, MergeWhenClauseContext); + } + public returningClause(): ReturningClauseContext | null { + return this.getRuleContext(0, ReturningClauseContext); } public KW_AS(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_AS, 0); @@ -85813,21 +85187,21 @@ export class MergeStmtContext extends antlr.ParserRuleContext { } -export class Data_sourceContext extends antlr.ParserRuleContext { +export class DataSourceContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public table_name(): Table_nameContext | null { - return this.getRuleContext(0, Table_nameContext); + public tableName(): TableNameContext | null { + return this.getRuleContext(0, TableNameContext); } public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); } - public select_no_parens(): Select_no_parensContext | null { - return this.getRuleContext(0, Select_no_parensContext); + public selectNoParens(): SelectNoParensContext | null { + return this.getRuleContext(0, SelectNoParensContext); } - public values_clause(): Values_clauseContext | null { - return this.getRuleContext(0, Values_clauseContext); + public valuesClause(): ValuesClauseContext | null { + return this.getRuleContext(0, ValuesClauseContext); } public KW_ONLY(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_ONLY, 0); @@ -85839,21 +85213,21 @@ export class Data_sourceContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_AS, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_data_source; + return PostgreSqlParser.RULE_dataSource; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterData_source) { - listener.enterData_source(this); + if(listener.enterDataSource) { + listener.enterDataSource(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitData_source) { - listener.exitData_source(this); + if(listener.exitDataSource) { + listener.exitDataSource(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitData_source) { - return visitor.visitData_source(this); + if (visitor.visitDataSource) { + return visitor.visitDataSource(this); } else { return visitor.visitChildren(this); } @@ -85861,7 +85235,7 @@ export class Data_sourceContext extends antlr.ParserRuleContext { } -export class Merge_when_clauseContext extends antlr.ParserRuleContext { +export class MergeWhenClauseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85874,8 +85248,8 @@ export class Merge_when_clauseContext extends antlr.ParserRuleContext { public KW_THEN(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_THEN, 0)!; } - public merge_update(): Merge_updateContext | null { - return this.getRuleContext(0, Merge_updateContext); + public mergeUpdate(): MergeUpdateContext | null { + return this.getRuleContext(0, MergeUpdateContext); } public KW_DELETE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_DELETE, 0); @@ -85895,25 +85269,25 @@ export class Merge_when_clauseContext extends antlr.ParserRuleContext { public KW_NOT(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_NOT, 0); } - public merge_insert(): Merge_insertContext | null { - return this.getRuleContext(0, Merge_insertContext); + public mergeInsert(): MergeInsertContext | null { + return this.getRuleContext(0, MergeInsertContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_merge_when_clause; + return PostgreSqlParser.RULE_mergeWhenClause; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterMerge_when_clause) { - listener.enterMerge_when_clause(this); + if(listener.enterMergeWhenClause) { + listener.enterMergeWhenClause(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitMerge_when_clause) { - listener.exitMerge_when_clause(this); + if(listener.exitMergeWhenClause) { + listener.exitMergeWhenClause(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitMerge_when_clause) { - return visitor.visitMerge_when_clause(this); + if (visitor.visitMergeWhenClause) { + return visitor.visitMergeWhenClause(this); } else { return visitor.visitChildren(this); } @@ -85921,18 +85295,18 @@ export class Merge_when_clauseContext extends antlr.ParserRuleContext { } -export class Merge_insertContext extends antlr.ParserRuleContext { +export class MergeInsertContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_INSERT(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_INSERT, 0)!; } - public default_values_or_values(): Default_values_or_valuesContext { - return this.getRuleContext(0, Default_values_or_valuesContext)!; + public defaultValuesOrValues(): DefaultValuesOrValuesContext { + return this.getRuleContext(0, DefaultValuesOrValuesContext)!; } - public opt_column_list(): Opt_column_listContext | null { - return this.getRuleContext(0, Opt_column_listContext); + public optColumnList(): OptColumnListContext | null { + return this.getRuleContext(0, OptColumnListContext); } public KW_OVERRIDING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_OVERRIDING, 0); @@ -85947,21 +85321,21 @@ export class Merge_insertContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_USER, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_merge_insert; + return PostgreSqlParser.RULE_mergeInsert; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterMerge_insert) { - listener.enterMerge_insert(this); + if(listener.enterMergeInsert) { + listener.enterMergeInsert(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitMerge_insert) { - listener.exitMerge_insert(this); + if(listener.exitMergeInsert) { + listener.exitMergeInsert(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitMerge_insert) { - return visitor.visitMerge_insert(this); + if (visitor.visitMergeInsert) { + return visitor.visitMergeInsert(this); } else { return visitor.visitChildren(this); } @@ -85969,7 +85343,7 @@ export class Merge_insertContext extends antlr.ParserRuleContext { } -export class Merge_updateContext extends antlr.ParserRuleContext { +export class MergeUpdateContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -85979,14 +85353,14 @@ export class Merge_updateContext extends antlr.ParserRuleContext { public KW_SET(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_SET, 0)!; } - public column_name(): Column_nameContext[]; - public column_name(i: number): Column_nameContext | null; - public column_name(i?: number): Column_nameContext[] | Column_nameContext | null { + public columnName(): ColumnNameContext[]; + public columnName(i: number): ColumnNameContext | null; + public columnName(i?: number): ColumnNameContext[] | ColumnNameContext | null { if (i === undefined) { - return this.getRuleContexts(Column_nameContext); + return this.getRuleContexts(ColumnNameContext); } - return this.getRuleContext(i, Column_nameContext); + return this.getRuleContext(i, ColumnNameContext); } public EQUAL(): antlr.TerminalNode[]; public EQUAL(i: number): antlr.TerminalNode | null; @@ -86006,14 +85380,14 @@ export class Merge_updateContext extends antlr.ParserRuleContext { return this.getRuleContext(i, ExprofdefaultContext); } - public opt_column_list(): Opt_column_listContext[]; - public opt_column_list(i: number): Opt_column_listContext | null; - public opt_column_list(i?: number): Opt_column_listContext[] | Opt_column_listContext | null { + public optColumnList(): OptColumnListContext[]; + public optColumnList(i: number): OptColumnListContext | null; + public optColumnList(i?: number): OptColumnListContext[] | OptColumnListContext | null { if (i === undefined) { - return this.getRuleContexts(Opt_column_listContext); + return this.getRuleContexts(OptColumnListContext); } - return this.getRuleContext(i, Opt_column_listContext); + return this.getRuleContext(i, OptColumnListContext); } public OPEN_PAREN(): antlr.TerminalNode[]; public OPEN_PAREN(i: number): antlr.TerminalNode | null; @@ -86043,21 +85417,21 @@ export class Merge_updateContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_merge_update; + return PostgreSqlParser.RULE_mergeUpdate; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterMerge_update) { - listener.enterMerge_update(this); + if(listener.enterMergeUpdate) { + listener.enterMergeUpdate(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitMerge_update) { - listener.exitMerge_update(this); + if(listener.exitMergeUpdate) { + listener.exitMergeUpdate(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitMerge_update) { - return visitor.visitMerge_update(this); + if (visitor.visitMergeUpdate) { + return visitor.visitMergeUpdate(this); } else { return visitor.visitChildren(this); } @@ -86065,7 +85439,7 @@ export class Merge_updateContext extends antlr.ParserRuleContext { } -export class Default_values_or_valuesContext extends antlr.ParserRuleContext { +export class DefaultValuesOrValuesContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -86100,21 +85474,21 @@ export class Default_values_or_valuesContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_DEFAULT, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_default_values_or_values; + return PostgreSqlParser.RULE_defaultValuesOrValues; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterDefault_values_or_values) { - listener.enterDefault_values_or_values(this); + if(listener.enterDefaultValuesOrValues) { + listener.enterDefaultValuesOrValues(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitDefault_values_or_values) { - listener.exitDefault_values_or_values(this); + if(listener.exitDefaultValuesOrValues) { + listener.exitDefaultValuesOrValues(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitDefault_values_or_values) { - return visitor.visitDefault_values_or_values(this); + if (visitor.visitDefaultValuesOrValues) { + return visitor.visitDefaultValuesOrValues(this); } else { return visitor.visitChildren(this); } @@ -86155,35 +85529,35 @@ export class ExprofdefaultContext extends antlr.ParserRuleContext { } -export class Stmt_closeContext extends antlr.ParserRuleContext { +export class StmtCloseContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_CLOSE(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.KW_CLOSE, 0)!; } - public cursor_variable(): Cursor_variableContext { - return this.getRuleContext(0, Cursor_variableContext)!; + public cursorVariable(): CursorVariableContext { + return this.getRuleContext(0, CursorVariableContext)!; } public SEMI(): antlr.TerminalNode { return this.getToken(PostgreSqlParser.SEMI, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_close; + return PostgreSqlParser.RULE_stmtClose; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_close) { - listener.enterStmt_close(this); + if(listener.enterStmtClose) { + listener.enterStmtClose(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_close) { - listener.exitStmt_close(this); + if(listener.exitStmtClose) { + listener.exitStmtClose(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_close) { - return visitor.visitStmt_close(this); + if (visitor.visitStmtClose) { + return visitor.visitStmtClose(this); } else { return visitor.visitChildren(this); } @@ -86191,7 +85565,7 @@ export class Stmt_closeContext extends antlr.ParserRuleContext { } -export class Stmt_nullContext extends antlr.ParserRuleContext { +export class StmtNullContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -86202,21 +85576,21 @@ export class Stmt_nullContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.SEMI, 0)!; } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_null; + return PostgreSqlParser.RULE_stmtNull; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_null) { - listener.enterStmt_null(this); + if(listener.enterStmtNull) { + listener.enterStmtNull(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_null) { - listener.exitStmt_null(this); + if(listener.exitStmtNull) { + listener.exitStmtNull(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_null) { - return visitor.visitStmt_null(this); + if (visitor.visitStmtNull) { + return visitor.visitStmtNull(this); } else { return visitor.visitChildren(this); } @@ -86224,7 +85598,7 @@ export class Stmt_nullContext extends antlr.ParserRuleContext { } -export class Stmt_commit_or_rollbackContext extends antlr.ParserRuleContext { +export class StmtCommitOrRollbackContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -86247,21 +85621,21 @@ export class Stmt_commit_or_rollbackContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_NO, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_commit_or_rollback; + return PostgreSqlParser.RULE_stmtCommitOrRollback; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_commit_or_rollback) { - listener.enterStmt_commit_or_rollback(this); + if(listener.enterStmtCommitOrRollback) { + listener.enterStmtCommitOrRollback(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_commit_or_rollback) { - listener.exitStmt_commit_or_rollback(this); + if(listener.exitStmtCommitOrRollback) { + listener.exitStmtCommitOrRollback(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_commit_or_rollback) { - return visitor.visitStmt_commit_or_rollback(this); + if (visitor.visitStmtCommitOrRollback) { + return visitor.visitStmtCommitOrRollback(this); } else { return visitor.visitChildren(this); } @@ -86269,15 +85643,15 @@ export class Stmt_commit_or_rollbackContext extends antlr.ParserRuleContext { } -export class Stmt_setContext extends antlr.ParserRuleContext { +export class StmtSetContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public KW_SET(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SET, 0); } - public any_name(): Any_nameContext | null { - return this.getRuleContext(0, Any_nameContext); + public anyName(): AnyNameContext | null { + return this.getRuleContext(0, AnyNameContext); } public KW_TO(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_TO, 0); @@ -86295,21 +85669,21 @@ export class Stmt_setContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_ALL, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_stmt_set; + return PostgreSqlParser.RULE_stmtSet; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterStmt_set) { - listener.enterStmt_set(this); + if(listener.enterStmtSet) { + listener.enterStmtSet(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitStmt_set) { - listener.exitStmt_set(this); + if(listener.exitStmtSet) { + listener.exitStmtSet(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitStmt_set) { - return visitor.visitStmt_set(this); + if (visitor.visitStmtSet) { + return visitor.visitStmtSet(this); } else { return visitor.visitChildren(this); } @@ -86317,7 +85691,7 @@ export class Stmt_setContext extends antlr.ParserRuleContext { } -export class Cursor_variableContext extends antlr.ParserRuleContext { +export class CursorVariableContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -86328,21 +85702,21 @@ export class Cursor_variableContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.PARAM, 0); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_cursor_variable; + return PostgreSqlParser.RULE_cursorVariable; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterCursor_variable) { - listener.enterCursor_variable(this); + if(listener.enterCursorVariable) { + listener.enterCursorVariable(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitCursor_variable) { - listener.exitCursor_variable(this); + if(listener.exitCursorVariable) { + listener.exitCursorVariable(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitCursor_variable) { - return visitor.visitCursor_variable(this); + if (visitor.visitCursorVariable) { + return visitor.visitCursorVariable(this); } else { return visitor.visitChildren(this); } @@ -86350,7 +85724,7 @@ export class Cursor_variableContext extends antlr.ParserRuleContext { } -export class Exception_sectContext extends antlr.ParserRuleContext { +export class ExceptionSectContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } @@ -86375,23 +85749,23 @@ export class Exception_sectContext extends antlr.ParserRuleContext { return this.getToken(PostgreSqlParser.KW_THEN, i); } } - public proc_condition(): Proc_conditionContext[]; - public proc_condition(i: number): Proc_conditionContext | null; - public proc_condition(i?: number): Proc_conditionContext[] | Proc_conditionContext | null { + public procCondition(): ProcConditionContext[]; + public procCondition(i: number): ProcConditionContext | null; + public procCondition(i?: number): ProcConditionContext[] | ProcConditionContext | null { if (i === undefined) { - return this.getRuleContexts(Proc_conditionContext); + return this.getRuleContexts(ProcConditionContext); } - return this.getRuleContext(i, Proc_conditionContext); + return this.getRuleContext(i, ProcConditionContext); } - public proc_stmt(): Proc_stmtContext[]; - public proc_stmt(i: number): Proc_stmtContext | null; - public proc_stmt(i?: number): Proc_stmtContext[] | Proc_stmtContext | null { + public procStmt(): ProcStmtContext[]; + public procStmt(i: number): ProcStmtContext | null; + public procStmt(i?: number): ProcStmtContext[] | ProcStmtContext | null { if (i === undefined) { - return this.getRuleContexts(Proc_stmtContext); + return this.getRuleContexts(ProcStmtContext); } - return this.getRuleContext(i, Proc_stmtContext); + return this.getRuleContext(i, ProcStmtContext); } public KW_OR(): antlr.TerminalNode[]; public KW_OR(i: number): antlr.TerminalNode | null; @@ -86403,21 +85777,21 @@ export class Exception_sectContext extends antlr.ParserRuleContext { } } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_exception_sect; + return PostgreSqlParser.RULE_exceptionSect; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterException_sect) { - listener.enterException_sect(this); + if(listener.enterExceptionSect) { + listener.enterExceptionSect(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitException_sect) { - listener.exitException_sect(this); + if(listener.exitExceptionSect) { + listener.exitExceptionSect(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitException_sect) { - return visitor.visitException_sect(this); + if (visitor.visitExceptionSect) { + return visitor.visitExceptionSect(this); } else { return visitor.visitChildren(this); } @@ -86425,12 +85799,12 @@ export class Exception_sectContext extends antlr.ParserRuleContext { } -export class Proc_conditionContext extends antlr.ParserRuleContext { +export class ProcConditionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public any_identifier(): Any_identifierContext | null { - return this.getRuleContext(0, Any_identifierContext); + public anyIdentifier(): AnyIdentifierContext | null { + return this.getRuleContext(0, AnyIdentifierContext); } public KW_SQLSTATE(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_SQLSTATE, 0); @@ -86439,21 +85813,21 @@ export class Proc_conditionContext extends antlr.ParserRuleContext { return this.getRuleContext(0, StringConstContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_proc_condition; + return PostgreSqlParser.RULE_procCondition; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterProc_condition) { - listener.enterProc_condition(this); + if(listener.enterProcCondition) { + listener.enterProcCondition(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitProc_condition) { - listener.exitProc_condition(this); + if(listener.exitProcCondition) { + listener.exitProcCondition(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitProc_condition) { - return visitor.visitProc_condition(this); + if (visitor.visitProcCondition) { + return visitor.visitProcCondition(this); } else { return visitor.visitChildren(this); } @@ -86461,32 +85835,32 @@ export class Proc_conditionContext extends antlr.ParserRuleContext { } -export class Any_identifierContext extends antlr.ParserRuleContext { +export class AnyIdentifierContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } public colId(): ColIdContext | null { return this.getRuleContext(0, ColIdContext); } - public unreserved_keyword(): Unreserved_keywordContext | null { - return this.getRuleContext(0, Unreserved_keywordContext); + public unreservedKeyword(): UnreservedKeywordContext | null { + return this.getRuleContext(0, UnreservedKeywordContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_any_identifier; + return PostgreSqlParser.RULE_anyIdentifier; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterAny_identifier) { - listener.enterAny_identifier(this); + if(listener.enterAnyIdentifier) { + listener.enterAnyIdentifier(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitAny_identifier) { - listener.exitAny_identifier(this); + if(listener.exitAnyIdentifier) { + listener.exitAnyIdentifier(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitAny_identifier) { - return visitor.visitAny_identifier(this); + if (visitor.visitAnyIdentifier) { + return visitor.visitAnyIdentifier(this); } else { return visitor.visitChildren(this); } @@ -86494,24 +85868,24 @@ export class Any_identifierContext extends antlr.ParserRuleContext { } -export class Sql_expressionContext extends antlr.ParserRuleContext { +export class SqlExpressionContext extends antlr.ParserRuleContext { public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) { super(parent, invokingState); } - public target_list(): Target_listContext | null { - return this.getRuleContext(0, Target_listContext); + public targetList(): TargetListContext | null { + return this.getRuleContext(0, TargetListContext); } - public into_clause(): Into_clauseContext | null { - return this.getRuleContext(0, Into_clauseContext); + public intoClause(): IntoClauseContext | null { + return this.getRuleContext(0, IntoClauseContext); } - public from_clause(): From_clauseContext | null { - return this.getRuleContext(0, From_clauseContext); + public fromClause(): FromClauseContext | null { + return this.getRuleContext(0, FromClauseContext); } - public where_clause(): Where_clauseContext | null { - return this.getRuleContext(0, Where_clauseContext); + public whereClause(): WhereClauseContext | null { + return this.getRuleContext(0, WhereClauseContext); } - public group_clause(): Group_clauseContext | null { - return this.getRuleContext(0, Group_clauseContext); + public groupClause(): GroupClauseContext | null { + return this.getRuleContext(0, GroupClauseContext); } public KW_HAVING(): antlr.TerminalNode | null { return this.getToken(PostgreSqlParser.KW_HAVING, 0); @@ -86519,25 +85893,25 @@ export class Sql_expressionContext extends antlr.ParserRuleContext { public expression(): ExpressionContext | null { return this.getRuleContext(0, ExpressionContext); } - public window_clause(): Window_clauseContext | null { - return this.getRuleContext(0, Window_clauseContext); + public windowClause(): WindowClauseContext | null { + return this.getRuleContext(0, WindowClauseContext); } public override get ruleIndex(): number { - return PostgreSqlParser.RULE_sql_expression; + return PostgreSqlParser.RULE_sqlExpression; } public override enterRule(listener: PostgreSqlParserListener): void { - if(listener.enterSql_expression) { - listener.enterSql_expression(this); + if(listener.enterSqlExpression) { + listener.enterSqlExpression(this); } } public override exitRule(listener: PostgreSqlParserListener): void { - if(listener.exitSql_expression) { - listener.exitSql_expression(this); + if(listener.exitSqlExpression) { + listener.exitSqlExpression(this); } } public override accept(visitor: PostgreSqlParserVisitor): Result | null { - if (visitor.visitSql_expression) { - return visitor.visitSql_expression(this); + if (visitor.visitSqlExpression) { + return visitor.visitSqlExpression(this); } else { return visitor.visitChildren(this); } diff --git a/src/lib/postgresql/PostgreSqlParserListener.ts b/src/lib/postgresql/PostgreSqlParserListener.ts index 7bad8b787..e4c9065a9 100644 --- a/src/lib/postgresql/PostgreSqlParserListener.ts +++ b/src/lib/postgresql/PostgreSqlParserListener.ts @@ -19,27 +19,27 @@ import { CreateUserStmtContext } from "./PostgreSqlParser.js"; import { AlterRoleStmtContext } from "./PostgreSqlParser.js"; import { AlterRoleSetStmtContext } from "./PostgreSqlParser.js"; import { AlterRoutineStmtContext } from "./PostgreSqlParser.js"; -import { Alter_routine_clauseContext } from "./PostgreSqlParser.js"; -import { Routine_actionContext } from "./PostgreSqlParser.js"; +import { AlterRoutineClauseContext } from "./PostgreSqlParser.js"; +import { RoutineActionContext } from "./PostgreSqlParser.js"; import { CreateGroupStmtContext } from "./PostgreSqlParser.js"; import { AlterGroupStmtContext } from "./PostgreSqlParser.js"; import { CreateSchemaStmtContext } from "./PostgreSqlParser.js"; import { SchemaNameCreateContext } from "./PostgreSqlParser.js"; -import { Schema_stmtContext } from "./PostgreSqlParser.js"; +import { SchemaStmtContext } from "./PostgreSqlParser.js"; import { VariableSetStmtContext } from "./PostgreSqlParser.js"; -import { Set_restContext } from "./PostgreSqlParser.js"; -import { Generic_setContext } from "./PostgreSqlParser.js"; -import { Set_rest_moreContext } from "./PostgreSqlParser.js"; -import { Var_nameContext } from "./PostgreSqlParser.js"; -import { Var_listContext } from "./PostgreSqlParser.js"; -import { Var_valueContext } from "./PostgreSqlParser.js"; -import { Iso_levelContext } from "./PostgreSqlParser.js"; -import { Opt_boolean_or_string_columnContext } from "./PostgreSqlParser.js"; -import { Opt_boolean_or_stringContext } from "./PostgreSqlParser.js"; -import { Zone_valueContext } from "./PostgreSqlParser.js"; +import { SetRestContext } from "./PostgreSqlParser.js"; +import { GenericSetContext } from "./PostgreSqlParser.js"; +import { SetRestMoreContext } from "./PostgreSqlParser.js"; +import { VarNameContext } from "./PostgreSqlParser.js"; +import { VarListContext } from "./PostgreSqlParser.js"; +import { VarValueContext } from "./PostgreSqlParser.js"; +import { IsoLevelContext } from "./PostgreSqlParser.js"; +import { OptBooleanOrStringColumnContext } from "./PostgreSqlParser.js"; +import { BooleanOrStringContext } from "./PostgreSqlParser.js"; +import { ZoneValueContext } from "./PostgreSqlParser.js"; import { NonReservedWordOrStringConstContext } from "./PostgreSqlParser.js"; import { VariableResetStmtContext } from "./PostgreSqlParser.js"; -import { Reset_restContext } from "./PostgreSqlParser.js"; +import { ResetRestContext } from "./PostgreSqlParser.js"; import { SetOrResetClauseContext } from "./PostgreSqlParser.js"; import { FunctionSetOrResetClauseContext } from "./PostgreSqlParser.js"; import { VariableShowStmtContext } from "./PostgreSqlParser.js"; @@ -47,28 +47,24 @@ import { ConstraintsSetStmtContext } from "./PostgreSqlParser.js"; import { CheckPointStmtContext } from "./PostgreSqlParser.js"; import { DiscardStmtContext } from "./PostgreSqlParser.js"; import { AlterTableStmtContext } from "./PostgreSqlParser.js"; -import { Alter_table_cmdsContext } from "./PostgreSqlParser.js"; -import { Partition_bound_specContext } from "./PostgreSqlParser.js"; -import { Partition_bound_clauseContext } from "./PostgreSqlParser.js"; -import { Partition_bound_chooseContext } from "./PostgreSqlParser.js"; -import { Partition_with_clauseContext } from "./PostgreSqlParser.js"; -import { Partition_cmdContext } from "./PostgreSqlParser.js"; -import { Index_partition_cmdContext } from "./PostgreSqlParser.js"; -import { Alter_table_cmdContext } from "./PostgreSqlParser.js"; -import { Alter_column_defaultContext } from "./PostgreSqlParser.js"; -import { Opt_drop_behaviorContext } from "./PostgreSqlParser.js"; -import { Opt_collate_clauseContext } from "./PostgreSqlParser.js"; +import { AlterTableCmdsContext } from "./PostgreSqlParser.js"; +import { PartitionCmdContext } from "./PostgreSqlParser.js"; +import { IndexPartitionCmdContext } from "./PostgreSqlParser.js"; +import { AlterTableCmdContext } from "./PostgreSqlParser.js"; +import { AlterColumnDefaultContext } from "./PostgreSqlParser.js"; +import { OptDropBehaviorContext } from "./PostgreSqlParser.js"; +import { CollateClauseContext } from "./PostgreSqlParser.js"; import { RelOptionsContext } from "./PostgreSqlParser.js"; import { OptRelOptionsContext } from "./PostgreSqlParser.js"; import { RelOptionElemContext } from "./PostgreSqlParser.js"; import { PartitionBoundSpecContext } from "./PostgreSqlParser.js"; import { AlterCompositeTypeStmtContext } from "./PostgreSqlParser.js"; -import { Alter_type_cmdContext } from "./PostgreSqlParser.js"; +import { AlterTypeCmdContext } from "./PostgreSqlParser.js"; import { ClosePortalStmtContext } from "./PostgreSqlParser.js"; import { CopyStmtContext } from "./PostgreSqlParser.js"; import { CopyOptionsNoparensContext } from "./PostgreSqlParser.js"; import { CopyOptionsContext } from "./PostgreSqlParser.js"; -import { Copy_generic_opt_elemContext } from "./PostgreSqlParser.js"; +import { CopyGenericOptElemContext } from "./PostgreSqlParser.js"; import { ColumnCreateTableContext } from "./PostgreSqlParser.js"; import { OptTempContext } from "./PostgreSqlParser.js"; import { OptTypedTableElEmentListContext } from "./PostgreSqlParser.js"; @@ -78,23 +74,23 @@ import { TypedTableElementContext } from "./PostgreSqlParser.js"; import { Column_defContext } from "./PostgreSqlParser.js"; import { ColConstraintContext } from "./PostgreSqlParser.js"; import { ColConstraintElemContext } from "./PostgreSqlParser.js"; -import { Generated_whenContext } from "./PostgreSqlParser.js"; +import { GeneratedWhenContext } from "./PostgreSqlParser.js"; import { TableLikeOptionContext } from "./PostgreSqlParser.js"; import { ConstraintElemContext } from "./PostgreSqlParser.js"; -import { Opt_column_listContext } from "./PostgreSqlParser.js"; -import { Opt_column_list_createContext } from "./PostgreSqlParser.js"; -import { Column_listContext } from "./PostgreSqlParser.js"; -import { Opt_c_includeContext } from "./PostgreSqlParser.js"; -import { Key_matchContext } from "./PostgreSqlParser.js"; +import { OptColumnListContext } from "./PostgreSqlParser.js"; +import { ColumnListCreateContext } from "./PostgreSqlParser.js"; +import { ColumnListContext } from "./PostgreSqlParser.js"; +import { ColumnListIncludeContext } from "./PostgreSqlParser.js"; +import { KeyMatchContext } from "./PostgreSqlParser.js"; import { ExclusionConstraintElemContext } from "./PostgreSqlParser.js"; -import { Key_actionsContext } from "./PostgreSqlParser.js"; -import { Key_updateContext } from "./PostgreSqlParser.js"; -import { Key_deleteContext } from "./PostgreSqlParser.js"; -import { Key_actionContext } from "./PostgreSqlParser.js"; +import { KeyActionsContext } from "./PostgreSqlParser.js"; +import { KeyUpdateContext } from "./PostgreSqlParser.js"; +import { KeyDeleteContext } from "./PostgreSqlParser.js"; +import { KeyActionContext } from "./PostgreSqlParser.js"; import { OptInheritContext } from "./PostgreSqlParser.js"; import { PartitionSpecContext } from "./PostgreSqlParser.js"; -import { Part_elemContext } from "./PostgreSqlParser.js"; -import { Table_access_method_clauseContext } from "./PostgreSqlParser.js"; +import { PartElemContext } from "./PostgreSqlParser.js"; +import { TableAccessMethodClauseContext } from "./PostgreSqlParser.js"; import { OptWithContext } from "./PostgreSqlParser.js"; import { OnCommitOptionContext } from "./PostgreSqlParser.js"; import { OptTableSpaceContext } from "./PostgreSqlParser.js"; @@ -103,8 +99,8 @@ import { ExistingIndexContext } from "./PostgreSqlParser.js"; import { CreateStatsStmtContext } from "./PostgreSqlParser.js"; import { AlterStatsStmtContext } from "./PostgreSqlParser.js"; import { QueryCreateTableContext } from "./PostgreSqlParser.js"; -import { Create_as_targetContext } from "./PostgreSqlParser.js"; -import { Opt_with_dataContext } from "./PostgreSqlParser.js"; +import { CreateAsTargetContext } from "./PostgreSqlParser.js"; +import { OptWithDataContext } from "./PostgreSqlParser.js"; import { CreateMaterializedViewContext } from "./PostgreSqlParser.js"; import { RefreshMaterializedViewStmtContext } from "./PostgreSqlParser.js"; import { CreateSeqStmtContext } from "./PostgreSqlParser.js"; @@ -117,14 +113,14 @@ import { CreateExtensionStmtContext } from "./PostgreSqlParser.js"; import { AlterExtensionStmtContext } from "./PostgreSqlParser.js"; import { AlterExtensionContentsStmtContext } from "./PostgreSqlParser.js"; import { CreateFdwStmtContext } from "./PostgreSqlParser.js"; -import { Fdw_optionContext } from "./PostgreSqlParser.js"; +import { FdwOptionContext } from "./PostgreSqlParser.js"; import { AlterFdwStmtContext } from "./PostgreSqlParser.js"; -import { Create_generic_optionsContext } from "./PostgreSqlParser.js"; -import { Alter_generic_optionsContext } from "./PostgreSqlParser.js"; -import { Alter_generic_option_elemContext } from "./PostgreSqlParser.js"; -import { Generic_option_elemContext } from "./PostgreSqlParser.js"; +import { CreateGenericOptionsContext } from "./PostgreSqlParser.js"; +import { AlterGenericOptionsContext } from "./PostgreSqlParser.js"; +import { AlterGenericOptionElemContext } from "./PostgreSqlParser.js"; +import { GenericOptionElemContext } from "./PostgreSqlParser.js"; import { CreateForeignServerStmtContext } from "./PostgreSqlParser.js"; -import { Foreign_server_versionContext } from "./PostgreSqlParser.js"; +import { ForeignServerVersionContext } from "./PostgreSqlParser.js"; import { AlterForeignServerStmtContext } from "./PostgreSqlParser.js"; import { CreateForeignTableContext } from "./PostgreSqlParser.js"; import { CreatePartitionForeignTableContext } from "./PostgreSqlParser.js"; @@ -134,7 +130,7 @@ import { AlterUserMappingStmtContext } from "./PostgreSqlParser.js"; import { CreatePolicyStmtContext } from "./PostgreSqlParser.js"; import { AlterPolicyStmtContext } from "./PostgreSqlParser.js"; import { AlterProcedureStmtContext } from "./PostgreSqlParser.js"; -import { Procedure_actionContext } from "./PostgreSqlParser.js"; +import { ProcedureActionContext } from "./PostgreSqlParser.js"; import { RowSecurityOptionalExprContext } from "./PostgreSqlParser.js"; import { RowSecurityOptionalWithCheckContext } from "./PostgreSqlParser.js"; import { CreateAccessMethodStmtContext } from "./PostgreSqlParser.js"; @@ -143,21 +139,21 @@ import { TriggerActionTimeContext } from "./PostgreSqlParser.js"; import { TriggerEventsContext } from "./PostgreSqlParser.js"; import { TriggerOneEventContext } from "./PostgreSqlParser.js"; import { TriggerWhenContext } from "./PostgreSqlParser.js"; -import { Function_or_procedureContext } from "./PostgreSqlParser.js"; +import { FunctionOrProcedureContext } from "./PostgreSqlParser.js"; import { TriggerFuncArgsContext } from "./PostgreSqlParser.js"; import { TriggerFuncArgContext } from "./PostgreSqlParser.js"; import { ConstraintAttributeElemContext } from "./PostgreSqlParser.js"; import { CreateEventTrigStmtContext } from "./PostgreSqlParser.js"; -import { Event_trigger_when_itemContext } from "./PostgreSqlParser.js"; +import { EventTriggerWhenItemContext } from "./PostgreSqlParser.js"; import { AlterEventTrigStmtContext } from "./PostgreSqlParser.js"; import { CreateAssertionStmtContext } from "./PostgreSqlParser.js"; import { DefineStmtContext } from "./PostgreSqlParser.js"; import { DefinitionContext } from "./PostgreSqlParser.js"; -import { Def_elemContext } from "./PostgreSqlParser.js"; -import { Def_argContext } from "./PostgreSqlParser.js"; -import { Old_aggregate_elemContext } from "./PostgreSqlParser.js"; +import { DefElemContext } from "./PostgreSqlParser.js"; +import { DefArgContext } from "./PostgreSqlParser.js"; +import { OldAggregateElemContext } from "./PostgreSqlParser.js"; import { AlterEnumStmtContext } from "./PostgreSqlParser.js"; -import { Opt_if_not_existsContext } from "./PostgreSqlParser.js"; +import { IfNotExistsContext } from "./PostgreSqlParser.js"; import { CreateOperatorClassStmtContext } from "./PostgreSqlParser.js"; import { OpClassItemContext } from "./PostgreSqlParser.js"; import { CreateOperatorFamilyStmtContext } from "./PostgreSqlParser.js"; @@ -165,73 +161,73 @@ import { AlterOperatorFamilyStmtContext } from "./PostgreSqlParser.js"; import { OpClassDropContext } from "./PostgreSqlParser.js"; import { ReassignOwnedStmtContext } from "./PostgreSqlParser.js"; import { DropStmtContext } from "./PostgreSqlParser.js"; -import { Object_type_any_nameContext } from "./PostgreSqlParser.js"; -import { Object_type_nameContext } from "./PostgreSqlParser.js"; -import { Any_name_listContext } from "./PostgreSqlParser.js"; -import { Any_nameContext } from "./PostgreSqlParser.js"; +import { ObjectTypeAnyNameContext } from "./PostgreSqlParser.js"; +import { ObjectTypeNameContext } from "./PostgreSqlParser.js"; +import { AnyNameListContext } from "./PostgreSqlParser.js"; +import { AnyNameContext } from "./PostgreSqlParser.js"; import { AttrsContext } from "./PostgreSqlParser.js"; import { TruncateStmtContext } from "./PostgreSqlParser.js"; -import { Truncate_tableContext } from "./PostgreSqlParser.js"; +import { TruncateTableContext } from "./PostgreSqlParser.js"; import { CommentStmtContext } from "./PostgreSqlParser.js"; import { SecLabelStmtContext } from "./PostgreSqlParser.js"; import { FetchStmtContext } from "./PostgreSqlParser.js"; import { Fetch_argsContext } from "./PostgreSqlParser.js"; -import { From_inContext } from "./PostgreSqlParser.js"; +import { FromInContext } from "./PostgreSqlParser.js"; import { GrantStmtContext } from "./PostgreSqlParser.js"; import { RevokeStmtContext } from "./PostgreSqlParser.js"; import { PrivilegesContext } from "./PostgreSqlParser.js"; import { BeforePrivilegeSelectContext } from "./PostgreSqlParser.js"; import { PrivilegeContext } from "./PostgreSqlParser.js"; -import { Privilege_targetContext } from "./PostgreSqlParser.js"; -import { Grantee_listContext } from "./PostgreSqlParser.js"; +import { PrivilegeTargetContext } from "./PostgreSqlParser.js"; +import { GranteeListContext } from "./PostgreSqlParser.js"; import { GrantRoleStmtContext } from "./PostgreSqlParser.js"; import { RevokeRoleStmtContext } from "./PostgreSqlParser.js"; import { AlterDefaultPrivilegesStmtContext } from "./PostgreSqlParser.js"; import { DefaclactionContext } from "./PostgreSqlParser.js"; -import { Defacl_privilege_targetContext } from "./PostgreSqlParser.js"; +import { DefaclPrivilegeTargetContext } from "./PostgreSqlParser.js"; import { IndexStmtContext } from "./PostgreSqlParser.js"; -import { Index_paramsContext } from "./PostgreSqlParser.js"; -import { Index_elemContext } from "./PostgreSqlParser.js"; +import { IndexParamsContext } from "./PostgreSqlParser.js"; +import { IndexElemContext } from "./PostgreSqlParser.js"; import { CreateFunctionStmtContext } from "./PostgreSqlParser.js"; -import { Opt_or_replaceContext } from "./PostgreSqlParser.js"; -import { Func_argsContext } from "./PostgreSqlParser.js"; -import { Func_args_listContext } from "./PostgreSqlParser.js"; +import { OrReplaceOptContext } from "./PostgreSqlParser.js"; +import { FuncArgsContext } from "./PostgreSqlParser.js"; +import { FuncArgsListContext } from "./PostgreSqlParser.js"; import { RoutineWithArgTypesListContext } from "./PostgreSqlParser.js"; import { RoutineWithArgTypesContext } from "./PostgreSqlParser.js"; import { ProcedureWithArgTypesListContext } from "./PostgreSqlParser.js"; import { ProcedureWithArgTypesContext } from "./PostgreSqlParser.js"; import { FunctionWithArgTypesListContext } from "./PostgreSqlParser.js"; import { FunctionWithArgTypesContext } from "./PostgreSqlParser.js"; -import { Func_argContext } from "./PostgreSqlParser.js"; -import { Arg_classContext } from "./PostgreSqlParser.js"; -import { Func_typeContext } from "./PostgreSqlParser.js"; -import { Func_arg_with_defaultContext } from "./PostgreSqlParser.js"; -import { Aggregate_argsContext } from "./PostgreSqlParser.js"; +import { FuncArgContext } from "./PostgreSqlParser.js"; +import { ArgClassContext } from "./PostgreSqlParser.js"; +import { FuncTypeContext } from "./PostgreSqlParser.js"; +import { FuncArgWithDefaultContext } from "./PostgreSqlParser.js"; +import { AggregateArgsContext } from "./PostgreSqlParser.js"; import { AggregateWithArgTypesContext } from "./PostgreSqlParser.js"; -import { Common_func_opt_itemContext } from "./PostgreSqlParser.js"; -import { Create_func_opt_itemContext } from "./PostgreSqlParser.js"; -import { Opt_definitionContext } from "./PostgreSqlParser.js"; -import { Table_func_columnContext } from "./PostgreSqlParser.js"; +import { CommonFuncOptItemContext } from "./PostgreSqlParser.js"; +import { CreateFuncOptItemContext } from "./PostgreSqlParser.js"; +import { OptDefinitionContext } from "./PostgreSqlParser.js"; +import { TableFuncColumnContext } from "./PostgreSqlParser.js"; import { AlterFunctionStmtContext } from "./PostgreSqlParser.js"; import { RemoveFuncStmtContext } from "./PostgreSqlParser.js"; import { RemoveAggregateStmtContext } from "./PostgreSqlParser.js"; import { RemoveOperatorStmtContext } from "./PostgreSqlParser.js"; import { OperatorArgTypesContext } from "./PostgreSqlParser.js"; -import { Any_operatorContext } from "./PostgreSqlParser.js"; +import { AnyOperatorContext } from "./PostgreSqlParser.js"; import { OperatorWithArgTypesContext } from "./PostgreSqlParser.js"; import { DoStmtContext } from "./PostgreSqlParser.js"; import { CreateCastStmtContext } from "./PostgreSqlParser.js"; -import { Opt_if_existsContext } from "./PostgreSqlParser.js"; +import { IfExistsContext } from "./PostgreSqlParser.js"; import { CreateTransformStmtContext } from "./PostgreSqlParser.js"; -import { Sql_with_functionContext } from "./PostgreSqlParser.js"; +import { SqlWithFunctionContext } from "./PostgreSqlParser.js"; import { ReindexStmtContext } from "./PostgreSqlParser.js"; import { AlterTblSpcStmtContext } from "./PostgreSqlParser.js"; import { RenameStmtContext } from "./PostgreSqlParser.js"; import { AlterObjectDependsStmtContext } from "./PostgreSqlParser.js"; import { AlterObjectSchemaStmtContext } from "./PostgreSqlParser.js"; import { AlterOperatorStmtContext } from "./PostgreSqlParser.js"; -import { Operator_def_listContext } from "./PostgreSqlParser.js"; -import { Operator_def_elemContext } from "./PostgreSqlParser.js"; +import { OperatorDefListContext } from "./PostgreSqlParser.js"; +import { OperatorDefElemContext } from "./PostgreSqlParser.js"; import { AlterTypeStmtContext } from "./PostgreSqlParser.js"; import { AlterOwnerStmtContext } from "./PostgreSqlParser.js"; import { CreatePublicationStmtContext } from "./PostgreSqlParser.js"; @@ -241,17 +237,17 @@ import { AlterSubscriptionStmtContext } from "./PostgreSqlParser.js"; import { RuleStmtContext } from "./PostgreSqlParser.js"; import { RuleActionStmtContext } from "./PostgreSqlParser.js"; import { NotifyStmtContext } from "./PostgreSqlParser.js"; -import { Notify_payloadContext } from "./PostgreSqlParser.js"; +import { NotifyPayloadContext } from "./PostgreSqlParser.js"; import { ListenStmtContext } from "./PostgreSqlParser.js"; import { UnListenStmtContext } from "./PostgreSqlParser.js"; import { TransactionStmtContext } from "./PostgreSqlParser.js"; -import { Opt_transactionContext } from "./PostgreSqlParser.js"; -import { Transaction_mode_itemContext } from "./PostgreSqlParser.js"; -import { Transaction_mode_listContext } from "./PostgreSqlParser.js"; +import { OptTransactionContext } from "./PostgreSqlParser.js"; +import { TransactionModeItemContext } from "./PostgreSqlParser.js"; +import { TransactionModeListContext } from "./PostgreSqlParser.js"; import { CreateViewContext } from "./PostgreSqlParser.js"; import { LoadStmtContext } from "./PostgreSqlParser.js"; import { CreateDatabaseContext } from "./PostgreSqlParser.js"; -import { Create_db_opt_itemContext } from "./PostgreSqlParser.js"; +import { CreateDbOptItemContext } from "./PostgreSqlParser.js"; import { AlterDatabaseStmtContext } from "./PostgreSqlParser.js"; import { AlterDatabaseSetStmtContext } from "./PostgreSqlParser.js"; import { AlterCollationStmtContext } from "./PostgreSqlParser.js"; @@ -264,88 +260,88 @@ import { CreateConversionStmtContext } from "./PostgreSqlParser.js"; import { ClusterStmtContext } from "./PostgreSqlParser.js"; import { VacuumStmtContext } from "./PostgreSqlParser.js"; import { AnalyzeStmtContext } from "./PostgreSqlParser.js"; -import { Analyze_keywordContext } from "./PostgreSqlParser.js"; -import { Vac_analyze_option_elemContext } from "./PostgreSqlParser.js"; -import { Analyze_option_elemContext } from "./PostgreSqlParser.js"; -import { Opt_verboseContext } from "./PostgreSqlParser.js"; -import { Vacuum_relationContext } from "./PostgreSqlParser.js"; -import { Vacuum_relation_listContext } from "./PostgreSqlParser.js"; +import { AnalyzeKeywordContext } from "./PostgreSqlParser.js"; +import { VacAnalyzeOptionElemContext } from "./PostgreSqlParser.js"; +import { AnalyzeOptionElemContext } from "./PostgreSqlParser.js"; +import { OptVerboseContext } from "./PostgreSqlParser.js"; +import { VacuumRelationContext } from "./PostgreSqlParser.js"; +import { VacuumRelationListContext } from "./PostgreSqlParser.js"; import { ExplainStmtContext } from "./PostgreSqlParser.js"; import { ExplainableStmtContext } from "./PostgreSqlParser.js"; -import { Explain_option_listContext } from "./PostgreSqlParser.js"; +import { ExplainOptionListContext } from "./PostgreSqlParser.js"; import { PrepareStmtContext } from "./PostgreSqlParser.js"; -import { Prep_type_clauseContext } from "./PostgreSqlParser.js"; +import { PrepTypeClauseContext } from "./PostgreSqlParser.js"; import { PreParableStmtContext } from "./PostgreSqlParser.js"; import { ExecuteStmtContext } from "./PostgreSqlParser.js"; -import { Execute_param_clauseContext } from "./PostgreSqlParser.js"; +import { ExecuteParamClauseContext } from "./PostgreSqlParser.js"; import { DealLocateStmtContext } from "./PostgreSqlParser.js"; import { InsertStatementContext } from "./PostgreSqlParser.js"; -import { Insert_restContext } from "./PostgreSqlParser.js"; -import { Insert_column_listContext } from "./PostgreSqlParser.js"; -import { Insert_column_itemContext } from "./PostgreSqlParser.js"; -import { Returning_clauseContext } from "./PostgreSqlParser.js"; +import { InsertRestContext } from "./PostgreSqlParser.js"; +import { InsertColumnListContext } from "./PostgreSqlParser.js"; +import { InsertColumnItemContext } from "./PostgreSqlParser.js"; +import { ReturningClauseContext } from "./PostgreSqlParser.js"; import { DeleteStmtContext } from "./PostgreSqlParser.js"; import { LockStmtContext } from "./PostgreSqlParser.js"; import { UpdateStmtContext } from "./PostgreSqlParser.js"; -import { Set_clause_listContext } from "./PostgreSqlParser.js"; -import { Set_clauseContext } from "./PostgreSqlParser.js"; +import { SetClauseListContext } from "./PostgreSqlParser.js"; +import { SetClauseContext } from "./PostgreSqlParser.js"; import { DeclareCursorStmtContext } from "./PostgreSqlParser.js"; import { SelectStatementContext } from "./PostgreSqlParser.js"; -import { Select_with_parensContext } from "./PostgreSqlParser.js"; -import { Select_no_parensContext } from "./PostgreSqlParser.js"; -import { Select_clauseContext } from "./PostgreSqlParser.js"; -import { Simple_selectContext } from "./PostgreSqlParser.js"; -import { Set_operator_with_all_or_distinctContext } from "./PostgreSqlParser.js"; -import { With_clauseContext } from "./PostgreSqlParser.js"; -import { Common_table_exprContext } from "./PostgreSqlParser.js"; -import { Search_clauseContext } from "./PostgreSqlParser.js"; -import { Cycle_clauseContext } from "./PostgreSqlParser.js"; -import { Into_clauseContext } from "./PostgreSqlParser.js"; +import { SelectWithParensContext } from "./PostgreSqlParser.js"; +import { SelectNoParensContext } from "./PostgreSqlParser.js"; +import { SelectClauseContext } from "./PostgreSqlParser.js"; +import { SimpleSelectContext } from "./PostgreSqlParser.js"; +import { SetOperatorWithAllOrDistinctContext } from "./PostgreSqlParser.js"; +import { WithClauseContext } from "./PostgreSqlParser.js"; +import { CommonTableExprContext } from "./PostgreSqlParser.js"; +import { SearchClauseContext } from "./PostgreSqlParser.js"; +import { CycleClauseContext } from "./PostgreSqlParser.js"; +import { IntoClauseContext } from "./PostgreSqlParser.js"; import { OptTempTableNameContext } from "./PostgreSqlParser.js"; -import { Distinct_clauseContext } from "./PostgreSqlParser.js"; -import { Sort_clauseContext } from "./PostgreSqlParser.js"; +import { DistinctClauseContext } from "./PostgreSqlParser.js"; +import { SortClauseContext } from "./PostgreSqlParser.js"; import { SortByContext } from "./PostgreSqlParser.js"; -import { Select_limitContext } from "./PostgreSqlParser.js"; -import { Limit_clauseContext } from "./PostgreSqlParser.js"; -import { Fetch_clauseContext } from "./PostgreSqlParser.js"; -import { Offset_clauseContext } from "./PostgreSqlParser.js"; -import { Select_fetch_first_valueContext } from "./PostgreSqlParser.js"; -import { Group_clauseContext } from "./PostgreSqlParser.js"; -import { Group_by_listContext } from "./PostgreSqlParser.js"; -import { Group_by_itemContext } from "./PostgreSqlParser.js"; -import { For_locking_clauseContext } from "./PostgreSqlParser.js"; -import { Values_clauseContext } from "./PostgreSqlParser.js"; -import { From_clauseContext } from "./PostgreSqlParser.js"; -import { From_listContext } from "./PostgreSqlParser.js"; -import { Table_refContext } from "./PostgreSqlParser.js"; -import { Alias_clauseContext } from "./PostgreSqlParser.js"; -import { Func_alias_clauseContext } from "./PostgreSqlParser.js"; -import { Join_typeContext } from "./PostgreSqlParser.js"; -import { Join_qualContext } from "./PostgreSqlParser.js"; -import { Relation_exprContext } from "./PostgreSqlParser.js"; -import { Publication_relation_exprContext } from "./PostgreSqlParser.js"; -import { Relation_expr_listContext } from "./PostgreSqlParser.js"; -import { Relation_expr_opt_aliasContext } from "./PostgreSqlParser.js"; +import { SelectLimitContext } from "./PostgreSqlParser.js"; +import { LimitClauseContext } from "./PostgreSqlParser.js"; +import { FetchClauseContext } from "./PostgreSqlParser.js"; +import { OffsetClauseContext } from "./PostgreSqlParser.js"; +import { SelectFetchFirstValueContext } from "./PostgreSqlParser.js"; +import { GroupClauseContext } from "./PostgreSqlParser.js"; +import { GroupByListContext } from "./PostgreSqlParser.js"; +import { GroupByItemContext } from "./PostgreSqlParser.js"; +import { ForLockingClauseContext } from "./PostgreSqlParser.js"; +import { ValuesClauseContext } from "./PostgreSqlParser.js"; +import { FromClauseContext } from "./PostgreSqlParser.js"; +import { FromListContext } from "./PostgreSqlParser.js"; +import { TableRefContext } from "./PostgreSqlParser.js"; +import { AliasClauseContext } from "./PostgreSqlParser.js"; +import { FuncAliasClauseContext } from "./PostgreSqlParser.js"; +import { JoinTypeContext } from "./PostgreSqlParser.js"; +import { JoinQualContext } from "./PostgreSqlParser.js"; +import { RelationExprContext } from "./PostgreSqlParser.js"; +import { PublicationRelationExprContext } from "./PostgreSqlParser.js"; +import { RelationExprListContext } from "./PostgreSqlParser.js"; +import { RelationExprOptAliasContext } from "./PostgreSqlParser.js"; import { TableSampleClauseContext } from "./PostgreSqlParser.js"; -import { Func_tableContext } from "./PostgreSqlParser.js"; +import { FuncTableContext } from "./PostgreSqlParser.js"; import { RowsFromItemContext } from "./PostgreSqlParser.js"; -import { Where_clauseContext } from "./PostgreSqlParser.js"; -import { Where_or_current_clauseContext } from "./PostgreSqlParser.js"; +import { WhereClauseContext } from "./PostgreSqlParser.js"; +import { WhereOrCurrentClauseContext } from "./PostgreSqlParser.js"; import { TableFuncElementListContext } from "./PostgreSqlParser.js"; import { TableFuncElementContext } from "./PostgreSqlParser.js"; import { XmlTableContext } from "./PostgreSqlParser.js"; import { XmlTableColumnElContext } from "./PostgreSqlParser.js"; -import { Xml_namespace_elContext } from "./PostgreSqlParser.js"; +import { XmlNamespaceEleContext } from "./PostgreSqlParser.js"; import { TypenameContext } from "./PostgreSqlParser.js"; import { SimpleTypeNameContext } from "./PostgreSqlParser.js"; import { ConstTypeNameContext } from "./PostgreSqlParser.js"; import { NumericContext } from "./PostgreSqlParser.js"; -import { Opt_floatContext } from "./PostgreSqlParser.js"; +import { OptFloatContext } from "./PostgreSqlParser.js"; import { BitContext } from "./PostgreSqlParser.js"; import { CharacterContext } from "./PostgreSqlParser.js"; import { ConstDatetimeContext } from "./PostgreSqlParser.js"; -import { Opt_intervalContext } from "./PostgreSqlParser.js"; -import { Interval_secondContext } from "./PostgreSqlParser.js"; +import { OptIntervalContext } from "./PostgreSqlParser.js"; +import { IntervalSecondContext } from "./PostgreSqlParser.js"; import { ComparisonOperatorContext } from "./PostgreSqlParser.js"; import { ExpressionContext } from "./PostgreSqlParser.js"; import { LogicalNotContext } from "./PostgreSqlParser.js"; @@ -365,58 +361,58 @@ import { ArithmeticBinaryContext } from "./PostgreSqlParser.js"; import { ArithmeticUnaryContext } from "./PostgreSqlParser.js"; import { AtTimeZoneContext } from "./PostgreSqlParser.js"; import { PrimaryExpressionContext } from "./PostgreSqlParser.js"; -import { Func_applicationContext } from "./PostgreSqlParser.js"; +import { FuncApplicationContext } from "./PostgreSqlParser.js"; import { Func_exprContext } from "./PostgreSqlParser.js"; -import { Func_expr_windowlessContext } from "./PostgreSqlParser.js"; -import { Func_expr_common_subexprContext } from "./PostgreSqlParser.js"; -import { Xml_attribute_listContext } from "./PostgreSqlParser.js"; -import { Xml_attribute_elContext } from "./PostgreSqlParser.js"; -import { Document_or_contentContext } from "./PostgreSqlParser.js"; +import { FuncExprWindowlessContext } from "./PostgreSqlParser.js"; +import { FuncExprCommonSubExprContext } from "./PostgreSqlParser.js"; +import { XmlAttributeListContext } from "./PostgreSqlParser.js"; +import { XmlAttributeElContext } from "./PostgreSqlParser.js"; +import { DocumentOrContentContext } from "./PostgreSqlParser.js"; import { XmlExistsArgumentContext } from "./PostgreSqlParser.js"; -import { Xml_passing_mechContext } from "./PostgreSqlParser.js"; -import { Window_clauseContext } from "./PostgreSqlParser.js"; -import { Window_definitionContext } from "./PostgreSqlParser.js"; +import { XmlPassingMechContext } from "./PostgreSqlParser.js"; +import { WindowClauseContext } from "./PostgreSqlParser.js"; +import { WindowDefinitionContext } from "./PostgreSqlParser.js"; import { Over_clauseContext } from "./PostgreSqlParser.js"; -import { Window_specificationContext } from "./PostgreSqlParser.js"; -import { Opt_frame_clauseContext } from "./PostgreSqlParser.js"; -import { Frame_boundContext } from "./PostgreSqlParser.js"; +import { WindowSpecificationContext } from "./PostgreSqlParser.js"; +import { OptFrameClauseContext } from "./PostgreSqlParser.js"; +import { FrameBoundContext } from "./PostgreSqlParser.js"; import { RowContext } from "./PostgreSqlParser.js"; -import { Explicit_rowContext } from "./PostgreSqlParser.js"; -import { Sub_typeContext } from "./PostgreSqlParser.js"; -import { All_opContext } from "./PostgreSqlParser.js"; -import { MathopContext } from "./PostgreSqlParser.js"; -import { Qual_opContext } from "./PostgreSqlParser.js"; -import { Qual_all_opContext } from "./PostgreSqlParser.js"; -import { Subquery_OpContext } from "./PostgreSqlParser.js"; -import { Expr_listContext } from "./PostgreSqlParser.js"; -import { Column_exprContext } from "./PostgreSqlParser.js"; -import { Column_expr_no_parenContext } from "./PostgreSqlParser.js"; -import { Func_arg_listContext } from "./PostgreSqlParser.js"; -import { Func_arg_exprContext } from "./PostgreSqlParser.js"; -import { Array_exprContext } from "./PostgreSqlParser.js"; -import { Extract_argContext } from "./PostgreSqlParser.js"; -import { Unicode_normal_formContext } from "./PostgreSqlParser.js"; -import { Substr_listContext } from "./PostgreSqlParser.js"; +import { ExplicitRowContext } from "./PostgreSqlParser.js"; +import { SubTypeContext } from "./PostgreSqlParser.js"; +import { AllOpContext } from "./PostgreSqlParser.js"; +import { MathOpContext } from "./PostgreSqlParser.js"; +import { QualOpContext } from "./PostgreSqlParser.js"; +import { QualAllOpContext } from "./PostgreSqlParser.js"; +import { SubqueryOperatorContext } from "./PostgreSqlParser.js"; +import { ExprListContext } from "./PostgreSqlParser.js"; +import { ColumnExprContext } from "./PostgreSqlParser.js"; +import { ColumnExprNoParenContext } from "./PostgreSqlParser.js"; +import { FuncArgListContext } from "./PostgreSqlParser.js"; +import { FuncArgExprContext } from "./PostgreSqlParser.js"; +import { ArrayExprContext } from "./PostgreSqlParser.js"; +import { ExtractArgContext } from "./PostgreSqlParser.js"; +import { UnicodeNormalFormContext } from "./PostgreSqlParser.js"; +import { SubstrListContext } from "./PostgreSqlParser.js"; import { When_clauseContext } from "./PostgreSqlParser.js"; -import { Indirection_elContext } from "./PostgreSqlParser.js"; +import { IndirectionElContext } from "./PostgreSqlParser.js"; import { IndirectionContext } from "./PostgreSqlParser.js"; -import { Opt_indirectionContext } from "./PostgreSqlParser.js"; -import { Target_listContext } from "./PostgreSqlParser.js"; +import { OptIndirectionContext } from "./PostgreSqlParser.js"; +import { TargetListContext } from "./PostgreSqlParser.js"; import { Target_labelContext } from "./PostgreSqlParser.js"; import { Target_starContext } from "./PostgreSqlParser.js"; -import { Qualified_name_listContext } from "./PostgreSqlParser.js"; -import { Table_name_listContext } from "./PostgreSqlParser.js"; -import { Schema_name_listContext } from "./PostgreSqlParser.js"; -import { Database_nameListContext } from "./PostgreSqlParser.js"; -import { TablespaceNameCreateContext } from "./PostgreSqlParser.js"; -import { TablespaceNameContext } from "./PostgreSqlParser.js"; +import { QualifiedNameListContext } from "./PostgreSqlParser.js"; +import { TableNameListContext } from "./PostgreSqlParser.js"; +import { SchemaNameListContext } from "./PostgreSqlParser.js"; +import { DatabaseNameListContext } from "./PostgreSqlParser.js"; +import { TableSpaceNameCreateContext } from "./PostgreSqlParser.js"; +import { TableSpaceNameContext } from "./PostgreSqlParser.js"; import { TableNameCreateContext } from "./PostgreSqlParser.js"; import { TableNameContext } from "./PostgreSqlParser.js"; import { ViewNameCreateContext } from "./PostgreSqlParser.js"; import { ViewNameContext } from "./PostgreSqlParser.js"; -import { Qualified_nameContext } from "./PostgreSqlParser.js"; -import { Tablespace_name_listContext } from "./PostgreSqlParser.js"; -import { Name_listContext } from "./PostgreSqlParser.js"; +import { QualifiedNameContext } from "./PostgreSqlParser.js"; +import { TableSpaceNameListContext } from "./PostgreSqlParser.js"; +import { NameListContext } from "./PostgreSqlParser.js"; import { DatabaseNameCreateContext } from "./PostgreSqlParser.js"; import { DatabaseNameContext } from "./PostgreSqlParser.js"; import { SchemaNameContext } from "./PostgreSqlParser.js"; @@ -425,7 +421,6 @@ import { RoutineNameContext } from "./PostgreSqlParser.js"; import { ProcedureNameContext } from "./PostgreSqlParser.js"; import { ProcedureNameCreateContext } from "./PostgreSqlParser.js"; import { ColumnNameContext } from "./PostgreSqlParser.js"; -import { ColumnNameMatchContext } from "./PostgreSqlParser.js"; import { ColumnNameCreateContext } from "./PostgreSqlParser.js"; import { FunctionNameCreateContext } from "./PostgreSqlParser.js"; import { FunctionNameContext } from "./PostgreSqlParser.js"; @@ -433,64 +428,64 @@ import { StringConstContext } from "./PostgreSqlParser.js"; import { AnysconstContext } from "./PostgreSqlParser.js"; import { SignedConstContext } from "./PostgreSqlParser.js"; import { RoleSpecContext } from "./PostgreSqlParser.js"; -import { Role_listContext } from "./PostgreSqlParser.js"; +import { RoleListContext } from "./PostgreSqlParser.js"; import { ColIdContext } from "./PostgreSqlParser.js"; -import { Type_function_nameContext } from "./PostgreSqlParser.js"; +import { TypeFunctionNameContext } from "./PostgreSqlParser.js"; import { NonReservedWordContext } from "./PostgreSqlParser.js"; import { ColLabelContext } from "./PostgreSqlParser.js"; import { IdentifierContext } from "./PostgreSqlParser.js"; -import { Unreserved_keywordContext } from "./PostgreSqlParser.js"; -import { Col_name_keywordContext } from "./PostgreSqlParser.js"; -import { Type_func_name_keywordContext } from "./PostgreSqlParser.js"; -import { Reserved_keywordContext } from "./PostgreSqlParser.js"; -import { Pl_blockContext } from "./PostgreSqlParser.js"; -import { Label_declContext } from "./PostgreSqlParser.js"; -import { Decl_statementContext } from "./PostgreSqlParser.js"; -import { Decl_cursor_argContext } from "./PostgreSqlParser.js"; -import { Assign_operatorContext } from "./PostgreSqlParser.js"; -import { Proc_stmtContext } from "./PostgreSqlParser.js"; -import { Stmt_performContext } from "./PostgreSqlParser.js"; -import { Stmt_callContext } from "./PostgreSqlParser.js"; -import { Stmt_assignContext } from "./PostgreSqlParser.js"; -import { Stmt_getdiagContext } from "./PostgreSqlParser.js"; -import { Getdiag_list_itemContext } from "./PostgreSqlParser.js"; -import { Assign_varContext } from "./PostgreSqlParser.js"; -import { Stmt_ifContext } from "./PostgreSqlParser.js"; -import { Stmt_elseContext } from "./PostgreSqlParser.js"; -import { Stmt_caseContext } from "./PostgreSqlParser.js"; -import { Stmt_loop_while_forContext } from "./PostgreSqlParser.js"; -import { For_controlContext } from "./PostgreSqlParser.js"; -import { Stmt_foreach_aContext } from "./PostgreSqlParser.js"; -import { Stmt_exitContext } from "./PostgreSqlParser.js"; -import { Stmt_returnContext } from "./PostgreSqlParser.js"; -import { Stmt_raiseContext } from "./PostgreSqlParser.js"; -import { Opt_raise_using_elemContext } from "./PostgreSqlParser.js"; -import { Stmt_assertContext } from "./PostgreSqlParser.js"; -import { Loop_bodyContext } from "./PostgreSqlParser.js"; -import { Stmt_execsqlContext } from "./PostgreSqlParser.js"; -import { Stmt_dynexecuteContext } from "./PostgreSqlParser.js"; -import { Opt_execute_intoContext } from "./PostgreSqlParser.js"; -import { Stmt_openContext } from "./PostgreSqlParser.js"; -import { Opt_open_bound_list_itemContext } from "./PostgreSqlParser.js"; -import { Stmt_fetchContext } from "./PostgreSqlParser.js"; -import { Opt_fetch_directionContext } from "./PostgreSqlParser.js"; -import { Stmt_moveContext } from "./PostgreSqlParser.js"; +import { UnreservedKeywordContext } from "./PostgreSqlParser.js"; +import { ColNameKeywordContext } from "./PostgreSqlParser.js"; +import { TypeFuncNameKeywordContext } from "./PostgreSqlParser.js"; +import { ReservedKeywordContext } from "./PostgreSqlParser.js"; +import { PlBlockContext } from "./PostgreSqlParser.js"; +import { LabelDeclContext } from "./PostgreSqlParser.js"; +import { DeclStatementContext } from "./PostgreSqlParser.js"; +import { DeclCursorArgContext } from "./PostgreSqlParser.js"; +import { AssignOperatorContext } from "./PostgreSqlParser.js"; +import { ProcStmtContext } from "./PostgreSqlParser.js"; +import { StmtPerformContext } from "./PostgreSqlParser.js"; +import { StmtCallContext } from "./PostgreSqlParser.js"; +import { StmtAssignContext } from "./PostgreSqlParser.js"; +import { StmtGetdiagContext } from "./PostgreSqlParser.js"; +import { GetdiagListItemContext } from "./PostgreSqlParser.js"; +import { AssignVarContext } from "./PostgreSqlParser.js"; +import { StmtIfContext } from "./PostgreSqlParser.js"; +import { StmtElseContext } from "./PostgreSqlParser.js"; +import { StmtCaseContext } from "./PostgreSqlParser.js"; +import { StmtLoopWhileForContext } from "./PostgreSqlParser.js"; +import { ForControlContext } from "./PostgreSqlParser.js"; +import { StmtForeachContext } from "./PostgreSqlParser.js"; +import { StmtExitContext } from "./PostgreSqlParser.js"; +import { StmtReturnContext } from "./PostgreSqlParser.js"; +import { StmtRaiseContext } from "./PostgreSqlParser.js"; +import { OptRaiseUsingElemContext } from "./PostgreSqlParser.js"; +import { StmtAssertContext } from "./PostgreSqlParser.js"; +import { LoopBodyContext } from "./PostgreSqlParser.js"; +import { StmtExecsqlContext } from "./PostgreSqlParser.js"; +import { StmtDynexecuteContext } from "./PostgreSqlParser.js"; +import { OptExecuteIntoContext } from "./PostgreSqlParser.js"; +import { StmtOpenContext } from "./PostgreSqlParser.js"; +import { OptOpenBoundListItemContext } from "./PostgreSqlParser.js"; +import { StmtFetchContext } from "./PostgreSqlParser.js"; +import { OptFetchFirectionContext } from "./PostgreSqlParser.js"; +import { StmtMoveContext } from "./PostgreSqlParser.js"; import { MergeStmtContext } from "./PostgreSqlParser.js"; -import { Data_sourceContext } from "./PostgreSqlParser.js"; -import { Merge_when_clauseContext } from "./PostgreSqlParser.js"; -import { Merge_insertContext } from "./PostgreSqlParser.js"; -import { Merge_updateContext } from "./PostgreSqlParser.js"; -import { Default_values_or_valuesContext } from "./PostgreSqlParser.js"; +import { DataSourceContext } from "./PostgreSqlParser.js"; +import { MergeWhenClauseContext } from "./PostgreSqlParser.js"; +import { MergeInsertContext } from "./PostgreSqlParser.js"; +import { MergeUpdateContext } from "./PostgreSqlParser.js"; +import { DefaultValuesOrValuesContext } from "./PostgreSqlParser.js"; import { ExprofdefaultContext } from "./PostgreSqlParser.js"; -import { Stmt_closeContext } from "./PostgreSqlParser.js"; -import { Stmt_nullContext } from "./PostgreSqlParser.js"; -import { Stmt_commit_or_rollbackContext } from "./PostgreSqlParser.js"; -import { Stmt_setContext } from "./PostgreSqlParser.js"; -import { Cursor_variableContext } from "./PostgreSqlParser.js"; -import { Exception_sectContext } from "./PostgreSqlParser.js"; -import { Proc_conditionContext } from "./PostgreSqlParser.js"; -import { Any_identifierContext } from "./PostgreSqlParser.js"; -import { Sql_expressionContext } from "./PostgreSqlParser.js"; +import { StmtCloseContext } from "./PostgreSqlParser.js"; +import { StmtNullContext } from "./PostgreSqlParser.js"; +import { StmtCommitOrRollbackContext } from "./PostgreSqlParser.js"; +import { StmtSetContext } from "./PostgreSqlParser.js"; +import { CursorVariableContext } from "./PostgreSqlParser.js"; +import { ExceptionSectContext } from "./PostgreSqlParser.js"; +import { ProcConditionContext } from "./PostgreSqlParser.js"; +import { AnyIdentifierContext } from "./PostgreSqlParser.js"; +import { SqlExpressionContext } from "./PostgreSqlParser.js"; /** @@ -609,25 +604,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAlterRoutineStmt?: (ctx: AlterRoutineStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alter_routine_clause`. + * Enter a parse tree produced by `PostgreSqlParser.alterRoutineClause`. * @param ctx the parse tree */ - enterAlter_routine_clause?: (ctx: Alter_routine_clauseContext) => void; + enterAlterRoutineClause?: (ctx: AlterRoutineClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alter_routine_clause`. + * Exit a parse tree produced by `PostgreSqlParser.alterRoutineClause`. * @param ctx the parse tree */ - exitAlter_routine_clause?: (ctx: Alter_routine_clauseContext) => void; + exitAlterRoutineClause?: (ctx: AlterRoutineClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.routine_action`. + * Enter a parse tree produced by `PostgreSqlParser.routineAction`. * @param ctx the parse tree */ - enterRoutine_action?: (ctx: Routine_actionContext) => void; + enterRoutineAction?: (ctx: RoutineActionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.routine_action`. + * Exit a parse tree produced by `PostgreSqlParser.routineAction`. * @param ctx the parse tree */ - exitRoutine_action?: (ctx: Routine_actionContext) => void; + exitRoutineAction?: (ctx: RoutineActionContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.createGroupStmt`. * @param ctx the parse tree @@ -659,27 +654,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCreateSchemaStmt?: (ctx: CreateSchemaStmtContext) => void; /** - * Enter a parse tree produced by the `schemaNameCreate` - * labeled alternative in `PostgreSqlParser.schema_name_create`. + * Enter a parse tree produced by `PostgreSqlParser.schemaNameCreate`. * @param ctx the parse tree */ enterSchemaNameCreate?: (ctx: SchemaNameCreateContext) => void; /** - * Exit a parse tree produced by the `schemaNameCreate` - * labeled alternative in `PostgreSqlParser.schema_name_create`. + * Exit a parse tree produced by `PostgreSqlParser.schemaNameCreate`. * @param ctx the parse tree */ exitSchemaNameCreate?: (ctx: SchemaNameCreateContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.schema_stmt`. + * Enter a parse tree produced by `PostgreSqlParser.schemaStmt`. * @param ctx the parse tree */ - enterSchema_stmt?: (ctx: Schema_stmtContext) => void; + enterSchemaStmt?: (ctx: SchemaStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.schema_stmt`. + * Exit a parse tree produced by `PostgreSqlParser.schemaStmt`. * @param ctx the parse tree */ - exitSchema_stmt?: (ctx: Schema_stmtContext) => void; + exitSchemaStmt?: (ctx: SchemaStmtContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.variableSetStmt`. * @param ctx the parse tree @@ -691,105 +684,105 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitVariableSetStmt?: (ctx: VariableSetStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.set_rest`. + * Enter a parse tree produced by `PostgreSqlParser.setRest`. * @param ctx the parse tree */ - enterSet_rest?: (ctx: Set_restContext) => void; + enterSetRest?: (ctx: SetRestContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.set_rest`. + * Exit a parse tree produced by `PostgreSqlParser.setRest`. * @param ctx the parse tree */ - exitSet_rest?: (ctx: Set_restContext) => void; + exitSetRest?: (ctx: SetRestContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.generic_set`. + * Enter a parse tree produced by `PostgreSqlParser.genericSet`. * @param ctx the parse tree */ - enterGeneric_set?: (ctx: Generic_setContext) => void; + enterGenericSet?: (ctx: GenericSetContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.generic_set`. + * Exit a parse tree produced by `PostgreSqlParser.genericSet`. * @param ctx the parse tree */ - exitGeneric_set?: (ctx: Generic_setContext) => void; + exitGenericSet?: (ctx: GenericSetContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.set_rest_more`. + * Enter a parse tree produced by `PostgreSqlParser.setRestMore`. * @param ctx the parse tree */ - enterSet_rest_more?: (ctx: Set_rest_moreContext) => void; + enterSetRestMore?: (ctx: SetRestMoreContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.set_rest_more`. + * Exit a parse tree produced by `PostgreSqlParser.setRestMore`. * @param ctx the parse tree */ - exitSet_rest_more?: (ctx: Set_rest_moreContext) => void; + exitSetRestMore?: (ctx: SetRestMoreContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.var_name`. + * Enter a parse tree produced by `PostgreSqlParser.varName`. * @param ctx the parse tree */ - enterVar_name?: (ctx: Var_nameContext) => void; + enterVarName?: (ctx: VarNameContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.var_name`. + * Exit a parse tree produced by `PostgreSqlParser.varName`. * @param ctx the parse tree */ - exitVar_name?: (ctx: Var_nameContext) => void; + exitVarName?: (ctx: VarNameContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.var_list`. + * Enter a parse tree produced by `PostgreSqlParser.varList`. * @param ctx the parse tree */ - enterVar_list?: (ctx: Var_listContext) => void; + enterVarList?: (ctx: VarListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.var_list`. + * Exit a parse tree produced by `PostgreSqlParser.varList`. * @param ctx the parse tree */ - exitVar_list?: (ctx: Var_listContext) => void; + exitVarList?: (ctx: VarListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.var_value`. + * Enter a parse tree produced by `PostgreSqlParser.varValue`. * @param ctx the parse tree */ - enterVar_value?: (ctx: Var_valueContext) => void; + enterVarValue?: (ctx: VarValueContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.var_value`. + * Exit a parse tree produced by `PostgreSqlParser.varValue`. * @param ctx the parse tree */ - exitVar_value?: (ctx: Var_valueContext) => void; + exitVarValue?: (ctx: VarValueContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.iso_level`. + * Enter a parse tree produced by `PostgreSqlParser.isoLevel`. * @param ctx the parse tree */ - enterIso_level?: (ctx: Iso_levelContext) => void; + enterIsoLevel?: (ctx: IsoLevelContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.iso_level`. + * Exit a parse tree produced by `PostgreSqlParser.isoLevel`. * @param ctx the parse tree */ - exitIso_level?: (ctx: Iso_levelContext) => void; + exitIsoLevel?: (ctx: IsoLevelContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_boolean_or_string_column`. + * Enter a parse tree produced by `PostgreSqlParser.optBooleanOrStringColumn`. * @param ctx the parse tree */ - enterOpt_boolean_or_string_column?: (ctx: Opt_boolean_or_string_columnContext) => void; + enterOptBooleanOrStringColumn?: (ctx: OptBooleanOrStringColumnContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_boolean_or_string_column`. + * Exit a parse tree produced by `PostgreSqlParser.optBooleanOrStringColumn`. * @param ctx the parse tree */ - exitOpt_boolean_or_string_column?: (ctx: Opt_boolean_or_string_columnContext) => void; + exitOptBooleanOrStringColumn?: (ctx: OptBooleanOrStringColumnContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_boolean_or_string`. + * Enter a parse tree produced by `PostgreSqlParser.booleanOrString`. * @param ctx the parse tree */ - enterOpt_boolean_or_string?: (ctx: Opt_boolean_or_stringContext) => void; + enterBooleanOrString?: (ctx: BooleanOrStringContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_boolean_or_string`. + * Exit a parse tree produced by `PostgreSqlParser.booleanOrString`. * @param ctx the parse tree */ - exitOpt_boolean_or_string?: (ctx: Opt_boolean_or_stringContext) => void; + exitBooleanOrString?: (ctx: BooleanOrStringContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.zone_value`. + * Enter a parse tree produced by `PostgreSqlParser.zoneValue`. * @param ctx the parse tree */ - enterZone_value?: (ctx: Zone_valueContext) => void; + enterZoneValue?: (ctx: ZoneValueContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.zone_value`. + * Exit a parse tree produced by `PostgreSqlParser.zoneValue`. * @param ctx the parse tree */ - exitZone_value?: (ctx: Zone_valueContext) => void; + exitZoneValue?: (ctx: ZoneValueContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.nonReservedWordOrStringConst`. * @param ctx the parse tree @@ -811,15 +804,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitVariableResetStmt?: (ctx: VariableResetStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.reset_rest`. + * Enter a parse tree produced by `PostgreSqlParser.resetRest`. * @param ctx the parse tree */ - enterReset_rest?: (ctx: Reset_restContext) => void; + enterResetRest?: (ctx: ResetRestContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.reset_rest`. + * Exit a parse tree produced by `PostgreSqlParser.resetRest`. * @param ctx the parse tree */ - exitReset_rest?: (ctx: Reset_restContext) => void; + exitResetRest?: (ctx: ResetRestContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.setOrResetClause`. * @param ctx the parse tree @@ -891,115 +884,75 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAlterTableStmt?: (ctx: AlterTableStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alter_table_cmds`. + * Enter a parse tree produced by `PostgreSqlParser.alterTableCmds`. * @param ctx the parse tree */ - enterAlter_table_cmds?: (ctx: Alter_table_cmdsContext) => void; + enterAlterTableCmds?: (ctx: AlterTableCmdsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alter_table_cmds`. + * Exit a parse tree produced by `PostgreSqlParser.alterTableCmds`. * @param ctx the parse tree */ - exitAlter_table_cmds?: (ctx: Alter_table_cmdsContext) => void; + exitAlterTableCmds?: (ctx: AlterTableCmdsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.partition_bound_spec`. + * Enter a parse tree produced by `PostgreSqlParser.partitionCmd`. * @param ctx the parse tree */ - enterPartition_bound_spec?: (ctx: Partition_bound_specContext) => void; + enterPartitionCmd?: (ctx: PartitionCmdContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.partition_bound_spec`. + * Exit a parse tree produced by `PostgreSqlParser.partitionCmd`. * @param ctx the parse tree */ - exitPartition_bound_spec?: (ctx: Partition_bound_specContext) => void; + exitPartitionCmd?: (ctx: PartitionCmdContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.partition_bound_clause`. + * Enter a parse tree produced by `PostgreSqlParser.indexPartitionCmd`. * @param ctx the parse tree */ - enterPartition_bound_clause?: (ctx: Partition_bound_clauseContext) => void; + enterIndexPartitionCmd?: (ctx: IndexPartitionCmdContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.partition_bound_clause`. + * Exit a parse tree produced by `PostgreSqlParser.indexPartitionCmd`. * @param ctx the parse tree */ - exitPartition_bound_clause?: (ctx: Partition_bound_clauseContext) => void; + exitIndexPartitionCmd?: (ctx: IndexPartitionCmdContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.partition_bound_choose`. + * Enter a parse tree produced by `PostgreSqlParser.alterTableCmd`. * @param ctx the parse tree */ - enterPartition_bound_choose?: (ctx: Partition_bound_chooseContext) => void; + enterAlterTableCmd?: (ctx: AlterTableCmdContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.partition_bound_choose`. + * Exit a parse tree produced by `PostgreSqlParser.alterTableCmd`. * @param ctx the parse tree */ - exitPartition_bound_choose?: (ctx: Partition_bound_chooseContext) => void; + exitAlterTableCmd?: (ctx: AlterTableCmdContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.partition_with_clause`. + * Enter a parse tree produced by `PostgreSqlParser.alterColumnDefault`. * @param ctx the parse tree */ - enterPartition_with_clause?: (ctx: Partition_with_clauseContext) => void; + enterAlterColumnDefault?: (ctx: AlterColumnDefaultContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.partition_with_clause`. + * Exit a parse tree produced by `PostgreSqlParser.alterColumnDefault`. * @param ctx the parse tree */ - exitPartition_with_clause?: (ctx: Partition_with_clauseContext) => void; + exitAlterColumnDefault?: (ctx: AlterColumnDefaultContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.partition_cmd`. + * Enter a parse tree produced by `PostgreSqlParser.optDropBehavior`. * @param ctx the parse tree */ - enterPartition_cmd?: (ctx: Partition_cmdContext) => void; + enterOptDropBehavior?: (ctx: OptDropBehaviorContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.partition_cmd`. + * Exit a parse tree produced by `PostgreSqlParser.optDropBehavior`. * @param ctx the parse tree */ - exitPartition_cmd?: (ctx: Partition_cmdContext) => void; + exitOptDropBehavior?: (ctx: OptDropBehaviorContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.index_partition_cmd`. + * Enter a parse tree produced by `PostgreSqlParser.collateClause`. * @param ctx the parse tree */ - enterIndex_partition_cmd?: (ctx: Index_partition_cmdContext) => void; + enterCollateClause?: (ctx: CollateClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.index_partition_cmd`. + * Exit a parse tree produced by `PostgreSqlParser.collateClause`. * @param ctx the parse tree */ - exitIndex_partition_cmd?: (ctx: Index_partition_cmdContext) => void; - /** - * Enter a parse tree produced by `PostgreSqlParser.alter_table_cmd`. - * @param ctx the parse tree - */ - enterAlter_table_cmd?: (ctx: Alter_table_cmdContext) => void; - /** - * Exit a parse tree produced by `PostgreSqlParser.alter_table_cmd`. - * @param ctx the parse tree - */ - exitAlter_table_cmd?: (ctx: Alter_table_cmdContext) => void; - /** - * Enter a parse tree produced by `PostgreSqlParser.alter_column_default`. - * @param ctx the parse tree - */ - enterAlter_column_default?: (ctx: Alter_column_defaultContext) => void; - /** - * Exit a parse tree produced by `PostgreSqlParser.alter_column_default`. - * @param ctx the parse tree - */ - exitAlter_column_default?: (ctx: Alter_column_defaultContext) => void; - /** - * Enter a parse tree produced by `PostgreSqlParser.opt_drop_behavior`. - * @param ctx the parse tree - */ - enterOpt_drop_behavior?: (ctx: Opt_drop_behaviorContext) => void; - /** - * Exit a parse tree produced by `PostgreSqlParser.opt_drop_behavior`. - * @param ctx the parse tree - */ - exitOpt_drop_behavior?: (ctx: Opt_drop_behaviorContext) => void; - /** - * Enter a parse tree produced by `PostgreSqlParser.opt_collate_clause`. - * @param ctx the parse tree - */ - enterOpt_collate_clause?: (ctx: Opt_collate_clauseContext) => void; - /** - * Exit a parse tree produced by `PostgreSqlParser.opt_collate_clause`. - * @param ctx the parse tree - */ - exitOpt_collate_clause?: (ctx: Opt_collate_clauseContext) => void; + exitCollateClause?: (ctx: CollateClauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.relOptions`. * @param ctx the parse tree @@ -1051,15 +1004,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAlterCompositeTypeStmt?: (ctx: AlterCompositeTypeStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alter_type_cmd`. + * Enter a parse tree produced by `PostgreSqlParser.alterTypeCmd`. * @param ctx the parse tree */ - enterAlter_type_cmd?: (ctx: Alter_type_cmdContext) => void; + enterAlterTypeCmd?: (ctx: AlterTypeCmdContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alter_type_cmd`. + * Exit a parse tree produced by `PostgreSqlParser.alterTypeCmd`. * @param ctx the parse tree */ - exitAlter_type_cmd?: (ctx: Alter_type_cmdContext) => void; + exitAlterTypeCmd?: (ctx: AlterTypeCmdContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.closePortalStmt`. * @param ctx the parse tree @@ -1101,15 +1054,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCopyOptions?: (ctx: CopyOptionsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.copy_generic_opt_elem`. + * Enter a parse tree produced by `PostgreSqlParser.copyGenericOptElem`. * @param ctx the parse tree */ - enterCopy_generic_opt_elem?: (ctx: Copy_generic_opt_elemContext) => void; + enterCopyGenericOptElem?: (ctx: CopyGenericOptElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.copy_generic_opt_elem`. + * Exit a parse tree produced by `PostgreSqlParser.copyGenericOptElem`. * @param ctx the parse tree */ - exitCopy_generic_opt_elem?: (ctx: Copy_generic_opt_elemContext) => void; + exitCopyGenericOptElem?: (ctx: CopyGenericOptElemContext) => void; /** * Enter a parse tree produced by the `columnCreateTable` * labeled alternative in `PostgreSqlParser.createStmt`. @@ -1203,15 +1156,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitColConstraintElem?: (ctx: ColConstraintElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.generated_when`. + * Enter a parse tree produced by `PostgreSqlParser.generatedWhen`. * @param ctx the parse tree */ - enterGenerated_when?: (ctx: Generated_whenContext) => void; + enterGeneratedWhen?: (ctx: GeneratedWhenContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.generated_when`. + * Exit a parse tree produced by `PostgreSqlParser.generatedWhen`. * @param ctx the parse tree */ - exitGenerated_when?: (ctx: Generated_whenContext) => void; + exitGeneratedWhen?: (ctx: GeneratedWhenContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.tableLikeOption`. * @param ctx the parse tree @@ -1233,55 +1186,55 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitConstraintElem?: (ctx: ConstraintElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_column_list`. + * Enter a parse tree produced by `PostgreSqlParser.optColumnList`. * @param ctx the parse tree */ - enterOpt_column_list?: (ctx: Opt_column_listContext) => void; + enterOptColumnList?: (ctx: OptColumnListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_column_list`. + * Exit a parse tree produced by `PostgreSqlParser.optColumnList`. * @param ctx the parse tree */ - exitOpt_column_list?: (ctx: Opt_column_listContext) => void; + exitOptColumnList?: (ctx: OptColumnListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_column_list_create`. + * Enter a parse tree produced by `PostgreSqlParser.columnListCreate`. * @param ctx the parse tree */ - enterOpt_column_list_create?: (ctx: Opt_column_list_createContext) => void; + enterColumnListCreate?: (ctx: ColumnListCreateContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_column_list_create`. + * Exit a parse tree produced by `PostgreSqlParser.columnListCreate`. * @param ctx the parse tree */ - exitOpt_column_list_create?: (ctx: Opt_column_list_createContext) => void; + exitColumnListCreate?: (ctx: ColumnListCreateContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.column_list`. + * Enter a parse tree produced by `PostgreSqlParser.columnList`. * @param ctx the parse tree */ - enterColumn_list?: (ctx: Column_listContext) => void; + enterColumnList?: (ctx: ColumnListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.column_list`. + * Exit a parse tree produced by `PostgreSqlParser.columnList`. * @param ctx the parse tree */ - exitColumn_list?: (ctx: Column_listContext) => void; + exitColumnList?: (ctx: ColumnListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_c_include`. + * Enter a parse tree produced by `PostgreSqlParser.columnListInclude`. * @param ctx the parse tree */ - enterOpt_c_include?: (ctx: Opt_c_includeContext) => void; + enterColumnListInclude?: (ctx: ColumnListIncludeContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_c_include`. + * Exit a parse tree produced by `PostgreSqlParser.columnListInclude`. * @param ctx the parse tree */ - exitOpt_c_include?: (ctx: Opt_c_includeContext) => void; + exitColumnListInclude?: (ctx: ColumnListIncludeContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.key_match`. + * Enter a parse tree produced by `PostgreSqlParser.keyMatch`. * @param ctx the parse tree */ - enterKey_match?: (ctx: Key_matchContext) => void; + enterKeyMatch?: (ctx: KeyMatchContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.key_match`. + * Exit a parse tree produced by `PostgreSqlParser.keyMatch`. * @param ctx the parse tree */ - exitKey_match?: (ctx: Key_matchContext) => void; + exitKeyMatch?: (ctx: KeyMatchContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.exclusionConstraintElem`. * @param ctx the parse tree @@ -1293,45 +1246,45 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitExclusionConstraintElem?: (ctx: ExclusionConstraintElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.key_actions`. + * Enter a parse tree produced by `PostgreSqlParser.keyActions`. * @param ctx the parse tree */ - enterKey_actions?: (ctx: Key_actionsContext) => void; + enterKeyActions?: (ctx: KeyActionsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.key_actions`. + * Exit a parse tree produced by `PostgreSqlParser.keyActions`. * @param ctx the parse tree */ - exitKey_actions?: (ctx: Key_actionsContext) => void; + exitKeyActions?: (ctx: KeyActionsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.key_update`. + * Enter a parse tree produced by `PostgreSqlParser.keyUpdate`. * @param ctx the parse tree */ - enterKey_update?: (ctx: Key_updateContext) => void; + enterKeyUpdate?: (ctx: KeyUpdateContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.key_update`. + * Exit a parse tree produced by `PostgreSqlParser.keyUpdate`. * @param ctx the parse tree */ - exitKey_update?: (ctx: Key_updateContext) => void; + exitKeyUpdate?: (ctx: KeyUpdateContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.key_delete`. + * Enter a parse tree produced by `PostgreSqlParser.keyDelete`. * @param ctx the parse tree */ - enterKey_delete?: (ctx: Key_deleteContext) => void; + enterKeyDelete?: (ctx: KeyDeleteContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.key_delete`. + * Exit a parse tree produced by `PostgreSqlParser.keyDelete`. * @param ctx the parse tree */ - exitKey_delete?: (ctx: Key_deleteContext) => void; + exitKeyDelete?: (ctx: KeyDeleteContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.key_action`. + * Enter a parse tree produced by `PostgreSqlParser.keyAction`. * @param ctx the parse tree */ - enterKey_action?: (ctx: Key_actionContext) => void; + enterKeyAction?: (ctx: KeyActionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.key_action`. + * Exit a parse tree produced by `PostgreSqlParser.keyAction`. * @param ctx the parse tree */ - exitKey_action?: (ctx: Key_actionContext) => void; + exitKeyAction?: (ctx: KeyActionContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.optInherit`. * @param ctx the parse tree @@ -1353,25 +1306,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitPartitionSpec?: (ctx: PartitionSpecContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.part_elem`. + * Enter a parse tree produced by `PostgreSqlParser.partElem`. * @param ctx the parse tree */ - enterPart_elem?: (ctx: Part_elemContext) => void; + enterPartElem?: (ctx: PartElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.part_elem`. + * Exit a parse tree produced by `PostgreSqlParser.partElem`. * @param ctx the parse tree */ - exitPart_elem?: (ctx: Part_elemContext) => void; + exitPartElem?: (ctx: PartElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.table_access_method_clause`. + * Enter a parse tree produced by `PostgreSqlParser.tableAccessMethodClause`. * @param ctx the parse tree */ - enterTable_access_method_clause?: (ctx: Table_access_method_clauseContext) => void; + enterTableAccessMethodClause?: (ctx: TableAccessMethodClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.table_access_method_clause`. + * Exit a parse tree produced by `PostgreSqlParser.tableAccessMethodClause`. * @param ctx the parse tree */ - exitTable_access_method_clause?: (ctx: Table_access_method_clauseContext) => void; + exitTableAccessMethodClause?: (ctx: TableAccessMethodClauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.optWith`. * @param ctx the parse tree @@ -1455,25 +1408,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitQueryCreateTable?: (ctx: QueryCreateTableContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.create_as_target`. + * Enter a parse tree produced by `PostgreSqlParser.createAsTarget`. * @param ctx the parse tree */ - enterCreate_as_target?: (ctx: Create_as_targetContext) => void; + enterCreateAsTarget?: (ctx: CreateAsTargetContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.create_as_target`. + * Exit a parse tree produced by `PostgreSqlParser.createAsTarget`. * @param ctx the parse tree */ - exitCreate_as_target?: (ctx: Create_as_targetContext) => void; + exitCreateAsTarget?: (ctx: CreateAsTargetContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_with_data`. + * Enter a parse tree produced by `PostgreSqlParser.optWithData`. * @param ctx the parse tree */ - enterOpt_with_data?: (ctx: Opt_with_dataContext) => void; + enterOptWithData?: (ctx: OptWithDataContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_with_data`. + * Exit a parse tree produced by `PostgreSqlParser.optWithData`. * @param ctx the parse tree */ - exitOpt_with_data?: (ctx: Opt_with_dataContext) => void; + exitOptWithData?: (ctx: OptWithDataContext) => void; /** * Enter a parse tree produced by the `createMaterializedView` * labeled alternative in `PostgreSqlParser.createMaterializedViewStmt`. @@ -1597,15 +1550,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCreateFdwStmt?: (ctx: CreateFdwStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.fdw_option`. + * Enter a parse tree produced by `PostgreSqlParser.fdwOption`. * @param ctx the parse tree */ - enterFdw_option?: (ctx: Fdw_optionContext) => void; + enterFdwOption?: (ctx: FdwOptionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.fdw_option`. + * Exit a parse tree produced by `PostgreSqlParser.fdwOption`. * @param ctx the parse tree */ - exitFdw_option?: (ctx: Fdw_optionContext) => void; + exitFdwOption?: (ctx: FdwOptionContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.alterFdwStmt`. * @param ctx the parse tree @@ -1617,45 +1570,45 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAlterFdwStmt?: (ctx: AlterFdwStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.create_generic_options`. + * Enter a parse tree produced by `PostgreSqlParser.createGenericOptions`. * @param ctx the parse tree */ - enterCreate_generic_options?: (ctx: Create_generic_optionsContext) => void; + enterCreateGenericOptions?: (ctx: CreateGenericOptionsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.create_generic_options`. + * Exit a parse tree produced by `PostgreSqlParser.createGenericOptions`. * @param ctx the parse tree */ - exitCreate_generic_options?: (ctx: Create_generic_optionsContext) => void; + exitCreateGenericOptions?: (ctx: CreateGenericOptionsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alter_generic_options`. + * Enter a parse tree produced by `PostgreSqlParser.alterGenericOptions`. * @param ctx the parse tree */ - enterAlter_generic_options?: (ctx: Alter_generic_optionsContext) => void; + enterAlterGenericOptions?: (ctx: AlterGenericOptionsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alter_generic_options`. + * Exit a parse tree produced by `PostgreSqlParser.alterGenericOptions`. * @param ctx the parse tree */ - exitAlter_generic_options?: (ctx: Alter_generic_optionsContext) => void; + exitAlterGenericOptions?: (ctx: AlterGenericOptionsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alter_generic_option_elem`. + * Enter a parse tree produced by `PostgreSqlParser.alterGenericOptionElem`. * @param ctx the parse tree */ - enterAlter_generic_option_elem?: (ctx: Alter_generic_option_elemContext) => void; + enterAlterGenericOptionElem?: (ctx: AlterGenericOptionElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alter_generic_option_elem`. + * Exit a parse tree produced by `PostgreSqlParser.alterGenericOptionElem`. * @param ctx the parse tree */ - exitAlter_generic_option_elem?: (ctx: Alter_generic_option_elemContext) => void; + exitAlterGenericOptionElem?: (ctx: AlterGenericOptionElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.generic_option_elem`. + * Enter a parse tree produced by `PostgreSqlParser.genericOptionElem`. * @param ctx the parse tree */ - enterGeneric_option_elem?: (ctx: Generic_option_elemContext) => void; + enterGenericOptionElem?: (ctx: GenericOptionElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.generic_option_elem`. + * Exit a parse tree produced by `PostgreSqlParser.genericOptionElem`. * @param ctx the parse tree */ - exitGeneric_option_elem?: (ctx: Generic_option_elemContext) => void; + exitGenericOptionElem?: (ctx: GenericOptionElemContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.createForeignServerStmt`. * @param ctx the parse tree @@ -1667,15 +1620,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCreateForeignServerStmt?: (ctx: CreateForeignServerStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.foreign_server_version`. + * Enter a parse tree produced by `PostgreSqlParser.foreignServerVersion`. * @param ctx the parse tree */ - enterForeign_server_version?: (ctx: Foreign_server_versionContext) => void; + enterForeignServerVersion?: (ctx: ForeignServerVersionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.foreign_server_version`. + * Exit a parse tree produced by `PostgreSqlParser.foreignServerVersion`. * @param ctx the parse tree */ - exitForeign_server_version?: (ctx: Foreign_server_versionContext) => void; + exitForeignServerVersion?: (ctx: ForeignServerVersionContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.alterForeignServerStmt`. * @param ctx the parse tree @@ -1771,15 +1724,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAlterProcedureStmt?: (ctx: AlterProcedureStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.procedure_action`. + * Enter a parse tree produced by `PostgreSqlParser.procedureAction`. * @param ctx the parse tree */ - enterProcedure_action?: (ctx: Procedure_actionContext) => void; + enterProcedureAction?: (ctx: ProcedureActionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.procedure_action`. + * Exit a parse tree produced by `PostgreSqlParser.procedureAction`. * @param ctx the parse tree */ - exitProcedure_action?: (ctx: Procedure_actionContext) => void; + exitProcedureAction?: (ctx: ProcedureActionContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.rowSecurityOptionalExpr`. * @param ctx the parse tree @@ -1861,15 +1814,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitTriggerWhen?: (ctx: TriggerWhenContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.function_or_procedure`. + * Enter a parse tree produced by `PostgreSqlParser.functionOrProcedure`. * @param ctx the parse tree */ - enterFunction_or_procedure?: (ctx: Function_or_procedureContext) => void; + enterFunctionOrProcedure?: (ctx: FunctionOrProcedureContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.function_or_procedure`. + * Exit a parse tree produced by `PostgreSqlParser.functionOrProcedure`. * @param ctx the parse tree */ - exitFunction_or_procedure?: (ctx: Function_or_procedureContext) => void; + exitFunctionOrProcedure?: (ctx: FunctionOrProcedureContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.triggerFuncArgs`. * @param ctx the parse tree @@ -1911,15 +1864,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCreateEventTrigStmt?: (ctx: CreateEventTrigStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.event_trigger_when_item`. + * Enter a parse tree produced by `PostgreSqlParser.eventTriggerWhenItem`. * @param ctx the parse tree */ - enterEvent_trigger_when_item?: (ctx: Event_trigger_when_itemContext) => void; + enterEventTriggerWhenItem?: (ctx: EventTriggerWhenItemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.event_trigger_when_item`. + * Exit a parse tree produced by `PostgreSqlParser.eventTriggerWhenItem`. * @param ctx the parse tree */ - exitEvent_trigger_when_item?: (ctx: Event_trigger_when_itemContext) => void; + exitEventTriggerWhenItem?: (ctx: EventTriggerWhenItemContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.alterEventTrigStmt`. * @param ctx the parse tree @@ -1961,35 +1914,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitDefinition?: (ctx: DefinitionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.def_elem`. + * Enter a parse tree produced by `PostgreSqlParser.defElem`. * @param ctx the parse tree */ - enterDef_elem?: (ctx: Def_elemContext) => void; + enterDefElem?: (ctx: DefElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.def_elem`. + * Exit a parse tree produced by `PostgreSqlParser.defElem`. * @param ctx the parse tree */ - exitDef_elem?: (ctx: Def_elemContext) => void; + exitDefElem?: (ctx: DefElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.def_arg`. + * Enter a parse tree produced by `PostgreSqlParser.defArg`. * @param ctx the parse tree */ - enterDef_arg?: (ctx: Def_argContext) => void; + enterDefArg?: (ctx: DefArgContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.def_arg`. + * Exit a parse tree produced by `PostgreSqlParser.defArg`. * @param ctx the parse tree */ - exitDef_arg?: (ctx: Def_argContext) => void; + exitDefArg?: (ctx: DefArgContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.old_aggregate_elem`. + * Enter a parse tree produced by `PostgreSqlParser.oldAggregateElem`. * @param ctx the parse tree */ - enterOld_aggregate_elem?: (ctx: Old_aggregate_elemContext) => void; + enterOldAggregateElem?: (ctx: OldAggregateElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.old_aggregate_elem`. + * Exit a parse tree produced by `PostgreSqlParser.oldAggregateElem`. * @param ctx the parse tree */ - exitOld_aggregate_elem?: (ctx: Old_aggregate_elemContext) => void; + exitOldAggregateElem?: (ctx: OldAggregateElemContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.alterEnumStmt`. * @param ctx the parse tree @@ -2001,15 +1954,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAlterEnumStmt?: (ctx: AlterEnumStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_if_not_exists`. + * Enter a parse tree produced by `PostgreSqlParser.ifNotExists`. * @param ctx the parse tree */ - enterOpt_if_not_exists?: (ctx: Opt_if_not_existsContext) => void; + enterIfNotExists?: (ctx: IfNotExistsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_if_not_exists`. + * Exit a parse tree produced by `PostgreSqlParser.ifNotExists`. * @param ctx the parse tree */ - exitOpt_if_not_exists?: (ctx: Opt_if_not_existsContext) => void; + exitIfNotExists?: (ctx: IfNotExistsContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.createOperatorClassStmt`. * @param ctx the parse tree @@ -2081,45 +2034,45 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitDropStmt?: (ctx: DropStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.object_type_any_name`. + * Enter a parse tree produced by `PostgreSqlParser.objectTypeAnyName`. * @param ctx the parse tree */ - enterObject_type_any_name?: (ctx: Object_type_any_nameContext) => void; + enterObjectTypeAnyName?: (ctx: ObjectTypeAnyNameContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.object_type_any_name`. + * Exit a parse tree produced by `PostgreSqlParser.objectTypeAnyName`. * @param ctx the parse tree */ - exitObject_type_any_name?: (ctx: Object_type_any_nameContext) => void; + exitObjectTypeAnyName?: (ctx: ObjectTypeAnyNameContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.object_type_name`. + * Enter a parse tree produced by `PostgreSqlParser.objectTypeName`. * @param ctx the parse tree */ - enterObject_type_name?: (ctx: Object_type_nameContext) => void; + enterObjectTypeName?: (ctx: ObjectTypeNameContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.object_type_name`. + * Exit a parse tree produced by `PostgreSqlParser.objectTypeName`. * @param ctx the parse tree */ - exitObject_type_name?: (ctx: Object_type_nameContext) => void; + exitObjectTypeName?: (ctx: ObjectTypeNameContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.any_name_list`. + * Enter a parse tree produced by `PostgreSqlParser.anyNameList`. * @param ctx the parse tree */ - enterAny_name_list?: (ctx: Any_name_listContext) => void; + enterAnyNameList?: (ctx: AnyNameListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.any_name_list`. + * Exit a parse tree produced by `PostgreSqlParser.anyNameList`. * @param ctx the parse tree */ - exitAny_name_list?: (ctx: Any_name_listContext) => void; + exitAnyNameList?: (ctx: AnyNameListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.any_name`. + * Enter a parse tree produced by `PostgreSqlParser.anyName`. * @param ctx the parse tree */ - enterAny_name?: (ctx: Any_nameContext) => void; + enterAnyName?: (ctx: AnyNameContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.any_name`. + * Exit a parse tree produced by `PostgreSqlParser.anyName`. * @param ctx the parse tree */ - exitAny_name?: (ctx: Any_nameContext) => void; + exitAnyName?: (ctx: AnyNameContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.attrs`. * @param ctx the parse tree @@ -2141,15 +2094,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitTruncateStmt?: (ctx: TruncateStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.truncate_table`. + * Enter a parse tree produced by `PostgreSqlParser.truncateTable`. * @param ctx the parse tree */ - enterTruncate_table?: (ctx: Truncate_tableContext) => void; + enterTruncateTable?: (ctx: TruncateTableContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.truncate_table`. + * Exit a parse tree produced by `PostgreSqlParser.truncateTable`. * @param ctx the parse tree */ - exitTruncate_table?: (ctx: Truncate_tableContext) => void; + exitTruncateTable?: (ctx: TruncateTableContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.commentStmt`. * @param ctx the parse tree @@ -2191,15 +2144,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitFetch_args?: (ctx: Fetch_argsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.from_in`. + * Enter a parse tree produced by `PostgreSqlParser.fromIn`. * @param ctx the parse tree */ - enterFrom_in?: (ctx: From_inContext) => void; + enterFromIn?: (ctx: FromInContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.from_in`. + * Exit a parse tree produced by `PostgreSqlParser.fromIn`. * @param ctx the parse tree */ - exitFrom_in?: (ctx: From_inContext) => void; + exitFromIn?: (ctx: FromInContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.grantStmt`. * @param ctx the parse tree @@ -2251,25 +2204,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitPrivilege?: (ctx: PrivilegeContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.privilege_target`. + * Enter a parse tree produced by `PostgreSqlParser.privilegeTarget`. * @param ctx the parse tree */ - enterPrivilege_target?: (ctx: Privilege_targetContext) => void; + enterPrivilegeTarget?: (ctx: PrivilegeTargetContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.privilege_target`. + * Exit a parse tree produced by `PostgreSqlParser.privilegeTarget`. * @param ctx the parse tree */ - exitPrivilege_target?: (ctx: Privilege_targetContext) => void; + exitPrivilegeTarget?: (ctx: PrivilegeTargetContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.grantee_list`. + * Enter a parse tree produced by `PostgreSqlParser.granteeList`. * @param ctx the parse tree */ - enterGrantee_list?: (ctx: Grantee_listContext) => void; + enterGranteeList?: (ctx: GranteeListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.grantee_list`. + * Exit a parse tree produced by `PostgreSqlParser.granteeList`. * @param ctx the parse tree */ - exitGrantee_list?: (ctx: Grantee_listContext) => void; + exitGranteeList?: (ctx: GranteeListContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.grantRoleStmt`. * @param ctx the parse tree @@ -2311,15 +2264,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitDefaclaction?: (ctx: DefaclactionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.defacl_privilege_target`. + * Enter a parse tree produced by `PostgreSqlParser.defaclPrivilegeTarget`. * @param ctx the parse tree */ - enterDefacl_privilege_target?: (ctx: Defacl_privilege_targetContext) => void; + enterDefaclPrivilegeTarget?: (ctx: DefaclPrivilegeTargetContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.defacl_privilege_target`. + * Exit a parse tree produced by `PostgreSqlParser.defaclPrivilegeTarget`. * @param ctx the parse tree */ - exitDefacl_privilege_target?: (ctx: Defacl_privilege_targetContext) => void; + exitDefaclPrivilegeTarget?: (ctx: DefaclPrivilegeTargetContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.indexStmt`. * @param ctx the parse tree @@ -2331,25 +2284,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitIndexStmt?: (ctx: IndexStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.index_params`. + * Enter a parse tree produced by `PostgreSqlParser.indexParams`. * @param ctx the parse tree */ - enterIndex_params?: (ctx: Index_paramsContext) => void; + enterIndexParams?: (ctx: IndexParamsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.index_params`. + * Exit a parse tree produced by `PostgreSqlParser.indexParams`. * @param ctx the parse tree */ - exitIndex_params?: (ctx: Index_paramsContext) => void; + exitIndexParams?: (ctx: IndexParamsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.index_elem`. + * Enter a parse tree produced by `PostgreSqlParser.indexElem`. * @param ctx the parse tree */ - enterIndex_elem?: (ctx: Index_elemContext) => void; + enterIndexElem?: (ctx: IndexElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.index_elem`. + * Exit a parse tree produced by `PostgreSqlParser.indexElem`. * @param ctx the parse tree */ - exitIndex_elem?: (ctx: Index_elemContext) => void; + exitIndexElem?: (ctx: IndexElemContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.createFunctionStmt`. * @param ctx the parse tree @@ -2361,35 +2314,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCreateFunctionStmt?: (ctx: CreateFunctionStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_or_replace`. + * Enter a parse tree produced by `PostgreSqlParser.orReplaceOpt`. * @param ctx the parse tree */ - enterOpt_or_replace?: (ctx: Opt_or_replaceContext) => void; + enterOrReplaceOpt?: (ctx: OrReplaceOptContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_or_replace`. + * Exit a parse tree produced by `PostgreSqlParser.orReplaceOpt`. * @param ctx the parse tree */ - exitOpt_or_replace?: (ctx: Opt_or_replaceContext) => void; + exitOrReplaceOpt?: (ctx: OrReplaceOptContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_args`. + * Enter a parse tree produced by `PostgreSqlParser.funcArgs`. * @param ctx the parse tree */ - enterFunc_args?: (ctx: Func_argsContext) => void; + enterFuncArgs?: (ctx: FuncArgsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_args`. + * Exit a parse tree produced by `PostgreSqlParser.funcArgs`. * @param ctx the parse tree */ - exitFunc_args?: (ctx: Func_argsContext) => void; + exitFuncArgs?: (ctx: FuncArgsContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_args_list`. + * Enter a parse tree produced by `PostgreSqlParser.funcArgsList`. * @param ctx the parse tree */ - enterFunc_args_list?: (ctx: Func_args_listContext) => void; + enterFuncArgsList?: (ctx: FuncArgsListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_args_list`. + * Exit a parse tree produced by `PostgreSqlParser.funcArgsList`. * @param ctx the parse tree */ - exitFunc_args_list?: (ctx: Func_args_listContext) => void; + exitFuncArgsList?: (ctx: FuncArgsListContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.routineWithArgTypesList`. * @param ctx the parse tree @@ -2451,55 +2404,55 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitFunctionWithArgTypes?: (ctx: FunctionWithArgTypesContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_arg`. + * Enter a parse tree produced by `PostgreSqlParser.funcArg`. * @param ctx the parse tree */ - enterFunc_arg?: (ctx: Func_argContext) => void; + enterFuncArg?: (ctx: FuncArgContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_arg`. + * Exit a parse tree produced by `PostgreSqlParser.funcArg`. * @param ctx the parse tree */ - exitFunc_arg?: (ctx: Func_argContext) => void; + exitFuncArg?: (ctx: FuncArgContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.arg_class`. + * Enter a parse tree produced by `PostgreSqlParser.argClass`. * @param ctx the parse tree */ - enterArg_class?: (ctx: Arg_classContext) => void; + enterArgClass?: (ctx: ArgClassContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.arg_class`. + * Exit a parse tree produced by `PostgreSqlParser.argClass`. * @param ctx the parse tree */ - exitArg_class?: (ctx: Arg_classContext) => void; + exitArgClass?: (ctx: ArgClassContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_type`. + * Enter a parse tree produced by `PostgreSqlParser.funcType`. * @param ctx the parse tree */ - enterFunc_type?: (ctx: Func_typeContext) => void; + enterFuncType?: (ctx: FuncTypeContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_type`. + * Exit a parse tree produced by `PostgreSqlParser.funcType`. * @param ctx the parse tree */ - exitFunc_type?: (ctx: Func_typeContext) => void; + exitFuncType?: (ctx: FuncTypeContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_arg_with_default`. + * Enter a parse tree produced by `PostgreSqlParser.funcArgWithDefault`. * @param ctx the parse tree */ - enterFunc_arg_with_default?: (ctx: Func_arg_with_defaultContext) => void; + enterFuncArgWithDefault?: (ctx: FuncArgWithDefaultContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_arg_with_default`. + * Exit a parse tree produced by `PostgreSqlParser.funcArgWithDefault`. * @param ctx the parse tree */ - exitFunc_arg_with_default?: (ctx: Func_arg_with_defaultContext) => void; + exitFuncArgWithDefault?: (ctx: FuncArgWithDefaultContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.aggregate_args`. + * Enter a parse tree produced by `PostgreSqlParser.aggregateArgs`. * @param ctx the parse tree */ - enterAggregate_args?: (ctx: Aggregate_argsContext) => void; + enterAggregateArgs?: (ctx: AggregateArgsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.aggregate_args`. + * Exit a parse tree produced by `PostgreSqlParser.aggregateArgs`. * @param ctx the parse tree */ - exitAggregate_args?: (ctx: Aggregate_argsContext) => void; + exitAggregateArgs?: (ctx: AggregateArgsContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.aggregateWithArgTypes`. * @param ctx the parse tree @@ -2511,45 +2464,45 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAggregateWithArgTypes?: (ctx: AggregateWithArgTypesContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.common_func_opt_item`. + * Enter a parse tree produced by `PostgreSqlParser.commonFuncOptItem`. * @param ctx the parse tree */ - enterCommon_func_opt_item?: (ctx: Common_func_opt_itemContext) => void; + enterCommonFuncOptItem?: (ctx: CommonFuncOptItemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.common_func_opt_item`. + * Exit a parse tree produced by `PostgreSqlParser.commonFuncOptItem`. * @param ctx the parse tree */ - exitCommon_func_opt_item?: (ctx: Common_func_opt_itemContext) => void; + exitCommonFuncOptItem?: (ctx: CommonFuncOptItemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.create_func_opt_item`. + * Enter a parse tree produced by `PostgreSqlParser.createFuncOptItem`. * @param ctx the parse tree */ - enterCreate_func_opt_item?: (ctx: Create_func_opt_itemContext) => void; + enterCreateFuncOptItem?: (ctx: CreateFuncOptItemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.create_func_opt_item`. + * Exit a parse tree produced by `PostgreSqlParser.createFuncOptItem`. * @param ctx the parse tree */ - exitCreate_func_opt_item?: (ctx: Create_func_opt_itemContext) => void; + exitCreateFuncOptItem?: (ctx: CreateFuncOptItemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_definition`. + * Enter a parse tree produced by `PostgreSqlParser.optDefinition`. * @param ctx the parse tree */ - enterOpt_definition?: (ctx: Opt_definitionContext) => void; + enterOptDefinition?: (ctx: OptDefinitionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_definition`. + * Exit a parse tree produced by `PostgreSqlParser.optDefinition`. * @param ctx the parse tree */ - exitOpt_definition?: (ctx: Opt_definitionContext) => void; + exitOptDefinition?: (ctx: OptDefinitionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.table_func_column`. + * Enter a parse tree produced by `PostgreSqlParser.tableFuncColumn`. * @param ctx the parse tree */ - enterTable_func_column?: (ctx: Table_func_columnContext) => void; + enterTableFuncColumn?: (ctx: TableFuncColumnContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.table_func_column`. + * Exit a parse tree produced by `PostgreSqlParser.tableFuncColumn`. * @param ctx the parse tree */ - exitTable_func_column?: (ctx: Table_func_columnContext) => void; + exitTableFuncColumn?: (ctx: TableFuncColumnContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.alterFunctionStmt`. * @param ctx the parse tree @@ -2601,15 +2554,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitOperatorArgTypes?: (ctx: OperatorArgTypesContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.any_operator`. + * Enter a parse tree produced by `PostgreSqlParser.anyOperator`. * @param ctx the parse tree */ - enterAny_operator?: (ctx: Any_operatorContext) => void; + enterAnyOperator?: (ctx: AnyOperatorContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.any_operator`. + * Exit a parse tree produced by `PostgreSqlParser.anyOperator`. * @param ctx the parse tree */ - exitAny_operator?: (ctx: Any_operatorContext) => void; + exitAnyOperator?: (ctx: AnyOperatorContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.operatorWithArgTypes`. * @param ctx the parse tree @@ -2641,15 +2594,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCreateCastStmt?: (ctx: CreateCastStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_if_exists`. + * Enter a parse tree produced by `PostgreSqlParser.ifExists`. * @param ctx the parse tree */ - enterOpt_if_exists?: (ctx: Opt_if_existsContext) => void; + enterIfExists?: (ctx: IfExistsContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_if_exists`. + * Exit a parse tree produced by `PostgreSqlParser.ifExists`. * @param ctx the parse tree */ - exitOpt_if_exists?: (ctx: Opt_if_existsContext) => void; + exitIfExists?: (ctx: IfExistsContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.createTransformStmt`. * @param ctx the parse tree @@ -2661,15 +2614,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCreateTransformStmt?: (ctx: CreateTransformStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.sql_with_function`. + * Enter a parse tree produced by `PostgreSqlParser.sqlWithFunction`. * @param ctx the parse tree */ - enterSql_with_function?: (ctx: Sql_with_functionContext) => void; + enterSqlWithFunction?: (ctx: SqlWithFunctionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.sql_with_function`. + * Exit a parse tree produced by `PostgreSqlParser.sqlWithFunction`. * @param ctx the parse tree */ - exitSql_with_function?: (ctx: Sql_with_functionContext) => void; + exitSqlWithFunction?: (ctx: SqlWithFunctionContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.reindexStmt`. * @param ctx the parse tree @@ -2731,25 +2684,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAlterOperatorStmt?: (ctx: AlterOperatorStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.operator_def_list`. + * Enter a parse tree produced by `PostgreSqlParser.operatorDefList`. * @param ctx the parse tree */ - enterOperator_def_list?: (ctx: Operator_def_listContext) => void; + enterOperatorDefList?: (ctx: OperatorDefListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.operator_def_list`. + * Exit a parse tree produced by `PostgreSqlParser.operatorDefList`. * @param ctx the parse tree */ - exitOperator_def_list?: (ctx: Operator_def_listContext) => void; + exitOperatorDefList?: (ctx: OperatorDefListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.operator_def_elem`. + * Enter a parse tree produced by `PostgreSqlParser.operatorDefElem`. * @param ctx the parse tree */ - enterOperator_def_elem?: (ctx: Operator_def_elemContext) => void; + enterOperatorDefElem?: (ctx: OperatorDefElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.operator_def_elem`. + * Exit a parse tree produced by `PostgreSqlParser.operatorDefElem`. * @param ctx the parse tree */ - exitOperator_def_elem?: (ctx: Operator_def_elemContext) => void; + exitOperatorDefElem?: (ctx: OperatorDefElemContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.alterTypeStmt`. * @param ctx the parse tree @@ -2841,15 +2794,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitNotifyStmt?: (ctx: NotifyStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.notify_payload`. + * Enter a parse tree produced by `PostgreSqlParser.notifyPayload`. * @param ctx the parse tree */ - enterNotify_payload?: (ctx: Notify_payloadContext) => void; + enterNotifyPayload?: (ctx: NotifyPayloadContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.notify_payload`. + * Exit a parse tree produced by `PostgreSqlParser.notifyPayload`. * @param ctx the parse tree */ - exitNotify_payload?: (ctx: Notify_payloadContext) => void; + exitNotifyPayload?: (ctx: NotifyPayloadContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.listenStmt`. * @param ctx the parse tree @@ -2881,35 +2834,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitTransactionStmt?: (ctx: TransactionStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_transaction`. + * Enter a parse tree produced by `PostgreSqlParser.optTransaction`. * @param ctx the parse tree */ - enterOpt_transaction?: (ctx: Opt_transactionContext) => void; + enterOptTransaction?: (ctx: OptTransactionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_transaction`. + * Exit a parse tree produced by `PostgreSqlParser.optTransaction`. * @param ctx the parse tree */ - exitOpt_transaction?: (ctx: Opt_transactionContext) => void; + exitOptTransaction?: (ctx: OptTransactionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.transaction_mode_item`. + * Enter a parse tree produced by `PostgreSqlParser.transactionModeItem`. * @param ctx the parse tree */ - enterTransaction_mode_item?: (ctx: Transaction_mode_itemContext) => void; + enterTransactionModeItem?: (ctx: TransactionModeItemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.transaction_mode_item`. + * Exit a parse tree produced by `PostgreSqlParser.transactionModeItem`. * @param ctx the parse tree */ - exitTransaction_mode_item?: (ctx: Transaction_mode_itemContext) => void; + exitTransactionModeItem?: (ctx: TransactionModeItemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.transaction_mode_list`. + * Enter a parse tree produced by `PostgreSqlParser.transactionModeList`. * @param ctx the parse tree */ - enterTransaction_mode_list?: (ctx: Transaction_mode_listContext) => void; + enterTransactionModeList?: (ctx: TransactionModeListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.transaction_mode_list`. + * Exit a parse tree produced by `PostgreSqlParser.transactionModeList`. * @param ctx the parse tree */ - exitTransaction_mode_list?: (ctx: Transaction_mode_listContext) => void; + exitTransactionModeList?: (ctx: TransactionModeListContext) => void; /** * Enter a parse tree produced by the `createView` * labeled alternative in `PostgreSqlParser.viewStmt`. @@ -2945,15 +2898,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitCreateDatabase?: (ctx: CreateDatabaseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.create_db_opt_item`. + * Enter a parse tree produced by `PostgreSqlParser.createDbOptItem`. * @param ctx the parse tree */ - enterCreate_db_opt_item?: (ctx: Create_db_opt_itemContext) => void; + enterCreateDbOptItem?: (ctx: CreateDbOptItemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.create_db_opt_item`. + * Exit a parse tree produced by `PostgreSqlParser.createDbOptItem`. * @param ctx the parse tree */ - exitCreate_db_opt_item?: (ctx: Create_db_opt_itemContext) => void; + exitCreateDbOptItem?: (ctx: CreateDbOptItemContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.alterDatabaseStmt`. * @param ctx the parse tree @@ -3075,65 +3028,65 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitAnalyzeStmt?: (ctx: AnalyzeStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.analyze_keyword`. + * Enter a parse tree produced by `PostgreSqlParser.analyzeKeyword`. * @param ctx the parse tree */ - enterAnalyze_keyword?: (ctx: Analyze_keywordContext) => void; + enterAnalyzeKeyword?: (ctx: AnalyzeKeywordContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.analyze_keyword`. + * Exit a parse tree produced by `PostgreSqlParser.analyzeKeyword`. * @param ctx the parse tree */ - exitAnalyze_keyword?: (ctx: Analyze_keywordContext) => void; + exitAnalyzeKeyword?: (ctx: AnalyzeKeywordContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.vac_analyze_option_elem`. + * Enter a parse tree produced by `PostgreSqlParser.vacAnalyzeOptionElem`. * @param ctx the parse tree */ - enterVac_analyze_option_elem?: (ctx: Vac_analyze_option_elemContext) => void; + enterVacAnalyzeOptionElem?: (ctx: VacAnalyzeOptionElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.vac_analyze_option_elem`. + * Exit a parse tree produced by `PostgreSqlParser.vacAnalyzeOptionElem`. * @param ctx the parse tree */ - exitVac_analyze_option_elem?: (ctx: Vac_analyze_option_elemContext) => void; + exitVacAnalyzeOptionElem?: (ctx: VacAnalyzeOptionElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.analyze_option_elem`. + * Enter a parse tree produced by `PostgreSqlParser.analyzeOptionElem`. * @param ctx the parse tree */ - enterAnalyze_option_elem?: (ctx: Analyze_option_elemContext) => void; + enterAnalyzeOptionElem?: (ctx: AnalyzeOptionElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.analyze_option_elem`. + * Exit a parse tree produced by `PostgreSqlParser.analyzeOptionElem`. * @param ctx the parse tree */ - exitAnalyze_option_elem?: (ctx: Analyze_option_elemContext) => void; + exitAnalyzeOptionElem?: (ctx: AnalyzeOptionElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_verbose`. + * Enter a parse tree produced by `PostgreSqlParser.optVerbose`. * @param ctx the parse tree */ - enterOpt_verbose?: (ctx: Opt_verboseContext) => void; + enterOptVerbose?: (ctx: OptVerboseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_verbose`. + * Exit a parse tree produced by `PostgreSqlParser.optVerbose`. * @param ctx the parse tree */ - exitOpt_verbose?: (ctx: Opt_verboseContext) => void; + exitOptVerbose?: (ctx: OptVerboseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.vacuum_relation`. + * Enter a parse tree produced by `PostgreSqlParser.vacuumRelation`. * @param ctx the parse tree */ - enterVacuum_relation?: (ctx: Vacuum_relationContext) => void; + enterVacuumRelation?: (ctx: VacuumRelationContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.vacuum_relation`. + * Exit a parse tree produced by `PostgreSqlParser.vacuumRelation`. * @param ctx the parse tree */ - exitVacuum_relation?: (ctx: Vacuum_relationContext) => void; + exitVacuumRelation?: (ctx: VacuumRelationContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.vacuum_relation_list`. + * Enter a parse tree produced by `PostgreSqlParser.vacuumRelationList`. * @param ctx the parse tree */ - enterVacuum_relation_list?: (ctx: Vacuum_relation_listContext) => void; + enterVacuumRelationList?: (ctx: VacuumRelationListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.vacuum_relation_list`. + * Exit a parse tree produced by `PostgreSqlParser.vacuumRelationList`. * @param ctx the parse tree */ - exitVacuum_relation_list?: (ctx: Vacuum_relation_listContext) => void; + exitVacuumRelationList?: (ctx: VacuumRelationListContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.explainStmt`. * @param ctx the parse tree @@ -3155,15 +3108,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitExplainableStmt?: (ctx: ExplainableStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.explain_option_list`. + * Enter a parse tree produced by `PostgreSqlParser.explainOptionList`. * @param ctx the parse tree */ - enterExplain_option_list?: (ctx: Explain_option_listContext) => void; + enterExplainOptionList?: (ctx: ExplainOptionListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.explain_option_list`. + * Exit a parse tree produced by `PostgreSqlParser.explainOptionList`. * @param ctx the parse tree */ - exitExplain_option_list?: (ctx: Explain_option_listContext) => void; + exitExplainOptionList?: (ctx: ExplainOptionListContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.prepareStmt`. * @param ctx the parse tree @@ -3175,15 +3128,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitPrepareStmt?: (ctx: PrepareStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.prep_type_clause`. + * Enter a parse tree produced by `PostgreSqlParser.prepTypeClause`. * @param ctx the parse tree */ - enterPrep_type_clause?: (ctx: Prep_type_clauseContext) => void; + enterPrepTypeClause?: (ctx: PrepTypeClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.prep_type_clause`. + * Exit a parse tree produced by `PostgreSqlParser.prepTypeClause`. * @param ctx the parse tree */ - exitPrep_type_clause?: (ctx: Prep_type_clauseContext) => void; + exitPrepTypeClause?: (ctx: PrepTypeClauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.preParableStmt`. * @param ctx the parse tree @@ -3205,15 +3158,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitExecuteStmt?: (ctx: ExecuteStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.execute_param_clause`. + * Enter a parse tree produced by `PostgreSqlParser.executeParamClause`. * @param ctx the parse tree */ - enterExecute_param_clause?: (ctx: Execute_param_clauseContext) => void; + enterExecuteParamClause?: (ctx: ExecuteParamClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.execute_param_clause`. + * Exit a parse tree produced by `PostgreSqlParser.executeParamClause`. * @param ctx the parse tree */ - exitExecute_param_clause?: (ctx: Execute_param_clauseContext) => void; + exitExecuteParamClause?: (ctx: ExecuteParamClauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.dealLocateStmt`. * @param ctx the parse tree @@ -3237,45 +3190,45 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitInsertStatement?: (ctx: InsertStatementContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.insert_rest`. + * Enter a parse tree produced by `PostgreSqlParser.insertRest`. * @param ctx the parse tree */ - enterInsert_rest?: (ctx: Insert_restContext) => void; + enterInsertRest?: (ctx: InsertRestContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.insert_rest`. + * Exit a parse tree produced by `PostgreSqlParser.insertRest`. * @param ctx the parse tree */ - exitInsert_rest?: (ctx: Insert_restContext) => void; + exitInsertRest?: (ctx: InsertRestContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.insert_column_list`. + * Enter a parse tree produced by `PostgreSqlParser.insertColumnList`. * @param ctx the parse tree */ - enterInsert_column_list?: (ctx: Insert_column_listContext) => void; + enterInsertColumnList?: (ctx: InsertColumnListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.insert_column_list`. + * Exit a parse tree produced by `PostgreSqlParser.insertColumnList`. * @param ctx the parse tree */ - exitInsert_column_list?: (ctx: Insert_column_listContext) => void; + exitInsertColumnList?: (ctx: InsertColumnListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.insert_column_item`. + * Enter a parse tree produced by `PostgreSqlParser.insertColumnItem`. * @param ctx the parse tree */ - enterInsert_column_item?: (ctx: Insert_column_itemContext) => void; + enterInsertColumnItem?: (ctx: InsertColumnItemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.insert_column_item`. + * Exit a parse tree produced by `PostgreSqlParser.insertColumnItem`. * @param ctx the parse tree */ - exitInsert_column_item?: (ctx: Insert_column_itemContext) => void; + exitInsertColumnItem?: (ctx: InsertColumnItemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.returning_clause`. + * Enter a parse tree produced by `PostgreSqlParser.returningClause`. * @param ctx the parse tree */ - enterReturning_clause?: (ctx: Returning_clauseContext) => void; + enterReturningClause?: (ctx: ReturningClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.returning_clause`. + * Exit a parse tree produced by `PostgreSqlParser.returningClause`. * @param ctx the parse tree */ - exitReturning_clause?: (ctx: Returning_clauseContext) => void; + exitReturningClause?: (ctx: ReturningClauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.deleteStmt`. * @param ctx the parse tree @@ -3307,25 +3260,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitUpdateStmt?: (ctx: UpdateStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.set_clause_list`. + * Enter a parse tree produced by `PostgreSqlParser.setClauseList`. * @param ctx the parse tree */ - enterSet_clause_list?: (ctx: Set_clause_listContext) => void; + enterSetClauseList?: (ctx: SetClauseListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.set_clause_list`. + * Exit a parse tree produced by `PostgreSqlParser.setClauseList`. * @param ctx the parse tree */ - exitSet_clause_list?: (ctx: Set_clause_listContext) => void; + exitSetClauseList?: (ctx: SetClauseListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.set_clause`. + * Enter a parse tree produced by `PostgreSqlParser.setClause`. * @param ctx the parse tree */ - enterSet_clause?: (ctx: Set_clauseContext) => void; + enterSetClause?: (ctx: SetClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.set_clause`. + * Exit a parse tree produced by `PostgreSqlParser.setClause`. * @param ctx the parse tree */ - exitSet_clause?: (ctx: Set_clauseContext) => void; + exitSetClause?: (ctx: SetClauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.declareCursorStmt`. * @param ctx the parse tree @@ -3349,105 +3302,105 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitSelectStatement?: (ctx: SelectStatementContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.select_with_parens`. + * Enter a parse tree produced by `PostgreSqlParser.selectWithParens`. * @param ctx the parse tree */ - enterSelect_with_parens?: (ctx: Select_with_parensContext) => void; + enterSelectWithParens?: (ctx: SelectWithParensContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.select_with_parens`. + * Exit a parse tree produced by `PostgreSqlParser.selectWithParens`. * @param ctx the parse tree */ - exitSelect_with_parens?: (ctx: Select_with_parensContext) => void; + exitSelectWithParens?: (ctx: SelectWithParensContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.select_no_parens`. + * Enter a parse tree produced by `PostgreSqlParser.selectNoParens`. * @param ctx the parse tree */ - enterSelect_no_parens?: (ctx: Select_no_parensContext) => void; + enterSelectNoParens?: (ctx: SelectNoParensContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.select_no_parens`. + * Exit a parse tree produced by `PostgreSqlParser.selectNoParens`. * @param ctx the parse tree */ - exitSelect_no_parens?: (ctx: Select_no_parensContext) => void; + exitSelectNoParens?: (ctx: SelectNoParensContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.select_clause`. + * Enter a parse tree produced by `PostgreSqlParser.selectClause`. * @param ctx the parse tree */ - enterSelect_clause?: (ctx: Select_clauseContext) => void; + enterSelectClause?: (ctx: SelectClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.select_clause`. + * Exit a parse tree produced by `PostgreSqlParser.selectClause`. * @param ctx the parse tree */ - exitSelect_clause?: (ctx: Select_clauseContext) => void; + exitSelectClause?: (ctx: SelectClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.simple_select`. + * Enter a parse tree produced by `PostgreSqlParser.simpleSelect`. * @param ctx the parse tree */ - enterSimple_select?: (ctx: Simple_selectContext) => void; + enterSimpleSelect?: (ctx: SimpleSelectContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.simple_select`. + * Exit a parse tree produced by `PostgreSqlParser.simpleSelect`. * @param ctx the parse tree */ - exitSimple_select?: (ctx: Simple_selectContext) => void; + exitSimpleSelect?: (ctx: SimpleSelectContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.set_operator_with_all_or_distinct`. + * Enter a parse tree produced by `PostgreSqlParser.setOperatorWithAllOrDistinct`. * @param ctx the parse tree */ - enterSet_operator_with_all_or_distinct?: (ctx: Set_operator_with_all_or_distinctContext) => void; + enterSetOperatorWithAllOrDistinct?: (ctx: SetOperatorWithAllOrDistinctContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.set_operator_with_all_or_distinct`. + * Exit a parse tree produced by `PostgreSqlParser.setOperatorWithAllOrDistinct`. * @param ctx the parse tree */ - exitSet_operator_with_all_or_distinct?: (ctx: Set_operator_with_all_or_distinctContext) => void; + exitSetOperatorWithAllOrDistinct?: (ctx: SetOperatorWithAllOrDistinctContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.with_clause`. + * Enter a parse tree produced by `PostgreSqlParser.withClause`. * @param ctx the parse tree */ - enterWith_clause?: (ctx: With_clauseContext) => void; + enterWithClause?: (ctx: WithClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.with_clause`. + * Exit a parse tree produced by `PostgreSqlParser.withClause`. * @param ctx the parse tree */ - exitWith_clause?: (ctx: With_clauseContext) => void; + exitWithClause?: (ctx: WithClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.common_table_expr`. + * Enter a parse tree produced by `PostgreSqlParser.commonTableExpr`. * @param ctx the parse tree */ - enterCommon_table_expr?: (ctx: Common_table_exprContext) => void; + enterCommonTableExpr?: (ctx: CommonTableExprContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.common_table_expr`. + * Exit a parse tree produced by `PostgreSqlParser.commonTableExpr`. * @param ctx the parse tree */ - exitCommon_table_expr?: (ctx: Common_table_exprContext) => void; + exitCommonTableExpr?: (ctx: CommonTableExprContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.search_clause`. + * Enter a parse tree produced by `PostgreSqlParser.searchClause`. * @param ctx the parse tree */ - enterSearch_clause?: (ctx: Search_clauseContext) => void; + enterSearchClause?: (ctx: SearchClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.search_clause`. + * Exit a parse tree produced by `PostgreSqlParser.searchClause`. * @param ctx the parse tree */ - exitSearch_clause?: (ctx: Search_clauseContext) => void; + exitSearchClause?: (ctx: SearchClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.cycle_clause`. + * Enter a parse tree produced by `PostgreSqlParser.cycleClause`. * @param ctx the parse tree */ - enterCycle_clause?: (ctx: Cycle_clauseContext) => void; + enterCycleClause?: (ctx: CycleClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.cycle_clause`. + * Exit a parse tree produced by `PostgreSqlParser.cycleClause`. * @param ctx the parse tree */ - exitCycle_clause?: (ctx: Cycle_clauseContext) => void; + exitCycleClause?: (ctx: CycleClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.into_clause`. + * Enter a parse tree produced by `PostgreSqlParser.intoClause`. * @param ctx the parse tree */ - enterInto_clause?: (ctx: Into_clauseContext) => void; + enterIntoClause?: (ctx: IntoClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.into_clause`. + * Exit a parse tree produced by `PostgreSqlParser.intoClause`. * @param ctx the parse tree */ - exitInto_clause?: (ctx: Into_clauseContext) => void; + exitIntoClause?: (ctx: IntoClauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.optTempTableName`. * @param ctx the parse tree @@ -3459,25 +3412,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitOptTempTableName?: (ctx: OptTempTableNameContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.distinct_clause`. + * Enter a parse tree produced by `PostgreSqlParser.distinctClause`. * @param ctx the parse tree */ - enterDistinct_clause?: (ctx: Distinct_clauseContext) => void; + enterDistinctClause?: (ctx: DistinctClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.distinct_clause`. + * Exit a parse tree produced by `PostgreSqlParser.distinctClause`. * @param ctx the parse tree */ - exitDistinct_clause?: (ctx: Distinct_clauseContext) => void; + exitDistinctClause?: (ctx: DistinctClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.sort_clause`. + * Enter a parse tree produced by `PostgreSqlParser.sortClause`. * @param ctx the parse tree */ - enterSort_clause?: (ctx: Sort_clauseContext) => void; + enterSortClause?: (ctx: SortClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.sort_clause`. + * Exit a parse tree produced by `PostgreSqlParser.sortClause`. * @param ctx the parse tree */ - exitSort_clause?: (ctx: Sort_clauseContext) => void; + exitSortClause?: (ctx: SortClauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.sortBy`. * @param ctx the parse tree @@ -3489,215 +3442,215 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitSortBy?: (ctx: SortByContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.select_limit`. + * Enter a parse tree produced by `PostgreSqlParser.selectLimit`. * @param ctx the parse tree */ - enterSelect_limit?: (ctx: Select_limitContext) => void; + enterSelectLimit?: (ctx: SelectLimitContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.select_limit`. + * Exit a parse tree produced by `PostgreSqlParser.selectLimit`. * @param ctx the parse tree */ - exitSelect_limit?: (ctx: Select_limitContext) => void; + exitSelectLimit?: (ctx: SelectLimitContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.limit_clause`. + * Enter a parse tree produced by `PostgreSqlParser.limitClause`. * @param ctx the parse tree */ - enterLimit_clause?: (ctx: Limit_clauseContext) => void; + enterLimitClause?: (ctx: LimitClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.limit_clause`. + * Exit a parse tree produced by `PostgreSqlParser.limitClause`. * @param ctx the parse tree */ - exitLimit_clause?: (ctx: Limit_clauseContext) => void; + exitLimitClause?: (ctx: LimitClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.fetch_clause`. + * Enter a parse tree produced by `PostgreSqlParser.fetchClause`. * @param ctx the parse tree */ - enterFetch_clause?: (ctx: Fetch_clauseContext) => void; + enterFetchClause?: (ctx: FetchClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.fetch_clause`. + * Exit a parse tree produced by `PostgreSqlParser.fetchClause`. * @param ctx the parse tree */ - exitFetch_clause?: (ctx: Fetch_clauseContext) => void; + exitFetchClause?: (ctx: FetchClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.offset_clause`. + * Enter a parse tree produced by `PostgreSqlParser.offsetClause`. * @param ctx the parse tree */ - enterOffset_clause?: (ctx: Offset_clauseContext) => void; + enterOffsetClause?: (ctx: OffsetClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.offset_clause`. + * Exit a parse tree produced by `PostgreSqlParser.offsetClause`. * @param ctx the parse tree */ - exitOffset_clause?: (ctx: Offset_clauseContext) => void; + exitOffsetClause?: (ctx: OffsetClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.select_fetch_first_value`. + * Enter a parse tree produced by `PostgreSqlParser.selectFetchFirstValue`. * @param ctx the parse tree */ - enterSelect_fetch_first_value?: (ctx: Select_fetch_first_valueContext) => void; + enterSelectFetchFirstValue?: (ctx: SelectFetchFirstValueContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.select_fetch_first_value`. + * Exit a parse tree produced by `PostgreSqlParser.selectFetchFirstValue`. * @param ctx the parse tree */ - exitSelect_fetch_first_value?: (ctx: Select_fetch_first_valueContext) => void; + exitSelectFetchFirstValue?: (ctx: SelectFetchFirstValueContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.group_clause`. + * Enter a parse tree produced by `PostgreSqlParser.groupClause`. * @param ctx the parse tree */ - enterGroup_clause?: (ctx: Group_clauseContext) => void; + enterGroupClause?: (ctx: GroupClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.group_clause`. + * Exit a parse tree produced by `PostgreSqlParser.groupClause`. * @param ctx the parse tree */ - exitGroup_clause?: (ctx: Group_clauseContext) => void; + exitGroupClause?: (ctx: GroupClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.group_by_list`. + * Enter a parse tree produced by `PostgreSqlParser.groupByList`. * @param ctx the parse tree */ - enterGroup_by_list?: (ctx: Group_by_listContext) => void; + enterGroupByList?: (ctx: GroupByListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.group_by_list`. + * Exit a parse tree produced by `PostgreSqlParser.groupByList`. * @param ctx the parse tree */ - exitGroup_by_list?: (ctx: Group_by_listContext) => void; + exitGroupByList?: (ctx: GroupByListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.group_by_item`. + * Enter a parse tree produced by `PostgreSqlParser.groupByItem`. * @param ctx the parse tree */ - enterGroup_by_item?: (ctx: Group_by_itemContext) => void; + enterGroupByItem?: (ctx: GroupByItemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.group_by_item`. + * Exit a parse tree produced by `PostgreSqlParser.groupByItem`. * @param ctx the parse tree */ - exitGroup_by_item?: (ctx: Group_by_itemContext) => void; + exitGroupByItem?: (ctx: GroupByItemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.for_locking_clause`. + * Enter a parse tree produced by `PostgreSqlParser.forLockingClause`. * @param ctx the parse tree */ - enterFor_locking_clause?: (ctx: For_locking_clauseContext) => void; + enterForLockingClause?: (ctx: ForLockingClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.for_locking_clause`. + * Exit a parse tree produced by `PostgreSqlParser.forLockingClause`. * @param ctx the parse tree */ - exitFor_locking_clause?: (ctx: For_locking_clauseContext) => void; + exitForLockingClause?: (ctx: ForLockingClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.values_clause`. + * Enter a parse tree produced by `PostgreSqlParser.valuesClause`. * @param ctx the parse tree */ - enterValues_clause?: (ctx: Values_clauseContext) => void; + enterValuesClause?: (ctx: ValuesClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.values_clause`. + * Exit a parse tree produced by `PostgreSqlParser.valuesClause`. * @param ctx the parse tree */ - exitValues_clause?: (ctx: Values_clauseContext) => void; + exitValuesClause?: (ctx: ValuesClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.from_clause`. + * Enter a parse tree produced by `PostgreSqlParser.fromClause`. * @param ctx the parse tree */ - enterFrom_clause?: (ctx: From_clauseContext) => void; + enterFromClause?: (ctx: FromClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.from_clause`. + * Exit a parse tree produced by `PostgreSqlParser.fromClause`. * @param ctx the parse tree */ - exitFrom_clause?: (ctx: From_clauseContext) => void; + exitFromClause?: (ctx: FromClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.from_list`. + * Enter a parse tree produced by `PostgreSqlParser.fromList`. * @param ctx the parse tree */ - enterFrom_list?: (ctx: From_listContext) => void; + enterFromList?: (ctx: FromListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.from_list`. + * Exit a parse tree produced by `PostgreSqlParser.fromList`. * @param ctx the parse tree */ - exitFrom_list?: (ctx: From_listContext) => void; + exitFromList?: (ctx: FromListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.table_ref`. + * Enter a parse tree produced by `PostgreSqlParser.tableRef`. * @param ctx the parse tree */ - enterTable_ref?: (ctx: Table_refContext) => void; + enterTableRef?: (ctx: TableRefContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.table_ref`. + * Exit a parse tree produced by `PostgreSqlParser.tableRef`. * @param ctx the parse tree */ - exitTable_ref?: (ctx: Table_refContext) => void; + exitTableRef?: (ctx: TableRefContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.alias_clause`. + * Enter a parse tree produced by `PostgreSqlParser.aliasClause`. * @param ctx the parse tree */ - enterAlias_clause?: (ctx: Alias_clauseContext) => void; + enterAliasClause?: (ctx: AliasClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.alias_clause`. + * Exit a parse tree produced by `PostgreSqlParser.aliasClause`. * @param ctx the parse tree */ - exitAlias_clause?: (ctx: Alias_clauseContext) => void; + exitAliasClause?: (ctx: AliasClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_alias_clause`. + * Enter a parse tree produced by `PostgreSqlParser.funcAliasClause`. * @param ctx the parse tree */ - enterFunc_alias_clause?: (ctx: Func_alias_clauseContext) => void; + enterFuncAliasClause?: (ctx: FuncAliasClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_alias_clause`. + * Exit a parse tree produced by `PostgreSqlParser.funcAliasClause`. * @param ctx the parse tree */ - exitFunc_alias_clause?: (ctx: Func_alias_clauseContext) => void; + exitFuncAliasClause?: (ctx: FuncAliasClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.join_type`. + * Enter a parse tree produced by `PostgreSqlParser.joinType`. * @param ctx the parse tree */ - enterJoin_type?: (ctx: Join_typeContext) => void; + enterJoinType?: (ctx: JoinTypeContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.join_type`. + * Exit a parse tree produced by `PostgreSqlParser.joinType`. * @param ctx the parse tree */ - exitJoin_type?: (ctx: Join_typeContext) => void; + exitJoinType?: (ctx: JoinTypeContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.join_qual`. + * Enter a parse tree produced by `PostgreSqlParser.joinQual`. * @param ctx the parse tree */ - enterJoin_qual?: (ctx: Join_qualContext) => void; + enterJoinQual?: (ctx: JoinQualContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.join_qual`. + * Exit a parse tree produced by `PostgreSqlParser.joinQual`. * @param ctx the parse tree */ - exitJoin_qual?: (ctx: Join_qualContext) => void; + exitJoinQual?: (ctx: JoinQualContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.relation_expr`. + * Enter a parse tree produced by `PostgreSqlParser.relationExpr`. * @param ctx the parse tree */ - enterRelation_expr?: (ctx: Relation_exprContext) => void; + enterRelationExpr?: (ctx: RelationExprContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.relation_expr`. + * Exit a parse tree produced by `PostgreSqlParser.relationExpr`. * @param ctx the parse tree */ - exitRelation_expr?: (ctx: Relation_exprContext) => void; + exitRelationExpr?: (ctx: RelationExprContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.publication_relation_expr`. + * Enter a parse tree produced by `PostgreSqlParser.publicationRelationExpr`. * @param ctx the parse tree */ - enterPublication_relation_expr?: (ctx: Publication_relation_exprContext) => void; + enterPublicationRelationExpr?: (ctx: PublicationRelationExprContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.publication_relation_expr`. + * Exit a parse tree produced by `PostgreSqlParser.publicationRelationExpr`. * @param ctx the parse tree */ - exitPublication_relation_expr?: (ctx: Publication_relation_exprContext) => void; + exitPublicationRelationExpr?: (ctx: PublicationRelationExprContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.relation_expr_list`. + * Enter a parse tree produced by `PostgreSqlParser.relationExprList`. * @param ctx the parse tree */ - enterRelation_expr_list?: (ctx: Relation_expr_listContext) => void; + enterRelationExprList?: (ctx: RelationExprListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.relation_expr_list`. + * Exit a parse tree produced by `PostgreSqlParser.relationExprList`. * @param ctx the parse tree */ - exitRelation_expr_list?: (ctx: Relation_expr_listContext) => void; + exitRelationExprList?: (ctx: RelationExprListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.relation_expr_opt_alias`. + * Enter a parse tree produced by `PostgreSqlParser.relationExprOptAlias`. * @param ctx the parse tree */ - enterRelation_expr_opt_alias?: (ctx: Relation_expr_opt_aliasContext) => void; + enterRelationExprOptAlias?: (ctx: RelationExprOptAliasContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.relation_expr_opt_alias`. + * Exit a parse tree produced by `PostgreSqlParser.relationExprOptAlias`. * @param ctx the parse tree */ - exitRelation_expr_opt_alias?: (ctx: Relation_expr_opt_aliasContext) => void; + exitRelationExprOptAlias?: (ctx: RelationExprOptAliasContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.tableSampleClause`. * @param ctx the parse tree @@ -3709,15 +3662,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitTableSampleClause?: (ctx: TableSampleClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_table`. + * Enter a parse tree produced by `PostgreSqlParser.funcTable`. * @param ctx the parse tree */ - enterFunc_table?: (ctx: Func_tableContext) => void; + enterFuncTable?: (ctx: FuncTableContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_table`. + * Exit a parse tree produced by `PostgreSqlParser.funcTable`. * @param ctx the parse tree */ - exitFunc_table?: (ctx: Func_tableContext) => void; + exitFuncTable?: (ctx: FuncTableContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.rowsFromItem`. * @param ctx the parse tree @@ -3729,25 +3682,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitRowsFromItem?: (ctx: RowsFromItemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.where_clause`. + * Enter a parse tree produced by `PostgreSqlParser.whereClause`. * @param ctx the parse tree */ - enterWhere_clause?: (ctx: Where_clauseContext) => void; + enterWhereClause?: (ctx: WhereClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.where_clause`. + * Exit a parse tree produced by `PostgreSqlParser.whereClause`. * @param ctx the parse tree */ - exitWhere_clause?: (ctx: Where_clauseContext) => void; + exitWhereClause?: (ctx: WhereClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.where_or_current_clause`. + * Enter a parse tree produced by `PostgreSqlParser.whereOrCurrentClause`. * @param ctx the parse tree */ - enterWhere_or_current_clause?: (ctx: Where_or_current_clauseContext) => void; + enterWhereOrCurrentClause?: (ctx: WhereOrCurrentClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.where_or_current_clause`. + * Exit a parse tree produced by `PostgreSqlParser.whereOrCurrentClause`. * @param ctx the parse tree */ - exitWhere_or_current_clause?: (ctx: Where_or_current_clauseContext) => void; + exitWhereOrCurrentClause?: (ctx: WhereOrCurrentClauseContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.tableFuncElementList`. * @param ctx the parse tree @@ -3789,15 +3742,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitXmlTableColumnEl?: (ctx: XmlTableColumnElContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.xml_namespace_el`. + * Enter a parse tree produced by `PostgreSqlParser.xmlNamespaceEle`. * @param ctx the parse tree */ - enterXml_namespace_el?: (ctx: Xml_namespace_elContext) => void; + enterXmlNamespaceEle?: (ctx: XmlNamespaceEleContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.xml_namespace_el`. + * Exit a parse tree produced by `PostgreSqlParser.xmlNamespaceEle`. * @param ctx the parse tree */ - exitXml_namespace_el?: (ctx: Xml_namespace_elContext) => void; + exitXmlNamespaceEle?: (ctx: XmlNamespaceEleContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.typename`. * @param ctx the parse tree @@ -3839,15 +3792,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitNumeric?: (ctx: NumericContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_float`. + * Enter a parse tree produced by `PostgreSqlParser.optFloat`. * @param ctx the parse tree */ - enterOpt_float?: (ctx: Opt_floatContext) => void; + enterOptFloat?: (ctx: OptFloatContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_float`. + * Exit a parse tree produced by `PostgreSqlParser.optFloat`. * @param ctx the parse tree */ - exitOpt_float?: (ctx: Opt_floatContext) => void; + exitOptFloat?: (ctx: OptFloatContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.bit`. * @param ctx the parse tree @@ -3879,25 +3832,25 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitConstDatetime?: (ctx: ConstDatetimeContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_interval`. + * Enter a parse tree produced by `PostgreSqlParser.optInterval`. * @param ctx the parse tree */ - enterOpt_interval?: (ctx: Opt_intervalContext) => void; + enterOptInterval?: (ctx: OptIntervalContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_interval`. + * Exit a parse tree produced by `PostgreSqlParser.optInterval`. * @param ctx the parse tree */ - exitOpt_interval?: (ctx: Opt_intervalContext) => void; + exitOptInterval?: (ctx: OptIntervalContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.interval_second`. + * Enter a parse tree produced by `PostgreSqlParser.intervalSecond`. * @param ctx the parse tree */ - enterInterval_second?: (ctx: Interval_secondContext) => void; + enterIntervalSecond?: (ctx: IntervalSecondContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.interval_second`. + * Exit a parse tree produced by `PostgreSqlParser.intervalSecond`. * @param ctx the parse tree */ - exitInterval_second?: (ctx: Interval_secondContext) => void; + exitIntervalSecond?: (ctx: IntervalSecondContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.comparisonOperator`. * @param ctx the parse tree @@ -4121,15 +4074,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitPrimaryExpression?: (ctx: PrimaryExpressionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_application`. + * Enter a parse tree produced by `PostgreSqlParser.funcApplication`. * @param ctx the parse tree */ - enterFunc_application?: (ctx: Func_applicationContext) => void; + enterFuncApplication?: (ctx: FuncApplicationContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_application`. + * Exit a parse tree produced by `PostgreSqlParser.funcApplication`. * @param ctx the parse tree */ - exitFunc_application?: (ctx: Func_applicationContext) => void; + exitFuncApplication?: (ctx: FuncApplicationContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.func_expr`. * @param ctx the parse tree @@ -4141,55 +4094,55 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitFunc_expr?: (ctx: Func_exprContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_expr_windowless`. + * Enter a parse tree produced by `PostgreSqlParser.funcExprWindowless`. * @param ctx the parse tree */ - enterFunc_expr_windowless?: (ctx: Func_expr_windowlessContext) => void; + enterFuncExprWindowless?: (ctx: FuncExprWindowlessContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_expr_windowless`. + * Exit a parse tree produced by `PostgreSqlParser.funcExprWindowless`. * @param ctx the parse tree */ - exitFunc_expr_windowless?: (ctx: Func_expr_windowlessContext) => void; + exitFuncExprWindowless?: (ctx: FuncExprWindowlessContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_expr_common_subexpr`. + * Enter a parse tree produced by `PostgreSqlParser.funcExprCommonSubExpr`. * @param ctx the parse tree */ - enterFunc_expr_common_subexpr?: (ctx: Func_expr_common_subexprContext) => void; + enterFuncExprCommonSubExpr?: (ctx: FuncExprCommonSubExprContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_expr_common_subexpr`. + * Exit a parse tree produced by `PostgreSqlParser.funcExprCommonSubExpr`. * @param ctx the parse tree */ - exitFunc_expr_common_subexpr?: (ctx: Func_expr_common_subexprContext) => void; + exitFuncExprCommonSubExpr?: (ctx: FuncExprCommonSubExprContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.xml_attribute_list`. + * Enter a parse tree produced by `PostgreSqlParser.xmlAttributeList`. * @param ctx the parse tree */ - enterXml_attribute_list?: (ctx: Xml_attribute_listContext) => void; + enterXmlAttributeList?: (ctx: XmlAttributeListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.xml_attribute_list`. + * Exit a parse tree produced by `PostgreSqlParser.xmlAttributeList`. * @param ctx the parse tree */ - exitXml_attribute_list?: (ctx: Xml_attribute_listContext) => void; + exitXmlAttributeList?: (ctx: XmlAttributeListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.xml_attribute_el`. + * Enter a parse tree produced by `PostgreSqlParser.xmlAttributeEl`. * @param ctx the parse tree */ - enterXml_attribute_el?: (ctx: Xml_attribute_elContext) => void; + enterXmlAttributeEl?: (ctx: XmlAttributeElContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.xml_attribute_el`. + * Exit a parse tree produced by `PostgreSqlParser.xmlAttributeEl`. * @param ctx the parse tree */ - exitXml_attribute_el?: (ctx: Xml_attribute_elContext) => void; + exitXmlAttributeEl?: (ctx: XmlAttributeElContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.document_or_content`. + * Enter a parse tree produced by `PostgreSqlParser.documentOrContent`. * @param ctx the parse tree */ - enterDocument_or_content?: (ctx: Document_or_contentContext) => void; + enterDocumentOrContent?: (ctx: DocumentOrContentContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.document_or_content`. + * Exit a parse tree produced by `PostgreSqlParser.documentOrContent`. * @param ctx the parse tree */ - exitDocument_or_content?: (ctx: Document_or_contentContext) => void; + exitDocumentOrContent?: (ctx: DocumentOrContentContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.xmlExistsArgument`. * @param ctx the parse tree @@ -4201,35 +4154,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitXmlExistsArgument?: (ctx: XmlExistsArgumentContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.xml_passing_mech`. + * Enter a parse tree produced by `PostgreSqlParser.xmlPassingMech`. * @param ctx the parse tree */ - enterXml_passing_mech?: (ctx: Xml_passing_mechContext) => void; + enterXmlPassingMech?: (ctx: XmlPassingMechContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.xml_passing_mech`. + * Exit a parse tree produced by `PostgreSqlParser.xmlPassingMech`. * @param ctx the parse tree */ - exitXml_passing_mech?: (ctx: Xml_passing_mechContext) => void; + exitXmlPassingMech?: (ctx: XmlPassingMechContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.window_clause`. + * Enter a parse tree produced by `PostgreSqlParser.windowClause`. * @param ctx the parse tree */ - enterWindow_clause?: (ctx: Window_clauseContext) => void; + enterWindowClause?: (ctx: WindowClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.window_clause`. + * Exit a parse tree produced by `PostgreSqlParser.windowClause`. * @param ctx the parse tree */ - exitWindow_clause?: (ctx: Window_clauseContext) => void; + exitWindowClause?: (ctx: WindowClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.window_definition`. + * Enter a parse tree produced by `PostgreSqlParser.windowDefinition`. * @param ctx the parse tree */ - enterWindow_definition?: (ctx: Window_definitionContext) => void; + enterWindowDefinition?: (ctx: WindowDefinitionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.window_definition`. + * Exit a parse tree produced by `PostgreSqlParser.windowDefinition`. * @param ctx the parse tree */ - exitWindow_definition?: (ctx: Window_definitionContext) => void; + exitWindowDefinition?: (ctx: WindowDefinitionContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.over_clause`. * @param ctx the parse tree @@ -4241,35 +4194,35 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitOver_clause?: (ctx: Over_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.window_specification`. + * Enter a parse tree produced by `PostgreSqlParser.windowSpecification`. * @param ctx the parse tree */ - enterWindow_specification?: (ctx: Window_specificationContext) => void; + enterWindowSpecification?: (ctx: WindowSpecificationContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.window_specification`. + * Exit a parse tree produced by `PostgreSqlParser.windowSpecification`. * @param ctx the parse tree */ - exitWindow_specification?: (ctx: Window_specificationContext) => void; + exitWindowSpecification?: (ctx: WindowSpecificationContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_frame_clause`. + * Enter a parse tree produced by `PostgreSqlParser.optFrameClause`. * @param ctx the parse tree */ - enterOpt_frame_clause?: (ctx: Opt_frame_clauseContext) => void; + enterOptFrameClause?: (ctx: OptFrameClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_frame_clause`. + * Exit a parse tree produced by `PostgreSqlParser.optFrameClause`. * @param ctx the parse tree */ - exitOpt_frame_clause?: (ctx: Opt_frame_clauseContext) => void; + exitOptFrameClause?: (ctx: OptFrameClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.frame_bound`. + * Enter a parse tree produced by `PostgreSqlParser.frameBound`. * @param ctx the parse tree */ - enterFrame_bound?: (ctx: Frame_boundContext) => void; + enterFrameBound?: (ctx: FrameBoundContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.frame_bound`. + * Exit a parse tree produced by `PostgreSqlParser.frameBound`. * @param ctx the parse tree */ - exitFrame_bound?: (ctx: Frame_boundContext) => void; + exitFrameBound?: (ctx: FrameBoundContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.row`. * @param ctx the parse tree @@ -4281,165 +4234,165 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitRow?: (ctx: RowContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.explicit_row`. + * Enter a parse tree produced by `PostgreSqlParser.explicitRow`. * @param ctx the parse tree */ - enterExplicit_row?: (ctx: Explicit_rowContext) => void; + enterExplicitRow?: (ctx: ExplicitRowContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.explicit_row`. + * Exit a parse tree produced by `PostgreSqlParser.explicitRow`. * @param ctx the parse tree */ - exitExplicit_row?: (ctx: Explicit_rowContext) => void; + exitExplicitRow?: (ctx: ExplicitRowContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.sub_type`. + * Enter a parse tree produced by `PostgreSqlParser.subType`. * @param ctx the parse tree */ - enterSub_type?: (ctx: Sub_typeContext) => void; + enterSubType?: (ctx: SubTypeContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.sub_type`. + * Exit a parse tree produced by `PostgreSqlParser.subType`. * @param ctx the parse tree */ - exitSub_type?: (ctx: Sub_typeContext) => void; + exitSubType?: (ctx: SubTypeContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.all_op`. + * Enter a parse tree produced by `PostgreSqlParser.allOp`. * @param ctx the parse tree */ - enterAll_op?: (ctx: All_opContext) => void; + enterAllOp?: (ctx: AllOpContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.all_op`. + * Exit a parse tree produced by `PostgreSqlParser.allOp`. * @param ctx the parse tree */ - exitAll_op?: (ctx: All_opContext) => void; + exitAllOp?: (ctx: AllOpContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.mathop`. + * Enter a parse tree produced by `PostgreSqlParser.mathOp`. * @param ctx the parse tree */ - enterMathop?: (ctx: MathopContext) => void; + enterMathOp?: (ctx: MathOpContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.mathop`. + * Exit a parse tree produced by `PostgreSqlParser.mathOp`. * @param ctx the parse tree */ - exitMathop?: (ctx: MathopContext) => void; + exitMathOp?: (ctx: MathOpContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.qual_op`. + * Enter a parse tree produced by `PostgreSqlParser.qualOp`. * @param ctx the parse tree */ - enterQual_op?: (ctx: Qual_opContext) => void; + enterQualOp?: (ctx: QualOpContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.qual_op`. + * Exit a parse tree produced by `PostgreSqlParser.qualOp`. * @param ctx the parse tree */ - exitQual_op?: (ctx: Qual_opContext) => void; + exitQualOp?: (ctx: QualOpContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.qual_all_op`. + * Enter a parse tree produced by `PostgreSqlParser.qualAllOp`. * @param ctx the parse tree */ - enterQual_all_op?: (ctx: Qual_all_opContext) => void; + enterQualAllOp?: (ctx: QualAllOpContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.qual_all_op`. + * Exit a parse tree produced by `PostgreSqlParser.qualAllOp`. * @param ctx the parse tree */ - exitQual_all_op?: (ctx: Qual_all_opContext) => void; + exitQualAllOp?: (ctx: QualAllOpContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.subquery_Op`. + * Enter a parse tree produced by `PostgreSqlParser.subqueryOperator`. * @param ctx the parse tree */ - enterSubquery_Op?: (ctx: Subquery_OpContext) => void; + enterSubqueryOperator?: (ctx: SubqueryOperatorContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.subquery_Op`. + * Exit a parse tree produced by `PostgreSqlParser.subqueryOperator`. * @param ctx the parse tree */ - exitSubquery_Op?: (ctx: Subquery_OpContext) => void; + exitSubqueryOperator?: (ctx: SubqueryOperatorContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.expr_list`. + * Enter a parse tree produced by `PostgreSqlParser.exprList`. * @param ctx the parse tree */ - enterExpr_list?: (ctx: Expr_listContext) => void; + enterExprList?: (ctx: ExprListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.expr_list`. + * Exit a parse tree produced by `PostgreSqlParser.exprList`. * @param ctx the parse tree */ - exitExpr_list?: (ctx: Expr_listContext) => void; + exitExprList?: (ctx: ExprListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.column_expr`. + * Enter a parse tree produced by `PostgreSqlParser.columnExpr`. * @param ctx the parse tree */ - enterColumn_expr?: (ctx: Column_exprContext) => void; + enterColumnExpr?: (ctx: ColumnExprContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.column_expr`. + * Exit a parse tree produced by `PostgreSqlParser.columnExpr`. * @param ctx the parse tree */ - exitColumn_expr?: (ctx: Column_exprContext) => void; + exitColumnExpr?: (ctx: ColumnExprContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.column_expr_no_paren`. + * Enter a parse tree produced by `PostgreSqlParser.columnExprNoParen`. * @param ctx the parse tree */ - enterColumn_expr_no_paren?: (ctx: Column_expr_no_parenContext) => void; + enterColumnExprNoParen?: (ctx: ColumnExprNoParenContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.column_expr_no_paren`. + * Exit a parse tree produced by `PostgreSqlParser.columnExprNoParen`. * @param ctx the parse tree */ - exitColumn_expr_no_paren?: (ctx: Column_expr_no_parenContext) => void; + exitColumnExprNoParen?: (ctx: ColumnExprNoParenContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_arg_list`. + * Enter a parse tree produced by `PostgreSqlParser.funcArgList`. * @param ctx the parse tree */ - enterFunc_arg_list?: (ctx: Func_arg_listContext) => void; + enterFuncArgList?: (ctx: FuncArgListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_arg_list`. + * Exit a parse tree produced by `PostgreSqlParser.funcArgList`. * @param ctx the parse tree */ - exitFunc_arg_list?: (ctx: Func_arg_listContext) => void; + exitFuncArgList?: (ctx: FuncArgListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.func_arg_expr`. + * Enter a parse tree produced by `PostgreSqlParser.funcArgExpr`. * @param ctx the parse tree */ - enterFunc_arg_expr?: (ctx: Func_arg_exprContext) => void; + enterFuncArgExpr?: (ctx: FuncArgExprContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.func_arg_expr`. + * Exit a parse tree produced by `PostgreSqlParser.funcArgExpr`. * @param ctx the parse tree */ - exitFunc_arg_expr?: (ctx: Func_arg_exprContext) => void; + exitFuncArgExpr?: (ctx: FuncArgExprContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.array_expr`. + * Enter a parse tree produced by `PostgreSqlParser.arrayExpr`. * @param ctx the parse tree */ - enterArray_expr?: (ctx: Array_exprContext) => void; + enterArrayExpr?: (ctx: ArrayExprContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.array_expr`. + * Exit a parse tree produced by `PostgreSqlParser.arrayExpr`. * @param ctx the parse tree */ - exitArray_expr?: (ctx: Array_exprContext) => void; + exitArrayExpr?: (ctx: ArrayExprContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.extract_arg`. + * Enter a parse tree produced by `PostgreSqlParser.extractArg`. * @param ctx the parse tree */ - enterExtract_arg?: (ctx: Extract_argContext) => void; + enterExtractArg?: (ctx: ExtractArgContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.extract_arg`. + * Exit a parse tree produced by `PostgreSqlParser.extractArg`. * @param ctx the parse tree */ - exitExtract_arg?: (ctx: Extract_argContext) => void; + exitExtractArg?: (ctx: ExtractArgContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.unicode_normal_form`. + * Enter a parse tree produced by `PostgreSqlParser.unicodeNormalForm`. * @param ctx the parse tree */ - enterUnicode_normal_form?: (ctx: Unicode_normal_formContext) => void; + enterUnicodeNormalForm?: (ctx: UnicodeNormalFormContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.unicode_normal_form`. + * Exit a parse tree produced by `PostgreSqlParser.unicodeNormalForm`. * @param ctx the parse tree */ - exitUnicode_normal_form?: (ctx: Unicode_normal_formContext) => void; + exitUnicodeNormalForm?: (ctx: UnicodeNormalFormContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.substr_list`. + * Enter a parse tree produced by `PostgreSqlParser.substrList`. * @param ctx the parse tree */ - enterSubstr_list?: (ctx: Substr_listContext) => void; + enterSubstrList?: (ctx: SubstrListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.substr_list`. + * Exit a parse tree produced by `PostgreSqlParser.substrList`. * @param ctx the parse tree */ - exitSubstr_list?: (ctx: Substr_listContext) => void; + exitSubstrList?: (ctx: SubstrListContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.when_clause`. * @param ctx the parse tree @@ -4451,15 +4404,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitWhen_clause?: (ctx: When_clauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.indirection_el`. + * Enter a parse tree produced by `PostgreSqlParser.indirectionEl`. * @param ctx the parse tree */ - enterIndirection_el?: (ctx: Indirection_elContext) => void; + enterIndirectionEl?: (ctx: IndirectionElContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.indirection_el`. + * Exit a parse tree produced by `PostgreSqlParser.indirectionEl`. * @param ctx the parse tree */ - exitIndirection_el?: (ctx: Indirection_elContext) => void; + exitIndirectionEl?: (ctx: IndirectionElContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.indirection`. * @param ctx the parse tree @@ -4471,332 +4424,286 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitIndirection?: (ctx: IndirectionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_indirection`. + * Enter a parse tree produced by `PostgreSqlParser.optIndirection`. * @param ctx the parse tree */ - enterOpt_indirection?: (ctx: Opt_indirectionContext) => void; + enterOptIndirection?: (ctx: OptIndirectionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_indirection`. + * Exit a parse tree produced by `PostgreSqlParser.optIndirection`. * @param ctx the parse tree */ - exitOpt_indirection?: (ctx: Opt_indirectionContext) => void; + exitOptIndirection?: (ctx: OptIndirectionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.target_list`. + * Enter a parse tree produced by `PostgreSqlParser.targetList`. * @param ctx the parse tree */ - enterTarget_list?: (ctx: Target_listContext) => void; + enterTargetList?: (ctx: TargetListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.target_list`. + * Exit a parse tree produced by `PostgreSqlParser.targetList`. * @param ctx the parse tree */ - exitTarget_list?: (ctx: Target_listContext) => void; + exitTargetList?: (ctx: TargetListContext) => void; /** * Enter a parse tree produced by the `target_label` - * labeled alternative in `PostgreSqlParser.target_el`. + * labeled alternative in `PostgreSqlParser.targetEl`. * @param ctx the parse tree */ enterTarget_label?: (ctx: Target_labelContext) => void; /** * Exit a parse tree produced by the `target_label` - * labeled alternative in `PostgreSqlParser.target_el`. + * labeled alternative in `PostgreSqlParser.targetEl`. * @param ctx the parse tree */ exitTarget_label?: (ctx: Target_labelContext) => void; /** * Enter a parse tree produced by the `target_star` - * labeled alternative in `PostgreSqlParser.target_el`. + * labeled alternative in `PostgreSqlParser.targetEl`. * @param ctx the parse tree */ enterTarget_star?: (ctx: Target_starContext) => void; /** * Exit a parse tree produced by the `target_star` - * labeled alternative in `PostgreSqlParser.target_el`. + * labeled alternative in `PostgreSqlParser.targetEl`. * @param ctx the parse tree */ exitTarget_star?: (ctx: Target_starContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.qualified_name_list`. + * Enter a parse tree produced by `PostgreSqlParser.qualifiedNameList`. * @param ctx the parse tree */ - enterQualified_name_list?: (ctx: Qualified_name_listContext) => void; + enterQualifiedNameList?: (ctx: QualifiedNameListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.qualified_name_list`. + * Exit a parse tree produced by `PostgreSqlParser.qualifiedNameList`. * @param ctx the parse tree */ - exitQualified_name_list?: (ctx: Qualified_name_listContext) => void; + exitQualifiedNameList?: (ctx: QualifiedNameListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.table_name_list`. + * Enter a parse tree produced by `PostgreSqlParser.tableNameList`. * @param ctx the parse tree */ - enterTable_name_list?: (ctx: Table_name_listContext) => void; + enterTableNameList?: (ctx: TableNameListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.table_name_list`. + * Exit a parse tree produced by `PostgreSqlParser.tableNameList`. * @param ctx the parse tree */ - exitTable_name_list?: (ctx: Table_name_listContext) => void; + exitTableNameList?: (ctx: TableNameListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.schema_name_list`. + * Enter a parse tree produced by `PostgreSqlParser.schemaNameList`. * @param ctx the parse tree */ - enterSchema_name_list?: (ctx: Schema_name_listContext) => void; + enterSchemaNameList?: (ctx: SchemaNameListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.schema_name_list`. + * Exit a parse tree produced by `PostgreSqlParser.schemaNameList`. * @param ctx the parse tree */ - exitSchema_name_list?: (ctx: Schema_name_listContext) => void; + exitSchemaNameList?: (ctx: SchemaNameListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.database_nameList`. + * Enter a parse tree produced by `PostgreSqlParser.databaseNameList`. * @param ctx the parse tree */ - enterDatabase_nameList?: (ctx: Database_nameListContext) => void; + enterDatabaseNameList?: (ctx: DatabaseNameListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.database_nameList`. + * Exit a parse tree produced by `PostgreSqlParser.databaseNameList`. * @param ctx the parse tree */ - exitDatabase_nameList?: (ctx: Database_nameListContext) => void; + exitDatabaseNameList?: (ctx: DatabaseNameListContext) => void; /** - * Enter a parse tree produced by the `tablespaceNameCreate` - * labeled alternative in `PostgreSqlParser.tablespace_name_create`. + * Enter a parse tree produced by `PostgreSqlParser.tableSpaceNameCreate`. * @param ctx the parse tree */ - enterTablespaceNameCreate?: (ctx: TablespaceNameCreateContext) => void; + enterTableSpaceNameCreate?: (ctx: TableSpaceNameCreateContext) => void; /** - * Exit a parse tree produced by the `tablespaceNameCreate` - * labeled alternative in `PostgreSqlParser.tablespace_name_create`. + * Exit a parse tree produced by `PostgreSqlParser.tableSpaceNameCreate`. * @param ctx the parse tree */ - exitTablespaceNameCreate?: (ctx: TablespaceNameCreateContext) => void; + exitTableSpaceNameCreate?: (ctx: TableSpaceNameCreateContext) => void; /** - * Enter a parse tree produced by the `tablespaceName` - * labeled alternative in `PostgreSqlParser.tablespace_name`. + * Enter a parse tree produced by `PostgreSqlParser.tableSpaceName`. * @param ctx the parse tree */ - enterTablespaceName?: (ctx: TablespaceNameContext) => void; + enterTableSpaceName?: (ctx: TableSpaceNameContext) => void; /** - * Exit a parse tree produced by the `tablespaceName` - * labeled alternative in `PostgreSqlParser.tablespace_name`. + * Exit a parse tree produced by `PostgreSqlParser.tableSpaceName`. * @param ctx the parse tree */ - exitTablespaceName?: (ctx: TablespaceNameContext) => void; + exitTableSpaceName?: (ctx: TableSpaceNameContext) => void; /** - * Enter a parse tree produced by the `tableNameCreate` - * labeled alternative in `PostgreSqlParser.table_name_create`. + * Enter a parse tree produced by `PostgreSqlParser.tableNameCreate`. * @param ctx the parse tree */ enterTableNameCreate?: (ctx: TableNameCreateContext) => void; /** - * Exit a parse tree produced by the `tableNameCreate` - * labeled alternative in `PostgreSqlParser.table_name_create`. + * Exit a parse tree produced by `PostgreSqlParser.tableNameCreate`. * @param ctx the parse tree */ exitTableNameCreate?: (ctx: TableNameCreateContext) => void; /** - * Enter a parse tree produced by the `tableName` - * labeled alternative in `PostgreSqlParser.table_name`. + * Enter a parse tree produced by `PostgreSqlParser.tableName`. * @param ctx the parse tree */ enterTableName?: (ctx: TableNameContext) => void; /** - * Exit a parse tree produced by the `tableName` - * labeled alternative in `PostgreSqlParser.table_name`. + * Exit a parse tree produced by `PostgreSqlParser.tableName`. * @param ctx the parse tree */ exitTableName?: (ctx: TableNameContext) => void; /** - * Enter a parse tree produced by the `viewNameCreate` - * labeled alternative in `PostgreSqlParser.view_name_create`. + * Enter a parse tree produced by `PostgreSqlParser.viewNameCreate`. * @param ctx the parse tree */ enterViewNameCreate?: (ctx: ViewNameCreateContext) => void; /** - * Exit a parse tree produced by the `viewNameCreate` - * labeled alternative in `PostgreSqlParser.view_name_create`. + * Exit a parse tree produced by `PostgreSqlParser.viewNameCreate`. * @param ctx the parse tree */ exitViewNameCreate?: (ctx: ViewNameCreateContext) => void; /** - * Enter a parse tree produced by the `viewName` - * labeled alternative in `PostgreSqlParser.view_name`. + * Enter a parse tree produced by `PostgreSqlParser.viewName`. * @param ctx the parse tree */ enterViewName?: (ctx: ViewNameContext) => void; /** - * Exit a parse tree produced by the `viewName` - * labeled alternative in `PostgreSqlParser.view_name`. + * Exit a parse tree produced by `PostgreSqlParser.viewName`. * @param ctx the parse tree */ exitViewName?: (ctx: ViewNameContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.qualified_name`. + * Enter a parse tree produced by `PostgreSqlParser.qualifiedName`. * @param ctx the parse tree */ - enterQualified_name?: (ctx: Qualified_nameContext) => void; + enterQualifiedName?: (ctx: QualifiedNameContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.qualified_name`. + * Exit a parse tree produced by `PostgreSqlParser.qualifiedName`. * @param ctx the parse tree */ - exitQualified_name?: (ctx: Qualified_nameContext) => void; + exitQualifiedName?: (ctx: QualifiedNameContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.tablespace_name_list`. + * Enter a parse tree produced by `PostgreSqlParser.tableSpaceNameList`. * @param ctx the parse tree */ - enterTablespace_name_list?: (ctx: Tablespace_name_listContext) => void; + enterTableSpaceNameList?: (ctx: TableSpaceNameListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.tablespace_name_list`. + * Exit a parse tree produced by `PostgreSqlParser.tableSpaceNameList`. * @param ctx the parse tree */ - exitTablespace_name_list?: (ctx: Tablespace_name_listContext) => void; + exitTableSpaceNameList?: (ctx: TableSpaceNameListContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.name_list`. + * Enter a parse tree produced by `PostgreSqlParser.nameList`. * @param ctx the parse tree */ - enterName_list?: (ctx: Name_listContext) => void; + enterNameList?: (ctx: NameListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.name_list`. + * Exit a parse tree produced by `PostgreSqlParser.nameList`. * @param ctx the parse tree */ - exitName_list?: (ctx: Name_listContext) => void; + exitNameList?: (ctx: NameListContext) => void; /** - * Enter a parse tree produced by the `databaseNameCreate` - * labeled alternative in `PostgreSqlParser.database_name_create`. + * Enter a parse tree produced by `PostgreSqlParser.databaseNameCreate`. * @param ctx the parse tree */ enterDatabaseNameCreate?: (ctx: DatabaseNameCreateContext) => void; /** - * Exit a parse tree produced by the `databaseNameCreate` - * labeled alternative in `PostgreSqlParser.database_name_create`. + * Exit a parse tree produced by `PostgreSqlParser.databaseNameCreate`. * @param ctx the parse tree */ exitDatabaseNameCreate?: (ctx: DatabaseNameCreateContext) => void; /** - * Enter a parse tree produced by the `databaseName` - * labeled alternative in `PostgreSqlParser.database_name`. + * Enter a parse tree produced by `PostgreSqlParser.databaseName`. * @param ctx the parse tree */ enterDatabaseName?: (ctx: DatabaseNameContext) => void; /** - * Exit a parse tree produced by the `databaseName` - * labeled alternative in `PostgreSqlParser.database_name`. + * Exit a parse tree produced by `PostgreSqlParser.databaseName`. * @param ctx the parse tree */ exitDatabaseName?: (ctx: DatabaseNameContext) => void; /** - * Enter a parse tree produced by the `schemaName` - * labeled alternative in `PostgreSqlParser.schema_name`. + * Enter a parse tree produced by `PostgreSqlParser.schemaName`. * @param ctx the parse tree */ enterSchemaName?: (ctx: SchemaNameContext) => void; /** - * Exit a parse tree produced by the `schemaName` - * labeled alternative in `PostgreSqlParser.schema_name`. + * Exit a parse tree produced by `PostgreSqlParser.schemaName`. * @param ctx the parse tree */ exitSchemaName?: (ctx: SchemaNameContext) => void; /** - * Enter a parse tree produced by the `routineNameCreate` - * labeled alternative in `PostgreSqlParser.routine_name_create`. + * Enter a parse tree produced by `PostgreSqlParser.routineNameCreate`. * @param ctx the parse tree */ enterRoutineNameCreate?: (ctx: RoutineNameCreateContext) => void; /** - * Exit a parse tree produced by the `routineNameCreate` - * labeled alternative in `PostgreSqlParser.routine_name_create`. + * Exit a parse tree produced by `PostgreSqlParser.routineNameCreate`. * @param ctx the parse tree */ exitRoutineNameCreate?: (ctx: RoutineNameCreateContext) => void; /** - * Enter a parse tree produced by the `routineName` - * labeled alternative in `PostgreSqlParser.routine_name`. + * Enter a parse tree produced by `PostgreSqlParser.routineName`. * @param ctx the parse tree */ enterRoutineName?: (ctx: RoutineNameContext) => void; /** - * Exit a parse tree produced by the `routineName` - * labeled alternative in `PostgreSqlParser.routine_name`. + * Exit a parse tree produced by `PostgreSqlParser.routineName`. * @param ctx the parse tree */ exitRoutineName?: (ctx: RoutineNameContext) => void; /** - * Enter a parse tree produced by the `procedureName` - * labeled alternative in `PostgreSqlParser.procedure_name`. + * Enter a parse tree produced by `PostgreSqlParser.procedureName`. * @param ctx the parse tree */ enterProcedureName?: (ctx: ProcedureNameContext) => void; /** - * Exit a parse tree produced by the `procedureName` - * labeled alternative in `PostgreSqlParser.procedure_name`. + * Exit a parse tree produced by `PostgreSqlParser.procedureName`. * @param ctx the parse tree */ exitProcedureName?: (ctx: ProcedureNameContext) => void; /** - * Enter a parse tree produced by the `procedureNameCreate` - * labeled alternative in `PostgreSqlParser.procedure_name_create`. + * Enter a parse tree produced by `PostgreSqlParser.procedureNameCreate`. * @param ctx the parse tree */ enterProcedureNameCreate?: (ctx: ProcedureNameCreateContext) => void; /** - * Exit a parse tree produced by the `procedureNameCreate` - * labeled alternative in `PostgreSqlParser.procedure_name_create`. + * Exit a parse tree produced by `PostgreSqlParser.procedureNameCreate`. * @param ctx the parse tree */ exitProcedureNameCreate?: (ctx: ProcedureNameCreateContext) => void; /** - * Enter a parse tree produced by the `columnName` - * labeled alternative in `PostgreSqlParser.column_name`. + * Enter a parse tree produced by `PostgreSqlParser.columnName`. * @param ctx the parse tree */ enterColumnName?: (ctx: ColumnNameContext) => void; /** - * Exit a parse tree produced by the `columnName` - * labeled alternative in `PostgreSqlParser.column_name`. + * Exit a parse tree produced by `PostgreSqlParser.columnName`. * @param ctx the parse tree */ exitColumnName?: (ctx: ColumnNameContext) => void; /** - * Enter a parse tree produced by the `columnNameMatch` - * labeled alternative in `PostgreSqlParser.column_name`. - * @param ctx the parse tree - */ - enterColumnNameMatch?: (ctx: ColumnNameMatchContext) => void; - /** - * Exit a parse tree produced by the `columnNameMatch` - * labeled alternative in `PostgreSqlParser.column_name`. - * @param ctx the parse tree - */ - exitColumnNameMatch?: (ctx: ColumnNameMatchContext) => void; - /** - * Enter a parse tree produced by the `columnNameCreate` - * labeled alternative in `PostgreSqlParser.column_name_create`. + * Enter a parse tree produced by `PostgreSqlParser.columnNameCreate`. * @param ctx the parse tree */ enterColumnNameCreate?: (ctx: ColumnNameCreateContext) => void; /** - * Exit a parse tree produced by the `columnNameCreate` - * labeled alternative in `PostgreSqlParser.column_name_create`. + * Exit a parse tree produced by `PostgreSqlParser.columnNameCreate`. * @param ctx the parse tree */ exitColumnNameCreate?: (ctx: ColumnNameCreateContext) => void; /** - * Enter a parse tree produced by the `functionNameCreate` - * labeled alternative in `PostgreSqlParser.function_name_create`. + * Enter a parse tree produced by `PostgreSqlParser.functionNameCreate`. * @param ctx the parse tree */ enterFunctionNameCreate?: (ctx: FunctionNameCreateContext) => void; /** - * Exit a parse tree produced by the `functionNameCreate` - * labeled alternative in `PostgreSqlParser.function_name_create`. + * Exit a parse tree produced by `PostgreSqlParser.functionNameCreate`. * @param ctx the parse tree */ exitFunctionNameCreate?: (ctx: FunctionNameCreateContext) => void; /** - * Enter a parse tree produced by the `functionName` - * labeled alternative in `PostgreSqlParser.function_name`. + * Enter a parse tree produced by `PostgreSqlParser.functionName`. * @param ctx the parse tree */ enterFunctionName?: (ctx: FunctionNameContext) => void; /** - * Exit a parse tree produced by the `functionName` - * labeled alternative in `PostgreSqlParser.function_name`. + * Exit a parse tree produced by `PostgreSqlParser.functionName`. * @param ctx the parse tree */ exitFunctionName?: (ctx: FunctionNameContext) => void; @@ -4841,15 +4748,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitRoleSpec?: (ctx: RoleSpecContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.role_list`. + * Enter a parse tree produced by `PostgreSqlParser.roleList`. * @param ctx the parse tree */ - enterRole_list?: (ctx: Role_listContext) => void; + enterRoleList?: (ctx: RoleListContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.role_list`. + * Exit a parse tree produced by `PostgreSqlParser.roleList`. * @param ctx the parse tree */ - exitRole_list?: (ctx: Role_listContext) => void; + exitRoleList?: (ctx: RoleListContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.colId`. * @param ctx the parse tree @@ -4861,15 +4768,15 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitColId?: (ctx: ColIdContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.type_function_name`. + * Enter a parse tree produced by `PostgreSqlParser.typeFunctionName`. * @param ctx the parse tree */ - enterType_function_name?: (ctx: Type_function_nameContext) => void; + enterTypeFunctionName?: (ctx: TypeFunctionNameContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.type_function_name`. + * Exit a parse tree produced by `PostgreSqlParser.typeFunctionName`. * @param ctx the parse tree */ - exitType_function_name?: (ctx: Type_function_nameContext) => void; + exitTypeFunctionName?: (ctx: TypeFunctionNameContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.nonReservedWord`. * @param ctx the parse tree @@ -4901,365 +4808,365 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitIdentifier?: (ctx: IdentifierContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.unreserved_keyword`. + * Enter a parse tree produced by `PostgreSqlParser.unreservedKeyword`. * @param ctx the parse tree */ - enterUnreserved_keyword?: (ctx: Unreserved_keywordContext) => void; + enterUnreservedKeyword?: (ctx: UnreservedKeywordContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.unreserved_keyword`. + * Exit a parse tree produced by `PostgreSqlParser.unreservedKeyword`. * @param ctx the parse tree */ - exitUnreserved_keyword?: (ctx: Unreserved_keywordContext) => void; + exitUnreservedKeyword?: (ctx: UnreservedKeywordContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.col_name_keyword`. + * Enter a parse tree produced by `PostgreSqlParser.colNameKeyword`. * @param ctx the parse tree */ - enterCol_name_keyword?: (ctx: Col_name_keywordContext) => void; + enterColNameKeyword?: (ctx: ColNameKeywordContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.col_name_keyword`. + * Exit a parse tree produced by `PostgreSqlParser.colNameKeyword`. * @param ctx the parse tree */ - exitCol_name_keyword?: (ctx: Col_name_keywordContext) => void; + exitColNameKeyword?: (ctx: ColNameKeywordContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.type_func_name_keyword`. + * Enter a parse tree produced by `PostgreSqlParser.typeFuncNameKeyword`. * @param ctx the parse tree */ - enterType_func_name_keyword?: (ctx: Type_func_name_keywordContext) => void; + enterTypeFuncNameKeyword?: (ctx: TypeFuncNameKeywordContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.type_func_name_keyword`. + * Exit a parse tree produced by `PostgreSqlParser.typeFuncNameKeyword`. * @param ctx the parse tree */ - exitType_func_name_keyword?: (ctx: Type_func_name_keywordContext) => void; + exitTypeFuncNameKeyword?: (ctx: TypeFuncNameKeywordContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.reserved_keyword`. + * Enter a parse tree produced by `PostgreSqlParser.reservedKeyword`. * @param ctx the parse tree */ - enterReserved_keyword?: (ctx: Reserved_keywordContext) => void; + enterReservedKeyword?: (ctx: ReservedKeywordContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.reserved_keyword`. + * Exit a parse tree produced by `PostgreSqlParser.reservedKeyword`. * @param ctx the parse tree */ - exitReserved_keyword?: (ctx: Reserved_keywordContext) => void; + exitReservedKeyword?: (ctx: ReservedKeywordContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.pl_block`. + * Enter a parse tree produced by `PostgreSqlParser.plBlock`. * @param ctx the parse tree */ - enterPl_block?: (ctx: Pl_blockContext) => void; + enterPlBlock?: (ctx: PlBlockContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.pl_block`. + * Exit a parse tree produced by `PostgreSqlParser.plBlock`. * @param ctx the parse tree */ - exitPl_block?: (ctx: Pl_blockContext) => void; + exitPlBlock?: (ctx: PlBlockContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.label_decl`. + * Enter a parse tree produced by `PostgreSqlParser.labelDecl`. * @param ctx the parse tree */ - enterLabel_decl?: (ctx: Label_declContext) => void; + enterLabelDecl?: (ctx: LabelDeclContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.label_decl`. + * Exit a parse tree produced by `PostgreSqlParser.labelDecl`. * @param ctx the parse tree */ - exitLabel_decl?: (ctx: Label_declContext) => void; + exitLabelDecl?: (ctx: LabelDeclContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.decl_statement`. + * Enter a parse tree produced by `PostgreSqlParser.declStatement`. * @param ctx the parse tree */ - enterDecl_statement?: (ctx: Decl_statementContext) => void; + enterDeclStatement?: (ctx: DeclStatementContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.decl_statement`. + * Exit a parse tree produced by `PostgreSqlParser.declStatement`. * @param ctx the parse tree */ - exitDecl_statement?: (ctx: Decl_statementContext) => void; + exitDeclStatement?: (ctx: DeclStatementContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.decl_cursor_arg`. + * Enter a parse tree produced by `PostgreSqlParser.declCursorArg`. * @param ctx the parse tree */ - enterDecl_cursor_arg?: (ctx: Decl_cursor_argContext) => void; + enterDeclCursorArg?: (ctx: DeclCursorArgContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.decl_cursor_arg`. + * Exit a parse tree produced by `PostgreSqlParser.declCursorArg`. * @param ctx the parse tree */ - exitDecl_cursor_arg?: (ctx: Decl_cursor_argContext) => void; + exitDeclCursorArg?: (ctx: DeclCursorArgContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.assign_operator`. + * Enter a parse tree produced by `PostgreSqlParser.assignOperator`. * @param ctx the parse tree */ - enterAssign_operator?: (ctx: Assign_operatorContext) => void; + enterAssignOperator?: (ctx: AssignOperatorContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.assign_operator`. + * Exit a parse tree produced by `PostgreSqlParser.assignOperator`. * @param ctx the parse tree */ - exitAssign_operator?: (ctx: Assign_operatorContext) => void; + exitAssignOperator?: (ctx: AssignOperatorContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.proc_stmt`. + * Enter a parse tree produced by `PostgreSqlParser.procStmt`. * @param ctx the parse tree */ - enterProc_stmt?: (ctx: Proc_stmtContext) => void; + enterProcStmt?: (ctx: ProcStmtContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.proc_stmt`. + * Exit a parse tree produced by `PostgreSqlParser.procStmt`. * @param ctx the parse tree */ - exitProc_stmt?: (ctx: Proc_stmtContext) => void; + exitProcStmt?: (ctx: ProcStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_perform`. + * Enter a parse tree produced by `PostgreSqlParser.stmtPerform`. * @param ctx the parse tree */ - enterStmt_perform?: (ctx: Stmt_performContext) => void; + enterStmtPerform?: (ctx: StmtPerformContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_perform`. + * Exit a parse tree produced by `PostgreSqlParser.stmtPerform`. * @param ctx the parse tree */ - exitStmt_perform?: (ctx: Stmt_performContext) => void; + exitStmtPerform?: (ctx: StmtPerformContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_call`. + * Enter a parse tree produced by `PostgreSqlParser.stmtCall`. * @param ctx the parse tree */ - enterStmt_call?: (ctx: Stmt_callContext) => void; + enterStmtCall?: (ctx: StmtCallContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_call`. + * Exit a parse tree produced by `PostgreSqlParser.stmtCall`. * @param ctx the parse tree */ - exitStmt_call?: (ctx: Stmt_callContext) => void; + exitStmtCall?: (ctx: StmtCallContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_assign`. + * Enter a parse tree produced by `PostgreSqlParser.stmtAssign`. * @param ctx the parse tree */ - enterStmt_assign?: (ctx: Stmt_assignContext) => void; + enterStmtAssign?: (ctx: StmtAssignContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_assign`. + * Exit a parse tree produced by `PostgreSqlParser.stmtAssign`. * @param ctx the parse tree */ - exitStmt_assign?: (ctx: Stmt_assignContext) => void; + exitStmtAssign?: (ctx: StmtAssignContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_getdiag`. + * Enter a parse tree produced by `PostgreSqlParser.stmtGetdiag`. * @param ctx the parse tree */ - enterStmt_getdiag?: (ctx: Stmt_getdiagContext) => void; + enterStmtGetdiag?: (ctx: StmtGetdiagContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_getdiag`. + * Exit a parse tree produced by `PostgreSqlParser.stmtGetdiag`. * @param ctx the parse tree */ - exitStmt_getdiag?: (ctx: Stmt_getdiagContext) => void; + exitStmtGetdiag?: (ctx: StmtGetdiagContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.getdiag_list_item`. + * Enter a parse tree produced by `PostgreSqlParser.getdiagListItem`. * @param ctx the parse tree */ - enterGetdiag_list_item?: (ctx: Getdiag_list_itemContext) => void; + enterGetdiagListItem?: (ctx: GetdiagListItemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.getdiag_list_item`. + * Exit a parse tree produced by `PostgreSqlParser.getdiagListItem`. * @param ctx the parse tree */ - exitGetdiag_list_item?: (ctx: Getdiag_list_itemContext) => void; + exitGetdiagListItem?: (ctx: GetdiagListItemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.assign_var`. + * Enter a parse tree produced by `PostgreSqlParser.assignVar`. * @param ctx the parse tree */ - enterAssign_var?: (ctx: Assign_varContext) => void; + enterAssignVar?: (ctx: AssignVarContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.assign_var`. + * Exit a parse tree produced by `PostgreSqlParser.assignVar`. * @param ctx the parse tree */ - exitAssign_var?: (ctx: Assign_varContext) => void; + exitAssignVar?: (ctx: AssignVarContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_if`. + * Enter a parse tree produced by `PostgreSqlParser.stmtIf`. * @param ctx the parse tree */ - enterStmt_if?: (ctx: Stmt_ifContext) => void; + enterStmtIf?: (ctx: StmtIfContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_if`. + * Exit a parse tree produced by `PostgreSqlParser.stmtIf`. * @param ctx the parse tree */ - exitStmt_if?: (ctx: Stmt_ifContext) => void; + exitStmtIf?: (ctx: StmtIfContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_else`. + * Enter a parse tree produced by `PostgreSqlParser.stmtElse`. * @param ctx the parse tree */ - enterStmt_else?: (ctx: Stmt_elseContext) => void; + enterStmtElse?: (ctx: StmtElseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_else`. + * Exit a parse tree produced by `PostgreSqlParser.stmtElse`. * @param ctx the parse tree */ - exitStmt_else?: (ctx: Stmt_elseContext) => void; + exitStmtElse?: (ctx: StmtElseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_case`. + * Enter a parse tree produced by `PostgreSqlParser.stmtCase`. * @param ctx the parse tree */ - enterStmt_case?: (ctx: Stmt_caseContext) => void; + enterStmtCase?: (ctx: StmtCaseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_case`. + * Exit a parse tree produced by `PostgreSqlParser.stmtCase`. * @param ctx the parse tree */ - exitStmt_case?: (ctx: Stmt_caseContext) => void; + exitStmtCase?: (ctx: StmtCaseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_loop_while_for`. + * Enter a parse tree produced by `PostgreSqlParser.stmtLoopWhileFor`. * @param ctx the parse tree */ - enterStmt_loop_while_for?: (ctx: Stmt_loop_while_forContext) => void; + enterStmtLoopWhileFor?: (ctx: StmtLoopWhileForContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_loop_while_for`. + * Exit a parse tree produced by `PostgreSqlParser.stmtLoopWhileFor`. * @param ctx the parse tree */ - exitStmt_loop_while_for?: (ctx: Stmt_loop_while_forContext) => void; + exitStmtLoopWhileFor?: (ctx: StmtLoopWhileForContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.for_control`. + * Enter a parse tree produced by `PostgreSqlParser.forControl`. * @param ctx the parse tree */ - enterFor_control?: (ctx: For_controlContext) => void; + enterForControl?: (ctx: ForControlContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.for_control`. + * Exit a parse tree produced by `PostgreSqlParser.forControl`. * @param ctx the parse tree */ - exitFor_control?: (ctx: For_controlContext) => void; + exitForControl?: (ctx: ForControlContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_foreach_a`. + * Enter a parse tree produced by `PostgreSqlParser.stmtForeach`. * @param ctx the parse tree */ - enterStmt_foreach_a?: (ctx: Stmt_foreach_aContext) => void; + enterStmtForeach?: (ctx: StmtForeachContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_foreach_a`. + * Exit a parse tree produced by `PostgreSqlParser.stmtForeach`. * @param ctx the parse tree */ - exitStmt_foreach_a?: (ctx: Stmt_foreach_aContext) => void; + exitStmtForeach?: (ctx: StmtForeachContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_exit`. + * Enter a parse tree produced by `PostgreSqlParser.stmtExit`. * @param ctx the parse tree */ - enterStmt_exit?: (ctx: Stmt_exitContext) => void; + enterStmtExit?: (ctx: StmtExitContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_exit`. + * Exit a parse tree produced by `PostgreSqlParser.stmtExit`. * @param ctx the parse tree */ - exitStmt_exit?: (ctx: Stmt_exitContext) => void; + exitStmtExit?: (ctx: StmtExitContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_return`. + * Enter a parse tree produced by `PostgreSqlParser.stmtReturn`. * @param ctx the parse tree */ - enterStmt_return?: (ctx: Stmt_returnContext) => void; + enterStmtReturn?: (ctx: StmtReturnContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_return`. + * Exit a parse tree produced by `PostgreSqlParser.stmtReturn`. * @param ctx the parse tree */ - exitStmt_return?: (ctx: Stmt_returnContext) => void; + exitStmtReturn?: (ctx: StmtReturnContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_raise`. + * Enter a parse tree produced by `PostgreSqlParser.stmtRaise`. * @param ctx the parse tree */ - enterStmt_raise?: (ctx: Stmt_raiseContext) => void; + enterStmtRaise?: (ctx: StmtRaiseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_raise`. + * Exit a parse tree produced by `PostgreSqlParser.stmtRaise`. * @param ctx the parse tree */ - exitStmt_raise?: (ctx: Stmt_raiseContext) => void; + exitStmtRaise?: (ctx: StmtRaiseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_raise_using_elem`. + * Enter a parse tree produced by `PostgreSqlParser.optRaiseUsingElem`. * @param ctx the parse tree */ - enterOpt_raise_using_elem?: (ctx: Opt_raise_using_elemContext) => void; + enterOptRaiseUsingElem?: (ctx: OptRaiseUsingElemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_raise_using_elem`. + * Exit a parse tree produced by `PostgreSqlParser.optRaiseUsingElem`. * @param ctx the parse tree */ - exitOpt_raise_using_elem?: (ctx: Opt_raise_using_elemContext) => void; + exitOptRaiseUsingElem?: (ctx: OptRaiseUsingElemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_assert`. + * Enter a parse tree produced by `PostgreSqlParser.stmtAssert`. * @param ctx the parse tree */ - enterStmt_assert?: (ctx: Stmt_assertContext) => void; + enterStmtAssert?: (ctx: StmtAssertContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_assert`. + * Exit a parse tree produced by `PostgreSqlParser.stmtAssert`. * @param ctx the parse tree */ - exitStmt_assert?: (ctx: Stmt_assertContext) => void; + exitStmtAssert?: (ctx: StmtAssertContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.loop_body`. + * Enter a parse tree produced by `PostgreSqlParser.loopBody`. * @param ctx the parse tree */ - enterLoop_body?: (ctx: Loop_bodyContext) => void; + enterLoopBody?: (ctx: LoopBodyContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.loop_body`. + * Exit a parse tree produced by `PostgreSqlParser.loopBody`. * @param ctx the parse tree */ - exitLoop_body?: (ctx: Loop_bodyContext) => void; + exitLoopBody?: (ctx: LoopBodyContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_execsql`. + * Enter a parse tree produced by `PostgreSqlParser.stmtExecsql`. * @param ctx the parse tree */ - enterStmt_execsql?: (ctx: Stmt_execsqlContext) => void; + enterStmtExecsql?: (ctx: StmtExecsqlContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_execsql`. + * Exit a parse tree produced by `PostgreSqlParser.stmtExecsql`. * @param ctx the parse tree */ - exitStmt_execsql?: (ctx: Stmt_execsqlContext) => void; + exitStmtExecsql?: (ctx: StmtExecsqlContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_dynexecute`. + * Enter a parse tree produced by `PostgreSqlParser.stmtDynexecute`. * @param ctx the parse tree */ - enterStmt_dynexecute?: (ctx: Stmt_dynexecuteContext) => void; + enterStmtDynexecute?: (ctx: StmtDynexecuteContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_dynexecute`. + * Exit a parse tree produced by `PostgreSqlParser.stmtDynexecute`. * @param ctx the parse tree */ - exitStmt_dynexecute?: (ctx: Stmt_dynexecuteContext) => void; + exitStmtDynexecute?: (ctx: StmtDynexecuteContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_execute_into`. + * Enter a parse tree produced by `PostgreSqlParser.optExecuteInto`. * @param ctx the parse tree */ - enterOpt_execute_into?: (ctx: Opt_execute_intoContext) => void; + enterOptExecuteInto?: (ctx: OptExecuteIntoContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_execute_into`. + * Exit a parse tree produced by `PostgreSqlParser.optExecuteInto`. * @param ctx the parse tree */ - exitOpt_execute_into?: (ctx: Opt_execute_intoContext) => void; + exitOptExecuteInto?: (ctx: OptExecuteIntoContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_open`. + * Enter a parse tree produced by `PostgreSqlParser.stmtOpen`. * @param ctx the parse tree */ - enterStmt_open?: (ctx: Stmt_openContext) => void; + enterStmtOpen?: (ctx: StmtOpenContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_open`. + * Exit a parse tree produced by `PostgreSqlParser.stmtOpen`. * @param ctx the parse tree */ - exitStmt_open?: (ctx: Stmt_openContext) => void; + exitStmtOpen?: (ctx: StmtOpenContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_open_bound_list_item`. + * Enter a parse tree produced by `PostgreSqlParser.optOpenBoundListItem`. * @param ctx the parse tree */ - enterOpt_open_bound_list_item?: (ctx: Opt_open_bound_list_itemContext) => void; + enterOptOpenBoundListItem?: (ctx: OptOpenBoundListItemContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_open_bound_list_item`. + * Exit a parse tree produced by `PostgreSqlParser.optOpenBoundListItem`. * @param ctx the parse tree */ - exitOpt_open_bound_list_item?: (ctx: Opt_open_bound_list_itemContext) => void; + exitOptOpenBoundListItem?: (ctx: OptOpenBoundListItemContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_fetch`. + * Enter a parse tree produced by `PostgreSqlParser.stmtFetch`. * @param ctx the parse tree */ - enterStmt_fetch?: (ctx: Stmt_fetchContext) => void; + enterStmtFetch?: (ctx: StmtFetchContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_fetch`. + * Exit a parse tree produced by `PostgreSqlParser.stmtFetch`. * @param ctx the parse tree */ - exitStmt_fetch?: (ctx: Stmt_fetchContext) => void; + exitStmtFetch?: (ctx: StmtFetchContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.opt_fetch_direction`. + * Enter a parse tree produced by `PostgreSqlParser.optFetchFirection`. * @param ctx the parse tree */ - enterOpt_fetch_direction?: (ctx: Opt_fetch_directionContext) => void; + enterOptFetchFirection?: (ctx: OptFetchFirectionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.opt_fetch_direction`. + * Exit a parse tree produced by `PostgreSqlParser.optFetchFirection`. * @param ctx the parse tree */ - exitOpt_fetch_direction?: (ctx: Opt_fetch_directionContext) => void; + exitOptFetchFirection?: (ctx: OptFetchFirectionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_move`. + * Enter a parse tree produced by `PostgreSqlParser.stmtMove`. * @param ctx the parse tree */ - enterStmt_move?: (ctx: Stmt_moveContext) => void; + enterStmtMove?: (ctx: StmtMoveContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_move`. + * Exit a parse tree produced by `PostgreSqlParser.stmtMove`. * @param ctx the parse tree */ - exitStmt_move?: (ctx: Stmt_moveContext) => void; + exitStmtMove?: (ctx: StmtMoveContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.mergeStmt`. * @param ctx the parse tree @@ -5271,55 +5178,55 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitMergeStmt?: (ctx: MergeStmtContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.data_source`. + * Enter a parse tree produced by `PostgreSqlParser.dataSource`. * @param ctx the parse tree */ - enterData_source?: (ctx: Data_sourceContext) => void; + enterDataSource?: (ctx: DataSourceContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.data_source`. + * Exit a parse tree produced by `PostgreSqlParser.dataSource`. * @param ctx the parse tree */ - exitData_source?: (ctx: Data_sourceContext) => void; + exitDataSource?: (ctx: DataSourceContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.merge_when_clause`. + * Enter a parse tree produced by `PostgreSqlParser.mergeWhenClause`. * @param ctx the parse tree */ - enterMerge_when_clause?: (ctx: Merge_when_clauseContext) => void; + enterMergeWhenClause?: (ctx: MergeWhenClauseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.merge_when_clause`. + * Exit a parse tree produced by `PostgreSqlParser.mergeWhenClause`. * @param ctx the parse tree */ - exitMerge_when_clause?: (ctx: Merge_when_clauseContext) => void; + exitMergeWhenClause?: (ctx: MergeWhenClauseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.merge_insert`. + * Enter a parse tree produced by `PostgreSqlParser.mergeInsert`. * @param ctx the parse tree */ - enterMerge_insert?: (ctx: Merge_insertContext) => void; + enterMergeInsert?: (ctx: MergeInsertContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.merge_insert`. + * Exit a parse tree produced by `PostgreSqlParser.mergeInsert`. * @param ctx the parse tree */ - exitMerge_insert?: (ctx: Merge_insertContext) => void; + exitMergeInsert?: (ctx: MergeInsertContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.merge_update`. + * Enter a parse tree produced by `PostgreSqlParser.mergeUpdate`. * @param ctx the parse tree */ - enterMerge_update?: (ctx: Merge_updateContext) => void; + enterMergeUpdate?: (ctx: MergeUpdateContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.merge_update`. + * Exit a parse tree produced by `PostgreSqlParser.mergeUpdate`. * @param ctx the parse tree */ - exitMerge_update?: (ctx: Merge_updateContext) => void; + exitMergeUpdate?: (ctx: MergeUpdateContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.default_values_or_values`. + * Enter a parse tree produced by `PostgreSqlParser.defaultValuesOrValues`. * @param ctx the parse tree */ - enterDefault_values_or_values?: (ctx: Default_values_or_valuesContext) => void; + enterDefaultValuesOrValues?: (ctx: DefaultValuesOrValuesContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.default_values_or_values`. + * Exit a parse tree produced by `PostgreSqlParser.defaultValuesOrValues`. * @param ctx the parse tree */ - exitDefault_values_or_values?: (ctx: Default_values_or_valuesContext) => void; + exitDefaultValuesOrValues?: (ctx: DefaultValuesOrValuesContext) => void; /** * Enter a parse tree produced by `PostgreSqlParser.exprofdefault`. * @param ctx the parse tree @@ -5331,95 +5238,95 @@ export class PostgreSqlParserListener implements ParseTreeListener { */ exitExprofdefault?: (ctx: ExprofdefaultContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_close`. + * Enter a parse tree produced by `PostgreSqlParser.stmtClose`. * @param ctx the parse tree */ - enterStmt_close?: (ctx: Stmt_closeContext) => void; + enterStmtClose?: (ctx: StmtCloseContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_close`. + * Exit a parse tree produced by `PostgreSqlParser.stmtClose`. * @param ctx the parse tree */ - exitStmt_close?: (ctx: Stmt_closeContext) => void; + exitStmtClose?: (ctx: StmtCloseContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_null`. + * Enter a parse tree produced by `PostgreSqlParser.stmtNull`. * @param ctx the parse tree */ - enterStmt_null?: (ctx: Stmt_nullContext) => void; + enterStmtNull?: (ctx: StmtNullContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_null`. + * Exit a parse tree produced by `PostgreSqlParser.stmtNull`. * @param ctx the parse tree */ - exitStmt_null?: (ctx: Stmt_nullContext) => void; + exitStmtNull?: (ctx: StmtNullContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_commit_or_rollback`. + * Enter a parse tree produced by `PostgreSqlParser.stmtCommitOrRollback`. * @param ctx the parse tree */ - enterStmt_commit_or_rollback?: (ctx: Stmt_commit_or_rollbackContext) => void; + enterStmtCommitOrRollback?: (ctx: StmtCommitOrRollbackContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_commit_or_rollback`. + * Exit a parse tree produced by `PostgreSqlParser.stmtCommitOrRollback`. * @param ctx the parse tree */ - exitStmt_commit_or_rollback?: (ctx: Stmt_commit_or_rollbackContext) => void; + exitStmtCommitOrRollback?: (ctx: StmtCommitOrRollbackContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.stmt_set`. + * Enter a parse tree produced by `PostgreSqlParser.stmtSet`. * @param ctx the parse tree */ - enterStmt_set?: (ctx: Stmt_setContext) => void; + enterStmtSet?: (ctx: StmtSetContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.stmt_set`. + * Exit a parse tree produced by `PostgreSqlParser.stmtSet`. * @param ctx the parse tree */ - exitStmt_set?: (ctx: Stmt_setContext) => void; + exitStmtSet?: (ctx: StmtSetContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.cursor_variable`. + * Enter a parse tree produced by `PostgreSqlParser.cursorVariable`. * @param ctx the parse tree */ - enterCursor_variable?: (ctx: Cursor_variableContext) => void; + enterCursorVariable?: (ctx: CursorVariableContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.cursor_variable`. + * Exit a parse tree produced by `PostgreSqlParser.cursorVariable`. * @param ctx the parse tree */ - exitCursor_variable?: (ctx: Cursor_variableContext) => void; + exitCursorVariable?: (ctx: CursorVariableContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.exception_sect`. + * Enter a parse tree produced by `PostgreSqlParser.exceptionSect`. * @param ctx the parse tree */ - enterException_sect?: (ctx: Exception_sectContext) => void; + enterExceptionSect?: (ctx: ExceptionSectContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.exception_sect`. + * Exit a parse tree produced by `PostgreSqlParser.exceptionSect`. * @param ctx the parse tree */ - exitException_sect?: (ctx: Exception_sectContext) => void; + exitExceptionSect?: (ctx: ExceptionSectContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.proc_condition`. + * Enter a parse tree produced by `PostgreSqlParser.procCondition`. * @param ctx the parse tree */ - enterProc_condition?: (ctx: Proc_conditionContext) => void; + enterProcCondition?: (ctx: ProcConditionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.proc_condition`. + * Exit a parse tree produced by `PostgreSqlParser.procCondition`. * @param ctx the parse tree */ - exitProc_condition?: (ctx: Proc_conditionContext) => void; + exitProcCondition?: (ctx: ProcConditionContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.any_identifier`. + * Enter a parse tree produced by `PostgreSqlParser.anyIdentifier`. * @param ctx the parse tree */ - enterAny_identifier?: (ctx: Any_identifierContext) => void; + enterAnyIdentifier?: (ctx: AnyIdentifierContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.any_identifier`. + * Exit a parse tree produced by `PostgreSqlParser.anyIdentifier`. * @param ctx the parse tree */ - exitAny_identifier?: (ctx: Any_identifierContext) => void; + exitAnyIdentifier?: (ctx: AnyIdentifierContext) => void; /** - * Enter a parse tree produced by `PostgreSqlParser.sql_expression`. + * Enter a parse tree produced by `PostgreSqlParser.sqlExpression`. * @param ctx the parse tree */ - enterSql_expression?: (ctx: Sql_expressionContext) => void; + enterSqlExpression?: (ctx: SqlExpressionContext) => void; /** - * Exit a parse tree produced by `PostgreSqlParser.sql_expression`. + * Exit a parse tree produced by `PostgreSqlParser.sqlExpression`. * @param ctx the parse tree */ - exitSql_expression?: (ctx: Sql_expressionContext) => void; + exitSqlExpression?: (ctx: SqlExpressionContext) => void; visitTerminal(node: TerminalNode): void {} visitErrorNode(node: ErrorNode): void {} diff --git a/src/lib/postgresql/PostgreSqlParserVisitor.ts b/src/lib/postgresql/PostgreSqlParserVisitor.ts index 37f2ebb2d..608cfb6ea 100644 --- a/src/lib/postgresql/PostgreSqlParserVisitor.ts +++ b/src/lib/postgresql/PostgreSqlParserVisitor.ts @@ -19,27 +19,27 @@ import { CreateUserStmtContext } from "./PostgreSqlParser.js"; import { AlterRoleStmtContext } from "./PostgreSqlParser.js"; import { AlterRoleSetStmtContext } from "./PostgreSqlParser.js"; import { AlterRoutineStmtContext } from "./PostgreSqlParser.js"; -import { Alter_routine_clauseContext } from "./PostgreSqlParser.js"; -import { Routine_actionContext } from "./PostgreSqlParser.js"; +import { AlterRoutineClauseContext } from "./PostgreSqlParser.js"; +import { RoutineActionContext } from "./PostgreSqlParser.js"; import { CreateGroupStmtContext } from "./PostgreSqlParser.js"; import { AlterGroupStmtContext } from "./PostgreSqlParser.js"; import { CreateSchemaStmtContext } from "./PostgreSqlParser.js"; import { SchemaNameCreateContext } from "./PostgreSqlParser.js"; -import { Schema_stmtContext } from "./PostgreSqlParser.js"; +import { SchemaStmtContext } from "./PostgreSqlParser.js"; import { VariableSetStmtContext } from "./PostgreSqlParser.js"; -import { Set_restContext } from "./PostgreSqlParser.js"; -import { Generic_setContext } from "./PostgreSqlParser.js"; -import { Set_rest_moreContext } from "./PostgreSqlParser.js"; -import { Var_nameContext } from "./PostgreSqlParser.js"; -import { Var_listContext } from "./PostgreSqlParser.js"; -import { Var_valueContext } from "./PostgreSqlParser.js"; -import { Iso_levelContext } from "./PostgreSqlParser.js"; -import { Opt_boolean_or_string_columnContext } from "./PostgreSqlParser.js"; -import { Opt_boolean_or_stringContext } from "./PostgreSqlParser.js"; -import { Zone_valueContext } from "./PostgreSqlParser.js"; +import { SetRestContext } from "./PostgreSqlParser.js"; +import { GenericSetContext } from "./PostgreSqlParser.js"; +import { SetRestMoreContext } from "./PostgreSqlParser.js"; +import { VarNameContext } from "./PostgreSqlParser.js"; +import { VarListContext } from "./PostgreSqlParser.js"; +import { VarValueContext } from "./PostgreSqlParser.js"; +import { IsoLevelContext } from "./PostgreSqlParser.js"; +import { OptBooleanOrStringColumnContext } from "./PostgreSqlParser.js"; +import { BooleanOrStringContext } from "./PostgreSqlParser.js"; +import { ZoneValueContext } from "./PostgreSqlParser.js"; import { NonReservedWordOrStringConstContext } from "./PostgreSqlParser.js"; import { VariableResetStmtContext } from "./PostgreSqlParser.js"; -import { Reset_restContext } from "./PostgreSqlParser.js"; +import { ResetRestContext } from "./PostgreSqlParser.js"; import { SetOrResetClauseContext } from "./PostgreSqlParser.js"; import { FunctionSetOrResetClauseContext } from "./PostgreSqlParser.js"; import { VariableShowStmtContext } from "./PostgreSqlParser.js"; @@ -47,28 +47,24 @@ import { ConstraintsSetStmtContext } from "./PostgreSqlParser.js"; import { CheckPointStmtContext } from "./PostgreSqlParser.js"; import { DiscardStmtContext } from "./PostgreSqlParser.js"; import { AlterTableStmtContext } from "./PostgreSqlParser.js"; -import { Alter_table_cmdsContext } from "./PostgreSqlParser.js"; -import { Partition_bound_specContext } from "./PostgreSqlParser.js"; -import { Partition_bound_clauseContext } from "./PostgreSqlParser.js"; -import { Partition_bound_chooseContext } from "./PostgreSqlParser.js"; -import { Partition_with_clauseContext } from "./PostgreSqlParser.js"; -import { Partition_cmdContext } from "./PostgreSqlParser.js"; -import { Index_partition_cmdContext } from "./PostgreSqlParser.js"; -import { Alter_table_cmdContext } from "./PostgreSqlParser.js"; -import { Alter_column_defaultContext } from "./PostgreSqlParser.js"; -import { Opt_drop_behaviorContext } from "./PostgreSqlParser.js"; -import { Opt_collate_clauseContext } from "./PostgreSqlParser.js"; +import { AlterTableCmdsContext } from "./PostgreSqlParser.js"; +import { PartitionCmdContext } from "./PostgreSqlParser.js"; +import { IndexPartitionCmdContext } from "./PostgreSqlParser.js"; +import { AlterTableCmdContext } from "./PostgreSqlParser.js"; +import { AlterColumnDefaultContext } from "./PostgreSqlParser.js"; +import { OptDropBehaviorContext } from "./PostgreSqlParser.js"; +import { CollateClauseContext } from "./PostgreSqlParser.js"; import { RelOptionsContext } from "./PostgreSqlParser.js"; import { OptRelOptionsContext } from "./PostgreSqlParser.js"; import { RelOptionElemContext } from "./PostgreSqlParser.js"; import { PartitionBoundSpecContext } from "./PostgreSqlParser.js"; import { AlterCompositeTypeStmtContext } from "./PostgreSqlParser.js"; -import { Alter_type_cmdContext } from "./PostgreSqlParser.js"; +import { AlterTypeCmdContext } from "./PostgreSqlParser.js"; import { ClosePortalStmtContext } from "./PostgreSqlParser.js"; import { CopyStmtContext } from "./PostgreSqlParser.js"; import { CopyOptionsNoparensContext } from "./PostgreSqlParser.js"; import { CopyOptionsContext } from "./PostgreSqlParser.js"; -import { Copy_generic_opt_elemContext } from "./PostgreSqlParser.js"; +import { CopyGenericOptElemContext } from "./PostgreSqlParser.js"; import { ColumnCreateTableContext } from "./PostgreSqlParser.js"; import { OptTempContext } from "./PostgreSqlParser.js"; import { OptTypedTableElEmentListContext } from "./PostgreSqlParser.js"; @@ -78,23 +74,23 @@ import { TypedTableElementContext } from "./PostgreSqlParser.js"; import { Column_defContext } from "./PostgreSqlParser.js"; import { ColConstraintContext } from "./PostgreSqlParser.js"; import { ColConstraintElemContext } from "./PostgreSqlParser.js"; -import { Generated_whenContext } from "./PostgreSqlParser.js"; +import { GeneratedWhenContext } from "./PostgreSqlParser.js"; import { TableLikeOptionContext } from "./PostgreSqlParser.js"; import { ConstraintElemContext } from "./PostgreSqlParser.js"; -import { Opt_column_listContext } from "./PostgreSqlParser.js"; -import { Opt_column_list_createContext } from "./PostgreSqlParser.js"; -import { Column_listContext } from "./PostgreSqlParser.js"; -import { Opt_c_includeContext } from "./PostgreSqlParser.js"; -import { Key_matchContext } from "./PostgreSqlParser.js"; +import { OptColumnListContext } from "./PostgreSqlParser.js"; +import { ColumnListCreateContext } from "./PostgreSqlParser.js"; +import { ColumnListContext } from "./PostgreSqlParser.js"; +import { ColumnListIncludeContext } from "./PostgreSqlParser.js"; +import { KeyMatchContext } from "./PostgreSqlParser.js"; import { ExclusionConstraintElemContext } from "./PostgreSqlParser.js"; -import { Key_actionsContext } from "./PostgreSqlParser.js"; -import { Key_updateContext } from "./PostgreSqlParser.js"; -import { Key_deleteContext } from "./PostgreSqlParser.js"; -import { Key_actionContext } from "./PostgreSqlParser.js"; +import { KeyActionsContext } from "./PostgreSqlParser.js"; +import { KeyUpdateContext } from "./PostgreSqlParser.js"; +import { KeyDeleteContext } from "./PostgreSqlParser.js"; +import { KeyActionContext } from "./PostgreSqlParser.js"; import { OptInheritContext } from "./PostgreSqlParser.js"; import { PartitionSpecContext } from "./PostgreSqlParser.js"; -import { Part_elemContext } from "./PostgreSqlParser.js"; -import { Table_access_method_clauseContext } from "./PostgreSqlParser.js"; +import { PartElemContext } from "./PostgreSqlParser.js"; +import { TableAccessMethodClauseContext } from "./PostgreSqlParser.js"; import { OptWithContext } from "./PostgreSqlParser.js"; import { OnCommitOptionContext } from "./PostgreSqlParser.js"; import { OptTableSpaceContext } from "./PostgreSqlParser.js"; @@ -103,8 +99,8 @@ import { ExistingIndexContext } from "./PostgreSqlParser.js"; import { CreateStatsStmtContext } from "./PostgreSqlParser.js"; import { AlterStatsStmtContext } from "./PostgreSqlParser.js"; import { QueryCreateTableContext } from "./PostgreSqlParser.js"; -import { Create_as_targetContext } from "./PostgreSqlParser.js"; -import { Opt_with_dataContext } from "./PostgreSqlParser.js"; +import { CreateAsTargetContext } from "./PostgreSqlParser.js"; +import { OptWithDataContext } from "./PostgreSqlParser.js"; import { CreateMaterializedViewContext } from "./PostgreSqlParser.js"; import { RefreshMaterializedViewStmtContext } from "./PostgreSqlParser.js"; import { CreateSeqStmtContext } from "./PostgreSqlParser.js"; @@ -117,14 +113,14 @@ import { CreateExtensionStmtContext } from "./PostgreSqlParser.js"; import { AlterExtensionStmtContext } from "./PostgreSqlParser.js"; import { AlterExtensionContentsStmtContext } from "./PostgreSqlParser.js"; import { CreateFdwStmtContext } from "./PostgreSqlParser.js"; -import { Fdw_optionContext } from "./PostgreSqlParser.js"; +import { FdwOptionContext } from "./PostgreSqlParser.js"; import { AlterFdwStmtContext } from "./PostgreSqlParser.js"; -import { Create_generic_optionsContext } from "./PostgreSqlParser.js"; -import { Alter_generic_optionsContext } from "./PostgreSqlParser.js"; -import { Alter_generic_option_elemContext } from "./PostgreSqlParser.js"; -import { Generic_option_elemContext } from "./PostgreSqlParser.js"; +import { CreateGenericOptionsContext } from "./PostgreSqlParser.js"; +import { AlterGenericOptionsContext } from "./PostgreSqlParser.js"; +import { AlterGenericOptionElemContext } from "./PostgreSqlParser.js"; +import { GenericOptionElemContext } from "./PostgreSqlParser.js"; import { CreateForeignServerStmtContext } from "./PostgreSqlParser.js"; -import { Foreign_server_versionContext } from "./PostgreSqlParser.js"; +import { ForeignServerVersionContext } from "./PostgreSqlParser.js"; import { AlterForeignServerStmtContext } from "./PostgreSqlParser.js"; import { CreateForeignTableContext } from "./PostgreSqlParser.js"; import { CreatePartitionForeignTableContext } from "./PostgreSqlParser.js"; @@ -134,7 +130,7 @@ import { AlterUserMappingStmtContext } from "./PostgreSqlParser.js"; import { CreatePolicyStmtContext } from "./PostgreSqlParser.js"; import { AlterPolicyStmtContext } from "./PostgreSqlParser.js"; import { AlterProcedureStmtContext } from "./PostgreSqlParser.js"; -import { Procedure_actionContext } from "./PostgreSqlParser.js"; +import { ProcedureActionContext } from "./PostgreSqlParser.js"; import { RowSecurityOptionalExprContext } from "./PostgreSqlParser.js"; import { RowSecurityOptionalWithCheckContext } from "./PostgreSqlParser.js"; import { CreateAccessMethodStmtContext } from "./PostgreSqlParser.js"; @@ -143,21 +139,21 @@ import { TriggerActionTimeContext } from "./PostgreSqlParser.js"; import { TriggerEventsContext } from "./PostgreSqlParser.js"; import { TriggerOneEventContext } from "./PostgreSqlParser.js"; import { TriggerWhenContext } from "./PostgreSqlParser.js"; -import { Function_or_procedureContext } from "./PostgreSqlParser.js"; +import { FunctionOrProcedureContext } from "./PostgreSqlParser.js"; import { TriggerFuncArgsContext } from "./PostgreSqlParser.js"; import { TriggerFuncArgContext } from "./PostgreSqlParser.js"; import { ConstraintAttributeElemContext } from "./PostgreSqlParser.js"; import { CreateEventTrigStmtContext } from "./PostgreSqlParser.js"; -import { Event_trigger_when_itemContext } from "./PostgreSqlParser.js"; +import { EventTriggerWhenItemContext } from "./PostgreSqlParser.js"; import { AlterEventTrigStmtContext } from "./PostgreSqlParser.js"; import { CreateAssertionStmtContext } from "./PostgreSqlParser.js"; import { DefineStmtContext } from "./PostgreSqlParser.js"; import { DefinitionContext } from "./PostgreSqlParser.js"; -import { Def_elemContext } from "./PostgreSqlParser.js"; -import { Def_argContext } from "./PostgreSqlParser.js"; -import { Old_aggregate_elemContext } from "./PostgreSqlParser.js"; +import { DefElemContext } from "./PostgreSqlParser.js"; +import { DefArgContext } from "./PostgreSqlParser.js"; +import { OldAggregateElemContext } from "./PostgreSqlParser.js"; import { AlterEnumStmtContext } from "./PostgreSqlParser.js"; -import { Opt_if_not_existsContext } from "./PostgreSqlParser.js"; +import { IfNotExistsContext } from "./PostgreSqlParser.js"; import { CreateOperatorClassStmtContext } from "./PostgreSqlParser.js"; import { OpClassItemContext } from "./PostgreSqlParser.js"; import { CreateOperatorFamilyStmtContext } from "./PostgreSqlParser.js"; @@ -165,73 +161,73 @@ import { AlterOperatorFamilyStmtContext } from "./PostgreSqlParser.js"; import { OpClassDropContext } from "./PostgreSqlParser.js"; import { ReassignOwnedStmtContext } from "./PostgreSqlParser.js"; import { DropStmtContext } from "./PostgreSqlParser.js"; -import { Object_type_any_nameContext } from "./PostgreSqlParser.js"; -import { Object_type_nameContext } from "./PostgreSqlParser.js"; -import { Any_name_listContext } from "./PostgreSqlParser.js"; -import { Any_nameContext } from "./PostgreSqlParser.js"; +import { ObjectTypeAnyNameContext } from "./PostgreSqlParser.js"; +import { ObjectTypeNameContext } from "./PostgreSqlParser.js"; +import { AnyNameListContext } from "./PostgreSqlParser.js"; +import { AnyNameContext } from "./PostgreSqlParser.js"; import { AttrsContext } from "./PostgreSqlParser.js"; import { TruncateStmtContext } from "./PostgreSqlParser.js"; -import { Truncate_tableContext } from "./PostgreSqlParser.js"; +import { TruncateTableContext } from "./PostgreSqlParser.js"; import { CommentStmtContext } from "./PostgreSqlParser.js"; import { SecLabelStmtContext } from "./PostgreSqlParser.js"; import { FetchStmtContext } from "./PostgreSqlParser.js"; import { Fetch_argsContext } from "./PostgreSqlParser.js"; -import { From_inContext } from "./PostgreSqlParser.js"; +import { FromInContext } from "./PostgreSqlParser.js"; import { GrantStmtContext } from "./PostgreSqlParser.js"; import { RevokeStmtContext } from "./PostgreSqlParser.js"; import { PrivilegesContext } from "./PostgreSqlParser.js"; import { BeforePrivilegeSelectContext } from "./PostgreSqlParser.js"; import { PrivilegeContext } from "./PostgreSqlParser.js"; -import { Privilege_targetContext } from "./PostgreSqlParser.js"; -import { Grantee_listContext } from "./PostgreSqlParser.js"; +import { PrivilegeTargetContext } from "./PostgreSqlParser.js"; +import { GranteeListContext } from "./PostgreSqlParser.js"; import { GrantRoleStmtContext } from "./PostgreSqlParser.js"; import { RevokeRoleStmtContext } from "./PostgreSqlParser.js"; import { AlterDefaultPrivilegesStmtContext } from "./PostgreSqlParser.js"; import { DefaclactionContext } from "./PostgreSqlParser.js"; -import { Defacl_privilege_targetContext } from "./PostgreSqlParser.js"; +import { DefaclPrivilegeTargetContext } from "./PostgreSqlParser.js"; import { IndexStmtContext } from "./PostgreSqlParser.js"; -import { Index_paramsContext } from "./PostgreSqlParser.js"; -import { Index_elemContext } from "./PostgreSqlParser.js"; +import { IndexParamsContext } from "./PostgreSqlParser.js"; +import { IndexElemContext } from "./PostgreSqlParser.js"; import { CreateFunctionStmtContext } from "./PostgreSqlParser.js"; -import { Opt_or_replaceContext } from "./PostgreSqlParser.js"; -import { Func_argsContext } from "./PostgreSqlParser.js"; -import { Func_args_listContext } from "./PostgreSqlParser.js"; +import { OrReplaceOptContext } from "./PostgreSqlParser.js"; +import { FuncArgsContext } from "./PostgreSqlParser.js"; +import { FuncArgsListContext } from "./PostgreSqlParser.js"; import { RoutineWithArgTypesListContext } from "./PostgreSqlParser.js"; import { RoutineWithArgTypesContext } from "./PostgreSqlParser.js"; import { ProcedureWithArgTypesListContext } from "./PostgreSqlParser.js"; import { ProcedureWithArgTypesContext } from "./PostgreSqlParser.js"; import { FunctionWithArgTypesListContext } from "./PostgreSqlParser.js"; import { FunctionWithArgTypesContext } from "./PostgreSqlParser.js"; -import { Func_argContext } from "./PostgreSqlParser.js"; -import { Arg_classContext } from "./PostgreSqlParser.js"; -import { Func_typeContext } from "./PostgreSqlParser.js"; -import { Func_arg_with_defaultContext } from "./PostgreSqlParser.js"; -import { Aggregate_argsContext } from "./PostgreSqlParser.js"; +import { FuncArgContext } from "./PostgreSqlParser.js"; +import { ArgClassContext } from "./PostgreSqlParser.js"; +import { FuncTypeContext } from "./PostgreSqlParser.js"; +import { FuncArgWithDefaultContext } from "./PostgreSqlParser.js"; +import { AggregateArgsContext } from "./PostgreSqlParser.js"; import { AggregateWithArgTypesContext } from "./PostgreSqlParser.js"; -import { Common_func_opt_itemContext } from "./PostgreSqlParser.js"; -import { Create_func_opt_itemContext } from "./PostgreSqlParser.js"; -import { Opt_definitionContext } from "./PostgreSqlParser.js"; -import { Table_func_columnContext } from "./PostgreSqlParser.js"; +import { CommonFuncOptItemContext } from "./PostgreSqlParser.js"; +import { CreateFuncOptItemContext } from "./PostgreSqlParser.js"; +import { OptDefinitionContext } from "./PostgreSqlParser.js"; +import { TableFuncColumnContext } from "./PostgreSqlParser.js"; import { AlterFunctionStmtContext } from "./PostgreSqlParser.js"; import { RemoveFuncStmtContext } from "./PostgreSqlParser.js"; import { RemoveAggregateStmtContext } from "./PostgreSqlParser.js"; import { RemoveOperatorStmtContext } from "./PostgreSqlParser.js"; import { OperatorArgTypesContext } from "./PostgreSqlParser.js"; -import { Any_operatorContext } from "./PostgreSqlParser.js"; +import { AnyOperatorContext } from "./PostgreSqlParser.js"; import { OperatorWithArgTypesContext } from "./PostgreSqlParser.js"; import { DoStmtContext } from "./PostgreSqlParser.js"; import { CreateCastStmtContext } from "./PostgreSqlParser.js"; -import { Opt_if_existsContext } from "./PostgreSqlParser.js"; +import { IfExistsContext } from "./PostgreSqlParser.js"; import { CreateTransformStmtContext } from "./PostgreSqlParser.js"; -import { Sql_with_functionContext } from "./PostgreSqlParser.js"; +import { SqlWithFunctionContext } from "./PostgreSqlParser.js"; import { ReindexStmtContext } from "./PostgreSqlParser.js"; import { AlterTblSpcStmtContext } from "./PostgreSqlParser.js"; import { RenameStmtContext } from "./PostgreSqlParser.js"; import { AlterObjectDependsStmtContext } from "./PostgreSqlParser.js"; import { AlterObjectSchemaStmtContext } from "./PostgreSqlParser.js"; import { AlterOperatorStmtContext } from "./PostgreSqlParser.js"; -import { Operator_def_listContext } from "./PostgreSqlParser.js"; -import { Operator_def_elemContext } from "./PostgreSqlParser.js"; +import { OperatorDefListContext } from "./PostgreSqlParser.js"; +import { OperatorDefElemContext } from "./PostgreSqlParser.js"; import { AlterTypeStmtContext } from "./PostgreSqlParser.js"; import { AlterOwnerStmtContext } from "./PostgreSqlParser.js"; import { CreatePublicationStmtContext } from "./PostgreSqlParser.js"; @@ -241,17 +237,17 @@ import { AlterSubscriptionStmtContext } from "./PostgreSqlParser.js"; import { RuleStmtContext } from "./PostgreSqlParser.js"; import { RuleActionStmtContext } from "./PostgreSqlParser.js"; import { NotifyStmtContext } from "./PostgreSqlParser.js"; -import { Notify_payloadContext } from "./PostgreSqlParser.js"; +import { NotifyPayloadContext } from "./PostgreSqlParser.js"; import { ListenStmtContext } from "./PostgreSqlParser.js"; import { UnListenStmtContext } from "./PostgreSqlParser.js"; import { TransactionStmtContext } from "./PostgreSqlParser.js"; -import { Opt_transactionContext } from "./PostgreSqlParser.js"; -import { Transaction_mode_itemContext } from "./PostgreSqlParser.js"; -import { Transaction_mode_listContext } from "./PostgreSqlParser.js"; +import { OptTransactionContext } from "./PostgreSqlParser.js"; +import { TransactionModeItemContext } from "./PostgreSqlParser.js"; +import { TransactionModeListContext } from "./PostgreSqlParser.js"; import { CreateViewContext } from "./PostgreSqlParser.js"; import { LoadStmtContext } from "./PostgreSqlParser.js"; import { CreateDatabaseContext } from "./PostgreSqlParser.js"; -import { Create_db_opt_itemContext } from "./PostgreSqlParser.js"; +import { CreateDbOptItemContext } from "./PostgreSqlParser.js"; import { AlterDatabaseStmtContext } from "./PostgreSqlParser.js"; import { AlterDatabaseSetStmtContext } from "./PostgreSqlParser.js"; import { AlterCollationStmtContext } from "./PostgreSqlParser.js"; @@ -264,88 +260,88 @@ import { CreateConversionStmtContext } from "./PostgreSqlParser.js"; import { ClusterStmtContext } from "./PostgreSqlParser.js"; import { VacuumStmtContext } from "./PostgreSqlParser.js"; import { AnalyzeStmtContext } from "./PostgreSqlParser.js"; -import { Analyze_keywordContext } from "./PostgreSqlParser.js"; -import { Vac_analyze_option_elemContext } from "./PostgreSqlParser.js"; -import { Analyze_option_elemContext } from "./PostgreSqlParser.js"; -import { Opt_verboseContext } from "./PostgreSqlParser.js"; -import { Vacuum_relationContext } from "./PostgreSqlParser.js"; -import { Vacuum_relation_listContext } from "./PostgreSqlParser.js"; +import { AnalyzeKeywordContext } from "./PostgreSqlParser.js"; +import { VacAnalyzeOptionElemContext } from "./PostgreSqlParser.js"; +import { AnalyzeOptionElemContext } from "./PostgreSqlParser.js"; +import { OptVerboseContext } from "./PostgreSqlParser.js"; +import { VacuumRelationContext } from "./PostgreSqlParser.js"; +import { VacuumRelationListContext } from "./PostgreSqlParser.js"; import { ExplainStmtContext } from "./PostgreSqlParser.js"; import { ExplainableStmtContext } from "./PostgreSqlParser.js"; -import { Explain_option_listContext } from "./PostgreSqlParser.js"; +import { ExplainOptionListContext } from "./PostgreSqlParser.js"; import { PrepareStmtContext } from "./PostgreSqlParser.js"; -import { Prep_type_clauseContext } from "./PostgreSqlParser.js"; +import { PrepTypeClauseContext } from "./PostgreSqlParser.js"; import { PreParableStmtContext } from "./PostgreSqlParser.js"; import { ExecuteStmtContext } from "./PostgreSqlParser.js"; -import { Execute_param_clauseContext } from "./PostgreSqlParser.js"; +import { ExecuteParamClauseContext } from "./PostgreSqlParser.js"; import { DealLocateStmtContext } from "./PostgreSqlParser.js"; import { InsertStatementContext } from "./PostgreSqlParser.js"; -import { Insert_restContext } from "./PostgreSqlParser.js"; -import { Insert_column_listContext } from "./PostgreSqlParser.js"; -import { Insert_column_itemContext } from "./PostgreSqlParser.js"; -import { Returning_clauseContext } from "./PostgreSqlParser.js"; +import { InsertRestContext } from "./PostgreSqlParser.js"; +import { InsertColumnListContext } from "./PostgreSqlParser.js"; +import { InsertColumnItemContext } from "./PostgreSqlParser.js"; +import { ReturningClauseContext } from "./PostgreSqlParser.js"; import { DeleteStmtContext } from "./PostgreSqlParser.js"; import { LockStmtContext } from "./PostgreSqlParser.js"; import { UpdateStmtContext } from "./PostgreSqlParser.js"; -import { Set_clause_listContext } from "./PostgreSqlParser.js"; -import { Set_clauseContext } from "./PostgreSqlParser.js"; +import { SetClauseListContext } from "./PostgreSqlParser.js"; +import { SetClauseContext } from "./PostgreSqlParser.js"; import { DeclareCursorStmtContext } from "./PostgreSqlParser.js"; import { SelectStatementContext } from "./PostgreSqlParser.js"; -import { Select_with_parensContext } from "./PostgreSqlParser.js"; -import { Select_no_parensContext } from "./PostgreSqlParser.js"; -import { Select_clauseContext } from "./PostgreSqlParser.js"; -import { Simple_selectContext } from "./PostgreSqlParser.js"; -import { Set_operator_with_all_or_distinctContext } from "./PostgreSqlParser.js"; -import { With_clauseContext } from "./PostgreSqlParser.js"; -import { Common_table_exprContext } from "./PostgreSqlParser.js"; -import { Search_clauseContext } from "./PostgreSqlParser.js"; -import { Cycle_clauseContext } from "./PostgreSqlParser.js"; -import { Into_clauseContext } from "./PostgreSqlParser.js"; +import { SelectWithParensContext } from "./PostgreSqlParser.js"; +import { SelectNoParensContext } from "./PostgreSqlParser.js"; +import { SelectClauseContext } from "./PostgreSqlParser.js"; +import { SimpleSelectContext } from "./PostgreSqlParser.js"; +import { SetOperatorWithAllOrDistinctContext } from "./PostgreSqlParser.js"; +import { WithClauseContext } from "./PostgreSqlParser.js"; +import { CommonTableExprContext } from "./PostgreSqlParser.js"; +import { SearchClauseContext } from "./PostgreSqlParser.js"; +import { CycleClauseContext } from "./PostgreSqlParser.js"; +import { IntoClauseContext } from "./PostgreSqlParser.js"; import { OptTempTableNameContext } from "./PostgreSqlParser.js"; -import { Distinct_clauseContext } from "./PostgreSqlParser.js"; -import { Sort_clauseContext } from "./PostgreSqlParser.js"; +import { DistinctClauseContext } from "./PostgreSqlParser.js"; +import { SortClauseContext } from "./PostgreSqlParser.js"; import { SortByContext } from "./PostgreSqlParser.js"; -import { Select_limitContext } from "./PostgreSqlParser.js"; -import { Limit_clauseContext } from "./PostgreSqlParser.js"; -import { Fetch_clauseContext } from "./PostgreSqlParser.js"; -import { Offset_clauseContext } from "./PostgreSqlParser.js"; -import { Select_fetch_first_valueContext } from "./PostgreSqlParser.js"; -import { Group_clauseContext } from "./PostgreSqlParser.js"; -import { Group_by_listContext } from "./PostgreSqlParser.js"; -import { Group_by_itemContext } from "./PostgreSqlParser.js"; -import { For_locking_clauseContext } from "./PostgreSqlParser.js"; -import { Values_clauseContext } from "./PostgreSqlParser.js"; -import { From_clauseContext } from "./PostgreSqlParser.js"; -import { From_listContext } from "./PostgreSqlParser.js"; -import { Table_refContext } from "./PostgreSqlParser.js"; -import { Alias_clauseContext } from "./PostgreSqlParser.js"; -import { Func_alias_clauseContext } from "./PostgreSqlParser.js"; -import { Join_typeContext } from "./PostgreSqlParser.js"; -import { Join_qualContext } from "./PostgreSqlParser.js"; -import { Relation_exprContext } from "./PostgreSqlParser.js"; -import { Publication_relation_exprContext } from "./PostgreSqlParser.js"; -import { Relation_expr_listContext } from "./PostgreSqlParser.js"; -import { Relation_expr_opt_aliasContext } from "./PostgreSqlParser.js"; +import { SelectLimitContext } from "./PostgreSqlParser.js"; +import { LimitClauseContext } from "./PostgreSqlParser.js"; +import { FetchClauseContext } from "./PostgreSqlParser.js"; +import { OffsetClauseContext } from "./PostgreSqlParser.js"; +import { SelectFetchFirstValueContext } from "./PostgreSqlParser.js"; +import { GroupClauseContext } from "./PostgreSqlParser.js"; +import { GroupByListContext } from "./PostgreSqlParser.js"; +import { GroupByItemContext } from "./PostgreSqlParser.js"; +import { ForLockingClauseContext } from "./PostgreSqlParser.js"; +import { ValuesClauseContext } from "./PostgreSqlParser.js"; +import { FromClauseContext } from "./PostgreSqlParser.js"; +import { FromListContext } from "./PostgreSqlParser.js"; +import { TableRefContext } from "./PostgreSqlParser.js"; +import { AliasClauseContext } from "./PostgreSqlParser.js"; +import { FuncAliasClauseContext } from "./PostgreSqlParser.js"; +import { JoinTypeContext } from "./PostgreSqlParser.js"; +import { JoinQualContext } from "./PostgreSqlParser.js"; +import { RelationExprContext } from "./PostgreSqlParser.js"; +import { PublicationRelationExprContext } from "./PostgreSqlParser.js"; +import { RelationExprListContext } from "./PostgreSqlParser.js"; +import { RelationExprOptAliasContext } from "./PostgreSqlParser.js"; import { TableSampleClauseContext } from "./PostgreSqlParser.js"; -import { Func_tableContext } from "./PostgreSqlParser.js"; +import { FuncTableContext } from "./PostgreSqlParser.js"; import { RowsFromItemContext } from "./PostgreSqlParser.js"; -import { Where_clauseContext } from "./PostgreSqlParser.js"; -import { Where_or_current_clauseContext } from "./PostgreSqlParser.js"; +import { WhereClauseContext } from "./PostgreSqlParser.js"; +import { WhereOrCurrentClauseContext } from "./PostgreSqlParser.js"; import { TableFuncElementListContext } from "./PostgreSqlParser.js"; import { TableFuncElementContext } from "./PostgreSqlParser.js"; import { XmlTableContext } from "./PostgreSqlParser.js"; import { XmlTableColumnElContext } from "./PostgreSqlParser.js"; -import { Xml_namespace_elContext } from "./PostgreSqlParser.js"; +import { XmlNamespaceEleContext } from "./PostgreSqlParser.js"; import { TypenameContext } from "./PostgreSqlParser.js"; import { SimpleTypeNameContext } from "./PostgreSqlParser.js"; import { ConstTypeNameContext } from "./PostgreSqlParser.js"; import { NumericContext } from "./PostgreSqlParser.js"; -import { Opt_floatContext } from "./PostgreSqlParser.js"; +import { OptFloatContext } from "./PostgreSqlParser.js"; import { BitContext } from "./PostgreSqlParser.js"; import { CharacterContext } from "./PostgreSqlParser.js"; import { ConstDatetimeContext } from "./PostgreSqlParser.js"; -import { Opt_intervalContext } from "./PostgreSqlParser.js"; -import { Interval_secondContext } from "./PostgreSqlParser.js"; +import { OptIntervalContext } from "./PostgreSqlParser.js"; +import { IntervalSecondContext } from "./PostgreSqlParser.js"; import { ComparisonOperatorContext } from "./PostgreSqlParser.js"; import { ExpressionContext } from "./PostgreSqlParser.js"; import { LogicalNotContext } from "./PostgreSqlParser.js"; @@ -365,58 +361,58 @@ import { ArithmeticBinaryContext } from "./PostgreSqlParser.js"; import { ArithmeticUnaryContext } from "./PostgreSqlParser.js"; import { AtTimeZoneContext } from "./PostgreSqlParser.js"; import { PrimaryExpressionContext } from "./PostgreSqlParser.js"; -import { Func_applicationContext } from "./PostgreSqlParser.js"; +import { FuncApplicationContext } from "./PostgreSqlParser.js"; import { Func_exprContext } from "./PostgreSqlParser.js"; -import { Func_expr_windowlessContext } from "./PostgreSqlParser.js"; -import { Func_expr_common_subexprContext } from "./PostgreSqlParser.js"; -import { Xml_attribute_listContext } from "./PostgreSqlParser.js"; -import { Xml_attribute_elContext } from "./PostgreSqlParser.js"; -import { Document_or_contentContext } from "./PostgreSqlParser.js"; +import { FuncExprWindowlessContext } from "./PostgreSqlParser.js"; +import { FuncExprCommonSubExprContext } from "./PostgreSqlParser.js"; +import { XmlAttributeListContext } from "./PostgreSqlParser.js"; +import { XmlAttributeElContext } from "./PostgreSqlParser.js"; +import { DocumentOrContentContext } from "./PostgreSqlParser.js"; import { XmlExistsArgumentContext } from "./PostgreSqlParser.js"; -import { Xml_passing_mechContext } from "./PostgreSqlParser.js"; -import { Window_clauseContext } from "./PostgreSqlParser.js"; -import { Window_definitionContext } from "./PostgreSqlParser.js"; +import { XmlPassingMechContext } from "./PostgreSqlParser.js"; +import { WindowClauseContext } from "./PostgreSqlParser.js"; +import { WindowDefinitionContext } from "./PostgreSqlParser.js"; import { Over_clauseContext } from "./PostgreSqlParser.js"; -import { Window_specificationContext } from "./PostgreSqlParser.js"; -import { Opt_frame_clauseContext } from "./PostgreSqlParser.js"; -import { Frame_boundContext } from "./PostgreSqlParser.js"; +import { WindowSpecificationContext } from "./PostgreSqlParser.js"; +import { OptFrameClauseContext } from "./PostgreSqlParser.js"; +import { FrameBoundContext } from "./PostgreSqlParser.js"; import { RowContext } from "./PostgreSqlParser.js"; -import { Explicit_rowContext } from "./PostgreSqlParser.js"; -import { Sub_typeContext } from "./PostgreSqlParser.js"; -import { All_opContext } from "./PostgreSqlParser.js"; -import { MathopContext } from "./PostgreSqlParser.js"; -import { Qual_opContext } from "./PostgreSqlParser.js"; -import { Qual_all_opContext } from "./PostgreSqlParser.js"; -import { Subquery_OpContext } from "./PostgreSqlParser.js"; -import { Expr_listContext } from "./PostgreSqlParser.js"; -import { Column_exprContext } from "./PostgreSqlParser.js"; -import { Column_expr_no_parenContext } from "./PostgreSqlParser.js"; -import { Func_arg_listContext } from "./PostgreSqlParser.js"; -import { Func_arg_exprContext } from "./PostgreSqlParser.js"; -import { Array_exprContext } from "./PostgreSqlParser.js"; -import { Extract_argContext } from "./PostgreSqlParser.js"; -import { Unicode_normal_formContext } from "./PostgreSqlParser.js"; -import { Substr_listContext } from "./PostgreSqlParser.js"; +import { ExplicitRowContext } from "./PostgreSqlParser.js"; +import { SubTypeContext } from "./PostgreSqlParser.js"; +import { AllOpContext } from "./PostgreSqlParser.js"; +import { MathOpContext } from "./PostgreSqlParser.js"; +import { QualOpContext } from "./PostgreSqlParser.js"; +import { QualAllOpContext } from "./PostgreSqlParser.js"; +import { SubqueryOperatorContext } from "./PostgreSqlParser.js"; +import { ExprListContext } from "./PostgreSqlParser.js"; +import { ColumnExprContext } from "./PostgreSqlParser.js"; +import { ColumnExprNoParenContext } from "./PostgreSqlParser.js"; +import { FuncArgListContext } from "./PostgreSqlParser.js"; +import { FuncArgExprContext } from "./PostgreSqlParser.js"; +import { ArrayExprContext } from "./PostgreSqlParser.js"; +import { ExtractArgContext } from "./PostgreSqlParser.js"; +import { UnicodeNormalFormContext } from "./PostgreSqlParser.js"; +import { SubstrListContext } from "./PostgreSqlParser.js"; import { When_clauseContext } from "./PostgreSqlParser.js"; -import { Indirection_elContext } from "./PostgreSqlParser.js"; +import { IndirectionElContext } from "./PostgreSqlParser.js"; import { IndirectionContext } from "./PostgreSqlParser.js"; -import { Opt_indirectionContext } from "./PostgreSqlParser.js"; -import { Target_listContext } from "./PostgreSqlParser.js"; +import { OptIndirectionContext } from "./PostgreSqlParser.js"; +import { TargetListContext } from "./PostgreSqlParser.js"; import { Target_labelContext } from "./PostgreSqlParser.js"; import { Target_starContext } from "./PostgreSqlParser.js"; -import { Qualified_name_listContext } from "./PostgreSqlParser.js"; -import { Table_name_listContext } from "./PostgreSqlParser.js"; -import { Schema_name_listContext } from "./PostgreSqlParser.js"; -import { Database_nameListContext } from "./PostgreSqlParser.js"; -import { TablespaceNameCreateContext } from "./PostgreSqlParser.js"; -import { TablespaceNameContext } from "./PostgreSqlParser.js"; +import { QualifiedNameListContext } from "./PostgreSqlParser.js"; +import { TableNameListContext } from "./PostgreSqlParser.js"; +import { SchemaNameListContext } from "./PostgreSqlParser.js"; +import { DatabaseNameListContext } from "./PostgreSqlParser.js"; +import { TableSpaceNameCreateContext } from "./PostgreSqlParser.js"; +import { TableSpaceNameContext } from "./PostgreSqlParser.js"; import { TableNameCreateContext } from "./PostgreSqlParser.js"; import { TableNameContext } from "./PostgreSqlParser.js"; import { ViewNameCreateContext } from "./PostgreSqlParser.js"; import { ViewNameContext } from "./PostgreSqlParser.js"; -import { Qualified_nameContext } from "./PostgreSqlParser.js"; -import { Tablespace_name_listContext } from "./PostgreSqlParser.js"; -import { Name_listContext } from "./PostgreSqlParser.js"; +import { QualifiedNameContext } from "./PostgreSqlParser.js"; +import { TableSpaceNameListContext } from "./PostgreSqlParser.js"; +import { NameListContext } from "./PostgreSqlParser.js"; import { DatabaseNameCreateContext } from "./PostgreSqlParser.js"; import { DatabaseNameContext } from "./PostgreSqlParser.js"; import { SchemaNameContext } from "./PostgreSqlParser.js"; @@ -425,7 +421,6 @@ import { RoutineNameContext } from "./PostgreSqlParser.js"; import { ProcedureNameContext } from "./PostgreSqlParser.js"; import { ProcedureNameCreateContext } from "./PostgreSqlParser.js"; import { ColumnNameContext } from "./PostgreSqlParser.js"; -import { ColumnNameMatchContext } from "./PostgreSqlParser.js"; import { ColumnNameCreateContext } from "./PostgreSqlParser.js"; import { FunctionNameCreateContext } from "./PostgreSqlParser.js"; import { FunctionNameContext } from "./PostgreSqlParser.js"; @@ -433,64 +428,64 @@ import { StringConstContext } from "./PostgreSqlParser.js"; import { AnysconstContext } from "./PostgreSqlParser.js"; import { SignedConstContext } from "./PostgreSqlParser.js"; import { RoleSpecContext } from "./PostgreSqlParser.js"; -import { Role_listContext } from "./PostgreSqlParser.js"; +import { RoleListContext } from "./PostgreSqlParser.js"; import { ColIdContext } from "./PostgreSqlParser.js"; -import { Type_function_nameContext } from "./PostgreSqlParser.js"; +import { TypeFunctionNameContext } from "./PostgreSqlParser.js"; import { NonReservedWordContext } from "./PostgreSqlParser.js"; import { ColLabelContext } from "./PostgreSqlParser.js"; import { IdentifierContext } from "./PostgreSqlParser.js"; -import { Unreserved_keywordContext } from "./PostgreSqlParser.js"; -import { Col_name_keywordContext } from "./PostgreSqlParser.js"; -import { Type_func_name_keywordContext } from "./PostgreSqlParser.js"; -import { Reserved_keywordContext } from "./PostgreSqlParser.js"; -import { Pl_blockContext } from "./PostgreSqlParser.js"; -import { Label_declContext } from "./PostgreSqlParser.js"; -import { Decl_statementContext } from "./PostgreSqlParser.js"; -import { Decl_cursor_argContext } from "./PostgreSqlParser.js"; -import { Assign_operatorContext } from "./PostgreSqlParser.js"; -import { Proc_stmtContext } from "./PostgreSqlParser.js"; -import { Stmt_performContext } from "./PostgreSqlParser.js"; -import { Stmt_callContext } from "./PostgreSqlParser.js"; -import { Stmt_assignContext } from "./PostgreSqlParser.js"; -import { Stmt_getdiagContext } from "./PostgreSqlParser.js"; -import { Getdiag_list_itemContext } from "./PostgreSqlParser.js"; -import { Assign_varContext } from "./PostgreSqlParser.js"; -import { Stmt_ifContext } from "./PostgreSqlParser.js"; -import { Stmt_elseContext } from "./PostgreSqlParser.js"; -import { Stmt_caseContext } from "./PostgreSqlParser.js"; -import { Stmt_loop_while_forContext } from "./PostgreSqlParser.js"; -import { For_controlContext } from "./PostgreSqlParser.js"; -import { Stmt_foreach_aContext } from "./PostgreSqlParser.js"; -import { Stmt_exitContext } from "./PostgreSqlParser.js"; -import { Stmt_returnContext } from "./PostgreSqlParser.js"; -import { Stmt_raiseContext } from "./PostgreSqlParser.js"; -import { Opt_raise_using_elemContext } from "./PostgreSqlParser.js"; -import { Stmt_assertContext } from "./PostgreSqlParser.js"; -import { Loop_bodyContext } from "./PostgreSqlParser.js"; -import { Stmt_execsqlContext } from "./PostgreSqlParser.js"; -import { Stmt_dynexecuteContext } from "./PostgreSqlParser.js"; -import { Opt_execute_intoContext } from "./PostgreSqlParser.js"; -import { Stmt_openContext } from "./PostgreSqlParser.js"; -import { Opt_open_bound_list_itemContext } from "./PostgreSqlParser.js"; -import { Stmt_fetchContext } from "./PostgreSqlParser.js"; -import { Opt_fetch_directionContext } from "./PostgreSqlParser.js"; -import { Stmt_moveContext } from "./PostgreSqlParser.js"; +import { UnreservedKeywordContext } from "./PostgreSqlParser.js"; +import { ColNameKeywordContext } from "./PostgreSqlParser.js"; +import { TypeFuncNameKeywordContext } from "./PostgreSqlParser.js"; +import { ReservedKeywordContext } from "./PostgreSqlParser.js"; +import { PlBlockContext } from "./PostgreSqlParser.js"; +import { LabelDeclContext } from "./PostgreSqlParser.js"; +import { DeclStatementContext } from "./PostgreSqlParser.js"; +import { DeclCursorArgContext } from "./PostgreSqlParser.js"; +import { AssignOperatorContext } from "./PostgreSqlParser.js"; +import { ProcStmtContext } from "./PostgreSqlParser.js"; +import { StmtPerformContext } from "./PostgreSqlParser.js"; +import { StmtCallContext } from "./PostgreSqlParser.js"; +import { StmtAssignContext } from "./PostgreSqlParser.js"; +import { StmtGetdiagContext } from "./PostgreSqlParser.js"; +import { GetdiagListItemContext } from "./PostgreSqlParser.js"; +import { AssignVarContext } from "./PostgreSqlParser.js"; +import { StmtIfContext } from "./PostgreSqlParser.js"; +import { StmtElseContext } from "./PostgreSqlParser.js"; +import { StmtCaseContext } from "./PostgreSqlParser.js"; +import { StmtLoopWhileForContext } from "./PostgreSqlParser.js"; +import { ForControlContext } from "./PostgreSqlParser.js"; +import { StmtForeachContext } from "./PostgreSqlParser.js"; +import { StmtExitContext } from "./PostgreSqlParser.js"; +import { StmtReturnContext } from "./PostgreSqlParser.js"; +import { StmtRaiseContext } from "./PostgreSqlParser.js"; +import { OptRaiseUsingElemContext } from "./PostgreSqlParser.js"; +import { StmtAssertContext } from "./PostgreSqlParser.js"; +import { LoopBodyContext } from "./PostgreSqlParser.js"; +import { StmtExecsqlContext } from "./PostgreSqlParser.js"; +import { StmtDynexecuteContext } from "./PostgreSqlParser.js"; +import { OptExecuteIntoContext } from "./PostgreSqlParser.js"; +import { StmtOpenContext } from "./PostgreSqlParser.js"; +import { OptOpenBoundListItemContext } from "./PostgreSqlParser.js"; +import { StmtFetchContext } from "./PostgreSqlParser.js"; +import { OptFetchFirectionContext } from "./PostgreSqlParser.js"; +import { StmtMoveContext } from "./PostgreSqlParser.js"; import { MergeStmtContext } from "./PostgreSqlParser.js"; -import { Data_sourceContext } from "./PostgreSqlParser.js"; -import { Merge_when_clauseContext } from "./PostgreSqlParser.js"; -import { Merge_insertContext } from "./PostgreSqlParser.js"; -import { Merge_updateContext } from "./PostgreSqlParser.js"; -import { Default_values_or_valuesContext } from "./PostgreSqlParser.js"; +import { DataSourceContext } from "./PostgreSqlParser.js"; +import { MergeWhenClauseContext } from "./PostgreSqlParser.js"; +import { MergeInsertContext } from "./PostgreSqlParser.js"; +import { MergeUpdateContext } from "./PostgreSqlParser.js"; +import { DefaultValuesOrValuesContext } from "./PostgreSqlParser.js"; import { ExprofdefaultContext } from "./PostgreSqlParser.js"; -import { Stmt_closeContext } from "./PostgreSqlParser.js"; -import { Stmt_nullContext } from "./PostgreSqlParser.js"; -import { Stmt_commit_or_rollbackContext } from "./PostgreSqlParser.js"; -import { Stmt_setContext } from "./PostgreSqlParser.js"; -import { Cursor_variableContext } from "./PostgreSqlParser.js"; -import { Exception_sectContext } from "./PostgreSqlParser.js"; -import { Proc_conditionContext } from "./PostgreSqlParser.js"; -import { Any_identifierContext } from "./PostgreSqlParser.js"; -import { Sql_expressionContext } from "./PostgreSqlParser.js"; +import { StmtCloseContext } from "./PostgreSqlParser.js"; +import { StmtNullContext } from "./PostgreSqlParser.js"; +import { StmtCommitOrRollbackContext } from "./PostgreSqlParser.js"; +import { StmtSetContext } from "./PostgreSqlParser.js"; +import { CursorVariableContext } from "./PostgreSqlParser.js"; +import { ExceptionSectContext } from "./PostgreSqlParser.js"; +import { ProcConditionContext } from "./PostgreSqlParser.js"; +import { AnyIdentifierContext } from "./PostgreSqlParser.js"; +import { SqlExpressionContext } from "./PostgreSqlParser.js"; /** @@ -568,17 +563,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alter_routine_clause`. + * Visit a parse tree produced by `PostgreSqlParser.alterRoutineClause`. * @param ctx the parse tree * @return the visitor result */ - visitAlter_routine_clause?: (ctx: Alter_routine_clauseContext) => Result; + visitAlterRoutineClause?: (ctx: AlterRoutineClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.routine_action`. + * Visit a parse tree produced by `PostgreSqlParser.routineAction`. * @param ctx the parse tree * @return the visitor result */ - visitRoutine_action?: (ctx: Routine_actionContext) => Result; + visitRoutineAction?: (ctx: RoutineActionContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.createGroupStmt`. * @param ctx the parse tree @@ -598,18 +593,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by the `schemaNameCreate` - * labeled alternative in `PostgreSqlParser.schema_name_create`. + * Visit a parse tree produced by `PostgreSqlParser.schemaNameCreate`. * @param ctx the parse tree * @return the visitor result */ visitSchemaNameCreate?: (ctx: SchemaNameCreateContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.schema_stmt`. + * Visit a parse tree produced by `PostgreSqlParser.schemaStmt`. * @param ctx the parse tree * @return the visitor result */ - visitSchema_stmt?: (ctx: Schema_stmtContext) => Result; + visitSchemaStmt?: (ctx: SchemaStmtContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.variableSetStmt`. * @param ctx the parse tree @@ -617,65 +611,65 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.set_rest`. + * Visit a parse tree produced by `PostgreSqlParser.setRest`. * @param ctx the parse tree * @return the visitor result */ - visitSet_rest?: (ctx: Set_restContext) => Result; + visitSetRest?: (ctx: SetRestContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.generic_set`. + * Visit a parse tree produced by `PostgreSqlParser.genericSet`. * @param ctx the parse tree * @return the visitor result */ - visitGeneric_set?: (ctx: Generic_setContext) => Result; + visitGenericSet?: (ctx: GenericSetContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.set_rest_more`. + * Visit a parse tree produced by `PostgreSqlParser.setRestMore`. * @param ctx the parse tree * @return the visitor result */ - visitSet_rest_more?: (ctx: Set_rest_moreContext) => Result; + visitSetRestMore?: (ctx: SetRestMoreContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.var_name`. + * Visit a parse tree produced by `PostgreSqlParser.varName`. * @param ctx the parse tree * @return the visitor result */ - visitVar_name?: (ctx: Var_nameContext) => Result; + visitVarName?: (ctx: VarNameContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.var_list`. + * Visit a parse tree produced by `PostgreSqlParser.varList`. * @param ctx the parse tree * @return the visitor result */ - visitVar_list?: (ctx: Var_listContext) => Result; + visitVarList?: (ctx: VarListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.var_value`. + * Visit a parse tree produced by `PostgreSqlParser.varValue`. * @param ctx the parse tree * @return the visitor result */ - visitVar_value?: (ctx: Var_valueContext) => Result; + visitVarValue?: (ctx: VarValueContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.iso_level`. + * Visit a parse tree produced by `PostgreSqlParser.isoLevel`. * @param ctx the parse tree * @return the visitor result */ - visitIso_level?: (ctx: Iso_levelContext) => Result; + visitIsoLevel?: (ctx: IsoLevelContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_boolean_or_string_column`. + * Visit a parse tree produced by `PostgreSqlParser.optBooleanOrStringColumn`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_boolean_or_string_column?: (ctx: Opt_boolean_or_string_columnContext) => Result; + visitOptBooleanOrStringColumn?: (ctx: OptBooleanOrStringColumnContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_boolean_or_string`. + * Visit a parse tree produced by `PostgreSqlParser.booleanOrString`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_boolean_or_string?: (ctx: Opt_boolean_or_stringContext) => Result; + visitBooleanOrString?: (ctx: BooleanOrStringContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.zone_value`. + * Visit a parse tree produced by `PostgreSqlParser.zoneValue`. * @param ctx the parse tree * @return the visitor result */ - visitZone_value?: (ctx: Zone_valueContext) => Result; + visitZoneValue?: (ctx: ZoneValueContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.nonReservedWordOrStringConst`. * @param ctx the parse tree @@ -689,11 +683,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.reset_rest`. + * Visit a parse tree produced by `PostgreSqlParser.resetRest`. * @param ctx the parse tree * @return the visitor result */ - visitReset_rest?: (ctx: Reset_restContext) => Result; + visitResetRest?: (ctx: ResetRestContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.setOrResetClause`. * @param ctx the parse tree @@ -737,71 +731,47 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alter_table_cmds`. + * Visit a parse tree produced by `PostgreSqlParser.alterTableCmds`. * @param ctx the parse tree * @return the visitor result */ - visitAlter_table_cmds?: (ctx: Alter_table_cmdsContext) => Result; + visitAlterTableCmds?: (ctx: AlterTableCmdsContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.partition_bound_spec`. + * Visit a parse tree produced by `PostgreSqlParser.partitionCmd`. * @param ctx the parse tree * @return the visitor result */ - visitPartition_bound_spec?: (ctx: Partition_bound_specContext) => Result; + visitPartitionCmd?: (ctx: PartitionCmdContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.partition_bound_clause`. + * Visit a parse tree produced by `PostgreSqlParser.indexPartitionCmd`. * @param ctx the parse tree * @return the visitor result */ - visitPartition_bound_clause?: (ctx: Partition_bound_clauseContext) => Result; + visitIndexPartitionCmd?: (ctx: IndexPartitionCmdContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.partition_bound_choose`. + * Visit a parse tree produced by `PostgreSqlParser.alterTableCmd`. * @param ctx the parse tree * @return the visitor result */ - visitPartition_bound_choose?: (ctx: Partition_bound_chooseContext) => Result; + visitAlterTableCmd?: (ctx: AlterTableCmdContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.partition_with_clause`. + * Visit a parse tree produced by `PostgreSqlParser.alterColumnDefault`. * @param ctx the parse tree * @return the visitor result */ - visitPartition_with_clause?: (ctx: Partition_with_clauseContext) => Result; + visitAlterColumnDefault?: (ctx: AlterColumnDefaultContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.partition_cmd`. + * Visit a parse tree produced by `PostgreSqlParser.optDropBehavior`. * @param ctx the parse tree * @return the visitor result */ - visitPartition_cmd?: (ctx: Partition_cmdContext) => Result; + visitOptDropBehavior?: (ctx: OptDropBehaviorContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.index_partition_cmd`. + * Visit a parse tree produced by `PostgreSqlParser.collateClause`. * @param ctx the parse tree * @return the visitor result */ - visitIndex_partition_cmd?: (ctx: Index_partition_cmdContext) => Result; - /** - * Visit a parse tree produced by `PostgreSqlParser.alter_table_cmd`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlter_table_cmd?: (ctx: Alter_table_cmdContext) => Result; - /** - * Visit a parse tree produced by `PostgreSqlParser.alter_column_default`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlter_column_default?: (ctx: Alter_column_defaultContext) => Result; - /** - * Visit a parse tree produced by `PostgreSqlParser.opt_drop_behavior`. - * @param ctx the parse tree - * @return the visitor result - */ - visitOpt_drop_behavior?: (ctx: Opt_drop_behaviorContext) => Result; - /** - * Visit a parse tree produced by `PostgreSqlParser.opt_collate_clause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitOpt_collate_clause?: (ctx: Opt_collate_clauseContext) => Result; + visitCollateClause?: (ctx: CollateClauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.relOptions`. * @param ctx the parse tree @@ -833,11 +803,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alter_type_cmd`. + * Visit a parse tree produced by `PostgreSqlParser.alterTypeCmd`. * @param ctx the parse tree * @return the visitor result */ - visitAlter_type_cmd?: (ctx: Alter_type_cmdContext) => Result; + visitAlterTypeCmd?: (ctx: AlterTypeCmdContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.closePortalStmt`. * @param ctx the parse tree @@ -863,11 +833,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.copy_generic_opt_elem`. + * Visit a parse tree produced by `PostgreSqlParser.copyGenericOptElem`. * @param ctx the parse tree * @return the visitor result */ - visitCopy_generic_opt_elem?: (ctx: Copy_generic_opt_elemContext) => Result; + visitCopyGenericOptElem?: (ctx: CopyGenericOptElemContext) => Result; /** * Visit a parse tree produced by the `columnCreateTable` * labeled alternative in `PostgreSqlParser.createStmt`. @@ -924,11 +894,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.generated_when`. + * Visit a parse tree produced by `PostgreSqlParser.generatedWhen`. * @param ctx the parse tree * @return the visitor result */ - visitGenerated_when?: (ctx: Generated_whenContext) => Result; + visitGeneratedWhen?: (ctx: GeneratedWhenContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.tableLikeOption`. * @param ctx the parse tree @@ -942,35 +912,35 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_column_list`. + * Visit a parse tree produced by `PostgreSqlParser.optColumnList`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_column_list?: (ctx: Opt_column_listContext) => Result; + visitOptColumnList?: (ctx: OptColumnListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_column_list_create`. + * Visit a parse tree produced by `PostgreSqlParser.columnListCreate`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_column_list_create?: (ctx: Opt_column_list_createContext) => Result; + visitColumnListCreate?: (ctx: ColumnListCreateContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.column_list`. + * Visit a parse tree produced by `PostgreSqlParser.columnList`. * @param ctx the parse tree * @return the visitor result */ - visitColumn_list?: (ctx: Column_listContext) => Result; + visitColumnList?: (ctx: ColumnListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_c_include`. + * Visit a parse tree produced by `PostgreSqlParser.columnListInclude`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_c_include?: (ctx: Opt_c_includeContext) => Result; + visitColumnListInclude?: (ctx: ColumnListIncludeContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.key_match`. + * Visit a parse tree produced by `PostgreSqlParser.keyMatch`. * @param ctx the parse tree * @return the visitor result */ - visitKey_match?: (ctx: Key_matchContext) => Result; + visitKeyMatch?: (ctx: KeyMatchContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.exclusionConstraintElem`. * @param ctx the parse tree @@ -978,29 +948,29 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.key_actions`. + * Visit a parse tree produced by `PostgreSqlParser.keyActions`. * @param ctx the parse tree * @return the visitor result */ - visitKey_actions?: (ctx: Key_actionsContext) => Result; + visitKeyActions?: (ctx: KeyActionsContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.key_update`. + * Visit a parse tree produced by `PostgreSqlParser.keyUpdate`. * @param ctx the parse tree * @return the visitor result */ - visitKey_update?: (ctx: Key_updateContext) => Result; + visitKeyUpdate?: (ctx: KeyUpdateContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.key_delete`. + * Visit a parse tree produced by `PostgreSqlParser.keyDelete`. * @param ctx the parse tree * @return the visitor result */ - visitKey_delete?: (ctx: Key_deleteContext) => Result; + visitKeyDelete?: (ctx: KeyDeleteContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.key_action`. + * Visit a parse tree produced by `PostgreSqlParser.keyAction`. * @param ctx the parse tree * @return the visitor result */ - visitKey_action?: (ctx: Key_actionContext) => Result; + visitKeyAction?: (ctx: KeyActionContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.optInherit`. * @param ctx the parse tree @@ -1014,17 +984,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.part_elem`. + * Visit a parse tree produced by `PostgreSqlParser.partElem`. * @param ctx the parse tree * @return the visitor result */ - visitPart_elem?: (ctx: Part_elemContext) => Result; + visitPartElem?: (ctx: PartElemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.table_access_method_clause`. + * Visit a parse tree produced by `PostgreSqlParser.tableAccessMethodClause`. * @param ctx the parse tree * @return the visitor result */ - visitTable_access_method_clause?: (ctx: Table_access_method_clauseContext) => Result; + visitTableAccessMethodClause?: (ctx: TableAccessMethodClauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.optWith`. * @param ctx the parse tree @@ -1075,17 +1045,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.create_as_target`. + * Visit a parse tree produced by `PostgreSqlParser.createAsTarget`. * @param ctx the parse tree * @return the visitor result */ - visitCreate_as_target?: (ctx: Create_as_targetContext) => Result; + visitCreateAsTarget?: (ctx: CreateAsTargetContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_with_data`. + * Visit a parse tree produced by `PostgreSqlParser.optWithData`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_with_data?: (ctx: Opt_with_dataContext) => Result; + visitOptWithData?: (ctx: OptWithDataContext) => Result; /** * Visit a parse tree produced by the `createMaterializedView` * labeled alternative in `PostgreSqlParser.createMaterializedViewStmt`. @@ -1160,11 +1130,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.fdw_option`. + * Visit a parse tree produced by `PostgreSqlParser.fdwOption`. * @param ctx the parse tree * @return the visitor result */ - visitFdw_option?: (ctx: Fdw_optionContext) => Result; + visitFdwOption?: (ctx: FdwOptionContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.alterFdwStmt`. * @param ctx the parse tree @@ -1172,29 +1142,29 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.create_generic_options`. + * Visit a parse tree produced by `PostgreSqlParser.createGenericOptions`. * @param ctx the parse tree * @return the visitor result */ - visitCreate_generic_options?: (ctx: Create_generic_optionsContext) => Result; + visitCreateGenericOptions?: (ctx: CreateGenericOptionsContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alter_generic_options`. + * Visit a parse tree produced by `PostgreSqlParser.alterGenericOptions`. * @param ctx the parse tree * @return the visitor result */ - visitAlter_generic_options?: (ctx: Alter_generic_optionsContext) => Result; + visitAlterGenericOptions?: (ctx: AlterGenericOptionsContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alter_generic_option_elem`. + * Visit a parse tree produced by `PostgreSqlParser.alterGenericOptionElem`. * @param ctx the parse tree * @return the visitor result */ - visitAlter_generic_option_elem?: (ctx: Alter_generic_option_elemContext) => Result; + visitAlterGenericOptionElem?: (ctx: AlterGenericOptionElemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.generic_option_elem`. + * Visit a parse tree produced by `PostgreSqlParser.genericOptionElem`. * @param ctx the parse tree * @return the visitor result */ - visitGeneric_option_elem?: (ctx: Generic_option_elemContext) => Result; + visitGenericOptionElem?: (ctx: GenericOptionElemContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.createForeignServerStmt`. * @param ctx the parse tree @@ -1202,11 +1172,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.foreign_server_version`. + * Visit a parse tree produced by `PostgreSqlParser.foreignServerVersion`. * @param ctx the parse tree * @return the visitor result */ - visitForeign_server_version?: (ctx: Foreign_server_versionContext) => Result; + visitForeignServerVersion?: (ctx: ForeignServerVersionContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.alterForeignServerStmt`. * @param ctx the parse tree @@ -1264,11 +1234,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.procedure_action`. + * Visit a parse tree produced by `PostgreSqlParser.procedureAction`. * @param ctx the parse tree * @return the visitor result */ - visitProcedure_action?: (ctx: Procedure_actionContext) => Result; + visitProcedureAction?: (ctx: ProcedureActionContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.rowSecurityOptionalExpr`. * @param ctx the parse tree @@ -1318,11 +1288,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.function_or_procedure`. + * Visit a parse tree produced by `PostgreSqlParser.functionOrProcedure`. * @param ctx the parse tree * @return the visitor result */ - visitFunction_or_procedure?: (ctx: Function_or_procedureContext) => Result; + visitFunctionOrProcedure?: (ctx: FunctionOrProcedureContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.triggerFuncArgs`. * @param ctx the parse tree @@ -1348,11 +1318,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.event_trigger_when_item`. + * Visit a parse tree produced by `PostgreSqlParser.eventTriggerWhenItem`. * @param ctx the parse tree * @return the visitor result */ - visitEvent_trigger_when_item?: (ctx: Event_trigger_when_itemContext) => Result; + visitEventTriggerWhenItem?: (ctx: EventTriggerWhenItemContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.alterEventTrigStmt`. * @param ctx the parse tree @@ -1378,23 +1348,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.def_elem`. + * Visit a parse tree produced by `PostgreSqlParser.defElem`. * @param ctx the parse tree * @return the visitor result */ - visitDef_elem?: (ctx: Def_elemContext) => Result; + visitDefElem?: (ctx: DefElemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.def_arg`. + * Visit a parse tree produced by `PostgreSqlParser.defArg`. * @param ctx the parse tree * @return the visitor result */ - visitDef_arg?: (ctx: Def_argContext) => Result; + visitDefArg?: (ctx: DefArgContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.old_aggregate_elem`. + * Visit a parse tree produced by `PostgreSqlParser.oldAggregateElem`. * @param ctx the parse tree * @return the visitor result */ - visitOld_aggregate_elem?: (ctx: Old_aggregate_elemContext) => Result; + visitOldAggregateElem?: (ctx: OldAggregateElemContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.alterEnumStmt`. * @param ctx the parse tree @@ -1402,11 +1372,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_if_not_exists`. + * Visit a parse tree produced by `PostgreSqlParser.ifNotExists`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_if_not_exists?: (ctx: Opt_if_not_existsContext) => Result; + visitIfNotExists?: (ctx: IfNotExistsContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.createOperatorClassStmt`. * @param ctx the parse tree @@ -1450,29 +1420,29 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.object_type_any_name`. + * Visit a parse tree produced by `PostgreSqlParser.objectTypeAnyName`. * @param ctx the parse tree * @return the visitor result */ - visitObject_type_any_name?: (ctx: Object_type_any_nameContext) => Result; + visitObjectTypeAnyName?: (ctx: ObjectTypeAnyNameContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.object_type_name`. + * Visit a parse tree produced by `PostgreSqlParser.objectTypeName`. * @param ctx the parse tree * @return the visitor result */ - visitObject_type_name?: (ctx: Object_type_nameContext) => Result; + visitObjectTypeName?: (ctx: ObjectTypeNameContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.any_name_list`. + * Visit a parse tree produced by `PostgreSqlParser.anyNameList`. * @param ctx the parse tree * @return the visitor result */ - visitAny_name_list?: (ctx: Any_name_listContext) => Result; + visitAnyNameList?: (ctx: AnyNameListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.any_name`. + * Visit a parse tree produced by `PostgreSqlParser.anyName`. * @param ctx the parse tree * @return the visitor result */ - visitAny_name?: (ctx: Any_nameContext) => Result; + visitAnyName?: (ctx: AnyNameContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.attrs`. * @param ctx the parse tree @@ -1486,11 +1456,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.truncate_table`. + * Visit a parse tree produced by `PostgreSqlParser.truncateTable`. * @param ctx the parse tree * @return the visitor result */ - visitTruncate_table?: (ctx: Truncate_tableContext) => Result; + visitTruncateTable?: (ctx: TruncateTableContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.commentStmt`. * @param ctx the parse tree @@ -1516,11 +1486,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.from_in`. + * Visit a parse tree produced by `PostgreSqlParser.fromIn`. * @param ctx the parse tree * @return the visitor result */ - visitFrom_in?: (ctx: From_inContext) => Result; + visitFromIn?: (ctx: FromInContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.grantStmt`. * @param ctx the parse tree @@ -1552,17 +1522,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.privilege_target`. + * Visit a parse tree produced by `PostgreSqlParser.privilegeTarget`. * @param ctx the parse tree * @return the visitor result */ - visitPrivilege_target?: (ctx: Privilege_targetContext) => Result; + visitPrivilegeTarget?: (ctx: PrivilegeTargetContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.grantee_list`. + * Visit a parse tree produced by `PostgreSqlParser.granteeList`. * @param ctx the parse tree * @return the visitor result */ - visitGrantee_list?: (ctx: Grantee_listContext) => Result; + visitGranteeList?: (ctx: GranteeListContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.grantRoleStmt`. * @param ctx the parse tree @@ -1588,11 +1558,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.defacl_privilege_target`. + * Visit a parse tree produced by `PostgreSqlParser.defaclPrivilegeTarget`. * @param ctx the parse tree * @return the visitor result */ - visitDefacl_privilege_target?: (ctx: Defacl_privilege_targetContext) => Result; + visitDefaclPrivilegeTarget?: (ctx: DefaclPrivilegeTargetContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.indexStmt`. * @param ctx the parse tree @@ -1600,17 +1570,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.index_params`. + * Visit a parse tree produced by `PostgreSqlParser.indexParams`. * @param ctx the parse tree * @return the visitor result */ - visitIndex_params?: (ctx: Index_paramsContext) => Result; + visitIndexParams?: (ctx: IndexParamsContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.index_elem`. + * Visit a parse tree produced by `PostgreSqlParser.indexElem`. * @param ctx the parse tree * @return the visitor result */ - visitIndex_elem?: (ctx: Index_elemContext) => Result; + visitIndexElem?: (ctx: IndexElemContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.createFunctionStmt`. * @param ctx the parse tree @@ -1618,23 +1588,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_or_replace`. + * Visit a parse tree produced by `PostgreSqlParser.orReplaceOpt`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_or_replace?: (ctx: Opt_or_replaceContext) => Result; + visitOrReplaceOpt?: (ctx: OrReplaceOptContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_args`. + * Visit a parse tree produced by `PostgreSqlParser.funcArgs`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_args?: (ctx: Func_argsContext) => Result; + visitFuncArgs?: (ctx: FuncArgsContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_args_list`. + * Visit a parse tree produced by `PostgreSqlParser.funcArgsList`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_args_list?: (ctx: Func_args_listContext) => Result; + visitFuncArgsList?: (ctx: FuncArgsListContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.routineWithArgTypesList`. * @param ctx the parse tree @@ -1672,35 +1642,35 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_arg`. + * Visit a parse tree produced by `PostgreSqlParser.funcArg`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_arg?: (ctx: Func_argContext) => Result; + visitFuncArg?: (ctx: FuncArgContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.arg_class`. + * Visit a parse tree produced by `PostgreSqlParser.argClass`. * @param ctx the parse tree * @return the visitor result */ - visitArg_class?: (ctx: Arg_classContext) => Result; + visitArgClass?: (ctx: ArgClassContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_type`. + * Visit a parse tree produced by `PostgreSqlParser.funcType`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_type?: (ctx: Func_typeContext) => Result; + visitFuncType?: (ctx: FuncTypeContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_arg_with_default`. + * Visit a parse tree produced by `PostgreSqlParser.funcArgWithDefault`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_arg_with_default?: (ctx: Func_arg_with_defaultContext) => Result; + visitFuncArgWithDefault?: (ctx: FuncArgWithDefaultContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.aggregate_args`. + * Visit a parse tree produced by `PostgreSqlParser.aggregateArgs`. * @param ctx the parse tree * @return the visitor result */ - visitAggregate_args?: (ctx: Aggregate_argsContext) => Result; + visitAggregateArgs?: (ctx: AggregateArgsContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.aggregateWithArgTypes`. * @param ctx the parse tree @@ -1708,29 +1678,29 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.common_func_opt_item`. + * Visit a parse tree produced by `PostgreSqlParser.commonFuncOptItem`. * @param ctx the parse tree * @return the visitor result */ - visitCommon_func_opt_item?: (ctx: Common_func_opt_itemContext) => Result; + visitCommonFuncOptItem?: (ctx: CommonFuncOptItemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.create_func_opt_item`. + * Visit a parse tree produced by `PostgreSqlParser.createFuncOptItem`. * @param ctx the parse tree * @return the visitor result */ - visitCreate_func_opt_item?: (ctx: Create_func_opt_itemContext) => Result; + visitCreateFuncOptItem?: (ctx: CreateFuncOptItemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_definition`. + * Visit a parse tree produced by `PostgreSqlParser.optDefinition`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_definition?: (ctx: Opt_definitionContext) => Result; + visitOptDefinition?: (ctx: OptDefinitionContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.table_func_column`. + * Visit a parse tree produced by `PostgreSqlParser.tableFuncColumn`. * @param ctx the parse tree * @return the visitor result */ - visitTable_func_column?: (ctx: Table_func_columnContext) => Result; + visitTableFuncColumn?: (ctx: TableFuncColumnContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.alterFunctionStmt`. * @param ctx the parse tree @@ -1762,11 +1732,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.any_operator`. + * Visit a parse tree produced by `PostgreSqlParser.anyOperator`. * @param ctx the parse tree * @return the visitor result */ - visitAny_operator?: (ctx: Any_operatorContext) => Result; + visitAnyOperator?: (ctx: AnyOperatorContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.operatorWithArgTypes`. * @param ctx the parse tree @@ -1786,11 +1756,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_if_exists`. + * Visit a parse tree produced by `PostgreSqlParser.ifExists`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_if_exists?: (ctx: Opt_if_existsContext) => Result; + visitIfExists?: (ctx: IfExistsContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.createTransformStmt`. * @param ctx the parse tree @@ -1798,11 +1768,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.sql_with_function`. + * Visit a parse tree produced by `PostgreSqlParser.sqlWithFunction`. * @param ctx the parse tree * @return the visitor result */ - visitSql_with_function?: (ctx: Sql_with_functionContext) => Result; + visitSqlWithFunction?: (ctx: SqlWithFunctionContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.reindexStmt`. * @param ctx the parse tree @@ -1840,17 +1810,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.operator_def_list`. + * Visit a parse tree produced by `PostgreSqlParser.operatorDefList`. * @param ctx the parse tree * @return the visitor result */ - visitOperator_def_list?: (ctx: Operator_def_listContext) => Result; + visitOperatorDefList?: (ctx: OperatorDefListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.operator_def_elem`. + * Visit a parse tree produced by `PostgreSqlParser.operatorDefElem`. * @param ctx the parse tree * @return the visitor result */ - visitOperator_def_elem?: (ctx: Operator_def_elemContext) => Result; + visitOperatorDefElem?: (ctx: OperatorDefElemContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.alterTypeStmt`. * @param ctx the parse tree @@ -1906,11 +1876,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.notify_payload`. + * Visit a parse tree produced by `PostgreSqlParser.notifyPayload`. * @param ctx the parse tree * @return the visitor result */ - visitNotify_payload?: (ctx: Notify_payloadContext) => Result; + visitNotifyPayload?: (ctx: NotifyPayloadContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.listenStmt`. * @param ctx the parse tree @@ -1930,23 +1900,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_transaction`. + * Visit a parse tree produced by `PostgreSqlParser.optTransaction`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_transaction?: (ctx: Opt_transactionContext) => Result; + visitOptTransaction?: (ctx: OptTransactionContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.transaction_mode_item`. + * Visit a parse tree produced by `PostgreSqlParser.transactionModeItem`. * @param ctx the parse tree * @return the visitor result */ - visitTransaction_mode_item?: (ctx: Transaction_mode_itemContext) => Result; + visitTransactionModeItem?: (ctx: TransactionModeItemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.transaction_mode_list`. + * Visit a parse tree produced by `PostgreSqlParser.transactionModeList`. * @param ctx the parse tree * @return the visitor result */ - visitTransaction_mode_list?: (ctx: Transaction_mode_listContext) => Result; + visitTransactionModeList?: (ctx: TransactionModeListContext) => Result; /** * Visit a parse tree produced by the `createView` * labeled alternative in `PostgreSqlParser.viewStmt`. @@ -1968,11 +1938,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.create_db_opt_item`. + * Visit a parse tree produced by `PostgreSqlParser.createDbOptItem`. * @param ctx the parse tree * @return the visitor result */ - visitCreate_db_opt_item?: (ctx: Create_db_opt_itemContext) => Result; + visitCreateDbOptItem?: (ctx: CreateDbOptItemContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.alterDatabaseStmt`. * @param ctx the parse tree @@ -2046,41 +2016,41 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.analyze_keyword`. + * Visit a parse tree produced by `PostgreSqlParser.analyzeKeyword`. * @param ctx the parse tree * @return the visitor result */ - visitAnalyze_keyword?: (ctx: Analyze_keywordContext) => Result; + visitAnalyzeKeyword?: (ctx: AnalyzeKeywordContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.vac_analyze_option_elem`. + * Visit a parse tree produced by `PostgreSqlParser.vacAnalyzeOptionElem`. * @param ctx the parse tree * @return the visitor result */ - visitVac_analyze_option_elem?: (ctx: Vac_analyze_option_elemContext) => Result; + visitVacAnalyzeOptionElem?: (ctx: VacAnalyzeOptionElemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.analyze_option_elem`. + * Visit a parse tree produced by `PostgreSqlParser.analyzeOptionElem`. * @param ctx the parse tree * @return the visitor result */ - visitAnalyze_option_elem?: (ctx: Analyze_option_elemContext) => Result; + visitAnalyzeOptionElem?: (ctx: AnalyzeOptionElemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_verbose`. + * Visit a parse tree produced by `PostgreSqlParser.optVerbose`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_verbose?: (ctx: Opt_verboseContext) => Result; + visitOptVerbose?: (ctx: OptVerboseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.vacuum_relation`. + * Visit a parse tree produced by `PostgreSqlParser.vacuumRelation`. * @param ctx the parse tree * @return the visitor result */ - visitVacuum_relation?: (ctx: Vacuum_relationContext) => Result; + visitVacuumRelation?: (ctx: VacuumRelationContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.vacuum_relation_list`. + * Visit a parse tree produced by `PostgreSqlParser.vacuumRelationList`. * @param ctx the parse tree * @return the visitor result */ - visitVacuum_relation_list?: (ctx: Vacuum_relation_listContext) => Result; + visitVacuumRelationList?: (ctx: VacuumRelationListContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.explainStmt`. * @param ctx the parse tree @@ -2094,11 +2064,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.explain_option_list`. + * Visit a parse tree produced by `PostgreSqlParser.explainOptionList`. * @param ctx the parse tree * @return the visitor result */ - visitExplain_option_list?: (ctx: Explain_option_listContext) => Result; + visitExplainOptionList?: (ctx: ExplainOptionListContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.prepareStmt`. * @param ctx the parse tree @@ -2106,11 +2076,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.prep_type_clause`. + * Visit a parse tree produced by `PostgreSqlParser.prepTypeClause`. * @param ctx the parse tree * @return the visitor result */ - visitPrep_type_clause?: (ctx: Prep_type_clauseContext) => Result; + visitPrepTypeClause?: (ctx: PrepTypeClauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.preParableStmt`. * @param ctx the parse tree @@ -2124,11 +2094,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.execute_param_clause`. + * Visit a parse tree produced by `PostgreSqlParser.executeParamClause`. * @param ctx the parse tree * @return the visitor result */ - visitExecute_param_clause?: (ctx: Execute_param_clauseContext) => Result; + visitExecuteParamClause?: (ctx: ExecuteParamClauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.dealLocateStmt`. * @param ctx the parse tree @@ -2143,29 +2113,29 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.insert_rest`. + * Visit a parse tree produced by `PostgreSqlParser.insertRest`. * @param ctx the parse tree * @return the visitor result */ - visitInsert_rest?: (ctx: Insert_restContext) => Result; + visitInsertRest?: (ctx: InsertRestContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.insert_column_list`. + * Visit a parse tree produced by `PostgreSqlParser.insertColumnList`. * @param ctx the parse tree * @return the visitor result */ - visitInsert_column_list?: (ctx: Insert_column_listContext) => Result; + visitInsertColumnList?: (ctx: InsertColumnListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.insert_column_item`. + * Visit a parse tree produced by `PostgreSqlParser.insertColumnItem`. * @param ctx the parse tree * @return the visitor result */ - visitInsert_column_item?: (ctx: Insert_column_itemContext) => Result; + visitInsertColumnItem?: (ctx: InsertColumnItemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.returning_clause`. + * Visit a parse tree produced by `PostgreSqlParser.returningClause`. * @param ctx the parse tree * @return the visitor result */ - visitReturning_clause?: (ctx: Returning_clauseContext) => Result; + visitReturningClause?: (ctx: ReturningClauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.deleteStmt`. * @param ctx the parse tree @@ -2185,17 +2155,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.set_clause_list`. + * Visit a parse tree produced by `PostgreSqlParser.setClauseList`. * @param ctx the parse tree * @return the visitor result */ - visitSet_clause_list?: (ctx: Set_clause_listContext) => Result; + visitSetClauseList?: (ctx: SetClauseListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.set_clause`. + * Visit a parse tree produced by `PostgreSqlParser.setClause`. * @param ctx the parse tree * @return the visitor result */ - visitSet_clause?: (ctx: Set_clauseContext) => Result; + visitSetClause?: (ctx: SetClauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.declareCursorStmt`. * @param ctx the parse tree @@ -2210,65 +2180,65 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.select_with_parens`. + * Visit a parse tree produced by `PostgreSqlParser.selectWithParens`. * @param ctx the parse tree * @return the visitor result */ - visitSelect_with_parens?: (ctx: Select_with_parensContext) => Result; + visitSelectWithParens?: (ctx: SelectWithParensContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.select_no_parens`. + * Visit a parse tree produced by `PostgreSqlParser.selectNoParens`. * @param ctx the parse tree * @return the visitor result */ - visitSelect_no_parens?: (ctx: Select_no_parensContext) => Result; + visitSelectNoParens?: (ctx: SelectNoParensContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.select_clause`. + * Visit a parse tree produced by `PostgreSqlParser.selectClause`. * @param ctx the parse tree * @return the visitor result */ - visitSelect_clause?: (ctx: Select_clauseContext) => Result; + visitSelectClause?: (ctx: SelectClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.simple_select`. + * Visit a parse tree produced by `PostgreSqlParser.simpleSelect`. * @param ctx the parse tree * @return the visitor result */ - visitSimple_select?: (ctx: Simple_selectContext) => Result; + visitSimpleSelect?: (ctx: SimpleSelectContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.set_operator_with_all_or_distinct`. + * Visit a parse tree produced by `PostgreSqlParser.setOperatorWithAllOrDistinct`. * @param ctx the parse tree * @return the visitor result */ - visitSet_operator_with_all_or_distinct?: (ctx: Set_operator_with_all_or_distinctContext) => Result; + visitSetOperatorWithAllOrDistinct?: (ctx: SetOperatorWithAllOrDistinctContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.with_clause`. + * Visit a parse tree produced by `PostgreSqlParser.withClause`. * @param ctx the parse tree * @return the visitor result */ - visitWith_clause?: (ctx: With_clauseContext) => Result; + visitWithClause?: (ctx: WithClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.common_table_expr`. + * Visit a parse tree produced by `PostgreSqlParser.commonTableExpr`. * @param ctx the parse tree * @return the visitor result */ - visitCommon_table_expr?: (ctx: Common_table_exprContext) => Result; + visitCommonTableExpr?: (ctx: CommonTableExprContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.search_clause`. + * Visit a parse tree produced by `PostgreSqlParser.searchClause`. * @param ctx the parse tree * @return the visitor result */ - visitSearch_clause?: (ctx: Search_clauseContext) => Result; + visitSearchClause?: (ctx: SearchClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.cycle_clause`. + * Visit a parse tree produced by `PostgreSqlParser.cycleClause`. * @param ctx the parse tree * @return the visitor result */ - visitCycle_clause?: (ctx: Cycle_clauseContext) => Result; + visitCycleClause?: (ctx: CycleClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.into_clause`. + * Visit a parse tree produced by `PostgreSqlParser.intoClause`. * @param ctx the parse tree * @return the visitor result */ - visitInto_clause?: (ctx: Into_clauseContext) => Result; + visitIntoClause?: (ctx: IntoClauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.optTempTableName`. * @param ctx the parse tree @@ -2276,17 +2246,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.distinct_clause`. + * Visit a parse tree produced by `PostgreSqlParser.distinctClause`. * @param ctx the parse tree * @return the visitor result */ - visitDistinct_clause?: (ctx: Distinct_clauseContext) => Result; + visitDistinctClause?: (ctx: DistinctClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.sort_clause`. + * Visit a parse tree produced by `PostgreSqlParser.sortClause`. * @param ctx the parse tree * @return the visitor result */ - visitSort_clause?: (ctx: Sort_clauseContext) => Result; + visitSortClause?: (ctx: SortClauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.sortBy`. * @param ctx the parse tree @@ -2294,131 +2264,131 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.select_limit`. + * Visit a parse tree produced by `PostgreSqlParser.selectLimit`. * @param ctx the parse tree * @return the visitor result */ - visitSelect_limit?: (ctx: Select_limitContext) => Result; + visitSelectLimit?: (ctx: SelectLimitContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.limit_clause`. + * Visit a parse tree produced by `PostgreSqlParser.limitClause`. * @param ctx the parse tree * @return the visitor result */ - visitLimit_clause?: (ctx: Limit_clauseContext) => Result; + visitLimitClause?: (ctx: LimitClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.fetch_clause`. + * Visit a parse tree produced by `PostgreSqlParser.fetchClause`. * @param ctx the parse tree * @return the visitor result */ - visitFetch_clause?: (ctx: Fetch_clauseContext) => Result; + visitFetchClause?: (ctx: FetchClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.offset_clause`. + * Visit a parse tree produced by `PostgreSqlParser.offsetClause`. * @param ctx the parse tree * @return the visitor result */ - visitOffset_clause?: (ctx: Offset_clauseContext) => Result; + visitOffsetClause?: (ctx: OffsetClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.select_fetch_first_value`. + * Visit a parse tree produced by `PostgreSqlParser.selectFetchFirstValue`. * @param ctx the parse tree * @return the visitor result */ - visitSelect_fetch_first_value?: (ctx: Select_fetch_first_valueContext) => Result; + visitSelectFetchFirstValue?: (ctx: SelectFetchFirstValueContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.group_clause`. + * Visit a parse tree produced by `PostgreSqlParser.groupClause`. * @param ctx the parse tree * @return the visitor result */ - visitGroup_clause?: (ctx: Group_clauseContext) => Result; + visitGroupClause?: (ctx: GroupClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.group_by_list`. + * Visit a parse tree produced by `PostgreSqlParser.groupByList`. * @param ctx the parse tree * @return the visitor result */ - visitGroup_by_list?: (ctx: Group_by_listContext) => Result; + visitGroupByList?: (ctx: GroupByListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.group_by_item`. + * Visit a parse tree produced by `PostgreSqlParser.groupByItem`. * @param ctx the parse tree * @return the visitor result */ - visitGroup_by_item?: (ctx: Group_by_itemContext) => Result; + visitGroupByItem?: (ctx: GroupByItemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.for_locking_clause`. + * Visit a parse tree produced by `PostgreSqlParser.forLockingClause`. * @param ctx the parse tree * @return the visitor result */ - visitFor_locking_clause?: (ctx: For_locking_clauseContext) => Result; + visitForLockingClause?: (ctx: ForLockingClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.values_clause`. + * Visit a parse tree produced by `PostgreSqlParser.valuesClause`. * @param ctx the parse tree * @return the visitor result */ - visitValues_clause?: (ctx: Values_clauseContext) => Result; + visitValuesClause?: (ctx: ValuesClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.from_clause`. + * Visit a parse tree produced by `PostgreSqlParser.fromClause`. * @param ctx the parse tree * @return the visitor result */ - visitFrom_clause?: (ctx: From_clauseContext) => Result; + visitFromClause?: (ctx: FromClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.from_list`. + * Visit a parse tree produced by `PostgreSqlParser.fromList`. * @param ctx the parse tree * @return the visitor result */ - visitFrom_list?: (ctx: From_listContext) => Result; + visitFromList?: (ctx: FromListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.table_ref`. + * Visit a parse tree produced by `PostgreSqlParser.tableRef`. * @param ctx the parse tree * @return the visitor result */ - visitTable_ref?: (ctx: Table_refContext) => Result; + visitTableRef?: (ctx: TableRefContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.alias_clause`. + * Visit a parse tree produced by `PostgreSqlParser.aliasClause`. * @param ctx the parse tree * @return the visitor result */ - visitAlias_clause?: (ctx: Alias_clauseContext) => Result; + visitAliasClause?: (ctx: AliasClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_alias_clause`. + * Visit a parse tree produced by `PostgreSqlParser.funcAliasClause`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_alias_clause?: (ctx: Func_alias_clauseContext) => Result; + visitFuncAliasClause?: (ctx: FuncAliasClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.join_type`. + * Visit a parse tree produced by `PostgreSqlParser.joinType`. * @param ctx the parse tree * @return the visitor result */ - visitJoin_type?: (ctx: Join_typeContext) => Result; + visitJoinType?: (ctx: JoinTypeContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.join_qual`. + * Visit a parse tree produced by `PostgreSqlParser.joinQual`. * @param ctx the parse tree * @return the visitor result */ - visitJoin_qual?: (ctx: Join_qualContext) => Result; + visitJoinQual?: (ctx: JoinQualContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.relation_expr`. + * Visit a parse tree produced by `PostgreSqlParser.relationExpr`. * @param ctx the parse tree * @return the visitor result */ - visitRelation_expr?: (ctx: Relation_exprContext) => Result; + visitRelationExpr?: (ctx: RelationExprContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.publication_relation_expr`. + * Visit a parse tree produced by `PostgreSqlParser.publicationRelationExpr`. * @param ctx the parse tree * @return the visitor result */ - visitPublication_relation_expr?: (ctx: Publication_relation_exprContext) => Result; + visitPublicationRelationExpr?: (ctx: PublicationRelationExprContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.relation_expr_list`. + * Visit a parse tree produced by `PostgreSqlParser.relationExprList`. * @param ctx the parse tree * @return the visitor result */ - visitRelation_expr_list?: (ctx: Relation_expr_listContext) => Result; + visitRelationExprList?: (ctx: RelationExprListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.relation_expr_opt_alias`. + * Visit a parse tree produced by `PostgreSqlParser.relationExprOptAlias`. * @param ctx the parse tree * @return the visitor result */ - visitRelation_expr_opt_alias?: (ctx: Relation_expr_opt_aliasContext) => Result; + visitRelationExprOptAlias?: (ctx: RelationExprOptAliasContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.tableSampleClause`. * @param ctx the parse tree @@ -2426,11 +2396,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_table`. + * Visit a parse tree produced by `PostgreSqlParser.funcTable`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_table?: (ctx: Func_tableContext) => Result; + visitFuncTable?: (ctx: FuncTableContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.rowsFromItem`. * @param ctx the parse tree @@ -2438,17 +2408,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.where_clause`. + * Visit a parse tree produced by `PostgreSqlParser.whereClause`. * @param ctx the parse tree * @return the visitor result */ - visitWhere_clause?: (ctx: Where_clauseContext) => Result; + visitWhereClause?: (ctx: WhereClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.where_or_current_clause`. + * Visit a parse tree produced by `PostgreSqlParser.whereOrCurrentClause`. * @param ctx the parse tree * @return the visitor result */ - visitWhere_or_current_clause?: (ctx: Where_or_current_clauseContext) => Result; + visitWhereOrCurrentClause?: (ctx: WhereOrCurrentClauseContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.tableFuncElementList`. * @param ctx the parse tree @@ -2474,11 +2444,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.xml_namespace_el`. + * Visit a parse tree produced by `PostgreSqlParser.xmlNamespaceEle`. * @param ctx the parse tree * @return the visitor result */ - visitXml_namespace_el?: (ctx: Xml_namespace_elContext) => Result; + visitXmlNamespaceEle?: (ctx: XmlNamespaceEleContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.typename`. * @param ctx the parse tree @@ -2504,11 +2474,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_float`. + * Visit a parse tree produced by `PostgreSqlParser.optFloat`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_float?: (ctx: Opt_floatContext) => Result; + visitOptFloat?: (ctx: OptFloatContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.bit`. * @param ctx the parse tree @@ -2528,17 +2498,17 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_interval`. + * Visit a parse tree produced by `PostgreSqlParser.optInterval`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_interval?: (ctx: Opt_intervalContext) => Result; + visitOptInterval?: (ctx: OptIntervalContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.interval_second`. + * Visit a parse tree produced by `PostgreSqlParser.intervalSecond`. * @param ctx the parse tree * @return the visitor result */ - visitInterval_second?: (ctx: Interval_secondContext) => Result; + visitIntervalSecond?: (ctx: IntervalSecondContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.comparisonOperator`. * @param ctx the parse tree @@ -2670,11 +2640,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_application`. + * Visit a parse tree produced by `PostgreSqlParser.funcApplication`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_application?: (ctx: Func_applicationContext) => Result; + visitFuncApplication?: (ctx: FuncApplicationContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.func_expr`. * @param ctx the parse tree @@ -2682,35 +2652,35 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_expr_windowless`. + * Visit a parse tree produced by `PostgreSqlParser.funcExprWindowless`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_expr_windowless?: (ctx: Func_expr_windowlessContext) => Result; + visitFuncExprWindowless?: (ctx: FuncExprWindowlessContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_expr_common_subexpr`. + * Visit a parse tree produced by `PostgreSqlParser.funcExprCommonSubExpr`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_expr_common_subexpr?: (ctx: Func_expr_common_subexprContext) => Result; + visitFuncExprCommonSubExpr?: (ctx: FuncExprCommonSubExprContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.xml_attribute_list`. + * Visit a parse tree produced by `PostgreSqlParser.xmlAttributeList`. * @param ctx the parse tree * @return the visitor result */ - visitXml_attribute_list?: (ctx: Xml_attribute_listContext) => Result; + visitXmlAttributeList?: (ctx: XmlAttributeListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.xml_attribute_el`. + * Visit a parse tree produced by `PostgreSqlParser.xmlAttributeEl`. * @param ctx the parse tree * @return the visitor result */ - visitXml_attribute_el?: (ctx: Xml_attribute_elContext) => Result; + visitXmlAttributeEl?: (ctx: XmlAttributeElContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.document_or_content`. + * Visit a parse tree produced by `PostgreSqlParser.documentOrContent`. * @param ctx the parse tree * @return the visitor result */ - visitDocument_or_content?: (ctx: Document_or_contentContext) => Result; + visitDocumentOrContent?: (ctx: DocumentOrContentContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.xmlExistsArgument`. * @param ctx the parse tree @@ -2718,23 +2688,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.xml_passing_mech`. + * Visit a parse tree produced by `PostgreSqlParser.xmlPassingMech`. * @param ctx the parse tree * @return the visitor result */ - visitXml_passing_mech?: (ctx: Xml_passing_mechContext) => Result; + visitXmlPassingMech?: (ctx: XmlPassingMechContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.window_clause`. + * Visit a parse tree produced by `PostgreSqlParser.windowClause`. * @param ctx the parse tree * @return the visitor result */ - visitWindow_clause?: (ctx: Window_clauseContext) => Result; + visitWindowClause?: (ctx: WindowClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.window_definition`. + * Visit a parse tree produced by `PostgreSqlParser.windowDefinition`. * @param ctx the parse tree * @return the visitor result */ - visitWindow_definition?: (ctx: Window_definitionContext) => Result; + visitWindowDefinition?: (ctx: WindowDefinitionContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.over_clause`. * @param ctx the parse tree @@ -2742,23 +2712,23 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.window_specification`. + * Visit a parse tree produced by `PostgreSqlParser.windowSpecification`. * @param ctx the parse tree * @return the visitor result */ - visitWindow_specification?: (ctx: Window_specificationContext) => Result; + visitWindowSpecification?: (ctx: WindowSpecificationContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_frame_clause`. + * Visit a parse tree produced by `PostgreSqlParser.optFrameClause`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_frame_clause?: (ctx: Opt_frame_clauseContext) => Result; + visitOptFrameClause?: (ctx: OptFrameClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.frame_bound`. + * Visit a parse tree produced by `PostgreSqlParser.frameBound`. * @param ctx the parse tree * @return the visitor result */ - visitFrame_bound?: (ctx: Frame_boundContext) => Result; + visitFrameBound?: (ctx: FrameBoundContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.row`. * @param ctx the parse tree @@ -2766,101 +2736,101 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.explicit_row`. + * Visit a parse tree produced by `PostgreSqlParser.explicitRow`. * @param ctx the parse tree * @return the visitor result */ - visitExplicit_row?: (ctx: Explicit_rowContext) => Result; + visitExplicitRow?: (ctx: ExplicitRowContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.sub_type`. + * Visit a parse tree produced by `PostgreSqlParser.subType`. * @param ctx the parse tree * @return the visitor result */ - visitSub_type?: (ctx: Sub_typeContext) => Result; + visitSubType?: (ctx: SubTypeContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.all_op`. + * Visit a parse tree produced by `PostgreSqlParser.allOp`. * @param ctx the parse tree * @return the visitor result */ - visitAll_op?: (ctx: All_opContext) => Result; + visitAllOp?: (ctx: AllOpContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.mathop`. + * Visit a parse tree produced by `PostgreSqlParser.mathOp`. * @param ctx the parse tree * @return the visitor result */ - visitMathop?: (ctx: MathopContext) => Result; + visitMathOp?: (ctx: MathOpContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.qual_op`. + * Visit a parse tree produced by `PostgreSqlParser.qualOp`. * @param ctx the parse tree * @return the visitor result */ - visitQual_op?: (ctx: Qual_opContext) => Result; + visitQualOp?: (ctx: QualOpContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.qual_all_op`. + * Visit a parse tree produced by `PostgreSqlParser.qualAllOp`. * @param ctx the parse tree * @return the visitor result */ - visitQual_all_op?: (ctx: Qual_all_opContext) => Result; + visitQualAllOp?: (ctx: QualAllOpContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.subquery_Op`. + * Visit a parse tree produced by `PostgreSqlParser.subqueryOperator`. * @param ctx the parse tree * @return the visitor result */ - visitSubquery_Op?: (ctx: Subquery_OpContext) => Result; + visitSubqueryOperator?: (ctx: SubqueryOperatorContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.expr_list`. + * Visit a parse tree produced by `PostgreSqlParser.exprList`. * @param ctx the parse tree * @return the visitor result */ - visitExpr_list?: (ctx: Expr_listContext) => Result; + visitExprList?: (ctx: ExprListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.column_expr`. + * Visit a parse tree produced by `PostgreSqlParser.columnExpr`. * @param ctx the parse tree * @return the visitor result */ - visitColumn_expr?: (ctx: Column_exprContext) => Result; + visitColumnExpr?: (ctx: ColumnExprContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.column_expr_no_paren`. + * Visit a parse tree produced by `PostgreSqlParser.columnExprNoParen`. * @param ctx the parse tree * @return the visitor result */ - visitColumn_expr_no_paren?: (ctx: Column_expr_no_parenContext) => Result; + visitColumnExprNoParen?: (ctx: ColumnExprNoParenContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_arg_list`. + * Visit a parse tree produced by `PostgreSqlParser.funcArgList`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_arg_list?: (ctx: Func_arg_listContext) => Result; + visitFuncArgList?: (ctx: FuncArgListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.func_arg_expr`. + * Visit a parse tree produced by `PostgreSqlParser.funcArgExpr`. * @param ctx the parse tree * @return the visitor result */ - visitFunc_arg_expr?: (ctx: Func_arg_exprContext) => Result; + visitFuncArgExpr?: (ctx: FuncArgExprContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.array_expr`. + * Visit a parse tree produced by `PostgreSqlParser.arrayExpr`. * @param ctx the parse tree * @return the visitor result */ - visitArray_expr?: (ctx: Array_exprContext) => Result; + visitArrayExpr?: (ctx: ArrayExprContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.extract_arg`. + * Visit a parse tree produced by `PostgreSqlParser.extractArg`. * @param ctx the parse tree * @return the visitor result */ - visitExtract_arg?: (ctx: Extract_argContext) => Result; + visitExtractArg?: (ctx: ExtractArgContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.unicode_normal_form`. + * Visit a parse tree produced by `PostgreSqlParser.unicodeNormalForm`. * @param ctx the parse tree * @return the visitor result */ - visitUnicode_normal_form?: (ctx: Unicode_normal_formContext) => Result; + visitUnicodeNormalForm?: (ctx: UnicodeNormalFormContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.substr_list`. + * Visit a parse tree produced by `PostgreSqlParser.substrList`. * @param ctx the parse tree * @return the visitor result */ - visitSubstr_list?: (ctx: Substr_listContext) => Result; + visitSubstrList?: (ctx: SubstrListContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.when_clause`. * @param ctx the parse tree @@ -2868,11 +2838,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.indirection_el`. + * Visit a parse tree produced by `PostgreSqlParser.indirectionEl`. * @param ctx the parse tree * @return the visitor result */ - visitIndirection_el?: (ctx: Indirection_elContext) => Result; + visitIndirectionEl?: (ctx: IndirectionElContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.indirection`. * @param ctx the parse tree @@ -2880,195 +2850,171 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_indirection`. + * Visit a parse tree produced by `PostgreSqlParser.optIndirection`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_indirection?: (ctx: Opt_indirectionContext) => Result; + visitOptIndirection?: (ctx: OptIndirectionContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.target_list`. + * Visit a parse tree produced by `PostgreSqlParser.targetList`. * @param ctx the parse tree * @return the visitor result */ - visitTarget_list?: (ctx: Target_listContext) => Result; + visitTargetList?: (ctx: TargetListContext) => Result; /** * Visit a parse tree produced by the `target_label` - * labeled alternative in `PostgreSqlParser.target_el`. + * labeled alternative in `PostgreSqlParser.targetEl`. * @param ctx the parse tree * @return the visitor result */ visitTarget_label?: (ctx: Target_labelContext) => Result; /** * Visit a parse tree produced by the `target_star` - * labeled alternative in `PostgreSqlParser.target_el`. + * labeled alternative in `PostgreSqlParser.targetEl`. * @param ctx the parse tree * @return the visitor result */ visitTarget_star?: (ctx: Target_starContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.qualified_name_list`. + * Visit a parse tree produced by `PostgreSqlParser.qualifiedNameList`. * @param ctx the parse tree * @return the visitor result */ - visitQualified_name_list?: (ctx: Qualified_name_listContext) => Result; + visitQualifiedNameList?: (ctx: QualifiedNameListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.table_name_list`. + * Visit a parse tree produced by `PostgreSqlParser.tableNameList`. * @param ctx the parse tree * @return the visitor result */ - visitTable_name_list?: (ctx: Table_name_listContext) => Result; + visitTableNameList?: (ctx: TableNameListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.schema_name_list`. + * Visit a parse tree produced by `PostgreSqlParser.schemaNameList`. * @param ctx the parse tree * @return the visitor result */ - visitSchema_name_list?: (ctx: Schema_name_listContext) => Result; + visitSchemaNameList?: (ctx: SchemaNameListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.database_nameList`. + * Visit a parse tree produced by `PostgreSqlParser.databaseNameList`. * @param ctx the parse tree * @return the visitor result */ - visitDatabase_nameList?: (ctx: Database_nameListContext) => Result; + visitDatabaseNameList?: (ctx: DatabaseNameListContext) => Result; /** - * Visit a parse tree produced by the `tablespaceNameCreate` - * labeled alternative in `PostgreSqlParser.tablespace_name_create`. + * Visit a parse tree produced by `PostgreSqlParser.tableSpaceNameCreate`. * @param ctx the parse tree * @return the visitor result */ - visitTablespaceNameCreate?: (ctx: TablespaceNameCreateContext) => Result; + visitTableSpaceNameCreate?: (ctx: TableSpaceNameCreateContext) => Result; /** - * Visit a parse tree produced by the `tablespaceName` - * labeled alternative in `PostgreSqlParser.tablespace_name`. + * Visit a parse tree produced by `PostgreSqlParser.tableSpaceName`. * @param ctx the parse tree * @return the visitor result */ - visitTablespaceName?: (ctx: TablespaceNameContext) => Result; + visitTableSpaceName?: (ctx: TableSpaceNameContext) => Result; /** - * Visit a parse tree produced by the `tableNameCreate` - * labeled alternative in `PostgreSqlParser.table_name_create`. + * Visit a parse tree produced by `PostgreSqlParser.tableNameCreate`. * @param ctx the parse tree * @return the visitor result */ visitTableNameCreate?: (ctx: TableNameCreateContext) => Result; /** - * Visit a parse tree produced by the `tableName` - * labeled alternative in `PostgreSqlParser.table_name`. + * Visit a parse tree produced by `PostgreSqlParser.tableName`. * @param ctx the parse tree * @return the visitor result */ visitTableName?: (ctx: TableNameContext) => Result; /** - * Visit a parse tree produced by the `viewNameCreate` - * labeled alternative in `PostgreSqlParser.view_name_create`. + * Visit a parse tree produced by `PostgreSqlParser.viewNameCreate`. * @param ctx the parse tree * @return the visitor result */ visitViewNameCreate?: (ctx: ViewNameCreateContext) => Result; /** - * Visit a parse tree produced by the `viewName` - * labeled alternative in `PostgreSqlParser.view_name`. + * Visit a parse tree produced by `PostgreSqlParser.viewName`. * @param ctx the parse tree * @return the visitor result */ visitViewName?: (ctx: ViewNameContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.qualified_name`. + * Visit a parse tree produced by `PostgreSqlParser.qualifiedName`. * @param ctx the parse tree * @return the visitor result */ - visitQualified_name?: (ctx: Qualified_nameContext) => Result; + visitQualifiedName?: (ctx: QualifiedNameContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.tablespace_name_list`. + * Visit a parse tree produced by `PostgreSqlParser.tableSpaceNameList`. * @param ctx the parse tree * @return the visitor result */ - visitTablespace_name_list?: (ctx: Tablespace_name_listContext) => Result; + visitTableSpaceNameList?: (ctx: TableSpaceNameListContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.name_list`. + * Visit a parse tree produced by `PostgreSqlParser.nameList`. * @param ctx the parse tree * @return the visitor result */ - visitName_list?: (ctx: Name_listContext) => Result; + visitNameList?: (ctx: NameListContext) => Result; /** - * Visit a parse tree produced by the `databaseNameCreate` - * labeled alternative in `PostgreSqlParser.database_name_create`. + * Visit a parse tree produced by `PostgreSqlParser.databaseNameCreate`. * @param ctx the parse tree * @return the visitor result */ visitDatabaseNameCreate?: (ctx: DatabaseNameCreateContext) => Result; /** - * Visit a parse tree produced by the `databaseName` - * labeled alternative in `PostgreSqlParser.database_name`. + * Visit a parse tree produced by `PostgreSqlParser.databaseName`. * @param ctx the parse tree * @return the visitor result */ visitDatabaseName?: (ctx: DatabaseNameContext) => Result; /** - * Visit a parse tree produced by the `schemaName` - * labeled alternative in `PostgreSqlParser.schema_name`. + * Visit a parse tree produced by `PostgreSqlParser.schemaName`. * @param ctx the parse tree * @return the visitor result */ visitSchemaName?: (ctx: SchemaNameContext) => Result; /** - * Visit a parse tree produced by the `routineNameCreate` - * labeled alternative in `PostgreSqlParser.routine_name_create`. + * Visit a parse tree produced by `PostgreSqlParser.routineNameCreate`. * @param ctx the parse tree * @return the visitor result */ visitRoutineNameCreate?: (ctx: RoutineNameCreateContext) => Result; /** - * Visit a parse tree produced by the `routineName` - * labeled alternative in `PostgreSqlParser.routine_name`. + * Visit a parse tree produced by `PostgreSqlParser.routineName`. * @param ctx the parse tree * @return the visitor result */ visitRoutineName?: (ctx: RoutineNameContext) => Result; /** - * Visit a parse tree produced by the `procedureName` - * labeled alternative in `PostgreSqlParser.procedure_name`. + * Visit a parse tree produced by `PostgreSqlParser.procedureName`. * @param ctx the parse tree * @return the visitor result */ visitProcedureName?: (ctx: ProcedureNameContext) => Result; /** - * Visit a parse tree produced by the `procedureNameCreate` - * labeled alternative in `PostgreSqlParser.procedure_name_create`. + * Visit a parse tree produced by `PostgreSqlParser.procedureNameCreate`. * @param ctx the parse tree * @return the visitor result */ visitProcedureNameCreate?: (ctx: ProcedureNameCreateContext) => Result; /** - * Visit a parse tree produced by the `columnName` - * labeled alternative in `PostgreSqlParser.column_name`. + * Visit a parse tree produced by `PostgreSqlParser.columnName`. * @param ctx the parse tree * @return the visitor result */ visitColumnName?: (ctx: ColumnNameContext) => Result; /** - * Visit a parse tree produced by the `columnNameMatch` - * labeled alternative in `PostgreSqlParser.column_name`. - * @param ctx the parse tree - * @return the visitor result - */ - visitColumnNameMatch?: (ctx: ColumnNameMatchContext) => Result; - /** - * Visit a parse tree produced by the `columnNameCreate` - * labeled alternative in `PostgreSqlParser.column_name_create`. + * Visit a parse tree produced by `PostgreSqlParser.columnNameCreate`. * @param ctx the parse tree * @return the visitor result */ visitColumnNameCreate?: (ctx: ColumnNameCreateContext) => Result; /** - * Visit a parse tree produced by the `functionNameCreate` - * labeled alternative in `PostgreSqlParser.function_name_create`. + * Visit a parse tree produced by `PostgreSqlParser.functionNameCreate`. * @param ctx the parse tree * @return the visitor result */ visitFunctionNameCreate?: (ctx: FunctionNameCreateContext) => Result; /** - * Visit a parse tree produced by the `functionName` - * labeled alternative in `PostgreSqlParser.function_name`. + * Visit a parse tree produced by `PostgreSqlParser.functionName`. * @param ctx the parse tree * @return the visitor result */ @@ -3098,11 +3044,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.role_list`. + * Visit a parse tree produced by `PostgreSqlParser.roleList`. * @param ctx the parse tree * @return the visitor result */ - visitRole_list?: (ctx: Role_listContext) => Result; + visitRoleList?: (ctx: RoleListContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.colId`. * @param ctx the parse tree @@ -3110,11 +3056,11 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.type_function_name`. + * Visit a parse tree produced by `PostgreSqlParser.typeFunctionName`. * @param ctx the parse tree * @return the visitor result */ - visitType_function_name?: (ctx: Type_function_nameContext) => Result; + visitTypeFunctionName?: (ctx: TypeFunctionNameContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.nonReservedWord`. * @param ctx the parse tree @@ -3134,221 +3080,221 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.unreserved_keyword`. + * Visit a parse tree produced by `PostgreSqlParser.unreservedKeyword`. * @param ctx the parse tree * @return the visitor result */ - visitUnreserved_keyword?: (ctx: Unreserved_keywordContext) => Result; + visitUnreservedKeyword?: (ctx: UnreservedKeywordContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.col_name_keyword`. + * Visit a parse tree produced by `PostgreSqlParser.colNameKeyword`. * @param ctx the parse tree * @return the visitor result */ - visitCol_name_keyword?: (ctx: Col_name_keywordContext) => Result; + visitColNameKeyword?: (ctx: ColNameKeywordContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.type_func_name_keyword`. + * Visit a parse tree produced by `PostgreSqlParser.typeFuncNameKeyword`. * @param ctx the parse tree * @return the visitor result */ - visitType_func_name_keyword?: (ctx: Type_func_name_keywordContext) => Result; + visitTypeFuncNameKeyword?: (ctx: TypeFuncNameKeywordContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.reserved_keyword`. + * Visit a parse tree produced by `PostgreSqlParser.reservedKeyword`. * @param ctx the parse tree * @return the visitor result */ - visitReserved_keyword?: (ctx: Reserved_keywordContext) => Result; + visitReservedKeyword?: (ctx: ReservedKeywordContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.pl_block`. + * Visit a parse tree produced by `PostgreSqlParser.plBlock`. * @param ctx the parse tree * @return the visitor result */ - visitPl_block?: (ctx: Pl_blockContext) => Result; + visitPlBlock?: (ctx: PlBlockContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.label_decl`. + * Visit a parse tree produced by `PostgreSqlParser.labelDecl`. * @param ctx the parse tree * @return the visitor result */ - visitLabel_decl?: (ctx: Label_declContext) => Result; + visitLabelDecl?: (ctx: LabelDeclContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.decl_statement`. + * Visit a parse tree produced by `PostgreSqlParser.declStatement`. * @param ctx the parse tree * @return the visitor result */ - visitDecl_statement?: (ctx: Decl_statementContext) => Result; + visitDeclStatement?: (ctx: DeclStatementContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.decl_cursor_arg`. + * Visit a parse tree produced by `PostgreSqlParser.declCursorArg`. * @param ctx the parse tree * @return the visitor result */ - visitDecl_cursor_arg?: (ctx: Decl_cursor_argContext) => Result; + visitDeclCursorArg?: (ctx: DeclCursorArgContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.assign_operator`. + * Visit a parse tree produced by `PostgreSqlParser.assignOperator`. * @param ctx the parse tree * @return the visitor result */ - visitAssign_operator?: (ctx: Assign_operatorContext) => Result; + visitAssignOperator?: (ctx: AssignOperatorContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.proc_stmt`. + * Visit a parse tree produced by `PostgreSqlParser.procStmt`. * @param ctx the parse tree * @return the visitor result */ - visitProc_stmt?: (ctx: Proc_stmtContext) => Result; + visitProcStmt?: (ctx: ProcStmtContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_perform`. + * Visit a parse tree produced by `PostgreSqlParser.stmtPerform`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_perform?: (ctx: Stmt_performContext) => Result; + visitStmtPerform?: (ctx: StmtPerformContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_call`. + * Visit a parse tree produced by `PostgreSqlParser.stmtCall`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_call?: (ctx: Stmt_callContext) => Result; + visitStmtCall?: (ctx: StmtCallContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_assign`. + * Visit a parse tree produced by `PostgreSqlParser.stmtAssign`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_assign?: (ctx: Stmt_assignContext) => Result; + visitStmtAssign?: (ctx: StmtAssignContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_getdiag`. + * Visit a parse tree produced by `PostgreSqlParser.stmtGetdiag`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_getdiag?: (ctx: Stmt_getdiagContext) => Result; + visitStmtGetdiag?: (ctx: StmtGetdiagContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.getdiag_list_item`. + * Visit a parse tree produced by `PostgreSqlParser.getdiagListItem`. * @param ctx the parse tree * @return the visitor result */ - visitGetdiag_list_item?: (ctx: Getdiag_list_itemContext) => Result; + visitGetdiagListItem?: (ctx: GetdiagListItemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.assign_var`. + * Visit a parse tree produced by `PostgreSqlParser.assignVar`. * @param ctx the parse tree * @return the visitor result */ - visitAssign_var?: (ctx: Assign_varContext) => Result; + visitAssignVar?: (ctx: AssignVarContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_if`. + * Visit a parse tree produced by `PostgreSqlParser.stmtIf`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_if?: (ctx: Stmt_ifContext) => Result; + visitStmtIf?: (ctx: StmtIfContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_else`. + * Visit a parse tree produced by `PostgreSqlParser.stmtElse`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_else?: (ctx: Stmt_elseContext) => Result; + visitStmtElse?: (ctx: StmtElseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_case`. + * Visit a parse tree produced by `PostgreSqlParser.stmtCase`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_case?: (ctx: Stmt_caseContext) => Result; + visitStmtCase?: (ctx: StmtCaseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_loop_while_for`. + * Visit a parse tree produced by `PostgreSqlParser.stmtLoopWhileFor`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_loop_while_for?: (ctx: Stmt_loop_while_forContext) => Result; + visitStmtLoopWhileFor?: (ctx: StmtLoopWhileForContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.for_control`. + * Visit a parse tree produced by `PostgreSqlParser.forControl`. * @param ctx the parse tree * @return the visitor result */ - visitFor_control?: (ctx: For_controlContext) => Result; + visitForControl?: (ctx: ForControlContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_foreach_a`. + * Visit a parse tree produced by `PostgreSqlParser.stmtForeach`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_foreach_a?: (ctx: Stmt_foreach_aContext) => Result; + visitStmtForeach?: (ctx: StmtForeachContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_exit`. + * Visit a parse tree produced by `PostgreSqlParser.stmtExit`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_exit?: (ctx: Stmt_exitContext) => Result; + visitStmtExit?: (ctx: StmtExitContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_return`. + * Visit a parse tree produced by `PostgreSqlParser.stmtReturn`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_return?: (ctx: Stmt_returnContext) => Result; + visitStmtReturn?: (ctx: StmtReturnContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_raise`. + * Visit a parse tree produced by `PostgreSqlParser.stmtRaise`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_raise?: (ctx: Stmt_raiseContext) => Result; + visitStmtRaise?: (ctx: StmtRaiseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_raise_using_elem`. + * Visit a parse tree produced by `PostgreSqlParser.optRaiseUsingElem`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_raise_using_elem?: (ctx: Opt_raise_using_elemContext) => Result; + visitOptRaiseUsingElem?: (ctx: OptRaiseUsingElemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_assert`. + * Visit a parse tree produced by `PostgreSqlParser.stmtAssert`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_assert?: (ctx: Stmt_assertContext) => Result; + visitStmtAssert?: (ctx: StmtAssertContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.loop_body`. + * Visit a parse tree produced by `PostgreSqlParser.loopBody`. * @param ctx the parse tree * @return the visitor result */ - visitLoop_body?: (ctx: Loop_bodyContext) => Result; + visitLoopBody?: (ctx: LoopBodyContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_execsql`. + * Visit a parse tree produced by `PostgreSqlParser.stmtExecsql`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_execsql?: (ctx: Stmt_execsqlContext) => Result; + visitStmtExecsql?: (ctx: StmtExecsqlContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_dynexecute`. + * Visit a parse tree produced by `PostgreSqlParser.stmtDynexecute`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_dynexecute?: (ctx: Stmt_dynexecuteContext) => Result; + visitStmtDynexecute?: (ctx: StmtDynexecuteContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_execute_into`. + * Visit a parse tree produced by `PostgreSqlParser.optExecuteInto`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_execute_into?: (ctx: Opt_execute_intoContext) => Result; + visitOptExecuteInto?: (ctx: OptExecuteIntoContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_open`. + * Visit a parse tree produced by `PostgreSqlParser.stmtOpen`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_open?: (ctx: Stmt_openContext) => Result; + visitStmtOpen?: (ctx: StmtOpenContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_open_bound_list_item`. + * Visit a parse tree produced by `PostgreSqlParser.optOpenBoundListItem`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_open_bound_list_item?: (ctx: Opt_open_bound_list_itemContext) => Result; + visitOptOpenBoundListItem?: (ctx: OptOpenBoundListItemContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_fetch`. + * Visit a parse tree produced by `PostgreSqlParser.stmtFetch`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_fetch?: (ctx: Stmt_fetchContext) => Result; + visitStmtFetch?: (ctx: StmtFetchContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.opt_fetch_direction`. + * Visit a parse tree produced by `PostgreSqlParser.optFetchFirection`. * @param ctx the parse tree * @return the visitor result */ - visitOpt_fetch_direction?: (ctx: Opt_fetch_directionContext) => Result; + visitOptFetchFirection?: (ctx: OptFetchFirectionContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_move`. + * Visit a parse tree produced by `PostgreSqlParser.stmtMove`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_move?: (ctx: Stmt_moveContext) => Result; + visitStmtMove?: (ctx: StmtMoveContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.mergeStmt`. * @param ctx the parse tree @@ -3356,35 +3302,35 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.data_source`. + * Visit a parse tree produced by `PostgreSqlParser.dataSource`. * @param ctx the parse tree * @return the visitor result */ - visitData_source?: (ctx: Data_sourceContext) => Result; + visitDataSource?: (ctx: DataSourceContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.merge_when_clause`. + * Visit a parse tree produced by `PostgreSqlParser.mergeWhenClause`. * @param ctx the parse tree * @return the visitor result */ - visitMerge_when_clause?: (ctx: Merge_when_clauseContext) => Result; + visitMergeWhenClause?: (ctx: MergeWhenClauseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.merge_insert`. + * Visit a parse tree produced by `PostgreSqlParser.mergeInsert`. * @param ctx the parse tree * @return the visitor result */ - visitMerge_insert?: (ctx: Merge_insertContext) => Result; + visitMergeInsert?: (ctx: MergeInsertContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.merge_update`. + * Visit a parse tree produced by `PostgreSqlParser.mergeUpdate`. * @param ctx the parse tree * @return the visitor result */ - visitMerge_update?: (ctx: Merge_updateContext) => Result; + visitMergeUpdate?: (ctx: MergeUpdateContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.default_values_or_values`. + * Visit a parse tree produced by `PostgreSqlParser.defaultValuesOrValues`. * @param ctx the parse tree * @return the visitor result */ - visitDefault_values_or_values?: (ctx: Default_values_or_valuesContext) => Result; + visitDefaultValuesOrValues?: (ctx: DefaultValuesOrValuesContext) => Result; /** * Visit a parse tree produced by `PostgreSqlParser.exprofdefault`. * @param ctx the parse tree @@ -3392,58 +3338,58 @@ export class PostgreSqlParserVisitor extends AbstractParseTreeVisitor Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_close`. + * Visit a parse tree produced by `PostgreSqlParser.stmtClose`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_close?: (ctx: Stmt_closeContext) => Result; + visitStmtClose?: (ctx: StmtCloseContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_null`. + * Visit a parse tree produced by `PostgreSqlParser.stmtNull`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_null?: (ctx: Stmt_nullContext) => Result; + visitStmtNull?: (ctx: StmtNullContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_commit_or_rollback`. + * Visit a parse tree produced by `PostgreSqlParser.stmtCommitOrRollback`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_commit_or_rollback?: (ctx: Stmt_commit_or_rollbackContext) => Result; + visitStmtCommitOrRollback?: (ctx: StmtCommitOrRollbackContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.stmt_set`. + * Visit a parse tree produced by `PostgreSqlParser.stmtSet`. * @param ctx the parse tree * @return the visitor result */ - visitStmt_set?: (ctx: Stmt_setContext) => Result; + visitStmtSet?: (ctx: StmtSetContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.cursor_variable`. + * Visit a parse tree produced by `PostgreSqlParser.cursorVariable`. * @param ctx the parse tree * @return the visitor result */ - visitCursor_variable?: (ctx: Cursor_variableContext) => Result; + visitCursorVariable?: (ctx: CursorVariableContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.exception_sect`. + * Visit a parse tree produced by `PostgreSqlParser.exceptionSect`. * @param ctx the parse tree * @return the visitor result */ - visitException_sect?: (ctx: Exception_sectContext) => Result; + visitExceptionSect?: (ctx: ExceptionSectContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.proc_condition`. + * Visit a parse tree produced by `PostgreSqlParser.procCondition`. * @param ctx the parse tree * @return the visitor result */ - visitProc_condition?: (ctx: Proc_conditionContext) => Result; + visitProcCondition?: (ctx: ProcConditionContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.any_identifier`. + * Visit a parse tree produced by `PostgreSqlParser.anyIdentifier`. * @param ctx the parse tree * @return the visitor result */ - visitAny_identifier?: (ctx: Any_identifierContext) => Result; + visitAnyIdentifier?: (ctx: AnyIdentifierContext) => Result; /** - * Visit a parse tree produced by `PostgreSqlParser.sql_expression`. + * Visit a parse tree produced by `PostgreSqlParser.sqlExpression`. * @param ctx the parse tree * @return the visitor result */ - visitSql_expression?: (ctx: Sql_expressionContext) => Result; + visitSqlExpression?: (ctx: SqlExpressionContext) => Result; } diff --git a/src/parser/postgresql/index.ts b/src/parser/postgresql/index.ts index d655a2802..125f386a8 100644 --- a/src/parser/postgresql/index.ts +++ b/src/parser/postgresql/index.ts @@ -23,20 +23,20 @@ export class PostgreSQL extends BasicSQL = new Set([ - PostgreSqlParser.RULE_table_name_create, // table name - PostgreSqlParser.RULE_table_name, // table name that will be created - PostgreSqlParser.RULE_function_name, // function name - PostgreSqlParser.RULE_function_name_create, // function name that will be created - PostgreSqlParser.RULE_schema_name_create, // schema name that will be created - PostgreSqlParser.RULE_schema_name, // schema name - PostgreSqlParser.RULE_view_name_create, // view name that will be created - PostgreSqlParser.RULE_view_name, // view name - PostgreSqlParser.RULE_database_name_create, // database name that will be created - PostgreSqlParser.RULE_database_name, // database name - PostgreSqlParser.RULE_procedure_name_create, // procedure name that will be created - PostgreSqlParser.RULE_procedure_name, // procedure name - PostgreSqlParser.RULE_column_name_create, // column name that will be created - PostgreSqlParser.RULE_column_name, // column name + PostgreSqlParser.RULE_tableNameCreate, // table name + PostgreSqlParser.RULE_tableName, // table name that will be created + PostgreSqlParser.RULE_functionName, // function name + PostgreSqlParser.RULE_functionNameCreate, // function name that will be created + PostgreSqlParser.RULE_schemaNameCreate, // schema name that will be created + PostgreSqlParser.RULE_schemaName, // schema name + PostgreSqlParser.RULE_viewNameCreate, // view name that will be created + PostgreSqlParser.RULE_viewName, // view name + PostgreSqlParser.RULE_databaseNameCreate, // database name that will be created + PostgreSqlParser.RULE_databaseName, // database name + PostgreSqlParser.RULE_procedureNameCreate, // procedure name that will be created + PostgreSqlParser.RULE_procedureName, // procedure name + PostgreSqlParser.RULE_columnNameCreate, // column name that will be created + PostgreSqlParser.RULE_columnName, // column name ]); protected get splitListener() { @@ -69,59 +69,59 @@ export class PostgreSQL extends BasicSQL = new Map([ - [PostgreSqlParser.RULE_database_name, 'database'], - [PostgreSqlParser.RULE_database_name_create, 'database'], - [PostgreSqlParser.RULE_table_name, 'table'], - [PostgreSqlParser.RULE_table_name_create, 'table'], - [PostgreSqlParser.RULE_view_name, 'view'], - [PostgreSqlParser.RULE_view_name_create, 'view'], - [PostgreSqlParser.RULE_function_name, 'function'], - [PostgreSqlParser.RULE_function_name_create, 'function'], - [PostgreSqlParser.RULE_column_name, 'column'], - [PostgreSqlParser.RULE_column_name_create, 'column'], - [PostgreSqlParser.RULE_schema_name_create, 'schema'], - [PostgreSqlParser.RULE_schema_name, 'schema'], - [PostgreSqlParser.RULE_procedure_name_create, 'procedure'], - [PostgreSqlParser.RULE_procedure_name, 'procedure'], + [PostgreSqlParser.RULE_databaseName, 'database'], + [PostgreSqlParser.RULE_databaseNameCreate, 'database'], + [PostgreSqlParser.RULE_tableName, 'table'], + [PostgreSqlParser.RULE_tableNameCreate, 'table'], + [PostgreSqlParser.RULE_viewName, 'view'], + [PostgreSqlParser.RULE_viewNameCreate, 'view'], + [PostgreSqlParser.RULE_functionName, 'function'], + [PostgreSqlParser.RULE_functionNameCreate, 'function'], + [PostgreSqlParser.RULE_columnName, 'column'], + [PostgreSqlParser.RULE_columnNameCreate, 'column'], + [PostgreSqlParser.RULE_schemaNameCreate, 'schema'], + [PostgreSqlParser.RULE_schemaName, 'schema'], + [PostgreSqlParser.RULE_procedureNameCreate, 'procedure'], + [PostgreSqlParser.RULE_procedureName, 'procedure'], ]); public getExpectedText(parser: Parser, token: Token) { @@ -57,23 +57,23 @@ export class PostgreSqlErrorListener extends ParseErrorListener { const [ruleType] = candidate; const name = this.objectNames.get(ruleType); switch (ruleType) { - case PostgreSqlParser.RULE_table_name: - case PostgreSqlParser.RULE_function_name: - case PostgreSqlParser.RULE_schema_name: - case PostgreSqlParser.RULE_view_name: - case PostgreSqlParser.RULE_database_name: - case PostgreSqlParser.RULE_procedure_name: - case PostgreSqlParser.RULE_column_name: { + case PostgreSqlParser.RULE_tableName: + case PostgreSqlParser.RULE_functionName: + case PostgreSqlParser.RULE_schemaName: + case PostgreSqlParser.RULE_viewName: + case PostgreSqlParser.RULE_databaseName: + case PostgreSqlParser.RULE_procedureName: + case PostgreSqlParser.RULE_columnName: { result.push(`{existing}${name}`); break; } - case PostgreSqlParser.RULE_table_name_create: - case PostgreSqlParser.RULE_function_name_create: - case PostgreSqlParser.RULE_schema_name_create: - case PostgreSqlParser.RULE_view_name_create: - case PostgreSqlParser.RULE_database_name_create: - case PostgreSqlParser.RULE_procedure_name_create: - case PostgreSqlParser.RULE_column_name_create: { + case PostgreSqlParser.RULE_tableNameCreate: + case PostgreSqlParser.RULE_functionNameCreate: + case PostgreSqlParser.RULE_schemaNameCreate: + case PostgreSqlParser.RULE_viewNameCreate: + case PostgreSqlParser.RULE_databaseNameCreate: + case PostgreSqlParser.RULE_procedureNameCreate: + case PostgreSqlParser.RULE_columnNameCreate: { result.push(`{new}${name}`); break; } diff --git a/test/parser/postgresql/listener.test.ts b/test/parser/postgresql/listener.test.ts index 58717eaeb..5365648c4 100644 --- a/test/parser/postgresql/listener.test.ts +++ b/test/parser/postgresql/listener.test.ts @@ -11,7 +11,7 @@ describe('PostgreSQL Listener Tests', () => { test('Listener enterTableName', async () => { class MyListener extends PostgreSqlParserListener { result = ''; - enterTable_ref = (ctx) => { + enterTableRef = (ctx) => { this.result = ctx.getText().toLowerCase(); }; } diff --git a/test/parser/postgresql/visitor.test.ts b/test/parser/postgresql/visitor.test.ts index 8520f2189..19cc49721 100644 --- a/test/parser/postgresql/visitor.test.ts +++ b/test/parser/postgresql/visitor.test.ts @@ -21,7 +21,7 @@ describe('MySQL Visitor Tests', () => { visitProgram = (ctx) => { return this.visitChildren(ctx); }; - visitTable_ref = (ctx) => { + visitTableRef = (ctx) => { return ctx.getText().toLowerCase(); }; }