@solidity-parser/parser
Advanced tools
Comparing version 0.16.2 to 0.17.0
@@ -1,6 +0,3 @@ | ||
import { ATN } from "antlr4ts/atn/ATN"; | ||
import { CharStream } from "antlr4ts/CharStream"; | ||
import { Lexer } from "antlr4ts/Lexer"; | ||
import { Vocabulary } from "antlr4ts/Vocabulary"; | ||
export declare class SolidityLexer extends Lexer { | ||
import { ATN, CharStream, DFA, Lexer } from "antlr4"; | ||
export default class SolidityLexer extends Lexer { | ||
static readonly T__0 = 1; | ||
@@ -139,22 +136,20 @@ static readonly T__1 = 2; | ||
static readonly LINE_COMMENT = 133; | ||
static readonly EOF: number; | ||
static readonly channelNames: string[]; | ||
static readonly literalNames: (string | null)[]; | ||
static readonly symbolicNames: (string | null)[]; | ||
static readonly modeNames: string[]; | ||
static readonly ruleNames: string[]; | ||
private static readonly _LITERAL_NAMES; | ||
private static readonly _SYMBOLIC_NAMES; | ||
static readonly VOCABULARY: Vocabulary; | ||
get vocabulary(): Vocabulary; | ||
constructor(input: CharStream); | ||
get grammarFileName(): string; | ||
get literalNames(): (string | null)[]; | ||
get symbolicNames(): (string | null)[]; | ||
get ruleNames(): string[]; | ||
get serializedATN(): string; | ||
get serializedATN(): number[]; | ||
get channelNames(): string[]; | ||
get modeNames(): string[]; | ||
private static readonly _serializedATNSegments; | ||
private static readonly _serializedATNSegment0; | ||
private static readonly _serializedATNSegment1; | ||
private static readonly _serializedATNSegment2; | ||
static readonly _serializedATN: string; | ||
static __ATN: ATN; | ||
static readonly _serializedATN: number[]; | ||
private static __ATN; | ||
static get _ATN(): ATN; | ||
static DecisionsToDFA: DFA[]; | ||
} |
@@ -1,2 +0,2 @@ | ||
import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener"; | ||
import { ParseTreeListener } from "antlr4"; | ||
import { SourceUnitContext } from "./SolidityParser"; | ||
@@ -107,3 +107,3 @@ import { PragmaDirectiveContext } from "./SolidityParser"; | ||
*/ | ||
export interface SolidityListener extends ParseTreeListener { | ||
export default class SolidityListener extends ParseTreeListener { | ||
/** | ||
@@ -110,0 +110,0 @@ * Enter a parse tree produced by `SolidityParser.sourceUnit`. |
@@ -1,2 +0,2 @@ | ||
import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor"; | ||
import { ParseTreeVisitor } from 'antlr4'; | ||
import { SourceUnitContext } from "./SolidityParser"; | ||
@@ -110,3 +110,3 @@ import { PragmaDirectiveContext } from "./SolidityParser"; | ||
*/ | ||
export interface SolidityVisitor<Result> extends ParseTreeVisitor<Result> { | ||
export default class SolidityVisitor<Result> extends ParseTreeVisitor<Result> { | ||
/** | ||
@@ -113,0 +113,0 @@ * Visit a parse tree produced by `SolidityParser.sourceUnit`. |
@@ -1,5 +0,4 @@ | ||
import { ParserRuleContext } from 'antlr4ts'; | ||
import { AbstractParseTreeVisitor } from 'antlr4ts/tree/AbstractParseTreeVisitor'; | ||
import { ParserRuleContext, ParseTreeVisitor } from 'antlr4'; | ||
import * as SP from './antlr/SolidityParser'; | ||
import { SolidityVisitor } from './antlr/SolidityVisitor'; | ||
import SolidityVisitor from './antlr/SolidityVisitor'; | ||
import { ParseOptions } from './types'; | ||
@@ -11,3 +10,3 @@ import * as AST from './ast-types'; | ||
type ASTBuilderNode = AST.ASTNode & WithMeta; | ||
export declare class ASTBuilder extends AbstractParseTreeVisitor<ASTBuilderNode> implements SolidityVisitor<ASTBuilderNode | ASTBuilderNode[]> { | ||
export declare class ASTBuilder extends ParseTreeVisitor<ASTBuilderNode> implements SolidityVisitor<ASTBuilderNode | ASTBuilderNode[]> { | ||
options: ParseOptions; | ||
@@ -14,0 +13,0 @@ result: AST.SourceUnit | null; |
@@ -1,3 +0,3 @@ | ||
import antlr4 from 'antlr4'; | ||
declare class ErrorListener extends antlr4.error.ErrorListener { | ||
import { ErrorListener as AntlrErrorListener } from 'antlr4'; | ||
declare class ErrorListener extends AntlrErrorListener<any> { | ||
private _errors; | ||
@@ -4,0 +4,0 @@ constructor(); |
@@ -1,2 +0,3 @@ | ||
import { Token, AntlrToken, TokenizeOptions } from './types'; | ||
import { Token as AntlrToken } from 'antlr4'; | ||
import { Token, TokenizeOptions } from './types'; | ||
export declare function buildTokenList(tokensArg: AntlrToken[], options: TokenizeOptions): Token[]; |
@@ -1,6 +0,4 @@ | ||
import { Token as Antlr4TsToken } from 'antlr4ts'; | ||
export interface Node { | ||
type: string; | ||
} | ||
export type AntlrToken = Antlr4TsToken; | ||
export interface TokenizeOptions { | ||
@@ -7,0 +5,0 @@ range?: boolean; |
{ | ||
"name": "@solidity-parser/parser", | ||
"version": "0.16.2", | ||
"version": "0.17.0", | ||
"description": "A Solidity parser built from a robust ANTLR 4 grammar", | ||
@@ -16,8 +16,8 @@ "main": "dist/index.cjs.js", | ||
"scripts": { | ||
"antlr": "antlr4ts -visitor antlr/Solidity.g4 -o src", | ||
"build:browser": "esbuild src/index.ts --outfile=dist/index.iife.js --bundle --loader:.tokens=file --sourcemap --format=iife --global-name=SolidityParser --define:__dirname=true --define:BROWSER=true --inject:./process-shim.js", | ||
"build:node": "esbuild src/index.ts --outfile=dist/index.cjs.js --bundle --loader:.tokens=file --sourcemap --format=cjs --platform=node --target=node12", | ||
"build": "npm run antlr && npm run build:node && npm run build:browser && npm run generate-types && npm run copy-files", | ||
"antlr": "antlr4 -Dlanguage=TypeScript -visitor -o src/ antlr/Solidity.g4 && npm run tokens", | ||
"tokens": "node ./scripts/tokens-string.js", | ||
"build:browser": "node ./scripts/build-browser.js", | ||
"build:node": "node ./scripts/build-node.js", | ||
"build": "npm run antlr && npm run build:node && npm run build:browser && npm run generate-types", | ||
"generate-types": "tsc", | ||
"copy-files": "shx mkdir -p dist/antlr && shx cp './src/antlr/*tokens' dist/antlr", | ||
"eslint": "eslint 'src/**' 'test/**'", | ||
@@ -46,19 +46,14 @@ "lint": "npm run eslint && npm run prettier -- --list-different", | ||
"license": "MIT", | ||
"dependencies": { | ||
"antlr4ts": "^0.5.0-alpha.4" | ||
}, | ||
"devDependencies": { | ||
"@types/chai": "^4.3.9", | ||
"@types/mocha": "^10.0.3", | ||
"@types/node": "^20.8.9", | ||
"@typescript-eslint/eslint-plugin": "^6.9.0", | ||
"@typescript-eslint/parser": "^6.9.0", | ||
"antlr4": "^4.9.2", | ||
"antlr4ts-cli": "^0.5.0-alpha.4", | ||
"@types/chai": "^4.3.11", | ||
"@types/mocha": "^10.0.6", | ||
"@types/node": "^20.10.5", | ||
"@typescript-eslint/eslint-plugin": "^6.15.0", | ||
"@typescript-eslint/parser": "^6.15.0", | ||
"antlr4": "^4.13.1-patch-1", | ||
"assert": "^2.1.0", | ||
"chai": "^4.3.10", | ||
"esbuild": "^0.11.13", | ||
"esbuild-register": "^2.5.0", | ||
"eslint": "^8.52.0", | ||
"eslint-plugin-import": "^2.29.0", | ||
"eslint": "^8.56.0", | ||
"eslint-plugin-import": "^2.29.1", | ||
"eslint-plugin-node": "^11.1.0", | ||
@@ -72,9 +67,8 @@ "eslint-plugin-promise": "^6.1.1", | ||
"nyc": "^15.1.0", | ||
"prettier": "^3.0.3", | ||
"puppeteer": "^21.4.1", | ||
"shx": "^0.3.4", | ||
"ts-node": "^10.9.1", | ||
"typescript": "^5.2.2", | ||
"prettier": "^3.1.1", | ||
"puppeteer": "^21.6.1", | ||
"ts-node": "^10.9.2", | ||
"typescript": "^5.3.3", | ||
"util": "^0.12.5", | ||
"yarn": "^1.22.19" | ||
"yarn": "^1.22.21" | ||
}, | ||
@@ -81,0 +75,0 @@ "nyc": { |
@@ -1,19 +0,15 @@ | ||
// Generated from antlr/Solidity.g4 by ANTLR 4.9.0-SNAPSHOT | ||
import { ATN } from "antlr4ts/atn/ATN"; | ||
import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer"; | ||
import { CharStream } from "antlr4ts/CharStream"; | ||
import { Lexer } from "antlr4ts/Lexer"; | ||
import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator"; | ||
import { NotNull } from "antlr4ts/Decorators"; | ||
import { Override } from "antlr4ts/Decorators"; | ||
import { RuleContext } from "antlr4ts/RuleContext"; | ||
import { Vocabulary } from "antlr4ts/Vocabulary"; | ||
import { VocabularyImpl } from "antlr4ts/VocabularyImpl"; | ||
import * as Utils from "antlr4ts/misc/Utils"; | ||
export class SolidityLexer extends Lexer { | ||
// Generated from antlr/Solidity.g4 by ANTLR 4.13.1 | ||
// noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols | ||
import { | ||
ATN, | ||
ATNDeserializer, | ||
CharStream, | ||
DecisionState, DFA, | ||
Lexer, | ||
LexerATNSimulator, | ||
RuleContext, | ||
PredictionContextCache, | ||
Token | ||
} from "antlr4"; | ||
export default class SolidityLexer extends Lexer { | ||
public static readonly T__0 = 1; | ||
@@ -152,13 +148,166 @@ public static readonly T__1 = 2; | ||
public static readonly LINE_COMMENT = 133; | ||
public static readonly EOF = Token.EOF; | ||
// tslint:disable:no-trailing-whitespace | ||
public static readonly channelNames: string[] = [ | ||
"DEFAULT_TOKEN_CHANNEL", "HIDDEN", | ||
]; | ||
public static readonly channelNames: string[] = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; | ||
public static readonly literalNames: (string | null)[] = [ null, "'pragma'", | ||
"';'", "'*'", | ||
"'||'", "'^'", | ||
"'~'", "'>='", | ||
"'>'", "'<'", | ||
"'<='", "'='", | ||
"'as'", "'import'", | ||
"'from'", "'{'", | ||
"','", "'}'", | ||
"'abstract'", | ||
"'contract'", | ||
"'interface'", | ||
"'library'", | ||
"'is'", "'('", | ||
"')'", "'error'", | ||
"'using'", "'for'", | ||
"'|'", "'&'", | ||
"'+'", "'-'", | ||
"'/'", "'%'", | ||
"'=='", "'!='", | ||
"'struct'", | ||
"'modifier'", | ||
"'function'", | ||
"'returns'", | ||
"'event'", "'enum'", | ||
"'['", "']'", | ||
"'address'", | ||
"'.'", "'mapping'", | ||
"'=>'", "'memory'", | ||
"'storage'", | ||
"'calldata'", | ||
"'if'", "'else'", | ||
"'try'", "'catch'", | ||
"'while'", "'unchecked'", | ||
"'assembly'", | ||
"'do'", "'return'", | ||
"'throw'", "'emit'", | ||
"'revert'", | ||
"'var'", "'bool'", | ||
"'string'", | ||
"'byte'", "'++'", | ||
"'--'", "'new'", | ||
"':'", "'delete'", | ||
"'!'", "'**'", | ||
"'<<'", "'>>'", | ||
"'&&'", "'?'", | ||
"'|='", "'^='", | ||
"'&='", "'<<='", | ||
"'>>='", "'+='", | ||
"'-='", "'*='", | ||
"'/='", "'%='", | ||
"'let'", "':='", | ||
"'=:'", "'switch'", | ||
"'case'", "'default'", | ||
"'->'", "'callback'", | ||
"'override'", | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, "'anonymous'", | ||
"'break'", "'constant'", | ||
"'immutable'", | ||
"'continue'", | ||
"'leave'", "'external'", | ||
"'indexed'", | ||
"'internal'", | ||
"'payable'", | ||
"'private'", | ||
"'public'", | ||
"'virtual'", | ||
"'pure'", "'type'", | ||
"'view'", "'global'", | ||
"'constructor'", | ||
"'fallback'", | ||
"'receive'" ]; | ||
public static readonly symbolicNames: (string | null)[] = [ null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, null, | ||
null, "Int", | ||
"Uint", "Byte", | ||
"Fixed", "Ufixed", | ||
"BooleanLiteral", | ||
"DecimalNumber", | ||
"HexNumber", | ||
"NumberUnit", | ||
"HexLiteralFragment", | ||
"ReservedKeyword", | ||
"AnonymousKeyword", | ||
"BreakKeyword", | ||
"ConstantKeyword", | ||
"ImmutableKeyword", | ||
"ContinueKeyword", | ||
"LeaveKeyword", | ||
"ExternalKeyword", | ||
"IndexedKeyword", | ||
"InternalKeyword", | ||
"PayableKeyword", | ||
"PrivateKeyword", | ||
"PublicKeyword", | ||
"VirtualKeyword", | ||
"PureKeyword", | ||
"TypeKeyword", | ||
"ViewKeyword", | ||
"GlobalKeyword", | ||
"ConstructorKeyword", | ||
"FallbackKeyword", | ||
"ReceiveKeyword", | ||
"Identifier", | ||
"StringLiteralFragment", | ||
"VersionLiteral", | ||
"WS", "COMMENT", | ||
"LINE_COMMENT" ]; | ||
public static readonly modeNames: string[] = [ "DEFAULT_MODE", ]; | ||
// tslint:disable:no-trailing-whitespace | ||
public static readonly modeNames: string[] = [ | ||
"DEFAULT_MODE", | ||
]; | ||
public static readonly ruleNames: string[] = [ | ||
@@ -189,736 +338,487 @@ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", | ||
private static readonly _LITERAL_NAMES: Array<string | undefined> = [ | ||
undefined, "'pragma'", "';'", "'*'", "'||'", "'^'", "'~'", "'>='", "'>'", | ||
"'<'", "'<='", "'='", "'as'", "'import'", "'from'", "'{'", "','", "'}'", | ||
"'abstract'", "'contract'", "'interface'", "'library'", "'is'", "'('", | ||
"')'", "'error'", "'using'", "'for'", "'|'", "'&'", "'+'", "'-'", "'/'", | ||
"'%'", "'=='", "'!='", "'struct'", "'modifier'", "'function'", "'returns'", | ||
"'event'", "'enum'", "'['", "']'", "'address'", "'.'", "'mapping'", "'=>'", | ||
"'memory'", "'storage'", "'calldata'", "'if'", "'else'", "'try'", "'catch'", | ||
"'while'", "'unchecked'", "'assembly'", "'do'", "'return'", "'throw'", | ||
"'emit'", "'revert'", "'var'", "'bool'", "'string'", "'byte'", "'++'", | ||
"'--'", "'new'", "':'", "'delete'", "'!'", "'**'", "'<<'", "'>>'", "'&&'", | ||
"'?'", "'|='", "'^='", "'&='", "'<<='", "'>>='", "'+='", "'-='", "'*='", | ||
"'/='", "'%='", "'let'", "':='", "'=:'", "'switch'", "'case'", "'default'", | ||
"'->'", "'callback'", "'override'", undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
"'anonymous'", "'break'", "'constant'", "'immutable'", "'continue'", "'leave'", | ||
"'external'", "'indexed'", "'internal'", "'payable'", "'private'", "'public'", | ||
"'virtual'", "'pure'", "'type'", "'view'", "'global'", "'constructor'", | ||
"'fallback'", "'receive'", | ||
]; | ||
private static readonly _SYMBOLIC_NAMES: Array<string | undefined> = [ | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, undefined, | ||
undefined, undefined, undefined, undefined, undefined, undefined, "Int", | ||
"Uint", "Byte", "Fixed", "Ufixed", "BooleanLiteral", "DecimalNumber", | ||
"HexNumber", "NumberUnit", "HexLiteralFragment", "ReservedKeyword", "AnonymousKeyword", | ||
"BreakKeyword", "ConstantKeyword", "ImmutableKeyword", "ContinueKeyword", | ||
"LeaveKeyword", "ExternalKeyword", "IndexedKeyword", "InternalKeyword", | ||
"PayableKeyword", "PrivateKeyword", "PublicKeyword", "VirtualKeyword", | ||
"PureKeyword", "TypeKeyword", "ViewKeyword", "GlobalKeyword", "ConstructorKeyword", | ||
"FallbackKeyword", "ReceiveKeyword", "Identifier", "StringLiteralFragment", | ||
"VersionLiteral", "WS", "COMMENT", "LINE_COMMENT", | ||
]; | ||
public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(SolidityLexer._LITERAL_NAMES, SolidityLexer._SYMBOLIC_NAMES, []); | ||
// @Override | ||
// @NotNull | ||
public get vocabulary(): Vocabulary { | ||
return SolidityLexer.VOCABULARY; | ||
} | ||
// tslint:enable:no-trailing-whitespace | ||
constructor(input: CharStream) { | ||
super(input); | ||
this._interp = new LexerATNSimulator(SolidityLexer._ATN, this); | ||
this._interp = new LexerATNSimulator(this, SolidityLexer._ATN, SolidityLexer.DecisionsToDFA, new PredictionContextCache()); | ||
} | ||
// @Override | ||
public get grammarFileName(): string { return "Solidity.g4"; } | ||
// @Override | ||
public get literalNames(): (string | null)[] { return SolidityLexer.literalNames; } | ||
public get symbolicNames(): (string | null)[] { return SolidityLexer.symbolicNames; } | ||
public get ruleNames(): string[] { return SolidityLexer.ruleNames; } | ||
// @Override | ||
public get serializedATN(): string { return SolidityLexer._serializedATN; } | ||
public get serializedATN(): number[] { return SolidityLexer._serializedATN; } | ||
// @Override | ||
public get channelNames(): string[] { return SolidityLexer.channelNames; } | ||
// @Override | ||
public get modeNames(): string[] { return SolidityLexer.modeNames; } | ||
private static readonly _serializedATNSegments: number = 3; | ||
private static readonly _serializedATNSegment0: string = | ||
"\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\x87\u053A\b\x01" + | ||
"\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06" + | ||
"\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r" + | ||
"\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t" + | ||
"\x12\x04\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t" + | ||
"\x17\x04\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t" + | ||
"\x1C\x04\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t" + | ||
"\"\x04#\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04" + | ||
"+\t+\x04,\t,\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x04" + | ||
"4\t4\x045\t5\x046\t6\x047\t7\x048\t8\x049\t9\x04:\t:\x04;\t;\x04<\t<\x04" + | ||
"=\t=\x04>\t>\x04?\t?\x04@\t@\x04A\tA\x04B\tB\x04C\tC\x04D\tD\x04E\tE\x04" + | ||
"F\tF\x04G\tG\x04H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04N\tN\x04" + | ||
"O\tO\x04P\tP\x04Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04W\tW\x04" + | ||
"X\tX\x04Y\tY\x04Z\tZ\x04[\t[\x04\\\t\\\x04]\t]\x04^\t^\x04_\t_\x04`\t" + | ||
"`\x04a\ta\x04b\tb\x04c\tc\x04d\td\x04e\te\x04f\tf\x04g\tg\x04h\th\x04" + | ||
"i\ti\x04j\tj\x04k\tk\x04l\tl\x04m\tm\x04n\tn\x04o\to\x04p\tp\x04q\tq\x04" + | ||
"r\tr\x04s\ts\x04t\tt\x04u\tu\x04v\tv\x04w\tw\x04x\tx\x04y\ty\x04z\tz\x04" + | ||
"{\t{\x04|\t|\x04}\t}\x04~\t~\x04\x7F\t\x7F\x04\x80\t\x80\x04\x81\t\x81" + | ||
"\x04\x82\t\x82\x04\x83\t\x83\x04\x84\t\x84\x04\x85\t\x85\x04\x86\t\x86" + | ||
"\x04\x87\t\x87\x04\x88\t\x88\x04\x89\t\x89\x04\x8A\t\x8A\x04\x8B\t\x8B" + | ||
"\x04\x8C\t\x8C\x04\x8D\t\x8D\x04\x8E\t\x8E\x04\x8F\t\x8F\x03\x02\x03\x02" + | ||
"\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x03\x03\x03\x03\x04\x03\x04" + | ||
"\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x07\x03\x07\x03\b\x03\b\x03" + | ||
"\b\x03\t\x03\t\x03\n\x03\n\x03\v\x03\v\x03\v\x03\f\x03\f\x03\r\x03\r\x03" + | ||
"\r\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0F\x03" + | ||
"\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x10\x03\x10\x03\x11\x03\x11\x03\x12\x03" + | ||
"\x12\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03" + | ||
"\x13\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03" + | ||
"\x14\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03" + | ||
"\x15\x03\x15\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03" + | ||
"\x16\x03\x17\x03\x17\x03\x17\x03\x18\x03\x18\x03\x19\x03\x19\x03\x1A\x03" + | ||
"\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03" + | ||
"\x1B\x03\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D\x03\x1E\x03" + | ||
"\x1E\x03\x1F\x03\x1F\x03 \x03 \x03!\x03!\x03\"\x03\"\x03#\x03#\x03#\x03" + | ||
"$\x03$\x03$\x03%\x03%\x03%\x03%\x03%\x03%\x03%\x03&\x03&\x03&\x03&\x03" + | ||
"&\x03&\x03&\x03&\x03&\x03\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03\'" + | ||
"\x03\'\x03(\x03(\x03(\x03(\x03(\x03(\x03(\x03(\x03)\x03)\x03)\x03)\x03" + | ||
")\x03)\x03*\x03*\x03*\x03*\x03*\x03+\x03+\x03,\x03,\x03-\x03-\x03-\x03" + | ||
"-\x03-\x03-\x03-\x03-\x03.\x03.\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x03" + | ||
"/\x030\x030\x030\x031\x031\x031\x031\x031\x031\x031\x032\x032\x032\x03" + | ||
"2\x032\x032\x032\x032\x033\x033\x033\x033\x033\x033\x033\x033\x033\x03" + | ||
"4\x034\x034\x035\x035\x035\x035\x035\x036\x036\x036\x036\x037\x037\x03" + | ||
"7\x037\x037\x037\x038\x038\x038\x038\x038\x038\x039\x039\x039\x039\x03" + | ||
"9\x039\x039\x039\x039\x039\x03:\x03:\x03:\x03:\x03:\x03:\x03:\x03:\x03" + | ||
":\x03;\x03;\x03;\x03<\x03<\x03<\x03<\x03<\x03<\x03<\x03=\x03=\x03=\x03" + | ||
"=\x03=\x03=\x03>\x03>\x03>\x03>\x03>\x03?\x03?\x03?\x03?\x03?\x03?\x03" + | ||
"?\x03@\x03@\x03@\x03@\x03A\x03A\x03A\x03A\x03A\x03B\x03B\x03B\x03B\x03" + | ||
"B\x03B\x03B\x03C\x03C\x03C\x03C\x03C\x03D\x03D\x03D\x03E\x03E\x03E\x03" + | ||
"F\x03F\x03F\x03F\x03G\x03G\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03I\x03" + | ||
"I\x03J\x03J\x03J\x03K\x03K\x03K\x03L\x03L\x03L\x03M\x03M\x03M\x03N\x03" + | ||
"N\x03O\x03O\x03O\x03P\x03P\x03P\x03Q\x03Q\x03Q\x03R\x03R\x03R\x03R\x03" + | ||
"S\x03S\x03S\x03S\x03T\x03T\x03T\x03U\x03U\x03U\x03V\x03V\x03V\x03W\x03" + | ||
"W\x03W\x03X\x03X\x03X\x03Y\x03Y\x03Y\x03Y\x03Z\x03Z\x03Z\x03[\x03[\x03" + | ||
"[\x03\\\x03\\\x03\\\x03\\\x03\\\x03\\\x03\\\x03]\x03]\x03]\x03]\x03]\x03" + | ||
"^\x03^\x03^\x03^\x03^\x03^\x03^\x03^\x03_\x03_\x03_\x03`\x03`\x03`\x03" + | ||
"`\x03`\x03`\x03`\x03`\x03`\x03a\x03a\x03a\x03a\x03a\x03a\x03a\x03a\x03" + | ||
"a\x03b\x03b\x03b\x03b\x03b\x05b\u02D4\nb\x03c\x03c\x03c\x03c\x03c\x03" + | ||
"c\x05c\u02DC\nc\x03d\x03d\x03d\x03d\x03d\x03d\x03d\x05d\u02E5\nd\x03e" + | ||
"\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x06e\u02F0\ne\re\x0Ee\u02F1\x05" + | ||
"e\u02F4\ne\x03f\x03f\x03f\x03f\x03f\x03f\x03f\x03f\x03f\x03f\x06f\u0300" + | ||
"\nf\rf\x0Ef\u0301\x05f\u0304\nf\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03" + | ||
"g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03" + | ||
"g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03" + | ||
"g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03" + | ||
"g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03" + | ||
"g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03" + | ||
"g\x03g\x03g\x03g\x03g\x03g\x05g\u0359\ng\x03h\x03h\x03h\x03h\x03h\x05" + | ||
"h\u0360\nh\x03i\x03i\x03i\x03i\x03i\x03i\x03i\x03i\x03i\x05i\u036B\ni" + | ||
"\x03j\x03j\x05j\u036F\nj\x03j\x03j\x05j\u0373\nj\x03j\x03j\x05j\u0377" + | ||
"\nj\x03j\x05j\u037A\nj\x03k\x03k\x05k\u037E\nk\x03k\x07k\u0381\nk\fk\x0E" + | ||
"k\u0384\vk\x03l\x03l\x03l\x03l\x03m\x03m\x05m\u038C\nm\x03m\x07m\u038F" + | ||
"\nm\fm\x0Em\u0392\vm\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03" + | ||
"n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03" + | ||
"n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03" + | ||
"n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03" + | ||
"n\x03n\x03n\x03n\x03n\x05n\u03CC\nn\x03o\x03o\x03o\x03o\x03o\x03o\x05" + | ||
"o\u03D4\no\x03o\x03o\x03o\x05o\u03D9\no\x03o\x05o\u03DC\no\x03p\x03p\x03" + | ||
"q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" + | ||
"q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" + | ||
"q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" + | ||
"q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" + | ||
"q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" + | ||
"q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" + | ||
"q\x03q\x03q\x03q\x05q\u0438\nq\x03r\x03r\x03r\x03r\x03r\x03r\x03r\x03" + | ||
"r\x03r\x03r\x03s\x03s\x03s\x03s\x03s\x03s\x03t\x03t\x03t\x03t\x03t\x03" + | ||
"t\x03t\x03t\x03t\x03u\x03u\x03u\x03u\x03u\x03u\x03u\x03u\x03u\x03u\x03" + | ||
"v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03w\x03w\x03w\x03w\x03w\x03" + | ||
"w\x03x\x03x\x03x\x03x\x03x\x03x\x03x\x03x\x03x\x03y\x03y\x03y\x03y\x03" + | ||
"y\x03y\x03y\x03y\x03z\x03z\x03z\x03z\x03z\x03z\x03z\x03z\x03z\x03{\x03" + | ||
"{\x03{\x03{\x03{\x03{\x03{\x03{\x03|\x03|\x03|\x03|\x03|\x03|\x03|\x03" + | ||
"|\x03}\x03}\x03}\x03}\x03}\x03}\x03}\x03~\x03~\x03~\x03~\x03~\x03~\x03" + | ||
"~\x03~\x03\x7F\x03\x7F\x03\x7F\x03\x7F\x03\x7F\x03\x80\x03\x80\x03\x80" + | ||
"\x03\x80\x03\x80\x03\x81\x03\x81\x03\x81\x03\x81\x03\x81\x03\x82\x03\x82" + | ||
"\x03\x82\x03\x82\x03\x82\x03\x82\x03\x82\x03\x83\x03\x83\x03\x83\x03\x83" + | ||
"\x03\x83\x03\x83\x03\x83\x03\x83\x03\x83\x03\x83\x03\x83\x03\x83\x03\x84" + | ||
"\x03\x84\x03\x84\x03\x84\x03\x84\x03\x84\x03\x84\x03\x84\x03\x84\x03\x85" + | ||
"\x03\x85\x03\x85\x03\x85\x03\x85\x03\x85\x03\x85\x03\x85\x03\x86\x03\x86" + | ||
"\x07\x86\u04DA\n\x86\f\x86\x0E\x86\u04DD\v\x86\x03\x87\x03\x87\x03\x88" + | ||
"\x03\x88\x03\x89\x03\x89\x03\x89\x03\x89\x03\x89\x03\x89\x03\x89\x05\x89" + | ||
"\u04EA\n\x89\x03\x89\x03\x89\x07\x89\u04EE\n\x89\f\x89\x0E\x89\u04F1\v" + | ||
"\x89\x03\x89\x03\x89\x03\x89\x07\x89\u04F6\n\x89\f\x89\x0E\x89\u04F9\v" + | ||
"\x89\x03\x89\x05\x89\u04FC\n\x89\x03\x8A\x03\x8A\x03\x8A\x05\x8A\u0501" + | ||
"\n\x8A\x03\x8B\x03\x8B\x03\x8B\x05\x8B\u0506\n\x8B\x03\x8C\x06\x8C\u0509" + | ||
"\n\x8C\r\x8C\x0E\x8C\u050A\x03\x8C\x03\x8C\x06\x8C\u050F\n\x8C\r\x8C\x0E" + | ||
"\x8C\u0510\x03\x8C\x03\x8C\x06\x8C\u0515\n\x8C\r\x8C\x0E\x8C\u0516\x05" + | ||
"\x8C\u0519\n\x8C\x03\x8D\x06\x8D\u051C\n\x8D\r\x8D\x0E\x8D\u051D\x03\x8D" + | ||
"\x03\x8D\x03\x8E\x03\x8E\x03\x8E\x03\x8E\x07\x8E\u0526\n\x8E\f\x8E\x0E" + | ||
"\x8E\u0529\v\x8E\x03\x8E\x03\x8E\x03\x8E\x03\x8E\x03\x8E\x03\x8F\x03\x8F" + | ||
"\x03\x8F\x03\x8F\x07\x8F\u0534\n\x8F\f\x8F\x0E\x8F\u0537\v\x8F\x03\x8F" + | ||
"\x03\x8F\x03\u0527\x02\x02\x90\x03\x02\x03\x05\x02\x04\x07\x02\x05\t\x02" + | ||
"\x06\v\x02\x07\r\x02\b\x0F\x02\t\x11\x02\n\x13\x02\v\x15\x02\f\x17\x02" + | ||
"\r\x19\x02\x0E\x1B\x02\x0F\x1D\x02\x10\x1F\x02\x11!\x02\x12#\x02\x13%" + | ||
"\x02\x14\'\x02\x15)\x02\x16+\x02\x17-\x02\x18/\x02\x191\x02\x1A3\x02\x1B" + | ||
"5\x02\x1C7\x02\x1D9\x02\x1E;\x02\x1F=\x02 ?\x02!A\x02\"C\x02#E\x02$G\x02" + | ||
"%I\x02&K\x02\'M\x02(O\x02)Q\x02*S\x02+U\x02,W\x02-Y\x02.[\x02/]\x020_" + | ||
"\x021a\x022c\x023e\x024g\x025i\x026k\x027m\x028o\x029q\x02:s\x02;u\x02" + | ||
"<w\x02=y\x02>{\x02?}\x02@\x7F\x02A\x81\x02B\x83\x02C\x85\x02D\x87\x02" + | ||
"E\x89\x02F\x8B\x02G\x8D\x02H\x8F\x02I\x91\x02J\x93\x02K\x95\x02L\x97\x02" + | ||
"M\x99\x02N\x9B\x02O\x9D\x02P\x9F\x02Q\xA1\x02R\xA3\x02S\xA5\x02T\xA7\x02" + | ||
"U\xA9\x02V\xAB\x02W\xAD\x02X\xAF\x02Y\xB1\x02Z\xB3\x02[\xB5\x02\\\xB7" + | ||
"\x02]\xB9\x02^\xBB\x02_\xBD\x02`\xBF\x02a\xC1\x02b\xC3\x02c\xC5\x02d\xC7" + | ||
"\x02e\xC9\x02f\xCB\x02g\xCD\x02\x02\xCF\x02\x02\xD1\x02h\xD3\x02i\xD5" + | ||
"\x02\x02\xD7\x02j\xD9\x02\x02\xDB\x02k\xDD\x02l\xDF\x02\x02\xE1\x02m\xE3" + | ||
"\x02n\xE5\x02o\xE7\x02p\xE9\x02q\xEB\x02r\xED\x02s\xEF\x02t\xF1\x02u\xF3" + | ||
"\x02v\xF5\x02w\xF7\x02x\xF9\x02y\xFB\x02z\xFD\x02{\xFF\x02|\u0101\x02" + | ||
"}\u0103\x02~\u0105\x02\x7F\u0107\x02\x80\u0109\x02\x81\u010B\x02\x82\u010D" + | ||
"\x02\x02\u010F\x02\x02\u0111\x02\x83\u0113\x02\x02\u0115\x02\x02\u0117" + | ||
"\x02\x84\u0119\x02\x85\u011B\x02\x86\u011D\x02\x87\x03\x02\x0F\x03\x02" + | ||
"2;\x03\x023;\x03\x0234\x03\x0224\x04\x02GGgg\x04\x02ZZzz\x05\x022;CHc" + | ||
"h\x06\x02&&C\\aac|\x07\x02&&2;C\\aac|\x06\x02\f\f\x0F\x0F$$^^\x06\x02" + | ||
"\f\f\x0F\x0F))^^\x05\x02\v\f\x0E\x0F\"\"\x04\x02\f\f\x0F\x0F\x02\u058C" + | ||
"\x02\x03\x03\x02\x02\x02\x02\x05\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02" + | ||
"\x02\t\x03\x02\x02\x02\x02\v\x03\x02\x02\x02\x02\r\x03\x02\x02\x02\x02" + | ||
"\x0F\x03\x02\x02\x02\x02\x11\x03\x02\x02\x02\x02\x13\x03\x02\x02\x02\x02" + | ||
"\x15\x03\x02\x02\x02\x02\x17\x03\x02\x02\x02\x02\x19\x03\x02\x02\x02\x02" + | ||
"\x1B\x03\x02\x02\x02\x02\x1D\x03\x02\x02\x02\x02\x1F\x03\x02\x02\x02\x02" + | ||
"!\x03\x02\x02\x02\x02#\x03\x02\x02\x02\x02%\x03\x02\x02\x02\x02\'\x03" + | ||
"\x02\x02\x02\x02)\x03\x02\x02\x02\x02+\x03\x02\x02\x02\x02-\x03\x02\x02" + | ||
"\x02\x02/\x03\x02\x02\x02\x021\x03\x02\x02\x02\x023\x03\x02\x02\x02\x02" + | ||
"5\x03\x02\x02\x02\x027\x03\x02\x02\x02\x029\x03\x02\x02\x02\x02;\x03\x02" + | ||
"\x02\x02\x02=\x03\x02\x02\x02\x02?\x03\x02\x02\x02\x02A\x03\x02\x02\x02" + | ||
"\x02C\x03\x02\x02\x02\x02E\x03\x02\x02\x02\x02G\x03\x02\x02\x02\x02I\x03" + | ||
"\x02\x02\x02\x02K\x03\x02\x02\x02\x02M\x03\x02\x02\x02\x02O\x03\x02\x02" + | ||
"\x02\x02Q\x03\x02\x02\x02\x02S\x03\x02\x02\x02\x02U\x03\x02\x02\x02\x02" + | ||
"W\x03\x02\x02\x02\x02Y\x03\x02\x02\x02\x02[\x03\x02\x02\x02\x02]\x03\x02" + | ||
"\x02\x02\x02_\x03\x02\x02\x02\x02a\x03\x02\x02\x02\x02c\x03\x02\x02\x02" + | ||
"\x02e\x03\x02\x02\x02\x02g\x03\x02\x02\x02\x02i\x03\x02\x02\x02\x02k\x03" + | ||
"\x02\x02\x02\x02m\x03\x02\x02\x02\x02o\x03\x02\x02\x02\x02q\x03\x02\x02" + | ||
"\x02\x02s\x03\x02\x02\x02\x02u\x03\x02\x02\x02\x02w\x03\x02\x02\x02\x02" + | ||
"y\x03\x02\x02\x02\x02{\x03\x02\x02\x02\x02}\x03\x02\x02\x02\x02\x7F\x03" + | ||
"\x02\x02\x02\x02\x81\x03\x02\x02\x02\x02\x83\x03\x02\x02\x02\x02\x85\x03" + | ||
"\x02\x02\x02\x02\x87\x03\x02\x02\x02\x02\x89\x03\x02\x02\x02\x02\x8B\x03" + | ||
"\x02\x02\x02\x02\x8D\x03\x02\x02\x02\x02\x8F\x03\x02\x02\x02\x02\x91\x03" + | ||
"\x02\x02\x02\x02\x93\x03\x02\x02\x02\x02\x95\x03\x02\x02\x02\x02\x97\x03" + | ||
"\x02\x02\x02\x02\x99\x03\x02\x02\x02\x02\x9B\x03\x02\x02\x02\x02\x9D\x03" + | ||
"\x02\x02\x02\x02\x9F\x03\x02\x02\x02\x02\xA1\x03\x02\x02\x02\x02\xA3\x03" + | ||
"\x02\x02\x02\x02\xA5\x03\x02\x02\x02\x02\xA7\x03\x02\x02\x02\x02\xA9\x03" + | ||
"\x02\x02\x02\x02\xAB\x03\x02\x02\x02\x02\xAD\x03\x02\x02\x02\x02\xAF\x03" + | ||
"\x02\x02\x02\x02\xB1\x03\x02\x02\x02\x02\xB3\x03\x02\x02\x02\x02\xB5\x03" + | ||
"\x02\x02\x02\x02\xB7\x03\x02\x02\x02\x02\xB9\x03\x02\x02\x02\x02\xBB\x03" + | ||
"\x02\x02\x02\x02\xBD\x03\x02\x02\x02\x02\xBF\x03\x02\x02\x02\x02\xC1\x03" + | ||
"\x02\x02\x02\x02\xC3\x03\x02\x02\x02\x02\xC5\x03\x02\x02\x02\x02\xC7\x03" + | ||
"\x02\x02\x02\x02\xC9\x03\x02\x02\x02\x02\xCB\x03\x02\x02\x02\x02\xD1\x03" + | ||
"\x02\x02\x02\x02\xD3\x03\x02\x02\x02\x02\xD7\x03\x02\x02\x02\x02\xDB\x03" + | ||
"\x02\x02\x02\x02\xDD\x03\x02\x02\x02\x02\xE1\x03\x02\x02\x02\x02\xE3\x03" + | ||
"\x02\x02\x02\x02\xE5\x03\x02\x02\x02\x02\xE7\x03\x02\x02\x02\x02\xE9\x03" + | ||
"\x02\x02\x02\x02\xEB\x03\x02\x02\x02\x02\xED\x03\x02\x02\x02\x02\xEF\x03" + | ||
"\x02\x02\x02\x02\xF1\x03\x02\x02\x02\x02\xF3\x03\x02\x02\x02\x02\xF5\x03" + | ||
"\x02\x02\x02\x02\xF7\x03\x02\x02\x02\x02\xF9\x03\x02\x02\x02\x02\xFB\x03" + | ||
"\x02\x02\x02\x02\xFD\x03\x02\x02\x02\x02\xFF\x03\x02\x02\x02\x02\u0101" + | ||
"\x03\x02\x02\x02\x02\u0103\x03\x02\x02\x02\x02\u0105\x03\x02\x02\x02\x02" + | ||
"\u0107\x03\x02\x02\x02\x02\u0109\x03\x02\x02\x02\x02\u010B\x03\x02\x02" + | ||
"\x02\x02\u0111\x03\x02\x02\x02\x02\u0117\x03\x02\x02\x02\x02\u0119\x03" + | ||
"\x02\x02\x02\x02\u011B\x03\x02\x02\x02\x02\u011D\x03\x02\x02\x02\x03\u011F" + | ||
"\x03\x02\x02\x02\x05\u0126\x03\x02\x02\x02\x07\u0128\x03\x02\x02\x02\t" + | ||
"\u012A\x03\x02\x02\x02\v\u012D\x03\x02\x02\x02\r\u012F\x03\x02\x02\x02" + | ||
"\x0F\u0131\x03\x02\x02\x02\x11\u0134\x03\x02\x02\x02\x13\u0136\x03\x02" + | ||
"\x02\x02\x15\u0138\x03\x02\x02\x02\x17\u013B\x03\x02\x02\x02\x19\u013D" + | ||
"\x03\x02\x02\x02\x1B\u0140\x03\x02\x02\x02\x1D\u0147\x03\x02\x02\x02\x1F" + | ||
"\u014C\x03\x02\x02\x02!\u014E\x03\x02\x02\x02#\u0150\x03\x02\x02\x02%" + | ||
"\u0152\x03\x02\x02\x02\'\u015B\x03\x02\x02\x02)\u0164\x03\x02\x02\x02" + | ||
"+\u016E\x03\x02\x02\x02-\u0176\x03\x02\x02\x02/\u0179\x03\x02\x02\x02" + | ||
"1\u017B\x03\x02\x02\x023\u017D\x03\x02\x02\x025\u0183\x03\x02\x02\x02" + | ||
"7\u0189\x03\x02\x02\x029\u018D\x03\x02\x02\x02;\u018F\x03\x02\x02\x02" + | ||
"=\u0191\x03\x02\x02\x02?\u0193\x03\x02\x02\x02A\u0195\x03\x02\x02\x02" + | ||
"C\u0197\x03\x02\x02\x02E\u0199\x03\x02\x02\x02G\u019C\x03\x02\x02\x02" + | ||
"I\u019F\x03\x02\x02\x02K\u01A6\x03\x02\x02\x02M\u01AF\x03\x02\x02\x02" + | ||
"O\u01B8\x03\x02\x02\x02Q\u01C0\x03\x02\x02\x02S\u01C6\x03\x02\x02\x02" + | ||
"U\u01CB\x03\x02\x02\x02W\u01CD\x03\x02\x02\x02Y\u01CF\x03\x02\x02\x02" + | ||
"[\u01D7\x03\x02\x02\x02]\u01D9\x03\x02\x02\x02_\u01E1\x03\x02\x02\x02" + | ||
"a\u01E4\x03\x02\x02\x02c\u01EB\x03\x02\x02\x02e\u01F3\x03\x02\x02\x02" + | ||
"g\u01FC\x03\x02\x02\x02i\u01FF\x03\x02\x02\x02k\u0204\x03\x02\x02\x02" + | ||
"m\u0208\x03\x02\x02\x02o\u020E\x03\x02\x02\x02q\u0214\x03\x02\x02\x02" + | ||
"s\u021E\x03\x02\x02\x02u\u0227\x03\x02\x02\x02w\u022A\x03\x02\x02\x02" + | ||
"y\u0231\x03\x02\x02\x02{\u0237\x03\x02\x02\x02}\u023C\x03\x02\x02\x02" + | ||
"\x7F\u0243\x03\x02\x02\x02\x81\u0247\x03\x02\x02\x02\x83\u024C\x03\x02" + | ||
"\x02\x02\x85\u0253\x03\x02\x02\x02\x87\u0258\x03\x02\x02\x02\x89\u025B" + | ||
"\x03\x02\x02\x02\x8B\u025E\x03\x02\x02\x02\x8D\u0262\x03\x02\x02\x02\x8F" + | ||
"\u0264\x03\x02\x02\x02\x91\u026B\x03\x02\x02\x02\x93\u026D\x03\x02\x02" + | ||
"\x02\x95\u0270\x03\x02\x02\x02\x97\u0273\x03\x02\x02\x02\x99\u0276\x03" + | ||
"\x02\x02\x02\x9B\u0279\x03\x02\x02\x02\x9D\u027B\x03\x02\x02\x02\x9F\u027E" + | ||
"\x03\x02\x02\x02\xA1\u0281\x03\x02\x02\x02\xA3\u0284\x03\x02\x02\x02\xA5" + | ||
"\u0288\x03\x02\x02\x02\xA7\u028C\x03\x02\x02\x02\xA9\u028F\x03\x02\x02" + | ||
"\x02\xAB\u0292\x03\x02\x02\x02\xAD\u0295\x03\x02\x02\x02\xAF\u0298\x03" + | ||
"\x02\x02\x02\xB1\u029B\x03\x02\x02\x02\xB3\u029F\x03\x02\x02\x02\xB5\u02A2" + | ||
"\x03\x02\x02\x02\xB7\u02A5\x03\x02\x02\x02\xB9\u02AC\x03\x02\x02\x02\xBB" + | ||
"\u02B1\x03\x02\x02\x02\xBD\u02B9\x03\x02\x02\x02\xBF\u02BC\x03\x02\x02" + | ||
"\x02\xC1\u02C5\x03\x02\x02\x02\xC3\u02CE\x03\x02\x02\x02\xC5\u02D5\x03" + | ||
"\x02\x02\x02\xC7\u02DD\x03\x02\x02\x02\xC9\u02E6\x03\x02\x02\x02\xCB\u02F5" + | ||
"\x03\x02\x02\x02\xCD\u0358\x03\x02\x02\x02\xCF\u035F\x03\x02\x02\x02\xD1" + | ||
"\u036A\x03\x02\x02\x02\xD3\u0372\x03\x02\x02\x02\xD5\u037B\x03\x02\x02" + | ||
"\x02\xD7\u0385\x03\x02\x02\x02\xD9\u0389\x03\x02\x02\x02\xDB\u03CB\x03" + | ||
"\x02\x02\x02\xDD\u03CD\x03\x02\x02\x02\xDF\u03DD\x03\x02\x02\x02\xE1\u0437" + | ||
"\x03\x02\x02\x02\xE3\u0439\x03\x02\x02\x02\xE5\u0443\x03\x02\x02\x02\xE7" + | ||
"\u0449\x03\x02\x02\x02\xE9\u0452\x03\x02\x02\x02\xEB\u045C\x03\x02\x02" + | ||
"\x02\xED\u0465\x03\x02\x02\x02\xEF\u046B\x03\x02\x02\x02\xF1\u0474\x03" + | ||
"\x02\x02\x02\xF3\u047C\x03\x02\x02\x02\xF5\u0485\x03\x02\x02\x02\xF7\u048D" + | ||
"\x03\x02\x02\x02\xF9\u0495\x03\x02\x02\x02\xFB\u049C\x03\x02\x02\x02\xFD" + | ||
"\u04A4\x03\x02\x02\x02\xFF\u04A9\x03\x02\x02\x02\u0101\u04AE\x03\x02\x02" + | ||
"\x02\u0103\u04B3\x03\x02\x02\x02\u0105\u04BA\x03\x02\x02\x02\u0107\u04C6" + | ||
"\x03\x02\x02\x02\u0109\u04CF\x03\x02\x02\x02\u010B\u04D7\x03\x02\x02\x02" + | ||
"\u010D\u04DE\x03\x02\x02\x02\u010F\u04E0\x03\x02\x02\x02\u0111\u04E9\x03" + | ||
"\x02\x02\x02\u0113\u0500\x03\x02\x02\x02\u0115\u0505\x03\x02\x02\x02\u0117" + | ||
"\u0508\x03\x02\x02\x02\u0119\u051B\x03\x02\x02\x02\u011B\u0521\x03\x02" + | ||
"\x02\x02\u011D\u052F\x03\x02\x02\x02\u011F\u0120\x07r\x02\x02\u0120\u0121" + | ||
"\x07t\x02\x02\u0121\u0122\x07c\x02\x02\u0122\u0123\x07i\x02\x02\u0123" + | ||
"\u0124\x07o\x02\x02\u0124\u0125\x07c\x02\x02\u0125\x04\x03\x02\x02\x02" + | ||
"\u0126\u0127\x07=\x02\x02\u0127\x06\x03\x02\x02\x02\u0128\u0129\x07,\x02" + | ||
"\x02\u0129\b\x03\x02\x02\x02\u012A\u012B\x07~\x02\x02\u012B\u012C\x07" + | ||
"~\x02\x02\u012C\n\x03\x02\x02\x02\u012D\u012E\x07`"; | ||
private static readonly _serializedATNSegment1: string = | ||
"\x02\x02\u012E\f\x03\x02\x02\x02\u012F\u0130\x07\x80\x02\x02\u0130\x0E" + | ||
"\x03\x02\x02\x02\u0131\u0132\x07@\x02\x02\u0132\u0133\x07?\x02\x02\u0133" + | ||
"\x10\x03\x02\x02\x02\u0134\u0135\x07@\x02\x02\u0135\x12\x03\x02\x02\x02" + | ||
"\u0136\u0137\x07>\x02\x02\u0137\x14\x03\x02\x02\x02\u0138\u0139\x07>\x02" + | ||
"\x02\u0139\u013A\x07?\x02\x02\u013A\x16\x03\x02\x02\x02\u013B\u013C\x07" + | ||
"?\x02\x02\u013C\x18\x03\x02\x02\x02\u013D\u013E\x07c\x02\x02\u013E\u013F" + | ||
"\x07u\x02\x02\u013F\x1A\x03\x02\x02\x02\u0140\u0141\x07k\x02\x02\u0141" + | ||
"\u0142\x07o\x02\x02\u0142\u0143\x07r\x02\x02\u0143\u0144\x07q\x02\x02" + | ||
"\u0144\u0145\x07t\x02\x02\u0145\u0146\x07v\x02\x02\u0146\x1C\x03\x02\x02" + | ||
"\x02\u0147\u0148\x07h\x02\x02\u0148\u0149\x07t\x02\x02\u0149\u014A\x07" + | ||
"q\x02\x02\u014A\u014B\x07o\x02\x02\u014B\x1E\x03\x02\x02\x02\u014C\u014D" + | ||
"\x07}\x02\x02\u014D \x03\x02\x02\x02\u014E\u014F\x07.\x02\x02\u014F\"" + | ||
"\x03\x02\x02\x02\u0150\u0151\x07\x7F\x02\x02\u0151$\x03\x02\x02\x02\u0152" + | ||
"\u0153\x07c\x02\x02\u0153\u0154\x07d\x02\x02\u0154\u0155\x07u\x02\x02" + | ||
"\u0155\u0156\x07v\x02\x02\u0156\u0157\x07t\x02\x02\u0157\u0158\x07c\x02" + | ||
"\x02\u0158\u0159\x07e\x02\x02\u0159\u015A\x07v\x02\x02\u015A&\x03\x02" + | ||
"\x02\x02\u015B\u015C\x07e\x02\x02\u015C\u015D\x07q\x02\x02\u015D\u015E" + | ||
"\x07p\x02\x02\u015E\u015F\x07v\x02\x02\u015F\u0160\x07t\x02\x02\u0160" + | ||
"\u0161\x07c\x02\x02\u0161\u0162\x07e\x02\x02\u0162\u0163\x07v\x02\x02" + | ||
"\u0163(\x03\x02\x02\x02\u0164\u0165\x07k\x02\x02\u0165\u0166\x07p\x02" + | ||
"\x02\u0166\u0167\x07v\x02\x02\u0167\u0168\x07g\x02\x02\u0168\u0169\x07" + | ||
"t\x02\x02\u0169\u016A\x07h\x02\x02\u016A\u016B\x07c\x02\x02\u016B\u016C" + | ||
"\x07e\x02\x02\u016C\u016D\x07g\x02\x02\u016D*\x03\x02\x02\x02\u016E\u016F" + | ||
"\x07n\x02\x02\u016F\u0170\x07k\x02\x02\u0170\u0171\x07d\x02\x02\u0171" + | ||
"\u0172\x07t\x02\x02\u0172\u0173\x07c\x02\x02\u0173\u0174\x07t\x02\x02" + | ||
"\u0174\u0175\x07{\x02\x02\u0175,\x03\x02\x02\x02\u0176\u0177\x07k\x02" + | ||
"\x02\u0177\u0178\x07u\x02\x02\u0178.\x03\x02\x02\x02\u0179\u017A\x07*" + | ||
"\x02\x02\u017A0\x03\x02\x02\x02\u017B\u017C\x07+\x02\x02\u017C2\x03\x02" + | ||
"\x02\x02\u017D\u017E\x07g\x02\x02\u017E\u017F\x07t\x02\x02\u017F\u0180" + | ||
"\x07t\x02\x02\u0180\u0181\x07q\x02\x02\u0181\u0182\x07t\x02\x02\u0182" + | ||
"4\x03\x02\x02\x02\u0183\u0184\x07w\x02\x02\u0184\u0185\x07u\x02\x02\u0185" + | ||
"\u0186\x07k\x02\x02\u0186\u0187\x07p\x02\x02\u0187\u0188\x07i\x02\x02" + | ||
"\u01886\x03\x02\x02\x02\u0189\u018A\x07h\x02\x02\u018A\u018B\x07q\x02" + | ||
"\x02\u018B\u018C\x07t\x02\x02\u018C8\x03\x02\x02\x02\u018D\u018E\x07~" + | ||
"\x02\x02\u018E:\x03\x02\x02\x02\u018F\u0190\x07(\x02\x02\u0190<\x03\x02" + | ||
"\x02\x02\u0191\u0192\x07-\x02\x02\u0192>\x03\x02\x02\x02\u0193\u0194\x07" + | ||
"/\x02\x02\u0194@\x03\x02\x02\x02\u0195\u0196\x071\x02\x02\u0196B\x03\x02" + | ||
"\x02\x02\u0197\u0198\x07\'\x02\x02\u0198D\x03\x02\x02\x02\u0199\u019A" + | ||
"\x07?\x02\x02\u019A\u019B\x07?\x02\x02\u019BF\x03\x02\x02\x02\u019C\u019D" + | ||
"\x07#\x02\x02\u019D\u019E\x07?\x02\x02\u019EH\x03\x02\x02\x02\u019F\u01A0" + | ||
"\x07u\x02\x02\u01A0\u01A1\x07v\x02\x02\u01A1\u01A2\x07t\x02\x02\u01A2" + | ||
"\u01A3\x07w\x02\x02\u01A3\u01A4\x07e\x02\x02\u01A4\u01A5\x07v\x02\x02" + | ||
"\u01A5J\x03\x02\x02\x02\u01A6\u01A7\x07o\x02\x02\u01A7\u01A8\x07q\x02" + | ||
"\x02\u01A8\u01A9\x07f\x02\x02\u01A9\u01AA\x07k\x02\x02\u01AA\u01AB\x07" + | ||
"h\x02\x02\u01AB\u01AC\x07k\x02\x02\u01AC\u01AD\x07g\x02\x02\u01AD\u01AE" + | ||
"\x07t\x02\x02\u01AEL\x03\x02\x02\x02\u01AF\u01B0\x07h\x02\x02\u01B0\u01B1" + | ||
"\x07w\x02\x02\u01B1\u01B2\x07p\x02\x02\u01B2\u01B3\x07e\x02\x02\u01B3" + | ||
"\u01B4\x07v\x02\x02\u01B4\u01B5\x07k\x02\x02\u01B5\u01B6\x07q\x02\x02" + | ||
"\u01B6\u01B7\x07p\x02\x02\u01B7N\x03\x02\x02\x02\u01B8\u01B9\x07t\x02" + | ||
"\x02\u01B9\u01BA\x07g\x02\x02\u01BA\u01BB\x07v\x02\x02\u01BB\u01BC\x07" + | ||
"w\x02\x02\u01BC\u01BD\x07t\x02\x02\u01BD\u01BE\x07p\x02\x02\u01BE\u01BF" + | ||
"\x07u\x02\x02\u01BFP\x03\x02\x02\x02\u01C0\u01C1\x07g\x02\x02\u01C1\u01C2" + | ||
"\x07x\x02\x02\u01C2\u01C3\x07g\x02\x02\u01C3\u01C4\x07p\x02\x02\u01C4" + | ||
"\u01C5\x07v\x02\x02\u01C5R\x03\x02\x02\x02\u01C6\u01C7\x07g\x02\x02\u01C7" + | ||
"\u01C8\x07p\x02\x02\u01C8\u01C9\x07w\x02\x02\u01C9\u01CA\x07o\x02\x02" + | ||
"\u01CAT\x03\x02\x02\x02\u01CB\u01CC\x07]\x02\x02\u01CCV\x03\x02\x02\x02" + | ||
"\u01CD\u01CE\x07_\x02\x02\u01CEX\x03\x02\x02\x02\u01CF\u01D0\x07c\x02" + | ||
"\x02\u01D0\u01D1\x07f\x02\x02\u01D1\u01D2\x07f\x02\x02\u01D2\u01D3\x07" + | ||
"t\x02\x02\u01D3\u01D4\x07g\x02\x02\u01D4\u01D5\x07u\x02\x02\u01D5\u01D6" + | ||
"\x07u\x02\x02\u01D6Z\x03\x02\x02\x02\u01D7\u01D8\x070\x02\x02\u01D8\\" + | ||
"\x03\x02\x02\x02\u01D9\u01DA\x07o\x02\x02\u01DA\u01DB\x07c\x02\x02\u01DB" + | ||
"\u01DC\x07r\x02\x02\u01DC\u01DD\x07r\x02\x02\u01DD\u01DE\x07k\x02\x02" + | ||
"\u01DE\u01DF\x07p\x02\x02\u01DF\u01E0\x07i\x02\x02\u01E0^\x03\x02\x02" + | ||
"\x02\u01E1\u01E2\x07?\x02\x02\u01E2\u01E3\x07@\x02\x02\u01E3`\x03\x02" + | ||
"\x02\x02\u01E4\u01E5\x07o\x02\x02\u01E5\u01E6\x07g\x02\x02\u01E6\u01E7" + | ||
"\x07o\x02\x02\u01E7\u01E8\x07q\x02\x02\u01E8\u01E9\x07t\x02\x02\u01E9" + | ||
"\u01EA\x07{\x02\x02\u01EAb\x03\x02\x02\x02\u01EB\u01EC\x07u\x02\x02\u01EC" + | ||
"\u01ED\x07v\x02\x02\u01ED\u01EE\x07q\x02\x02\u01EE\u01EF\x07t\x02\x02" + | ||
"\u01EF\u01F0\x07c\x02\x02\u01F0\u01F1\x07i\x02\x02\u01F1\u01F2\x07g\x02" + | ||
"\x02\u01F2d\x03\x02\x02\x02\u01F3\u01F4\x07e\x02\x02\u01F4\u01F5\x07c" + | ||
"\x02\x02\u01F5\u01F6\x07n\x02\x02\u01F6\u01F7\x07n\x02\x02\u01F7\u01F8" + | ||
"\x07f\x02\x02\u01F8\u01F9\x07c\x02\x02\u01F9\u01FA\x07v\x02\x02\u01FA" + | ||
"\u01FB\x07c\x02\x02\u01FBf\x03\x02\x02\x02\u01FC\u01FD\x07k\x02\x02\u01FD" + | ||
"\u01FE\x07h\x02\x02\u01FEh\x03\x02\x02\x02\u01FF\u0200\x07g\x02\x02\u0200" + | ||
"\u0201\x07n\x02\x02\u0201\u0202\x07u\x02\x02\u0202\u0203\x07g\x02\x02" + | ||
"\u0203j\x03\x02\x02\x02\u0204\u0205\x07v\x02\x02\u0205\u0206\x07t\x02" + | ||
"\x02\u0206\u0207\x07{\x02\x02\u0207l\x03\x02\x02\x02\u0208\u0209\x07e" + | ||
"\x02\x02\u0209\u020A\x07c\x02\x02\u020A\u020B\x07v\x02\x02\u020B\u020C" + | ||
"\x07e\x02\x02\u020C\u020D\x07j\x02\x02\u020Dn\x03\x02\x02\x02\u020E\u020F" + | ||
"\x07y\x02\x02\u020F\u0210\x07j\x02\x02\u0210\u0211\x07k\x02\x02\u0211" + | ||
"\u0212\x07n\x02\x02\u0212\u0213\x07g\x02\x02\u0213p\x03\x02\x02\x02\u0214" + | ||
"\u0215\x07w\x02\x02\u0215\u0216\x07p\x02\x02\u0216\u0217\x07e\x02\x02" + | ||
"\u0217\u0218\x07j\x02\x02\u0218\u0219\x07g\x02\x02\u0219\u021A\x07e\x02" + | ||
"\x02\u021A\u021B\x07m\x02\x02\u021B\u021C\x07g\x02\x02\u021C\u021D\x07" + | ||
"f\x02\x02\u021Dr\x03\x02\x02\x02\u021E\u021F\x07c\x02\x02\u021F\u0220" + | ||
"\x07u\x02\x02\u0220\u0221\x07u\x02\x02\u0221\u0222\x07g\x02\x02\u0222" + | ||
"\u0223\x07o\x02\x02\u0223\u0224\x07d\x02\x02\u0224\u0225\x07n\x02\x02" + | ||
"\u0225\u0226\x07{\x02\x02\u0226t\x03\x02\x02\x02\u0227\u0228\x07f\x02" + | ||
"\x02\u0228\u0229\x07q\x02\x02\u0229v\x03\x02\x02\x02\u022A\u022B\x07t" + | ||
"\x02\x02\u022B\u022C\x07g\x02\x02\u022C\u022D\x07v\x02\x02\u022D\u022E" + | ||
"\x07w\x02\x02\u022E\u022F\x07t\x02\x02\u022F\u0230\x07p\x02\x02\u0230" + | ||
"x\x03\x02\x02\x02\u0231\u0232\x07v\x02\x02\u0232\u0233\x07j\x02\x02\u0233" + | ||
"\u0234\x07t\x02\x02\u0234\u0235\x07q\x02\x02\u0235\u0236\x07y\x02\x02" + | ||
"\u0236z\x03\x02\x02\x02\u0237\u0238\x07g\x02\x02\u0238\u0239\x07o\x02" + | ||
"\x02\u0239\u023A\x07k\x02\x02\u023A\u023B\x07v\x02\x02\u023B|\x03\x02" + | ||
"\x02\x02\u023C\u023D\x07t\x02\x02\u023D\u023E\x07g\x02\x02\u023E\u023F" + | ||
"\x07x\x02\x02\u023F\u0240\x07g\x02\x02\u0240\u0241\x07t\x02\x02\u0241" + | ||
"\u0242\x07v\x02\x02\u0242~\x03\x02\x02\x02\u0243\u0244\x07x\x02\x02\u0244" + | ||
"\u0245\x07c\x02\x02\u0245\u0246\x07t\x02\x02\u0246\x80\x03\x02\x02\x02" + | ||
"\u0247\u0248\x07d\x02\x02\u0248\u0249\x07q\x02\x02\u0249\u024A\x07q\x02" + | ||
"\x02\u024A\u024B\x07n\x02\x02\u024B\x82\x03\x02\x02\x02\u024C\u024D\x07" + | ||
"u\x02\x02\u024D\u024E\x07v\x02\x02\u024E\u024F\x07t\x02\x02\u024F\u0250" + | ||
"\x07k\x02\x02\u0250\u0251\x07p\x02\x02\u0251\u0252\x07i\x02\x02\u0252" + | ||
"\x84\x03\x02\x02\x02\u0253\u0254\x07d\x02\x02\u0254\u0255\x07{\x02\x02" + | ||
"\u0255\u0256\x07v\x02\x02\u0256\u0257\x07g\x02\x02\u0257\x86\x03\x02\x02" + | ||
"\x02\u0258\u0259\x07-\x02\x02\u0259\u025A\x07-\x02\x02\u025A\x88\x03\x02" + | ||
"\x02\x02\u025B\u025C\x07/\x02\x02\u025C\u025D\x07/\x02\x02\u025D\x8A\x03" + | ||
"\x02\x02\x02\u025E\u025F\x07p\x02\x02\u025F\u0260\x07g\x02\x02\u0260\u0261" + | ||
"\x07y\x02\x02\u0261\x8C\x03\x02\x02\x02\u0262\u0263\x07<\x02\x02\u0263" + | ||
"\x8E\x03\x02\x02\x02\u0264\u0265\x07f\x02\x02\u0265\u0266\x07g\x02\x02" + | ||
"\u0266\u0267\x07n\x02\x02\u0267\u0268\x07g\x02\x02\u0268\u0269\x07v\x02" + | ||
"\x02\u0269\u026A\x07g\x02\x02\u026A\x90\x03\x02\x02\x02\u026B\u026C\x07" + | ||
"#\x02\x02\u026C\x92\x03\x02\x02\x02\u026D\u026E\x07,\x02\x02\u026E\u026F" + | ||
"\x07,\x02\x02\u026F\x94\x03\x02\x02\x02\u0270\u0271\x07>\x02\x02\u0271" + | ||
"\u0272\x07>\x02\x02\u0272\x96\x03\x02\x02\x02\u0273\u0274\x07@\x02\x02" + | ||
"\u0274\u0275\x07@\x02\x02\u0275\x98\x03\x02\x02\x02\u0276\u0277\x07(\x02" + | ||
"\x02\u0277\u0278\x07(\x02\x02\u0278\x9A\x03\x02\x02\x02\u0279\u027A\x07" + | ||
"A\x02\x02\u027A\x9C\x03\x02\x02\x02\u027B\u027C\x07~\x02\x02\u027C\u027D" + | ||
"\x07?\x02\x02\u027D\x9E\x03\x02\x02\x02\u027E\u027F\x07`\x02\x02\u027F" + | ||
"\u0280\x07?\x02\x02\u0280\xA0\x03\x02\x02\x02\u0281\u0282\x07(\x02\x02" + | ||
"\u0282\u0283\x07?\x02\x02\u0283\xA2\x03\x02\x02\x02\u0284\u0285\x07>\x02" + | ||
"\x02\u0285\u0286\x07>\x02\x02\u0286\u0287\x07?\x02\x02\u0287\xA4\x03\x02" + | ||
"\x02\x02\u0288\u0289\x07@\x02\x02\u0289\u028A\x07@\x02\x02\u028A\u028B" + | ||
"\x07?\x02\x02\u028B\xA6\x03\x02\x02\x02\u028C\u028D\x07-\x02\x02\u028D" + | ||
"\u028E\x07?\x02\x02\u028E\xA8\x03\x02\x02\x02\u028F\u0290\x07/\x02\x02" + | ||
"\u0290\u0291\x07?\x02\x02\u0291\xAA\x03\x02\x02\x02\u0292\u0293\x07,\x02" + | ||
"\x02\u0293\u0294\x07?\x02\x02\u0294\xAC\x03\x02\x02\x02\u0295\u0296\x07" + | ||
"1\x02\x02\u0296\u0297\x07?\x02\x02\u0297\xAE\x03\x02\x02\x02\u0298\u0299" + | ||
"\x07\'\x02\x02\u0299\u029A\x07?\x02\x02\u029A\xB0\x03\x02\x02\x02\u029B" + | ||
"\u029C\x07n\x02\x02\u029C\u029D\x07g\x02\x02\u029D\u029E\x07v\x02\x02" + | ||
"\u029E\xB2\x03\x02\x02\x02\u029F\u02A0\x07<\x02\x02\u02A0\u02A1\x07?\x02" + | ||
"\x02\u02A1\xB4\x03\x02\x02\x02\u02A2\u02A3\x07?\x02\x02\u02A3\u02A4\x07" + | ||
"<\x02\x02\u02A4\xB6\x03\x02\x02\x02\u02A5\u02A6\x07u\x02\x02\u02A6\u02A7" + | ||
"\x07y\x02\x02\u02A7\u02A8\x07k\x02\x02\u02A8\u02A9\x07v\x02\x02\u02A9" + | ||
"\u02AA\x07e\x02\x02\u02AA\u02AB\x07j\x02\x02\u02AB\xB8\x03\x02\x02\x02" + | ||
"\u02AC\u02AD\x07e\x02\x02\u02AD\u02AE\x07c\x02\x02\u02AE\u02AF\x07u\x02" + | ||
"\x02\u02AF\u02B0\x07g\x02\x02\u02B0\xBA\x03\x02\x02\x02\u02B1\u02B2\x07" + | ||
"f\x02\x02\u02B2\u02B3\x07g\x02\x02\u02B3\u02B4\x07h\x02\x02\u02B4\u02B5" + | ||
"\x07c\x02\x02\u02B5\u02B6\x07w\x02\x02\u02B6\u02B7\x07n\x02\x02\u02B7" + | ||
"\u02B8\x07v\x02\x02\u02B8\xBC\x03\x02\x02\x02\u02B9\u02BA\x07/\x02\x02" + | ||
"\u02BA\u02BB\x07@\x02\x02\u02BB\xBE\x03\x02\x02\x02\u02BC\u02BD\x07e\x02" + | ||
"\x02\u02BD\u02BE\x07c\x02\x02\u02BE\u02BF\x07n\x02\x02\u02BF\u02C0\x07" + | ||
"n\x02\x02\u02C0\u02C1\x07d\x02\x02\u02C1\u02C2\x07c\x02\x02\u02C2\u02C3" + | ||
"\x07e\x02\x02\u02C3\u02C4\x07m\x02\x02\u02C4\xC0\x03\x02\x02\x02\u02C5" + | ||
"\u02C6\x07q\x02\x02\u02C6\u02C7\x07x\x02\x02\u02C7\u02C8\x07g\x02\x02" + | ||
"\u02C8\u02C9\x07t\x02\x02\u02C9\u02CA\x07t\x02\x02\u02CA\u02CB\x07k\x02" + | ||
"\x02\u02CB\u02CC\x07f\x02\x02\u02CC\u02CD\x07g\x02\x02\u02CD\xC2\x03\x02" + | ||
"\x02\x02\u02CE\u02CF\x07k\x02\x02\u02CF\u02D0\x07p\x02\x02\u02D0\u02D1" + | ||
"\x07v\x02\x02\u02D1\u02D3\x03\x02\x02\x02\u02D2\u02D4\x05\xCDg\x02\u02D3" + | ||
"\u02D2\x03\x02\x02\x02\u02D3\u02D4\x03\x02\x02\x02\u02D4\xC4\x03\x02\x02" + | ||
"\x02\u02D5\u02D6\x07w\x02\x02\u02D6\u02D7\x07k\x02\x02\u02D7\u02D8\x07" + | ||
"p\x02\x02\u02D8\u02D9\x07v\x02\x02\u02D9\u02DB\x03\x02\x02\x02\u02DA\u02DC" + | ||
"\x05\xCDg\x02\u02DB\u02DA\x03\x02\x02\x02\u02DB\u02DC\x03\x02\x02\x02" + | ||
"\u02DC\xC6\x03\x02\x02\x02\u02DD\u02DE\x07d\x02\x02\u02DE\u02DF\x07{\x02" + | ||
"\x02\u02DF\u02E0\x07v\x02\x02\u02E0\u02E1\x07g\x02\x02\u02E1\u02E2\x07" + | ||
"u\x02\x02\u02E2\u02E4\x03\x02\x02\x02\u02E3\u02E5\x05\xCFh\x02\u02E4\u02E3" + | ||
"\x03\x02\x02\x02\u02E4\u02E5\x03\x02\x02\x02\u02E5\xC8\x03\x02\x02\x02" + | ||
"\u02E6\u02E7\x07h\x02\x02\u02E7\u02E8\x07k\x02\x02\u02E8\u02E9\x07z\x02" + | ||
"\x02\u02E9\u02EA\x07g\x02\x02\u02EA\u02EB\x07f\x02\x02\u02EB\u02F3\x03" + | ||
"\x02\x02\x02\u02EC\u02ED\x05\xCDg\x02\u02ED\u02EF\x07z\x02\x02\u02EE\u02F0" + | ||
"\t\x02\x02\x02\u02EF\u02EE\x03\x02\x02\x02\u02F0\u02F1\x03\x02\x02\x02" + | ||
"\u02F1\u02EF\x03\x02\x02\x02\u02F1\u02F2\x03\x02\x02\x02\u02F2\u02F4\x03" + | ||
"\x02\x02\x02\u02F3\u02EC\x03\x02\x02\x02\u02F3\u02F4\x03\x02\x02\x02\u02F4" + | ||
"\xCA\x03\x02\x02\x02\u02F5\u02F6\x07w\x02\x02\u02F6\u02F7\x07h\x02\x02" + | ||
"\u02F7\u02F8\x07k\x02\x02\u02F8\u02F9\x07z\x02\x02\u02F9\u02FA\x07g\x02" + | ||
"\x02\u02FA\u02FB\x07f\x02\x02\u02FB\u0303\x03\x02\x02\x02\u02FC\u02FD" + | ||
"\x05\xCDg\x02\u02FD\u02FF\x07z\x02\x02\u02FE\u0300\t\x02\x02\x02\u02FF" + | ||
"\u02FE\x03\x02\x02\x02\u0300\u0301\x03\x02\x02\x02\u0301\u02FF\x03\x02" + | ||
"\x02\x02\u0301\u0302\x03\x02\x02\x02\u0302\u0304\x03\x02\x02\x02\u0303" + | ||
"\u02FC\x03\x02\x02\x02\u0303\u0304\x03\x02\x02\x02\u0304\xCC\x03\x02\x02" + | ||
"\x02\u0305\u0359\x07:\x02\x02\u0306\u0307\x073\x02\x02\u0307\u0359\x07" + | ||
"8\x02\x02\u0308\u0309\x074\x02\x02\u0309\u0359\x076\x02\x02\u030A\u030B" + | ||
"\x075\x02\x02\u030B\u0359\x074\x02\x02\u030C\u030D\x076\x02\x02\u030D" + | ||
"\u0359\x072\x02\x02\u030E\u030F\x076\x02\x02\u030F\u0359\x07:\x02\x02" + | ||
"\u0310\u0311\x077\x02\x02\u0311\u0359\x078\x02\x02\u0312\u0313\x078\x02" + | ||
"\x02\u0313\u0359\x076\x02\x02\u0314\u0315\x079\x02\x02\u0315\u0359\x07" + | ||
"4\x02\x02\u0316\u0317\x07:\x02\x02\u0317\u0359\x072\x02\x02\u0318\u0319" + | ||
"\x07:\x02\x02\u0319\u0359\x07:\x02\x02\u031A\u031B\x07;\x02\x02\u031B" + | ||
"\u0359\x078\x02\x02\u031C\u031D\x073\x02\x02\u031D\u031E\x072\x02\x02" + | ||
"\u031E\u0359\x076\x02\x02\u031F\u0320\x073\x02\x02\u0320\u0321\x073\x02" + | ||
"\x02\u0321\u0359\x074\x02\x02\u0322\u0323\x073\x02\x02\u0323\u0324\x07" + | ||
"4\x02\x02\u0324\u0359\x072\x02\x02\u0325\u0326\x073\x02\x02\u0326\u0327" + | ||
"\x074\x02\x02\u0327\u0359\x07:\x02\x02\u0328\u0329\x073\x02\x02\u0329" + | ||
"\u032A\x075\x02\x02\u032A\u0359\x078\x02\x02\u032B\u032C\x073\x02\x02" + | ||
"\u032C\u032D\x076\x02\x02\u032D\u0359\x076\x02\x02\u032E\u032F\x073\x02" + | ||
"\x02\u032F\u0330\x077\x02\x02\u0330\u0359\x074\x02\x02\u0331\u0332\x07" + | ||
"3\x02\x02\u0332\u0333\x078\x02\x02\u0333\u0359\x072\x02\x02\u0334\u0335" + | ||
"\x073\x02\x02\u0335\u0336\x078\x02\x02\u0336\u0359\x07:\x02\x02\u0337" + | ||
"\u0338\x073\x02\x02\u0338\u0339\x079\x02\x02\u0339\u0359\x078\x02\x02" + | ||
"\u033A\u033B\x073\x02\x02\u033B\u033C\x07:\x02\x02\u033C\u0359\x076\x02" + | ||
"\x02\u033D\u033E\x073\x02\x02\u033E\u033F\x07;\x02\x02\u033F\u0359\x07" + | ||
"4\x02\x02\u0340\u0341\x074\x02\x02\u0341\u0342\x072\x02\x02\u0342\u0359" + | ||
"\x072\x02\x02\u0343\u0344\x074\x02\x02\u0344\u0345\x072\x02\x02\u0345" + | ||
"\u0359\x07:\x02\x02\u0346\u0347\x074\x02\x02\u0347\u0348\x073\x02\x02" + | ||
"\u0348\u0359\x078\x02\x02\u0349\u034A\x074\x02\x02\u034A\u034B\x074\x02" + | ||
"\x02\u034B\u0359\x076\x02\x02\u034C\u034D\x074\x02\x02\u034D\u034E\x07" + | ||
"5\x02\x02\u034E\u0359\x074\x02\x02\u034F\u0350\x074\x02\x02\u0350\u0351" + | ||
"\x076\x02\x02\u0351\u0359\x072\x02\x02\u0352\u0353\x074\x02\x02\u0353" + | ||
"\u0354\x076\x02\x02\u0354\u0359\x07:\x02\x02\u0355\u0356\x074\x02\x02" + | ||
"\u0356\u0357\x077\x02\x02\u0357\u0359\x078\x02\x02\u0358\u0305\x03\x02" + | ||
"\x02\x02\u0358\u0306\x03\x02\x02\x02\u0358\u0308\x03\x02\x02\x02\u0358" + | ||
"\u030A\x03\x02\x02\x02\u0358\u030C\x03\x02\x02\x02\u0358\u030E\x03\x02" + | ||
"\x02\x02\u0358\u0310\x03\x02\x02\x02\u0358\u0312\x03\x02\x02\x02\u0358" + | ||
"\u0314\x03\x02\x02\x02\u0358\u0316\x03\x02\x02\x02\u0358\u0318\x03\x02" + | ||
"\x02\x02\u0358\u031A\x03\x02\x02\x02\u0358\u031C\x03\x02\x02\x02\u0358" + | ||
"\u031F\x03\x02\x02\x02\u0358\u0322\x03\x02\x02\x02\u0358\u0325\x03\x02" + | ||
"\x02\x02\u0358\u0328\x03\x02\x02\x02\u0358\u032B\x03\x02\x02\x02\u0358" + | ||
"\u032E\x03\x02\x02\x02\u0358\u0331\x03\x02\x02\x02\u0358\u0334\x03\x02" + | ||
"\x02\x02\u0358\u0337\x03\x02\x02\x02\u0358\u033A\x03\x02\x02\x02\u0358" + | ||
"\u033D\x03\x02\x02\x02\u0358\u0340\x03\x02\x02\x02\u0358\u0343\x03\x02" + | ||
"\x02\x02\u0358\u0346\x03\x02\x02\x02\u0358\u0349\x03\x02\x02\x02\u0358" + | ||
"\u034C\x03\x02\x02\x02\u0358\u034F\x03\x02\x02\x02\u0358\u0352\x03\x02" + | ||
"\x02\x02\u0358\u0355\x03\x02\x02\x02\u0359\xCE\x03\x02\x02\x02\u035A\u0360" + | ||
"\t\x03\x02\x02\u035B\u035C\t\x04\x02\x02\u035C\u0360\t\x02\x02\x02\u035D" + | ||
"\u035E\x075\x02\x02\u035E\u0360\t\x05\x02\x02\u035F\u035A\x03\x02\x02" + | ||
"\x02\u035F\u035B\x03\x02\x02\x02\u035F\u035D\x03\x02\x02\x02\u0360\xD0" + | ||
"\x03\x02\x02\x02\u0361\u0362\x07v\x02\x02\u0362\u0363\x07t\x02\x02\u0363" + | ||
"\u0364\x07w\x02\x02\u0364\u036B\x07g\x02\x02\u0365\u0366\x07h\x02\x02" + | ||
"\u0366\u0367\x07c\x02\x02\u0367\u0368\x07n\x02\x02\u0368\u0369\x07u\x02" + | ||
"\x02\u0369\u036B\x07g\x02\x02\u036A\u0361\x03\x02\x02\x02\u036A\u0365" + | ||
"\x03\x02\x02\x02\u036B\xD2\x03\x02\x02\x02\u036C\u0373\x05\xD5k\x02\u036D" + | ||
"\u036F\x05\xD5k\x02\u036E\u036D\x03\x02\x02\x02\u036E\u036F\x03\x02\x02" + | ||
"\x02\u036F\u0370\x03\x02\x02\x02\u0370\u0371\x070\x02\x02\u0371\u0373" + | ||
"\x05\xD5k\x02\u0372\u036C\x03\x02\x02\x02\u0372\u036E\x03\x02\x02\x02" + | ||
"\u0373\u0379\x03\x02\x02\x02\u0374\u0376\t\x06\x02\x02\u0375\u0377\x07" + | ||
"/\x02\x02\u0376\u0375\x03\x02\x02\x02\u0376\u0377\x03\x02\x02\x02\u0377" + | ||
"\u0378\x03\x02\x02\x02\u0378\u037A\x05\xD5k\x02\u0379\u0374\x03\x02\x02" + | ||
"\x02\u0379\u037A\x03\x02\x02\x02\u037A\xD4\x03\x02\x02\x02\u037B\u0382" + | ||
"\t\x02\x02\x02\u037C\u037E\x07a\x02\x02\u037D\u037C\x03\x02\x02\x02\u037D" + | ||
"\u037E\x03\x02\x02\x02\u037E\u037F\x03\x02\x02\x02\u037F\u0381\t\x02\x02" + | ||
"\x02\u0380\u037D\x03\x02\x02\x02\u0381\u0384\x03\x02\x02\x02\u0382\u0380" + | ||
"\x03\x02\x02\x02\u0382\u0383\x03\x02\x02\x02\u0383\xD6\x03\x02\x02\x02" + | ||
"\u0384\u0382\x03\x02\x02\x02\u0385\u0386\x072\x02\x02\u0386\u0387\t\x07" + | ||
"\x02\x02\u0387\u0388\x05\xD9m\x02\u0388\xD8\x03\x02\x02\x02\u0389\u0390" + | ||
"\x05\xDFp\x02\u038A\u038C\x07a\x02\x02\u038B\u038A\x03\x02\x02\x02\u038B" + | ||
"\u038C\x03\x02\x02\x02\u038C\u038D\x03\x02\x02\x02\u038D\u038F\x05\xDF" + | ||
"p\x02\u038E\u038B\x03\x02\x02\x02\u038F\u0392\x03\x02\x02\x02\u0390\u038E" + | ||
"\x03\x02\x02\x02\u0390\u0391\x03\x02\x02\x02\u0391\xDA\x03\x02\x02\x02" + | ||
"\u0392\u0390\x03\x02\x02\x02\u0393\u0394\x07y\x02\x02\u0394\u0395\x07" + | ||
"g\x02\x02\u0395\u03CC\x07k\x02\x02\u0396\u0397\x07i\x02\x02\u0397\u0398" + | ||
"\x07y\x02\x02\u0398\u0399\x07g\x02\x02\u0399\u03CC\x07k\x02\x02\u039A" + | ||
"\u039B\x07u\x02\x02\u039B\u039C\x07|\x02\x02\u039C\u039D\x07c\x02\x02" + | ||
"\u039D\u039E\x07d\x02\x02\u039E\u03CC\x07q\x02\x02\u039F\u03A0\x07h\x02" + | ||
"\x02\u03A0\u03A1\x07k\x02\x02\u03A1\u03A2\x07p\x02\x02\u03A2\u03A3\x07" + | ||
"p\x02\x02\u03A3\u03A4\x07g\x02\x02\u03A4\u03CC\x07{\x02\x02\u03A5\u03A6" + | ||
"\x07g\x02\x02\u03A6\u03A7\x07v\x02\x02\u03A7\u03A8\x07j\x02\x02\u03A8" + | ||
"\u03A9\x07g\x02\x02\u03A9\u03CC\x07t\x02\x02\u03AA\u03AB\x07u\x02\x02" + | ||
"\u03AB\u03AC\x07g\x02\x02\u03AC\u03AD\x07e\x02\x02\u03AD\u03AE\x07q\x02" + | ||
"\x02\u03AE\u03AF\x07p\x02\x02\u03AF\u03B0\x07f\x02\x02\u03B0\u03CC\x07" + | ||
"u\x02\x02\u03B1\u03B2\x07o\x02\x02\u03B2\u03B3\x07k\x02\x02\u03B3\u03B4" + | ||
"\x07p\x02\x02\u03B4\u03B5\x07w\x02\x02\u03B5\u03B6\x07v\x02\x02\u03B6" + | ||
"\u03B7\x07g\x02\x02\u03B7\u03CC\x07u\x02\x02\u03B8\u03B9\x07j\x02\x02" + | ||
"\u03B9\u03BA\x07q\x02\x02\u03BA\u03BB\x07w\x02\x02\u03BB\u03BC\x07t\x02" + | ||
"\x02\u03BC\u03CC\x07u\x02\x02\u03BD\u03BE\x07f\x02\x02\u03BE\u03BF\x07" + | ||
"c\x02\x02\u03BF\u03C0\x07{\x02\x02\u03C0\u03CC\x07u\x02\x02\u03C1\u03C2" + | ||
"\x07y\x02\x02\u03C2\u03C3\x07g\x02\x02\u03C3\u03C4\x07g\x02\x02\u03C4" + | ||
"\u03C5\x07m\x02\x02\u03C5\u03CC\x07u\x02\x02\u03C6\u03C7\x07{\x02\x02" + | ||
"\u03C7\u03C8\x07g\x02\x02\u03C8\u03C9\x07c\x02\x02\u03C9\u03CA\x07t\x02" + | ||
"\x02\u03CA\u03CC\x07u\x02\x02\u03CB\u0393\x03\x02\x02\x02\u03CB\u0396" + | ||
"\x03\x02\x02\x02\u03CB\u039A\x03\x02\x02\x02\u03CB\u039F\x03\x02\x02\x02" + | ||
"\u03CB\u03A5\x03\x02\x02\x02\u03CB\u03AA\x03\x02\x02\x02\u03CB\u03B1\x03" + | ||
"\x02\x02\x02\u03CB\u03B8\x03\x02\x02\x02\u03CB\u03BD\x03\x02\x02\x02\u03CB" + | ||
"\u03C1\x03\x02\x02\x02\u03CB\u03C6\x03\x02\x02\x02\u03CC\xDC\x03\x02\x02" + | ||
"\x02\u03CD\u03CE\x07j\x02\x02\u03CE\u03CF\x07g\x02\x02\u03CF\u03D0\x07" + | ||
"z\x02\x02\u03D0\u03DB\x03\x02\x02\x02\u03D1\u03D3\x07$\x02\x02\u03D2\u03D4" + | ||
"\x05\xD9m\x02\u03D3\u03D2\x03\x02\x02\x02\u03D3\u03D4\x03\x02\x02\x02" + | ||
"\u03D4\u03D5\x03\x02\x02\x02\u03D5\u03DC\x07$\x02\x02\u03D6\u03D8\x07" + | ||
")\x02\x02\u03D7\u03D9\x05\xD9m\x02\u03D8\u03D7\x03\x02\x02\x02\u03D8\u03D9" + | ||
"\x03\x02\x02\x02\u03D9\u03DA\x03\x02\x02\x02\u03DA\u03DC\x07)\x02\x02" + | ||
"\u03DB\u03D1\x03\x02\x02\x02\u03DB\u03D6\x03\x02\x02\x02\u03DC\xDE\x03" + | ||
"\x02\x02\x02\u03DD\u03DE\t\b\x02\x02\u03DE\xE0\x03\x02\x02\x02\u03DF\u03E0" + | ||
"\x07c\x02\x02\u03E0\u03E1\x07d\x02\x02\u03E1\u03E2\x07u\x02\x02\u03E2" + | ||
"\u03E3\x07v\x02\x02\u03E3\u03E4\x07t\x02\x02\u03E4\u03E5\x07c\x02\x02" + | ||
"\u03E5\u03E6\x07e\x02\x02\u03E6\u0438\x07v\x02\x02\u03E7\u03E8\x07c\x02" + | ||
"\x02\u03E8\u03E9\x07h\x02\x02\u03E9\u03EA\x07v\x02\x02\u03EA\u03EB\x07" + | ||
"g\x02\x02\u03EB\u0438\x07t\x02\x02\u03EC\u03ED\x07e\x02\x02\u03ED\u03EE" + | ||
"\x07c\x02\x02\u03EE\u03EF\x07u\x02\x02\u03EF\u0438\x07g\x02\x02\u03F0" + | ||
"\u03F1\x07e\x02\x02\u03F1\u03F2\x07c\x02\x02\u03F2\u03F3\x07v\x02\x02" + | ||
"\u03F3\u03F4\x07e\x02\x02\u03F4\u0438\x07j\x02\x02\u03F5\u03F6\x07f\x02" + | ||
"\x02\u03F6\u03F7\x07g\x02\x02\u03F7\u03F8\x07h\x02\x02\u03F8\u03F9\x07" + | ||
"c\x02\x02\u03F9\u03FA\x07w\x02\x02\u03FA\u03FB\x07n\x02\x02\u03FB\u0438" + | ||
"\x07v\x02\x02\u03FC\u03FD\x07h\x02\x02\u03FD\u03FE\x07k\x02\x02\u03FE" + | ||
"\u03FF\x07p\x02\x02\u03FF\u0400\x07c\x02\x02\u0400\u0438\x07n\x02\x02" + | ||
"\u0401\u0402\x07k\x02\x02\u0402\u0438\x07p\x02\x02\u0403\u0404\x07k\x02" + | ||
"\x02\u0404\u0405\x07p\x02\x02\u0405\u0406\x07n\x02\x02\u0406\u0407\x07" + | ||
"k\x02\x02\u0407\u0408\x07p\x02\x02\u0408\u0438\x07g\x02\x02\u0409\u040A" + | ||
"\x07n\x02\x02\u040A\u040B\x07g\x02\x02\u040B\u0438\x07v\x02\x02\u040C" + | ||
"\u040D\x07o\x02\x02\u040D\u040E\x07c\x02\x02\u040E\u040F\x07v\x02\x02" + | ||
"\u040F\u0410\x07e\x02\x02\u0410\u0438\x07j\x02\x02\u0411\u0412\x07p\x02" + | ||
"\x02\u0412\u0413\x07w\x02\x02\u0413\u0414\x07n\x02\x02\u0414\u0438\x07" + | ||
"n\x02\x02\u0415\u0416\x07q\x02\x02\u0416\u0438\x07h\x02\x02\u0417\u0418" + | ||
"\x07t\x02\x02\u0418\u0419\x07g\x02\x02\u0419\u041A\x07n\x02\x02\u041A" + | ||
"\u041B\x07q\x02\x02\u041B\u041C\x07e\x02\x02\u041C\u041D\x07c\x02\x02" + | ||
"\u041D\u041E\x07v\x02\x02\u041E\u041F\x07c\x02\x02\u041F\u0420\x07d\x02" + | ||
"\x02\u0420\u0421\x07n\x02\x02\u0421\u0438\x07g\x02\x02\u0422\u0423\x07" + | ||
"u\x02\x02\u0423\u0424\x07v\x02\x02\u0424\u0425\x07c\x02\x02\u0425\u0426" + | ||
"\x07v\x02\x02\u0426\u0427\x07k\x02\x02\u0427\u0438\x07e\x02\x02\u0428" + | ||
"\u0429\x07u\x02\x02\u0429\u042A\x07y\x02\x02\u042A\u042B\x07k\x02\x02" + | ||
"\u042B\u042C\x07v\x02\x02\u042C\u042D\x07e\x02\x02\u042D\u0438\x07j\x02" + | ||
"\x02\u042E\u042F\x07v\x02\x02\u042F\u0430\x07t\x02\x02\u0430\u0438\x07" + | ||
"{\x02\x02"; | ||
private static readonly _serializedATNSegment2: string = | ||
"\u0431\u0432\x07v\x02\x02\u0432\u0433\x07{\x02\x02\u0433\u0434\x07r\x02" + | ||
"\x02\u0434\u0435\x07g\x02\x02\u0435\u0436\x07q\x02\x02\u0436\u0438\x07" + | ||
"h\x02\x02\u0437\u03DF\x03\x02\x02\x02\u0437\u03E7\x03\x02\x02\x02\u0437" + | ||
"\u03EC\x03\x02\x02\x02\u0437\u03F0\x03\x02\x02\x02\u0437\u03F5\x03\x02" + | ||
"\x02\x02\u0437\u03FC\x03\x02\x02\x02\u0437\u0401\x03\x02\x02\x02\u0437" + | ||
"\u0403\x03\x02\x02\x02\u0437\u0409\x03\x02\x02\x02\u0437\u040C\x03\x02" + | ||
"\x02\x02\u0437\u0411\x03\x02\x02\x02\u0437\u0415\x03\x02\x02\x02\u0437" + | ||
"\u0417\x03\x02\x02\x02\u0437\u0422\x03\x02\x02\x02\u0437\u0428\x03\x02" + | ||
"\x02\x02\u0437\u042E\x03\x02\x02\x02\u0437\u0431\x03\x02\x02\x02\u0438" + | ||
"\xE2\x03\x02\x02\x02\u0439\u043A\x07c\x02\x02\u043A\u043B\x07p\x02\x02" + | ||
"\u043B\u043C\x07q\x02\x02\u043C\u043D\x07p\x02\x02\u043D\u043E\x07{\x02" + | ||
"\x02\u043E\u043F\x07o\x02\x02\u043F\u0440\x07q\x02\x02\u0440\u0441\x07" + | ||
"w\x02\x02\u0441\u0442\x07u\x02\x02\u0442\xE4\x03\x02\x02\x02\u0443\u0444" + | ||
"\x07d\x02\x02\u0444\u0445\x07t\x02\x02\u0445\u0446\x07g\x02\x02\u0446" + | ||
"\u0447\x07c\x02\x02\u0447\u0448\x07m\x02\x02\u0448\xE6\x03\x02\x02\x02" + | ||
"\u0449\u044A\x07e\x02\x02\u044A\u044B\x07q\x02\x02\u044B\u044C\x07p\x02" + | ||
"\x02\u044C\u044D\x07u\x02\x02\u044D\u044E\x07v\x02\x02\u044E\u044F\x07" + | ||
"c\x02\x02\u044F\u0450\x07p\x02\x02\u0450\u0451\x07v\x02\x02\u0451\xE8" + | ||
"\x03\x02\x02\x02\u0452\u0453\x07k\x02\x02\u0453\u0454\x07o\x02\x02\u0454" + | ||
"\u0455\x07o\x02\x02\u0455\u0456\x07w\x02\x02\u0456\u0457\x07v\x02\x02" + | ||
"\u0457\u0458\x07c\x02\x02\u0458\u0459\x07d\x02\x02\u0459\u045A\x07n\x02" + | ||
"\x02\u045A\u045B\x07g\x02\x02\u045B\xEA\x03\x02\x02\x02\u045C\u045D\x07" + | ||
"e\x02\x02\u045D\u045E\x07q\x02\x02\u045E\u045F\x07p\x02\x02\u045F\u0460" + | ||
"\x07v\x02\x02\u0460\u0461\x07k\x02\x02\u0461\u0462\x07p\x02\x02\u0462" + | ||
"\u0463\x07w\x02\x02\u0463\u0464\x07g\x02\x02\u0464\xEC\x03\x02\x02\x02" + | ||
"\u0465\u0466\x07n\x02\x02\u0466\u0467\x07g\x02\x02\u0467\u0468\x07c\x02" + | ||
"\x02\u0468\u0469\x07x\x02\x02\u0469\u046A\x07g\x02\x02\u046A\xEE\x03\x02" + | ||
"\x02\x02\u046B\u046C\x07g\x02\x02\u046C\u046D\x07z\x02\x02\u046D\u046E" + | ||
"\x07v\x02\x02\u046E\u046F\x07g\x02\x02\u046F\u0470\x07t\x02\x02\u0470" + | ||
"\u0471\x07p\x02\x02\u0471\u0472\x07c\x02\x02\u0472\u0473\x07n\x02\x02" + | ||
"\u0473\xF0\x03\x02\x02\x02\u0474\u0475\x07k\x02\x02\u0475\u0476\x07p\x02" + | ||
"\x02\u0476\u0477\x07f\x02\x02\u0477\u0478\x07g\x02\x02\u0478\u0479\x07" + | ||
"z\x02\x02\u0479\u047A\x07g\x02\x02\u047A\u047B\x07f\x02\x02\u047B\xF2" + | ||
"\x03\x02\x02\x02\u047C\u047D\x07k\x02\x02\u047D\u047E\x07p\x02\x02\u047E" + | ||
"\u047F\x07v\x02\x02\u047F\u0480\x07g\x02\x02\u0480\u0481\x07t\x02\x02" + | ||
"\u0481\u0482\x07p\x02\x02\u0482\u0483\x07c\x02\x02\u0483\u0484\x07n\x02" + | ||
"\x02\u0484\xF4\x03\x02\x02\x02\u0485\u0486\x07r\x02\x02\u0486\u0487\x07" + | ||
"c\x02\x02\u0487\u0488\x07{\x02\x02\u0488\u0489\x07c\x02\x02\u0489\u048A" + | ||
"\x07d\x02\x02\u048A\u048B\x07n\x02\x02\u048B\u048C\x07g\x02\x02\u048C" + | ||
"\xF6\x03\x02\x02\x02\u048D\u048E\x07r\x02\x02\u048E\u048F\x07t\x02\x02" + | ||
"\u048F\u0490\x07k\x02\x02\u0490\u0491\x07x\x02\x02\u0491\u0492\x07c\x02" + | ||
"\x02\u0492\u0493\x07v\x02\x02\u0493\u0494\x07g\x02\x02\u0494\xF8\x03\x02" + | ||
"\x02\x02\u0495\u0496\x07r\x02\x02\u0496\u0497\x07w\x02\x02\u0497\u0498" + | ||
"\x07d\x02\x02\u0498\u0499\x07n\x02\x02\u0499\u049A\x07k\x02\x02\u049A" + | ||
"\u049B\x07e\x02\x02\u049B\xFA\x03\x02\x02\x02\u049C\u049D\x07x\x02\x02" + | ||
"\u049D\u049E\x07k\x02\x02\u049E\u049F\x07t\x02\x02\u049F\u04A0\x07v\x02" + | ||
"\x02\u04A0\u04A1\x07w\x02\x02\u04A1\u04A2\x07c\x02\x02\u04A2\u04A3\x07" + | ||
"n\x02\x02\u04A3\xFC\x03\x02\x02\x02\u04A4\u04A5\x07r\x02\x02\u04A5\u04A6" + | ||
"\x07w\x02\x02\u04A6\u04A7\x07t\x02\x02\u04A7\u04A8\x07g\x02\x02\u04A8" + | ||
"\xFE\x03\x02\x02\x02\u04A9\u04AA\x07v\x02\x02\u04AA\u04AB\x07{\x02\x02" + | ||
"\u04AB\u04AC\x07r\x02\x02\u04AC\u04AD\x07g\x02\x02\u04AD\u0100\x03\x02" + | ||
"\x02\x02\u04AE\u04AF\x07x\x02\x02\u04AF\u04B0\x07k\x02\x02\u04B0\u04B1" + | ||
"\x07g\x02\x02\u04B1\u04B2\x07y\x02\x02\u04B2\u0102\x03\x02\x02\x02\u04B3" + | ||
"\u04B4\x07i\x02\x02\u04B4\u04B5\x07n\x02\x02\u04B5\u04B6\x07q\x02\x02" + | ||
"\u04B6\u04B7\x07d\x02\x02\u04B7\u04B8\x07c\x02\x02\u04B8\u04B9\x07n\x02" + | ||
"\x02\u04B9\u0104\x03\x02\x02\x02\u04BA\u04BB\x07e\x02\x02\u04BB\u04BC" + | ||
"\x07q\x02\x02\u04BC\u04BD\x07p\x02\x02\u04BD\u04BE\x07u\x02\x02\u04BE" + | ||
"\u04BF\x07v\x02\x02\u04BF\u04C0\x07t\x02\x02\u04C0\u04C1\x07w\x02\x02" + | ||
"\u04C1\u04C2\x07e\x02\x02\u04C2\u04C3\x07v\x02\x02\u04C3\u04C4\x07q\x02" + | ||
"\x02\u04C4\u04C5\x07t\x02\x02\u04C5\u0106\x03\x02\x02\x02\u04C6\u04C7" + | ||
"\x07h\x02\x02\u04C7\u04C8\x07c\x02\x02\u04C8\u04C9\x07n\x02\x02\u04C9" + | ||
"\u04CA\x07n\x02\x02\u04CA\u04CB\x07d\x02\x02\u04CB\u04CC\x07c\x02\x02" + | ||
"\u04CC\u04CD\x07e\x02\x02\u04CD\u04CE\x07m\x02\x02\u04CE\u0108\x03\x02" + | ||
"\x02\x02\u04CF\u04D0\x07t\x02\x02\u04D0\u04D1\x07g\x02\x02\u04D1\u04D2" + | ||
"\x07e\x02\x02\u04D2\u04D3\x07g\x02\x02\u04D3\u04D4\x07k\x02\x02\u04D4" + | ||
"\u04D5\x07x\x02\x02\u04D5\u04D6\x07g\x02\x02\u04D6\u010A\x03\x02\x02\x02" + | ||
"\u04D7\u04DB\x05\u010D\x87\x02\u04D8\u04DA\x05\u010F\x88\x02\u04D9\u04D8" + | ||
"\x03\x02\x02\x02\u04DA\u04DD\x03\x02\x02\x02\u04DB\u04D9\x03\x02\x02\x02" + | ||
"\u04DB\u04DC\x03\x02\x02\x02\u04DC\u010C\x03\x02\x02\x02\u04DD\u04DB\x03" + | ||
"\x02\x02\x02\u04DE\u04DF\t\t\x02\x02\u04DF\u010E\x03\x02\x02\x02\u04E0" + | ||
"\u04E1\t\n\x02\x02\u04E1\u0110\x03\x02\x02\x02\u04E2\u04E3\x07w\x02\x02" + | ||
"\u04E3\u04E4\x07p\x02\x02\u04E4\u04E5\x07k\x02\x02\u04E5\u04E6\x07e\x02" + | ||
"\x02\u04E6\u04E7\x07q\x02\x02\u04E7\u04E8\x07f\x02\x02\u04E8\u04EA\x07" + | ||
"g\x02\x02\u04E9\u04E2\x03\x02\x02\x02\u04E9\u04EA\x03\x02\x02\x02\u04EA" + | ||
"\u04FB\x03\x02\x02\x02\u04EB\u04EF\x07$\x02\x02\u04EC\u04EE\x05\u0113" + | ||
"\x8A\x02\u04ED\u04EC\x03\x02\x02\x02\u04EE\u04F1\x03\x02\x02\x02\u04EF" + | ||
"\u04ED\x03\x02\x02\x02\u04EF\u04F0\x03\x02\x02\x02\u04F0\u04F2\x03\x02" + | ||
"\x02\x02\u04F1\u04EF\x03\x02\x02\x02\u04F2\u04FC\x07$\x02\x02\u04F3\u04F7" + | ||
"\x07)\x02\x02\u04F4\u04F6\x05\u0115\x8B\x02\u04F5\u04F4\x03\x02\x02\x02" + | ||
"\u04F6\u04F9\x03\x02\x02\x02\u04F7\u04F5\x03\x02\x02\x02\u04F7\u04F8\x03" + | ||
"\x02\x02\x02\u04F8\u04FA\x03\x02\x02\x02\u04F9\u04F7\x03\x02\x02\x02\u04FA" + | ||
"\u04FC\x07)\x02\x02\u04FB\u04EB\x03\x02\x02\x02\u04FB\u04F3\x03\x02\x02" + | ||
"\x02\u04FC\u0112\x03\x02\x02\x02\u04FD\u0501\n\v\x02\x02\u04FE\u04FF\x07" + | ||
"^\x02\x02\u04FF\u0501\v\x02\x02\x02\u0500\u04FD\x03\x02\x02\x02\u0500" + | ||
"\u04FE\x03\x02\x02\x02\u0501\u0114\x03\x02\x02\x02\u0502\u0506\n\f\x02" + | ||
"\x02\u0503\u0504\x07^\x02\x02\u0504\u0506\v\x02\x02\x02\u0505\u0502\x03" + | ||
"\x02\x02\x02\u0505\u0503\x03\x02\x02\x02\u0506\u0116\x03\x02\x02\x02\u0507" + | ||
"\u0509\t\x02\x02\x02\u0508\u0507\x03\x02\x02\x02\u0509\u050A\x03\x02\x02" + | ||
"\x02\u050A\u0508\x03\x02\x02\x02\u050A\u050B\x03\x02\x02\x02\u050B\u050C" + | ||
"\x03\x02\x02\x02\u050C\u050E\x070\x02\x02\u050D\u050F\t\x02\x02\x02\u050E" + | ||
"\u050D\x03\x02\x02\x02\u050F\u0510\x03\x02\x02\x02\u0510\u050E\x03\x02" + | ||
"\x02\x02\u0510\u0511\x03\x02\x02\x02\u0511\u0518\x03\x02\x02\x02\u0512" + | ||
"\u0514\x070\x02\x02\u0513\u0515\t\x02\x02\x02\u0514\u0513\x03\x02\x02" + | ||
"\x02\u0515\u0516\x03\x02\x02\x02\u0516\u0514\x03\x02\x02\x02\u0516\u0517" + | ||
"\x03\x02\x02\x02\u0517\u0519\x03\x02\x02\x02\u0518\u0512\x03\x02\x02\x02" + | ||
"\u0518\u0519\x03\x02\x02\x02\u0519\u0118\x03\x02\x02\x02\u051A\u051C\t" + | ||
"\r\x02\x02\u051B\u051A\x03\x02\x02\x02\u051C\u051D\x03\x02\x02\x02\u051D" + | ||
"\u051B\x03\x02\x02\x02\u051D\u051E\x03\x02\x02\x02\u051E\u051F\x03\x02" + | ||
"\x02\x02\u051F\u0520\b\x8D\x02\x02\u0520\u011A\x03\x02\x02\x02\u0521\u0522" + | ||
"\x071\x02\x02\u0522\u0523\x07,\x02\x02\u0523\u0527\x03\x02\x02\x02\u0524" + | ||
"\u0526\v\x02\x02\x02\u0525\u0524\x03\x02\x02\x02\u0526\u0529\x03\x02\x02" + | ||
"\x02\u0527\u0528\x03\x02\x02\x02\u0527\u0525\x03\x02\x02\x02\u0528\u052A" + | ||
"\x03\x02\x02\x02\u0529\u0527\x03\x02\x02\x02\u052A\u052B\x07,\x02\x02" + | ||
"\u052B\u052C\x071\x02\x02\u052C\u052D\x03\x02\x02\x02\u052D\u052E\b\x8E" + | ||
"\x03\x02\u052E\u011C\x03\x02\x02\x02\u052F\u0530\x071\x02\x02\u0530\u0531" + | ||
"\x071\x02\x02\u0531\u0535\x03\x02\x02\x02\u0532\u0534\n\x0E\x02\x02\u0533" + | ||
"\u0532\x03\x02\x02\x02\u0534\u0537\x03\x02\x02\x02\u0535\u0533\x03\x02" + | ||
"\x02\x02\u0535\u0536\x03\x02\x02\x02\u0536\u0538\x03\x02\x02\x02\u0537" + | ||
"\u0535\x03\x02\x02\x02\u0538\u0539\b\x8F\x03\x02\u0539\u011E\x03\x02\x02" + | ||
"\x02(\x02\u02D3\u02DB\u02E4\u02F1\u02F3\u0301\u0303\u0358\u035F\u036A" + | ||
"\u036E\u0372\u0376\u0379\u037D\u0382\u038B\u0390\u03CB\u03D3\u03D8\u03DB" + | ||
"\u0437\u04DB\u04E9\u04EF\u04F7\u04FB\u0500\u0505\u050A\u0510\u0516\u0518" + | ||
"\u051D\u0527\u0535\x04\b\x02\x02\x02\x03\x02"; | ||
public static readonly _serializedATN: string = Utils.join( | ||
[ | ||
SolidityLexer._serializedATNSegment0, | ||
SolidityLexer._serializedATNSegment1, | ||
SolidityLexer._serializedATNSegment2, | ||
], | ||
"", | ||
); | ||
public static __ATN: ATN; | ||
public static readonly _serializedATN: number[] = [4,0,133,1336,6,-1,2, | ||
0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2, | ||
9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16, | ||
7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7, | ||
23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30, | ||
2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2, | ||
38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45, | ||
7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7, | ||
52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59, | ||
2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2, | ||
67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74, | ||
7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7, | ||
81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88, | ||
2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2, | ||
96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102, | ||
2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108, | ||
2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114, | ||
2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120, | ||
2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126, | ||
2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132, | ||
2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138, | ||
2,139,7,139,2,140,7,140,2,141,7,141,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1, | ||
1,2,1,2,1,3,1,3,1,3,1,4,1,4,1,5,1,5,1,6,1,6,1,6,1,7,1,7,1,8,1,8,1,9,1,9, | ||
1,9,1,10,1,10,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1, | ||
13,1,13,1,13,1,13,1,14,1,14,1,15,1,15,1,16,1,16,1,17,1,17,1,17,1,17,1,17, | ||
1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1, | ||
19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,20, | ||
1,20,1,20,1,21,1,21,1,21,1,22,1,22,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1, | ||
24,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,27,1,27,1,28,1,28, | ||
1,29,1,29,1,30,1,30,1,31,1,31,1,32,1,32,1,33,1,33,1,33,1,34,1,34,1,34,1, | ||
35,1,35,1,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36, | ||
1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1, | ||
38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40, | ||
1,41,1,41,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1, | ||
45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,47,1,47,1,47,1,47, | ||
1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1, | ||
49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,52, | ||
1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1, | ||
54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56, | ||
1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,1,58,1, | ||
58,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,61, | ||
1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,64,1, | ||
64,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,67, | ||
1,67,1,67,1,68,1,68,1,68,1,68,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1, | ||
70,1,71,1,71,1,72,1,72,1,72,1,73,1,73,1,73,1,74,1,74,1,74,1,75,1,75,1,75, | ||
1,76,1,76,1,77,1,77,1,77,1,78,1,78,1,78,1,79,1,79,1,79,1,80,1,80,1,80,1, | ||
80,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,83,1,83,1,83,1,84,1,84,1,84,1,85, | ||
1,85,1,85,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,89,1,89,1, | ||
89,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,92,1,92, | ||
1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1, | ||
94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,96,1,96, | ||
1,96,1,96,1,96,3,96,722,8,96,1,97,1,97,1,97,1,97,1,97,1,97,3,97,730,8,97, | ||
1,98,1,98,1,98,1,98,1,98,1,98,1,98,3,98,739,8,98,1,99,1,99,1,99,1,99,1, | ||
99,1,99,1,99,1,99,1,99,4,99,750,8,99,11,99,12,99,751,3,99,754,8,99,1,100, | ||
1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,4,100,766,8,100,11, | ||
100,12,100,767,3,100,770,8,100,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,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,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,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,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,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,1,101, | ||
1,101,1,101,1,101,1,101,3,101,855,8,101,1,102,1,102,1,102,1,102,1,102,3, | ||
102,862,8,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,3,103, | ||
873,8,103,1,104,1,104,3,104,877,8,104,1,104,1,104,3,104,881,8,104,1,104, | ||
1,104,3,104,885,8,104,1,104,3,104,888,8,104,1,105,1,105,3,105,892,8,105, | ||
1,105,5,105,895,8,105,10,105,12,105,898,9,105,1,106,1,106,1,106,1,106,1, | ||
107,1,107,3,107,906,8,107,1,107,5,107,909,8,107,10,107,12,107,912,9,107, | ||
1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108, | ||
1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108, | ||
1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108, | ||
1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108, | ||
1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,3,108,970,8,108,1,109,1, | ||
109,1,109,1,109,1,109,1,109,3,109,978,8,109,1,109,1,109,1,109,3,109,983, | ||
8,109,1,109,3,109,986,8,109,1,110,1,110,1,111,1,111,1,111,1,111,1,111,1, | ||
111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1, | ||
111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1, | ||
111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1, | ||
111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1, | ||
111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1, | ||
111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1, | ||
111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,3,111,1078, | ||
8,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113, | ||
1,113,1,113,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,114,1,114,1,114, | ||
1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115, | ||
1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117, | ||
1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118, | ||
1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120, | ||
1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,121,1,121, | ||
1,121,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123, | ||
1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124, | ||
1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,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,129,1,129, | ||
1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130, | ||
1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,1,131, | ||
1,131,1,131,1,131,1,132,1,132,5,132,1240,8,132,10,132,12,132,1243,9,132, | ||
1,133,1,133,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,1,135,3,135, | ||
1256,8,135,1,135,1,135,5,135,1260,8,135,10,135,12,135,1263,9,135,1,135, | ||
1,135,1,135,5,135,1268,8,135,10,135,12,135,1271,9,135,1,135,3,135,1274, | ||
8,135,1,136,1,136,1,136,3,136,1279,8,136,1,137,1,137,1,137,3,137,1284,8, | ||
137,1,138,4,138,1287,8,138,11,138,12,138,1288,1,138,1,138,4,138,1293,8, | ||
138,11,138,12,138,1294,1,138,1,138,4,138,1299,8,138,11,138,12,138,1300, | ||
3,138,1303,8,138,1,139,4,139,1306,8,139,11,139,12,139,1307,1,139,1,139, | ||
1,140,1,140,1,140,1,140,5,140,1316,8,140,10,140,12,140,1319,9,140,1,140, | ||
1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,5,141,1330,8,141,10,141, | ||
12,141,1333,9,141,1,141,1,141,1,1317,0,142,1,1,3,2,5,3,7,4,9,5,11,6,13, | ||
7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19, | ||
39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31, | ||
63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43, | ||
87,44,89,45,91,46,93,47,95,48,97,49,99,50,101,51,103,52,105,53,107,54,109, | ||
55,111,56,113,57,115,58,117,59,119,60,121,61,123,62,125,63,127,64,129,65, | ||
131,66,133,67,135,68,137,69,139,70,141,71,143,72,145,73,147,74,149,75,151, | ||
76,153,77,155,78,157,79,159,80,161,81,163,82,165,83,167,84,169,85,171,86, | ||
173,87,175,88,177,89,179,90,181,91,183,92,185,93,187,94,189,95,191,96,193, | ||
97,195,98,197,99,199,100,201,101,203,0,205,0,207,102,209,103,211,0,213, | ||
104,215,0,217,105,219,106,221,0,223,107,225,108,227,109,229,110,231,111, | ||
233,112,235,113,237,114,239,115,241,116,243,117,245,118,247,119,249,120, | ||
251,121,253,122,255,123,257,124,259,125,261,126,263,127,265,128,267,0,269, | ||
0,271,129,273,0,275,0,277,130,279,131,281,132,283,133,1,0,13,1,0,48,57, | ||
1,0,49,57,1,0,49,50,1,0,48,50,2,0,69,69,101,101,2,0,88,88,120,120,3,0,48, | ||
57,65,70,97,102,4,0,36,36,65,90,95,95,97,122,5,0,36,36,48,57,65,90,95,95, | ||
97,122,4,0,10,10,13,13,34,34,92,92,4,0,10,10,13,13,39,39,92,92,3,0,9,10, | ||
12,13,32,32,2,0,10,10,13,13,1418,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0, | ||
7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0, | ||
0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29, | ||
1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0, | ||
0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51, | ||
1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0, | ||
0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73, | ||
1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0, | ||
0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95, | ||
1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0, | ||
0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0, | ||
0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0, | ||
0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0, | ||
137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147, | ||
1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1, | ||
0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0, | ||
0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0, | ||
0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0, | ||
0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0, | ||
199,1,0,0,0,0,201,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,213,1,0,0,0,0,217, | ||
1,0,0,0,0,219,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1, | ||
0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0, | ||
0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,0, | ||
0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,0,0, | ||
0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,271,1,0,0,0,0,277,1,0,0,0,0, | ||
279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,1,285,1,0,0,0,3,292,1,0,0,0,5,294, | ||
1,0,0,0,7,296,1,0,0,0,9,299,1,0,0,0,11,301,1,0,0,0,13,303,1,0,0,0,15,306, | ||
1,0,0,0,17,308,1,0,0,0,19,310,1,0,0,0,21,313,1,0,0,0,23,315,1,0,0,0,25, | ||
318,1,0,0,0,27,325,1,0,0,0,29,330,1,0,0,0,31,332,1,0,0,0,33,334,1,0,0,0, | ||
35,336,1,0,0,0,37,345,1,0,0,0,39,354,1,0,0,0,41,364,1,0,0,0,43,372,1,0, | ||
0,0,45,375,1,0,0,0,47,377,1,0,0,0,49,379,1,0,0,0,51,385,1,0,0,0,53,391, | ||
1,0,0,0,55,395,1,0,0,0,57,397,1,0,0,0,59,399,1,0,0,0,61,401,1,0,0,0,63, | ||
403,1,0,0,0,65,405,1,0,0,0,67,407,1,0,0,0,69,410,1,0,0,0,71,413,1,0,0,0, | ||
73,420,1,0,0,0,75,429,1,0,0,0,77,438,1,0,0,0,79,446,1,0,0,0,81,452,1,0, | ||
0,0,83,457,1,0,0,0,85,459,1,0,0,0,87,461,1,0,0,0,89,469,1,0,0,0,91,471, | ||
1,0,0,0,93,479,1,0,0,0,95,482,1,0,0,0,97,489,1,0,0,0,99,497,1,0,0,0,101, | ||
506,1,0,0,0,103,509,1,0,0,0,105,514,1,0,0,0,107,518,1,0,0,0,109,524,1,0, | ||
0,0,111,530,1,0,0,0,113,540,1,0,0,0,115,549,1,0,0,0,117,552,1,0,0,0,119, | ||
559,1,0,0,0,121,565,1,0,0,0,123,570,1,0,0,0,125,577,1,0,0,0,127,581,1,0, | ||
0,0,129,586,1,0,0,0,131,593,1,0,0,0,133,598,1,0,0,0,135,601,1,0,0,0,137, | ||
604,1,0,0,0,139,608,1,0,0,0,141,610,1,0,0,0,143,617,1,0,0,0,145,619,1,0, | ||
0,0,147,622,1,0,0,0,149,625,1,0,0,0,151,628,1,0,0,0,153,631,1,0,0,0,155, | ||
633,1,0,0,0,157,636,1,0,0,0,159,639,1,0,0,0,161,642,1,0,0,0,163,646,1,0, | ||
0,0,165,650,1,0,0,0,167,653,1,0,0,0,169,656,1,0,0,0,171,659,1,0,0,0,173, | ||
662,1,0,0,0,175,665,1,0,0,0,177,669,1,0,0,0,179,672,1,0,0,0,181,675,1,0, | ||
0,0,183,682,1,0,0,0,185,687,1,0,0,0,187,695,1,0,0,0,189,698,1,0,0,0,191, | ||
707,1,0,0,0,193,716,1,0,0,0,195,723,1,0,0,0,197,731,1,0,0,0,199,740,1,0, | ||
0,0,201,755,1,0,0,0,203,854,1,0,0,0,205,861,1,0,0,0,207,872,1,0,0,0,209, | ||
880,1,0,0,0,211,889,1,0,0,0,213,899,1,0,0,0,215,903,1,0,0,0,217,969,1,0, | ||
0,0,219,971,1,0,0,0,221,987,1,0,0,0,223,1077,1,0,0,0,225,1079,1,0,0,0,227, | ||
1089,1,0,0,0,229,1095,1,0,0,0,231,1104,1,0,0,0,233,1114,1,0,0,0,235,1123, | ||
1,0,0,0,237,1129,1,0,0,0,239,1138,1,0,0,0,241,1146,1,0,0,0,243,1155,1,0, | ||
0,0,245,1163,1,0,0,0,247,1171,1,0,0,0,249,1178,1,0,0,0,251,1186,1,0,0,0, | ||
253,1191,1,0,0,0,255,1196,1,0,0,0,257,1201,1,0,0,0,259,1208,1,0,0,0,261, | ||
1220,1,0,0,0,263,1229,1,0,0,0,265,1237,1,0,0,0,267,1244,1,0,0,0,269,1246, | ||
1,0,0,0,271,1255,1,0,0,0,273,1278,1,0,0,0,275,1283,1,0,0,0,277,1286,1,0, | ||
0,0,279,1305,1,0,0,0,281,1311,1,0,0,0,283,1325,1,0,0,0,285,286,5,112,0, | ||
0,286,287,5,114,0,0,287,288,5,97,0,0,288,289,5,103,0,0,289,290,5,109,0, | ||
0,290,291,5,97,0,0,291,2,1,0,0,0,292,293,5,59,0,0,293,4,1,0,0,0,294,295, | ||
5,42,0,0,295,6,1,0,0,0,296,297,5,124,0,0,297,298,5,124,0,0,298,8,1,0,0, | ||
0,299,300,5,94,0,0,300,10,1,0,0,0,301,302,5,126,0,0,302,12,1,0,0,0,303, | ||
304,5,62,0,0,304,305,5,61,0,0,305,14,1,0,0,0,306,307,5,62,0,0,307,16,1, | ||
0,0,0,308,309,5,60,0,0,309,18,1,0,0,0,310,311,5,60,0,0,311,312,5,61,0,0, | ||
312,20,1,0,0,0,313,314,5,61,0,0,314,22,1,0,0,0,315,316,5,97,0,0,316,317, | ||
5,115,0,0,317,24,1,0,0,0,318,319,5,105,0,0,319,320,5,109,0,0,320,321,5, | ||
112,0,0,321,322,5,111,0,0,322,323,5,114,0,0,323,324,5,116,0,0,324,26,1, | ||
0,0,0,325,326,5,102,0,0,326,327,5,114,0,0,327,328,5,111,0,0,328,329,5,109, | ||
0,0,329,28,1,0,0,0,330,331,5,123,0,0,331,30,1,0,0,0,332,333,5,44,0,0,333, | ||
32,1,0,0,0,334,335,5,125,0,0,335,34,1,0,0,0,336,337,5,97,0,0,337,338,5, | ||
98,0,0,338,339,5,115,0,0,339,340,5,116,0,0,340,341,5,114,0,0,341,342,5, | ||
97,0,0,342,343,5,99,0,0,343,344,5,116,0,0,344,36,1,0,0,0,345,346,5,99,0, | ||
0,346,347,5,111,0,0,347,348,5,110,0,0,348,349,5,116,0,0,349,350,5,114,0, | ||
0,350,351,5,97,0,0,351,352,5,99,0,0,352,353,5,116,0,0,353,38,1,0,0,0,354, | ||
355,5,105,0,0,355,356,5,110,0,0,356,357,5,116,0,0,357,358,5,101,0,0,358, | ||
359,5,114,0,0,359,360,5,102,0,0,360,361,5,97,0,0,361,362,5,99,0,0,362,363, | ||
5,101,0,0,363,40,1,0,0,0,364,365,5,108,0,0,365,366,5,105,0,0,366,367,5, | ||
98,0,0,367,368,5,114,0,0,368,369,5,97,0,0,369,370,5,114,0,0,370,371,5,121, | ||
0,0,371,42,1,0,0,0,372,373,5,105,0,0,373,374,5,115,0,0,374,44,1,0,0,0,375, | ||
376,5,40,0,0,376,46,1,0,0,0,377,378,5,41,0,0,378,48,1,0,0,0,379,380,5,101, | ||
0,0,380,381,5,114,0,0,381,382,5,114,0,0,382,383,5,111,0,0,383,384,5,114, | ||
0,0,384,50,1,0,0,0,385,386,5,117,0,0,386,387,5,115,0,0,387,388,5,105,0, | ||
0,388,389,5,110,0,0,389,390,5,103,0,0,390,52,1,0,0,0,391,392,5,102,0,0, | ||
392,393,5,111,0,0,393,394,5,114,0,0,394,54,1,0,0,0,395,396,5,124,0,0,396, | ||
56,1,0,0,0,397,398,5,38,0,0,398,58,1,0,0,0,399,400,5,43,0,0,400,60,1,0, | ||
0,0,401,402,5,45,0,0,402,62,1,0,0,0,403,404,5,47,0,0,404,64,1,0,0,0,405, | ||
406,5,37,0,0,406,66,1,0,0,0,407,408,5,61,0,0,408,409,5,61,0,0,409,68,1, | ||
0,0,0,410,411,5,33,0,0,411,412,5,61,0,0,412,70,1,0,0,0,413,414,5,115,0, | ||
0,414,415,5,116,0,0,415,416,5,114,0,0,416,417,5,117,0,0,417,418,5,99,0, | ||
0,418,419,5,116,0,0,419,72,1,0,0,0,420,421,5,109,0,0,421,422,5,111,0,0, | ||
422,423,5,100,0,0,423,424,5,105,0,0,424,425,5,102,0,0,425,426,5,105,0,0, | ||
426,427,5,101,0,0,427,428,5,114,0,0,428,74,1,0,0,0,429,430,5,102,0,0,430, | ||
431,5,117,0,0,431,432,5,110,0,0,432,433,5,99,0,0,433,434,5,116,0,0,434, | ||
435,5,105,0,0,435,436,5,111,0,0,436,437,5,110,0,0,437,76,1,0,0,0,438,439, | ||
5,114,0,0,439,440,5,101,0,0,440,441,5,116,0,0,441,442,5,117,0,0,442,443, | ||
5,114,0,0,443,444,5,110,0,0,444,445,5,115,0,0,445,78,1,0,0,0,446,447,5, | ||
101,0,0,447,448,5,118,0,0,448,449,5,101,0,0,449,450,5,110,0,0,450,451,5, | ||
116,0,0,451,80,1,0,0,0,452,453,5,101,0,0,453,454,5,110,0,0,454,455,5,117, | ||
0,0,455,456,5,109,0,0,456,82,1,0,0,0,457,458,5,91,0,0,458,84,1,0,0,0,459, | ||
460,5,93,0,0,460,86,1,0,0,0,461,462,5,97,0,0,462,463,5,100,0,0,463,464, | ||
5,100,0,0,464,465,5,114,0,0,465,466,5,101,0,0,466,467,5,115,0,0,467,468, | ||
5,115,0,0,468,88,1,0,0,0,469,470,5,46,0,0,470,90,1,0,0,0,471,472,5,109, | ||
0,0,472,473,5,97,0,0,473,474,5,112,0,0,474,475,5,112,0,0,475,476,5,105, | ||
0,0,476,477,5,110,0,0,477,478,5,103,0,0,478,92,1,0,0,0,479,480,5,61,0,0, | ||
480,481,5,62,0,0,481,94,1,0,0,0,482,483,5,109,0,0,483,484,5,101,0,0,484, | ||
485,5,109,0,0,485,486,5,111,0,0,486,487,5,114,0,0,487,488,5,121,0,0,488, | ||
96,1,0,0,0,489,490,5,115,0,0,490,491,5,116,0,0,491,492,5,111,0,0,492,493, | ||
5,114,0,0,493,494,5,97,0,0,494,495,5,103,0,0,495,496,5,101,0,0,496,98,1, | ||
0,0,0,497,498,5,99,0,0,498,499,5,97,0,0,499,500,5,108,0,0,500,501,5,108, | ||
0,0,501,502,5,100,0,0,502,503,5,97,0,0,503,504,5,116,0,0,504,505,5,97,0, | ||
0,505,100,1,0,0,0,506,507,5,105,0,0,507,508,5,102,0,0,508,102,1,0,0,0,509, | ||
510,5,101,0,0,510,511,5,108,0,0,511,512,5,115,0,0,512,513,5,101,0,0,513, | ||
104,1,0,0,0,514,515,5,116,0,0,515,516,5,114,0,0,516,517,5,121,0,0,517,106, | ||
1,0,0,0,518,519,5,99,0,0,519,520,5,97,0,0,520,521,5,116,0,0,521,522,5,99, | ||
0,0,522,523,5,104,0,0,523,108,1,0,0,0,524,525,5,119,0,0,525,526,5,104,0, | ||
0,526,527,5,105,0,0,527,528,5,108,0,0,528,529,5,101,0,0,529,110,1,0,0,0, | ||
530,531,5,117,0,0,531,532,5,110,0,0,532,533,5,99,0,0,533,534,5,104,0,0, | ||
534,535,5,101,0,0,535,536,5,99,0,0,536,537,5,107,0,0,537,538,5,101,0,0, | ||
538,539,5,100,0,0,539,112,1,0,0,0,540,541,5,97,0,0,541,542,5,115,0,0,542, | ||
543,5,115,0,0,543,544,5,101,0,0,544,545,5,109,0,0,545,546,5,98,0,0,546, | ||
547,5,108,0,0,547,548,5,121,0,0,548,114,1,0,0,0,549,550,5,100,0,0,550,551, | ||
5,111,0,0,551,116,1,0,0,0,552,553,5,114,0,0,553,554,5,101,0,0,554,555,5, | ||
116,0,0,555,556,5,117,0,0,556,557,5,114,0,0,557,558,5,110,0,0,558,118,1, | ||
0,0,0,559,560,5,116,0,0,560,561,5,104,0,0,561,562,5,114,0,0,562,563,5,111, | ||
0,0,563,564,5,119,0,0,564,120,1,0,0,0,565,566,5,101,0,0,566,567,5,109,0, | ||
0,567,568,5,105,0,0,568,569,5,116,0,0,569,122,1,0,0,0,570,571,5,114,0,0, | ||
571,572,5,101,0,0,572,573,5,118,0,0,573,574,5,101,0,0,574,575,5,114,0,0, | ||
575,576,5,116,0,0,576,124,1,0,0,0,577,578,5,118,0,0,578,579,5,97,0,0,579, | ||
580,5,114,0,0,580,126,1,0,0,0,581,582,5,98,0,0,582,583,5,111,0,0,583,584, | ||
5,111,0,0,584,585,5,108,0,0,585,128,1,0,0,0,586,587,5,115,0,0,587,588,5, | ||
116,0,0,588,589,5,114,0,0,589,590,5,105,0,0,590,591,5,110,0,0,591,592,5, | ||
103,0,0,592,130,1,0,0,0,593,594,5,98,0,0,594,595,5,121,0,0,595,596,5,116, | ||
0,0,596,597,5,101,0,0,597,132,1,0,0,0,598,599,5,43,0,0,599,600,5,43,0,0, | ||
600,134,1,0,0,0,601,602,5,45,0,0,602,603,5,45,0,0,603,136,1,0,0,0,604,605, | ||
5,110,0,0,605,606,5,101,0,0,606,607,5,119,0,0,607,138,1,0,0,0,608,609,5, | ||
58,0,0,609,140,1,0,0,0,610,611,5,100,0,0,611,612,5,101,0,0,612,613,5,108, | ||
0,0,613,614,5,101,0,0,614,615,5,116,0,0,615,616,5,101,0,0,616,142,1,0,0, | ||
0,617,618,5,33,0,0,618,144,1,0,0,0,619,620,5,42,0,0,620,621,5,42,0,0,621, | ||
146,1,0,0,0,622,623,5,60,0,0,623,624,5,60,0,0,624,148,1,0,0,0,625,626,5, | ||
62,0,0,626,627,5,62,0,0,627,150,1,0,0,0,628,629,5,38,0,0,629,630,5,38,0, | ||
0,630,152,1,0,0,0,631,632,5,63,0,0,632,154,1,0,0,0,633,634,5,124,0,0,634, | ||
635,5,61,0,0,635,156,1,0,0,0,636,637,5,94,0,0,637,638,5,61,0,0,638,158, | ||
1,0,0,0,639,640,5,38,0,0,640,641,5,61,0,0,641,160,1,0,0,0,642,643,5,60, | ||
0,0,643,644,5,60,0,0,644,645,5,61,0,0,645,162,1,0,0,0,646,647,5,62,0,0, | ||
647,648,5,62,0,0,648,649,5,61,0,0,649,164,1,0,0,0,650,651,5,43,0,0,651, | ||
652,5,61,0,0,652,166,1,0,0,0,653,654,5,45,0,0,654,655,5,61,0,0,655,168, | ||
1,0,0,0,656,657,5,42,0,0,657,658,5,61,0,0,658,170,1,0,0,0,659,660,5,47, | ||
0,0,660,661,5,61,0,0,661,172,1,0,0,0,662,663,5,37,0,0,663,664,5,61,0,0, | ||
664,174,1,0,0,0,665,666,5,108,0,0,666,667,5,101,0,0,667,668,5,116,0,0,668, | ||
176,1,0,0,0,669,670,5,58,0,0,670,671,5,61,0,0,671,178,1,0,0,0,672,673,5, | ||
61,0,0,673,674,5,58,0,0,674,180,1,0,0,0,675,676,5,115,0,0,676,677,5,119, | ||
0,0,677,678,5,105,0,0,678,679,5,116,0,0,679,680,5,99,0,0,680,681,5,104, | ||
0,0,681,182,1,0,0,0,682,683,5,99,0,0,683,684,5,97,0,0,684,685,5,115,0,0, | ||
685,686,5,101,0,0,686,184,1,0,0,0,687,688,5,100,0,0,688,689,5,101,0,0,689, | ||
690,5,102,0,0,690,691,5,97,0,0,691,692,5,117,0,0,692,693,5,108,0,0,693, | ||
694,5,116,0,0,694,186,1,0,0,0,695,696,5,45,0,0,696,697,5,62,0,0,697,188, | ||
1,0,0,0,698,699,5,99,0,0,699,700,5,97,0,0,700,701,5,108,0,0,701,702,5,108, | ||
0,0,702,703,5,98,0,0,703,704,5,97,0,0,704,705,5,99,0,0,705,706,5,107,0, | ||
0,706,190,1,0,0,0,707,708,5,111,0,0,708,709,5,118,0,0,709,710,5,101,0,0, | ||
710,711,5,114,0,0,711,712,5,114,0,0,712,713,5,105,0,0,713,714,5,100,0,0, | ||
714,715,5,101,0,0,715,192,1,0,0,0,716,717,5,105,0,0,717,718,5,110,0,0,718, | ||
719,5,116,0,0,719,721,1,0,0,0,720,722,3,203,101,0,721,720,1,0,0,0,721,722, | ||
1,0,0,0,722,194,1,0,0,0,723,724,5,117,0,0,724,725,5,105,0,0,725,726,5,110, | ||
0,0,726,727,5,116,0,0,727,729,1,0,0,0,728,730,3,203,101,0,729,728,1,0,0, | ||
0,729,730,1,0,0,0,730,196,1,0,0,0,731,732,5,98,0,0,732,733,5,121,0,0,733, | ||
734,5,116,0,0,734,735,5,101,0,0,735,736,5,115,0,0,736,738,1,0,0,0,737,739, | ||
3,205,102,0,738,737,1,0,0,0,738,739,1,0,0,0,739,198,1,0,0,0,740,741,5,102, | ||
0,0,741,742,5,105,0,0,742,743,5,120,0,0,743,744,5,101,0,0,744,745,5,100, | ||
0,0,745,753,1,0,0,0,746,747,3,203,101,0,747,749,5,120,0,0,748,750,7,0,0, | ||
0,749,748,1,0,0,0,750,751,1,0,0,0,751,749,1,0,0,0,751,752,1,0,0,0,752,754, | ||
1,0,0,0,753,746,1,0,0,0,753,754,1,0,0,0,754,200,1,0,0,0,755,756,5,117,0, | ||
0,756,757,5,102,0,0,757,758,5,105,0,0,758,759,5,120,0,0,759,760,5,101,0, | ||
0,760,761,5,100,0,0,761,769,1,0,0,0,762,763,3,203,101,0,763,765,5,120,0, | ||
0,764,766,7,0,0,0,765,764,1,0,0,0,766,767,1,0,0,0,767,765,1,0,0,0,767,768, | ||
1,0,0,0,768,770,1,0,0,0,769,762,1,0,0,0,769,770,1,0,0,0,770,202,1,0,0,0, | ||
771,855,5,56,0,0,772,773,5,49,0,0,773,855,5,54,0,0,774,775,5,50,0,0,775, | ||
855,5,52,0,0,776,777,5,51,0,0,777,855,5,50,0,0,778,779,5,52,0,0,779,855, | ||
5,48,0,0,780,781,5,52,0,0,781,855,5,56,0,0,782,783,5,53,0,0,783,855,5,54, | ||
0,0,784,785,5,54,0,0,785,855,5,52,0,0,786,787,5,55,0,0,787,855,5,50,0,0, | ||
788,789,5,56,0,0,789,855,5,48,0,0,790,791,5,56,0,0,791,855,5,56,0,0,792, | ||
793,5,57,0,0,793,855,5,54,0,0,794,795,5,49,0,0,795,796,5,48,0,0,796,855, | ||
5,52,0,0,797,798,5,49,0,0,798,799,5,49,0,0,799,855,5,50,0,0,800,801,5,49, | ||
0,0,801,802,5,50,0,0,802,855,5,48,0,0,803,804,5,49,0,0,804,805,5,50,0,0, | ||
805,855,5,56,0,0,806,807,5,49,0,0,807,808,5,51,0,0,808,855,5,54,0,0,809, | ||
810,5,49,0,0,810,811,5,52,0,0,811,855,5,52,0,0,812,813,5,49,0,0,813,814, | ||
5,53,0,0,814,855,5,50,0,0,815,816,5,49,0,0,816,817,5,54,0,0,817,855,5,48, | ||
0,0,818,819,5,49,0,0,819,820,5,54,0,0,820,855,5,56,0,0,821,822,5,49,0,0, | ||
822,823,5,55,0,0,823,855,5,54,0,0,824,825,5,49,0,0,825,826,5,56,0,0,826, | ||
855,5,52,0,0,827,828,5,49,0,0,828,829,5,57,0,0,829,855,5,50,0,0,830,831, | ||
5,50,0,0,831,832,5,48,0,0,832,855,5,48,0,0,833,834,5,50,0,0,834,835,5,48, | ||
0,0,835,855,5,56,0,0,836,837,5,50,0,0,837,838,5,49,0,0,838,855,5,54,0,0, | ||
839,840,5,50,0,0,840,841,5,50,0,0,841,855,5,52,0,0,842,843,5,50,0,0,843, | ||
844,5,51,0,0,844,855,5,50,0,0,845,846,5,50,0,0,846,847,5,52,0,0,847,855, | ||
5,48,0,0,848,849,5,50,0,0,849,850,5,52,0,0,850,855,5,56,0,0,851,852,5,50, | ||
0,0,852,853,5,53,0,0,853,855,5,54,0,0,854,771,1,0,0,0,854,772,1,0,0,0,854, | ||
774,1,0,0,0,854,776,1,0,0,0,854,778,1,0,0,0,854,780,1,0,0,0,854,782,1,0, | ||
0,0,854,784,1,0,0,0,854,786,1,0,0,0,854,788,1,0,0,0,854,790,1,0,0,0,854, | ||
792,1,0,0,0,854,794,1,0,0,0,854,797,1,0,0,0,854,800,1,0,0,0,854,803,1,0, | ||
0,0,854,806,1,0,0,0,854,809,1,0,0,0,854,812,1,0,0,0,854,815,1,0,0,0,854, | ||
818,1,0,0,0,854,821,1,0,0,0,854,824,1,0,0,0,854,827,1,0,0,0,854,830,1,0, | ||
0,0,854,833,1,0,0,0,854,836,1,0,0,0,854,839,1,0,0,0,854,842,1,0,0,0,854, | ||
845,1,0,0,0,854,848,1,0,0,0,854,851,1,0,0,0,855,204,1,0,0,0,856,862,7,1, | ||
0,0,857,858,7,2,0,0,858,862,7,0,0,0,859,860,5,51,0,0,860,862,7,3,0,0,861, | ||
856,1,0,0,0,861,857,1,0,0,0,861,859,1,0,0,0,862,206,1,0,0,0,863,864,5,116, | ||
0,0,864,865,5,114,0,0,865,866,5,117,0,0,866,873,5,101,0,0,867,868,5,102, | ||
0,0,868,869,5,97,0,0,869,870,5,108,0,0,870,871,5,115,0,0,871,873,5,101, | ||
0,0,872,863,1,0,0,0,872,867,1,0,0,0,873,208,1,0,0,0,874,881,3,211,105,0, | ||
875,877,3,211,105,0,876,875,1,0,0,0,876,877,1,0,0,0,877,878,1,0,0,0,878, | ||
879,5,46,0,0,879,881,3,211,105,0,880,874,1,0,0,0,880,876,1,0,0,0,881,887, | ||
1,0,0,0,882,884,7,4,0,0,883,885,5,45,0,0,884,883,1,0,0,0,884,885,1,0,0, | ||
0,885,886,1,0,0,0,886,888,3,211,105,0,887,882,1,0,0,0,887,888,1,0,0,0,888, | ||
210,1,0,0,0,889,896,7,0,0,0,890,892,5,95,0,0,891,890,1,0,0,0,891,892,1, | ||
0,0,0,892,893,1,0,0,0,893,895,7,0,0,0,894,891,1,0,0,0,895,898,1,0,0,0,896, | ||
894,1,0,0,0,896,897,1,0,0,0,897,212,1,0,0,0,898,896,1,0,0,0,899,900,5,48, | ||
0,0,900,901,7,5,0,0,901,902,3,215,107,0,902,214,1,0,0,0,903,910,3,221,110, | ||
0,904,906,5,95,0,0,905,904,1,0,0,0,905,906,1,0,0,0,906,907,1,0,0,0,907, | ||
909,3,221,110,0,908,905,1,0,0,0,909,912,1,0,0,0,910,908,1,0,0,0,910,911, | ||
1,0,0,0,911,216,1,0,0,0,912,910,1,0,0,0,913,914,5,119,0,0,914,915,5,101, | ||
0,0,915,970,5,105,0,0,916,917,5,103,0,0,917,918,5,119,0,0,918,919,5,101, | ||
0,0,919,970,5,105,0,0,920,921,5,115,0,0,921,922,5,122,0,0,922,923,5,97, | ||
0,0,923,924,5,98,0,0,924,970,5,111,0,0,925,926,5,102,0,0,926,927,5,105, | ||
0,0,927,928,5,110,0,0,928,929,5,110,0,0,929,930,5,101,0,0,930,970,5,121, | ||
0,0,931,932,5,101,0,0,932,933,5,116,0,0,933,934,5,104,0,0,934,935,5,101, | ||
0,0,935,970,5,114,0,0,936,937,5,115,0,0,937,938,5,101,0,0,938,939,5,99, | ||
0,0,939,940,5,111,0,0,940,941,5,110,0,0,941,942,5,100,0,0,942,970,5,115, | ||
0,0,943,944,5,109,0,0,944,945,5,105,0,0,945,946,5,110,0,0,946,947,5,117, | ||
0,0,947,948,5,116,0,0,948,949,5,101,0,0,949,970,5,115,0,0,950,951,5,104, | ||
0,0,951,952,5,111,0,0,952,953,5,117,0,0,953,954,5,114,0,0,954,970,5,115, | ||
0,0,955,956,5,100,0,0,956,957,5,97,0,0,957,958,5,121,0,0,958,970,5,115, | ||
0,0,959,960,5,119,0,0,960,961,5,101,0,0,961,962,5,101,0,0,962,963,5,107, | ||
0,0,963,970,5,115,0,0,964,965,5,121,0,0,965,966,5,101,0,0,966,967,5,97, | ||
0,0,967,968,5,114,0,0,968,970,5,115,0,0,969,913,1,0,0,0,969,916,1,0,0,0, | ||
969,920,1,0,0,0,969,925,1,0,0,0,969,931,1,0,0,0,969,936,1,0,0,0,969,943, | ||
1,0,0,0,969,950,1,0,0,0,969,955,1,0,0,0,969,959,1,0,0,0,969,964,1,0,0,0, | ||
970,218,1,0,0,0,971,972,5,104,0,0,972,973,5,101,0,0,973,974,5,120,0,0,974, | ||
985,1,0,0,0,975,977,5,34,0,0,976,978,3,215,107,0,977,976,1,0,0,0,977,978, | ||
1,0,0,0,978,979,1,0,0,0,979,986,5,34,0,0,980,982,5,39,0,0,981,983,3,215, | ||
107,0,982,981,1,0,0,0,982,983,1,0,0,0,983,984,1,0,0,0,984,986,5,39,0,0, | ||
985,975,1,0,0,0,985,980,1,0,0,0,986,220,1,0,0,0,987,988,7,6,0,0,988,222, | ||
1,0,0,0,989,990,5,97,0,0,990,991,5,98,0,0,991,992,5,115,0,0,992,993,5,116, | ||
0,0,993,994,5,114,0,0,994,995,5,97,0,0,995,996,5,99,0,0,996,1078,5,116, | ||
0,0,997,998,5,97,0,0,998,999,5,102,0,0,999,1000,5,116,0,0,1000,1001,5,101, | ||
0,0,1001,1078,5,114,0,0,1002,1003,5,99,0,0,1003,1004,5,97,0,0,1004,1005, | ||
5,115,0,0,1005,1078,5,101,0,0,1006,1007,5,99,0,0,1007,1008,5,97,0,0,1008, | ||
1009,5,116,0,0,1009,1010,5,99,0,0,1010,1078,5,104,0,0,1011,1012,5,100,0, | ||
0,1012,1013,5,101,0,0,1013,1014,5,102,0,0,1014,1015,5,97,0,0,1015,1016, | ||
5,117,0,0,1016,1017,5,108,0,0,1017,1078,5,116,0,0,1018,1019,5,102,0,0,1019, | ||
1020,5,105,0,0,1020,1021,5,110,0,0,1021,1022,5,97,0,0,1022,1078,5,108,0, | ||
0,1023,1024,5,105,0,0,1024,1078,5,110,0,0,1025,1026,5,105,0,0,1026,1027, | ||
5,110,0,0,1027,1028,5,108,0,0,1028,1029,5,105,0,0,1029,1030,5,110,0,0,1030, | ||
1078,5,101,0,0,1031,1032,5,108,0,0,1032,1033,5,101,0,0,1033,1078,5,116, | ||
0,0,1034,1035,5,109,0,0,1035,1036,5,97,0,0,1036,1037,5,116,0,0,1037,1038, | ||
5,99,0,0,1038,1078,5,104,0,0,1039,1040,5,110,0,0,1040,1041,5,117,0,0,1041, | ||
1042,5,108,0,0,1042,1078,5,108,0,0,1043,1044,5,111,0,0,1044,1078,5,102, | ||
0,0,1045,1046,5,114,0,0,1046,1047,5,101,0,0,1047,1048,5,108,0,0,1048,1049, | ||
5,111,0,0,1049,1050,5,99,0,0,1050,1051,5,97,0,0,1051,1052,5,116,0,0,1052, | ||
1053,5,97,0,0,1053,1054,5,98,0,0,1054,1055,5,108,0,0,1055,1078,5,101,0, | ||
0,1056,1057,5,115,0,0,1057,1058,5,116,0,0,1058,1059,5,97,0,0,1059,1060, | ||
5,116,0,0,1060,1061,5,105,0,0,1061,1078,5,99,0,0,1062,1063,5,115,0,0,1063, | ||
1064,5,119,0,0,1064,1065,5,105,0,0,1065,1066,5,116,0,0,1066,1067,5,99,0, | ||
0,1067,1078,5,104,0,0,1068,1069,5,116,0,0,1069,1070,5,114,0,0,1070,1078, | ||
5,121,0,0,1071,1072,5,116,0,0,1072,1073,5,121,0,0,1073,1074,5,112,0,0,1074, | ||
1075,5,101,0,0,1075,1076,5,111,0,0,1076,1078,5,102,0,0,1077,989,1,0,0,0, | ||
1077,997,1,0,0,0,1077,1002,1,0,0,0,1077,1006,1,0,0,0,1077,1011,1,0,0,0, | ||
1077,1018,1,0,0,0,1077,1023,1,0,0,0,1077,1025,1,0,0,0,1077,1031,1,0,0,0, | ||
1077,1034,1,0,0,0,1077,1039,1,0,0,0,1077,1043,1,0,0,0,1077,1045,1,0,0,0, | ||
1077,1056,1,0,0,0,1077,1062,1,0,0,0,1077,1068,1,0,0,0,1077,1071,1,0,0,0, | ||
1078,224,1,0,0,0,1079,1080,5,97,0,0,1080,1081,5,110,0,0,1081,1082,5,111, | ||
0,0,1082,1083,5,110,0,0,1083,1084,5,121,0,0,1084,1085,5,109,0,0,1085,1086, | ||
5,111,0,0,1086,1087,5,117,0,0,1087,1088,5,115,0,0,1088,226,1,0,0,0,1089, | ||
1090,5,98,0,0,1090,1091,5,114,0,0,1091,1092,5,101,0,0,1092,1093,5,97,0, | ||
0,1093,1094,5,107,0,0,1094,228,1,0,0,0,1095,1096,5,99,0,0,1096,1097,5,111, | ||
0,0,1097,1098,5,110,0,0,1098,1099,5,115,0,0,1099,1100,5,116,0,0,1100,1101, | ||
5,97,0,0,1101,1102,5,110,0,0,1102,1103,5,116,0,0,1103,230,1,0,0,0,1104, | ||
1105,5,105,0,0,1105,1106,5,109,0,0,1106,1107,5,109,0,0,1107,1108,5,117, | ||
0,0,1108,1109,5,116,0,0,1109,1110,5,97,0,0,1110,1111,5,98,0,0,1111,1112, | ||
5,108,0,0,1112,1113,5,101,0,0,1113,232,1,0,0,0,1114,1115,5,99,0,0,1115, | ||
1116,5,111,0,0,1116,1117,5,110,0,0,1117,1118,5,116,0,0,1118,1119,5,105, | ||
0,0,1119,1120,5,110,0,0,1120,1121,5,117,0,0,1121,1122,5,101,0,0,1122,234, | ||
1,0,0,0,1123,1124,5,108,0,0,1124,1125,5,101,0,0,1125,1126,5,97,0,0,1126, | ||
1127,5,118,0,0,1127,1128,5,101,0,0,1128,236,1,0,0,0,1129,1130,5,101,0,0, | ||
1130,1131,5,120,0,0,1131,1132,5,116,0,0,1132,1133,5,101,0,0,1133,1134,5, | ||
114,0,0,1134,1135,5,110,0,0,1135,1136,5,97,0,0,1136,1137,5,108,0,0,1137, | ||
238,1,0,0,0,1138,1139,5,105,0,0,1139,1140,5,110,0,0,1140,1141,5,100,0,0, | ||
1141,1142,5,101,0,0,1142,1143,5,120,0,0,1143,1144,5,101,0,0,1144,1145,5, | ||
100,0,0,1145,240,1,0,0,0,1146,1147,5,105,0,0,1147,1148,5,110,0,0,1148,1149, | ||
5,116,0,0,1149,1150,5,101,0,0,1150,1151,5,114,0,0,1151,1152,5,110,0,0,1152, | ||
1153,5,97,0,0,1153,1154,5,108,0,0,1154,242,1,0,0,0,1155,1156,5,112,0,0, | ||
1156,1157,5,97,0,0,1157,1158,5,121,0,0,1158,1159,5,97,0,0,1159,1160,5,98, | ||
0,0,1160,1161,5,108,0,0,1161,1162,5,101,0,0,1162,244,1,0,0,0,1163,1164, | ||
5,112,0,0,1164,1165,5,114,0,0,1165,1166,5,105,0,0,1166,1167,5,118,0,0,1167, | ||
1168,5,97,0,0,1168,1169,5,116,0,0,1169,1170,5,101,0,0,1170,246,1,0,0,0, | ||
1171,1172,5,112,0,0,1172,1173,5,117,0,0,1173,1174,5,98,0,0,1174,1175,5, | ||
108,0,0,1175,1176,5,105,0,0,1176,1177,5,99,0,0,1177,248,1,0,0,0,1178,1179, | ||
5,118,0,0,1179,1180,5,105,0,0,1180,1181,5,114,0,0,1181,1182,5,116,0,0,1182, | ||
1183,5,117,0,0,1183,1184,5,97,0,0,1184,1185,5,108,0,0,1185,250,1,0,0,0, | ||
1186,1187,5,112,0,0,1187,1188,5,117,0,0,1188,1189,5,114,0,0,1189,1190,5, | ||
101,0,0,1190,252,1,0,0,0,1191,1192,5,116,0,0,1192,1193,5,121,0,0,1193,1194, | ||
5,112,0,0,1194,1195,5,101,0,0,1195,254,1,0,0,0,1196,1197,5,118,0,0,1197, | ||
1198,5,105,0,0,1198,1199,5,101,0,0,1199,1200,5,119,0,0,1200,256,1,0,0,0, | ||
1201,1202,5,103,0,0,1202,1203,5,108,0,0,1203,1204,5,111,0,0,1204,1205,5, | ||
98,0,0,1205,1206,5,97,0,0,1206,1207,5,108,0,0,1207,258,1,0,0,0,1208,1209, | ||
5,99,0,0,1209,1210,5,111,0,0,1210,1211,5,110,0,0,1211,1212,5,115,0,0,1212, | ||
1213,5,116,0,0,1213,1214,5,114,0,0,1214,1215,5,117,0,0,1215,1216,5,99,0, | ||
0,1216,1217,5,116,0,0,1217,1218,5,111,0,0,1218,1219,5,114,0,0,1219,260, | ||
1,0,0,0,1220,1221,5,102,0,0,1221,1222,5,97,0,0,1222,1223,5,108,0,0,1223, | ||
1224,5,108,0,0,1224,1225,5,98,0,0,1225,1226,5,97,0,0,1226,1227,5,99,0,0, | ||
1227,1228,5,107,0,0,1228,262,1,0,0,0,1229,1230,5,114,0,0,1230,1231,5,101, | ||
0,0,1231,1232,5,99,0,0,1232,1233,5,101,0,0,1233,1234,5,105,0,0,1234,1235, | ||
5,118,0,0,1235,1236,5,101,0,0,1236,264,1,0,0,0,1237,1241,3,267,133,0,1238, | ||
1240,3,269,134,0,1239,1238,1,0,0,0,1240,1243,1,0,0,0,1241,1239,1,0,0,0, | ||
1241,1242,1,0,0,0,1242,266,1,0,0,0,1243,1241,1,0,0,0,1244,1245,7,7,0,0, | ||
1245,268,1,0,0,0,1246,1247,7,8,0,0,1247,270,1,0,0,0,1248,1249,5,117,0,0, | ||
1249,1250,5,110,0,0,1250,1251,5,105,0,0,1251,1252,5,99,0,0,1252,1253,5, | ||
111,0,0,1253,1254,5,100,0,0,1254,1256,5,101,0,0,1255,1248,1,0,0,0,1255, | ||
1256,1,0,0,0,1256,1273,1,0,0,0,1257,1261,5,34,0,0,1258,1260,3,273,136,0, | ||
1259,1258,1,0,0,0,1260,1263,1,0,0,0,1261,1259,1,0,0,0,1261,1262,1,0,0,0, | ||
1262,1264,1,0,0,0,1263,1261,1,0,0,0,1264,1274,5,34,0,0,1265,1269,5,39,0, | ||
0,1266,1268,3,275,137,0,1267,1266,1,0,0,0,1268,1271,1,0,0,0,1269,1267,1, | ||
0,0,0,1269,1270,1,0,0,0,1270,1272,1,0,0,0,1271,1269,1,0,0,0,1272,1274,5, | ||
39,0,0,1273,1257,1,0,0,0,1273,1265,1,0,0,0,1274,272,1,0,0,0,1275,1279,8, | ||
9,0,0,1276,1277,5,92,0,0,1277,1279,9,0,0,0,1278,1275,1,0,0,0,1278,1276, | ||
1,0,0,0,1279,274,1,0,0,0,1280,1284,8,10,0,0,1281,1282,5,92,0,0,1282,1284, | ||
9,0,0,0,1283,1280,1,0,0,0,1283,1281,1,0,0,0,1284,276,1,0,0,0,1285,1287, | ||
7,0,0,0,1286,1285,1,0,0,0,1287,1288,1,0,0,0,1288,1286,1,0,0,0,1288,1289, | ||
1,0,0,0,1289,1290,1,0,0,0,1290,1292,5,46,0,0,1291,1293,7,0,0,0,1292,1291, | ||
1,0,0,0,1293,1294,1,0,0,0,1294,1292,1,0,0,0,1294,1295,1,0,0,0,1295,1302, | ||
1,0,0,0,1296,1298,5,46,0,0,1297,1299,7,0,0,0,1298,1297,1,0,0,0,1299,1300, | ||
1,0,0,0,1300,1298,1,0,0,0,1300,1301,1,0,0,0,1301,1303,1,0,0,0,1302,1296, | ||
1,0,0,0,1302,1303,1,0,0,0,1303,278,1,0,0,0,1304,1306,7,11,0,0,1305,1304, | ||
1,0,0,0,1306,1307,1,0,0,0,1307,1305,1,0,0,0,1307,1308,1,0,0,0,1308,1309, | ||
1,0,0,0,1309,1310,6,139,0,0,1310,280,1,0,0,0,1311,1312,5,47,0,0,1312,1313, | ||
5,42,0,0,1313,1317,1,0,0,0,1314,1316,9,0,0,0,1315,1314,1,0,0,0,1316,1319, | ||
1,0,0,0,1317,1318,1,0,0,0,1317,1315,1,0,0,0,1318,1320,1,0,0,0,1319,1317, | ||
1,0,0,0,1320,1321,5,42,0,0,1321,1322,5,47,0,0,1322,1323,1,0,0,0,1323,1324, | ||
6,140,1,0,1324,282,1,0,0,0,1325,1326,5,47,0,0,1326,1327,5,47,0,0,1327,1331, | ||
1,0,0,0,1328,1330,8,12,0,0,1329,1328,1,0,0,0,1330,1333,1,0,0,0,1331,1329, | ||
1,0,0,0,1331,1332,1,0,0,0,1332,1334,1,0,0,0,1333,1331,1,0,0,0,1334,1335, | ||
6,141,1,0,1335,284,1,0,0,0,38,0,721,729,738,751,753,767,769,854,861,872, | ||
876,880,884,887,891,896,905,910,969,977,982,985,1077,1241,1255,1261,1269, | ||
1273,1278,1283,1288,1294,1300,1302,1307,1317,1331,2,6,0,0,0,1,0]; | ||
private static __ATN: ATN; | ||
public static get _ATN(): ATN { | ||
if (!SolidityLexer.__ATN) { | ||
SolidityLexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(SolidityLexer._serializedATN)); | ||
SolidityLexer.__ATN = new ATNDeserializer().deserialize(SolidityLexer._serializedATN); | ||
} | ||
@@ -929,3 +829,4 @@ | ||
} | ||
static DecisionsToDFA = SolidityLexer._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) ); | ||
} |
@@ -1,5 +0,5 @@ | ||
// Generated from antlr/Solidity.g4 by ANTLR 4.9.0-SNAPSHOT | ||
// Generated from antlr/Solidity.g4 by ANTLR 4.13.1 | ||
import {ParseTreeListener} from "antlr4"; | ||
import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener"; | ||
@@ -113,3 +113,3 @@ import { SourceUnitContext } from "./SolidityParser"; | ||
*/ | ||
export interface SolidityListener extends ParseTreeListener { | ||
export default class SolidityListener extends ParseTreeListener { | ||
/** | ||
@@ -125,3 +125,2 @@ * Enter a parse tree produced by `SolidityParser.sourceUnit`. | ||
exitSourceUnit?: (ctx: SourceUnitContext) => void; | ||
/** | ||
@@ -137,3 +136,2 @@ * Enter a parse tree produced by `SolidityParser.pragmaDirective`. | ||
exitPragmaDirective?: (ctx: PragmaDirectiveContext) => void; | ||
/** | ||
@@ -149,3 +147,2 @@ * Enter a parse tree produced by `SolidityParser.pragmaName`. | ||
exitPragmaName?: (ctx: PragmaNameContext) => void; | ||
/** | ||
@@ -161,3 +158,2 @@ * Enter a parse tree produced by `SolidityParser.pragmaValue`. | ||
exitPragmaValue?: (ctx: PragmaValueContext) => void; | ||
/** | ||
@@ -173,3 +169,2 @@ * Enter a parse tree produced by `SolidityParser.version`. | ||
exitVersion?: (ctx: VersionContext) => void; | ||
/** | ||
@@ -185,3 +180,2 @@ * Enter a parse tree produced by `SolidityParser.versionOperator`. | ||
exitVersionOperator?: (ctx: VersionOperatorContext) => void; | ||
/** | ||
@@ -197,3 +191,2 @@ * Enter a parse tree produced by `SolidityParser.versionConstraint`. | ||
exitVersionConstraint?: (ctx: VersionConstraintContext) => void; | ||
/** | ||
@@ -209,3 +202,2 @@ * Enter a parse tree produced by `SolidityParser.importDeclaration`. | ||
exitImportDeclaration?: (ctx: ImportDeclarationContext) => void; | ||
/** | ||
@@ -221,3 +213,2 @@ * Enter a parse tree produced by `SolidityParser.importDirective`. | ||
exitImportDirective?: (ctx: ImportDirectiveContext) => void; | ||
/** | ||
@@ -233,3 +224,2 @@ * Enter a parse tree produced by `SolidityParser.importPath`. | ||
exitImportPath?: (ctx: ImportPathContext) => void; | ||
/** | ||
@@ -245,3 +235,2 @@ * Enter a parse tree produced by `SolidityParser.contractDefinition`. | ||
exitContractDefinition?: (ctx: ContractDefinitionContext) => void; | ||
/** | ||
@@ -257,3 +246,2 @@ * Enter a parse tree produced by `SolidityParser.inheritanceSpecifier`. | ||
exitInheritanceSpecifier?: (ctx: InheritanceSpecifierContext) => void; | ||
/** | ||
@@ -269,3 +257,2 @@ * Enter a parse tree produced by `SolidityParser.contractPart`. | ||
exitContractPart?: (ctx: ContractPartContext) => void; | ||
/** | ||
@@ -281,3 +268,2 @@ * Enter a parse tree produced by `SolidityParser.stateVariableDeclaration`. | ||
exitStateVariableDeclaration?: (ctx: StateVariableDeclarationContext) => void; | ||
/** | ||
@@ -293,3 +279,2 @@ * Enter a parse tree produced by `SolidityParser.fileLevelConstant`. | ||
exitFileLevelConstant?: (ctx: FileLevelConstantContext) => void; | ||
/** | ||
@@ -305,3 +290,2 @@ * Enter a parse tree produced by `SolidityParser.customErrorDefinition`. | ||
exitCustomErrorDefinition?: (ctx: CustomErrorDefinitionContext) => void; | ||
/** | ||
@@ -317,3 +301,2 @@ * Enter a parse tree produced by `SolidityParser.typeDefinition`. | ||
exitTypeDefinition?: (ctx: TypeDefinitionContext) => void; | ||
/** | ||
@@ -329,3 +312,2 @@ * Enter a parse tree produced by `SolidityParser.usingForDeclaration`. | ||
exitUsingForDeclaration?: (ctx: UsingForDeclarationContext) => void; | ||
/** | ||
@@ -341,3 +323,2 @@ * Enter a parse tree produced by `SolidityParser.usingForObject`. | ||
exitUsingForObject?: (ctx: UsingForObjectContext) => void; | ||
/** | ||
@@ -353,3 +334,2 @@ * Enter a parse tree produced by `SolidityParser.usingForObjectDirective`. | ||
exitUsingForObjectDirective?: (ctx: UsingForObjectDirectiveContext) => void; | ||
/** | ||
@@ -365,3 +345,2 @@ * Enter a parse tree produced by `SolidityParser.userDefinableOperators`. | ||
exitUserDefinableOperators?: (ctx: UserDefinableOperatorsContext) => void; | ||
/** | ||
@@ -377,3 +356,2 @@ * Enter a parse tree produced by `SolidityParser.structDefinition`. | ||
exitStructDefinition?: (ctx: StructDefinitionContext) => void; | ||
/** | ||
@@ -389,3 +367,2 @@ * Enter a parse tree produced by `SolidityParser.modifierDefinition`. | ||
exitModifierDefinition?: (ctx: ModifierDefinitionContext) => void; | ||
/** | ||
@@ -401,3 +378,2 @@ * Enter a parse tree produced by `SolidityParser.modifierInvocation`. | ||
exitModifierInvocation?: (ctx: ModifierInvocationContext) => void; | ||
/** | ||
@@ -413,3 +389,2 @@ * Enter a parse tree produced by `SolidityParser.functionDefinition`. | ||
exitFunctionDefinition?: (ctx: FunctionDefinitionContext) => void; | ||
/** | ||
@@ -425,3 +400,2 @@ * Enter a parse tree produced by `SolidityParser.functionDescriptor`. | ||
exitFunctionDescriptor?: (ctx: FunctionDescriptorContext) => void; | ||
/** | ||
@@ -437,3 +411,2 @@ * Enter a parse tree produced by `SolidityParser.returnParameters`. | ||
exitReturnParameters?: (ctx: ReturnParametersContext) => void; | ||
/** | ||
@@ -449,3 +422,2 @@ * Enter a parse tree produced by `SolidityParser.modifierList`. | ||
exitModifierList?: (ctx: ModifierListContext) => void; | ||
/** | ||
@@ -461,3 +433,2 @@ * Enter a parse tree produced by `SolidityParser.eventDefinition`. | ||
exitEventDefinition?: (ctx: EventDefinitionContext) => void; | ||
/** | ||
@@ -473,3 +444,2 @@ * Enter a parse tree produced by `SolidityParser.enumValue`. | ||
exitEnumValue?: (ctx: EnumValueContext) => void; | ||
/** | ||
@@ -485,3 +455,2 @@ * Enter a parse tree produced by `SolidityParser.enumDefinition`. | ||
exitEnumDefinition?: (ctx: EnumDefinitionContext) => void; | ||
/** | ||
@@ -497,3 +466,2 @@ * Enter a parse tree produced by `SolidityParser.parameterList`. | ||
exitParameterList?: (ctx: ParameterListContext) => void; | ||
/** | ||
@@ -509,3 +477,2 @@ * Enter a parse tree produced by `SolidityParser.parameter`. | ||
exitParameter?: (ctx: ParameterContext) => void; | ||
/** | ||
@@ -521,3 +488,2 @@ * Enter a parse tree produced by `SolidityParser.eventParameterList`. | ||
exitEventParameterList?: (ctx: EventParameterListContext) => void; | ||
/** | ||
@@ -533,3 +499,2 @@ * Enter a parse tree produced by `SolidityParser.eventParameter`. | ||
exitEventParameter?: (ctx: EventParameterContext) => void; | ||
/** | ||
@@ -545,3 +510,2 @@ * Enter a parse tree produced by `SolidityParser.functionTypeParameterList`. | ||
exitFunctionTypeParameterList?: (ctx: FunctionTypeParameterListContext) => void; | ||
/** | ||
@@ -557,3 +521,2 @@ * Enter a parse tree produced by `SolidityParser.functionTypeParameter`. | ||
exitFunctionTypeParameter?: (ctx: FunctionTypeParameterContext) => void; | ||
/** | ||
@@ -569,3 +532,2 @@ * Enter a parse tree produced by `SolidityParser.variableDeclaration`. | ||
exitVariableDeclaration?: (ctx: VariableDeclarationContext) => void; | ||
/** | ||
@@ -581,3 +543,2 @@ * Enter a parse tree produced by `SolidityParser.typeName`. | ||
exitTypeName?: (ctx: TypeNameContext) => void; | ||
/** | ||
@@ -593,3 +554,2 @@ * Enter a parse tree produced by `SolidityParser.userDefinedTypeName`. | ||
exitUserDefinedTypeName?: (ctx: UserDefinedTypeNameContext) => void; | ||
/** | ||
@@ -605,3 +565,2 @@ * Enter a parse tree produced by `SolidityParser.mappingKey`. | ||
exitMappingKey?: (ctx: MappingKeyContext) => void; | ||
/** | ||
@@ -617,3 +576,2 @@ * Enter a parse tree produced by `SolidityParser.mapping`. | ||
exitMapping?: (ctx: MappingContext) => void; | ||
/** | ||
@@ -629,3 +587,2 @@ * Enter a parse tree produced by `SolidityParser.mappingKeyName`. | ||
exitMappingKeyName?: (ctx: MappingKeyNameContext) => void; | ||
/** | ||
@@ -641,3 +598,2 @@ * Enter a parse tree produced by `SolidityParser.mappingValueName`. | ||
exitMappingValueName?: (ctx: MappingValueNameContext) => void; | ||
/** | ||
@@ -653,3 +609,2 @@ * Enter a parse tree produced by `SolidityParser.functionTypeName`. | ||
exitFunctionTypeName?: (ctx: FunctionTypeNameContext) => void; | ||
/** | ||
@@ -665,3 +620,2 @@ * Enter a parse tree produced by `SolidityParser.storageLocation`. | ||
exitStorageLocation?: (ctx: StorageLocationContext) => void; | ||
/** | ||
@@ -677,3 +631,2 @@ * Enter a parse tree produced by `SolidityParser.stateMutability`. | ||
exitStateMutability?: (ctx: StateMutabilityContext) => void; | ||
/** | ||
@@ -689,3 +642,2 @@ * Enter a parse tree produced by `SolidityParser.block`. | ||
exitBlock?: (ctx: BlockContext) => void; | ||
/** | ||
@@ -701,3 +653,2 @@ * Enter a parse tree produced by `SolidityParser.statement`. | ||
exitStatement?: (ctx: StatementContext) => void; | ||
/** | ||
@@ -713,3 +664,2 @@ * Enter a parse tree produced by `SolidityParser.expressionStatement`. | ||
exitExpressionStatement?: (ctx: ExpressionStatementContext) => void; | ||
/** | ||
@@ -725,3 +675,2 @@ * Enter a parse tree produced by `SolidityParser.ifStatement`. | ||
exitIfStatement?: (ctx: IfStatementContext) => void; | ||
/** | ||
@@ -737,3 +686,2 @@ * Enter a parse tree produced by `SolidityParser.tryStatement`. | ||
exitTryStatement?: (ctx: TryStatementContext) => void; | ||
/** | ||
@@ -749,3 +697,2 @@ * Enter a parse tree produced by `SolidityParser.catchClause`. | ||
exitCatchClause?: (ctx: CatchClauseContext) => void; | ||
/** | ||
@@ -761,3 +708,2 @@ * Enter a parse tree produced by `SolidityParser.whileStatement`. | ||
exitWhileStatement?: (ctx: WhileStatementContext) => void; | ||
/** | ||
@@ -773,3 +719,2 @@ * Enter a parse tree produced by `SolidityParser.simpleStatement`. | ||
exitSimpleStatement?: (ctx: SimpleStatementContext) => void; | ||
/** | ||
@@ -785,3 +730,2 @@ * Enter a parse tree produced by `SolidityParser.uncheckedStatement`. | ||
exitUncheckedStatement?: (ctx: UncheckedStatementContext) => void; | ||
/** | ||
@@ -797,3 +741,2 @@ * Enter a parse tree produced by `SolidityParser.forStatement`. | ||
exitForStatement?: (ctx: ForStatementContext) => void; | ||
/** | ||
@@ -809,3 +752,2 @@ * Enter a parse tree produced by `SolidityParser.inlineAssemblyStatement`. | ||
exitInlineAssemblyStatement?: (ctx: InlineAssemblyStatementContext) => void; | ||
/** | ||
@@ -821,3 +763,2 @@ * Enter a parse tree produced by `SolidityParser.inlineAssemblyStatementFlag`. | ||
exitInlineAssemblyStatementFlag?: (ctx: InlineAssemblyStatementFlagContext) => void; | ||
/** | ||
@@ -833,3 +774,2 @@ * Enter a parse tree produced by `SolidityParser.doWhileStatement`. | ||
exitDoWhileStatement?: (ctx: DoWhileStatementContext) => void; | ||
/** | ||
@@ -845,3 +785,2 @@ * Enter a parse tree produced by `SolidityParser.continueStatement`. | ||
exitContinueStatement?: (ctx: ContinueStatementContext) => void; | ||
/** | ||
@@ -857,3 +796,2 @@ * Enter a parse tree produced by `SolidityParser.breakStatement`. | ||
exitBreakStatement?: (ctx: BreakStatementContext) => void; | ||
/** | ||
@@ -869,3 +807,2 @@ * Enter a parse tree produced by `SolidityParser.returnStatement`. | ||
exitReturnStatement?: (ctx: ReturnStatementContext) => void; | ||
/** | ||
@@ -881,3 +818,2 @@ * Enter a parse tree produced by `SolidityParser.throwStatement`. | ||
exitThrowStatement?: (ctx: ThrowStatementContext) => void; | ||
/** | ||
@@ -893,3 +829,2 @@ * Enter a parse tree produced by `SolidityParser.emitStatement`. | ||
exitEmitStatement?: (ctx: EmitStatementContext) => void; | ||
/** | ||
@@ -905,3 +840,2 @@ * Enter a parse tree produced by `SolidityParser.revertStatement`. | ||
exitRevertStatement?: (ctx: RevertStatementContext) => void; | ||
/** | ||
@@ -917,3 +851,2 @@ * Enter a parse tree produced by `SolidityParser.variableDeclarationStatement`. | ||
exitVariableDeclarationStatement?: (ctx: VariableDeclarationStatementContext) => void; | ||
/** | ||
@@ -929,3 +862,2 @@ * Enter a parse tree produced by `SolidityParser.variableDeclarationList`. | ||
exitVariableDeclarationList?: (ctx: VariableDeclarationListContext) => void; | ||
/** | ||
@@ -941,3 +873,2 @@ * Enter a parse tree produced by `SolidityParser.identifierList`. | ||
exitIdentifierList?: (ctx: IdentifierListContext) => void; | ||
/** | ||
@@ -953,3 +884,2 @@ * Enter a parse tree produced by `SolidityParser.elementaryTypeName`. | ||
exitElementaryTypeName?: (ctx: ElementaryTypeNameContext) => void; | ||
/** | ||
@@ -965,3 +895,2 @@ * Enter a parse tree produced by `SolidityParser.expression`. | ||
exitExpression?: (ctx: ExpressionContext) => void; | ||
/** | ||
@@ -977,3 +906,2 @@ * Enter a parse tree produced by `SolidityParser.primaryExpression`. | ||
exitPrimaryExpression?: (ctx: PrimaryExpressionContext) => void; | ||
/** | ||
@@ -989,3 +917,2 @@ * Enter a parse tree produced by `SolidityParser.expressionList`. | ||
exitExpressionList?: (ctx: ExpressionListContext) => void; | ||
/** | ||
@@ -1001,3 +928,2 @@ * Enter a parse tree produced by `SolidityParser.nameValueList`. | ||
exitNameValueList?: (ctx: NameValueListContext) => void; | ||
/** | ||
@@ -1013,3 +939,2 @@ * Enter a parse tree produced by `SolidityParser.nameValue`. | ||
exitNameValue?: (ctx: NameValueContext) => void; | ||
/** | ||
@@ -1025,3 +950,2 @@ * Enter a parse tree produced by `SolidityParser.functionCallArguments`. | ||
exitFunctionCallArguments?: (ctx: FunctionCallArgumentsContext) => void; | ||
/** | ||
@@ -1037,3 +961,2 @@ * Enter a parse tree produced by `SolidityParser.functionCall`. | ||
exitFunctionCall?: (ctx: FunctionCallContext) => void; | ||
/** | ||
@@ -1049,3 +972,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyBlock`. | ||
exitAssemblyBlock?: (ctx: AssemblyBlockContext) => void; | ||
/** | ||
@@ -1061,3 +983,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyItem`. | ||
exitAssemblyItem?: (ctx: AssemblyItemContext) => void; | ||
/** | ||
@@ -1073,3 +994,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyExpression`. | ||
exitAssemblyExpression?: (ctx: AssemblyExpressionContext) => void; | ||
/** | ||
@@ -1085,3 +1005,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyMember`. | ||
exitAssemblyMember?: (ctx: AssemblyMemberContext) => void; | ||
/** | ||
@@ -1097,3 +1016,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyCall`. | ||
exitAssemblyCall?: (ctx: AssemblyCallContext) => void; | ||
/** | ||
@@ -1109,3 +1027,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyLocalDefinition`. | ||
exitAssemblyLocalDefinition?: (ctx: AssemblyLocalDefinitionContext) => void; | ||
/** | ||
@@ -1121,3 +1038,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyAssignment`. | ||
exitAssemblyAssignment?: (ctx: AssemblyAssignmentContext) => void; | ||
/** | ||
@@ -1133,3 +1049,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyIdentifierOrList`. | ||
exitAssemblyIdentifierOrList?: (ctx: AssemblyIdentifierOrListContext) => void; | ||
/** | ||
@@ -1145,3 +1060,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyIdentifierList`. | ||
exitAssemblyIdentifierList?: (ctx: AssemblyIdentifierListContext) => void; | ||
/** | ||
@@ -1157,3 +1071,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyStackAssignment`. | ||
exitAssemblyStackAssignment?: (ctx: AssemblyStackAssignmentContext) => void; | ||
/** | ||
@@ -1169,3 +1082,2 @@ * Enter a parse tree produced by `SolidityParser.labelDefinition`. | ||
exitLabelDefinition?: (ctx: LabelDefinitionContext) => void; | ||
/** | ||
@@ -1181,3 +1093,2 @@ * Enter a parse tree produced by `SolidityParser.assemblySwitch`. | ||
exitAssemblySwitch?: (ctx: AssemblySwitchContext) => void; | ||
/** | ||
@@ -1193,3 +1104,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyCase`. | ||
exitAssemblyCase?: (ctx: AssemblyCaseContext) => void; | ||
/** | ||
@@ -1205,3 +1115,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyFunctionDefinition`. | ||
exitAssemblyFunctionDefinition?: (ctx: AssemblyFunctionDefinitionContext) => void; | ||
/** | ||
@@ -1217,3 +1126,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyFunctionReturns`. | ||
exitAssemblyFunctionReturns?: (ctx: AssemblyFunctionReturnsContext) => void; | ||
/** | ||
@@ -1229,3 +1137,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyFor`. | ||
exitAssemblyFor?: (ctx: AssemblyForContext) => void; | ||
/** | ||
@@ -1241,3 +1148,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyIf`. | ||
exitAssemblyIf?: (ctx: AssemblyIfContext) => void; | ||
/** | ||
@@ -1253,3 +1159,2 @@ * Enter a parse tree produced by `SolidityParser.assemblyLiteral`. | ||
exitAssemblyLiteral?: (ctx: AssemblyLiteralContext) => void; | ||
/** | ||
@@ -1265,3 +1170,2 @@ * Enter a parse tree produced by `SolidityParser.tupleExpression`. | ||
exitTupleExpression?: (ctx: TupleExpressionContext) => void; | ||
/** | ||
@@ -1277,3 +1181,2 @@ * Enter a parse tree produced by `SolidityParser.numberLiteral`. | ||
exitNumberLiteral?: (ctx: NumberLiteralContext) => void; | ||
/** | ||
@@ -1289,3 +1192,2 @@ * Enter a parse tree produced by `SolidityParser.identifier`. | ||
exitIdentifier?: (ctx: IdentifierContext) => void; | ||
/** | ||
@@ -1301,3 +1203,2 @@ * Enter a parse tree produced by `SolidityParser.hexLiteral`. | ||
exitHexLiteral?: (ctx: HexLiteralContext) => void; | ||
/** | ||
@@ -1313,3 +1214,2 @@ * Enter a parse tree produced by `SolidityParser.overrideSpecifier`. | ||
exitOverrideSpecifier?: (ctx: OverrideSpecifierContext) => void; | ||
/** | ||
@@ -1316,0 +1216,0 @@ * Enter a parse tree produced by `SolidityParser.stringLiteral`. |
@@ -1,5 +0,5 @@ | ||
// Generated from antlr/Solidity.g4 by ANTLR 4.9.0-SNAPSHOT | ||
// Generated from antlr/Solidity.g4 by ANTLR 4.13.1 | ||
import {ParseTreeVisitor} from 'antlr4'; | ||
import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor"; | ||
@@ -116,3 +116,3 @@ import { SourceUnitContext } from "./SolidityParser"; | ||
*/ | ||
export interface SolidityVisitor<Result> extends ParseTreeVisitor<Result> { | ||
export default class SolidityVisitor<Result> extends ParseTreeVisitor<Result> { | ||
/** | ||
@@ -124,3 +124,2 @@ * Visit a parse tree produced by `SolidityParser.sourceUnit`. | ||
visitSourceUnit?: (ctx: SourceUnitContext) => Result; | ||
/** | ||
@@ -132,3 +131,2 @@ * Visit a parse tree produced by `SolidityParser.pragmaDirective`. | ||
visitPragmaDirective?: (ctx: PragmaDirectiveContext) => Result; | ||
/** | ||
@@ -140,3 +138,2 @@ * Visit a parse tree produced by `SolidityParser.pragmaName`. | ||
visitPragmaName?: (ctx: PragmaNameContext) => Result; | ||
/** | ||
@@ -148,3 +145,2 @@ * Visit a parse tree produced by `SolidityParser.pragmaValue`. | ||
visitPragmaValue?: (ctx: PragmaValueContext) => Result; | ||
/** | ||
@@ -156,3 +152,2 @@ * Visit a parse tree produced by `SolidityParser.version`. | ||
visitVersion?: (ctx: VersionContext) => Result; | ||
/** | ||
@@ -164,3 +159,2 @@ * Visit a parse tree produced by `SolidityParser.versionOperator`. | ||
visitVersionOperator?: (ctx: VersionOperatorContext) => Result; | ||
/** | ||
@@ -172,3 +166,2 @@ * Visit a parse tree produced by `SolidityParser.versionConstraint`. | ||
visitVersionConstraint?: (ctx: VersionConstraintContext) => Result; | ||
/** | ||
@@ -180,3 +173,2 @@ * Visit a parse tree produced by `SolidityParser.importDeclaration`. | ||
visitImportDeclaration?: (ctx: ImportDeclarationContext) => Result; | ||
/** | ||
@@ -188,3 +180,2 @@ * Visit a parse tree produced by `SolidityParser.importDirective`. | ||
visitImportDirective?: (ctx: ImportDirectiveContext) => Result; | ||
/** | ||
@@ -196,3 +187,2 @@ * Visit a parse tree produced by `SolidityParser.importPath`. | ||
visitImportPath?: (ctx: ImportPathContext) => Result; | ||
/** | ||
@@ -204,3 +194,2 @@ * Visit a parse tree produced by `SolidityParser.contractDefinition`. | ||
visitContractDefinition?: (ctx: ContractDefinitionContext) => Result; | ||
/** | ||
@@ -212,3 +201,2 @@ * Visit a parse tree produced by `SolidityParser.inheritanceSpecifier`. | ||
visitInheritanceSpecifier?: (ctx: InheritanceSpecifierContext) => Result; | ||
/** | ||
@@ -220,3 +208,2 @@ * Visit a parse tree produced by `SolidityParser.contractPart`. | ||
visitContractPart?: (ctx: ContractPartContext) => Result; | ||
/** | ||
@@ -228,3 +215,2 @@ * Visit a parse tree produced by `SolidityParser.stateVariableDeclaration`. | ||
visitStateVariableDeclaration?: (ctx: StateVariableDeclarationContext) => Result; | ||
/** | ||
@@ -236,3 +222,2 @@ * Visit a parse tree produced by `SolidityParser.fileLevelConstant`. | ||
visitFileLevelConstant?: (ctx: FileLevelConstantContext) => Result; | ||
/** | ||
@@ -244,3 +229,2 @@ * Visit a parse tree produced by `SolidityParser.customErrorDefinition`. | ||
visitCustomErrorDefinition?: (ctx: CustomErrorDefinitionContext) => Result; | ||
/** | ||
@@ -252,3 +236,2 @@ * Visit a parse tree produced by `SolidityParser.typeDefinition`. | ||
visitTypeDefinition?: (ctx: TypeDefinitionContext) => Result; | ||
/** | ||
@@ -260,3 +243,2 @@ * Visit a parse tree produced by `SolidityParser.usingForDeclaration`. | ||
visitUsingForDeclaration?: (ctx: UsingForDeclarationContext) => Result; | ||
/** | ||
@@ -268,3 +250,2 @@ * Visit a parse tree produced by `SolidityParser.usingForObject`. | ||
visitUsingForObject?: (ctx: UsingForObjectContext) => Result; | ||
/** | ||
@@ -276,3 +257,2 @@ * Visit a parse tree produced by `SolidityParser.usingForObjectDirective`. | ||
visitUsingForObjectDirective?: (ctx: UsingForObjectDirectiveContext) => Result; | ||
/** | ||
@@ -284,3 +264,2 @@ * Visit a parse tree produced by `SolidityParser.userDefinableOperators`. | ||
visitUserDefinableOperators?: (ctx: UserDefinableOperatorsContext) => Result; | ||
/** | ||
@@ -292,3 +271,2 @@ * Visit a parse tree produced by `SolidityParser.structDefinition`. | ||
visitStructDefinition?: (ctx: StructDefinitionContext) => Result; | ||
/** | ||
@@ -300,3 +278,2 @@ * Visit a parse tree produced by `SolidityParser.modifierDefinition`. | ||
visitModifierDefinition?: (ctx: ModifierDefinitionContext) => Result; | ||
/** | ||
@@ -308,3 +285,2 @@ * Visit a parse tree produced by `SolidityParser.modifierInvocation`. | ||
visitModifierInvocation?: (ctx: ModifierInvocationContext) => Result; | ||
/** | ||
@@ -316,3 +292,2 @@ * Visit a parse tree produced by `SolidityParser.functionDefinition`. | ||
visitFunctionDefinition?: (ctx: FunctionDefinitionContext) => Result; | ||
/** | ||
@@ -324,3 +299,2 @@ * Visit a parse tree produced by `SolidityParser.functionDescriptor`. | ||
visitFunctionDescriptor?: (ctx: FunctionDescriptorContext) => Result; | ||
/** | ||
@@ -332,3 +306,2 @@ * Visit a parse tree produced by `SolidityParser.returnParameters`. | ||
visitReturnParameters?: (ctx: ReturnParametersContext) => Result; | ||
/** | ||
@@ -340,3 +313,2 @@ * Visit a parse tree produced by `SolidityParser.modifierList`. | ||
visitModifierList?: (ctx: ModifierListContext) => Result; | ||
/** | ||
@@ -348,3 +320,2 @@ * Visit a parse tree produced by `SolidityParser.eventDefinition`. | ||
visitEventDefinition?: (ctx: EventDefinitionContext) => Result; | ||
/** | ||
@@ -356,3 +327,2 @@ * Visit a parse tree produced by `SolidityParser.enumValue`. | ||
visitEnumValue?: (ctx: EnumValueContext) => Result; | ||
/** | ||
@@ -364,3 +334,2 @@ * Visit a parse tree produced by `SolidityParser.enumDefinition`. | ||
visitEnumDefinition?: (ctx: EnumDefinitionContext) => Result; | ||
/** | ||
@@ -372,3 +341,2 @@ * Visit a parse tree produced by `SolidityParser.parameterList`. | ||
visitParameterList?: (ctx: ParameterListContext) => Result; | ||
/** | ||
@@ -380,3 +348,2 @@ * Visit a parse tree produced by `SolidityParser.parameter`. | ||
visitParameter?: (ctx: ParameterContext) => Result; | ||
/** | ||
@@ -388,3 +355,2 @@ * Visit a parse tree produced by `SolidityParser.eventParameterList`. | ||
visitEventParameterList?: (ctx: EventParameterListContext) => Result; | ||
/** | ||
@@ -396,3 +362,2 @@ * Visit a parse tree produced by `SolidityParser.eventParameter`. | ||
visitEventParameter?: (ctx: EventParameterContext) => Result; | ||
/** | ||
@@ -404,3 +369,2 @@ * Visit a parse tree produced by `SolidityParser.functionTypeParameterList`. | ||
visitFunctionTypeParameterList?: (ctx: FunctionTypeParameterListContext) => Result; | ||
/** | ||
@@ -412,3 +376,2 @@ * Visit a parse tree produced by `SolidityParser.functionTypeParameter`. | ||
visitFunctionTypeParameter?: (ctx: FunctionTypeParameterContext) => Result; | ||
/** | ||
@@ -420,3 +383,2 @@ * Visit a parse tree produced by `SolidityParser.variableDeclaration`. | ||
visitVariableDeclaration?: (ctx: VariableDeclarationContext) => Result; | ||
/** | ||
@@ -428,3 +390,2 @@ * Visit a parse tree produced by `SolidityParser.typeName`. | ||
visitTypeName?: (ctx: TypeNameContext) => Result; | ||
/** | ||
@@ -436,3 +397,2 @@ * Visit a parse tree produced by `SolidityParser.userDefinedTypeName`. | ||
visitUserDefinedTypeName?: (ctx: UserDefinedTypeNameContext) => Result; | ||
/** | ||
@@ -444,3 +404,2 @@ * Visit a parse tree produced by `SolidityParser.mappingKey`. | ||
visitMappingKey?: (ctx: MappingKeyContext) => Result; | ||
/** | ||
@@ -452,3 +411,2 @@ * Visit a parse tree produced by `SolidityParser.mapping`. | ||
visitMapping?: (ctx: MappingContext) => Result; | ||
/** | ||
@@ -460,3 +418,2 @@ * Visit a parse tree produced by `SolidityParser.mappingKeyName`. | ||
visitMappingKeyName?: (ctx: MappingKeyNameContext) => Result; | ||
/** | ||
@@ -468,3 +425,2 @@ * Visit a parse tree produced by `SolidityParser.mappingValueName`. | ||
visitMappingValueName?: (ctx: MappingValueNameContext) => Result; | ||
/** | ||
@@ -476,3 +432,2 @@ * Visit a parse tree produced by `SolidityParser.functionTypeName`. | ||
visitFunctionTypeName?: (ctx: FunctionTypeNameContext) => Result; | ||
/** | ||
@@ -484,3 +439,2 @@ * Visit a parse tree produced by `SolidityParser.storageLocation`. | ||
visitStorageLocation?: (ctx: StorageLocationContext) => Result; | ||
/** | ||
@@ -492,3 +446,2 @@ * Visit a parse tree produced by `SolidityParser.stateMutability`. | ||
visitStateMutability?: (ctx: StateMutabilityContext) => Result; | ||
/** | ||
@@ -500,3 +453,2 @@ * Visit a parse tree produced by `SolidityParser.block`. | ||
visitBlock?: (ctx: BlockContext) => Result; | ||
/** | ||
@@ -508,3 +460,2 @@ * Visit a parse tree produced by `SolidityParser.statement`. | ||
visitStatement?: (ctx: StatementContext) => Result; | ||
/** | ||
@@ -516,3 +467,2 @@ * Visit a parse tree produced by `SolidityParser.expressionStatement`. | ||
visitExpressionStatement?: (ctx: ExpressionStatementContext) => Result; | ||
/** | ||
@@ -524,3 +474,2 @@ * Visit a parse tree produced by `SolidityParser.ifStatement`. | ||
visitIfStatement?: (ctx: IfStatementContext) => Result; | ||
/** | ||
@@ -532,3 +481,2 @@ * Visit a parse tree produced by `SolidityParser.tryStatement`. | ||
visitTryStatement?: (ctx: TryStatementContext) => Result; | ||
/** | ||
@@ -540,3 +488,2 @@ * Visit a parse tree produced by `SolidityParser.catchClause`. | ||
visitCatchClause?: (ctx: CatchClauseContext) => Result; | ||
/** | ||
@@ -548,3 +495,2 @@ * Visit a parse tree produced by `SolidityParser.whileStatement`. | ||
visitWhileStatement?: (ctx: WhileStatementContext) => Result; | ||
/** | ||
@@ -556,3 +502,2 @@ * Visit a parse tree produced by `SolidityParser.simpleStatement`. | ||
visitSimpleStatement?: (ctx: SimpleStatementContext) => Result; | ||
/** | ||
@@ -564,3 +509,2 @@ * Visit a parse tree produced by `SolidityParser.uncheckedStatement`. | ||
visitUncheckedStatement?: (ctx: UncheckedStatementContext) => Result; | ||
/** | ||
@@ -572,3 +516,2 @@ * Visit a parse tree produced by `SolidityParser.forStatement`. | ||
visitForStatement?: (ctx: ForStatementContext) => Result; | ||
/** | ||
@@ -580,3 +523,2 @@ * Visit a parse tree produced by `SolidityParser.inlineAssemblyStatement`. | ||
visitInlineAssemblyStatement?: (ctx: InlineAssemblyStatementContext) => Result; | ||
/** | ||
@@ -588,3 +530,2 @@ * Visit a parse tree produced by `SolidityParser.inlineAssemblyStatementFlag`. | ||
visitInlineAssemblyStatementFlag?: (ctx: InlineAssemblyStatementFlagContext) => Result; | ||
/** | ||
@@ -596,3 +537,2 @@ * Visit a parse tree produced by `SolidityParser.doWhileStatement`. | ||
visitDoWhileStatement?: (ctx: DoWhileStatementContext) => Result; | ||
/** | ||
@@ -604,3 +544,2 @@ * Visit a parse tree produced by `SolidityParser.continueStatement`. | ||
visitContinueStatement?: (ctx: ContinueStatementContext) => Result; | ||
/** | ||
@@ -612,3 +551,2 @@ * Visit a parse tree produced by `SolidityParser.breakStatement`. | ||
visitBreakStatement?: (ctx: BreakStatementContext) => Result; | ||
/** | ||
@@ -620,3 +558,2 @@ * Visit a parse tree produced by `SolidityParser.returnStatement`. | ||
visitReturnStatement?: (ctx: ReturnStatementContext) => Result; | ||
/** | ||
@@ -628,3 +565,2 @@ * Visit a parse tree produced by `SolidityParser.throwStatement`. | ||
visitThrowStatement?: (ctx: ThrowStatementContext) => Result; | ||
/** | ||
@@ -636,3 +572,2 @@ * Visit a parse tree produced by `SolidityParser.emitStatement`. | ||
visitEmitStatement?: (ctx: EmitStatementContext) => Result; | ||
/** | ||
@@ -644,3 +579,2 @@ * Visit a parse tree produced by `SolidityParser.revertStatement`. | ||
visitRevertStatement?: (ctx: RevertStatementContext) => Result; | ||
/** | ||
@@ -652,3 +586,2 @@ * Visit a parse tree produced by `SolidityParser.variableDeclarationStatement`. | ||
visitVariableDeclarationStatement?: (ctx: VariableDeclarationStatementContext) => Result; | ||
/** | ||
@@ -660,3 +593,2 @@ * Visit a parse tree produced by `SolidityParser.variableDeclarationList`. | ||
visitVariableDeclarationList?: (ctx: VariableDeclarationListContext) => Result; | ||
/** | ||
@@ -668,3 +600,2 @@ * Visit a parse tree produced by `SolidityParser.identifierList`. | ||
visitIdentifierList?: (ctx: IdentifierListContext) => Result; | ||
/** | ||
@@ -676,3 +607,2 @@ * Visit a parse tree produced by `SolidityParser.elementaryTypeName`. | ||
visitElementaryTypeName?: (ctx: ElementaryTypeNameContext) => Result; | ||
/** | ||
@@ -684,3 +614,2 @@ * Visit a parse tree produced by `SolidityParser.expression`. | ||
visitExpression?: (ctx: ExpressionContext) => Result; | ||
/** | ||
@@ -692,3 +621,2 @@ * Visit a parse tree produced by `SolidityParser.primaryExpression`. | ||
visitPrimaryExpression?: (ctx: PrimaryExpressionContext) => Result; | ||
/** | ||
@@ -700,3 +628,2 @@ * Visit a parse tree produced by `SolidityParser.expressionList`. | ||
visitExpressionList?: (ctx: ExpressionListContext) => Result; | ||
/** | ||
@@ -708,3 +635,2 @@ * Visit a parse tree produced by `SolidityParser.nameValueList`. | ||
visitNameValueList?: (ctx: NameValueListContext) => Result; | ||
/** | ||
@@ -716,3 +642,2 @@ * Visit a parse tree produced by `SolidityParser.nameValue`. | ||
visitNameValue?: (ctx: NameValueContext) => Result; | ||
/** | ||
@@ -724,3 +649,2 @@ * Visit a parse tree produced by `SolidityParser.functionCallArguments`. | ||
visitFunctionCallArguments?: (ctx: FunctionCallArgumentsContext) => Result; | ||
/** | ||
@@ -732,3 +656,2 @@ * Visit a parse tree produced by `SolidityParser.functionCall`. | ||
visitFunctionCall?: (ctx: FunctionCallContext) => Result; | ||
/** | ||
@@ -740,3 +663,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyBlock`. | ||
visitAssemblyBlock?: (ctx: AssemblyBlockContext) => Result; | ||
/** | ||
@@ -748,3 +670,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyItem`. | ||
visitAssemblyItem?: (ctx: AssemblyItemContext) => Result; | ||
/** | ||
@@ -756,3 +677,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyExpression`. | ||
visitAssemblyExpression?: (ctx: AssemblyExpressionContext) => Result; | ||
/** | ||
@@ -764,3 +684,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyMember`. | ||
visitAssemblyMember?: (ctx: AssemblyMemberContext) => Result; | ||
/** | ||
@@ -772,3 +691,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyCall`. | ||
visitAssemblyCall?: (ctx: AssemblyCallContext) => Result; | ||
/** | ||
@@ -780,3 +698,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyLocalDefinition`. | ||
visitAssemblyLocalDefinition?: (ctx: AssemblyLocalDefinitionContext) => Result; | ||
/** | ||
@@ -788,3 +705,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyAssignment`. | ||
visitAssemblyAssignment?: (ctx: AssemblyAssignmentContext) => Result; | ||
/** | ||
@@ -796,3 +712,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyIdentifierOrList`. | ||
visitAssemblyIdentifierOrList?: (ctx: AssemblyIdentifierOrListContext) => Result; | ||
/** | ||
@@ -804,3 +719,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyIdentifierList`. | ||
visitAssemblyIdentifierList?: (ctx: AssemblyIdentifierListContext) => Result; | ||
/** | ||
@@ -812,3 +726,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyStackAssignment`. | ||
visitAssemblyStackAssignment?: (ctx: AssemblyStackAssignmentContext) => Result; | ||
/** | ||
@@ -820,3 +733,2 @@ * Visit a parse tree produced by `SolidityParser.labelDefinition`. | ||
visitLabelDefinition?: (ctx: LabelDefinitionContext) => Result; | ||
/** | ||
@@ -828,3 +740,2 @@ * Visit a parse tree produced by `SolidityParser.assemblySwitch`. | ||
visitAssemblySwitch?: (ctx: AssemblySwitchContext) => Result; | ||
/** | ||
@@ -836,3 +747,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyCase`. | ||
visitAssemblyCase?: (ctx: AssemblyCaseContext) => Result; | ||
/** | ||
@@ -844,3 +754,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyFunctionDefinition`. | ||
visitAssemblyFunctionDefinition?: (ctx: AssemblyFunctionDefinitionContext) => Result; | ||
/** | ||
@@ -852,3 +761,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyFunctionReturns`. | ||
visitAssemblyFunctionReturns?: (ctx: AssemblyFunctionReturnsContext) => Result; | ||
/** | ||
@@ -860,3 +768,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyFor`. | ||
visitAssemblyFor?: (ctx: AssemblyForContext) => Result; | ||
/** | ||
@@ -868,3 +775,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyIf`. | ||
visitAssemblyIf?: (ctx: AssemblyIfContext) => Result; | ||
/** | ||
@@ -876,3 +782,2 @@ * Visit a parse tree produced by `SolidityParser.assemblyLiteral`. | ||
visitAssemblyLiteral?: (ctx: AssemblyLiteralContext) => Result; | ||
/** | ||
@@ -884,3 +789,2 @@ * Visit a parse tree produced by `SolidityParser.tupleExpression`. | ||
visitTupleExpression?: (ctx: TupleExpressionContext) => Result; | ||
/** | ||
@@ -892,3 +796,2 @@ * Visit a parse tree produced by `SolidityParser.numberLiteral`. | ||
visitNumberLiteral?: (ctx: NumberLiteralContext) => Result; | ||
/** | ||
@@ -900,3 +803,2 @@ * Visit a parse tree produced by `SolidityParser.identifier`. | ||
visitIdentifier?: (ctx: IdentifierContext) => Result; | ||
/** | ||
@@ -908,3 +810,2 @@ * Visit a parse tree produced by `SolidityParser.hexLiteral`. | ||
visitHexLiteral?: (ctx: HexLiteralContext) => Result; | ||
/** | ||
@@ -916,3 +817,2 @@ * Visit a parse tree produced by `SolidityParser.overrideSpecifier`. | ||
visitOverrideSpecifier?: (ctx: OverrideSpecifierContext) => Result; | ||
/** | ||
@@ -919,0 +819,0 @@ * Visit a parse tree produced by `SolidityParser.stringLiteral`. |
@@ -1,10 +0,6 @@ | ||
import { ParserRuleContext } from 'antlr4ts' | ||
import { AbstractParseTreeVisitor } from 'antlr4ts/tree/AbstractParseTreeVisitor' | ||
import { ParseTree } from 'antlr4ts/tree/ParseTree' | ||
import { ParserRuleContext, ParseTreeVisitor, ParseTree } from 'antlr4' | ||
import * as SP from './antlr/SolidityParser' | ||
import { SolidityVisitor } from './antlr/SolidityVisitor' | ||
import SolidityVisitor from './antlr/SolidityVisitor' | ||
import { ParseOptions } from './types' | ||
import * as AST from './ast-types' | ||
import { ErrorNode } from 'antlr4ts/tree/ErrorNode' | ||
@@ -29,3 +25,3 @@ interface SourceLocation { | ||
export class ASTBuilder | ||
extends AbstractParseTreeVisitor<ASTBuilderNode> | ||
extends ParseTreeVisitor<ASTBuilderNode> | ||
implements SolidityVisitor<ASTBuilderNode | ASTBuilderNode[]> | ||
@@ -49,5 +45,3 @@ { | ||
public visitSourceUnit(ctx: SP.SourceUnitContext): AST.SourceUnit & WithMeta { | ||
const children = (ctx.children ?? []).filter( | ||
(x) => !(x instanceof ErrorNode) | ||
) | ||
const children = ctx.children ?? [] | ||
@@ -80,5 +74,5 @@ const node: AST.SourceUnit = { | ||
baseContracts: ctx | ||
.inheritanceSpecifier() | ||
.inheritanceSpecifier_list() | ||
.map((x) => this.visitInheritanceSpecifier(x)), | ||
subNodes: ctx.contractPart().map((x) => this.visit(x)), | ||
subNodes: ctx.contractPart_list().map((x) => this.visit(x)), | ||
kind, | ||
@@ -104,7 +98,7 @@ } | ||
let visibility: AST.VariableDeclaration['visibility'] = 'default' | ||
if (ctx.InternalKeyword().length > 0) { | ||
if (ctx.InternalKeyword_list().length > 0) { | ||
visibility = 'internal' | ||
} else if (ctx.PublicKeyword().length > 0) { | ||
} else if (ctx.PublicKeyword_list().length > 0) { | ||
visibility = 'public' | ||
} else if (ctx.PrivateKeyword().length > 0) { | ||
} else if (ctx.PrivateKeyword_list().length > 0) { | ||
visibility = 'private' | ||
@@ -114,3 +108,3 @@ } | ||
let isDeclaredConst = false | ||
if (ctx.ConstantKeyword().length > 0) { | ||
if (ctx.ConstantKeyword_list().length > 0) { | ||
isDeclaredConst = true | ||
@@ -120,3 +114,3 @@ } | ||
let override | ||
const overrideSpecifier = ctx.overrideSpecifier() | ||
const overrideSpecifier = ctx.overrideSpecifier_list() | ||
if (overrideSpecifier.length === 0) { | ||
@@ -126,3 +120,3 @@ override = null | ||
override = overrideSpecifier[0] | ||
.userDefinedTypeName() | ||
.userDefinedTypeName_list() | ||
.map((x) => this.visitUserDefinedTypeName(x)) | ||
@@ -132,3 +126,3 @@ } | ||
let isImmutable = false | ||
if (ctx.ImmutableKeyword().length > 0) { | ||
if (ctx.ImmutableKeyword_list().length > 0) { | ||
isImmutable = true | ||
@@ -193,5 +187,5 @@ } | ||
const ctxVariableDeclarationList = ctx.variableDeclarationList() | ||
if (ctxVariableDeclaration !== undefined) { | ||
if (ctxVariableDeclaration) { | ||
variables = [this.visitVariableDeclaration(ctxVariableDeclaration)] | ||
} else if (ctxIdentifierList !== undefined) { | ||
} else if (ctxIdentifierList) { | ||
variables = this.buildIdentifierList(ctxIdentifierList) | ||
@@ -228,3 +222,3 @@ } else if (ctxVariableDeclarationList) { | ||
.eventParameterList() | ||
.eventParameter() | ||
.eventParameter_list() | ||
.map((paramCtx) => { | ||
@@ -242,8 +236,7 @@ const type = this.visitTypeName(paramCtx.typeName()) | ||
name, | ||
identifier: | ||
paramCtxIdentifier !== undefined | ||
? this.visitIdentifier(paramCtxIdentifier) | ||
: null, | ||
identifier: paramCtxIdentifier | ||
? this.visitIdentifier(paramCtxIdentifier) | ||
: null, | ||
isStateVar: false, | ||
isIndexed: paramCtx.IndexedKeyword() !== undefined, | ||
isIndexed: Boolean(paramCtx.IndexedKeyword()), | ||
storageLocation: null, | ||
@@ -259,3 +252,3 @@ expression: null, | ||
parameters, | ||
isAnonymous: ctx.AnonymousKeyword() !== undefined, | ||
isAnonymous: Boolean(ctx.AnonymousKeyword()), | ||
} | ||
@@ -269,3 +262,3 @@ | ||
type: 'Block', | ||
statements: ctx.statement().map((x) => this.visitStatement(x)), | ||
statements: ctx.statement_list().map((x) => this.visitStatement(x)), | ||
} | ||
@@ -279,3 +272,3 @@ | ||
const ctxStorageLocation = ctx.storageLocation() | ||
if (ctxStorageLocation !== undefined) { | ||
if (ctxStorageLocation) { | ||
storageLocation = this._toText(ctxStorageLocation) | ||
@@ -286,3 +279,3 @@ } | ||
const ctxIdentifier = ctx.identifier() | ||
if (ctxIdentifier !== undefined) { | ||
if (ctxIdentifier) { | ||
name = this._toText(ctxIdentifier) | ||
@@ -295,6 +288,3 @@ } | ||
name, | ||
identifier: | ||
ctxIdentifier !== undefined | ||
? this.visitIdentifier(ctxIdentifier) | ||
: null, | ||
identifier: ctxIdentifier ? this.visitIdentifier(ctxIdentifier) : null, | ||
storageLocation, | ||
@@ -323,3 +313,3 @@ isStateVar: false, | ||
const ctxBlock = ctx.block() | ||
if (ctxBlock !== undefined) { | ||
if (ctxBlock) { | ||
block = this.visitBlock(ctxBlock) | ||
@@ -330,7 +320,7 @@ } | ||
.modifierList() | ||
.modifierInvocation() | ||
.modifierInvocation_list() | ||
.map((mod) => this.visitModifierInvocation(mod)) | ||
let stateMutability = null | ||
if (ctx.modifierList().stateMutability().length > 0) { | ||
if (ctx.modifierList().stateMutability_list().length > 0) { | ||
stateMutability = this._stateMutabilityToText( | ||
@@ -347,9 +337,9 @@ ctx.modifierList().stateMutability(0) | ||
.parameterList() | ||
.parameter() | ||
.parameter_list() | ||
.map((x) => this.visit(x)) | ||
// error out on incorrect function visibility | ||
if (ctx.modifierList().InternalKeyword().length > 0) { | ||
if (ctx.modifierList().InternalKeyword_list().length > 0) { | ||
visibility = 'internal' | ||
} else if (ctx.modifierList().PublicKeyword().length > 0) { | ||
} else if (ctx.modifierList().PublicKeyword_list().length > 0) { | ||
visibility = 'public' | ||
@@ -365,8 +355,7 @@ } else { | ||
.parameterList() | ||
.parameter() | ||
.parameter_list() | ||
.map((x) => this.visit(x)) | ||
returnParameters = | ||
ctxReturnParameters !== undefined | ||
? this.visitReturnParameters(ctxReturnParameters) | ||
: null | ||
returnParameters = ctxReturnParameters | ||
? this.visitReturnParameters(ctxReturnParameters) | ||
: null | ||
@@ -382,21 +371,20 @@ visibility = 'external' | ||
const identifier = ctx.functionDescriptor().identifier() | ||
name = identifier !== undefined ? this._toText(identifier) : '' | ||
name = identifier ? this._toText(identifier) : '' | ||
parameters = ctx | ||
.parameterList() | ||
.parameter() | ||
.parameter_list() | ||
.map((x) => this.visit(x)) | ||
returnParameters = | ||
ctxReturnParameters !== undefined | ||
? this.visitReturnParameters(ctxReturnParameters) | ||
: null | ||
returnParameters = ctxReturnParameters | ||
? this.visitReturnParameters(ctxReturnParameters) | ||
: null | ||
// parse function visibility | ||
if (ctx.modifierList().ExternalKeyword().length > 0) { | ||
if (ctx.modifierList().ExternalKeyword_list().length > 0) { | ||
visibility = 'external' | ||
} else if (ctx.modifierList().InternalKeyword().length > 0) { | ||
} else if (ctx.modifierList().InternalKeyword_list().length > 0) { | ||
visibility = 'internal' | ||
} else if (ctx.modifierList().PublicKeyword().length > 0) { | ||
} else if (ctx.modifierList().PublicKeyword_list().length > 0) { | ||
visibility = 'public' | ||
} else if (ctx.modifierList().PrivateKeyword().length > 0) { | ||
} else if (ctx.modifierList().PrivateKeyword_list().length > 0) { | ||
visibility = 'private' | ||
@@ -412,3 +400,3 @@ } | ||
// check if function is virtual | ||
if (ctx.modifierList().VirtualKeyword().length > 0) { | ||
if (ctx.modifierList().VirtualKeyword_list().length > 0) { | ||
isVirtual = true | ||
@@ -418,3 +406,3 @@ } | ||
let override: AST.UserDefinedTypeName[] | null | ||
const overrideSpecifier = ctx.modifierList().overrideSpecifier() | ||
const overrideSpecifier = ctx.modifierList().overrideSpecifier_list() | ||
if (overrideSpecifier.length === 0) { | ||
@@ -424,3 +412,3 @@ override = null | ||
override = overrideSpecifier[0] | ||
.userDefinedTypeName() | ||
.userDefinedTypeName_list() | ||
.map((x) => this.visitUserDefinedTypeName(x)) | ||
@@ -454,3 +442,3 @@ } | ||
name: this._toText(ctx.identifier()), | ||
members: ctx.enumValue().map((x) => this.visitEnumValue(x)), | ||
members: ctx.enumValue_list().map((x) => this.visitEnumValue(x)), | ||
} | ||
@@ -490,7 +478,7 @@ | ||
public visitTypeName(ctx: SP.TypeNameContext): AST.TypeName & WithMeta { | ||
if (ctx.children !== undefined && ctx.children.length > 2) { | ||
if (ctx.children && ctx.children.length > 2) { | ||
let length = null | ||
if (ctx.children.length === 4) { | ||
const expression = ctx.expression() | ||
if (expression === undefined) { | ||
if (expression === undefined || expression === null) { | ||
throw new Error( | ||
@@ -503,7 +491,5 @@ 'Assertion error: a typeName with 4 children should have an expression' | ||
const ctxTypeName = ctx.typeName() | ||
const node: AST.ArrayTypeName = { | ||
type: 'ArrayTypeName', | ||
baseTypeName: this.visitTypeName(ctxTypeName!), | ||
baseTypeName: this.visitTypeName(ctx.typeName()), | ||
length, | ||
@@ -525,15 +511,15 @@ } | ||
if (ctx.elementaryTypeName() !== undefined) { | ||
if (ctx.elementaryTypeName()) { | ||
return this.visitElementaryTypeName(ctx.elementaryTypeName()!) | ||
} | ||
if (ctx.userDefinedTypeName() !== undefined) { | ||
if (ctx.userDefinedTypeName()) { | ||
return this.visitUserDefinedTypeName(ctx.userDefinedTypeName()!) | ||
} | ||
if (ctx.mapping() !== undefined) { | ||
if (ctx.mapping()) { | ||
return this.visitMapping(ctx.mapping()!) | ||
} | ||
if (ctx.functionTypeName() !== undefined) { | ||
if (ctx.functionTypeName()) { | ||
return this.visitFunctionTypeName(ctx.functionTypeName()!) | ||
@@ -561,7 +547,7 @@ } | ||
const ctxTypeName = ctx.typeName() | ||
if (ctxTypeName !== undefined) { | ||
if (ctxTypeName) { | ||
typeName = this.visitTypeName(ctxTypeName) | ||
} | ||
const isGlobal = ctx.GlobalKeyword() !== undefined | ||
const isGlobal = Boolean(ctx.GlobalKeyword()) | ||
@@ -573,3 +559,3 @@ const usingForObjectCtx = ctx.usingForObject() | ||
let node: AST.UsingForDeclaration | ||
if (userDefinedTypeNameCtx !== undefined) { | ||
if (userDefinedTypeNameCtx) { | ||
// using Lib for ... | ||
@@ -587,3 +573,3 @@ node = { | ||
const usingForObjectDirectives = | ||
usingForObjectCtx.usingForObjectDirective() | ||
usingForObjectCtx.usingForObjectDirective_list() | ||
const functions: string[] = [] | ||
@@ -597,3 +583,3 @@ const operators: Array<string | null> = [] | ||
const operator = usingForObjectDirective.userDefinableOperators() | ||
if (operator !== undefined) { | ||
if (operator) { | ||
operators.push(this._toText(operator)) | ||
@@ -626,3 +612,3 @@ } else { | ||
let value = this._toText(ctx.pragmaValue()) | ||
if (versionContext?.children !== undefined) { | ||
if (versionContext?.children) { | ||
value = versionContext.children.map((x) => this._toText(x)).join(' ') | ||
@@ -644,6 +630,5 @@ } | ||
const exprList = ctx.expressionList() | ||
const args = | ||
exprList !== undefined | ||
? exprList.expression().map((x) => this.visitExpression(x)) | ||
: [] | ||
const args = exprList | ||
? exprList.expression_list().map((x) => this.visitExpression(x)) | ||
: [] | ||
@@ -666,4 +651,4 @@ const node: AST.InheritanceSpecifier = { | ||
if (exprList != null) { | ||
args = exprList.expression().map((x) => this.visit(x)) | ||
} else if (ctx.children !== undefined && ctx.children.length > 1) { | ||
args = exprList.expression_list().map((x) => this.visit(x)) | ||
} else if (ctx.children && ctx.children.length > 1) { | ||
args = [] | ||
@@ -687,10 +672,10 @@ } else { | ||
.functionTypeParameterList(0) | ||
.functionTypeParameter() | ||
.functionTypeParameter_list() | ||
.map((typeCtx) => this.visitFunctionTypeParameter(typeCtx)) | ||
let returnTypes: AST.VariableDeclaration[] = [] | ||
if (ctx.functionTypeParameterList().length > 1) { | ||
if (ctx.functionTypeParameterList_list().length > 1) { | ||
returnTypes = ctx | ||
.functionTypeParameterList(1) | ||
.functionTypeParameter() | ||
.functionTypeParameter_list() | ||
.map((typeCtx) => this.visitFunctionTypeParameter(typeCtx)) | ||
@@ -700,5 +685,5 @@ } | ||
let visibility = 'default' | ||
if (ctx.InternalKeyword().length > 0) { | ||
if (ctx.InternalKeyword_list().length > 0) { | ||
visibility = 'internal' | ||
} else if (ctx.ExternalKeyword().length > 0) { | ||
} else if (ctx.ExternalKeyword_list().length > 0) { | ||
visibility = 'external' | ||
@@ -708,3 +693,3 @@ } | ||
let stateMutability = null | ||
if (ctx.stateMutability().length > 0) { | ||
if (ctx.stateMutability_list().length > 0) { | ||
stateMutability = this._toText(ctx.stateMutability(0)) | ||
@@ -831,6 +816,6 @@ } | ||
args = ctxArgsExpressionList | ||
.expression() | ||
.expression_list() | ||
.map((exprCtx) => this.visitExpression(exprCtx)) | ||
} else if (ctxArgsNameValueList) { | ||
for (const nameValue of ctxArgsNameValueList.nameValue()) { | ||
for (const nameValue of ctxArgsNameValueList.nameValue_list()) { | ||
args.push(this.visitExpression(nameValue.expression())) | ||
@@ -860,3 +845,3 @@ names.push(this._toText(nameValue.identifier())) | ||
members: ctx | ||
.variableDeclaration() | ||
.variableDeclaration_list() | ||
.map((x) => this.visitVariableDeclaration(x)), | ||
@@ -898,3 +883,3 @@ } | ||
let falseBody = null | ||
if (ctx.statement().length > 1) { | ||
if (ctx.statement_list().length > 1) { | ||
falseBody = this.visitStatement(ctx.statement(1)) | ||
@@ -918,3 +903,3 @@ } | ||
const ctxReturnParameters = ctx.returnParameters() | ||
if (ctxReturnParameters !== undefined) { | ||
if (ctxReturnParameters) { | ||
returnParameters = this.visitReturnParameters(ctxReturnParameters) | ||
@@ -924,3 +909,3 @@ } | ||
const catchClauses = ctx | ||
.catchClause() | ||
.catchClause_list() | ||
.map((exprCtx) => this.visitCatchClause(exprCtx)) | ||
@@ -957,3 +942,3 @@ | ||
const ctxIdentifier = ctx.identifier() | ||
if (ctxIdentifier !== undefined) { | ||
if (ctxIdentifier) { | ||
kind = this._toText(ctxIdentifier) | ||
@@ -1029,11 +1014,9 @@ } | ||
keyType: this.visitMappingKey(ctx.mappingKey()), | ||
keyName: | ||
mappingKeyNameCtx === undefined | ||
? null | ||
: this.visitIdentifier(mappingKeyNameCtx.identifier()), | ||
keyName: mappingKeyNameCtx | ||
? this.visitIdentifier(mappingKeyNameCtx.identifier()) | ||
: null, | ||
valueType: this.visitTypeName(ctx.typeName()), | ||
valueName: | ||
mappingValueNameCtx === undefined | ||
? null | ||
: this.visitIdentifier(mappingValueNameCtx.identifier()), | ||
valueName: mappingValueNameCtx | ||
? this.visitIdentifier(mappingValueNameCtx.identifier()) | ||
: null, | ||
} | ||
@@ -1053,3 +1036,3 @@ | ||
let isVirtual = false | ||
if (ctx.VirtualKeyword().length > 0) { | ||
if (ctx.VirtualKeyword_list().length > 0) { | ||
isVirtual = true | ||
@@ -1059,3 +1042,3 @@ } | ||
let override | ||
const overrideSpecifier = ctx.overrideSpecifier() | ||
const overrideSpecifier = ctx.overrideSpecifier_list() | ||
if (overrideSpecifier.length === 0) { | ||
@@ -1065,3 +1048,3 @@ override = null | ||
override = overrideSpecifier[0] | ||
.userDefinedTypeName() | ||
.userDefinedTypeName_list() | ||
.map((x) => this.visitUserDefinedTypeName(x)) | ||
@@ -1072,3 +1055,3 @@ } | ||
const blockCtx = ctx.block() | ||
if (blockCtx !== undefined) { | ||
if (blockCtx) { | ||
body = this.visitBlock(blockCtx) | ||
@@ -1106,7 +1089,7 @@ } | ||
// primary expression | ||
const primaryExpressionCtx = ctx.tryGetRuleContext( | ||
0, | ||
SP.PrimaryExpressionContext | ||
) | ||
if (primaryExpressionCtx === undefined) { | ||
const primaryExpressionCtx = ctx.primaryExpression() | ||
if ( | ||
primaryExpressionCtx === undefined || | ||
primaryExpressionCtx === null | ||
) { | ||
throw new Error( | ||
@@ -1135,5 +1118,3 @@ 'Assertion error: primary expression should exist when children length is 1' | ||
operator: op as AST.UnaryOp, | ||
subExpression: this.visitExpression( | ||
ctx.getRuleContext(0, SP.ExpressionContext) | ||
), | ||
subExpression: this.visitExpression(ctx.expression(0)), | ||
isPrefix: true, | ||
@@ -1151,5 +1132,3 @@ } | ||
operator: op as AST.UnaryOp, | ||
subExpression: this.visitExpression( | ||
ctx.getRuleContext(0, SP.ExpressionContext) | ||
), | ||
subExpression: this.visitExpression(ctx.expression(0)), | ||
isPrefix: false, | ||
@@ -1169,5 +1148,3 @@ } | ||
type: 'TupleExpression', | ||
components: [ | ||
this.visitExpression(ctx.getRuleContext(0, SP.ExpressionContext)), | ||
], | ||
components: [this.visitExpression(ctx.expression(0))], | ||
isArray: false, | ||
@@ -1215,6 +1192,6 @@ } | ||
.expressionList()! | ||
.expression() | ||
.expression_list() | ||
.map((exprCtx) => this.visitExpression(exprCtx)) | ||
} else if (ctxArgs.nameValueList()) { | ||
for (const nameValue of ctxArgs.nameValueList()!.nameValue()) { | ||
for (const nameValue of ctxArgs.nameValueList()!.nameValue_list()) { | ||
args.push(this.visitExpression(nameValue.expression())) | ||
@@ -1242,3 +1219,3 @@ names.push(this._toText(nameValue.identifier())) | ||
) { | ||
if (ctx.getChild(2).text === ':') { | ||
if (ctx.getChild(2).getText() === ':') { | ||
const node: AST.IndexRangeAccess = { | ||
@@ -1350,3 +1327,3 @@ type: 'IndexRangeAccess', | ||
for (const nameValue of ctx.nameValue()) { | ||
for (const nameValue of ctx.nameValue_list()) { | ||
names.push(this._toText(nameValue.identifier())) | ||
@@ -1369,4 +1346,3 @@ identifiers.push(this.visitIdentifier(nameValue.identifier())) | ||
const type = this.visitTypeName(ctx.typeName()) | ||
const iden = ctx.identifier() | ||
const name = this._toText(iden) | ||
const name = this._toText(ctx.identifier()) | ||
@@ -1402,6 +1378,5 @@ const expression = this.visitExpression(ctx.expression()) | ||
type: 'ExpressionStatement', | ||
expression: | ||
ctx.expression() !== undefined | ||
? this.visitExpression(ctx.expression()!) | ||
: null, | ||
expression: ctx.expression() | ||
? this.visitExpression(ctx.expression()!) | ||
: null, | ||
}, | ||
@@ -1416,3 +1391,3 @@ body: this.visitStatement(ctx.statement()), | ||
const parts = ctx | ||
.HexLiteralFragment() | ||
.HexLiteralFragment_list() | ||
.map((x) => this._toText(x)) | ||
@@ -1449,3 +1424,3 @@ .map((x) => x.substring(4, x.length - 1)) | ||
.stringLiteral()! | ||
.StringLiteralFragment() | ||
.StringLiteralFragment_list() | ||
.map((stringLiteralFragmentCtx) => { | ||
@@ -1524,7 +1499,7 @@ let text = this._toText(stringLiteralFragmentCtx)! | ||
const children = ctx.children!.slice(1, -1) | ||
const identifiers = ctx.identifier() | ||
const identifiers = ctx.identifier_list() | ||
let i = 0 | ||
return this._mapCommasToNulls(children).map((idenOrNull) => { | ||
return this._mapCommasToNulls(children).map((identifierOrNull) => { | ||
// add a null for each empty value | ||
if (!idenOrNull) { | ||
if (identifierOrNull === null) { | ||
return null | ||
@@ -1554,3 +1529,3 @@ } | ||
): Array<(AST.VariableDeclaration & WithMeta) | null> { | ||
const variableDeclarations = ctx.variableDeclaration() | ||
const variableDeclarations = ctx.variableDeclaration_list() | ||
let i = 0 | ||
@@ -1595,7 +1570,7 @@ return this._mapCommasToNulls(ctx.children ?? []).map((declOrNull) => { | ||
if (ctx.importDeclaration().length > 0) { | ||
symbolAliases = ctx.importDeclaration().map((decl) => { | ||
if (ctx.importDeclaration_list().length > 0) { | ||
symbolAliases = ctx.importDeclaration_list().map((decl) => { | ||
const symbol = this._toText(decl.identifier(0)) | ||
let alias = null | ||
if (decl.identifier().length > 1) { | ||
if (decl.identifier_list().length > 1) { | ||
alias = this._toText(decl.identifier(1)) | ||
@@ -1605,6 +1580,6 @@ } | ||
}) | ||
symbolAliasesIdentifiers = ctx.importDeclaration().map((decl) => { | ||
symbolAliasesIdentifiers = ctx.importDeclaration_list().map((decl) => { | ||
const symbolIdentifier = this.visitIdentifier(decl.identifier(0)) | ||
let aliasIdentifier = null | ||
if (decl.identifier().length > 1) { | ||
if (decl.identifier_list().length > 1) { | ||
aliasIdentifier = this.visitIdentifier(decl.identifier(1)) | ||
@@ -1618,3 +1593,3 @@ } | ||
} else { | ||
const identifierCtxList = ctx.identifier() | ||
const identifierCtxList = ctx.identifier_list() | ||
if (identifierCtxList.length === 0) { | ||
@@ -1660,3 +1635,3 @@ // nothing to do | ||
public buildEventParameterList(ctx: SP.EventParameterListContext) { | ||
return ctx.eventParameter().map((paramCtx) => { | ||
return ctx.eventParameter_list().map((paramCtx) => { | ||
const type = this.visit(paramCtx.typeName()) | ||
@@ -1685,3 +1660,3 @@ const identifier = paramCtx.identifier() | ||
): (AST.VariableDeclaration & WithMeta)[] { | ||
return ctx.parameter().map((paramCtx) => this.visitParameter(paramCtx)) | ||
return ctx.parameter_list().map((paramCtx) => this.visitParameter(paramCtx)) | ||
} | ||
@@ -1698,3 +1673,3 @@ | ||
const flag = ctx.inlineAssemblyStatementFlag() | ||
if (flag !== undefined) { | ||
if (flag) { | ||
const flagString = this._toText(flag.stringLiteral()) | ||
@@ -1718,3 +1693,3 @@ flags.push(flagString.slice(1, flagString.length - 1)) | ||
const operations = ctx | ||
.assemblyItem() | ||
.assemblyItem_list() | ||
.map((item) => this.visitAssemblyItem(item)) | ||
@@ -1778,3 +1753,3 @@ | ||
const args = ctx | ||
.assemblyExpression() | ||
.assemblyExpression_list() | ||
.map((assemblyExpr) => this.visitAssemblyExpression(assemblyExpr)) | ||
@@ -1847,3 +1822,3 @@ | ||
expression: this.visitAssemblyExpression(ctx.assemblyExpression()), | ||
cases: ctx.assemblyCase().map((c) => this.visitAssemblyCase(c)), | ||
cases: ctx.assemblyCase_list().map((c) => this.visitAssemblyCase(c)), | ||
} | ||
@@ -1886,3 +1861,3 @@ | ||
.assemblyIdentifierList()! | ||
.identifier()! | ||
.identifier_list()! | ||
.map((x) => this.visitIdentifier(x)) | ||
@@ -1892,3 +1867,3 @@ } | ||
let expression: AST.AssemblyExpression | null = null | ||
if (ctx.assemblyExpression() !== undefined) { | ||
if (ctx.assemblyExpression()) { | ||
expression = this.visitAssemblyExpression(ctx.assemblyExpression()!) | ||
@@ -1910,8 +1885,7 @@ } | ||
const ctxAssemblyIdentifierList = ctx.assemblyIdentifierList() | ||
const args = | ||
ctxAssemblyIdentifierList !== undefined | ||
? ctxAssemblyIdentifierList | ||
.identifier() | ||
.map((x) => this.visitIdentifier(x)) | ||
: [] | ||
const args = ctxAssemblyIdentifierList | ||
? ctxAssemblyIdentifierList | ||
.identifier_list() | ||
.map((x) => this.visitIdentifier(x)) | ||
: [] | ||
@@ -1922,3 +1896,3 @@ const ctxAssemblyFunctionReturns = ctx.assemblyFunctionReturns() | ||
.assemblyIdentifierList()! | ||
.identifier() | ||
.identifier_list() | ||
.map((x) => this.visitIdentifier(x)) | ||
@@ -1950,3 +1924,3 @@ : [] | ||
.assemblyIdentifierList()! | ||
.identifier() | ||
.identifier_list() | ||
.map((x) => this.visitIdentifier(x)) | ||
@@ -1967,3 +1941,3 @@ } | ||
): AST.AssemblyMemberAccess & WithMeta { | ||
const [accessed, member] = ctx.identifier() | ||
const [accessed, member] = ctx.identifier_list() | ||
const node: AST.AssemblyMemberAccess = { | ||
@@ -2045,5 +2019,5 @@ type: 'AssemblyMemberAccess', | ||
private _toText(ctx: ParserRuleContext | ParseTree): string { | ||
const text = ctx.text | ||
if (text === undefined) { | ||
throw new Error('Assertion error: text should never be undefiend') | ||
const text = ctx.getText() | ||
if (text === undefined || text === null) { | ||
throw new Error('Assertion error: text should never be undefined') | ||
} | ||
@@ -2057,12 +2031,12 @@ | ||
): AST.FunctionDefinition['stateMutability'] { | ||
if (ctx.PureKeyword() !== undefined) { | ||
if (ctx.PureKeyword()) { | ||
return 'pure' | ||
} | ||
if (ctx.ConstantKeyword() !== undefined) { | ||
if (ctx.ConstantKeyword()) { | ||
return 'constant' | ||
} | ||
if (ctx.PayableKeyword() !== undefined) { | ||
if (ctx.PayableKeyword()) { | ||
return 'payable' | ||
} | ||
if (ctx.ViewKeyword() !== undefined) { | ||
if (ctx.ViewKeyword()) { | ||
return 'view' | ||
@@ -2078,9 +2052,7 @@ } | ||
line: ctx.start.line, | ||
column: ctx.start.charPositionInLine, | ||
column: ctx.start.column, | ||
}, | ||
end: { | ||
line: ctx.stop ? ctx.stop.line : ctx.start.line, | ||
column: ctx.stop | ||
? ctx.stop.charPositionInLine | ||
: ctx.start.charPositionInLine, | ||
column: ctx.stop ? ctx.stop.column : ctx.start.column, | ||
}, | ||
@@ -2092,3 +2064,3 @@ } | ||
_range(ctx: ParserRuleContext): [number, number] { | ||
return [ctx.start.startIndex, ctx.stop?.stopIndex ?? ctx.start.startIndex] | ||
return [ctx.start.start, ctx.stop?.stop ?? ctx.start.start] | ||
} | ||
@@ -2095,0 +2067,0 @@ |
@@ -1,4 +0,4 @@ | ||
import antlr4 from 'antlr4' | ||
import { ErrorListener as AntlrErrorListener } from 'antlr4' | ||
class ErrorListener extends antlr4.error.ErrorListener { | ||
class ErrorListener extends AntlrErrorListener<any> { | ||
private _errors: any[] | ||
@@ -5,0 +5,0 @@ |
@@ -1,5 +0,5 @@ | ||
import { ANTLRInputStream, CommonTokenStream } from 'antlr4ts' | ||
import { CharStream, CommonTokenStream } from 'antlr4' | ||
import { SolidityLexer } from './antlr/SolidityLexer' | ||
import { SolidityParser } from './antlr/SolidityParser' | ||
import SolidityLexer from './antlr/SolidityLexer' | ||
import SolidityParser from './antlr/SolidityParser' | ||
import { | ||
@@ -46,3 +46,3 @@ ASTNode, | ||
export function tokenize(input: string, options: TokenizeOptions = {}): any { | ||
const inputStream = new ANTLRInputStream(input) | ||
const inputStream = new CharStream(input) | ||
const lexer = new SolidityLexer(inputStream) | ||
@@ -54,3 +54,3 @@ | ||
export function parse(input: string, options: ParseOptions = {}): ParseResult { | ||
const inputStream = new ANTLRInputStream(input) | ||
const inputStream = new CharStream(input) | ||
const lexer = new SolidityLexer(inputStream) | ||
@@ -66,3 +66,3 @@ const tokenStream = new CommonTokenStream(lexer) | ||
parser.addErrorListener(listener) | ||
parser.buildParseTree = true | ||
parser.buildParseTrees = true | ||
@@ -83,3 +83,3 @@ const sourceUnit = parser.sourceUnit() | ||
if (options.tokens === true) { | ||
tokenList = buildTokenList(tokenStream.getTokens(), options) | ||
tokenList = buildTokenList(tokenStream.tokens, options) | ||
} | ||
@@ -86,0 +86,0 @@ |
@@ -1,6 +0,5 @@ | ||
import { Token, AntlrToken, TokenizeOptions } from './types' | ||
import untypedTokens from './tokens-string' | ||
import { Token as AntlrToken } from 'antlr4' | ||
import { Token, TokenizeOptions } from './types' | ||
import { tokens } from './antlr/solidity-tokens' | ||
const tokens = untypedTokens as string | ||
const TYPE_TOKENS = [ | ||
@@ -18,17 +17,2 @@ 'var', | ||
function rsplit(str: string, value: string) { | ||
const index = str.lastIndexOf(value) | ||
return [str.substring(0, index), str.substring(index + 1, str.length)] | ||
} | ||
function normalizeTokenType(value: string) { | ||
if (value.endsWith("'")) { | ||
value = value.substring(0, value.length - 1) | ||
} | ||
if (value.startsWith("'")) { | ||
value = value.substring(1, value.length) | ||
} | ||
return value | ||
} | ||
function getTokenType(value: string) { | ||
@@ -60,12 +44,2 @@ if (value === 'Identifier' || value === 'from') { | ||
function getTokenTypeMap() { | ||
return tokens | ||
.split('\n') | ||
.map((line) => rsplit(line, '=')) | ||
.reduce((acum: { [key: number]: string }, [value, key]) => { | ||
acum[parseInt(key, 10)] = normalizeTokenType(value) | ||
return acum | ||
}, {}) | ||
} | ||
export function buildTokenList( | ||
@@ -75,16 +49,14 @@ tokensArg: AntlrToken[], | ||
): Token[] { | ||
const tokenTypes = getTokenTypeMap() | ||
const result = tokensArg.map((token) => { | ||
const type = getTokenType(tokenTypes[token.type]) | ||
const type = getTokenType(tokens[token.type.toString()]) | ||
const node: Token = { type, value: token.text } | ||
if (options.range === true) { | ||
node.range = [token.startIndex, token.stopIndex + 1] | ||
node.range = [token.start, token.stop + 1] | ||
} | ||
if (options.loc === true) { | ||
node.loc = { | ||
start: { line: token.line, column: token.charPositionInLine }, | ||
start: { line: token.line, column: token.column }, | ||
end: { | ||
line: token.line, | ||
column: token.charPositionInLine + (token.text?.length ?? 0), | ||
column: token.column + (token.text?.length ?? 0), | ||
}, | ||
@@ -91,0 +63,0 @@ } |
@@ -1,2 +0,1 @@ | ||
import { Token as Antlr4TsToken } from 'antlr4ts' | ||
export interface Node { | ||
@@ -6,4 +5,2 @@ type: string | ||
export type AntlrToken = Antlr4TsToken | ||
export interface TokenizeOptions { | ||
@@ -10,0 +7,0 @@ range?: boolean |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
9568467
0
25
142380
42
- Removedantlr4ts@^0.5.0-alpha.4
- Removedantlr4ts@0.5.0-dev(transitive)
- Removedbuffer-from@1.1.2(transitive)
- Removedsource-map@0.6.1(transitive)
- Removedsource-map-support@0.5.21(transitive)